โ€บNavigation

iteration 08 ยท card 59 S4โ€“S11 ยท batch-6 implementation ยท 2026-07-02

Card 59 โ€” wired and certified in one pass; lessons from card 78 paid off 11/16

← campaign board ยท previous: iter 07 (the bit-exact kernel)

In plain language โ€” what happened this iteration

Feature 2 went from "computes correctly" to "wired and certified" in a single iteration โ€” half the iterations feature 1 needed for the same ground. Two reasons, both worth understanding:

Reason 1 โ€” the second traveler uses the first one's map. Feature 1 (Hoeffding) had to blaze the trail: discover every hand-off where a computed value could silently vanish (the #556 incident class), bump every exact-count tripwire, and learn โ€” via its adversarial trial โ€” that a forgotten bookkeeping test elsewhere (the "65 features" compat count) breaks the suite on deploy day. Today feature 2 simply walked the same 11 hand-off points in order, and proactively bumped the compat counts (66โ†’67, 13โ†’14) that the card-78 attacker had to catch after the fact. A lesson learned once, institutionalized.

Reason 2 โ€” this feature lives in the shared machinery. Because "how long until price comes back?" reads only closing prices, iteration 07 plugged it into the standard 200-bar window record shared by 12 other features. Today that paid compound interest: the pipeline-wide certification tests โ€” "no crystal ball" (causality), "same answer twice" (determinism) โ€” sweep every column of that shared record across both markets. The moment the wiring landed, those sweeps were already exercising the new column. Certification came almost free; only the restart-continuity and stress-input drills needed explicit new lines.

The watchdog that turned red on purpose in iteration 07 is green again: the database blueprint, the engine's record, the feature catalogue, and the column documentation all agree on exactly 14 bar-close measurements. The rehearsal file written by the emergency spool now carries 92 columns and reads back perfectly in Python. All 43 test suites: green.

What's left: the decision record, the six typed commands (/hvghorizon:*), the full repo quality gate, the adversarial attacker/defender trial, and the pull request โ€” stacked on top of feature 1's, so the human operator can review them in order.

Grounded this iteration

S4: all write surfaces from the manifest SSoT โ€” 14th bar_close manifest entry, schema.sql, column_comments.py, constants.py, arrow_export.rs (schema/builder/append/finish + round-trip test value 6.5), helpers.rs dict, row.rs, dead_letter.rs; tripwires 86โ†’87 / 91โ†’92 (+py mirror) / compat 66โ†’67 & 13โ†’14 (proactive). S5/S6: the standard 13-column causality/determinism drivers now sweep the column โ€” green ร—2 symbols. S10: batch โ‰ก streaming โ‰ก checkpoint-restart extended + non-vacuity guard. S11: registered in the pow2-scale (bit-exact) and crash-bounds harness lanes. Battery: 43/43; row 11/11 (92); dead-letter round-trip green; completeness 14==14==14.

stage11/16
battery43/43
schema contractGREEN
tripwires87 ยท 92 ยท 67 ยท 14
completeness14 == 14 == 14
iterations vs card 783 vs 5 (so far)

Next fire picks up here

S12 ADR (docs/adr/2026-07-02-bar-hvg-forward-visibility-horizon-mean.md โ€” record the first-passage formulation, the โ‰ฅ tie rule, right-censoring, the VG-helper correction, bit-exactness). S13 hvghorizon:* namespace โ€” NOTE the filterset trap: unit tests match test(hvghorizon) but the oracle gate is test(bar_hvg_forward_visibility_horizon_mean_matches_python_oracle) โ€” include BOTH, with --no-tests=fail. S14 check-full. S15 Attacker/Defender (0 conceded) โ€” attack angles: the โ‰ฅ vs > tie rule vs the probe, right-censoring bias, stack-pop order, walk-tuple arity churn, stale hand-counts. S16 commit + stacked PR: base = feat/bar-orth/batch6-78-hoeffding (NOT main โ€” PR #568 must merge first), gh pr list --head before creating. Worktree: ~/eon/odb-worktrees/batch6-59-hvg-horizon, uncommitted, ledger is truth.