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

@@ -15,7 +15,7 @@
'use strict';
process.env.GSD_TEST_MODE = '1';
process.env.MSD_TEST_MODE = '1';
const { describe, test, before, beforeEach, afterEach } = require('node:test');
const assert = require('node:assert/strict');
@@ -69,7 +69,7 @@ describe('#683 case 1: fresh local Claude install sets worktree.baseRef:"head"',
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-fresh-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-fresh-'));
});
afterEach(() => {
@@ -108,7 +108,7 @@ describe('#683 case 2: fresh install does not clobber existing explicit worktree
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-noclobber-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-noclobber-'));
});
afterEach(() => {
@@ -143,7 +143,7 @@ describe('#683 case 3a: upgrade + use_worktrees absent → auto-applies worktree
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-upgrade-on-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-upgrade-on-'));
});
afterEach(() => {
@@ -156,7 +156,7 @@ describe('#683 case 3a: upgrade + use_worktrees absent → auto-applies worktree
process.chdir(tmpDir);
// Simulate a prior install by pre-creating the VERSION file.
const versionPath = path.join(tmpDir, '.claude', 'gsd-core', 'VERSION');
const versionPath = path.join(tmpDir, '.claude', 'msd-core', 'VERSION');
fs.mkdirSync(path.dirname(versionPath), { recursive: true });
fs.writeFileSync(versionPath, '1.0.0');
// No .planning/config.json — use_worktrees defaults to enabled (true).
@@ -182,7 +182,7 @@ describe('#683 case 3a: upgrade + use_worktrees absent → auto-applies worktree
process.chdir(tmpDir);
// Simulate a prior install by pre-creating the VERSION file.
const versionPath = path.join(tmpDir, '.claude', 'gsd-core', 'VERSION');
const versionPath = path.join(tmpDir, '.claude', 'msd-core', 'VERSION');
fs.mkdirSync(path.dirname(versionPath), { recursive: true });
fs.writeFileSync(versionPath, '1.0.0');
// .planning/config.json with use_worktrees: true
@@ -207,7 +207,7 @@ describe('#683 case 3b: upgrade + use_worktrees:false → does NOT apply worktre
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-upgrade-off-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-upgrade-off-'));
});
afterEach(() => {
@@ -220,7 +220,7 @@ describe('#683 case 3b: upgrade + use_worktrees:false → does NOT apply worktre
process.chdir(tmpDir);
// Simulate a prior install by pre-creating the VERSION file.
const versionPath = path.join(tmpDir, '.claude', 'gsd-core', 'VERSION');
const versionPath = path.join(tmpDir, '.claude', 'msd-core', 'VERSION');
fs.mkdirSync(path.dirname(versionPath), { recursive: true });
fs.writeFileSync(versionPath, '1.0.0');
// .planning/config.json with use_worktrees: false
@@ -249,7 +249,7 @@ describe('#683 case 3c: upgrade + explicit baseRef present → no-clobber (uncha
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-upgrade-noclobber-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-upgrade-noclobber-'));
});
afterEach(() => {
@@ -264,7 +264,7 @@ describe('#683 case 3c: upgrade + explicit baseRef present → no-clobber (uncha
// Simulate prior install with user-set explicit baseRef
const claudeDir = path.join(tmpDir, '.claude');
fs.mkdirSync(claudeDir, { recursive: true });
const versionPath = path.join(claudeDir, 'gsd-core', 'VERSION');
const versionPath = path.join(claudeDir, 'msd-core', 'VERSION');
fs.mkdirSync(path.dirname(versionPath), { recursive: true });
fs.writeFileSync(versionPath, '1.0.0');
@@ -289,7 +289,7 @@ describe('#683 case 3c: upgrade + explicit baseRef present → no-clobber (uncha
// Simulate prior install
const claudeDir = path.join(tmpDir, '.claude');
fs.mkdirSync(claudeDir, { recursive: true });
const versionPath = path.join(claudeDir, 'gsd-core', 'VERSION');
const versionPath = path.join(claudeDir, 'msd-core', 'VERSION');
fs.mkdirSync(path.dirname(versionPath), { recursive: true });
fs.writeFileSync(versionPath, '1.0.0');
@@ -321,7 +321,7 @@ describe('#683 case 4: idempotency — re-installing when worktree.baseRef alrea
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-idem-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-idem-'));
});
afterEach(() => {
@@ -337,7 +337,7 @@ describe('#683 case 4: idempotency — re-installing when worktree.baseRef alrea
runInstall(false);
// Remove the VERSION file to simulate a fresh-style re-install (e.g. forced reinstall)
const versionPath = path.join(tmpDir, '.claude', 'gsd-core', 'VERSION');
const versionPath = path.join(tmpDir, '.claude', 'msd-core', 'VERSION');
if (fs.existsSync(versionPath)) {
fs.unlinkSync(versionPath);
}
@@ -371,7 +371,7 @@ describe('#683 case 2b (FIX 1): fresh install does not clobber worktree.baseRef
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-shared-noclobber-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-shared-noclobber-'));
});
afterEach(() => {
@@ -412,7 +412,7 @@ describe('#683 FIX 1: non-object settings.local.json does not crash the installe
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-nonobj-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-nonobj-'));
});
afterEach(() => {
@@ -484,7 +484,7 @@ describe('#683 case 7: fresh local Claude install + use_worktrees:false → does
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-fresh-off-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-fresh-off-'));
});
afterEach(() => {
@@ -546,7 +546,7 @@ describe('#683 case 8: upgrade→upgrade idempotency — two upgrade runs do not
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-idem2-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-idem2-'));
});
afterEach(() => {
@@ -559,7 +559,7 @@ describe('#683 case 8: upgrade→upgrade idempotency — two upgrade runs do not
process.chdir(tmpDir);
// First upgrade run: VERSION present → upgrade path.
const versionPath = path.join(tmpDir, '.claude', 'gsd-core', 'VERSION');
const versionPath = path.join(tmpDir, '.claude', 'msd-core', 'VERSION');
fs.mkdirSync(path.dirname(versionPath), { recursive: true });
fs.writeFileSync(versionPath, '1.0.0');
// use_worktrees defaults to enabled (no .planning/config.json)
@@ -603,7 +603,7 @@ describe('#683 case 5: global Claude install does NOT set worktree.baseRef', ()
let tmpDir;
beforeEach(() => {
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-683-global-'));
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-683-global-'));
});
afterEach(() => {