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

@@ -1,5 +1,5 @@
/**
* GSD Quick Workflow — Commit Boundary Tests (#1503)
* MSD Quick Workflow — Commit Boundary Tests (#1503)
*
* Validates that the quick workflow correctly separates executor
* responsibilities (code commits) from orchestrator responsibilities
@@ -12,7 +12,7 @@ const assert = require('node:assert/strict');
const fs = require('fs');
const path = require('path');
const WORKFLOWS_DIR = path.join(__dirname, '..', 'gsd-core', 'workflows');
const WORKFLOWS_DIR = path.join(__dirname, '..', 'msd-core', 'workflows');
describe('quick workflow commit boundary (#1503)', () => {
const quickPath = path.join(WORKFLOWS_DIR, 'quick.md');
@@ -33,7 +33,7 @@ describe('quick workflow commit boundary (#1503)', () => {
test('Step 8 explicitly stages artifacts with git add before commit', () => {
assert.ok(
content.includes('git add ${file_list}'),
'Step 8 should explicitly git add the file list before gsd-tools commit'
'Step 8 should explicitly git add the file list before msd-tools commit'
);
});
@@ -76,25 +76,25 @@ const assert = require('node:assert/strict');
const fs = require('fs');
const path = require('path');
const QUICK_MD = path.join(__dirname, '..', 'gsd-core', 'workflows', 'quick.md');
const QUICK_MD = path.join(__dirname, '..', 'msd-core', 'workflows', 'quick.md');
const REPO_ROOT_FOR_SECTIONS = path.join(__dirname, '..');
/**
* #2994 fragmentization moved Steps 4.5/4.75/5.5/5.6/6.5 out of quick.md into
* gsd-core/workflows/quick/steps/*.md behind section markers. A plain
* msd-core/workflows/quick/steps/*.md behind section markers. A plain
* `content.indexOf('Step 5.6')` against the host now matches an unrelated
* later CROSS-REFERENCE to "Step 5.6" (a mention inside the worktree-branch
* guard prose), not the real heading — silently vacuous, since that
* mis-anchored slice still happens to contain USE_WORKTREES/commit_docs/
* PLAN.md/git add/git commit substrings from unrelated surrounding text.
* Expand each `<!-- gsd:section id="X" ... -->...<!-- /gsd:section -->`
* Expand each `<!-- msd:section id="X" ... -->...<!-- /msd:section -->`
* marker IN PLACE with its step file's content so Step 5.5/5.6/6/6.5 land
* back at their original logical positions and ordering/slicing assertions
* see the real step bodies again.
*/
function expandWorkflowSections(workflowPath) {
const raw = fs.readFileSync(workflowPath, 'utf8');
const markerRe = /<!-- gsd:section id="[\w-]+" when="[^"]*" -->[\s\S]*?<!-- \/gsd:section -->/g;
const markerRe = /<!-- msd:section id="[\w-]+" when="[^"]*" -->[\s\S]*?<!-- \/msd:section -->/g;
return raw.replace(markerRe, (block) => {
const pathMatch = block.match(/`([^`]+\.md)`/);
if (!pathMatch) return block;
@@ -108,7 +108,7 @@ describe('quick.md pre-dispatch PLAN.md commit (#2432)', () => {
let content;
test('quick.md exists', () => {
assert.ok(fs.existsSync(QUICK_MD), 'gsd-core/workflows/quick.md must exist');
assert.ok(fs.existsSync(QUICK_MD), 'msd-core/workflows/quick.md must exist');
content = expandWorkflowSections(QUICK_MD);
});
@@ -171,7 +171,7 @@ describe('quick.md pre-dispatch PLAN.md commit (#2432)', () => {
// QUICK_DIR is always set to ".planning/quick/..." (relative) so ${QUICK_DIR}/...PLAN.md
// resolves relative to the worktree root, not the main repo absolute path.
// Verify the executor prompt uses QUICK_DIR variable (not a hardcoded absolute path).
const executorTask = content.indexOf('subagent_type="gsd-executor"');
const executorTask = content.indexOf('subagent_type="msd-executor"');
assert.ok(executorTask !== -1, 'executor Task() spawn must exist');
// Find the files_to_read block near the executor spawn
const filesBlock = content.lastIndexOf('<required_reading>', executorTask);
@@ -208,10 +208,10 @@ describe('quick.md pre-dispatch PLAN.md commit (#2432)', () => {
});
test('#1265 executor materializes PLAN.md from the plan commit when worktree starts at parent', () => {
const executorTask = content.indexOf('subagent_type="gsd-executor"');
const executorTask = content.indexOf('subagent_type="msd-executor"');
assert.ok(executorTask !== -1, 'executor Task() spawn must exist');
const promptStart = content.lastIndexOf('prompt="', executorTask);
const promptEnd = content.indexOf('subagent_type="gsd-executor"', promptStart);
const promptEnd = content.indexOf('subagent_type="msd-executor"', promptStart);
const executorPrompt = content.slice(promptStart, promptEnd);
assert.ok(
@@ -253,13 +253,13 @@ const assert = require('node:assert/strict');
const fs = require('fs');
const path = require('path');
const WORKFLOW_PATH = path.join(__dirname, '..', 'gsd-core', 'workflows', 'quick.md');
const WORKFLOW_PATH = path.join(__dirname, '..', 'msd-core', 'workflows', 'quick.md');
describe('bug #2523: quick-task final commit includes deferred-items.md', () => {
const content = fs.readFileSync(WORKFLOW_PATH, 'utf-8');
test('workflow file exists', () => {
assert.ok(fs.existsSync(WORKFLOW_PATH), 'gsd-core/workflows/quick.md must exist');
assert.ok(fs.existsSync(WORKFLOW_PATH), 'msd-core/workflows/quick.md must exist');
});
test('Step 8 file list references deferred-items.md', () => {