2 Commits

Author SHA1 Message Date
Jakub Zych
a9a7a328e6 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.
2026-10-06 01:47:40 +02:00
Tom Boucher
1ec4b38bd3 test(#4298): add tdd-walk.cjs end-to-end sniff-test harness for TDD dispatch (#4300)
* test(#4298): add tdd-walk.cjs end-to-end sniff-test harness for TDD dispatch

Epic #4272 Phase 5's own checklist named this deliverable ("the same class
of coverage loop-walk.cjs gives the loop") separately from #4268. Adds
tests/qa/tdd-walk.cjs, extracting and REALLY EXECUTING (via a real `bash -c`
subprocess against a real temp fixture project) the shipped bash resolution
snippets from both TDD dispatch backends — never reimplementing or
grep-simulating the predicate.

Proves, by execution rather than text-shape assertion: the CLI predicate and
both backends agree for a type: tdd plan and a plain plan; the worktree
backend's fail-closed guard genuinely halts (non-zero exit, FATAL stderr) on
a missing plan file; and the tdd.md embed ternary's condition tracks the
real resolved value (#3800). This is exactly the class of proof #4264/#4265
(unassigned/divergent predicate) and #4268 (static-shape checks can't see
backend divergence) could not provide.

Extraction uses indexOf/slice on fenced-code markers only, never a
backtracking regex over whole-file text (per the #4228 incident this repo's
tests already document).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* test(#4298): scrub ambient env, tighten fail-closed assertion, fix comment

Standards+Spec review found: (1) executeBackendScript spread raw process.env
unfiltered into the spawned bash subprocess, unlike tests/helpers.cjs's
runGsdTools, which deliberately scrubs SESSION_IDENTITY_ENV_KEYS +
config-location env vars before spawning (#2665) — an ambient developer/CI
override could silently change what phase.tdd-applicable resolves to in a
way a gsd-test bench container won't reproduce; (2) the row-5 fail-closed
test asserted only `stderr.includes('FATAL')`, which would also pass if the
file's unrelated ISOLATION fail-closed guard fired instead of the TDD one;
(3) a docstring called the worktree backend's first fenced block a "shim
preamble" when it's actually the whole ISOLATION-resolution block.

Fixes: spread the exported TEST_ENV_BASE (every scrub-listed key set to '')
before the two intentional RUNTIME_DIR/GSD_TEST_MODE overrides; assert the
exact TDD-applicability FATAL text; correct the docstring. Re-verified by
direct execution against real fixtures — all three precedence-tier cases
and the fail-closed case behave identically to before the fix.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: sim <sim@local>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-04 20:17:36 -04:00