Files
msd-core/.changeset/archived/3537-phase-regex-fanout.md
Tom Boucher 8616839cab chore: archive 463 shipped changeset fragments before wiring render (#714)
CHANGELOG promotion was a manual operator step that was never run, so 463
fragments for work already shipped in <=1.3.1 accumulated in .changeset/.
Their notes were already hand-curated into the dated [1.2.0]/[1.3.0]/[1.3.1]
CHANGELOG sections (#690 backfill, PR #694). Rendering them now would
duplicate and mis-attribute shipped work.

Move them to .changeset/archived/ (read non-recursively by all changeset
tooling, so never rendered), keeping only the 3 genuinely-unreleased
fragments at the top level. Prep for wiring `render` into the release
finalize job (#690 follow-up).

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 14:53:17 -04:00

1.0 KiB

type, pr
type pr
Fixed 3538

Phase state verbs no longer silently no-op on projects with project_code set and un-padded ROADMAP prose. v1.42.1 added the padding-tolerant phaseMarkdownRegexSource() helper but wired it into only 1 of 8 call sites that build phase-number regexes against ROADMAP/STATE prose; the other 7 used raw escapeRegex(phaseNum) or partial 0*${escapeRegex(...)} (tolerated extra padding, not missing). When skills passed the resolved padded form (02.7) against un-padded ROADMAP headings (### Phase 2.7:), phase complete, roadmap get-phase, roadmap analyze checkbox detection, roadmap annotate-dependencies, phase next-decimal, and phase insert all silently returned success while ROADMAP.md stayed unchanged. The helper is now promoted to core.cjs and routed through every site. Adds a parity-style regression that runs each verb with padded and un-padded ids against an identical fixture and asserts byte-equal output, so the next call-site cannot drift back undetected. Closes #3537.