refactor: hard-fork GSD -> MSD (Make Software Done)

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.
This commit is contained in:
Jakub Zych
2026-10-06 01:47:40 +02:00
parent fe069b2a56
commit a9a7a328e6
2763 changed files with 78465 additions and 78434 deletions

View File

@@ -3,7 +3,7 @@
*
* A **best-effort publisher** invoked at 11 step-boundary commands
* (`state.*`, `phase.*`, `milestone.complete`). It composes existing
* canonical owners; it introduces no second answer to any question GSD
* canonical owners; it introduces no second answer to any question MSD
* already answers:
* - `planning-workspace.cjs`'s `planningPaths` for every `.planning/` path
* (workstream-aware — never re-derived here).
@@ -35,8 +35,8 @@
* refused for the same reason (#2790). `state.json` declares its OWN flat,
* minimal, six-key schema instead — see PUBLIC SURFACE below.
*
* NOT built (Gall's Law / Zawinski's Law — see `.gsd/phase/feat-3227-state-
* contract/40-design.md`): a `--watch` mode, a reader API inside gsd-core, a
* NOT built (Gall's Law / Zawinski's Law — see `.msd/phase/feat-3227-state-
* contract/40-design.md`): a `--watch` mode, a reader API inside msd-core, a
* diff/event stream, a config toggle, milestone-scoping of `phases[]`. This
* module answers "where is this project right now" and nothing else — a
* request for document *contents* belongs to `planning.inspect`.
@@ -61,7 +61,7 @@
* tmp+rename already makes each publish all-or-nothing without it.
*
* ADR-457 build-at-publish: source in src/state-contract.cts, compiled to
* gsd-core/bin/lib/state-contract.cjs (gitignored).
* msd-core/bin/lib/state-contract.cjs (gitignored).
*/
import path from 'node:path';
@@ -320,7 +320,7 @@ export function buildStateContract(cwd: string, deps?: StateContractDeps): State
const updated_at = new Date(nowFn()).toISOString();
// #2245 shape: `planningPaths` -> `planningDir` throws a plain Error for an
// invalid GSD_WORKSTREAM/GSD_PROJECT segment. This call must not be hoisted
// invalid MSD_WORKSTREAM/MSD_PROJECT segment. This call must not be hoisted
// outside a try, or that throw escapes uncaught and breaks the invariant
// this function is documented as upholding (see `getMilestoneInfo`'s
// equivalent guard comment in src/roadmap-parser.cts for the same shape).
@@ -364,7 +364,7 @@ export function buildStateContract(cwd: string, deps?: StateContractDeps): State
* No `.planning/` directory at all: writes nothing, creates nothing. This
* guard is essential — `platformWriteSync` does `mkdirSync(dirname,
* {recursive:true})`, so without it the publisher would conjure a
* `.planning/` tree inside a non-GSD directory.
* `.planning/` tree inside a non-MSD directory.
*
* `withPlanningLock` is deliberately NOT taken here — see the module-doc
* "REQUIRE-CYCLE HAZARD" section's sibling note: it is not re-entrant and
@@ -377,7 +377,7 @@ export function publishStateContract(cwd: string, deps?: StateContractDeps): { p
try {
const { planningPaths, platformWriteSync } = owners();
// Resolve the planning root BEFORE anything else. A resolution failure
// (invalid GSD_WORKSTREAM/GSD_PROJECT segment — the #2245 shape) means no
// (invalid MSD_WORKSTREAM/MSD_PROJECT segment — the #2245 shape) means no
// write was ever attempted, so it must map to `no_planning_dir`, not
// `write_failed` — that reason is reserved for an attempted-and-failed
// write, and reporting it here would send a caller looking at disk