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:
@@ -1,5 +1,5 @@
|
||||
// allow-test-rule: source-text-is-the-product agent .md instruction surface see #1205
|
||||
// agents/gsd-roadmapper.md is the deployed agent — the Granularity Calibration table
|
||||
// agents/msd-roadmapper.md is the deployed agent — the Granularity Calibration table
|
||||
// AND the phase_id_convention instructions ARE the deployed behavior. Asserting on
|
||||
// their prose asserts what runs in production (#163, #1205).
|
||||
'use strict';
|
||||
@@ -37,8 +37,8 @@ function extractBlock(content, tag) {
|
||||
return content.slice(start + open.length, end);
|
||||
}
|
||||
|
||||
describe('gsd-roadmapper granularity calibration (#163)', () => {
|
||||
const section = granularitySection(readAgent('gsd-roadmapper'));
|
||||
describe('msd-roadmapper granularity calibration (#163)', () => {
|
||||
const section = granularitySection(readAgent('msd-roadmapper'));
|
||||
|
||||
test('Coarse bucket is tightened to 2-4', () => {
|
||||
assert.ok(/\|\s*Coarse\s*\|\s*2-4\s*\|/.test(section), 'Coarse must be 2-4');
|
||||
@@ -68,8 +68,8 @@ describe('gsd-roadmapper granularity calibration (#163)', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('gsd-roadmapper phase_id_convention support (#1205)', () => {
|
||||
const content = readAgent('gsd-roadmapper');
|
||||
describe('msd-roadmapper phase_id_convention support (#1205)', () => {
|
||||
const content = readAgent('msd-roadmapper');
|
||||
|
||||
test('phase_identification section reads phase_id_convention from config', () => {
|
||||
const section = extractBlock(content, 'phase_identification');
|
||||
@@ -160,7 +160,7 @@ describe('gsd-roadmapper phase_id_convention support (#1205)', () => {
|
||||
|
||||
'use strict';
|
||||
|
||||
process.env.GSD_TEST_MODE = '1';
|
||||
process.env.MSD_TEST_MODE = '1';
|
||||
|
||||
const { test, describe, beforeEach, afterEach } = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
@@ -170,15 +170,15 @@ const path = require('node:path');
|
||||
const {
|
||||
resolveGranularityInternal,
|
||||
VALID_GRANULARITIES,
|
||||
} = require('../gsd-core/bin/lib/model-resolver.cjs');
|
||||
const commands = require('../gsd-core/bin/lib/commands.cjs');
|
||||
} = require('../msd-core/bin/lib/model-resolver.cjs');
|
||||
const commands = require('../msd-core/bin/lib/commands.cjs');
|
||||
const {
|
||||
VALID_PHASE_TYPES,
|
||||
} = require('../gsd-core/bin/lib/model-profiles.cjs');
|
||||
const { isValidConfigKey } = require('../gsd-core/bin/lib/config-schema.cjs');
|
||||
} = require('../msd-core/bin/lib/model-profiles.cjs');
|
||||
const { isValidConfigKey } = require('../msd-core/bin/lib/config-schema.cjs');
|
||||
|
||||
const { createTempDir, runGsdTools, createTempProject, cleanup } = require('./helpers.cjs');
|
||||
const makeTmp = (prefix) => createTempDir(`gsd-68-${prefix}-`);
|
||||
const { createTempDir, runMsdTools, createTempProject, cleanup } = require('./helpers.cjs');
|
||||
const makeTmp = (prefix) => createTempDir(`msd-68-${prefix}-`);
|
||||
|
||||
function writeConfig(projectDir, config) {
|
||||
const planningDir = path.join(projectDir, '.planning');
|
||||
@@ -429,13 +429,13 @@ describe('#68 resolve-granularity command: CLI behavior', () => {
|
||||
});
|
||||
|
||||
test('(a) missing phase-type arg → command exits with error mentioning phase-type required', () => {
|
||||
const result = runGsdTools('resolve-granularity', tmpDir);
|
||||
const result = runMsdTools('resolve-granularity', tmpDir);
|
||||
assert.ok(!result.success, 'should fail without phase-type');
|
||||
assert.ok(result.error.includes('phase-type required'), `error should mention phase-type required; got: ${result.error}`);
|
||||
});
|
||||
|
||||
test('(b) unknown phase type → result includes unknown_phase_type: true', () => {
|
||||
const result = runGsdTools('resolve-granularity nonexistent-phase', tmpDir);
|
||||
const result = runMsdTools('resolve-granularity nonexistent-phase', tmpDir);
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
const output = JSON.parse(result.output);
|
||||
assert.strictEqual(output.unknown_phase_type, true, 'should flag unknown phase type');
|
||||
@@ -450,7 +450,7 @@ describe('#68 resolve-granularity command: CLI behavior', () => {
|
||||
granularities: { planning: 'fine' },
|
||||
})
|
||||
);
|
||||
const result = runGsdTools('resolve-granularity planning', tmpDir, { HOME: tmpDir });
|
||||
const result = runMsdTools('resolve-granularity planning', tmpDir, { HOME: tmpDir });
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
const output = JSON.parse(result.output);
|
||||
assert.strictEqual(output.granularity, 'fine', 'granularities.planning override should win');
|
||||
@@ -535,7 +535,7 @@ describe('#703 cmdResolveGranularity: --granularity CLI flag', () => {
|
||||
path.join(tmpDir, '.planning', 'config.json'),
|
||||
JSON.stringify({ granularity: 'coarse' })
|
||||
);
|
||||
const result = runGsdTools('resolve-granularity planning --granularity fine', tmpDir, { HOME: tmpDir });
|
||||
const result = runMsdTools('resolve-granularity planning --granularity fine', tmpDir, { HOME: tmpDir });
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
const output = JSON.parse(result.output);
|
||||
assert.strictEqual(output.granularity, 'fine', '--granularity fine must override config coarse');
|
||||
@@ -549,14 +549,14 @@ describe('#703 cmdResolveGranularity: --granularity CLI flag', () => {
|
||||
granularities: { planning: 'fine' },
|
||||
})
|
||||
);
|
||||
const result = runGsdTools('resolve-granularity planning --granularity coarse', tmpDir, { HOME: tmpDir });
|
||||
const result = runMsdTools('resolve-granularity planning --granularity coarse', tmpDir, { HOME: tmpDir });
|
||||
assert.ok(result.success, `Command failed: ${result.error}`);
|
||||
const output = JSON.parse(result.output);
|
||||
assert.strictEqual(output.granularity, 'coarse', '--granularity coarse must beat per-phase fine');
|
||||
});
|
||||
|
||||
test('invalid --granularity value exits with error', () => {
|
||||
const result = runGsdTools('resolve-granularity planning --granularity ultra', tmpDir);
|
||||
const result = runMsdTools('resolve-granularity planning --granularity ultra', tmpDir);
|
||||
assert.ok(!result.success, 'should fail with invalid granularity');
|
||||
assert.ok(
|
||||
result.error.includes('ultra') || result.error.includes('invalid'),
|
||||
@@ -596,7 +596,7 @@ describe('#703 init.plan-phase end-to-end: granularity resolution via CLI', () =
|
||||
let tmpDir;
|
||||
|
||||
beforeEach(() => {
|
||||
tmpDir = makeInitPlanPhaseFixture('gsd-68-e2e-');
|
||||
tmpDir = makeInitPlanPhaseFixture('msd-68-e2e-');
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@@ -608,7 +608,7 @@ describe('#703 init.plan-phase end-to-end: granularity resolution via CLI', () =
|
||||
path.join(tmpDir, '.planning', 'config.json'),
|
||||
JSON.stringify({ granularity: 'standard', granularities: { planning: 'coarse' } })
|
||||
);
|
||||
const result = runGsdTools('init plan-phase 1 --granularity fine', tmpDir, { HOME: tmpDir });
|
||||
const result = runMsdTools('init plan-phase 1 --granularity fine', tmpDir, { HOME: tmpDir });
|
||||
assert.ok(result.success, `init plan-phase failed: ${result.error}`);
|
||||
const data = JSON.parse(result.output);
|
||||
assert.strictEqual(data.granularity, 'fine',
|
||||
@@ -620,7 +620,7 @@ describe('#703 init.plan-phase end-to-end: granularity resolution via CLI', () =
|
||||
path.join(tmpDir, '.planning', 'config.json'),
|
||||
JSON.stringify({ granularity: 'coarse', granularities: { planning: 'fine' } })
|
||||
);
|
||||
const result = runGsdTools('init plan-phase 1', tmpDir, { HOME: tmpDir });
|
||||
const result = runMsdTools('init plan-phase 1', tmpDir, { HOME: tmpDir });
|
||||
assert.ok(result.success, `init plan-phase failed: ${result.error}`);
|
||||
const data = JSON.parse(result.output);
|
||||
assert.strictEqual(data.granularity, 'fine',
|
||||
@@ -632,7 +632,7 @@ describe('#703 init.plan-phase end-to-end: granularity resolution via CLI', () =
|
||||
path.join(tmpDir, '.planning', 'config.json'),
|
||||
JSON.stringify({ granularity: 'coarse' })
|
||||
);
|
||||
const result = runGsdTools('init plan-phase 1', tmpDir, { HOME: tmpDir });
|
||||
const result = runMsdTools('init plan-phase 1', tmpDir, { HOME: tmpDir });
|
||||
assert.ok(result.success, `init plan-phase failed: ${result.error}`);
|
||||
const data = JSON.parse(result.output);
|
||||
assert.strictEqual(data.granularity, 'coarse',
|
||||
@@ -640,7 +640,7 @@ describe('#703 init.plan-phase end-to-end: granularity resolution via CLI', () =
|
||||
});
|
||||
|
||||
test('(4) --granularity ultra → command errors (invalid value rejected on plan-phase path)', () => {
|
||||
const result = runGsdTools('init plan-phase 1 --granularity ultra', tmpDir, { HOME: tmpDir });
|
||||
const result = runMsdTools('init plan-phase 1 --granularity ultra', tmpDir, { HOME: tmpDir });
|
||||
assert.ok(!result.success, 'should fail with invalid granularity ultra');
|
||||
assert.ok(
|
||||
result.error.includes('ultra') || result.error.includes('invalid'),
|
||||
|
||||
Reference in New Issue
Block a user