# v1 — Experiments Every change to El on `iteration-1` was produced by one loop, run repeatedly: ``` Ishikawa → scientific method → Six Sigma → repeat ``` - **Ishikawa** — name the root cause, not the symptom. *Why is this table here?* never *why is this table ugly?* - **Scientific method** — state a hypothesis, **commit predictions before running**, then run it in an isolated worktree and grade every prediction including the ones that failed. - **Six Sigma** — eliminate the defect *class*, then add a control so it cannot silently return. ## The organising finding **Predictions that came back FALSE were worth more than the ones that held.** Nineteen cycles, sixty-one predictions. The eleven that failed produced every significant result: | Failed prediction | What it found | |---|---| | "the arity table has drifted from the header" | Zero drift — but **110 functions had no entry at all**. The table was not wrong, it was 40% incomplete. | | "codegen drops below baseline" (×4) | The **traversal is irreducible**. Walking an AST to find calls does not move no matter who decides. Only the rule and the judgment leave. | | "guards cannot refuse through the seam" | One line, and refusal works. Six compile-time kinds were unnecessary. | | "C forbids the struct redefinition" | C allows shadowing — and a *different* defect surfaced: an exit injection emitted with an empty target. | | "routing el_bin_lookup through the gate fixes the SIGSEGV" | It did not. The **fallback** was the hazard: `strlen()` on an integer. I would have shipped the wrong fix and called it verified. | A prediction that only ever confirms is a demonstration, not a test. One cycle was run **without** committing predictions first — `async-half-expressible` — and it produced a rigged result: `pthread_join` immediately after `pthread_create`, with the word `DEFERRED` printed by the test itself. It had to be discarded and re-run. ## Layout ``` cycles/ one file per loop, numbered in order, named for the DEFECT findings/ what the cycles produced, cross-cut by kind ``` ## Scoreboard ``` cycles run 19 predictions committed 61 predictions FALSE 11 ← the useful ones silent miscompilations found 4 security-relevant defects 2 architecture questions closed 5 defects in my own measurement 4 ``` Every cycle verified the same three things before landing: the compiler self-hosts byte-identically (gen2 == gen3), the native suite passes, and the integration harnesses pass. A cycle that could not show all three did not land.