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

@@ -7,7 +7,7 @@
*
* Locks in Antigravity as the Declarative-CLI reference host driven through the
* PUBLIC Host-Integration Interface (the declarative adapter), per #1682 AC:
* "invoke a gsd command in the Declarative-CLI reference host (Antigravity)
* "invoke a msd command in the Declarative-CLI reference host (Antigravity)
* driven by the embedded engine through the public interface, golden-parity
* vs Claude."
*
@@ -15,7 +15,7 @@
* golden-install-parity (all 16 runtimes) + adapter-declarative-equivalence.
* THIS test is the reference-host dogfood: it (1) classifies Antigravity's
* profile via profileOf, (2) confirms the public adapter classifies it as
* declarative, and (3) round-trips a real install proving a gsd command surface
* declarative, and (3) round-trips a real install proving a msd command surface
* is emitted through the same engine the adapter delegates to.
*
* #2096 (EoS/antigravity) additions: negotiation fails CLOSED on a corrupted
@@ -42,9 +42,9 @@ 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 { cleanup } = require('./helpers.cjs');
const { walk, runMinimalInstall, BUILD_SCRIPT } = require('./helpers/install-shared.cjs');
@@ -76,16 +76,16 @@ test('the public declarative adapter classifies Antigravity as a declarative hos
assert.equal(typeof adapter.uninstall, 'function');
});
test('a real Antigravity install emits a gsd command/skill surface (invocable)', () => {
test('a real Antigravity install emits a msd command/skill surface (invocable)', () => {
const { configDir, root } = runMinimalInstall({ runtime: 'antigravity', scope: 'global' });
try {
const files = walk(configDir);
assert.ok(files.length > 0, 'install must emit artifacts');
// Antigravity uses the nested gsd-ns-* router skill layout as its command
// surface (CONTEXT.md installer module). Assert a gsd skill/router is present.
const gsdSurface = files.filter((f) => /gsd/i.test(path.relative(configDir, f)));
assert.ok(gsdSurface.length > 0,
'install must emit a gsd command/skill surface (declarative reference)');
// Antigravity uses the nested msd-ns-* router skill layout as its command
// surface (CONTEXT.md installer module). Assert a msd skill/router is present.
const msdSurface = files.filter((f) => /msd/i.test(path.relative(configDir, f)));
assert.ok(msdSurface.length > 0,
'install must emit a msd command/skill surface (declarative reference)');
} finally {
cleanup(root);
}
@@ -117,7 +117,7 @@ test('a partial/empty antigravity descriptor degrades to the safe floor, not the
// AC-specific: the 4 still-undocumented dispatch sub-axes must degrade to the
// most-restrictive KNOWN value, not their optimistic value. Real values below
// were confirmed via:
// node -e "const {negotiateHostCapabilities}=require('./gsd-core/bin/lib/host-integration.cjs');
// node -e "const {negotiateHostCapabilities}=require('./msd-core/bin/lib/host-integration.cjs');
// const cap=require('./capabilities/antigravity/capability.json');
// console.log(negotiateHostCapabilities(cap.runtime.hostIntegration).effective.dispatch)"
// -> { namedDispatch:false, nested:false, maxDepth:0, background:false, subagentToolkit:'full', backgroundDispatch:false }
@@ -226,7 +226,7 @@ test('no `runtime === "antigravity"` string-equality branch (nor `isAntigravity`
const { describe: __foldDescribe } = require('node:test');
__foldDescribe("folded:bug-3608-antigravity-update-runtime-classification (consolidation epic #1969 B3 #1972)", () => {
/**
* Bug #3608: /gsd:update must model Antigravity as a first-class runtime.
* Bug #3608: /msd:update must model Antigravity as a first-class runtime.
*
* The installer (bin/install.js) and SDK already treat Antigravity as a distinct
* runtime with its own config dirs, env var (ANTIGRAVITY_CONFIG_DIR), and CLI
@@ -234,13 +234,13 @@ test('no `runtime === "antigravity"` string-equality branch (nor `isAntigravity`
*
* Relocation (#498): the update flow's runtime/scope detection moved out of
* ~280 lines of inline bash in update.md into the tested projection
* `gsd-core/bin/lib/update-context.cjs` (resolveUpdateContext). The
* `msd-core/bin/lib/update-context.cjs` (resolveUpdateContext). The
* antigravity-first-class contract now lives there as data + behavior, so this
* test asserts it on the projection. The only piece still authored in update.md
* is the execution_context path classification (prose the agent applies).
*
* #1928: Gemini CLI was sunset by Google on 2026-06-18 and the `gemini` runtime
* was removed from GSD entirely (Antigravity CLI is the successor). Antigravity
* was removed from MSD entirely (Antigravity CLI is the successor). Antigravity
* still resolves under the shared `.gemini/antigravity*` dirs (it runs on the
* Gemini 3 backend), so those probe entries and the ANTIGRAVITY_CONFIG_DIR env
* var remain — but there is no longer a competing bare-`gemini` runtime to
@@ -248,7 +248,7 @@ test('no `runtime === "antigravity"` string-equality branch (nor `isAntigravity`
*/
'use strict';
process.env.GSD_TEST_MODE = '1';
process.env.MSD_TEST_MODE = '1';
const { describe, test } = require('node:test');
const assert = require('node:assert/strict');
@@ -261,8 +261,8 @@ const {
inferPreferredRuntime,
envRuntimeDirs,
resolveUpdateContext,
} = require(path.join(ROOT, 'gsd-core', 'bin', 'lib', 'update-context.cjs'));
const UPDATE_MD = path.join(ROOT, 'gsd-core', 'workflows', 'update.md');
} = require(path.join(ROOT, 'msd-core', 'bin', 'lib', 'update-context.cjs'));
const UPDATE_MD = path.join(ROOT, 'msd-core', 'workflows', 'update.md');
function runtimeOrder() {
return RUNTIME_DIRS.map(([rt]) => rt);
@@ -314,15 +314,15 @@ describe('bug #3608 / #498: update-context models Antigravity as a first-class r
const normKey = (p) => path.resolve(p).replace(/\\/g, '/').toLowerCase();
const HOME = '/home/u';
const agDir = path.join(HOME, '.gemini', 'antigravity');
const verFile = normKey(path.join(agDir, 'gsd-core', 'VERSION'));
const markerFile = normKey(path.join(agDir, 'gsd-core', 'workflows', 'update.md'));
const verFile = normKey(path.join(agDir, 'msd-core', 'VERSION'));
const markerFile = normKey(path.join(agDir, 'msd-core', 'workflows', 'update.md'));
const fakeFs = {
exists: (p) => normKey(p) === verFile || normKey(p) === markerFile,
readFile: (p) => (normKey(p) === verFile ? '1.40.0\n' : null),
};
const r = resolveUpdateContext({ home: HOME, cwd: path.resolve('/work'), env: {}, fs: fakeFs });
assert.equal(r.runtime, 'antigravity');
assert.equal(normKey(r.gsdDir), normKey(agDir));
assert.equal(normKey(r.msdDir), normKey(agDir));
});
test('update.md execution_context classification lists antigravity paths and no longer classifies bare /.gemini/ as gemini (#1928)', () => {
@@ -344,7 +344,7 @@ describe('bug #3608 / #498: update-context models Antigravity as a first-class r
const { describe: __foldDescribe } = require('node:test');
__foldDescribe("folded:bug-503-update-agent-antigravity-detection (consolidation epic #1969 B3 #1972)", () => {
'use strict';
process.env.GSD_TEST_MODE = '1';
process.env.MSD_TEST_MODE = '1';
// allow-test-rule: source-text-is-the-product (see #503)
// update.md's embedded classifier + cache-clear loop are workflow text the
@@ -356,10 +356,10 @@ process.env.GSD_TEST_MODE = '1';
// Per CONTRIBUTING.md exception matrix.
/**
* Bug #503: /gsd:update misclassifies local Antigravity (.agent) installs as claude
* Bug #503: /msd:update misclassifies local Antigravity (.agent) installs as claude
*
* The installer places a LOCAL Antigravity install in ./.agent/
* (bin/install.js: getDirName('antigravity') === '.agent'). The /gsd:update
* (bin/install.js: getDirName('antigravity') === '.agent'). The /msd:update
* detection cascade must map .agent -> antigravity across three surfaces:
* 1. the execution_context path classifier (update.md prose),
* 2. the RUNTIME_DIRS candidate table (now in the update-context projection),
@@ -377,11 +377,11 @@ const path = require('path');
const ROOT = path.join(__dirname, '..');
const UPDATE_MD = fs.readFileSync(
path.join(ROOT, 'gsd-core', 'workflows', 'update.md'),
path.join(ROOT, 'msd-core', 'workflows', 'update.md'),
'utf-8',
);
const { resolveUpdateContext } = require(
path.join(ROOT, 'gsd-core', 'bin', 'lib', 'update-context.cjs'),
path.join(ROOT, 'msd-core', 'bin', 'lib', 'update-context.cjs'),
);
function normKey(p) { return path.resolve(p).replace(/\\/g, '/').toLowerCase(); }
@@ -394,14 +394,14 @@ function fakeFs(files) {
};
}
describe('/gsd:update detects local Antigravity (.agent / .agents) installs (#503 / #791)', () => {
describe('/msd:update detects local Antigravity (.agent / .agents) installs (#503 / #791)', () => {
test('projection resolves a LOCAL ./.agents install to the antigravity runtime (#791 canonical)', () => {
const HOME = '/home/u';
const CWD = '/work/proj';
const agentsDir = `${CWD}/.agents`;
const ffs = fakeFs({
[`${agentsDir}/gsd-core/VERSION`]: '1.50.0\n',
[`${agentsDir}/gsd-core/workflows/update.md`]: 'x',
[`${agentsDir}/msd-core/VERSION`]: '1.50.0\n',
[`${agentsDir}/msd-core/workflows/update.md`]: 'x',
});
const r = resolveUpdateContext({ home: HOME, cwd: CWD, env: {}, fs: ffs });
assert.equal(
@@ -418,8 +418,8 @@ describe('/gsd:update detects local Antigravity (.agent / .agents) installs (#50
const CWD = '/work/proj';
const agentDir = `${CWD}/.agent`;
const ffs = fakeFs({
[`${agentDir}/gsd-core/VERSION`]: '1.40.0\n',
[`${agentDir}/gsd-core/workflows/update.md`]: 'x',
[`${agentDir}/msd-core/VERSION`]: '1.40.0\n',
[`${agentDir}/msd-core/workflows/update.md`]: 'x',
});
const r = resolveUpdateContext({ home: HOME, cwd: CWD, env: {}, fs: ffs });
assert.equal(