Front-load rule grants unqualified reach that a role boundary may narrow #983

Closed
opened 2026-08-09 04:48:58 +00:00 by coilyco-ops · 1 comment
Member

Follow-up to #980, which landed the claim-triggered front-load rule, and to coilyco-flight-deck/agent-compose#254, which allocates outward reach as a role boundary.

The seam

AGENTS.md now says, universally:

Before you make a consequential claim, name the source that would settle it and open that source.

Agent Compose now says, for six of eight roles:

Work from what is local. Your evidence is the repository, the artifact under test, the observed system, and the context you were handed, and widening past it is not yours to do.

Both are correct and the split is deliberate. Local grounding binds everyone, so it lives here. Reaching outside the local frame is allocated to one role, so it lives there. The two texts do not contradict each other, since the boundary tells a deferring role exactly what to do with an outside question: name it, mark the claim as inference, and hand it to the owner.

The gap is that this base gives no hint the narrowing exists. A role-assigned agent reads "open that source" as unqualified, and the boundary that narrows it arrives in a separate skill. The careful reading resolves it. The quick one does not.

Fix

One sentence in the front-load section noting that a role boundary may narrow where you may look, and that the boundary wins when it does. No change to the rule itself.

Deliberately not doing the reverse. This base must not name specific boundaries or roles, since that would put roster policy in the layer below the roster, which the config-placement law forbids.

Done when

  • The front-load rule acknowledges that role doctrine may narrow the reach it grants.
  • No boundary or role name appears in the base.
Follow-up to #980, which landed the claim-triggered front-load rule, and to `coilyco-flight-deck/agent-compose#254`, which allocates outward reach as a role boundary. ## The seam `AGENTS.md` now says, universally: > Before you make a consequential claim, name the source that would settle it and open that source. Agent Compose now says, for six of eight roles: > Work from what is local. Your evidence is the repository, the artifact under test, the observed system, and the context you were handed, and widening past it is not yours to do. Both are correct and the split is deliberate. Local grounding binds everyone, so it lives here. Reaching outside the local frame is allocated to one role, so it lives there. The two texts do not contradict each other, since the boundary tells a deferring role exactly what to do with an outside question: name it, mark the claim as inference, and hand it to the owner. The gap is that this base gives no hint the narrowing exists. A role-assigned agent reads "open that source" as unqualified, and the boundary that narrows it arrives in a separate skill. The careful reading resolves it. The quick one does not. ## Fix One sentence in the front-load section noting that a role boundary may narrow where you may look, and that the boundary wins when it does. No change to the rule itself. Deliberately not doing the reverse. This base must not name specific boundaries or roles, since that would put roster policy in the layer below the roster, which the config-placement law forbids. ## Done when * The front-load rule acknowledges that role doctrine may narrow the reach it grants. * No boundary or role name appears in the base.
Author
Member

Landed on main as 4116fff4.

The narrowing sentence. It sits in the bounded-acquisition paragraph of the front-load section, next to the clause it qualifies:

Acquisition is bounded. It reaches only sources that would change a specific pending claim or decision, and curiosity alone is not a warrant. Role doctrine may narrow the reach this rule grants, and where the two disagree about which sources are yours to open, the narrower boundary wins. Cost scales with stakes ...

No boundary and no role name appears, so roster policy stays in the layer that owns the roster. The rule itself is unchanged.

Two extras, from the same request that carried this issue.

The Engineers and QA: never debug or iterate against live operations section is gone from the base. It bound two roles by name, and meld-live-ops in agent-compose already carries the same boundary melded into engineer, qa, and ai, so the base was holding a second copy of doctrine it does not own. Both texts were checked line by line first: the read-only observability surface, the CI/CD clause, and the deploy-precedent paragraph all survive in the meld. The one thing that did not carry over is the cross-reference tail, which pointed at coilyco-bridge/deploy/docs/deploy-patterns.md (marked forthcoming) and coilyco-flight-deck/ward#1105. Say the word if that pair should be re-homed in the meld.

The cap dropped from 320/34000 to 290/26000, and docs/documentation-layout-exceptions.md moved with it. The old comment was a five-entry raise-log explaining values that no longer exist, so it is replaced with the current rule: the next entry here should displace one rather than extend the file.

One note on the numbers. The base landed at 279 lines / 24789 chars, most of that from #980 and #982 the same day, so the margin is roughly one section wide rather than the comfortable room the old cap left. That is deliberate back-pressure, but it does mean the next doctrine addition to this file will hit the cap and force the displacement question rather than absorbing quietly.

Landed on `main` as `4116fff4`. **The narrowing sentence.** It sits in the bounded-acquisition paragraph of the front-load section, next to the clause it qualifies: > Acquisition is bounded. It reaches only sources that would change a specific pending claim or decision, and curiosity alone is not a warrant. **Role doctrine may narrow the reach this rule grants, and where the two disagree about which sources are yours to open, the narrower boundary wins.** Cost scales with stakes ... No boundary and no role name appears, so roster policy stays in the layer that owns the roster. The rule itself is unchanged. **Two extras, from the same request that carried this issue.** The `Engineers and QA: never debug or iterate against live operations` section is gone from the base. It bound two roles by name, and `meld-live-ops` in agent-compose already carries the same boundary melded into engineer, qa, and ai, so the base was holding a second copy of doctrine it does not own. Both texts were checked line by line first: the read-only observability surface, the CI/CD clause, and the deploy-precedent paragraph all survive in the meld. The one thing that did not carry over is the cross-reference tail, which pointed at `coilyco-bridge/deploy/docs/deploy-patterns.md` (marked forthcoming) and `coilyco-flight-deck/ward#1105`. Say the word if that pair should be re-homed in the meld. The cap dropped from 320/34000 to 290/26000, and `docs/documentation-layout-exceptions.md` moved with it. The old comment was a five-entry raise-log explaining values that no longer exist, so it is replaced with the current rule: the next entry here should displace one rather than extend the file. One note on the numbers. The base landed at 279 lines / 24789 chars, most of that from #980 and #982 the same day, so the margin is roughly one section wide rather than the comfortable room the old cap left. That is deliberate back-pressure, but it does mean the next doctrine addition to this file will hit the cap and force the displacement question rather than absorbing quietly.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os#983
No description provided.