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

@@ -11,13 +11,13 @@ const { describe, test } = require('node:test');
const assert = require('node:assert/strict');
const fs = require('node:fs');
const path = require('node:path');
const { runGsdTools, createTempProject, cleanup } = require('./helpers.cjs');
const { runMsdTools, createTempProject, cleanup } = require('./helpers.cjs');
const ROOT = path.resolve(__dirname, '..');
const PLANNER = path.join(ROOT, 'agents', 'gsd-planner.md');
const EXECUTOR = path.join(ROOT, 'agents', 'gsd-executor.md');
const PLANNER = path.join(ROOT, 'agents', 'msd-planner.md');
const EXECUTOR = path.join(ROOT, 'agents', 'msd-executor.md');
const PLAN_MD_DOC = path.join(ROOT, 'docs', 'reference', 'plan-md.md');
const PRECONDITIONS_REF = path.join(ROOT, 'gsd-core', 'references', 'planner-preconditions.md');
const PRECONDITIONS_REF = path.join(ROOT, 'msd-core', 'references', 'planner-preconditions.md');
function read(rel) {
return fs.readFileSync(rel, 'utf-8').replace(/\r\n/g, '\n').replace(/\r/g, '\n');
@@ -44,14 +44,14 @@ describe('issue #1949: plan-md.md documents <precondition>', () => {
});
});
// ─── Planner emission contract (agents/gsd-planner.md) ──────────────────────
// ─── Planner emission contract (agents/msd-planner.md) ──────────────────────
describe('issue #1949: gsd-planner.md declares <precondition> emission', () => {
describe('issue #1949: msd-planner.md declares <precondition> emission', () => {
test('planner references the precondition reference file', () => {
const planner = read(PLANNER);
assert.ok(
planner.includes('planner-preconditions.md'),
'gsd-planner.md must @-reference planner-preconditions.md (progressive disclosure)'
'msd-planner.md must @-reference planner-preconditions.md (progressive disclosure)'
);
});
@@ -59,7 +59,7 @@ describe('issue #1949: gsd-planner.md declares <precondition> emission', () => {
const planner = read(PLANNER);
assert.ok(
planner.length < 49152,
`gsd-planner.md is ${planner.length} chars, must be < 49152 (LF-normalized)`
`msd-planner.md is ${planner.length} chars, must be < 49152 (LF-normalized)`
);
});
});
@@ -104,15 +104,15 @@ describe('issue #1949: planner-preconditions.md exists with the three emission c
});
});
// ─── Executor assertion contract (agents/gsd-executor.md) ────────────────────
// ─── Executor assertion contract (agents/msd-executor.md) ────────────────────
describe('issue #1949: gsd-executor.md asserts <precondition> before task execution', () => {
describe('issue #1949: msd-executor.md asserts <precondition> before task execution', () => {
test('executor mentions <precondition>', () => {
const exec = read(EXECUTOR);
assert.match(
exec,
/<precondition>/,
'gsd-executor.md must reference <precondition>'
'msd-executor.md must reference <precondition>'
);
});
@@ -120,7 +120,7 @@ describe('issue #1949: gsd-executor.md asserts <precondition> before task execut
const exec = read(EXECUTOR);
assert.ok(
/precondition/i.test(exec) && /checkpoint/.test(exec),
'gsd-executor.md must route unmet <precondition> through checkpoint machinery'
'msd-executor.md must route unmet <precondition> through checkpoint machinery'
);
});
@@ -128,7 +128,7 @@ describe('issue #1949: gsd-executor.md asserts <precondition> before task execut
const exec = read(EXECUTOR);
assert.ok(
/no.op|no visible change|continue/i.test(exec),
'gsd-executor.md must state that a met or absent precondition produces no visible change'
'msd-executor.md must state that a met or absent precondition produces no visible change'
);
});
@@ -136,7 +136,7 @@ describe('issue #1949: gsd-executor.md asserts <precondition> before task execut
const exec = read(EXECUTOR);
assert.ok(
exec.length < 49152,
`gsd-executor.md is ${exec.length} chars, must be < 49152 (LF-normalized)`
`msd-executor.md is ${exec.length} chars, must be < 49152 (LF-normalized)`
);
});
});
@@ -189,7 +189,7 @@ function verifyPlan(tmpDir, content) {
const rel = path.join('.planning', 'phases', '01-test', '01-01-PLAN.md');
fs.mkdirSync(path.join(tmpDir, '.planning', 'phases', '01-test'), { recursive: true });
fs.writeFileSync(path.join(tmpDir, rel), content);
const result = runGsdTools(`verify plan-structure ${rel}`, tmpDir);
const result = runMsdTools(`verify plan-structure ${rel}`, tmpDir);
assert.ok(result.success, `verify plan-structure failed to run: ${result.error}`);
return JSON.parse(result.output);
}
@@ -242,12 +242,12 @@ describe('issue #1949: parity between plan-md.md and planner-preconditions.md',
// the failure as an executable gap — retrying an operator gate forever (#3210).
describe('issue #3210: executor gates the precondition-unmet checkpoint as blocking-human', () => {
const CHECKPOINTS_REF = path.join(ROOT, 'gsd-core', 'references', 'checkpoints.md');
const CHECKPOINTS_REF = path.join(ROOT, 'msd-core', 'references', 'checkpoints.md');
test('unmet-precondition branch stamps the returned checkpoint with Gate: blocking-human', () => {
const exec = read(EXECUTOR);
const unmet = exec.split('\n').find((l) => l.includes('**Unmet:**'));
assert.ok(unmet, 'gsd-executor.md must keep the **Unmet:** precondition branch');
assert.ok(unmet, 'msd-executor.md must keep the **Unmet:** precondition branch');
assert.match(
unmet,
/blocking-human/,
@@ -259,7 +259,7 @@ describe('issue #3210: executor gates the precondition-unmet checkpoint as block
test('auto-mode human-verify rule explicitly exempts precondition-unmet checkpoints', () => {
const exec = read(EXECUTOR);
const rule = exec.split('\n').find((l) => l.includes('**checkpoint:human-verify**') && /Auto-approve/.test(l));
assert.ok(rule, 'gsd-executor.md must keep the auto-mode human-verify bypass rule');
assert.ok(rule, 'msd-executor.md must keep the auto-mode human-verify bypass rule');
assert.match(
rule,
/precondition/i,
@@ -288,7 +288,7 @@ describe('issue #3210: executor gates the precondition-unmet checkpoint as block
unmet,
/blocking-human/,
'the Unmet row must state the returned checkpoint carries gate="blocking-human", matching ' +
'agents/gsd-executor.md (#3210)'
'agents/msd-executor.md (#3210)'
);
});
});