* test(#3990): the RED/GREEN/REFACTOR cycle is stated once, embedded conditionally * fix(#3990): state the cycle once — pointers in consumers, conditional tdd.md embeds Emitted-Drift-Ack-Growth: execute-phase.md — #3990 conditions the tdd.md embed on the dispatch being TDD * chore(#3990): changeset for the single-statement TDD cycle * chore(#3990): backfill changeset pr number * fix(#4228): linear cycle check — the lazy-span regex pinned a Windows core for the whole job cap * test(#3990): allowlist pin tracks the rebased line * fix(tests): npm-integrity gate names an empty audit output explicitly — empty stdout crashed the parse as a bare SyntaxError * fix: name an empty npm-audit stdout explicitly — it crashed the parse as a bare SyntaxError Observed on CI (several branches, all lanes): spawnSync npm ETIMEDOUT with empty stdout; the empty string survived the recovery path and surfaced as 'SyntaxError: Unexpected end of JSON input', hiding the captured error. The recovery path now requires non-empty stdout, and an empty result throws with the captured stdout/stderr/message so the actual error is on the record. Root cause of the ETIMEDOUT itself is NOT diagnosed here — this change only stops masking it. --------- Co-authored-by: sim <sim@local>
This commit is contained in:
@@ -399,13 +399,10 @@ When executing task with `tdd="true"`:
|
||||
|
||||
**1. Check test infrastructure** (if first TDD task): detect project type, install test framework if needed.
|
||||
|
||||
**2. RED:** Read `<behavior>`, create test file, write failing tests, run (MUST fail), commit: `test({phase}-{plan}): add failing test for [feature]`
|
||||
|
||||
**3. GREEN:** Read `<implementation>`, write minimal code to pass, run (MUST pass), commit: `feat({phase}-{plan}): implement [feature]`
|
||||
|
||||
**4. REFACTOR (if needed):** Clean up, run tests (MUST still pass), commit only if changes: `refactor({phase}-{plan}): clean up [feature]`
|
||||
|
||||
**Error handling:** RED doesn't fail <20><><EFBFBD> investigate. GREEN doesn't pass → debug/iterate. REFACTOR breaks → undo.
|
||||
**2-4. RED → GREEN → REFACTOR (#3990: stated ONCE):** execute the cycle exactly as the
|
||||
canonical `gsd-core/references/tdd.md` "Red-Green-Refactor Cycle" section specifies (embedded
|
||||
when TDD applies) — its commit-scope contract, fail-fast rule, and error handling. The
|
||||
reference is the single source; do not improvise a variant.
|
||||
|
||||
## Plan-Level TDD Gate Enforcement (type: tdd plans)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user