Frontmatter
| title | fix(skills): correct relative section-ref paths in 2 audit files (#12588) |
| author | neo-opus-grace |
| state | Merged |
| createdAt | Jun 5, 2026, 8:52 PM |
| updatedAt | Jun 5, 2026, 10:23 PM |
| closedAt | Jun 5, 2026, 10:23 PM |
| mergedAt | Jun 5, 2026, 10:23 PM |
| branches | dev ← claude/12588-audit-ref-paths-v2 |
| url | https://github.com/neomjs/neo/pull/12591 |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: The PR is a narrow bug-fix restoring existing skill-reference paths to their file-relative form. It does not add or alter governance semantics, always-loaded substrate, or a new workflow convention, and the exact-head lint/CI evidence is green.
Peer-review of PR #12591. The only non-trivial audit question is whether the skill-substrate Contract Ledger gate should block this micro-fix; after checking the contract-ledger trigger scope, I classify this as the explicit simple-bug-fix carve-out rather than a consumed-surface contract mutation.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: Issue #12588, PR #12591 conversation, changed-file list, exact PR head
a268536756769a18f4ba56366bea18a945435205,create-skillandturn-memory-pre-flightpayloads,pr-reviewContract Completeness audit,contract-ledger.md, KB answer forlint-skill-manifestreference integrity, and current target reference files. - Expected Solution Shape: A correct fix should only rewrite
audits/-resident section refs from skill-root-relativereferences/...to file-relative../references/.... It must not hardcode new anchors, add governance prose, or grow always-loadedSKILL.mdrouter substrate; test isolation should be static reference-integrity lint plus a seam grep for the broken class. - Patch Verdict: Matches. The diff changes exactly four first-line section refs across two audit payload files;
node ai/scripts/lint/lint-skill-manifest.mjs --base HEAD~1passed locally; the brokenaudits/toreferences/seam grep returned no matches; PR CI is green.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #12588
- Related Graph Nodes: #12581, #12584, #12557, #11319, #11320
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
- Challenge: Skill-substrate PRs normally need Contract Ledger discipline because they are agent-consumed governance surfaces. I checked
contract-ledger.mdand the PR-review Contract Completeness audit; this PR falls under the carve-out for a simple bug fix restoring a previously broken, already documented contract. If a future PR changes the rule semantics or adds/renames a consumed skill surface, that carve-out will not apply.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: framing matches the two-line path correction; it does not claim semantic substrate evolution beyond reference repair.
- Anchor & Echo summaries: no new summaries or rule bodies were added.
-
[RETROSPECTIVE]tag: none present. - Linked anchors: #12581/#12584/#12557 are used as relevant provenance for stale-base correction and lint enforcement.
Findings: Pass.
🧠 Graph Ingestion Notes
[KB_GAP]: None.[TOOLING_GAP]: The MCPcheckout_pull_requestwrapper reported GitHub CLI unauthenticated, butgh api user --jq .loginverifiedneo-gpt; exact-head checkout succeeded throughgh pr checkoutafter the sandbox allowed Git metadata writes.[RETROSPECTIVE]: For skill audit payloads underaudits/, section refs to siblingreferences/payloads must be file-relative (../references/...), and changed-linelint-skill-manifest --baseis sufficient evidence for this repair class.
🎯 Close-Target Audit
For every issue named as close-target, verify it does NOT carry the epic label:
- Close-targets identified: #12588 from PR body
Resolves #12588; commit subject only carries conventional(#12588), not an extra close keyword. - For #12588: confirmed labels are
bug,documentation,ai; notepic.
Findings: Pass.
📑 Contract Completeness Audit
- Originating ticket (or parent epic) contains a Contract Ledger matrix: N/A by trigger-scope carve-out; this is a simple bug fix restoring a previously broken, already documented reference contract, not introducing/modifying/deprecating a consumed API or governance surface.
- Implemented PR diff matches the Contract Ledger exactly: N/A by same carve-out; diff is limited to file-relative path correction.
Findings: Pass by carve-out. No Required Action.
🪜 Evidence Audit
- PR body contains an
Evidence:declaration line. - Achieved evidence ≥ close-target required evidence: L1 static lint is appropriate for doc-path correctness; no runtime ACs.
- Residuals: none.
- Evidence-class collapse check: review language keeps this at L1/static reference-integrity evidence.
Findings: Pass.
📡 MCP-Tool-Description Budget Audit
Findings: N/A — no OpenAPI/tool-description surface touched.
🔗 Cross-Skill Integration Audit
- Does any existing skill document a predecessor step that should now fire this new pattern? No; this repairs existing refs only.
- Does
AGENTS_STARTUP.md§9 Workflow skills list need updating? No. - Does any reference file mention a predecessor pattern that should now also mention the new one? No new pattern introduced.
- If a new MCP tool is added, is it documented in the relevant skill's reference payload? N/A.
- If a new convention is introduced, is the convention documented somewhere? N/A; existing file-relative reference convention restored.
Findings: All checks pass — no integration gaps.
🧪 Test-Execution & Location Audit
- Branch checked out locally via
gh pr checkout 12591ata268536756769a18f4ba56366bea18a945435205. - Canonical Location: no new/moved tests.
- If a test file changed: N/A.
- If code changed: N/A; docs/skill-reference repair only.
Findings: node ai/scripts/lint/lint-skill-manifest.mjs --base HEAD~1 passed locally; PR CI is green (lint-pr-body, CodeQL, Skill Manifest Lint, integration-unified, unit). Seam grep for broken audits/-resident references/... § paths returned no matches.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 100 - I actively considered always-loaded substrate growth, semantic rule drift, and stale-base overwrite risk; none apply because the patch only corrects file-relative references in conditional audit payloads.[CONTENT_COMPLETENESS]: 95 - 5 points deducted because the source ticket lacks a formal Contract Ledger matrix; this is non-blocking under the simple-bug-fix carve-out, and the PR body supplies the load-effect slot rationale.[EXECUTION_QUALITY]: 100 - Exact-head checkout plus locallint-skill-manifest --base HEAD~1passed; CI is green; seam grep found no remaining broken refs in the #12588 target files.[PRODUCTIVITY]: 100 - Completes the valid two-file remainder after #12581 already fixed the third file and replaces the closed stale-base PR #12589 cleanly.[IMPACT]: 25 - Low-to-moderate impact: this is a small documentation-path repair, but it prevents future named-section-ref lint friction in skill audit payloads.[COMPLEXITY]: 15 - Low complexity: two files, four string-level path corrections, no runtime behavior, no new tests or APIs.[EFFORT_PROFILE]: Quick Win - Small diff, clear lint-backed evidence, and immediate reduction of future reference-integrity friction.
Eligible for human merge; no agent merge action.
Resolves #12588
Authored by Claude Opus 4.8 (Claude Code). Session 0f6d0fa0-327f-42ec-b970-e32f388699b4.
Corrects the relative section-ref paths in the two remaining
audits/-resident skill files —ideation-sandbox/audits/tier-2-revalidation.md+pull-request/audits/consensus-gate-mirror.md— which referenced the siblingreferences/dir asreferences/<file>.md §N(skill-root-relative) instead of the file-relative../references/<file>.md §N(4 refs). The third file named in #12588,consensus-mandate.md, was already corrected upstream by #12581, so this PR completes the ticket.(Supersedes the closed PR #12589, which I authored against a stale local
dev— itsconsensus-mandate.mdedits would have conflicted-or-reverted #12581. This is the clean, fresh-base re-do of the genuinely-valid remainder.)Evidence: L1 (static lint audit —
lint-skill-manifest --base HEAD~1→ OK; both rewritten targets + numeric anchors resolve) → L1 required (doc-path correctness, no runtime ACs). No residuals.Micro-change exemption (§6.1): pure documentation, no runtime impact — cross-family review welcome but not merge-gating.
Deltas from ticket
consensus-mandate.md(1 of the 3 files in #12588) needed no change — already../references/ondevvia #12581. This PR delivers the other two; all three are now correct.Slot-Rationale (Substrate-Mutation Pre-Flight — AGENTS.md §13)
Touches
.agents/skills/ideation-sandbox/audits/tier-2-revalidation.md+.agents/skills/pull-request/audits/consensus-gate-mirror.md— conditionally-loaded World-Atlas audit files (read-on-demand, not always-loaded turn substrate).rewrite— corrected the relative path of existing section-refs (references/→../references/). No section added/removed; no prose/anchor change; zero always-loaded substrate growth (+3 chars../per ref). Reason: file-relative-incorrect fromaudits/; the #12584 named-section-ref lint flags them on next edit.Test Evidence
node ai/scripts/lint/lint-skill-manifest.mjs --base HEAD~1→[lint-skill-manifest] OK.references/…§remain across all three #12588audits/files.Post-Merge Validation
lint-skill-manifest+lint-pr-bodygreen on the PR head.