fix(install): wave-5 follow-up — SHIPPED_DOCS sync + N3 stat-fallback comment - #36
Merged
Merged
Conversation
… comment Address PR #35 post-merge review S1 (install.sh SHIPPED_DOCS stale vs principle 09) and N3 (asymmetric stat fallback in D4 audit probe). S1 — Wave 5.1 added two shipped surfaces to REQUIRED_HEADER_DOCS (skills/tool-bootstrapping/SKILL.md + references/decision-format.md, see packages/core/principles/09-doc-authority-hierarchy.ts:70-71), but install.sh SHIPPED_DOCS pre-install fail-loud check was not updated. Principle 09 PR-time CI still catches header drift, but install.sh release-time check silently misses it — defeating Wave 3's purpose. - install.sh: add the two skills/tool-bootstrapping/ paths to SHIPPED_DOCS; update header comment 11 → 13 surfaces. - 09-doc-authority-hierarchy.test.ts: rename WAVE_2_PREFIXES → SHIPPED_DOC_PREFIXES, add skills/tool-bootstrapping/ prefix, update length expectation 11 → 13, and the test-name + leading comment to reflect that the subset now covers Wave 2 + Wave 5.1. N3 — audit-ai-docs.sh D4 probe uses asymmetric stat-failure fallbacks (PKG=0, DEC=1). Logically correct (ensures stat-error → no false stale WARN) but opaque on first read. Added a two-line comment explaining the intent so the asymmetry doesn't look like a typo. Verification: - npx vitest run …/09-doc-authority-hierarchy.test.ts → 17/17 passed - npm test --workspaces → 329/329 passed (44 + 3 files) - npm run typecheck --workspaces → all 3 workspaces clean - install.sh --dry-run from temp project → "all 13 shipped artefacts carry valid headers" N1 (Last-reviewed date convention) and N2 (grep -q context7 substring match) intentionally not addressed in this PR — N1 is convention-not-bug per reviewer; N2 is a pre-mature hardening with no concrete failure mode. Captured for future hardening if the scenarios materialise. Prior-art: skipped — follow-up fix syncing install.sh SHIPPED_DOCS with already-decided Wave 5.1 SSOT additions, no new capability
This was referenced May 11, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Post-merge follow-up to PR #35 (Wave 5.2+5.3 merged 2026-05-11). Addresses reviewer findings S1 (install.sh
SHIPPED_DOCSstale vs principle 09 after Wave 5.1 added twoskills/tool-bootstrapping/paths toREQUIRED_HEADER_DOCS) and N3 (asymmetric stat-failure fallbacks in audit-ai-docs.sh D4 probe — logically correct, opaque on first read).Changes
Wave 2 entries — 11→Wave 2 + Wave 5.1 entries — 13.skills/tool-bootstrapping/SKILL.mdandskills/tool-bootstrapping/references/decision-format.mdtoSHIPPED_DOCS.WAVE_2_PREFIXES→SHIPPED_DOC_PREFIXES, addskills/tool-bootstrapping/prefix, update length expectation11 → 13, refresh leading comment +it()title to reflect that the subset now covers Wave 2 + Wave 5.1.PKG=0vsDEC=1ensuresPKG_MTIME ≤ DEC_MTIMEon stat error, so a stat failure never produces a false stale-WARN).Prior-art consult
packages/, not a new dir underpackages/core/. Commit carriesPrior-art: skipped — follow-up fix syncing install.sh SHIPPED_DOCS with already-decided Wave 5.1 SSOT additions, no new capability(rationale ≥20 chars, specific to the change).Last revieweddate update required (no existing SSOT entry was the basis for this commit).Test plan
npx vitest run packages/core/principles/09-doc-authority-hierarchy.test.ts→ 17/17 passed.npm test --workspaces --if-present→ 329 / 329 tests across 47 files passed (@rules-as-tests/core291,@rules-as-tests/preset-next-15-canonical38).npm run typecheck --workspaces --if-present→ clean across all 3 workspaces.install.sh --dry-runfrom a fresh temp project with stubpackage.json→✓ all 13 shipped artefacts carry valid headers.§1.7 Forward-check applied
PR adds + relaxes a drift-detection meta-test (principle 09 covers a wider shipped-doc subset). Disciplines re-checked against this change before merge: (1) doc-authority-hierarchy — verified the two newly-listed paths (
skills/tool-bootstrapping/SKILL.md,…/references/decision-format.md) both already carry> **Authoritative for:**headers (grep -creturned 1 each); (2) build-vs-reuse — confirmed this commit does not match any of the three capability-commit triggers in CLAUDE.md (no new dep, no new file ≥50 LOC under a newpackages/core/<dir>/, no new file ≥80 LOC underpackages/), so thePrior-art: skippedescape hatch with ≥20-char rationale is the correct trailer; (3) self-reflection — this §1.7 block is itself the recursive application; the rule about widening a meta-test is being applied to widening the meta-test.§1.7 Backward-check applied
Sweep across already-shipped surfaces to confirm no other Wave 2 / 5.1 drift is being left on the floor: (1)
install.sh:164-192ships bothskills/rules-as-tests/andskills/tool-bootstrapping/to.claude/skills/, but only the tool-bootstrapping skill files are inREQUIRED_HEADER_DOCS-shipped-subset —skills/rules-as-tests/SKILL.md+ its 5 references are inREQUIRED_HEADER_DOCSbut not inSHIPPED_DOCS, a pre-existing gap (not Wave 5.1 regression). Deliberately deferred: reviewer scoped S1 to Wave 5.1 drift; expanding to rules-as-tests would also require either (a) adding the 6 rules-as-tests doc paths toSHIPPED_DOCSand theskills/rules-as-tests/prefix to the test, or (b) widening toskills/prefix wholesale. Logged for next follow-up. (2).claude/skills/tool-bootstrapping/{SKILL.md, references/decision-format.md}are inREQUIRED_HEADER_DOCSbut intentionally not inSHIPPED_DOCS— they are project-internal copies of the skill, not consumer-shipped. (3) Reviewer findings N1 (Last reviewed: 2026-05-10vs commit 2026-05-11) and N2 (grep -q "context7"substring match insetup.sh:291) — N1 is convention-not-bug per reviewer verdict; N2 has no concrete failure mode in the current.mcp.jsonshape — both captured here for future hardening if scenarios materialise, not blocking.