LearnNewsExamplesServices
Frontmatter
id11105
titlepull-request skill: add author-side check that reviewers use correct pr-review template
stateClosed
labels
enhancementaimodel-experience
assigneesneo-opus-4-7
createdAtMay 10, 2026, 2:59 PM
updatedAtMay 10, 2026, 3:35 PM
githubUrlhttps://github.com/neomjs/neo/issues/11105
authorneo-opus-4-7
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtMay 10, 2026, 3:35 PM

pull-request skill: add author-side check that reviewers use correct pr-review template

Closedenhancementaimodel-experience
neo-opus-4-7
neo-opus-4-7 commented on May 10, 2026, 2:59 PM

Context

PR #11104 (github-workflow MCP boot fix) review cycle, 2026-05-10. Empirical anchor:

  1. Reviewer (Gemini) rubber-stamped first — posted custom "Substrate Review (LGTM / L2-Verified)" 4-section format (Context & Fit / Diff Verification / Posture / Decision). Substantively positive but NOT the pr-review-template.md cycle-1 structure.
  2. Author (Opus) accepted the rubber-stamp — A2A'd Gemini about a mechanical state-flag issue (LGTM-comment vs gh pr review --approve) but never audited the structural template-adherence issue.
  3. Operator @tobiu caught it externally — pushed back on Gemini that the pr-review skill template wasn't followed. Gemini then posted a proper pr-review-template.md cycle-1 structured review.

"i challenged gemini, that we did not use the pr review skill, but rubber stamped it. not the right template. a 1-liner inside our pull request skill, that the author needs to check if reviewers use the correct template could help." — @tobiu

The Problem

Asymmetric obligations across skill payloads:

Skill Tells About
pr-review REVIEWERS Cycle-1 use pr-review-template.md; Cycle ≥2 use pr-review-followup-template.md
pull-request AUTHORS PR creation discipline (commit format, body shape, cross-family review request)
(missing) AUTHORS Verify at PR-review-receipt time that reviewer used the correct template

Without the bridge, the only template-adherence gate is reviewer-self-discipline. When the reviewer skips it (whether through MCP-tool-misroute, custom-format preference, or skill-payload non-adherence), nothing in the substrate catches it — except external operator-pushback. That's friction → gold raw material: substrate should self-correct, not require operator-policing.

Same family as #11102 (epic-resolution Verdict-Authority asymmetry between assignee and consensus-peer). Author/reviewer obligations need to be codified symmetrically across skill payloads.

The Fix

Add a 1-liner author-side check to pull-request-workflow.md at the PR-review-receipt step:

+## Reviewer template-adherence check
+
+When a review lands on your PR, verify the reviewer used the correct
+template before treating the review as substantively complete:
+- **Cycle 1**: review must follow `pr-review-template.md` structure
+  (Strategic-Fit Decision, Depth Floor, Graph Ingestion Notes, [...])
+- **Cycle ≥2**: review must follow `pr-review-followup-template.md`
+  (compact delta-only shape)
+
+If the review uses a custom or simplified format, A2A the reviewer
+to redo via `/pr-review` per the skill payload. Substantive content
++ wrong shape = template-adherence Required Action; do not merge-eligible
+the PR until shape is correct.

Exact placement: in the pull-request-workflow.md cycle-2-handoff / review-response section. PR diff + sibling audit during implementation.

Acceptance Criteria

  • pull-request-workflow.md patched with the author-side reviewer-template-adherence check (1-liner expanded to 2-3 lines for cycle-1 vs cycle ≥2 distinction; not actually 1 line of payload, but conceptually 1 substrate primitive)
  • Sibling audit: pull-request/SKILL.md frontmatter mentions the check at trigger language
  • Cross-reference audit: pr-review-guide.md references the new author-side check (so the symmetry is bidirectionally documented)
  • Empirical validation: next review cycle on any PR — author runs the check and either confirms shape OR A2As reviewer

Out of Scope

  • Mechanical template-adherence linting via CI (nice-to-have but not in this surgical fix's scope; would be a follow-up substrate-CI ticket)
  • Modifying pr-review-template.md / pr-review-followup-template.md themselves — they are correct shape; the gap is bridge enforcement, not template content
  • Expanding to other skill-payload bridges (epic-resolution / ticket-intake / etc.) — file separate tickets per skill if friction surfaces

Avoided Traps / Gold Standards Rejected

Decision Matrix

  1. 1-liner author-side check in pull-request-workflow.md (Selected): Bridges the missing author/reviewer obligation symmetry. Lowest-overhead, lowest-blast-radius fix. Caught at PR-review-receipt time = before merge-gate signal. Aligns with @tobiu's proposed shape.
  2. Reviewer-side self-check before submission: Rejected. Already implicit in pr-review skill payload via "Cycle 1 (new review): load pr-review-template.md ..." instruction. The friction is reviewer-side non-adherence; adding a redundant self-check doesn't fix it (the missing check is on the OTHER side of the handoff).
  3. Both author AND reviewer check at handoff: Rejected. Duplicate effort; single-side check is sufficient. Author-side is the right side because the author has merge-eligibility responsibility.
  4. CI lint for template structural markers: Rejected as out-of-scope. Substrate-quality CI is over-engineering for this friction observed once in this empirical anchor; revisit if pattern repeats.
  5. Add to peer-role skill instead: Rejected. peer-role fires when a peer is reviewing; this check fires when an author RECEIVES a review. Wrong skill.
  • Trap: Treating substantive content as sufficient gate. Rejection: Substantive LGTM with wrong template = unstructured signal that bypasses the graph-ingestion daemon's structural markers. Substantive content + wrong shape = partial-quality graph data per feedback_pr_review_template_discipline.
  • Trap: Letting operator-pushback be the substrate gate. Rejection: Substrate should self-correct via codified peer-V-B-A; relying on operator-policing is the friction the MX loop converts to gold.

Related

  • PR #11104 (canonical empirical anchor — the rubber-stamp that surfaced the gap)
  • #11102 (sibling: epic-resolution Verdict-Authority asymmetry — same author/reviewer obligation gap, different skill)
  • feedback_pr_review_template_discipline MEMORY.md entry (graph-ingestion daemon regex-matches template section structure; non-template reviews degrade graph quality)
  • feedback_swarm_pr_review_routing (single-peer review routing — orthogonal but related to review handoff discipline)
  • AGENTS.md §13.2 friction → gold (this ticket is the conversion artifact for the rubber-stamp friction)

Origin Session ID: c2912891-b459-4a03-b2af-154d5e264df1 Retrieval Hint: "pull-request skill author-side reviewer-template-adherence check", "rubber-stamp PR review", "author/reviewer obligation symmetry"

tobiu referenced in commit 3cff1b2 - "feat(skill): add author-side reviewer template adherence check (#11105) (#11106) on May 10, 2026, 3:35 PM
tobiu closed this issue on May 10, 2026, 3:35 PM