
Governing principle: LLMs make judgments. Code makes calculations and enforces limits. Six specialised agents each make one judgment and return structured JSON. Deterministic code computes every number, enforces every limit, and constructs every order. Three invariants hold regardless of model output: no model output reaches the broker; the risk layer is monotone — models can only make positions smaller, stops tighter, exits earlier, and widening a stop is not a value the exit schema can express, so a model attempting it fails at parse rather than at a runtime check; and any schema violation, timeout or ambiguity results in no trade. Agent 1 classifies regime and selects the signal parameterization. Agent 2 reads headlines and event proximity to decide tradeability. Agent 4 chooses a contract from a deterministic survivor set. Agent 3 returns a size multiplier bounded to [0.0, 1.0]. Agent 5 may only tighten a stop or exit early. Agent 6 turns the day's log into bounded observations for tomorrow's prompts. Base size is computed in code before any model is called, assuming an overnight gap can take the full premium. Ten hard caps apply on top. Kill switches are fully deterministic and never consult a model. Strategy: swing directional debit structures, 1–5 session holds, monthly expiries, delta-banded and liquidity-gated. Passive mid-limit entries that never chase; stepped exits whose urgency is keyed to the exit reason. Debit verticals were designed, built, then removed after measurement showed them unconstructible at swing DTE. Every decision is appended to an append-only log with prompt hash, latency and validation result. Roughly 20,700 records across five sessions. The dashboard is generated entirely from that log — read-only, no broker calls, structurally unable to reach an order. The deterministic harness was built the week before kickoff; the agent layer, prompts, orchestrator, dashboard and all live trading during the event window.
4 Sep 2026