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:
@@ -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)'
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user