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.
Skills are instruction folders that Claude Code and Codex load. oah picks them for each brief by task kind, stage, risk and the file kinds in the Scope, with a reason for each. The kit cache updates at most once a day when no lease is active, and your project's tracked copies stay pinned until you run oah skills update --project.
When you need it
Choosing skills by hand for every task is tedious, and outdated skills can hold a newer model back or make results worse, so updates need to be checked and reversible.
How it works
The selector reads the installed Claude and Codex skill folders (user, project and plugin skills) and the kit cache, without changing them.
It picks by task kind, stage, risk and the Scope's file kinds, giving a reason for each. The brief names each skill and its path, or includes its text when [skills] mode = "attach".
When the same skill is installed twice, the project's copy wins, then the kit cache, then user and plugin copies.
With [skills] auto_update = true, the kit cache is checked at most once per update_interval_days (1 by default) and never while a lease is active.
Every update must keep the same license, load, and pass the privacy scan before it is published; a failed or suspicious update keeps the last good copy and is reported.
Project copies change only through oah skills update --project, run as its own leased task; global folders only with --global and your confirmation.
Example
Check for updates, then refresh the kit cache and MCP-pin notices (from Upgrade).
oah skills update --check
oah skills update
oah doctor
Requirements
Nothing extra; TypeSafe Jev re-ranking is optional.
oah skills schedule install adds a daily launchd agent (macOS) or Task Scheduler task (Windows) for the automatic check, with your consent.
Limits and recovery
An empty Scope warns OAH_SCOPE_EMPTY instead of quietly selecting nothing.
The re-ranker only re-orders; it never adds or drops a skill.
unlazy stays at the commit oah's gates are tested with; skill updates never move it.
Hold one skill where it is with pins = ["<name>"] under [skills].
The Toolkit page notes that wiring the automatic check into ordinary commands such as oah start is a follow-up; until then use a mutating skills command or the schedule.