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 @@
* lint-workflow-shellcheck.cjs
*
* Systemic prevention for the zsh/bash word-splitting bug class (#4109):
* every ```bash fenced block embedded in gsd-core/workflows/*.md (and the
* nested gsd-core/workflows/<workflow>/steps/*.md / modes/*.md / etc. layer)
* every ```bash fenced block embedded in msd-core/workflows/*.md (and the
* nested msd-core/workflows/<workflow>/steps/*.md / modes/*.md / etc. layer)
* is extracted and run through the real ShellCheck binary. Any finding fails
* the lint with a non-zero exit — this is what stops the SC2086-class bug
* (unquoted variable expansion, word-split/glob differently under zsh vs
@@ -122,8 +122,8 @@ const { resolveShellcheckBin } = require('./lib/shellcheck-fetch.cjs');
const SHELLCHECK_TIMEOUT_MS = 60_000;
const ROOT = path.join(__dirname, '..');
const WORKFLOWS_DIR = path.join(ROOT, 'gsd-core', 'workflows');
const SECTIONIZER_PATH = path.join(ROOT, 'gsd-core', 'bin', 'lib', 'markdown-sectionizer.cjs');
const WORKFLOWS_DIR = path.join(ROOT, 'msd-core', 'workflows');
const SECTIONIZER_PATH = path.join(ROOT, 'msd-core', 'bin', 'lib', 'markdown-sectionizer.cjs');
const BASELINE_PATH = path.join(__dirname, 'lint-workflow-shellcheck-baseline.json');
// Codes excluded for structural reasons documented in the module header above.
@@ -492,7 +492,7 @@ async function main() {
const blocks = extractBashBlocks(sectionizer);
if (blocks.length === 0) {
process.stdout.write('ok lint-workflow-shellcheck: no ```bash blocks found under gsd-core/workflows/\n');
process.stdout.write('ok lint-workflow-shellcheck: no ```bash blocks found under msd-core/workflows/\n');
return 0;
}
@@ -524,7 +524,7 @@ async function main() {
const shellcheckBin = await resolveShellcheckBin();
const stageDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gsd-workflow-shellcheck-'));
const stageDir = fs.mkdtempSync(path.join(os.tmpdir(), 'msd-workflow-shellcheck-'));
try {
const stagedPaths = [];
const byPath = new Map();
@@ -571,7 +571,7 @@ async function main() {
process.stderr.write(
`\nERROR lint-workflow-shellcheck: ${newFindings.length} NEW ShellCheck finding(s) in ` +
`gsd-core/workflows/ \`\`\`bash block(s) (#4109 word-splitting/quoting prevention) not present in ` +
`msd-core/workflows/ \`\`\`bash block(s) (#4109 word-splitting/quoting prevention) not present in ` +
`${path.relative(ROOT, BASELINE_PATH)}.\n\n`,
);
for (const f of newFindings) {