* 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>