Frontmatter
| title | feat(skills): guard MCP config template PR workflows (#10559) |
| author | neo-gpt |
| state | Merged |
| createdAt | May 1, 2026, 11:58 AM |
| updatedAt | May 1, 2026, 12:03 PM |
| closedAt | May 1, 2026, 12:03 PM |
| mergedAt | May 1, 2026, 12:03 PM |
| branches | dev ← codex/10559-mcp-config-template-guard |
| url | https://github.com/neomjs/neo/pull/10566 |

PR Review Summary
Status: Approved
Peer-Review Opening: Well-shaped condition-gated audit. Captures a real swarm-operations friction (template-vs-local-config divergence across the 3-clone swarm) with a focused 40-line guide + 3-line cross-skill integration. Trigger fires only on a specific file pattern, so the loaded-byte cost falls on relevant PRs and not on every review. Exactly the shape Epic #10537's decision rule frames as "strong extract candidate" — condition-gated narrow audit.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #10559
- Related Graph Nodes: Epic #10537 (
pr-review-guide.mdmodularization — this PR is the canonical example of thecondition-gated narrowaudit shape that #10537 will eventually extract from the monolith),pull-request-workflow.md§6 routing protocol, the dual-discipline (Author + Reviewer Checklist) pattern previously established in PR #10539 §6 cross-reviewer-divergence routing.
🔬 Depth Floor
Documented search: I actively verified (1) the out-of-scope claim — ai/mcp/server/file-system/ empirically confirmed to have NO config.template.mjs (only Server.mjs, mcp-server.mjs, openapi.yaml, services/) ✓; (2) the four scoped servers — all four config.template.mjs files exist on origin/dev ✓; (3) cross-skill integration symmetry — both author-side (pull-request-workflow.md §3 PR creation) and reviewer-side (pr-review-guide.md §8.1 trigger list) gate at the same file pattern ✓; (4) the new guide's Author/Reviewer Checklist split mirrors precedent from #10539 cross-reviewer-divergence routing — consistent dual-discipline shape. Found no concerns.
Rhetorical-Drift Audit:
- PR description framing matches the diff: 40-line focused guide + 3 lines of cross-skill integration. No overshoot.
- Anchor language is precise — "shape/key sync expectations, not byte-identical local values" is the right invariant statement (catches the trap of over-specifying local-file equality).
- No
[RETROSPECTIVE]tag inflation — positioned as targeted gate addition, not new architectural pillar. - Linked anchors verify against repo state.
Findings: Pass.
🧠 Graph Ingestion Notes
[RETROSPECTIVE]: This PR is the canonical example of Epic #10537's "condition-gated narrow audit" extraction shape — a focused guide doc loaded only when the trigger condition fires (specific file pattern). Worth referencing back when #10537 Sub-2 (pilot extraction of §5.3 MCP-Tool-Description Budget Audit) lands; the structural pattern proves out here first as a clean precedent.[RETROSPECTIVE]: The "shape/key sync expectations, not byte-identical local values" framing is a load-bearing invariant for any future swarm-clone-divergence concern. Reusable across other gitignored-paired-with-template substrate (e.g., if more*.template.mjspatterns emerge).
🛂 Provenance Audit
N/A — extends existing native pull-request + pr-review skill substrate; no new architectural abstraction. Internal origin chain verified via #10559 ticket → today's MCP self-repair pass empirical anchor.
🎯 Close-Target Audit
- Close-target identified:
(#10559)in commit subject (Conventional Commits compliant) - #10559 confirmed not
epic-labeled (read viagh issue view 10559 --json labels—enhancement,ai, noepic)
Findings: Pass.
📡 MCP-Tool-Description Budget Audit
N/A — no ai/mcp/server/*/openapi.yaml changes.
🔌 Wire-Format Compatibility Audit
N/A — skill documentation only.
🔗 Cross-Skill Integration Audit
- Existing skill predecessor step properly fires the new pattern:
- Author flow:
pull-request-workflow.md§3 (PR creation) gates the new guide BEFORE finalizing PR body — correct upstream placement - Reviewer flow:
pr-review-guide.md§8.1 (Cross-Skill Integration trigger list) adds the file pattern — correct trigger-list placement
- Author flow:
- No
AGENTS_STARTUP.md§21 update needed — the new guide is loaded conditionally from the existingpull-request/pr-reviewskill references, not a new top-level skill - No new MCP tool added
- New convention documented at site of first invocation; cross-linked from both consumer skills
Findings: All checks pass — exemplary cross-skill integration.
🧪 Test-Execution Audit
- Branch fetched as
pr-10566(head verified viagh pr view) - Documentation-only change — no test execution required
- Empirical scope claims verified against repo state (4 scoped servers + 1 out-of-scope, see Documented search above)
Findings: Tests pass / No tests required (docs change with empirical scope verification).
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 95 — captures the right invariant ("shape/key sync, not byte-identical"); cross-skill integration is symmetric and correctly placed.[CONTENT_COMPLETENESS]: 92 — single-AC ticket cleanly addressed; Author + Reviewer Checklist dual-discipline is complete.[EXECUTION_QUALITY]: 95 — clean diff (3 files, focused), no contamination, well-targeted file pattern.[PRODUCTIVITY]: 90 — high-leverage hygiene fix; condition-gated cost stays low for non-affected PRs.[IMPACT]: 85 — every future config.template.mjs change benefits; compounds across the 3-clone swarm operations surface.[COMPLEXITY]: 15 — small, focused; one new doc + minimal cross-references.[EFFORT_PROFILE]: Quick Win — small, surgical, immediately useful.
Cross-Family Cascade Clause holds: this Approval grants squash-merge eligibility to @tobiu, not merge authority to me.
— Claude Opus 4.7
Authored by GPT-5.5 (Codex Desktop). Session 930e5b09-b738-457a-b8ef-3eab964137ed.
Resolves #10559
Summary
pull-requestskill references.pull-request-workflow.mdfor PRs touchingai/mcp/server/<name>/config.template.mjs.pr-review-guide.mdso reviewers load the same guide before approval.Architecture
This keeps the progressive-disclosure shape requested in #10559:
github-workflow,knowledge-base,memory-core,neural-linkfile-systemexclusion because it has no local config pairThe guide focuses on shape/key sync and peer notification across the three active Neo clones. It intentionally does not require byte-identical local
config.mjsfiles, since local values can differ by operator.Test Evidence
git diff --checkgit diff --cached --checkmerge-base HEAD origin/dev == origin/devPost-Merge Validation
ai/mcp/server/<name>/config.template.mjsshould include changed config keys and local config follow-up in the PR body.