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:
@@ -4,7 +4,7 @@
|
||||
* #3990 — the RED/GREEN/REFACTOR cycle is stated ONCE.
|
||||
*
|
||||
* The cycle used to be restated verbatim in three files (references/tdd.md,
|
||||
* agents/gsd-executor.md <tdd_execution>, workflows/execute-plan.md
|
||||
* agents/msd-executor.md <tdd_execution>, workflows/execute-plan.md
|
||||
* <tdd_plan_execution>), and tdd.md was embedded into EVERY executor dispatch
|
||||
* unconditionally — so non-TDD tasks paid for the whole cycle three times.
|
||||
* The contract now: one canonical statement in tdd.md, consumers carry
|
||||
@@ -13,7 +13,7 @@
|
||||
*
|
||||
* #4268 design decision (ADR-3473: pointers, not restatements): a compact,
|
||||
* single-sentence citation that names the tdd.md section and commit-scope
|
||||
* tokens (e.g. execute-plan.md's and gsd-executor.md's "execute RED → GREEN
|
||||
* tokens (e.g. execute-plan.md's and msd-executor.md's "execute RED → GREEN
|
||||
* → REFACTOR exactly as specified in the canonical
|
||||
* `references/tdd.md` reference — the 'Red-Green-Refactor Cycle' section's
|
||||
* commit-scope contract...") is LEGAL — it is a pointer, not a restatement.
|
||||
@@ -84,7 +84,7 @@ function restatesCycle(text) {
|
||||
// (`- `, `* `, `N. `/`N) `) — never further.
|
||||
// #4302: a flat char count with no structural boundary let a
|
||||
// citation-free restatement borrow an UNRELATED later section's tdd.md
|
||||
// citation (on the real gsd-executor.md, the very next section after the
|
||||
// citation (on the real msd-executor.md, the very next section after the
|
||||
// cycle pointer — "## Plan-Level TDD Gate Enforcement" — has its own,
|
||||
// independent tdd.md citation 82 chars past the pointer's REFACTOR
|
||||
// anchor, well inside a flat 500-char window). A first attempt bounded
|
||||
@@ -215,7 +215,7 @@ function restatesCycleStructurally(text) {
|
||||
|
||||
describe('#3990 — one statement of the cycle', () => {
|
||||
test('the cycle is stated in full only in the canonical reference', () => {
|
||||
const tdd = read('gsd-core/references/tdd.md');
|
||||
const tdd = read('msd-core/references/tdd.md');
|
||||
assert.ok(/## Red-Green-Refactor Cycle/.test(tdd),
|
||||
'tdd.md carries the canonical Red-Green-Refactor Cycle section');
|
||||
assert.ok(/Commit: `test\(\{phase\}-\{plan\}\)/.test(tdd) && /Commit: `feat\(\{phase\}-\{plan\}\)/.test(tdd),
|
||||
@@ -223,7 +223,7 @@ describe('#3990 — one statement of the cycle', () => {
|
||||
});
|
||||
|
||||
test('the executor carries a pointer, not a third restatement', () => {
|
||||
const executor = read('agents/gsd-executor.md');
|
||||
const executor = read('agents/msd-executor.md');
|
||||
assert.ok(!restatesCycle(executor),
|
||||
'<tdd_execution> must not restate the numbered RED/GREEN commit protocol — point at tdd.md');
|
||||
assert.ok(/references\/tdd\.md/.test(executor),
|
||||
@@ -231,7 +231,7 @@ describe('#3990 — one statement of the cycle', () => {
|
||||
});
|
||||
|
||||
test('execute-plan carries a pointer, not a second restatement', () => {
|
||||
const plan = read('gsd-core/workflows/execute-plan.md');
|
||||
const plan = read('msd-core/workflows/execute-plan.md');
|
||||
assert.ok(!restatesCycle(plan),
|
||||
'<tdd_plan_execution> must not restate the numbered RED/GREEN commit protocol');
|
||||
assert.ok(/references\/tdd\.md/.test(plan.slice(plan.indexOf('tdd_plan_execution'))),
|
||||
@@ -239,8 +239,8 @@ describe('#3990 — one statement of the cycle', () => {
|
||||
});
|
||||
|
||||
test('both embed lists load tdd.md only when the dispatch is TDD', () => {
|
||||
const main = read('gsd-core/workflows/execute-phase.md');
|
||||
const wt = read('gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md');
|
||||
const main = read('msd-core/workflows/execute-phase.md');
|
||||
const wt = read('msd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md');
|
||||
for (const [name, text] of [['execute-phase.md', main], ['executor-isolation-dispatch.md', wt]]) {
|
||||
// The LIST entry line — not any prose line that mentions tdd.md (the TDD
|
||||
// gate's own prose cites it too).
|
||||
@@ -274,13 +274,13 @@ describe('#4268 — reworded restatement detection (structural, not literal)', (
|
||||
'sanity check: the fixture must NOT contain the literal commit-scope substring (that is the gap being closed)');
|
||||
});
|
||||
|
||||
test('does not flag the real execute-plan.md and gsd-executor.md pointer text', () => {
|
||||
const plan = read('gsd-core/workflows/execute-plan.md');
|
||||
const executor = read('agents/gsd-executor.md');
|
||||
test('does not flag the real execute-plan.md and msd-executor.md pointer text', () => {
|
||||
const plan = read('msd-core/workflows/execute-plan.md');
|
||||
const executor = read('agents/msd-executor.md');
|
||||
assert.ok(!restatesCycleStructurally(plan),
|
||||
'execute-plan.md\'s compact citation of RED/GREEN/REFACTOR must not be flagged as a restatement');
|
||||
assert.ok(!restatesCycleStructurally(executor),
|
||||
'gsd-executor.md\'s compact citation of RED/GREEN/REFACTOR must not be flagged as a restatement');
|
||||
'msd-executor.md\'s compact citation of RED/GREEN/REFACTOR must not be flagged as a restatement');
|
||||
});
|
||||
|
||||
// #4268 Standards+Spec review: the reviewer proved by execution that the
|
||||
@@ -386,7 +386,7 @@ describe('#4268 — reworded restatement detection (structural, not literal)', (
|
||||
|
||||
// #4302: hasNearbyDeferralMarker's 500-char trailing window is a flat
|
||||
// character count with no structural boundary — on the real
|
||||
// agents/gsd-executor.md, a compact citation-free restatement sits
|
||||
// agents/msd-executor.md, a compact citation-free restatement sits
|
||||
// immediately before an UNRELATED "## Plan-Level TDD Gate Enforcement"
|
||||
// section that carries its own, independent tdd.md citation 82 chars past
|
||||
// the REFACTOR anchor. The restatement borrows that neighbor's citation and
|
||||
@@ -402,7 +402,7 @@ describe('#4268 — reworded restatement detection (structural, not literal)', (
|
||||
'',
|
||||
'## Unrelated Section',
|
||||
'',
|
||||
'This paragraph cites the canonical `gsd-core/references/tdd.md` reference for a completely',
|
||||
'This paragraph cites the canonical `msd-core/references/tdd.md` reference for a completely',
|
||||
'different purpose and must not be borrowed by the restatement above.',
|
||||
].join('\n');
|
||||
assert.ok(restatesCycleStructurally(fixture),
|
||||
|
||||
Reference in New Issue
Block a user