Context
Graduation Issue from Discussion #11206 — 3-way swarm convergence on Option A-prime (refined coordination protocol) on 2026-05-11.
Origin friction-anchor: operator @tobiu surfaced lead-role discipline gap during today's session:
"lead should name a focus item, like neo v13. peers choose their own lanes, write an a2a message to let others know, to avoid conflicting paths, merge conflicts or even picking up the same tickets."
The 17+ A2A messages from lead during today's session contained ZERO explicit /peer-role skill-trigger phrases. Empirical pattern: GPT defaulted to ack-and-idle; Gemini defaulted to self-claim (35-second-margin parallel-PR collision on PR #11203 narrowly avoided). Operator manually intervened to break the pattern.
Cross-family convergence sources:
- @neo-gpt's Option A-prime refinement: discussioncomment-16879172 — live source-of-authority collision check at lane-claim time
- @neo-gemini-3-1-pro's OQ refinements: MESSAGE:4a917ae0 (14:00Z) — OQ1 (read-only exempt) + OQ3 (
Current Public Authority > Handoff A2A > Recent Lane Claim)
- @neo-opus-4-7 (author) consensus comment + graduation: discussioncomment-16879975
The Problem
Current lead-role-mode.md + peer-role-mode.md + AGENTS.md §15.6 anchor codify:
- The Flat Peer-Team principle ("lead doesn't delegate lanes; lead surfaces options")
- The lead-role and peer-role mode-discipline payloads
- The activation-mechanism for
/pr-review skill-trigger (per pull-request-workflow §6.2)
What's MISSING (per Discussion #11206 evidence):
- Focus-naming mandate (lead step 2): no required practice of naming strategic focus area on lead-role activation
- Explicit
/peer-role skill-trigger mandate (lead step 3): captured narrowly by #11205 + PR #11208 (in flight) — this Issue subsumes that piece + extends
- Lane-announce-A2A protocol (peer step 5): no required practice of announcing lane-choice via A2A before write-operations
- Live source-of-authority collision check (peer step 6 per Option A-prime): no required practice of checking current assignee + open PRs + recent A2As + write-surface boundary at lane-claim time
- Conflict-resolution hierarchy (per OQ3): no codified ordering between competing claims
The Architectural Reality
File:line surfaces touched (V-B-A'd via operator + cross-family convergence):
.agents/skills/lead-role/references/lead-role-mode.md — focus-naming mandate addition (extends existing §2.1 Coordination Pattern); #11205's §2.2 explicit-trigger mandate already in flight via PR #11208 (commit 475ff6d5f)
.agents/skills/peer-role/references/peer-role-mode.md — lane-announce-A2A protocol + collision-check protocol + conflict-resolution hierarchy + OQ1 read-only exemption
AGENTS.md §15.6 — 2-3 line compressed pointer (mirror of §3.5 V-B-A pointer pattern from Step 2.5 graduation)
- Cross-references:
pull-request-workflow §6.2 (mirrored pattern), ideation-sandbox-workflow §5.2 (Step 2.5 sweep), #11195 30-day validation tracker
The Fix
AC1: lead-role-mode.md focus-naming mandate
Extend §2.1 Coordination Pattern (or add new §2.3) with focus-naming mandate. Lead step 2: "Lead names a strategic focus item — neither too-broad ('Neo v13' = 300+ items) nor too-narrow ('PR #N fix' = direct assignment). Sample-correct grain: Epic-level, substrate-cluster-level, major-feature-level. Per §15.6 'lead surfaces options' → focus must afford ≥2-3 self-selectable lanes."
AC2: peer-role-mode.md lane-announce-A2A protocol + collision-check + conflict-resolution
Add new section(s) mandating:
Lane-announce-A2A protocol (peer step 5):
- BEFORE any write-operation (state mutation, PR open, issue assignment), peer MUST send A2A broadcast with subject
[lane-claim] taking #N (or equivalent)
- A2A body includes: scope-boundary statement, expected write-surface, predicted timeline
- READ-ONLY diagnostic sweeps EXEMPT per OQ1
Source-of-authority collision check (peer step 6 per Option A-prime):
- Pre-claim check:
gh issue view <N> for current assignee; gh pr list for open PRs touching same write-surface; recent A2A mailbox scan for lane-claim broadcasts in past 30 minutes
- Surface findings in the lane-claim A2A (e.g., "I see #11198 is unassigned; no open PRs touching IssueSyncer.mjs; no recent lane-claim A2As — claiming")
Conflict-resolution hierarchy (per OQ3):
Current Public Authority (assignee + open PR + write-surface) > Handoff A2A (explicit baton-pass) > Recent Lane Claim (timing)
- If 2 peers self-select same lane: peer-with-Current-Public-Authority wins; peer-with-Recent-Lane-Claim yields (or transitions to peer-role review)
- Today's empirical anchor: PR #11199 Gemini's
[lane-claim] AC4 (#11196) claimed at 12:33:49Z lost to PR #11203 already-opened at 12:33:14Z by 35-second margin under current-but-not-yet-codified Authority-hierarchy
AC3: AGENTS.md §15.6 compressed pointer
2-3 line addition to §15.6 (mirror of §3.5 Step 2.5 pointer pattern):
**Mechanical coordination protocol** (per Discussion #11206 graduation): lead-role focus-naming + explicit /peer-role skill-trigger + peer lane-announce-A2A + source-of-authority collision check + conflict-resolution hierarchy. Substantive content in `.agents/skills/lead-role/references/lead-role-mode.md` + `.agents/skills/peer-role/references/peer-role-mode.md`. Auto-fires on /lead-role activation.
AC4: Cross-family validation hook to #11195
#11195 (Step 2.5 30-day post-merge validation tracker) extends AC6 to inherit lead-role + peer-role coordination protocol compliance tracking. At Day-30 retrospective, audit next 3 lead-role sessions:
- Did lead name focus? Y/N + scope-correct
- Did lead use explicit
/peer-role trigger phrases? Y/N for each substrate-validation A2A
- Did peers send lane-announce-A2As before write-operations? Y/N for each PR-open
- Did peers run source-of-authority collision check? Y/N for each lane-claim
- Were any collisions resolved by Authority-hierarchy? Y/N + outcome
This ticket's AC1 + AC3 explicitly subsume #11205 (#11208 in flight) which captures the narrow explicit-trigger mandate piece. Post-PR-#11208 merge + post-this-ticket-implementation, the full Option A-prime protocol is codified durably.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
lead-role-mode.md focus-naming mandate |
Discussion #11206 OQ2 resolution |
Lead names focus on /lead-role activation with ≥2-3 self-selectable lanes |
If focus is too-broad/too-narrow, peers signal back via A2A |
Inline in skill payload |
Verify next 3 lead-role sessions use scope-correct focus |
peer-role-mode.md lane-announce-A2A protocol |
Discussion #11206 + OQ1 resolution |
Peer sends [lane-claim] A2A before write-operations; read-only sweeps exempt |
If peer skips, lead-role + cross-family review catch via Authority-hierarchy |
Inline in skill payload |
Verify lane-claim A2A precedes every PR-open + issue-assignment for 30 days |
peer-role-mode.md collision-check protocol |
Discussion #11206 Option A-prime + #10164 substrate |
Pre-claim gh-CLI + A2A scan; findings surfaced in lane-claim A2A |
If peer skips, parallel-claim collision risk per PR #11199 + PR #11203 empirical anchors |
Inline in skill payload |
Verify collision-prevented rate post-merge (currently 0 collisions today only by 35-sec timing margin) |
peer-role-mode.md conflict-resolution hierarchy |
Discussion #11206 OQ3 resolution |
Current Public Authority > Handoff A2A > Recent Lane Claim |
Tie-break via cross-family A2A |
Inline in skill payload |
Verify next 3 conflict-resolution incidents follow the hierarchy |
AGENTS.md §15.6 compressed pointer |
Discussion #11206 + this Issue |
2-3 line pointer (mirror §3.5 Step 2.5 pattern) |
None — pointer-only constraint |
Inline |
Verify §15.6 byte-count addition ≤350 bytes |
Acceptance Criteria
Out of Scope
- Automating the collision-check (post-A2A NLP parse, ticket-create-time validation gate) — discipline-tier substrate for now; mechanical-enforcement automation deferred to follow-up if discipline proves load-bearing after 30-day window
- Mechanical-enforcement for focus-naming (no machine-check; relies on lead discipline)
- Cross-substrate identity canonicalization (separate concern; #11181/#11182 family)
- AGENTS.md §3.5 V-B-A core-value modification (only §15.6 compressed pointer extends here)
Avoided Traps
- Hierarchical lead-assigns-lanes (Option E in Discussion #11206 matrix): rejected per AGENTS.md §15.6 anti-pattern explicit. Lead does NOT delegate worker-slices; lead surfaces focus + activates skill-modes; peers retain agency.
- Lane-announce-A2A on every routine action: rejected per OQ1 — read-only sweeps exempt. Discipline-fatigue mitigation.
- Pure-timing conflict resolution (first-PR-open wins): rejected per Option A-prime — Current Public Authority hierarchy supersedes timing. Today's PR #11199 vs PR #11203 35-second margin is exactly the case that motivated this refinement.
- Mandating explicit /peer-role trigger on every A2A (including pure-informational coordination): rejected per #11205 §2.2 scope — only substantive substrate-validation work warrants the trigger.
- Subsuming the broader substrate-discipline cluster (#11195 + #11192 + #11030 + this): rejected per OQ5 resolution — keep as separate anchor-tickets; each has distinct surface + trigger.
Related
- Discussion #11206 (parent ideation; 3-way swarm convergence)
- #11205 + PR #11208 (in flight; narrow explicit-trigger mandate piece; AC1 subsumes; AC5 cites)
- #11195 (Step 2.5 30-day post-merge validation tracker; AC6 inherits cross-validation coverage)
- #11192 + PR #11194 (MERGED; Step 2.5 Architectural Step-Back; this Issue is the convergence-phase coordination companion to Step 2.5's divergence-phase gate)
- AGENTS.md §15.6 (Flat Peer-Team Anchor; this Issue's mechanical-codification target)
pull-request-workflow §6.2 (mirrored /pr-review skill-trigger mandate; PR #11127 cycle-1 empirical anchor)
- #10164 (pre-PR overlap detection; empirical anchor #1 for the collision-check protocol; today's session is anchor #3 for that ticket)
- PR #11199 vs PR #11203 35-second margin (today's collision-near-miss empirical anchor for Authority-hierarchy resolution)
Origin Session ID
c2912891-b459-4a03-b2af-154d5e264df1 (continuing in c0d5c29d-dc70-44c8-b5af-d3f6c59936ee)
Handoff Retrieval Hints
query_raw_memories(query="lead-role peer-role coordination protocol focus-naming lane-announce collision-check Option A-prime")
ask_knowledge_base(query="lead-role peer-role skill discipline activation A2A mandate")
- Discussion convergence anchors:
https://github.com/neomjs/neo/discussions/11206#discussioncomment-16876724 (GPT Option A-prime) + 16879975 (Opus consensus + graduation)
- File anchors:
.agents/skills/{lead-role,peer-role}/references/ + AGENTS.md §15.6 + pull-request-workflow §6.2
Context
Graduation Issue from Discussion #11206 — 3-way swarm convergence on Option A-prime (refined coordination protocol) on 2026-05-11.
Origin friction-anchor: operator @tobiu surfaced lead-role discipline gap during today's session:
The 17+ A2A messages from lead during today's session contained ZERO explicit
/peer-roleskill-trigger phrases. Empirical pattern: GPT defaulted to ack-and-idle; Gemini defaulted to self-claim (35-second-margin parallel-PR collision on PR #11203 narrowly avoided). Operator manually intervened to break the pattern.Cross-family convergence sources:
Current Public Authority > Handoff A2A > Recent Lane Claim)The Problem
Current
lead-role-mode.md+peer-role-mode.md+ AGENTS.md §15.6 anchor codify:/pr-reviewskill-trigger (perpull-request-workflow §6.2)What's MISSING (per Discussion #11206 evidence):
/peer-roleskill-trigger mandate (lead step 3): captured narrowly by #11205 + PR #11208 (in flight) — this Issue subsumes that piece + extendsThe Architectural Reality
File:line surfaces touched (V-B-A'd via operator + cross-family convergence):
.agents/skills/lead-role/references/lead-role-mode.md— focus-naming mandate addition (extends existing §2.1 Coordination Pattern); #11205's §2.2 explicit-trigger mandate already in flight via PR #11208 (commit475ff6d5f).agents/skills/peer-role/references/peer-role-mode.md— lane-announce-A2A protocol + collision-check protocol + conflict-resolution hierarchy + OQ1 read-only exemptionAGENTS.md§15.6 — 2-3 line compressed pointer (mirror of §3.5 V-B-A pointer pattern from Step 2.5 graduation)pull-request-workflow §6.2(mirrored pattern),ideation-sandbox-workflow §5.2(Step 2.5 sweep),#1119530-day validation trackerThe Fix
AC1:
lead-role-mode.mdfocus-naming mandateExtend §2.1 Coordination Pattern (or add new §2.3) with focus-naming mandate. Lead step 2: "Lead names a strategic focus item — neither too-broad ('Neo v13' = 300+ items) nor too-narrow ('PR #N fix' = direct assignment). Sample-correct grain: Epic-level, substrate-cluster-level, major-feature-level. Per §15.6 'lead surfaces options' → focus must afford ≥2-3 self-selectable lanes."
AC2:
peer-role-mode.mdlane-announce-A2A protocol + collision-check + conflict-resolutionAdd new section(s) mandating:
Lane-announce-A2A protocol (peer step 5):
[lane-claim] taking #N(or equivalent)Source-of-authority collision check (peer step 6 per Option A-prime):
gh issue view <N>for current assignee;gh pr listfor open PRs touching same write-surface; recent A2A mailbox scan for lane-claim broadcasts in past 30 minutesConflict-resolution hierarchy (per OQ3):
Current Public Authority (assignee + open PR + write-surface) > Handoff A2A (explicit baton-pass) > Recent Lane Claim (timing)[lane-claim] AC4 (#11196) claimedat 12:33:49Z lost to PR #11203 already-opened at 12:33:14Z by 35-second margin under current-but-not-yet-codified Authority-hierarchyAC3: AGENTS.md §15.6 compressed pointer
2-3 line addition to §15.6 (mirror of §3.5 Step 2.5 pointer pattern):
AC4: Cross-family validation hook to #11195
#11195(Step 2.5 30-day post-merge validation tracker) extends AC6 to inherit lead-role + peer-role coordination protocol compliance tracking. At Day-30 retrospective, audit next 3 lead-role sessions:/peer-roletrigger phrases? Y/N for each substrate-validation A2AAC5: Subsume #11205 + #11208
This ticket's AC1 + AC3 explicitly subsume #11205 (#11208 in flight) which captures the narrow explicit-trigger mandate piece. Post-PR-#11208 merge + post-this-ticket-implementation, the full Option A-prime protocol is codified durably.
Contract Ledger Matrix
lead-role-mode.mdfocus-naming mandatepeer-role-mode.mdlane-announce-A2A protocol[lane-claim]A2A before write-operations; read-only sweeps exemptpeer-role-mode.mdcollision-check protocolpeer-role-mode.mdconflict-resolution hierarchyCurrent Public Authority > Handoff A2A > Recent Lane ClaimAGENTS.md§15.6 compressed pointerAcceptance Criteria
lead-role-mode.mdfocus-naming mandate added (extends §2.1 OR new §2.3); ≥2-3 self-selectable-lanes constraint codified per OQ2peer-role-mode.mdlane-announce-A2A protocol + collision-check protocol + conflict-resolution hierarchy + OQ1 read-only exemption addedAGENTS.md§15.6 compressed pointer added (≤350 bytes; mirror §3.5 Step 2.5 pattern)#1119530-day Step 2.5 validation tracker AC6 extended to inherit lead/peer-role coordination protocol compliance auditsOut of Scope
Avoided Traps
Related
pull-request-workflow §6.2(mirrored/pr-reviewskill-trigger mandate; PR #11127 cycle-1 empirical anchor)Origin Session ID
c2912891-b459-4a03-b2af-154d5e264df1(continuing inc0d5c29d-dc70-44c8-b5af-d3f6c59936ee)Handoff Retrieval Hints
query_raw_memories(query="lead-role peer-role coordination protocol focus-naming lane-announce collision-check Option A-prime")ask_knowledge_base(query="lead-role peer-role skill discipline activation A2A mandate")https://github.com/neomjs/neo/discussions/11206#discussioncomment-16876724(GPT Option A-prime) +16879975(Opus consensus + graduation).agents/skills/{lead-role,peer-role}/references/+AGENTS.md §15.6+pull-request-workflow §6.2