Files
msd-core/.changeset/3806-cjs-bundle-drift-w005-w006-i001.md
Tom Boucher b647f44eb0 fix(3806): port W005/W006/I001 fixes from validate.ts to verify.cjs (#83)
PR #3479 fixed three false-positive classes in sdk/src/query/validate.ts
but the fixes never propagated to get-shit-done/bin/lib/verify.cjs —
the hand-maintained CJS runtime bundle that gsd-tools.cjs actually executes.

W005: widened phase-dir regex from \d{2} to \d{2,} so 3+-digit prefixes
like 999.1-foo are accepted.

W006: adds forEachArchivedPhaseToken call after collectDiskPhases so phases
whose directories live in a milestone archive are not flagged as missing.

I001: adds canonicalPlanStem helper and uses it in summaryBases Set
construction so 68-01-scaffolding-PLAN.md correctly matches 68-01-SUMMARY.md.

Adds five regression tests (TDD red→green) covering each false-positive path.

Fixes #3806

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 11:23:50 -04:00

898 B

type, pr
type pr
Fixed 3806

validate health no longer emits W005/W006/I001 false positives for multi-digit phase prefixes, milestone-archive phases, and descriptor PLAN/SUMMARY stem pairs — PR #3479 fixed these three false-positive classes in sdk/src/query/validate.ts but the fix never propagated to get-shit-done/bin/lib/verify.cjs, which is the runtime bundle that gsd-tools.cjs validate health actually executes. This PR ports the three fixes: (1) W005 regex widened from \d{2} to \d{2,} so 999.1-foo and other multi-digit backlog directories are accepted; (2) W006 now calls forEachArchivedPhaseToken after collectDiskPhases so phases whose directories live in a milestone archive are not flagged as missing; (3) I001 now builds the summaryBases Set with both raw and canonical plan stems so 68-01-scaffolding-PLAN.md correctly matches 68-01-SUMMARY.md. (#3806)