# Your platform: Codex

Read this once, at stage A1, after AGENT.md and OPENAI-RUNTIME.md. The method, the stage files,
the tools and the checks are the same on both platforms; this file is where they differ.
Generated by `aggregator/handler/claude/gen_platform.py` from `aggregator/handler/claude/arm.codex.json`; never edit it by hand.

## Models and routes

`aggregator/handler/claude/arm.codex.json` sets each leg's model and effort; the controller (`aggregator/handler/codex/run.py`,
`aggregator/handler/codex/runtime/`) records the native identities at every close. Never change the model to
escape a failure.

| stage | analyst | effort | readers |
|---|---|---|---|
| A1 | gpt-6-astra | a medium; b medium; c high |  |
| B1 | gpt-6-astra | a high; b high; c xhigh; d high; e xhigh |  |
| B2 | gpt-6-astra | a medium; b high; c medium; d high | gpt-6-sol x3 via codex, effort medium |
| B3 | gpt-6-astra | a medium; b high | gpt-6-sol x2 via codex, effort medium |
| B4 | gpt-6-astra | a high; b medium; c high | gpt-6-sol x2 via codex, effort medium |
| C1 | gpt-6-astra | a xhigh |  |
| C2 | gpt-6-astra | a xhigh; b high; c high; d xhigh | gpt-6-astra x1 via codex, effort high |
| C3 | gpt-6-astra | a high; b high; c xhigh |  |
| C4 | gpt-6-astra | a high |  |
| C5 | gpt-6-astra | a high; b medium; c high; d high | gpt-6-astra x1 via codex, effort high |
| D1 | gpt-6-astra | a medium |  |
| D2 | gpt-6-astra | a high | gpt-6-sol x2 via codex, effort medium |
| D3 | gpt-6-astra | a high; b medium; c high |  |
| D4 | gpt-6-astra | a xhigh |  |
| D5 | gpt-6-astra | a high; b high |  |
| D6 | gpt-6-astra | a high; b high |  |
| E1 | gpt-6-astra | a high; b high; c medium; d high; e high | gpt-6-sol x1 via codex, effort medium |
| E2 | gpt-6-astra | a high; b xhigh |  |

- **The routine readers** run on `gpt-6-sol` as independent native readers the controller owns,
  or on OpenRouter when the study selected that fleet arm (`aggregator/handler/claude/fleet-arms.json`,
  `FLEET-ARMS.md`). Wherever the stage files speak of `fleet.py`, read the controller's dispatch:
  it applies the same return validation (`tools/fleet.py`'s `validate`).
- **The reviewers** of C2 and C5 run on `gpt-6-astra`, each in a session of its own.
- **The labelers** at D2 resume each room's original case lead in Codex (`handoff/HANDLER.md`).

## Legs, closes and compaction

- Each ordinary leg forks the preceding completed native checkpoint and its files. `_head.md`
  and the diary orient that continuation; they do not replace the history.
- `done.sh` is your exit. The controller then runs the trusted checks and the recall probe,
  records the native boundary and commits the compressed checkpoint. Closing at `packets-out`
  asks the controller to dispatch; never run a fleet yourself.
- The shell starts in `out/`: `cd ..` before running the tools. Scratch and cache paths are the
  controller's.
- At a safe pause, log the working hypothesis and the next item with `mem.py log --kind pause`,
  then `bash tools/done.sh STAGE --pause`. The controller owns interruption and recovery.
