iteration 05 ยท S5 adversarial + PR open ยท crypto cost-realism labels ยท 2026-07-14
Twenty-eight attacks, zero survivors that matter โ PR #618 is open PR-A OPEN RED STEP
← campaign board ยท ← iter 04 ยท PR #618 ยท issue #614
In plain language โ what happened this iteration
We hired our own wrecking crew. Before asking anyone to review this work, we turned five independent adversarial reviewers loose on it โ one hunting math errors, one attacking the proof chain, one trying to sneak a future-seeing label into the machine-learning features, one auditing house rules, one probing weird edge cases. They raised 28 attacks. Then a separate, neutral judge examined each attack against the actual code and specifications.
The score: 21 attacks were refuted with evidence โ the code was right and the attack was wrong (often the attack LOOKED scary: "milliseconds vs microseconds could shift every window!" โ refuted, because three independent tripwires reject wrong-format data before it can matter). 7 attacks held, all of the "make it even harder to break in the future" variety, none an actual bug in the shipped numbers. Example: our test filter selected tests by name, so a future rename could have silently un-wired a proof while everything stayed green. All seven were fixed on the spot, and every gate re-ran green: 16/16 kernel tests, 36/36 extended tests, 11/11 guard tests, zero bytes of oracle drift.
Then the milestone: pull request #618 is now open with the full battle report ("Challenged & Held") in its description. This is the loop's mandatory red line: the automation implements and proves, but a human โ the operator/supervisor โ reviews and merges. Nothing gets into the main codebase, the database, or production without that human decision.
What's next: Peer B. A second, separate workbench where we write the database table definition (as a reviewable file โ never executed by the loop), the backfill program that will eventually label ~139 million historical bars (written โ never run by the loop), a pilot plan for one small symbol (SUIUSDT), and the remaining five anti-leak guards.
Grounded this iteration
R8 adversarial pass: 5 attack lenses โ 28 findings โ 28 independent defender verdicts (each grounded in file:line evidence; several ran the gates read-only). 21 refuted; 7 held at amend level, all resolved in 8f713ca6: (1) rename-proof filtersets via binary(cost_realism_labels_test) union (verified zero-behavior-change); (2) labels:guards wired into root [check-full] (the documented cecp/dispersion "bespoke check-full" trap); (3) /labels:guards description double-quoted (YAML plain-scalar #614 truncation); (4) generator envelope assert mirrors kernel ENVELOPE_REL_SLACK=1e-12 incl. twap, moved before the CSV write (byte-identical output); (5) guard E pins the tracking-issue URL as a frozen literal; (6) EXACT/CONTINUOUS partition semantically pinned to column names; (7) merged guard-D fence tests (test_label_exclusion.py, #590) now run inside labels:guards. Non-regression: the only workspace failures are pre-existing on clean main (untracked test_data/-dependent tests; pre-existing bench-file clippy lints). PR #618 opened with Challenged & Held; carry-forwards for PR-B recorded (runner must feed strictly TID-increasing, duplicate-free slices covering [anchor_tid, close+H+3s); never read_ticks() timestamp sort).
Decisions made (for operator review at PR time)
| # | Decision | Why |
|---|---|---|
| 1 | All 7 held findings amended in-branch before opening the PR | Each was amend-level with a verified minimal fix; deferring would ship known-weakened gates |
| 2 | Root check-full now requires labels:guards | Repo's own documented trap (dev.toml:70-74); hermetic, fail-fast with build hint |
| 3 | Pre-existing failures documented, not fixed here | test_data/-dependent tests + bench clippy lints fail identically on clean main; out of PR-A scope |
| 4 | TID-ordering requirement promoted to a MANDATORY PR-B carry-forward | The adversarial pass's most valuable residue: the runner's tick feed contract, recorded in the PR body |
Next fire picks up here
feat/labels/pr-a-oracle (PR-B consumes the R5 spec module). Deliverables as FILES: CREATE TABLE open_deviation_bar_labels DDL (RMT(computed_at), PARTITION BY (symbol, threshold), ouroboros_mode resolved, COMMENTs from the spec SSoT, D5 DEFAULT expression); backfill runner (stripped repair_direct_parquet fork; per-symbol sequential; watermark; NULL taxonomy; 6s day-boundary carry; strictly-TID-ordered feed per the carry-forward); SUIUSDT pilot plan; coverage-audit spec; guards B/C/F/H/I. Gate: labels:check-full green + tripwires (126/93/93/68) UNCHANGED. STOP at the open PR.