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

@@ -2,7 +2,7 @@
'use strict';
/**
* lint-portable-timeout.cjs — ban hardcoded GNU-`timeout` in gsd
* lint-portable-timeout.cjs — ban hardcoded GNU-`timeout` in msd
* workflow / agent / reference / command markdown (#2351).
*
* ## Why
@@ -15,7 +15,7 @@
* perfectly good build or test command as a FAILURE (#2351).
*
* The portable, coreutils-independent replacement is the
* `gsd_run run-with-timeout <secs> [--] <cmd…>` verb (gsd-core/bin/gsd-tools.cjs):
* `msd_run run-with-timeout <secs> [--] <cmd…>` verb (msd-core/bin/msd-tools.cjs):
* a Node-based wall-clock cap that keeps GNU `timeout`'s exit-code contract
* (124 on timeout) on every platform. The resolution lives there ONCE and is
* reused by every call site instead of a per-file `command -v timeout` probe.
@@ -25,10 +25,10 @@
*
* ## What PASSES
*
* - `gsd_run run-with-timeout 300 -- bash -c "$CMD"` — the approved verb.
* - `msd_run run-with-timeout 300 -- bash -c "$CMD"` — the approved verb.
* - `command -v timeout` / `command -v gtimeout` / `which timeout` capability
* PROBES — portable: they detect the binary, they do not unconditionally
* execute it (see gsd-core/workflows/review.md's `_AGY_KILLER` fallback).
* execute it (see msd-core/workflows/review.md's `_AGY_KILLER` fallback).
* - Prose ("timed out after 5 minutes"), config keys
* (`workflow.test_gate_timeout`), CI `timeout-minutes:`, the agy
* `--print-timeout` flag, `$TIMEOUT`-style variable names — none of which is
@@ -49,7 +49,7 @@ const ROOT = path.join(__dirname, '..');
// Surfaces whose markdown carries agent-executed bash. Kept broad so the guard
// catches a regression anywhere a workflow snippet could bound a command.
const DEFAULT_ROOTS = ['gsd-core/workflows', 'gsd-core/references', 'agents', 'commands'];
const DEFAULT_ROOTS = ['msd-core/workflows', 'msd-core/references', 'agents', 'commands'];
// Capability probes to strip BEFORE testing for an invocation, so a portable
// `command -v timeout` on the same line is never mistaken for a bare execution.
@@ -119,7 +119,7 @@ function scan(roots = DEFAULT_ROOTS) {
}
function main() {
const rootsEnv = process.env.GSD_LINT_PORTABLE_TIMEOUT_ROOTS;
const rootsEnv = process.env.MSD_LINT_PORTABLE_TIMEOUT_ROOTS;
const roots = rootsEnv ? rootsEnv.split(path.delimiter).filter(Boolean) : DEFAULT_ROOTS;
const offenders = scan(roots);
if (offenders.length > 0) {
@@ -128,7 +128,7 @@ function main() {
1,
'lint-portable-timeout: hardcoded `timeout`/`gtimeout` is not portable — stock\n' +
'macOS ships no coreutils, so these exit 127 and misreport a passing command as a\n' +
'failure. Use `gsd_run run-with-timeout <secs> [--] <cmd…>` instead (#2351):\n' +
'failure. Use `msd_run run-with-timeout <secs> [--] <cmd…>` instead (#2351):\n' +
detail,
);
}