Division of labor
Claude is the long-context reader. We hand it filings, prior desk notes, and a question that includes "what would change your mind." Codex is the patch author. It touches the research repo. It does not touch the order router.
The split is deliberate. Reading and writing code are both automatable. Signing off on a live signal is not.
The loop
hypothesis → sources → Claude read → Codex diff → frozen backtest → human edit
- A human writes the hypothesis in one paragraph. If it does not fit, it is not ready.
- Claude summarizes the source set and lists claims that are not in the sources. Those get deleted or cited.
- Codex drafts the feature function against the existing test harness. We review the diff the same way we review a junior's pull request.
- The backtest runner stays a deterministic job. No model picks parameters inside the loop.
- The published note is edited by a person. Model prose that cannot point at a table does not ship.
What we will not wire up
- An agent with broker credentials.
- A prompt that emits a position size.
- Silent retries that change a dataset until the chart looks right.
Why this is on the site
Clients ask whether "the AI" trades. It does not. The systems that send orders are the ones we can replay bar for bar. The models are how a small desk reads more paper and ships cleaner code, without pretending the model is the portfolio manager.
When a tool in this loop changes — a new Claude habit, a Codex failure mode, a check we had to add — it gets a note here, next to the research it touched.