Premise
Skill auto-fire (the mechanism that loads template + structured-eval discipline + graph-ingestion-quality structure) triggers on syntactic skill-name match in agent context (e.g., reading /pr-review literally fires the skill payload). Current author-side A2A routing in pull-request-workflow.md §6.2 and ideation-sandbox-workflow.md line 18 use vague verb-phrases (review PR #N / ping your peers) that rely on semantic match ("am I tasked with a PR review?") — which is exactly where peer skill-loading silently bypasses.
Empirical anchor (2026-05-10): PR #11127 review failure. Cycle-1 review comment landed with 2 of 16+ template sections (only Verdict + Evidence Audit); 2 formal approvals empty/placeholder. @tobiu surfaced as recurring pattern: "PR 11127: severe review fail. no template, rubber stamped. again." Pattern matches pre-existing memory anchors (feedback_pr_review_template_discipline, feedback_skill_adherence_asymmetry).
pull-request-workflow.md §6.4 already prescribes the explicit-skill-naming idiom ("A2A the reviewer to redo via /pr-review") — but only as REMEDIATION after a bad review lands. §6.2 (initial routing) does not. Asymmetry. Operator framing: "our workflow says 'use a2a to ask a peer for a review'. it could say: 'use an a2a message to tell a peer to use the pr-review SKILL on PR id x'."
Prescription
Patch A2A author-side routing surfaces to literally name the skill the receiving peer should engage:
Surface 1 — pull-request-workflow.md §6.2 line 186:
- Current:
Include \Requested action: review PR #N`.`
- Patched:
Include \Requested action: use /pr-review on PR #N`.`
Surface 2 — ideation-sandbox-workflow.md line 18:
- Current: "you MUST use the `add_message` tool to ping your peers immediately after creating or significantly updating the discussion."
- Patched: append "The A2A body MUST literally name the skill the peer should engage (`/peer-role` for design-review context on Discussion #X) so skill auto-fire mechanically loads the discipline payload."
Symmetric optional sister surfaces (defer to follow-up if needed):
pull-request-workflow.md §6.2 line 215 (divergence escalation re-review post-resolution)
epic-review author-side ping (currently no surface; out of scope)
Avoided Traps
| Considered |
Rejected |
Rationale |
New Skill: /<name> structured field alongside Requested action: |
Reject for narrow PR |
Doubles surface; redundant with literal naming inside Requested action: body. Future evolution if backward-grep pressure surfaces. |
| Codify as §0 hard-gate invariant |
Reject |
Soft-guideline patch is the right tier (operator framing: "easy fix"). Mechanical-effect is large; substrate-cost is tiny. |
| File mechanical-CI-gate (template-structural-completeness check) |
Reject for this ticket |
Different substrate-direction; sub of #10537 territory. Out of scope. |
| Per-skill ticket fan-out (one ticket per surface) |
Reject |
Substrate-symmetric idiom warrants single ticket + single PR. Per feedback_substrate_scope_restraint — one shape, one ticket. |
Acceptance Criteria
Empirical Anchors
- PR #11127 — cycle-1 review with 2 of 16+ template sections (
gh pr view 11127 --json reviews 2026-05-10)
feedback_pr_review_template_discipline — section structure regex-matched by retrospective daemon
feedback_skill_adherence_asymmetry — mechanical gates as substrate-correct fix; "specify more" amplifies Claude-bias zero-effect on Gemini
- Operator @tobiu (2026-05-10) — "if multiple skills need updates to more clearly ask for skill usage => i fully support this."
— @neo-opus-4-7
Premise
Skill auto-fire (the mechanism that loads template + structured-eval discipline + graph-ingestion-quality structure) triggers on syntactic skill-name match in agent context (e.g., reading
/pr-reviewliterally fires the skill payload). Current author-side A2A routing inpull-request-workflow.md §6.2andideation-sandbox-workflow.mdline 18 use vague verb-phrases (review PR #N/ping your peers) that rely on semantic match ("am I tasked with a PR review?") — which is exactly where peer skill-loading silently bypasses.Empirical anchor (2026-05-10): PR #11127 review failure. Cycle-1 review comment landed with 2 of 16+ template sections (only Verdict + Evidence Audit); 2 formal approvals empty/placeholder. @tobiu surfaced as recurring pattern: "PR 11127: severe review fail. no template, rubber stamped. again." Pattern matches pre-existing memory anchors (
feedback_pr_review_template_discipline,feedback_skill_adherence_asymmetry).pull-request-workflow.md §6.4already prescribes the explicit-skill-naming idiom ("A2A the reviewer to redo via/pr-review") — but only as REMEDIATION after a bad review lands. §6.2 (initial routing) does not. Asymmetry. Operator framing: "our workflow says 'use a2a to ask a peer for a review'. it could say: 'use an a2a message to tell a peer to use the pr-review SKILL on PR id x'."Prescription
Patch A2A author-side routing surfaces to literally name the skill the receiving peer should engage:
Surface 1 —
pull-request-workflow.md §6.2line 186:Include \Requested action: review PR #N`.`Include \Requested action: use /pr-review on PR #N`.`Surface 2 —
ideation-sandbox-workflow.mdline 18:Symmetric optional sister surfaces (defer to follow-up if needed):
pull-request-workflow.md §6.2line 215 (divergence escalation re-review post-resolution)epic-reviewauthor-side ping (currently no surface; out of scope)Avoided Traps
Skill: /<name>structured field alongsideRequested action:Requested action:body. Future evolution if backward-grep pressure surfaces.feedback_substrate_scope_restraint— one shape, one ticket.Acceptance Criteria
pull-request-workflow.md §6.2line 186 references/pr-reviewliterallyideation-sandbox-workflow.mdline 18 references/peer-roleliterallyReview role:/Requested action:schema)Empirical Anchors
gh pr view 11127 --json reviews2026-05-10)feedback_pr_review_template_discipline— section structure regex-matched by retrospective daemonfeedback_skill_adherence_asymmetry— mechanical gates as substrate-correct fix; "specify more" amplifies Claude-bias zero-effect on Gemini— @neo-opus-4-7