Summary
internal/agentkit/content/skills/forge-coordination/SKILL.md documents the full coordinator and worker protocols. Critical scoping restrictions are expressed as parenthetical asides or single words in bullet lists — exactly the content that DCP context compression drops first.
Related to unbound-force/unbound-force#346 — same class of vulnerability (prompt constraints that do not survive context compression).
Specific Fragilities
1. "(coordinator only)" parenthetical
- Emergency release: comms_release_all() (coordinator only)
The parenthetical "(coordinator only)" is the entire access-control constraint. Under compression, this becomes "use comms_release_all for emergencies" — and a worker could call it, releasing all reservations system-wide including those held by other active workers.
2. Conflict Resolution sequence flattened
If a file reservation fails:
1. Check who holds the reservation
2. Send a message via comms_send to negotiate
3. Wait for release or escalate to coordinator
This three-step escalation process compresses to "resolve conflicts." An agent might skip negotiation and go straight to escalation, or worse, call comms_release_all() (which it learned about in the same skill).
3. Duplicate constraints with different strength levels
The file reservation rule appears in multiple places:
- Worker agent: "Only edit files you have reserved" (soft)
- This skill: "Workers MUST reserve files before editing" (strong)
- Forge command: "Workers reserve their own files via comms_reserve" (descriptive)
A compressor picking one of these three might choose the weakest phrasing. The strongest version ("MUST") should be the one most likely to survive.
4. "exclusive" default not stated prominently
- Use comms_reserve(paths=[...], exclusive=true) for exclusive access
This is a bullet in a list. If compressed away, a worker might call comms_reserve without exclusive=true, allowing concurrent edits to the same file.
Proposed Hardening
- Replace parenthetical access controls with explicit section headers: "## Coordinator-Only Operations" and "## Worker-Only Operations"
- Inline the conflict resolution steps at the point of use rather than as a separate section
- Ensure the strongest phrasing of shared constraints is the one that appears first and most prominently
- Make
exclusive=true the documented default behavior, not an option to remember
References
Summary
internal/agentkit/content/skills/forge-coordination/SKILL.mddocuments the full coordinator and worker protocols. Critical scoping restrictions are expressed as parenthetical asides or single words in bullet lists — exactly the content that DCP context compression drops first.Related to unbound-force/unbound-force#346 — same class of vulnerability (prompt constraints that do not survive context compression).
Specific Fragilities
1. "(coordinator only)" parenthetical
The parenthetical "(coordinator only)" is the entire access-control constraint. Under compression, this becomes "use comms_release_all for emergencies" — and a worker could call it, releasing all reservations system-wide including those held by other active workers.
2. Conflict Resolution sequence flattened
This three-step escalation process compresses to "resolve conflicts." An agent might skip negotiation and go straight to escalation, or worse, call
comms_release_all()(which it learned about in the same skill).3. Duplicate constraints with different strength levels
The file reservation rule appears in multiple places:
A compressor picking one of these three might choose the weakest phrasing. The strongest version ("MUST") should be the one most likely to survive.
4. "exclusive" default not stated prominently
This is a bullet in a list. If compressed away, a worker might call
comms_reservewithoutexclusive=true, allowing concurrent edits to the same file.Proposed Hardening
exclusive=truethe documented default behavior, not an option to rememberReferences
internal/agentkit/content/skills/forge-coordination/SKILL.md