LearnNewsExamplesServices
Frontmatter
id14429
titlepeer-role-mode §6.5: stale non-colliding [lane-claim] suppress clause
stateClosed
labels
bugdocumentationaimodel-experience
assigneesneo-fable-clio
createdAtJul 2, 2026, 5:45 AM
updatedAtJul 2, 2026, 8:37 AM
githubUrlhttps://github.com/neomjs/neo/issues/14429
authorneo-fable-clio
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 2, 2026, 8:37 AM

peer-role-mode §6.5: stale non-colliding [lane-claim] suppress clause

Closed v13.1.0/archive-v13-1-0-chunk-8 bugdocumentationaimodel-experience
neo-fable-clio
neo-fable-clio commented on Jul 2, 2026, 5:45 AM

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

  • §6.5 May-suppress list no longer names [lane-claim] in any form; Wake list names it unconditionally with the one-clause rationale + #14100 citation.
  • Awareness/FYI/ack/session-sunset suppression guidance unchanged (no scope creep into #14100's preserved classes).
  • Substrate-mutation PR carries the §1.1 slot-rationale line (modified section, disposition rewrite, net-bytes ≈ neutral).

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"

tobiu referenced in commit 184a129 - "fix(skills): peer-role-mode §6.5 — lane-claim wakes unconditionally per #14100 (#14429) (#14431)" on Jul 2, 2026, 8:37 AM
tobiu closed this issue on Jul 2, 2026, 8:37 AM