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:
@@ -14,7 +14,7 @@
|
||||
* Trae has NO hook surface at all (`hooksSurface: "none"`,
|
||||
* `extendedHookEvents: []`, `installSurface: "profile-marker-only"`) — its
|
||||
* `hookBus` axis is `'engine'` (VSCode-fork extension-host lifecycle, not a
|
||||
* GSD-managed hook dialect), so unlike qwen/kilo this file does not assert an
|
||||
* MSD-managed hook dialect), so unlike qwen/kilo this file does not assert an
|
||||
* extendedHookEvents surface. Four of Trae's six dispatch sub-axes
|
||||
* (`nested`, `maxDepth`, `subagentToolkit`, `backgroundDispatch`) are
|
||||
* `'undocumented'` — no authoritative Trae doc states them — which is what
|
||||
@@ -29,19 +29,19 @@ const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const fc = require('fast-check');
|
||||
|
||||
process.env['GSD_TEST_MODE'] = '1';
|
||||
process.env['MSD_TEST_MODE'] = '1';
|
||||
|
||||
const { createImperativeAdapter } = require('../gsd-core/bin/lib/adapter-imperative.cjs');
|
||||
const { createImperativeAdapter } = require('../msd-core/bin/lib/adapter-imperative.cjs');
|
||||
const {
|
||||
profileOf,
|
||||
negotiateHostCapabilities,
|
||||
shouldFlattenDispatch,
|
||||
PROFILE_BASELINES,
|
||||
UNDOCUMENTED,
|
||||
} = require('../gsd-core/bin/lib/host-integration.cjs');
|
||||
const { getProjectInstructionFile } = require('../gsd-core/bin/lib/runtime-name-policy.cjs');
|
||||
} = require('../msd-core/bin/lib/host-integration.cjs');
|
||||
const { getProjectInstructionFile } = require('../msd-core/bin/lib/runtime-name-policy.cjs');
|
||||
const { convertClaudeToTraeMarkdown } = require('../bin/install.js');
|
||||
const runtimeArtifactConversion = require('../gsd-core/bin/lib/runtime-artifact-conversion.cjs');
|
||||
const runtimeArtifactConversion = require('../msd-core/bin/lib/runtime-artifact-conversion.cjs');
|
||||
|
||||
const { runMinimalInstall, walk } = require('./helpers/install-shared.cjs');
|
||||
const { cleanup } = require('./helpers.cjs');
|
||||
@@ -174,9 +174,9 @@ test('no `runtime === "trae"` string-equality branch remains in the descriptor-m
|
||||
* path instead of resolving to the Trae rules file.
|
||||
*
|
||||
* Defects collided (see
|
||||
* .gsd/bug/fix-2658-trae-runtime-not-detected-falls-back-to-/10-diagnosis.md):
|
||||
* .msd/bug/fix-2658-trae-runtime-not-detected-falls-back-to-/10-diagnosis.md):
|
||||
*
|
||||
* 1. `gsd-core/workflows/new-project.md` AND `gsd-core/workflows/ingest-docs.md`
|
||||
* 1. `msd-core/workflows/new-project.md` AND `msd-core/workflows/ingest-docs.md`
|
||||
* (found during this remediation — same pattern, same gap, not just
|
||||
* new-project.md as originally reported) never recognized trae (path
|
||||
* `/.trae/` or env `TRAE_CONFIG_DIR`) in their runtime-detection blocks —
|
||||
@@ -204,7 +204,7 @@ test('no `runtime === "trae"` string-equality branch remains in the descriptor-m
|
||||
* (defect 3's fix) never fire on that already-rewritten text, and the
|
||||
* bare fallback still doubles the prefix — a first attempt at fixing
|
||||
* this handled only the `./.trae/CLAUDE.md` shape and missed the
|
||||
* `~/.claude/` / `$HOME/.claude/` forms `gsd-core/workflows/profile-user.md`
|
||||
* `~/.claude/` / `$HOME/.claude/` forms `msd-core/workflows/profile-user.md`
|
||||
* actually uses, caught by row 12 (the real spawned install) below on a
|
||||
* second run. Fixed with a prefix-preserving pattern (capture whatever
|
||||
* precedes a `.trae/` tail, keep it, fix only the filename suffix)
|
||||
@@ -281,8 +281,8 @@ describe('#2658: trae runtime detection and instruction path (folded from fix-26
|
||||
['local relative (post "./.claude/" -> "./.trae/" rewrite)', './.trae/CLAUDE.md', './.trae/rules/rules.md'],
|
||||
[
|
||||
'local install absolute path (post "./.claude/" -> "<tmp-root>/.trae/" rewrite)',
|
||||
'/private/var/folders/xx/gsd-trae-local-abc123/.trae/CLAUDE.md',
|
||||
'/private/var/folders/xx/gsd-trae-local-abc123/.trae/rules/rules.md',
|
||||
'/private/var/folders/xx/msd-trae-local-abc123/.trae/CLAUDE.md',
|
||||
'/private/var/folders/xx/msd-trae-local-abc123/.trae/rules/rules.md',
|
||||
],
|
||||
['global tilde (post "~/.claude/" -> "~/.trae/" rewrite)', '~/.trae/CLAUDE.md', '~/.trae/rules/rules.md'],
|
||||
['backtick-wrapped local relative', '`./.trae/CLAUDE.md`', '`./.trae/rules/rules.md`'],
|
||||
@@ -325,7 +325,7 @@ describe('#2658: trae runtime detection and instruction path (folded from fix-26
|
||||
['local relative prefix (post "./.claude/" -> "./.trae/" rewrite)', './.trae/CLAUDE.md'],
|
||||
[
|
||||
'nested project-path absolute prefix (post "./.claude/" -> "<tmp-root>/.trae/" rewrite)',
|
||||
'/private/var/folders/xx/gsd-trae-local-abc123/.trae/CLAUDE.md',
|
||||
'/private/var/folders/xx/msd-trae-local-abc123/.trae/CLAUDE.md',
|
||||
],
|
||||
['global tilde prefix (post "~/.claude/" -> "~/.trae/" rewrite)', '~/.trae/CLAUDE.md'],
|
||||
['$HOME-variable prefix (post "$HOME/.claude/" -> "$HOME/.trae/" rewrite)', '$HOME/.trae/CLAUDE.md'],
|
||||
@@ -364,7 +364,7 @@ describe('#2658: trae runtime detection and instruction path (folded from fix-26
|
||||
try {
|
||||
const files = walk(configDir)
|
||||
.filter((f) => /\.(md|js|cjs)$/.test(f))
|
||||
// gsd-core/CHANGELOG.md is excluded by exact relative path (not a blanket
|
||||
// msd-core/CHANGELOG.md is excluded by exact relative path (not a blanket
|
||||
// .md skip — the emitted agent/command/workflow markdown this gate exists
|
||||
// to guard stays fully scanned). CHANGELOG.md legitimately QUOTES the
|
||||
// malformed `.claude/.trae/rules` / `.trae/.trae/rules` strings while
|
||||
@@ -372,7 +372,7 @@ describe('#2658: trae runtime detection and instruction path (folded from fix-26
|
||||
// citation is not a regression of the installer's actual output. Verified
|
||||
// empirically: excluding only this one file drops the hit count to zero
|
||||
// across all 620 other emitted files.
|
||||
.filter((f) => f.split(path.sep).join('/').indexOf('gsd-core/CHANGELOG.md') === -1);
|
||||
.filter((f) => f.split(path.sep).join('/').indexOf('msd-core/CHANGELOG.md') === -1);
|
||||
assert.ok(files.length > 0, 'expected at least one emitted .md/.js/.cjs file');
|
||||
for (const file of files) {
|
||||
const content = fs.readFileSync(file, 'utf8');
|
||||
@@ -386,7 +386,7 @@ describe('#2658: trae runtime detection and instruction path (folded from fix-26
|
||||
});
|
||||
|
||||
describe('#2658 acceptance criterion 3: new-project.md / ingest-docs.md detect trae before falling back to claude', () => {
|
||||
const workflowsDir = path.join(REPO_ROOT, 'gsd-core', 'workflows');
|
||||
const workflowsDir = path.join(REPO_ROOT, 'msd-core', 'workflows');
|
||||
|
||||
test('new-project.md recognizes /.trae/ path and TRAE_CONFIG_DIR before the claude fallback', () => {
|
||||
const content = fs.readFileSync(path.join(workflowsDir, 'new-project.md'), 'utf8');
|
||||
|
||||
Reference in New Issue
Block a user