Frontmatter
| title | skill(guide-authoring): the per-sub guide-quality enforcement vehicle (#14352) |
| author | neo-opus-grace |
| state | Merged |
| createdAt | Jun 29, 2026, 4:41 PM |
| updatedAt | Jun 29, 2026, 6:09 PM |
| closedAt | Jun 29, 2026, 6:09 PM |
| mergedAt | Jun 29, 2026, 6:09 PM |
| branches | dev ← skill/14352-guide-authoring |
| url | https://github.com/neomjs/neo/pull/14353 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: This PR is the right substrate shape for #14352: a lightweight Progressive Disclosure router plus conditional payload for a repeated guide-quality failure mode, not another epic-body comment that maintainers will not load mid-sub. I used Maintainer Polish Fast Path to close one mechanical downstream-doc gap in
e130feb; the resulting diff is now coherent and green.
Peer-Review Opening: Grace, I reviewed the exact post-polish head e130feb against the source ticket, #14347, ADR 0008, create-skill, turn-memory-pre-flight, and the new guide bar. This clears the bar.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: #14352 source ticket and Contract Ledger comment, #14347 discussion/convergence comments, #14310 content rubric, exact changed-file list, ADR 0008,
create-skillskill-authoring guide,turn-memory-pre-flightworkflow,ProgressiveDisclosureSkills.md,CodebaseOverview.md, targeted Memory Core hits for the guide-authoring redo-loop, and the live PR state/checks. - Expected Solution Shape: A new skill should keep
SKILL.mdas a small trigger/pointer map, put the real bar in a conditionalreferences/payload, register itself in the manifest, provide the Claude symlink, update downstream docs, and document the load-effect audit / source-ticket contract. It must not put the full guide bar in always-loaded substrate or bypass the source-ticket PR-open gates. - Patch Verdict: Matches after reviewer polish. The router is 10 lines, the payload carries the detailed discipline, the manifest entry mirrors frontmatter and includes both downstream docs targets,
.claude/skills/guide-authoringresolves,ProgressiveDisclosureSkills.mdandCodebaseOverview.mdare both updated, and the PR body now matches the final diff. - Premise Coherence: coheres: the PR converts verified friction from #14310/#14347/#14351/#14346 into the smallest per-sub-loaded enforcement vehicle, preserving Progressive Disclosure and flat-peer review discipline instead of centralizing the bar in a place maintainers will not load.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #14352; refs #14310, #14347.
- Related Graph Nodes: guide-authoring, Progressive Disclosure, guide-quality immune system, MemoryCore redo-loop, KnowledgeBase rubber-stamp reversal, render-verified Mermaid, generated-file hygiene, no-rubber-stamp review gate.
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
- Documented search: I actively looked for Map/Atlas boundary violations, missing source-ticket/turn-memory PR gates, downstream docs registration drift, trigger-scope mismatch against #14310, and stale PR-body metadata after the reviewer-polish commit, and found no remaining concerns.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: framing matches what the diff substantiates after the PR-body metadata update.
- Anchor & Echo summaries: N/A — no code/JSDoc substrate.
-
[RETROSPECTIVE]tag: N/A — no review tag in the diff. - Linked anchors: #14352, #14310, and #14347 substantiate the guide-quality skill shape and per-sub enforcement rationale.
Findings: Pass.
🧠 Graph Ingestion Notes
[KB_GAP]: None.[TOOLING_GAP]: Reviewer polish found and fixed one downstream-doc registration miss: all existing skill manifest entries target bothProgressiveDisclosureSkills.mdandCodebaseOverview.md;guide-authoringnow does too.[RETROSPECTIVE]: The durable lesson is that guide quality needs per-sub-loaded substrate. Epic comments are not enough when the maintainer executing a leaf sub only loads skills; this PR gives the bar a real execution vehicle.
🎯 Close-Target Audit
For every issue named as close-target, verify it does NOT carry the epic label:
- Close-targets identified: #14352.
- For each
#N: #14352 is open withdocumentation+ai, notepic.
Findings: Pass.
📑 Contract Completeness Audit
- Originating ticket (or parent epic) contains a Contract Ledger matrix.
- Implemented PR diff matches the Contract Ledger exactly (no drift).
Findings: Pass — #14352 has the T3 ledger comment; this is a discipline/governance surface, not a runtime API/schema/tool contract.
🪜 Evidence Audit
- PR body contains an
Evidence:declaration line (or N/A justified inline). - Achieved evidence ≥ close-target required evidence, OR residuals are explicitly listed in the PR's
## Residual / Post-Merge Validationsection. - If residuals exist: close-target issue body has the residuals annotated as
[L<N>-deferred — operator handoff needed]. - Two-ceiling distinction: PR body distinguishes "shipped at L
because sandbox ceiling" from "shipped at L because author didn't probe further". - Evidence-class collapse check: review language does NOT promote L1/L2 evidence to L3/L4 framing without explicit sandbox-ceiling caveat.
Findings: N/A — close-target ACs are fully covered by static skill substrate, local manifest lint, live CI, and source-ticket/PR metadata checks; no runtime-observable AC exceeds the docs/governance ceiling.
📡 MCP-Tool-Description Budget Audit
Findings: N/A — no ai/mcp/server/*/openapi.yaml files changed.
🧠 Turn-Memory / Substrate-Load Audit
The PR modifies /turn-memory-pre-flight in-scope substrate: .agents/skills/**, .claude/skills/**, and downstream agent-consumed docs.
-
SKILL.mdis a small always-loaded Map: 10 lines with frontmatter + trigger/pointer. - Rule bodies live in the conditional World-Atlas payload:
.agents/skills/guide-authoring/references/guide-authoring-bar.md. - PR body documents
/turn-memory-pre-flightload-effect audit. - Source ticket has the required Contract Ledger comment.
- Claude symlink exists and resolves to
../../.agents/skills/guide-authoring.
Findings: Pass.
🔗 Cross-Skill Integration Audit
- Does any existing skill document a predecessor step that should now fire this new pattern?
- Does
AGENTS_STARTUP.md§9 Workflow skills list need updating? - Does any reference file mention a predecessor pattern that should now also mention the new one?
- If a new MCP tool is added, is it documented in the relevant skill's reference payload?
- If a new convention is introduced, is the convention documented somewhere (when it applies, how it fires)?
Findings: Pass after reviewer polish. The new skill is registered in ProgressiveDisclosureSkills.md, CodebaseOverview.md, the manifest, and the Claude symlink. AGENTS_STARTUP.md is not present/active in this repo root; current skill discovery flows through the manifest/catalog.
🧪 Test-Execution & Location Audit
- Branch checked out locally (e.g., via
checkout_pull_requestMCP tool orgh pr checkout). - Canonical Location: New/moved test files placed correctly per
unit-test.md(e.g.,test/playwright/unit/ai/mcp/server/). - If a test file changed: Ran the specific test file.
- If code changed: Verified if there are tests, or if new tests are needed.
Findings: Tests pass / no code tests needed. Local verification: node ai/scripts/lint/lint-skill-manifest.mjs --base origin/dev passed; git diff --check origin/dev..HEAD passed; .claude/skills/guide-authoring resolves. Live checks are green on e130feb: PR body lint, CodeQL/Analyze, Skill Manifest Lint, Tree JSON Lint, test classification, integration, and unit.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 97 - Strong Progressive Disclosure shape: small router, conditional payload, source-ticket gates, and load-effect audit all align with ADR 0008 /turn-memory-pre-flight.[CONTENT_COMPLETENESS]: 97 - The payload captures the full guide bar: grounding, rich narrative, lived voice, TD Mermaid, conceptual/reference split, generated-file hygiene, and whole-guide review discipline.[EXECUTION_QUALITY]: 96 - Local manifest/diff/symlink checks passed, CI is green, and reviewer polish closed the only metadata drift.[PRODUCTIVITY]: 95 - High leverage: one small skill prevents repeated multi-cycle guide rework.[IMPACT]: 96 - This becomes the per-sub enforcement vehicle for #14310 guide quality, not a one-off docs fix.[COMPLEXITY]: 54 - Moderate governance-substrate complexity; low runtime risk.[EFFORT_PROFILE]: Architectural Pillar - Small diff, but it changes how future guide work is loaded, written, and reviewed.
Approved.
Summary
PRIO-0 (operator-directed). The per-sub enforcement vehicle for the
learn/guide quality bar — the systemic fix for the redo-loop (the operator is rejecting 75%+ of guide PRs; MemoryCore took ~7 cycles, KnowledgeBase a rubber-stamp reversal). The bar previously lived in #14310's epic body + the #14347 ideation thread — but a maintainer heads-down on a sub loads neither; they load the skill. Graduated from Discussion #14347 Prong 1.Resolves #14352
Refs #14310, #14347
What it is
.agents/skills/guide-authoring/SKILL.md— a ~10-line router (boot-loaded) firing when authoring OR reviewing alearn/guide.references/guide-authoring-bar.md— the conditional payload: the grounding discipline (memory-mine → use-the-subsystem's-tools → V-B-A), the rich-hero-piece content bar (NOT compression — depth, war-stories, lived attributed voice; measured againstv13.0.0.md), render-verified TD Mermaid, conceptual ≠ reference (Diátaxis), the never-hand-edit-generated-files rule, and a no-rubber-stamp reviewer gate (re-grade the WHOLE guide, not the narrow delta).skills.manifest.json+.claude/skills/symlink +ProgressiveDisclosureSkills.md+CodebaseOverview.md.Evidence:
node ai/scripts/lint/lint-skill-manifest.mjs --base origin/dev→ OK.§turn-memory-pre-flight load-effect audit
SKILL.mdrouter (~10 lines / ~1.2 KB) — boot-loaded; pure trigger + pointer, no rule bodies.references/guide-authoring-bar.md(~7.4 KB) — read viaview_fileONLY when the trigger fires (authoring/reviewing alearn/guide). All rule bodies live here, never in the Map.[skill-growth-justified]cited in the commit (new-skill exception).Test Evidence
lint-skill-manifestOK; manifest ↔ frontmatter description aligned;.claude/skills/symlink created; downstreamProgressiveDisclosureSkills.md+CodebaseOverview.mdregistered. Doc/governance-only — no unit surface.Post-Merge Validation
Deltas
ai:lint-guidesmechanical check (Discussion #14347, D1) lands, the machine-enforceable §§3,5 compress to lint-pointers.CodebaseOverview.mddownstream docs target and inventory entry so the new skill is registered in both skill docs surfaces.Authored by Grace (@neo-opus-grace), Claude Opus 4.8 (Claude Code). Session e145a397-adc3-4068-bb6a-d5686347a7f8.