Navigation
Forex orthogonal features · production implementation · batch 3-4
🪙 FOREX 4× IMPLEMENT-TODAY ROBUST LOOP (R1–R7) 2026-06-17 · running

Forex Batch-3/4 — 4× Feature Implementation

A live, autonomous /loop on bigblack that ports the four implement-today batch-3/4 orthogonal features into real fxview_cache.forex_bars columns — one human-merged PR per feature. It reuses the engineering of the previous nine and makes it more robust. This page updates every iteration; the flowcharts below show exactly where the loop is.

In plain terms

We discovered 15 genuinely-new "shape of the market" measurements. Four of them can ship today with zero guesswork because each one either (a) re-uses a measuring tool we already built and froze, or (b) has a recipe with no open choices. The other 11 wait — 2 need data we don't store, and 9 need a human to pin one convention first.

Why this loop is more robust than the previous nine

The previous nine ran their parameterless/agnostic re-audit on 2026-06-09 — after the loop had already started — and only then discovered two candidates were unportable. This loop front-loads every such test into each iteration, so nothing is found after the fact.

GateWhat it guarantees, before any PR opens
R1robustness Front-loaded agnostic TEST-B convergence oracle (the exact test that caught #30/#17 post-hoc) runs every iteration.
R2robustness Shipped-primitive reuse assertion — #55/#57 must consume #54's HVG byte-identically; #72 must consume #75's PSD. No re-implementation.
R3robustness The full SOTA suite (parity · 3-way FOSS · property · crash-stress · batch≡streaming · ≥2-symbol · golden) is a hard definition-of-done, run in-loop.
R4No split-brain — schema DDL + metadata + BarRow + cohort + sha256 land in the same PR; test_schema_contract green.
R5Adversarial Attacker+Defender per feature, explicitly tasked to re-run the historically-post-hoc parameterless/agnostic audit.
R6HTML flowchart exposure every iteration (this page) — blockers and robustness wins marked on the chart.
R7Loop self-blocks on red gates — never --no-verify, never weakens a gate, never touches the anchor blocklist.

4-feature ledger

#featuretolreusesstatusparity (oracle · max-abs-dev · TOL)PR
25pomeau_irreversibility_lag1ε 1e-9— (new trev)PENDING
55hvg_degree_assortativity_coefficientε 1e-9#54 HVGPENDING
57hvg_mean_shortest_path_lengthε 1e-9#54 HVGPENDING
72psd_wiener_spectral_flatnessε 1e-6#75 PSDPENDING

⚑ Operator morning handoff

Iteration log

One page per loop iteration. Each overview-flowchart node above is clickable and links here; the loop overwrites the matching page when it reaches that iteration.

iterpagecoversstatus
01bootstrapvendor probes · v2 cohort · SSoT/toleranceQUEUED
02pomeau_irreversibility_lag1feature #25QUEUED
03hvg_degree_assortativityfeature #55QUEUED
04hvg_mean_shortest_pathfeature #57QUEUED
05psd_wiener_spectral_flatnessfeature #72QUEUED

Implementation flowcharts

One overview + one per feature. The loop draws a feature's chart before implementing it and restyles nodes each iteration.

queued active done 🔴 blocker 🟡 robustness

Overview — all four

flowchart LR
  B["iter 01 · bootstrap
vendor probes · v2 cohort"]:::active --> F25["#25 pomeau
(standalone trev)"]:::queued F25 --> F55["#55 hvg assortativity
reuse #54 HVG"]:::queued F55 --> F57["#57 hvg shortest-path
reuse #54 HVG"]:::queued F57 --> F72["#72 psd flatness
reuse #75 PSD"]:::queued F72 --> DONE([all 4 merged]):::queued click B "index_iter_01_bootstrap.html" "iter 01 · bootstrap" click F25 "index_iter_02_pomeau_irreversibility_lag1.html" "iter 02 · #25" click F55 "index_iter_03_hvg_degree_assortativity.html" "iter 03 · #55" click F57 "index_iter_04_hvg_mean_shortest_path.html" "iter 04 · #57" click F72 "index_iter_05_psd_wiener_spectral_flatness.html" "iter 05 · #72" classDef queued fill:#334155,stroke:#475569,color:#e2e8f0; classDef active fill:#1d4ed8,stroke:#3b82f6,color:#fff; classDef done fill:#15803d,stroke:#22c55e,color:#fff; classDef blocker fill:#b91c1c,stroke:#ef4444,color:#fff; classDef robust fill:#b45309,stroke:#f59e0b,color:#fff;

#25 pomeau_irreversibility_lag1 iter 02 ↗

flowchart LR
  W["worktree off
fresh origin/main"]:::queued --> O["oracle JSONL
trev · ε 1e-9"]:::queued O --> K["Rust kernel
(new, causal)"]:::queued K --> WIRE["wire: BarRow ·
LookbackWindow"]:::queued WIRE --> S["SOTA §6 suite
R3"]:::robust S --> A["agnostic TEST-B
R1"]:::robust A --> G["check:all-gates
R7"]:::queued G --> CH["Attacker+Defender
R5"]:::queued CH --> PR(["open PR · STOP
for merge"]):::queued classDef queued fill:#334155,stroke:#475569,color:#e2e8f0; classDef active fill:#1d4ed8,stroke:#3b82f6,color:#fff; classDef done fill:#15803d,stroke:#22c55e,color:#fff; classDef blocker fill:#b91c1c,stroke:#ef4444,color:#fff; classDef robust fill:#b45309,stroke:#f59e0b,color:#fff;

#55 hvg_degree_assortativity_coefficient iter 03 ↗

flowchart LR
  W["worktree off
fresh origin/main"]:::queued --> O["oracle JSONL
networkx · ε 1e-9"]:::queued O --> K["Rust kernel
reuse #54 HVG"]:::queued K --> RU["reuse assertion:
adjacency == #54
R2"]:::robust RU --> WIRE["wire: BarRow ·
LookbackWindow"]:::queued WIRE --> S["SOTA §6 suite
R3"]:::robust S --> A["agnostic TEST-B
R1"]:::robust A --> G["check:all-gates
R7"]:::queued G --> CH["Attacker+Defender
R5"]:::queued CH --> PR(["open PR · STOP
for merge"]):::queued classDef queued fill:#334155,stroke:#475569,color:#e2e8f0; classDef active fill:#1d4ed8,stroke:#3b82f6,color:#fff; classDef done fill:#15803d,stroke:#22c55e,color:#fff; classDef blocker fill:#b91c1c,stroke:#ef4444,color:#fff; classDef robust fill:#b45309,stroke:#f59e0b,color:#fff;

#57 hvg_mean_shortest_path_length iter 04 ↗

flowchart LR
  W["worktree off
fresh origin/main"]:::queued --> O["oracle JSONL
networkx · ε 1e-9"]:::queued O --> K["Rust kernel
reuse #54 HVG"]:::queued K --> RU["reuse assertion:
adjacency == #54
R2"]:::robust RU --> WIRE["wire: BarRow ·
LookbackWindow"]:::queued WIRE --> S["SOTA §6 suite
R3"]:::robust S --> A["agnostic TEST-B
R1"]:::robust A --> G["check:all-gates
R7"]:::queued G --> CH["Attacker+Defender
R5"]:::queued CH --> PR(["open PR · STOP
for merge"]):::queued classDef queued fill:#334155,stroke:#475569,color:#e2e8f0; classDef active fill:#1d4ed8,stroke:#3b82f6,color:#fff; classDef done fill:#15803d,stroke:#22c55e,color:#fff; classDef blocker fill:#b91c1c,stroke:#ef4444,color:#fff; classDef robust fill:#b45309,stroke:#f59e0b,color:#fff;

#72 psd_wiener_spectral_flatness iter 05 ↗

flowchart LR
  W["worktree off
fresh origin/main"]:::queued --> O["oracle JSONL
numpy rFFT · ε 1e-6"]:::queued O --> K["Rust kernel
reuse #75 PSD"]:::queued K --> RU["reuse assertion:
power-spectrum == #75
R2"]:::robust RU --> WIRE["wire: BarRow ·
LookbackWindow"]:::queued WIRE --> S["SOTA §6 suite
R3"]:::robust S --> A["agnostic TEST-B
R1"]:::robust A --> G["check:all-gates
R7"]:::queued G --> CH["Attacker+Defender
R5"]:::queued CH --> PR(["open PR · STOP
for merge"]):::queued classDef queued fill:#334155,stroke:#475569,color:#e2e8f0; classDef active fill:#1d4ed8,stroke:#3b82f6,color:#fff; classDef done fill:#15803d,stroke:#22c55e,color:#fff; classDef blocker fill:#b91c1c,stroke:#ef4444,color:#fff; classDef robust fill:#b45309,stroke:#f59e0b,color:#fff;