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

@@ -10,14 +10,14 @@ 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 { lfByteCount } = require('../scripts/workflow-size.cjs');
const ROOT = path.resolve(__dirname, '..');
const PLAN_MD_DOC = path.join(ROOT, 'docs', 'reference', 'plan-md.md');
const EXECUTOR = path.join(ROOT, 'agents', 'gsd-executor.md');
const EXECUTE_PHASE_WORKFLOW = path.join(ROOT, 'gsd-core', 'workflows', 'execute-phase.md');
const CHECKPOINTS_REF = path.join(ROOT, 'gsd-core', 'references', 'checkpoints.md');
const EXECUTOR = path.join(ROOT, 'agents', 'msd-executor.md');
const EXECUTE_PHASE_WORKFLOW = path.join(ROOT, 'msd-core', 'workflows', 'execute-phase.md');
const CHECKPOINTS_REF = path.join(ROOT, 'msd-core', 'references', 'checkpoints.md');
/** Agent-file hard red line (tests/agent-size-budget.test.cjs LARGE_CAP). */
const LARGE_CAP = 49152;
@@ -62,12 +62,12 @@ describe('issue #4095: plan-md.md documents auto_select', () => {
});
});
// ─── Executor bypass contract (agents/gsd-executor.md) ───────────────────────
// ─── Executor bypass contract (agents/msd-executor.md) ───────────────────────
describe('issue #4095: gsd-executor.md routes absent auto_select through checkpoint_return_format', () => {
describe('issue #4095: msd-executor.md routes absent auto_select through checkpoint_return_format', () => {
test('executor mentions auto_select', () => {
const exec = read(EXECUTOR);
assert.match(exec, /auto_select/, 'gsd-executor.md must reference auto_select');
assert.match(exec, /auto_select/, 'msd-executor.md must reference auto_select');
});
test('checkpoint:decision auto-mode bullet routes an absent auto_select like blocking-human', () => {
@@ -75,7 +75,7 @@ describe('issue #4095: gsd-executor.md routes absent auto_select through checkpo
const bullet = exec.split('\n').find(
(l) => l.includes('**checkpoint:decision**') && /[Aa]uto-select/.test(l),
);
assert.ok(bullet, 'gsd-executor.md must keep the checkpoint:decision auto-mode bullet');
assert.ok(bullet, 'msd-executor.md must keep the checkpoint:decision auto-mode bullet');
assert.match(
bullet,
/auto_select/,
@@ -92,12 +92,12 @@ describe('issue #4095: gsd-executor.md routes absent auto_select through checkpo
const bytes = lfByteCount(EXECUTOR);
assert.ok(
bytes < LARGE_CAP,
`gsd-executor.md is ${bytes} bytes, must be < ${LARGE_CAP} (LF-normalized, measured the same way tests/agent-size-budget.test.cjs does)`,
`msd-executor.md is ${bytes} bytes, must be < ${LARGE_CAP} (LF-normalized, measured the same way tests/agent-size-budget.test.cjs does)`,
);
});
});
// ─── Orchestrator contract (gsd-core/workflows/execute-phase.md) ─────────────
// ─── Orchestrator contract (msd-core/workflows/execute-phase.md) ─────────────
describe('issue #4095: execute-phase.md decision bullet and carve-out', () => {
test('the decision bullet mentions auto_select', () => {
@@ -113,7 +113,7 @@ describe('issue #4095: execute-phase.md decision bullet and carve-out', () => {
wf.includes(
'**Carve-out — overrides all branches above.** If the returned `Gate:` is `blocking-human`',
),
'execute-phase.md must keep the carve-out paragraph verbatim — it is a <!-- gsd:protected --> '
'execute-phase.md must keep the carve-out paragraph verbatim — it is a <!-- msd:protected --> '
+ 'section and must not be touched by the auto_select change',
);
});
@@ -252,7 +252,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);
}