oah helps you build an AI development workflow that fits you and keeps changing as AI improves. It is a working reference and a guide you can adapt.
A useful result needs more than generated code: the scope must be clear, the changes checked, and decisions kept for the next session. oah connects those steps so one request can carry through the work with a record of what happened.
002 / Why it keeps changing
Older rules and skills can hold a newer model back or make its results worse. Defaults should be easy to understand and change; a rule that gets in your way is a design problem to fix.
Keep the parts that help, remove what no longer helps, and revise the workflow as your tools improve. You can start with the full setup or take only the impact map, wiki, leases, evidence gates or review loop that your project needs.
003 / Why Claude builds and Codex reviews
This split comes from the author's own experience, not a measured comparison: Claude fills in details a beginner might miss in a first version; Codex checks and corrects within a fixed scope.
The current commands run Claude Code and Codex CLI. The ideas can also be adapted to another tool or harness, with one AI or several. Give each stage to the AI that suits your work.
004 / From one request to a checked change
Describe the result you want in plain language. The AI records the goal and scope, checks what the change touches, reserves its paths and chooses the tools for the task. Claude builds; Codex reviews, corrects and reviews again.
Gates record the checks and their results. The project wiki keeps the decisions and reasons beside the code. In v0.3.0, optional TypeSafe Jev can judge difficulty for model selection; rules remain the fallback when it is unavailable or uncertain.
005 / The decisions stay with you
You ask, answer when the AI needs a decision, and confirm before the change lands. If the same problem repeats or the work reaches a design choice, the loop stops to ask you.
Ask “Is the review done?” or “Did all the gates pass?” and inspect the evidence. The final confirmation belongs to you; writing code, checking it and approving its landing are separate steps.
006 / Free, open source, yours to adapt
oah is free, open-source software under the MIT license. Read the source, change it and bring the useful pieces into your own workflow. Your AI services and any optional services use their own accounts and billing.
The current v0.3.0 release supports macOS and native Windows, and expects familiarity with git and pull requests. Install it, run oah init in your project, then try the small hello-oah example. The installation and documentation sections explain each step.
Claude Code builds the first version; Codex CLI reviews a clean, read-only snapshot, corrects the blocking findings and reviews again. There is no fixed number of rounds: a series ends when a round approves or leaves only P2/P3 follow-ups. A repeated problem or a design choice stops the loop for your answer, and a round limit is optional.
When you need it
AI sessions can keep reviewing without an ending rule, retry the same fix in different ways, or quietly make design decisions that should be yours.
How it works
oah call claude --stage initial sends the packet's brief to Claude Code. [stages] in .oah/config.toml sets which engine does each stage; the wrong engine is refused with OAH_STAGE_ENGINE_MISMATCH unless --override-stage is passed, which is recorded.
oah review --task T reviews the committed work from the merge-base to HEAD in a fresh clone with agent instruction files removed. A canary proves only that Codex could read the snapshot.
Findings carry a severity: P0 and P1 block, P2 and P3 are follow-ups. Each finding keeps a stable id and class across rounds.
oah fix --task T has Codex correct the latest P0/P1 findings in your leased worktree and leaves the change uncommitted. You inspect the diff, commit it with Agent-Engine: codex, then run oah fix --task T --bind.
The loop stops with OAH_REVIEW_NEEDS_DECISION when a finding repeats a kind an earlier correction tried to fix, or the fix needs a design or stored-format change. --decision "<what you decided>" continues and is recorded.
[review] max_rounds is an optional limit; reaching it stops with OAH_REVIEW_ROUNDS_EXHAUSTED, and --extra-round continues and is recorded.
Example
Correct, re-prove and review again in the worked example (only when changes are requested).
oah wiki maintain --task hello-name
oah gates check hello-name --approve
git add -A
git commit -m "fall back to world for an empty name" -m "Agent-Engine: codex"
oah fix --task hello-name --bind
oah review --task hello-name
Requirements
Claude Code and Codex CLI, installed and signed in by you.
A committed tree: uncommitted changes to tracked files refuse with OAH_REVIEW_DIRTY_TREE.
Limits and recovery
The Claude-builds, Codex-reviews split comes from the author's own experience, not a measured comparison.
A Codex review of a Codex correction is labelled independent: no — an honest label for this engine order, not an error.
A converged review can still leave P2/P3 follow-ups, which are recorded.
If several reviewer calls in one round fail, oah stops calling the paid reviewer (OAH_REVIEW_ATTEMPTS_EXHAUSTED): read the last run's stderr.log, fix the cause, then rerun with --extra-attempt.
Running oah fix after convergence refuses with OAH_FIX_NOT_REQUESTED.