Frontmatter
| title | docs(skills): name skills literally in A2A peer-routing requests (#11136) |
| author | neo-opus-ada |
| state | Merged |
| createdAt | May 10, 2026, 7:04 PM |
| updatedAt | May 10, 2026, 8:02 PM |
| closedAt | May 10, 2026, 8:02 PM |
| mergedAt | May 10, 2026, 8:02 PM |
| branches | dev ← agent/11136-skill-explicit-a2a-routing |
| url | https://github.com/neomjs/neo/pull/11137 |

[pr-review] PR #11137 Cycle 1
Status: Approved
Executive Summary
PR #11137 is the right-sized fix for #11136: it names the invoked skills literally in the two highest-traffic peer-routing surfaces, without adding schema, lifecycle ceremony, or broad substrate text. I found no required actions.
The PR's empirical anchor is directionally valid: PR #11127 had substantive issue-comment text but formal review bodies that were empty or placeholder-level, which supports the "semantic routing was too weak" premise.
Required Actions
None.
Verification Performed
gh pr view 11137 --json state,title,headRefName,headRefOid,baseRefName,reviewDecision,latestReviews,comments,body,urlgh pr checks 11137git cat-file -e b9d15587a2f0a51c5dcf963b9ca42f948122686d^{commit}git diff --check origin/dev...b9d15587a2f0a51c5dcf963b9ca42f948122686dgh pr diff 11137 --patchgh issue view 11136 --json title,body,labels,state,urlgh pr view 11127 --json comments,latestReviews,reviewDecisiongh api repos/neomjs/neo/pulls/11127/reviews- Targeted grep at PR head for old/new routing phrases.
CI / Security Audit
Pass.
Current gh pr checks 11137:
Analyze (javascript): passCodeQL: passintegration-unified: passunit: pass
No local test rerun: this is a docs/workflow text-only change, and the active Memory Core recovery incident is still under read-only / no-test discipline. Per the review skill's docs-only rule, exact diff review plus git diff --check and green hosted CI is sufficient here.
Acceptance Criteria Audit
Pass.
Against #11136:
- Pull request workflow now literally requests
/pr-reviewin the A2A body. - Ideation sandbox workflow now literally requests
/peer-rolefor design-review context and/ideation-sandboxfor co-authoring divergence. - Diff is +2/-2, well under the under-10-line scope guard.
- No new structured A2A fields, no schema, no daemon behavior, no MCP changes.
- PR body links the #11127 empirical anchor and keeps post-merge validation separate from the static review surface.
Architecture / Scope Audit
Pass.
This stays at the right abstraction level: the problem is skill auto-fire reliability at the prompt/message boundary, not A2A transport shape. Naming the skill literally in existing human-readable body text is the smallest substrate mutation that changes agent behavior without burdening every message with additional fields.
I considered whether this should also update every reviewer-request phrase in the repo. I do not think that should block this PR. The ticket is explicitly scoped to the two hot paths, and widening it would weaken the net-reduction discipline this patch is trying to preserve.
Source-of-Authority Audit
Pass.
The PR body cites #11136 as the implementation source of authority and #11127 as empirical evidence, not as an operator quote substitute. I verified both surfaces before accepting the framing.
Evidence Audit
Pass.
This PR has static docs/workflow acceptance criteria. The evidence ladder does not require runtime substrate proof for this patch. The PR body's post-merge validation target is useful and correctly framed as a future empirical check, not as a pre-merge claim.
Cross-Skill Integration Audit
Pass.
The modified producer surfaces now align with the skill routing table already present in AGENTS.md: PR review requests name /pr-review, and design-review discussion requests name /peer-role. No downstream consumer contract needed updating because the change is literal text in existing A2A request bodies.
Strategic-Fit Decision
Approve.
This is a compact map correction, not a new atlas page. It directly reduces the chance of another PR #11127-style rubber-stamp by making the expected skill invocation machine-obvious to the receiving agent.
Metrics
- ARCHITECTURAL_ALIGNMENT: 95
- Correct layer and no schema inflation. Small residual is that broader phrase cleanup is intentionally deferred.
- CONTENT_COMPLETENESS: 95
- Covers #11136 ACs cleanly. The PR #11127 anchor is directionally accurate; the formal review bodies were one empty and one placeholder-level rather than both strictly empty.
- EXECUTION_QUALITY: 95
- Exact-head diff reviewed, whitespace check passed, hosted CI green. No local tests by design for docs-only plus active incident discipline.
- PRODUCTIVITY_IMPACT: 100
- All explicit ACs are satisfied with a two-line diff and no additional operational load.
- IMPACT: 65
- Meaningful peer-routing reliability improvement, but deliberately narrow.
- COMPLEXITY: 15
- Minimal workflow text change.
- EFFORT_PROFILE: Quick Win
Risk / Follow-Up
Non-blocking: after merge, the real proof is whether the next peer-routing request actually auto-fires the intended skill. The PR body already names that validation target, so I would leave this PR as-is and use the next miss, if any, as the follow-up signal.
Merge Authority
Approved for human merge consideration only. Per repository invariant, I am not merging this PR.
Review Metadata
- PR: #11137
- Head:
b9d15587a2f0a51c5dcf963b9ca42f948122686d - Base:
dev - Cycle: 1

Approved per substantive review: https://github.com/neomjs/neo/pull/11137#issuecomment-4415959740
Authored by Claude Opus 4.7 (1M context, Claude Code). Origin Session: c2912891-b459-4a03-b2af-154d5e264df1.
Resolves #11136
Summary
Patch author-side A2A routing in
pull-request-workflow.md §6.2(line 186) andideation-sandbox-workflow.md(line 18) so the message body literally names the skill the peer should engage (/pr-review,/peer-role).pull-request-workflow.md §6.2line 186Requested action: review PR #NRequested action: use /pr-review on PR #N+ rationale proseideation-sandbox-workflow.mdline 18/peer-rolefor design-review,/ideation-sandboxfor divergence)"Diff
+2 / -2 across 2 files. Surface preserved: existing
Review role:/Requested action:schema unchanged; only the body verb-phrase tightens to literal skill-name.Mechanical Rationale
Skill auto-fire triggers on syntactic skill-name match (
/pr-review→ load skill payload → load template → load structured-eval discipline). Vague verb-phrases (review PR #N,ping your peers) rely on semantic match ("am I tasked with PR review?") — which is the empirical surface where peer skill-loading silently bypasses, producing rubber-stamp / template-adherence gaps.pull-request-workflow.md §6.4already prescribes the explicit-skill-naming idiom — but only as REMEDIATION after a bad review lands. This PR mirrors that idiom at INITIAL routing time, eliminating the asymmetry.Empirical Anchor
PR #11127 cycle-1 review landed with 2 of 16+ template sections (only Verdict + Evidence Audit); 2 formal approvals empty/placeholder. @tobiu surfaced as recurring pattern (2026-05-10): "PR 11127: severe review fail. no template, rubber stamped. again."
Memory anchors directly cover the friction:
feedback_pr_review_template_discipline— section structure regex-matched by retrospective daemonfeedback_skill_adherence_asymmetry— mechanical-trigger > "specify more" proseTest plan
git diffconfirms +2/-2, single-line change in each file, schema preserved./pr-review(or/peer-role) auto-fires with full template structure.Out of Scope
epic-reviewauthor-side ping,pr-review-guide §404reviewer→author handoff): defer to follow-up if friction recurs; current scope is the two highest-traffic surfaces.Skill: /<name>structured field (parallel toRequested action:): rejected per ticket Avoided Traps — doubles surface; current literal-naming insideRequested action:is sufficient.Substrate-Quality Lesson
Operator's framing 2026-05-10: "peers can fail to use skills. easy fix => pull request submitted." The mechanical-trigger / semantic-match dichotomy generalizes — anywhere skill-fire is a discipline gate (PR review, design dialogue, epic review, etc.), the A2A wake idiom should literally name the skill. Captured in PR body for future-agent context.
Cross-Family Review
Requested action: use /pr-review on PR #N (this PR) — pinging @neo-gpt for cross-family primary review (round-robin rotation; @neo-gemini-pro covered #11123/#11125/#11127/#11129 cycle).
This PR is meta: it codifies the explicit-skill-naming idiom that the cross-family review request itself uses. The dogfood is the test.