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:
@@ -4,7 +4,7 @@
|
||||
// Per CONTRIBUTING.md exception matrix.
|
||||
|
||||
/**
|
||||
* GSD Forensics Tests
|
||||
* MSD Forensics Tests
|
||||
*
|
||||
* Validates the forensics command and workflow files exist,
|
||||
* follow expected patterns, and cover all anomaly detection types.
|
||||
@@ -18,17 +18,17 @@ const os = require('os');
|
||||
const { cleanup } = require('./helpers.cjs');
|
||||
|
||||
const repoRoot = path.resolve(__dirname, '..');
|
||||
const commandPath = path.join(repoRoot, 'commands', 'gsd', 'forensics.md');
|
||||
const workflowPath = path.join(repoRoot, 'gsd-core', 'workflows', 'forensics.md');
|
||||
const commandPath = path.join(repoRoot, 'commands', 'msd', 'forensics.md');
|
||||
const workflowPath = path.join(repoRoot, 'msd-core', 'workflows', 'forensics.md');
|
||||
|
||||
describe('forensics command', () => {
|
||||
test('command file exists', () => {
|
||||
assert.ok(fs.existsSync(commandPath), 'commands/gsd/forensics.md should exist');
|
||||
assert.ok(fs.existsSync(commandPath), 'commands/msd/forensics.md should exist');
|
||||
});
|
||||
|
||||
test('command has correct frontmatter', () => {
|
||||
const content = fs.readFileSync(commandPath, 'utf-8');
|
||||
assert.ok(content.includes('name: gsd:forensics'), 'should have correct command name');
|
||||
assert.ok(content.includes('name: msd:forensics'), 'should have correct command name');
|
||||
assert.ok(content.includes('type: prompt'), 'should have type: prompt');
|
||||
assert.ok(content.includes('argument-hint'), 'should have argument-hint');
|
||||
});
|
||||
@@ -144,25 +144,25 @@ describe('forensics workflow', () => {
|
||||
);
|
||||
});
|
||||
|
||||
test('workflow submits issues to open-gsd/gsd-core, not the current repo', () => {
|
||||
test('workflow submits issues to golem15com/msd-core, not the current repo', () => {
|
||||
const content = fs.readFileSync(workflowPath, 'utf-8');
|
||||
// Scope check to the gh issue create invocation — a whole-file search would
|
||||
// pass even if gh issue create lacked --repo, because gh label list also
|
||||
// contains the repo string.
|
||||
assert.match(
|
||||
content,
|
||||
/gh issue create[\s\S]{0,250}--repo\s+open-gsd\/gsd-core/,
|
||||
'gh issue create must use --repo open-gsd/gsd-core to avoid submitting to the user\'s current project repo'
|
||||
/gh issue create[\s\S]{0,250}--repo\s+golem15com\/msd-core/,
|
||||
'gh issue create must use --repo golem15com/msd-core to avoid submitting to the user\'s current project repo'
|
||||
);
|
||||
});
|
||||
|
||||
test('workflow checks bug label in open-gsd/gsd-core, not the current repo', () => {
|
||||
test('workflow checks bug label in golem15com/msd-core, not the current repo', () => {
|
||||
const content = fs.readFileSync(workflowPath, 'utf-8');
|
||||
// Regex is more robust than a fixed-length slice to formatting changes
|
||||
assert.match(
|
||||
content,
|
||||
/gh label list[\s\S]{0,250}--repo\s+open-gsd\/gsd-core/,
|
||||
'gh label list must target open-gsd/gsd-core'
|
||||
/gh label list[\s\S]{0,250}--repo\s+golem15com\/msd-core/,
|
||||
'gh label list must target golem15com/msd-core'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -170,7 +170,7 @@ describe('forensics workflow', () => {
|
||||
const content = fs.readFileSync(workflowPath, 'utf-8');
|
||||
assert.ok(
|
||||
content.includes('state record-session') || content.includes('state.record-session'),
|
||||
'should update STATE.md via state record-session (CJS or gsd-sdk query)'
|
||||
'should update STATE.md via state record-session (CJS or msd-sdk query)'
|
||||
);
|
||||
});
|
||||
|
||||
@@ -217,7 +217,7 @@ describe('forensics fixture-based tests', () => {
|
||||
let tmpDir;
|
||||
|
||||
beforeEach(() => {
|
||||
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-forensics-test-'));
|
||||
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-forensics-test-'));
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
|
||||
Reference in New Issue
Block a user