Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD across contents and paths, upstream package/repo coordinates -> @golem15/msd-core and golem15com/msd-core. Deep links into upstream history, sibling upstream packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is. Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line, package/plugin identity, regenerated lockfile, install-tree fixtures, derived registries and benchmark baseline; migration checksum baseline re-locked (MSD keeps its own install state, so no install had applied the old sums); sort-order and regex-escaped expectations in tests adjusted.
Adversarial Roadmap Fixtures (#3594)
Hostile / messy ROADMAP.md inputs for
msd-core/bin/lib/roadmap.cjs (searchPhaseInContent,
cmdRoadmapGetPhase, cmdRoadmapAnalyze) and the SDK roadmap parser
in sdk/src/query/roadmap.ts.
Tests in tests/feat-3594-parser-adversarial-roadmap.test.cjs and
tests/feat-3594-parser-property-style.test.cjs consume these.
Categories:
phase-heading-inside-fenced-code.md— amdblock contains a## Phase 999: fakeheading. The parser MUST ignore headings inside fenced code blocks. Historical regression #2787.nested-fenced-code.md— outerblock with inner ``` ``` ``` ```block. Headings inside either layer must be ignored.unicode-phase-titles.md— phase titles with non-ASCII characters. Parser must preserve them in the returnedphase_name.repeated-phase-ids.md— same integer phase number listed twice. Parser behavior must be deterministic (first-wins or last-wins is fine; the test pins whichever).decimal-phase-mixed.md— integer phase 2 and decimal phase 2.1 share a prefix. Parser must not return phase 2 when asked for 2.1 (or vice versa). Historical regression #3537.markdown-headings-inside-html-comment.md—<!-- ## Phase 999 -->patterns. Parser must not be fooled by comments.