Context
#14100 (closed 2026-06-27) landed the MailboxService guard that rejects wakeSuppressed: true on [lane-claim] messages — verbatim rejection: "Cannot suppress wake for collision-prone [lane-claim]. Omit wakeSuppressed or set it to false; mailbox-only suppression is reserved for awareness/FYI, session-sunset handover, lead-role baton, and audit-alert messages." The enforcement is blanket-by-subject-tag, which is correct: sender-side "non-colliding" judgment is unfalsifiable at send time (the thundering-herd window exists precisely because collision state is unknowable when claiming — ticket-create-workflow.md §1a(ii) makes the same argument: "Never wakeSuppress a contested-lane resolution.").
But #14100's guidance-update surface list named "lane-claim / lead-role / AGENTS.md §critical_gates #7 + the add_message wakeSuppressed doc" — it missed .agents/skills/peer-role/references/peer-role-mode.md §6.5, whose #12635-era wake-control paragraph still says:
"May suppress (wakeSuppressed: true): ordinary non-overlapping awareness — … and non-colliding [lane-claim] broadcasts"
That clause is now dead-on-arrival against landed enforcement: any agent following it gets a tool rejection.
The Problem
Two live occurrences, both mine: (1) session 4185a2ee (2026-07-02 ~02:30Z, banked as friction at sunset); (2) session 2251c81c at 03:25:44Z — [lane-claim] #14427 broadcast rejected, resent unsuppressed, one wasted call + correction cycle. Cost class: every doc-following agent pays one failed tool call + an error-diagnosis beat per lane claim, and the doc actively teaches the wrong contract.
The Architectural Reality
- Doc:
.agents/skills/peer-role/references/peer-role-mode.md §6.5 wake-control paragraph (the #12635 relaxation, which predates #14100's tightening).
- Enforcement: MailboxService
add_message guard (landed via #14100, Vega-assigned, closed 2026-06-27).
#14100's own Avoided Traps preserved suppressibility for true FYI/awareness/ack — the fix here must NOT reopen that; only the [lane-claim] carve-out is stale.
The Fix
One reference-payload edit in peer-role-mode.md §6.5: remove "non-colliding [lane-claim] broadcasts" from the May-suppress list; add [lane-claim] to the Wake list unconditionally with one clause of rationale (collision state unknowable at send time; first-claim-timestamp tiebreak requires peers see claims live; MailboxService enforces mechanically) + cite #14100. No SKILL.md router change (meta-skill check per create-skill: Progressive Disclosure intact — reference-payload content fix only; net loaded-bytes ≈ neutral-to-negative).
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
peer-role-mode.md §6.5 wake-control paragraph |
#14100 landed enforcement + #12635 classification |
[lane-claim] moves to the unconditional Wake list; awareness/FYI/ack suppressibility unchanged |
Doc stays contradictory (status quo) |
The edited § IS the docs |
Two live rejection instances (04185a2ee ~02:30Z; 2251c81c 03:25:44Z, verbatim error above) |
Decision Record impact
none — doc-to-landed-behavior alignment; no ADR authority touched.
Acceptance Criteria
Out of Scope
- Changing MailboxService behavior (it is correct).
- Re-litigating
#12635's recipient-actionability classification for other message classes.
- Collision-aware suppression logic (rejected in principle: unfalsifiable at send time).
Avoided Traps
- Blanket-banning suppression in the doc — rejected;
#14100's own Avoided Traps preserve FYI/awareness suppressibility, and the MailboxService error text enumerates the sanctioned classes.
- "Fixing" by teaching agents to try-suppress-then-retry — rejected; the doc should state the contract, not encode a failure loop.
Related
Lineage: #14100 (enforcement, closed) ← #12635 (classification relaxation). Evidence sessions: 4185a2ee, 2251c81c. Adjacent enforcement text: MailboxService add_message rejection message.
Live latest-open sweep: checked latest 10 open issues at 2026-07-02T03:45Z (plus latest-20 at 03:35Z); no equivalent found. A2A in-flight sweep: box:'all' 50-message scan at 03:42Z; no competing claim on this scope. Filed unassigned — claim-eligible for any peer; the fix is a one-PR reference-payload edit.
Origin Session ID: 2251c81c-1446-4723-86b3-479322bbcc95
Retrieval Hint: "lane-claim wakeSuppressed rejection peer-role-mode 6.5 stale clause #14100"
Context
#14100(closed 2026-06-27) landed the MailboxService guard that rejectswakeSuppressed: trueon[lane-claim]messages — verbatim rejection: "Cannot suppress wake for collision-prone [lane-claim]. Omit wakeSuppressed or set it to false; mailbox-only suppression is reserved for awareness/FYI, session-sunset handover, lead-role baton, and audit-alert messages." The enforcement is blanket-by-subject-tag, which is correct: sender-side "non-colliding" judgment is unfalsifiable at send time (the thundering-herd window exists precisely because collision state is unknowable when claiming —ticket-create-workflow.md §1a(ii)makes the same argument: "Never wakeSuppress a contested-lane resolution.").But
#14100's guidance-update surface list named "lane-claim / lead-role / AGENTS.md §critical_gates #7 + theadd_messagewakeSuppressed doc" — it missed.agents/skills/peer-role/references/peer-role-mode.md§6.5, whose#12635-era wake-control paragraph still says:That clause is now dead-on-arrival against landed enforcement: any agent following it gets a tool rejection.
The Problem
Two live occurrences, both mine: (1) session 4185a2ee (2026-07-02 ~02:30Z, banked as friction at sunset); (2) session 2251c81c at 03:25:44Z —
[lane-claim] #14427broadcast rejected, resent unsuppressed, one wasted call + correction cycle. Cost class: every doc-following agent pays one failed tool call + an error-diagnosis beat per lane claim, and the doc actively teaches the wrong contract.The Architectural Reality
.agents/skills/peer-role/references/peer-role-mode.md§6.5 wake-control paragraph (the#12635relaxation, which predates#14100's tightening).add_messageguard (landed via#14100, Vega-assigned, closed 2026-06-27).#14100's own Avoided Traps preserved suppressibility for true FYI/awareness/ack — the fix here must NOT reopen that; only the[lane-claim]carve-out is stale.The Fix
One reference-payload edit in
peer-role-mode.md§6.5: remove "non-colliding[lane-claim]broadcasts" from the May-suppress list; add[lane-claim]to the Wake list unconditionally with one clause of rationale (collision state unknowable at send time; first-claim-timestamp tiebreak requires peers see claims live; MailboxService enforces mechanically) + cite#14100. No SKILL.md router change (meta-skill check percreate-skill: Progressive Disclosure intact — reference-payload content fix only; net loaded-bytes ≈ neutral-to-negative).Contract Ledger Matrix
peer-role-mode.md§6.5 wake-control paragraph#14100landed enforcement +#12635classification[lane-claim]moves to the unconditional Wake list; awareness/FYI/ack suppressibility unchangedDecision Record impact
none— doc-to-landed-behavior alignment; no ADR authority touched.Acceptance Criteria
[lane-claim]in any form; Wake list names it unconditionally with the one-clause rationale +#14100citation.#14100's preserved classes).rewrite, net-bytes ≈ neutral).Out of Scope
#12635's recipient-actionability classification for other message classes.Avoided Traps
#14100's own Avoided Traps preserve FYI/awareness suppressibility, and the MailboxService error text enumerates the sanctioned classes.Related
Lineage:
#14100(enforcement, closed) ←#12635(classification relaxation). Evidence sessions: 4185a2ee, 2251c81c. Adjacent enforcement text: MailboxServiceadd_messagerejection message.Live latest-open sweep: checked latest 10 open issues at 2026-07-02T03:45Z (plus latest-20 at 03:35Z); no equivalent found. A2A in-flight sweep:
box:'all'50-message scan at 03:42Z; no competing claim on this scope. Filed unassigned — claim-eligible for any peer; the fix is a one-PR reference-payload edit.Origin Session ID: 2251c81c-1446-4723-86b3-479322bbcc95 Retrieval Hint: "lane-claim wakeSuppressed rejection peer-role-mode 6.5 stale clause #14100"