001 / 만든 이유
oah는 각자에게 맞고 AI가 발전하는 만큼 함께 바뀌는 개발 환경을 만들도록 돕습니다. 가져다 고쳐 쓸 수 있는 참고 구현이자 가이드라인입니다. 코드를 만드는 것만으로 작업이 끝나지는 않습니다. 어디까지 바꿀지 정하고, 결과를 검증하고, 다음 세션이 읽을 기록도 남겨야 합니다. oah는 이 과정들을 연결해 하나의 요청이 작업과 확인, 기록까지 이어지게 합니다.
검증·리뷰v0.3.0에서 사용 가능
Claude Code가 첫 버전을 만들고, Codex CLI가 깨끗한 읽기 전용 스냅샷을 리뷰해 반영을 막는 지적을 고치고 다시 리뷰한다. 라운드 수는 정해져 있지 않다. 승인이 나오거나 P2/P3 후속 작업만 남으면 끝난다. 같은 문제가 반복되거나 설계 선택이 필요하면 멈추고 사용자에게 묻는다. 반복 횟수의 상한은 선택이다.
AI 세션은 끝낼 기준 없이 검토를 반복하거나, 같은 수정을 방법만 바꿔 되풀이하거나, 사용자가 내려야 할 설계 결정을 조용히 내려 버릴 수 있다.
oah call claude --stage initial이 패킷으로 만든 지시문을 Claude Code에 보낸다. 어느 단계를 어느 엔진이 맡을지는 .oah/config.toml의 [stages]가 정하고, 맞지 않는 엔진은 OAH_STAGE_ENGINE_MISMATCH로 거절한다. --override-stage를 주면 실행하고 그 사실을 기록한다.oah review --task T는 merge-base부터 HEAD까지 커밋된 작업을, 에이전트 지침 파일을 지운 새 클론에서 리뷰한다. 카나리는 Codex가 스냅샷을 읽을 수 있었다는 것만 증명한다.oah fix --task T는 리스를 잡은 워크트리에서 최근 라운드의 P0, P1 지적을 Codex에게 고치게 하고 커밋하지 않은 채 남긴다. 사용자가 diff를 확인하고 Agent-Engine: codex로 커밋한 뒤 oah fix --task T --bind를 실행한다.OAH_REVIEW_NEEDS_DECISION으로 멈춘다. --decision "<결정한 내용>"으로 이어 가면 기록된다.[review] max_rounds는 선택 상한이다. 닿으면 OAH_REVIEW_ROUNDS_EXHAUSTED로 멈추고, --extra-round로 이어 가면 기록된다.따라 하기 예제에서 고치고 다시 증명한 뒤 재리뷰한다(수정 요청이 있을 때만).
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-nameOAH_REVIEW_DIRTY_TREE로 거절한다.independent: no로 표시된다. 이 엔진 순서에 대한 정직한 표시이고 오류가 아니다.OAH_REVIEW_ATTEMPTS_EXHAUSTED). 마지막 실행의 stderr.log를 읽고 원인을 고친 뒤 --extra-attempt로 다시 실행한다.oah fix를 실행하면 OAH_FIX_NOT_REQUESTED로 거절한다.