Seventh build cycle, identical strict-literal protocol to cycles 4, 5 and 6 — the builder forbidden from working around any defect or supplying anything the blueprint omits.
selfContainedPromiseHolds: true
| C4 | C5 | C6 | C7 | |
|---|---|---|---|---|
| Steps | 7/14 | 14/14 | 13/13 | 13/13 |
| Deviations | 2 | 2 | 2 | 0 |
| Blocking defects | 1 | 0 | 0 | 0 |
| Guesses | 12 | 18 | 17 | 2 (both cosmetic) |
| §20.1 gate | FAIL | PASS | PASS | PASS |
76/76 Verify commands · 16/16 Bootstrap commands · 14/14 gate lines.
The two remaining guesses were a copyright holder's name and CI action major versions. Nothing load-bearing was left to invent.
Rules P, Q and R killed their class — and were probed, not trusted
The same way Rule O killed its own in cycle 6. The builder did not take them on faith:
- Hid the built binary. The strict
status=$?; test "$status" -eq 2form correctly failed, while the banned! cmdform passed. The strict form is doing real work. - Confirmed
git check-ignore -qwith two pathnames really exits 128 on this git — exactly the vacuous-gate failure Rule Q was written from. - Swapped
byteAscendingforlocaleCompare. The sort inverted exactly as the blueprint predicted, and was caught independently by three separate gates.
The product works — from the installed package
Tested via pnpm pack → npm install into a clean directory, against a fresh Markdown tree outside the repo:
README.md:16:3 missing-file: CONTRIBUTING.md -> CONTRIBUTING.md
api/reference.md:13:3 missing-anchor: #renderjson -> api/reference.md#renderjson
guide/install.md:11:25 missing-file: troubleshooting.md -> guide/troubleshooting.md
guide/usage.md:4:9 missing-anchor: install.md#prerequisite -> guide/install.md#prerequisite
4 files scanned, 14 links checked, 2 skipped, 4 broken [exit 1]
Broken heading anchors and missing files both detected. All 10 working links correctly silent. Links buried in fenced code blocks correctly not flagged. CI mode exited 1, then 0 after the links were fixed. Colour verified through a real pty and suppressed under NO_COLOR. 500 files scanned in 0.235s.
What the generator caught in its own draft
13 defects before shipping — three of them BLOCKERs only executing could find:
fs.promises.globyields nothing for a missing directory instead of throwing — which would have shipped a link checker that silently passes on a typo'd path, reporting0 brokenand exiting 0.- A script manipulating Markdown fences contained a literal triple backtick, terminating the fenced block that carried it. A builder copying that block gets an unterminated string.
cmd; test $? -eq Naborts underset -ebefore the assertion runs — Rule Q's own idiom colliding with unattended execution. Rewritten tostatus=0; cmd || status=$?across 31 assertions.
Left documented, not fixed
Two non-blocking defects were observed and recorded rather than patched, because neither blocked and a rule that has not been executed is exactly what these seven cycles exist to distrust:
- a CLI module that self-executes on import while also exporting for tests
- a stale step reference in a comment that a later step overwrites
The arc
C1 2/4 18 defects environmental + structural
C2 1/3 18 defects toolchain
C3 14/14 10 defects but 3 deviations — the builder patched it
C4 7/14 1 blocking cross-artifact disagreement → rules K–N
C5 14/14 0 blocking verify/checkpoint ordering → rule O
C6 13/13 0 blocking golden-file reconciliation → rules P–R
C7 13/13 0 deviations
Each named class, once ruled, did not recur. Fifteen rules (A–O plus P, Q, R), each one a writer obligation and a validator finding, every one written from a real failure with a real error message.
Verified: 5/5 CI checks green · plugin manifest validates · validator at 39 findings and 28 sweeps.