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

@@ -14,14 +14,14 @@
* fold sites).
*
* STAGE 2 (this file's focus, HOOK-BRIDGE): Windsurf's `hooksSurface` moved
* from `"none"` to `"windsurf-hooks-json"` — GSD's write/command safety
* from `"none"` to `"windsurf-hooks-json"` — MSD's write/command safety
* guards are now wired into Cascade's native `.windsurf/hooks.json` /
* `~/.codeium/windsurf/hooks.json` hook bus via `writeWindsurfHooksJson`
* (mirrors `writeCursorHooksJson`'s infra shape, but Cascade blocks via EXIT
* CODE 2 + stderr, not Cursor's stdout-JSON `{block,reason}` form). Only 2 of
* Cascade's documented hook events (pre_write_code, pre_run_command) have a
* blocking counterpart wired — Cascade has no context-injection channel, so
* the 4 advisory events GSD registers on Cursor have no Windsurf analog.
* the 4 advisory events MSD registers on Cursor have no Windsurf analog.
* Hook-bus mechanics (writer/reconcile/remove + the 2 guard scripts spawned
* directly) are covered in tests/windsurf-hooks-bridge.test.cjs — not
* duplicated here.
@@ -30,7 +30,7 @@
* tests/declarative-reference-copilot.test.cjs: it (1) classifies Windsurf's
* profile via profileOf, (2) confirms the public declarative adapter
* classifies it as declarative, (3) round-trips a real install proving a
* gsd agent surface is emitted, (4) proves negotiation fails CLOSED on a
* msd agent surface is emitted, (4) proves negotiation fails CLOSED on a
* corrupted descriptor, (5) proves the validator accepts the descriptor,
* (6) asserts the new hooksSurface value + GATE A membership, and (7)
* source-greps the folded modules for the retired `isWindsurf` branches (AC2).
@@ -48,13 +48,13 @@ const {
negotiateHostCapabilities,
PROFILE_BASELINES,
UNDOCUMENTED,
} = require('../gsd-core/bin/lib/host-integration.cjs');
const { validateCapability } = require('../gsd-core/bin/lib/capability-validator.cjs');
const { createDeclarativeAdapter } = require('../gsd-core/bin/lib/adapter-declarative.cjs');
} = require('../msd-core/bin/lib/host-integration.cjs');
const { validateCapability } = require('../msd-core/bin/lib/capability-validator.cjs');
const { createDeclarativeAdapter } = require('../msd-core/bin/lib/adapter-declarative.cjs');
const {
resolveRuntimeConfigIntent,
resolveInstallPlan,
} = require('../gsd-core/bin/lib/runtime-config-adapter-registry.cjs');
} = require('../msd-core/bin/lib/runtime-config-adapter-registry.cjs');
const { cleanup } = require('./helpers.cjs');
const { walk, runMinimalInstall, BUILD_SCRIPT } = require('./helpers/install-shared.cjs');
@@ -86,17 +86,17 @@ test('the public declarative adapter classifies Windsurf as a declarative host',
assert.equal(typeof adapter.uninstall, 'function');
});
test('a real Windsurf install emits a gsd agent surface (invocable)', () => {
test('a real Windsurf install emits a msd agent surface (invocable)', () => {
const { configDir, root } = runMinimalInstall({ runtime: 'windsurf', scope: 'global' });
try {
const files = walk(configDir);
assert.ok(files.length > 0, 'install must emit artifacts');
const gsdSurface = files.filter((f) => /gsd/i.test(path.relative(configDir, f)));
assert.ok(gsdSurface.length > 0, 'install must emit a gsd agent surface (declarative reference)');
const msdSurface = files.filter((f) => /msd/i.test(path.relative(configDir, f)));
assert.ok(msdSurface.length > 0, 'install must emit a msd agent surface (declarative reference)');
const agentsDir = path.join(configDir, 'agents');
assert.ok(fs.existsSync(agentsDir), 'agents/ directory must exist');
const agentFiles = fs.readdirSync(agentsDir).filter((f) => f.startsWith('gsd-') && f.endsWith('.md'));
assert.ok(agentFiles.length > 0, 'agents/ must contain gsd-*.md files');
const agentFiles = fs.readdirSync(agentsDir).filter((f) => f.startsWith('msd-') && f.endsWith('.md'));
assert.ok(agentFiles.length > 0, 'agents/ must contain msd-*.md files');
} finally {
cleanup(root);
}