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

@@ -5,8 +5,8 @@
* Two checks:
*
* a) Frontmatter to body consistency:
* For each commands/gsd/*.md, parse requires: and walk the body for
* references to other GSD skills (pattern: /gsd:<stem> or gsd:<stem>).
* For each commands/msd/*.md, parse requires: and walk the body for
* references to other MSD skills (pattern: /msd:<stem> or msd:<stem>).
* Fail if a skill body references a skill not listed in requires:.
*
* b) Profile closure satisfaction:
@@ -15,7 +15,7 @@
* the closure references a skill NOT in the closure, fail.
*
* Usage:
* node scripts/lint-skill-deps.cjs # scans commands/gsd/
* node scripts/lint-skill-deps.cjs # scans commands/msd/
* node scripts/lint-skill-deps.cjs --dir <path> # scan a custom dir (testing)
*
* Exits 0 if all pass; exits 1 if any violation.
@@ -27,14 +27,14 @@ const fs = require('fs');
const path = require('path');
const { runMain } = require('./lib/cli-exit.cjs');
const PROFILES_MODULE = path.join(__dirname, '..', 'gsd-core', 'bin', 'lib', 'install-profiles.cjs');
const PROFILES_MODULE = path.join(__dirname, '..', 'msd-core', 'bin', 'lib', 'install-profiles.cjs');
const { PROFILES, loadSkillsManifest, resolveProfile } = require(PROFILES_MODULE);
// ---------------------------------------------------------------------------
// Argument parsing
// ---------------------------------------------------------------------------
let commandsDir = path.join(__dirname, '..', 'commands', 'gsd');
let commandsDir = path.join(__dirname, '..', 'commands', 'msd');
const args = process.argv.slice(2);
for (let i = 0; i < args.length; i++) {
if (args[i] === '--dir' && args[i + 1]) {
@@ -49,7 +49,7 @@ for (let i = 0; i < args.length; i++) {
function extractBodyReferences(body) {
const refs = new Set();
const re = /(?:\/?)gsd:([a-z0-9_-]+)/g;
const re = /(?:\/?)msd:([a-z0-9_-]+)/g;
let m;
while ((m = re.exec(body)) !== null) {
refs.add(m[1]);
@@ -89,7 +89,7 @@ function checkFrontmatterBodyConsistency(manifest, allStems) {
stem,
filePath,
undeclared: ref,
message: 'body references unknown skill gsd:' + ref,
message: 'body references unknown skill msd:' + ref,
});
continue;
}
@@ -98,7 +98,7 @@ function checkFrontmatterBodyConsistency(manifest, allStems) {
stem,
filePath,
undeclared: ref,
message: 'body references gsd:' + ref + ' but requires: does not list it',
message: 'body references msd:' + ref + ' but requires: does not list it',
});
}
}