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 @@
/**
* pause-work-context-detection.test.cjs — regression coverage for #4112.
*
* gsd-core/workflows/pause-work.md's "Context Detection" step opens its
* msd-core/workflows/pause-work.md's "Context Detection" step opens its
* phase/spike/sketch assignments with `$((`. That is genuinely ambiguous in
* POSIX-family shell grammar between arithmetic expansion and a command
* substitution wrapping a subshell. bash and zsh silently fall back to the
@@ -19,7 +19,7 @@
* wrapped a plain `bash -c` execution in assert.doesNotThrow(). Both were
* wrong: `bash -n` never evaluates arithmetic-context content at parse time,
* and bash's runtime fallback means a bare `bash -c` execution never throws
* either. That version passed a full `gsd-test` run (41594/41594, 0
* either. That version passed a full `msd-test` run (41594/41594, 0
* failures) against the UNFIXED file — a false green. This version fixes
* that by asserting on the real, verified failure mode: execution under
* `dash`/`sh`.
@@ -35,7 +35,7 @@
* workflow file against real temp-directory filesystem states — not a mock,
* not a source-text grep of the fix. Extracting the fence line-by-line (not
* a single fence-spanning regex — matches this repo's established
* extraction idiom, e.g. tests/no-hardcoded-home-gsd-tools.test.cjs) reads
* extraction idiom, e.g. tests/no-hardcoded-home-msd-tools.test.cjs) reads
* workflow markdown, not source code; `local/no-source-grep` targets
* readFileSync of .cjs/.cts/.js/.mjs/.mts/.ts SOURCE files, which this is
* not. All subprocess calls route through tests/helpers/process-seam.cjs
@@ -50,10 +50,10 @@ const os = require('node:os');
const path = require('node:path');
const { runHook, OUTCOME } = require('./helpers/process-seam.cjs');
const { cleanup } = require('./helpers.cjs');
const { splitLines } = require('../gsd-core/bin/lib/text-lines.cjs');
const { splitLines } = require('../msd-core/bin/lib/text-lines.cjs');
const REPO_ROOT = path.join(__dirname, '..');
const WORKFLOW_PATH = path.join(REPO_ROOT, 'gsd-core', 'workflows', 'pause-work.md');
const WORKFLOW_PATH = path.join(REPO_ROOT, 'msd-core', 'workflows', 'pause-work.md');
/**
* Extract the fenced ```bash block that immediately follows the given
@@ -103,7 +103,7 @@ function shellRejectsAmbiguousArithmetic(shell) {
* `$((` -> command-substitution fallback, so it can actually distinguish
* broken from fixed. Plain `/bin/sh` is unreliable for this: on macOS it is
* bash-compatible and does not reproduce the defect. Prefer `dash` (the
* default `/bin/sh` on Debian/Ubuntu, including this repo's gsd-test Linux
* default `/bin/sh` on Debian/Ubuntu, including this repo's msd-test Linux
* bench); fall back to `sh` only if `dash` is not on PATH — and even then,
* only if `sh` actually discriminates the two cases (verified, not assumed
* from the binary name).
@@ -152,7 +152,7 @@ describe('regression #4112: pause-work.md Context Detection block', () => {
if (!posixShell) {
t.skip('no POSIX shell on this host actually rejects the ambiguous $(( construct ' +
'(dash unavailable and the resolved /bin/sh is bash-compatible) — cannot prove the ' +
'regression here; this is still proven on the gsd-test Linux bench, where /bin/sh is dash');
'regression here; this is still proven on the msd-test Linux bench, where /bin/sh is dash');
return;
}
const result = runHook('-c', [contextDetectionBlock], { interpreter: posixShell });