Frontmatter
| title | >- |
| author | neo-opus-grace |
| state | Merged |
| createdAt | Jun 11, 2026, 10:36 PM |
| updatedAt | Jun 11, 2026, 11:35 PM |
| closedAt | Jun 11, 2026, 11:34 PM |
| mergedAt | Jun 11, 2026, 11:34 PM |
| branches | dev ← fix/12916-lint-skill-manifest-path |
| url | https://github.com/neomjs/neo/pull/12917 |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: This is the smallest valid repair for #12916: it corrects stale live documentation references to the existing lint script path, leaves archive snapshots untouched, and does not introduce a new workflow or contract surface.
Peer-Review Opening: Review of PR #12917 at exact head 1c45665fc1bfde1a2320b0dd642cc8043406384d.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: Issue #12916 body and ACs; PR changed-file list; fresh
origin/dev; live PR metadata for close-targets/checks; existing lint script location atai/scripts/lint/lint-skill-manifest.mjs; create-skill and ADR 0008 changed surfaces. - Expected Solution Shape: Correct the live, non-archive references from
ai/scripts/lint-skill-manifest.mjstoai/scripts/lint/lint-skill-manifest.mjs; update the touched test label only if it carries the stale path; leaveresources/content/**archive snapshots alone; no CI/script relocation and no new convention. - Patch Verdict: Matches. The fresh-base diff contains only the create-skill reference payload, ADR 0008, and the existing unit spec label. A non-archive stale-path search returned zero matches and the corrected command runs successfully.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #12916
- Related Graph Nodes: create-skill authoring workflow; ADR 0008 skill anatomy contract; lint-skill-manifest command path.
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
Documented search: I actively looked for stale non-archive ai/scripts/lint-skill-manifest references, accidental archive-scope drift, and close-target/commit-history hazards and found no concerns after refreshing origin/dev.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: framing matches what the diff substantiates; this is a live-reference path fix, not a broader lint workflow change.
- Anchor & Echo summaries: no new conceptual summaries added.
-
[RETROSPECTIVE]tag: N/A. - Linked anchors: #12916 is the matching source ticket.
Findings: Pass.
🧠 Graph Ingestion Notes
[KB_GAP]: None.[TOOLING_GAP]: The original friction was a stale documented command path; this PR removes the live stale references and proves the canonical command.[RETROSPECTIVE]: Tiny documentation path fixes still need exact-base review: an initial local range check showed stacked-history noise untilorigin/devwas fetched, then the PR reduced to the intended one-commit, three-file diff.
🎯 Close-Target Audit
For every issue named as close-target, verify it does NOT carry the epic label:
- Close-targets identified: #12916.
- For each
#N: #12916 labels arebug,documentation,ai; confirmed notepic-labeled.
Findings: Pass.
N/A Audits — 📑 🪜 📡
N/A across listed dimensions: this PR corrects existing documentation/test-label path text and does not modify a public contract ledger surface, add runtime-evidence ACs beyond static command verification, or touch MCP OpenAPI tool descriptions.
🧠 Turn-Memory / Substrate-Load Audit
- PR touches
.agents/skills/create-skill/references/skill-authoring-guide.md, a conditional reference payload, not an always-loadedSKILL.mdrouter. - Load-effect audit is documented in the PR body as neutral / 0 always-loaded-byte delta.
- The change removes a stale command path from live authoring substrate without adding new loaded instructions.
Findings: Pass.
🔗 Cross-Skill Integration Audit
- Does any existing skill document a predecessor step that should now fire this new pattern? No new pattern is introduced; the existing create-skill verification command is corrected.
- 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, this is path repair only.
- 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.
Findings: All checks pass — no integration gaps.
🧪 Test-Execution & Location Audit
- Branch checked out locally via
checkout_pull_request. - Canonical Location: no new or moved test file; existing
test/playwright/unit/ai/scripts/lint/lintSkillManifest.spec.mjsremains in the canonical unit-test location for the lint script. - If a test file changed: ran
npm run test-unit -- lintSkillManifest.spec— 35 passed. - If code changed: no production code changed; the corrected lint command was run directly.
Findings: Tests pass.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 100 - The patch stays inside the documented #12916 scope and preserves archive immutability.[CONTENT_COMPLETENESS]: 100 - All five live stale references from the ticket are covered, and the non-archive stale-path search is clean.[EXECUTION_QUALITY]: 100 - Exact-head checkout, fresh-base diff review, command verification, and the touched unit spec all passed.[PRODUCTIVITY]: 100 - Resolves a real agent-friction path error with minimal churn and no residual follow-up.[IMPACT]: 20 - Small surface area, but it prevents repeated create-skill verification friction.[COMPLEXITY]: 10 - Straightforward text/path correction with one related test-label update.[EFFORT_PROFILE]: Quick Win - Narrow docs hygiene fix with clear static proof.
Approved for human merge.
Authored by Claude Opus 4.8 (Claude Code). Session 0bc22bf2-9ded-4cdb-b351-182c3ab1d16f.
Resolves #12916
Corrects the stale
ai/scripts/lint-skill-manifest.mjspath (the script actually lives atai/scripts/lint/lint-skill-manifest.mjs) across 5 live, agent-consumed references: thecreate-skillauthoring guide's Verification checklist, ADR 0008 (3 refs), and one testdescribe-label. Following the guide verbatim previously threwMODULE_NOT_FOUND(hit during #12912). CI was unaffected — the workflow already used the correct path — which is exactly why the docs drift went unnoticed.Evidence: L1 (static —
grepover non-archive paths returns zero stale refs; the corrected command runs[lint-skill-manifest] OK) → L1 required (doc-path correction, no runtime ACs). No residuals.Deltas from ticket (if any)
None — all ACs delivered. The ~55
resources/content/{discussions,pulls}/**archive references are intentionally left untouched (frozen historical snapshots, per the ticket's Out-of-Scope).Substrate-Gate Note (skill-touch)
This PR edits a
.agents/skills/**payload (the create-skill guide), so addressing the create-skill PR-Open gates explicitly:contract-ledger.mdtrigger scope — this is a simple bug fix correcting a stale reference to an already-existing script; it introduces / modifies / deprecates no contract surface.references/payload (the World-Atlas) or an ADR doc, NOT the always-loadedSKILL.mdrouter. Zero always-loaded-byte delta.Test Evidence
grep -rn 'ai/scripts/lint-skill-manifest' --include='*.md' --include='*.json' --include='*.mjs' --include='*.yml'over non-archive paths → zero matches.node ai/scripts/lint/lint-skill-manifest.mjs --base origin/dev→[lint-skill-manifest] OK(proves the now-documented command works).1c45665fc.Post-Merge Validation
MODULE_NOT_FOUND.Commits
1c45665fc— fix(docs): correct stale lint-skill-manifest path in create-skill guide + ADR 0008 (#12916)