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

@@ -4,7 +4,7 @@
* Issue #1602 — Structured coverage metadata on SUMMARY.md.
*
* Behavioral tests for the deterministic coverage classifier exposed as
* `gsd-tools uat classify-coverage --summary <path>`. These exercise the real
* `msd-tools uat classify-coverage --summary <path>`. These exercise the real
* deployed contract (JSON IR) through the CLI — no source-grep, no asserting on
* rendered prose. The classifier parses the SUMMARY `coverage:` frontmatter
* block, validates each deliverable entry's schema, and routes each into
@@ -16,10 +16,10 @@ const { describe, test } = require('node:test');
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');
const { createTempProject, cleanup, runGsdTools } = require('./helpers.cjs');
const { createTempProject, cleanup, runMsdTools } = require('./helpers.cjs');
// Frozen enum contract surfaced by the module (typed-IR, not prose).
const coverage = require('../gsd-core/bin/lib/coverage.cjs');
const coverage = require('../msd-core/bin/lib/coverage.cjs');
const PHASE_DIR_REL = path.join('.planning', 'phases', '01-foundation');
@@ -52,7 +52,7 @@ function writeSummary(tmpDir, frontmatterBodyLines) {
/** Run `uat classify-coverage` and return the parsed JSON result. */
function classify(tmpDir, rel) {
const result = runGsdTools(`uat classify-coverage --summary ${rel}`, tmpDir);
const result = runMsdTools(`uat classify-coverage --summary ${rel}`, tmpDir);
assert.ok(result.success, `command should succeed: ${result.error || result.output}`);
return JSON.parse(result.output);
}
@@ -422,7 +422,7 @@ describe('coverage classify — filesystem & security', () => {
test('missing --summary file => structured error, non-zero exit, no stack trace', (t) => {
const tmpDir = createTempProject();
t.after(() => cleanup(tmpDir));
const result = runGsdTools('uat classify-coverage --summary .planning/phases/01-foundation/nope-SUMMARY.md', tmpDir);
const result = runMsdTools('uat classify-coverage --summary .planning/phases/01-foundation/nope-SUMMARY.md', tmpDir);
assert.equal(result.success, false);
assert.ok(!/at Object\.|at Module\./.test(result.error || result.output || ''), 'no raw stack trace');
});
@@ -430,7 +430,7 @@ describe('coverage classify — filesystem & security', () => {
test('path traversal in --summary is rejected', (t) => {
const tmpDir = createTempProject();
t.after(() => cleanup(tmpDir));
const result = runGsdTools('uat classify-coverage --summary ../../../../etc/passwd', tmpDir);
const result = runMsdTools('uat classify-coverage --summary ../../../../etc/passwd', tmpDir);
assert.equal(result.success, false);
});
});