전체 기능

README와 연결 문서에 나오는 oah의 모든 부분을 동작, 요구 사항, 한계, 원문 출처와 함께 정리했습니다.

35개 중 35개

  • 프로젝트 지식v0.3.0에서 사용 가능

    001 / 영향 지도

    AI가 파일을 고치면 영향 지도가 관련 코드, 문서, 다시 돌릴 검사를 보여 준다. 결과는 pin, exec, link, mention 순서라서 바뀐 경로를 고정하거나 실행하는 게이트가 먼저 나온다. 지도는 HEAD와 입력에 묶여 있고, oah는 낡은 지도를 몰래 쓰지 않는다.

  • 프로젝트 지식v0.3.0에서 사용 가능

    002 / 프로젝트 위키

    oah init은 Obsidian에서 바로 열리는 docs/wiki/를 만들고, AI가 작업 이력과 결정, 그 이유를 코드 옆에 남긴다. oah wiki maintain이 작업마다 로그 항목과 색인 줄을 쓰고 oah finish가 실행 여부를 확인한다. 다음 세션은 처음부터 다시 설명을 듣는 대신 읽을 기록이 있다.

  • 에이전트 실행v0.3.0에서 사용 가능

    003 / 리스

    리스는 작업 하나가 바꿀 경로를 예약해서 AI 세션 둘이 실수로 같은 파일을 고치지 않게 한다. 겹치는 리스는 OAH_LEASE_CONFLICT로 거절하고 누가 잡고 있는지 알려 준다. 리스가 편집기의 쓰기를 막을 수는 없으므로, 작업을 끝낼 때 실제로 바뀐 파일을 범위와 대조한다.

  • 검증·리뷰v0.3.0에서 사용 가능

    004 / 게이트

    게이트는 “끝났다”를 증거가 남는 검사로 바꾼다. 확인할 수 있는 결과 하나, 그것을 증명하는 명령, 그 명령이 내야 하는 출력으로 이뤄진다. oah gates check는 사용자가 승인한 뒤 unlazy로 CHECK 줄을 실행하고, 통과한 게이트에 증거와 함께 체크 표시를 붙여 입력에 묶는다. oah finish는 충족하지 못한 게이트를 거절한다.

  • 검증·리뷰v0.3.0에서 사용 가능

    005 / 구현과 리뷰

    Claude Code가 첫 버전을 만들고, Codex CLI가 깨끗한 읽기 전용 스냅샷을 리뷰해 반영을 막는 지적을 고치고 다시 리뷰한다. 라운드 수는 정해져 있지 않다. 승인이 나오거나 P2/P3 후속 작업만 남으면 끝난다. 같은 문제가 반복되거나 설계 선택이 필요하면 멈추고 사용자에게 묻는다. 반복 횟수의 상한은 선택이다.

  • 도구 확장v0.3.0에서 사용 가능

    006 / 선택형 판정기 TypeSafe Jev

    TypeSafe Jev는 권장 선택형 판정기다. 선택한 스킬의 순서를 다시 매기고 v0.3.0에서는 Intent와 Scope 경로로 난이도를 판정한다. 그 tier가 확신도 기준과 최저 하한을 지키며 모델 선택에 반영된다. 키가 없거나 Jev가 꺼져 있거나 확신도가 낮으면 규칙이 판단한다.

  • 작업 정의v0.3.0에서 사용 가능

    007 / 의도, 범위와 패킷

    패킷에는 작업 하나에 관한 모든 것이 들어 있다. 의도, 범위, 계획, 완료 게이트, 보고 형식이다. 의도는 문제, 원하는 결과, 확인할 수 있는 성공 조건을 적고, 승인해야 리스에 묶이며, 모든 단계와 워커, 리뷰어에게 바이트 그대로 간다. 모든 보고는 성공 조건마다 AC 줄 하나로 끝난다.

  • 에이전트 실행v0.3.0에서 사용 가능

    008 / 난이도, 모델과 추론 강도

    작업마다 low, medium, high, max 가운데 하나인 tier가 붙고, tier가 엔진마다 모델과 추론 강도를 정한다. 읽을 수 있는 규칙이 종류, 작업량, 추론, 위험 네 축에 점수를 매긴다. 추론 강도는 검증하고 몰래 낮추지 않으며, 선택 사항인 tier 후보에 확인한 모델을 적고, 실행마다 tier의 출처를 기록한다.

  • 도구 확장v0.3.0에서 사용 가능

    009 / 스킬 선택과 업데이트

    스킬은 Claude Code와 Codex가 읽어 들이는 지침 폴더다. oah가 작업 종류, 단계, 위험, Scope의 파일 종류로 지시문마다 스킬을 고르고 스킬마다 이유를 붙인다. 키트 캐시는 리스가 없을 때 하루에 많아야 한 번 업데이트되고, 프로젝트에 추적되는 사본은 oah skills update --project를 실행할 때까지 고정된다.

  • 검증·리뷰v0.3.0에서 사용 가능

    010 / 확인한 뒤 반영

    oah land --check는 리뷰한 head를 그대로 반영해도 되는지 판단하고 리스, 의도, 리뷰, 게이트, 영향, 필수 검사, fast-forward, 비밀 검사, CI마다 한 줄씩 보여 준다. oah land --merge는 모든 검사를 다시 돌리고 사용자에게 확인을 받은 뒤에만 원격 기본 브랜치를 정확히 그 head로 fast-forward한다.

  • 설치·운영v0.3.0에서 사용 가능

    011 / 안내형 설정 oah init

    원격이 연결된 git 저장소인 프로젝트마다 oah init을 한 번 실행한다. 선택 사항마다 한 번씩 묻고, 도구와 Claude Code·Codex 로그인을 확인하고, 전체 계획을 보여 준 뒤 사용자가 확인해야 파일을 바꾼다. 그다음 설정, 규칙 블록, 위키, 템플릿을 쓰고 첫 영향 지도를 만든다.

  • 도구 확장v0.3.0에서 사용 가능

    012 / 어떤 AI 구성에도 맞춰 쓴다

    지금 oah 명령은 Claude Code와 Codex CLI를 움직이지만, 그 아이디어는 다른 도구나 하네스를 포함해 AI 하나만 써도 여러 AI를 함께 써도 적용할 수 있다. 리스, 엔진 단계, 증거 게이트, 영향 지도, 위키, 리뷰 루프 가운데 필요한 부분을 가져가고 단계마다 자기에게 맞는 AI를 고른다.

  • 설치·운영v0.3.0에서 사용 가능

    013 / 설치와 oah doctor

    macOS 13 이상과 네이티브 Windows 11에서 OS마다 명령 하나로 oah를 설치한다. Linux는 아직 지원하지 않는다. 설치 프로그램은 Python 3.11 이상을 찾고, 빠진 도구마다 공식 명령을 보여 주며 묻고, uv(없으면 pipx나 pip)로 oah를 설치하고, 새 터미널이 oah를 찾는지 확인한 뒤 oah doctor를 실행한다. --dry-run은 모든 단계를 먼저 보여 준다.

  • 설치·운영v0.3.0에서 사용 가능

    014 / 명령과 다음 단계 안내

    AI는 oah init이 설치한 규칙과 각 명령의 다음 단계 안내를 따라 대화 아래에서 oah 명령을 실행한다. 모든 명령은 --help를 받고, 종료 코드는 정해져 있으며(0 완료, 1 거절, 2 사용법, 69 환경, 75 대기 시간 초과), 모든 거절은 OAH_* 코드로 시작해 다음에 실행할 것을 알려 준다.

  • 설치·운영v0.3.0에서 사용 가능

    015 / OAH_* 거절 해결

    oah의 모든 거절은 OAH_LEASE_CONFLICT 같은 코드로 시작하고, 나머지 메시지가 관련된 파일, 리스, 게이트와 다음에 실행할 명령을 알려 준다. 문제 해결 문서는 자주 만나는 코드를 설치와 설정, 모델, Jev, 리스, 패킷, 작업 시작, 게이트, 위키, 리뷰, push와 반영, 도구 업데이트 단계별로 묶는다.

  • 검증·리뷰v0.3.0에서 사용 가능

    016 / CI 스타터

    oah ci init은 .github/workflows/oah-ci.yml을 먼저 전부 보여 주고 물은 뒤에 쓴다. 고른 운영체제에서 테스트를 돌리고 push와 pull request마다 버전을 고정한 gitleaks로 비밀을 검사하며, action은 모두 전체 커밋 SHA로 고정하고 권한은 읽기 전용이며 비밀이 없다. 검사를 필수로 만드는 일은 사용자가 GitHub에서 직접 설정한다.

  • 설치·운영v0.3.0에서 사용 가능

    017 / oah와 구성 요소 업그레이드

    업그레이드 문서는 부분마다 업데이트 방법을 알려 준다. oah 자체(pull한 뒤 --skip-tools로 설치 프로그램을 다시 실행하거나 검증한 릴리스 압축 파일 사용), oah init이 쓴 파일(oah rules check와 oah rules sync), 스킬 키트 캐시와 프로젝트 고정본, unlazy, MCP 템플릿 고정 버전, 모델이다. 먼저 열린 리스를 끝내거나 내려놓는다.

  • 설치·운영v0.3.0에서 사용 가능

    018 / 키와 로그인

    oah 자체는 키가 필요 없다. Claude Code와 Codex는 각자 로그인하고, 키를 쓰는 선택 기능은 키가 없으면 꺼진 채로 있다. 키는 문서에 적힌 하나의 조회 경로로 환경 변수나 OS 키체인에서 실행할 때만 읽고, oah는 키를 쓰거나 출력하거나 기록하거나 지시문에 넣지 않는다.

  • 도구 확장v0.3.0에서 사용 가능

    019 / 출처가 남는 툴킷

    툴킷은 oah가 권하는 스킬, 플러그인, MCP 서버, 명령줄 도구의 묶음이고 항목마다 출처와 라이선스가 있다. 라이선스가 허락하는 스킬은 고정한 커밋 그대로 싣고, 나머지는 공식 설치 명령으로 연결한다. MCP 템플릿은 키 값 대신 자리표시자만 쓰고 npm 버전을 고정한다.

  • 도구 확장v0.3.0에서 사용 가능

    020 / 동반 앱 Orca와 Aside

    Orca와 Aside는 이 작업 흐름에 잘 맞는 선택 앱이며 oah는 이 앱 없이도 모두 동작한다. Orca는 코딩 에이전트를 각자의 git 워크트리에서 나란히 돌린다. Aside는 AI 에이전트가 들어 있는 브라우저이고 Claude Code와 Codex가 MCP로 웹 작업에 쓴다. 설정은 앱마다 제안하고 사용자가 확인한 것만 설치한다.

  • 설치·운영v0.3.0에서 사용 가능

    021 / 선택 설치하는 훅

    oah는 원할 때만 설치하는 훅을 제공한다. 게이트를 충족하지 못한 Claude Code 세션이 끝나지 못하게 하는 Stop 훅, 세션 시작 훅, 작업 중 push를 거절하고 gitleaks로 push할 커밋을 검사하는 pre-push 훅, 영향 지도를 최신으로 유지하는 post-commit·post-merge 훅이다.

  • 설치·운영v0.3.0에서 사용 가능

    022 / 보안: 비밀값은 어디에도 넣지 않는다

    철칙은 API 키, 토큰, 비밀번호, 쿠키, OAuth 시크릿, 계정 식별자를 저장소와 그 이력, 릴리스, 이슈, CI 로그 어디에도 넣지 않는 것이다. 키는 실행할 때만 읽고, 템플릿은 ${ENV_VAR} 자리표시자만 쓰며, gitleaks와 개인정보 스캔이 push 전마다 그리고 CI에서 전체 이력을 검사한다.

  • 설치·운영v0.3.0에서 사용 가능

    023 / 라이선스와 외부 저작물 고지

    oah는 MIT 라이선스로 배포하며 저작권자는 open-agent-harness 기여자다. skills/의 스킬은 각 라이선스가 허락하는 것만 원본 그대로 싣고 해당 라이선스를 함께 둔다. 다이어그램은 MIT 라이선스인 diagram-design의 템플릿과 스타일을 바탕으로 만들었고, THIRD_PARTY_NOTICES.md가 이 저작물과 oah가 실행하거나 연결하는 도구의 출처를 밝힌다.

  • 도구 확장v0.3.0에서 사용 가능

    024 / AI와 함께 바뀌는 하네스

    oah는 모두가 그대로 쓰는 완벽한 하네스가 아니라 가져다 고쳐 쓸 수 있는 참고 구현이자 가이드라인이다. 예전 규칙과 스킬은 새 모델의 능력을 막거나 결과를 나쁘게 만들 수 있으니, 도움이 되는 것은 남기고 필요 없어진 것은 지우며 도구가 바뀌면 규칙도 바꾼다. 작업을 가로막는 규칙은 고쳐야 할 설계 문제다.

  • 설치·운영v0.3.0에서 사용 가능

    025 / 개발 검사

    oah 자체를 고치는 사람을 위한 내용이다. 단위 테스트는 Python 3.11로, 그리고 가진 가장 새 Python으로 다시 돌리고 TMPDIR을 체크아웃 안에 둔다. CI는 main으로 가는 모든 pull request에서 macOS와 Windows를 검사하고, 별도 워크플로가 gitleaks와 개인정보 스캔을 돌리며, 커밋은 Agent-Engine 트레일러로 작성 엔진을 남긴다.

  • 작업 정의v0.3.0에서 사용 가능

    026 / Intent 이전의 설계·패킷 판정

    설계와 패킷 작업은 Intent보다 먼저 오므로 oah call이 판정할 수 없다. v0.3.0에서는 리드 세션이 사용자의 요청 파일로 oah recommend --kind design을 실행하고, 출력된 tier의 oah-<tier> 하위 에이전트에게 작업을 맡긴다. 설계는 high 아래로 내려가지 않고, 쓰인 판정이 없으면 max로 실행한다. 모르는 난이도를 쉬운 것으로 치지 않는다.

  • 에이전트 실행v0.3.0에서 사용 가능

    027 / 벤치마크로 고르는 모델

    v0.3.0에 출시됐다. 벤치마크 점수가 모델을 고른다. 난이도와 프로필(performance, balanced, efficient)이 작업에 필요한 점수를 정한다. balanced는 그 점수에 닿는 가장 싼 모델을, efficient는 가격 대비 점수가 가장 좋은 모델을, performance는 가장 어려운 일에 최고점 모델을 쓴다. 난이도마다 모델을 정해 둔 표는 없다.

  • 에이전트 실행v0.3.0에서 사용 가능

    028 / Epoch AI 점수, 또는 내 Artificial Analysis 키

    v0.3.0에 출시됐다. 점수는 키나 계정 없이 Epoch AI에서 가져온다. 자기 Artificial Analysis 키가 있으면 그 점수를 대신 쓴다. 릴리스마다 Epoch AI 사본이 들어 있고 카탈로그를 다시 만들 때 HTTPS로 새로 받으며, 요청에는 프로젝트, 작업, 사용자에 관한 것이 아무것도 들어가지 않는다.

  • 에이전트 실행v0.3.0에서 사용 가능

    029 / 새 세대 모델의 자동 합류

    v0.3.0에 출시됐다. 새 세대 모델은 점수가 나오면 합류하고, 낡거나 사라진 모델은 빠지며, 파일은 고치지 않는다. 바뀔 때마다 쉬운 말로 알리고 실행 기록에 남긴다. 점수가 없는 새 세대는 기다리고 옛 세대가 남으므로 모델군이 비지 않는다.

  • 도구 확장v0.3.0에서 사용 가능

    030 / Jev의 난이도 판정

    v0.3.0에 출시됐다. TypeSafe Jev가 작업의 Intent와 Scope 경로를 보고 난이도를 판정한다. 확신도가 기준에 닿으면 그 tier로 실행하되 최저 기준 아래로는 내려가지 않는다. Jev가 꺼져 있거나 확신도가 낮으면 규칙이 정한 난이도로 실행한다. 호출을 막지는 않는다.

  • 검증·리뷰v0.3.0에서 사용 가능

    031 / 위험도에 맞는 리뷰 하한

    v0.3.0에 출시됐다. 리뷰는 플래그, 패킷, 프로필, 판정이 무엇을 말해도 위험도에 맞는 하한 아래로 실행하지 않는다. 하한은 medium이고, 범위에 위험한 경로가 있거나 작업 종류가 요구하면 high다. 범위에서 다시 계산하며, 거절은 리뷰 라운드나 시도를 쓰지 않는다.

  • 설치·운영v0.3.0에서 사용 가능

    032 / 마지막 리스 뒤의 도구 업데이트

    v0.3.0의 선택 기능이다. 마지막 리스가 끝나면 oah가 각 도구의 업데이트 명령으로 Claude Code, Codex와 Claude Code 플러그인을 갱신할 수 있고, 모델 목록은 다음 호출에서 새로 읽는다. Codex 플러그인과 MCP 서버는 갱신하지 않는다. oah init에서 한 번 묻고, 끌 수 있다.

  • 검증·리뷰v0.3.0에서 사용 가능

    033 / oah models report와 export

    v0.3.0에 출시됐다. oah models report가 모델 선택이 어떻게 이루어졌는지 센다. tier 출처, Jev 난이도 상태와 확신도, 모델 판정 상태, 최저 기준이 tier를 올린 횟수다. oah models export는 실행마다 JSON 한 줄을 남겨 나중에 비교할 사례로 쓴다. 횟수만으로 Jev의 효과가 증명되지는 않는다.

  • 에이전트 실행v0.3.0에서 사용 가능

    034 / 고정 모델·tier 후보·강도 상한·최저 기준 유지

    v0.3.0에 출시됐다. 벤치마크 기반 선택은 사용자가 설정한 것을 덮어쓰지 않는다. 고정한 모델, tier 후보, 추론 강도 상한, 작업별 최저 기준은 그대로 유지된다. oah는 설정을 고치지 않는다. 고정 모델이 늘 이기고, effort_caps는 지원하는 단계로 강도를 낮추며, 옛 기본값 quality_order는 설정하지 않은 것으로 친다.

  • 작업 정의계획 · v0.4.0

    035 / 한 번에 하나씩 질문하며 함께 설계하기

    v0.4.0에 계획돼 있고 아직 제공하지 않는다. 만들고 싶은 것을 말하면 oah가 추천안과 함께 설계 질문을 하나씩 묻고, 사용자는 구현 전에 설계 결정에 직접 참여한다. 지금도 AI와 목표를 의논하고 리뷰 루프가 멈추면 판단에 답할 수는 있다.