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

@@ -2,7 +2,7 @@
/**
* check-contract-drift.cjs
*
* Enforces that gsd-core/references/agent-contracts.md's `## Agent Registry`
* Enforces that msd-core/references/agent-contracts.md's `## Agent Registry`
* table stays in sync with reality:
*
* 1. The table itself must parse cleanly (no malformed rows).
@@ -14,7 +14,7 @@
* artifact+query`/`structured-return`, in which case any emitted
* marker is itself a violation (vestigial_marker).
* 4. Every `sentinel-match` row's declared markers must have at least one
* exact-case consumer somewhere under gsd-core/workflows/, commands/,
* exact-case consumer somewhere under msd-core/workflows/, commands/,
* or agents/ (excluding the producing agent's own file).
* 5. Registry roster coverage: every agents/*.md file has exactly one
* row, every row names an agent file that exists
@@ -47,9 +47,9 @@ function resolveRoot(argv) {
}
const ROOT = resolveRoot(process.argv.slice(2));
const CONTRACTS_FILE = path.join(ROOT, 'gsd-core', 'references', 'agent-contracts.md');
const CONTRACTS_FILE = path.join(ROOT, 'msd-core', 'references', 'agent-contracts.md');
const AGENTS_DIR = path.join(ROOT, 'agents');
const WORKFLOWS_DIR = path.join(ROOT, 'gsd-core', 'workflows');
const WORKFLOWS_DIR = path.join(ROOT, 'msd-core', 'workflows');
const COMMANDS_DIR = path.join(ROOT, 'commands');
const {
@@ -92,27 +92,27 @@ function toRepoRelative(absPath) {
/**
* referenceIncludes(content)
*
* Plain scan for `@~/.claude/gsd-core/references/*.md` tokens anywhere in an
* Plain scan for `@~/.claude/msd-core/references/*.md` tokens anywhere in an
* agent file's content -- inside an `<execution_context>` block (already
* covered structurally by `executionContextRefs` in command-contract-helpers,
* but a raw regex over the whole string picks those up too) and, just as
* importantly, OUTSIDE one: agents frequently point at a reference doc from
* plain prose (e.g. "See @~/.claude/gsd-core/references/planner-guidance.md
* plain prose (e.g. "See @~/.claude/msd-core/references/planner-guidance.md
* for ...") rather than from the eager `<execution_context>` include list.
* An agent's completion-marker contract can be authored in such a reference
* file rather than the agent file itself -- gsd-planner declares
* file rather than the agent file itself -- msd-planner declares
* `PLANNING COMPLETE` in its registry row, but the example heading itself
* lives in `gsd-core/references/planner-guidance.md`, which the agent only
* lives in `msd-core/references/planner-guidance.md`, which the agent only
* `@`-includes -- so the producer scan below must follow these includes to
* see markers an agent's contract legitimately delegates to a reference doc.
* Returns ROOT-relative paths (`gsd-core/references/foo.md`), de-duplicated.
* Returns ROOT-relative paths (`msd-core/references/foo.md`), de-duplicated.
*/
function referenceIncludes(content) {
const seen = new Set();
const re = /@~\/\.claude\/gsd-core\/references\/[A-Za-z0-9._-]+\.md/g;
const re = /@~\/\.claude\/msd-core\/references\/[A-Za-z0-9._-]+\.md/g;
let m;
while ((m = re.exec(content)) !== null) {
const relPath = 'gsd-core/references/' + m[0].slice('@~/.claude/gsd-core/references/'.length);
const relPath = 'msd-core/references/' + m[0].slice('@~/.claude/msd-core/references/'.length);
seen.add(relPath);
}
return [...seen];
@@ -199,7 +199,7 @@ function main() {
}
}
// consumerTexts: every *.md under gsd-core/workflows/, commands/, agents/
// consumerTexts: every *.md under msd-core/workflows/, commands/, agents/
// — plus every file-shaped `Consumed by` entry that resolves on disk, so
// a row citing a reference doc or an ADR (e.g. intel-updater's
// docs/adr/22-plan-drift-guard.md) is validated against the real file and
@@ -292,7 +292,7 @@ function main() {
process.stderr.write('\n');
}
process.stderr.write('See gsd-core/references/agent-contracts.md for the registry contract spec.\n\n');
process.stderr.write('See msd-core/references/agent-contracts.md for the registry contract spec.\n\n');
return 1;
}