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

@@ -21,11 +21,11 @@ const path = require('node:path');
const { createTempDir, cleanup, captureFdSync } = require('./helpers.cjs');
const { routeResolveContent } = require('../gsd-core/bin/lib/task-command-router.cjs');
const { ExitError } = require('../gsd-core/bin/lib/cli-exit.cjs');
const { routeResolveContent } = require('../msd-core/bin/lib/task-command-router.cjs');
const { ExitError } = require('../msd-core/bin/lib/cli-exit.cjs');
const {
ResolverFailedError,
} = require('../gsd-core/bin/lib/task-content-resolution.cjs');
} = require('../msd-core/bin/lib/task-content-resolution.cjs');
/**
* NOT a subprocess spawn timeout. Fixture DATA inside a fakeCapabilities
@@ -43,7 +43,7 @@ function writePlan(dir, taskXml) {
/**
* `io.cjs`'s `output()` writes to fd 1 via `fs.writeSync` directly (never
* `process.stdout.write`) — see `writeAllSync` in
* `gsd-core/bin/lib/io.cjs`. Capture fd-1 writes by mocking `fs.writeSync`
* `msd-core/bin/lib/io.cjs`. Capture fd-1 writes by mocking `fs.writeSync`
* itself; every other fd passes through to the real implementation
* unmocked (so the plan-file reads and any other fs traffic inside a test
* body still work).
@@ -72,7 +72,7 @@ const RESOLVABLE_TASK = '<task type="auto" tracker-id="test:1"><name>x</name><ac
describe('task resolve-content (rows 17-19)', () => {
test('row 19: missing --plan and --task-id -> USAGE, no filesystem access', (t) => {
const dir = createTempDir('gsd-resolve-content-19-');
const dir = createTempDir('msd-resolve-content-19-');
t.after(() => cleanup(dir));
const readMock = require('node:test').mock.method(fs, 'readFileSync', () => {
throw new Error('must not read the filesystem before usage validation');
@@ -86,7 +86,7 @@ describe('task resolve-content (rows 17-19)', () => {
});
test('row 19: missing --task-id only -> USAGE', (t) => {
const dir = createTempDir('gsd-resolve-content-19b-');
const dir = createTempDir('msd-resolve-content-19b-');
t.after(() => cleanup(dir));
writePlan(dir, RESOLVABLE_TASK);
assert.throws(
@@ -101,7 +101,7 @@ describe('task resolve-content (rows 17-19)', () => {
});
test('row 17: plan exists, task-id not found -> USAGE, non-zero exit', (t) => {
const dir = createTempDir('gsd-resolve-content-17-');
const dir = createTempDir('msd-resolve-content-17-');
t.after(() => cleanup(dir));
writePlan(dir, RESOLVABLE_TASK);
@@ -121,7 +121,7 @@ describe('task resolve-content (rows 17-19)', () => {
});
test('row 18: end-to-end happy path, resolved:true content shape', (t) => {
const dir = createTempDir('gsd-resolve-content-18-');
const dir = createTempDir('msd-resolve-content-18-');
t.after(() => cleanup(dir));
writePlan(dir, RESOLVABLE_TASK);
@@ -174,7 +174,7 @@ describe('task resolve-content (rows 17-19)', () => {
});
test('hard-halt: a thrown ResolverFailedError becomes a non-zero exit, never {resolved:false}', (t) => {
const dir = createTempDir('gsd-resolve-content-hardhalt-');
const dir = createTempDir('msd-resolve-content-hardhalt-');
t.after(() => cleanup(dir));
writePlan(dir, RESOLVABLE_TASK);
@@ -213,7 +213,7 @@ describe('task resolve-content (rows 17-19)', () => {
});
test('path traversal: --plan escaping the project root -> USAGE, non-zero exit, no filesystem read', (t) => {
const dir = createTempDir('gsd-resolve-content-traversal-');
const dir = createTempDir('msd-resolve-content-traversal-');
t.after(() => cleanup(dir));
const escapingPath = '../../../etc/passwit';
@@ -238,7 +238,7 @@ describe('task resolve-content (rows 17-19)', () => {
});
test('not-applicable: task-id with no ":" -> {resolved:false}, no reason field', (t) => {
const dir = createTempDir('gsd-resolve-content-na-');
const dir = createTempDir('msd-resolve-content-na-');
t.after(() => cleanup(dir));
writePlan(dir, '<task type="auto" tracker-id="notrackerprefix"><name>y</name></task>');