001 / 만든 이유
oah는 각자에게 맞고 AI가 발전하는 만큼 함께 바뀌는 개발 환경을 만들도록 돕습니다. 가져다 고쳐 쓸 수 있는 참고 구현이자 가이드라인입니다. 코드를 만드는 것만으로 작업이 끝나지는 않습니다. 어디까지 바꿀지 정하고, 결과를 검증하고, 다음 세션이 읽을 기록도 남겨야 합니다. oah는 이 과정들을 연결해 하나의 요청이 작업과 확인, 기록까지 이어지게 합니다.
프로젝트 지식v0.3.0에서 사용 가능
AI가 파일을 고치면 영향 지도가 관련 코드, 문서, 다시 돌릴 검사를 보여 준다. 결과는 pin, exec, link, mention 순서라서 바뀐 경로를 고정하거나 실행하는 게이트가 먼저 나온다. 지도는 HEAD와 입력에 묶여 있고, oah는 낡은 지도를 몰래 쓰지 않는다.
“이 파일을 바꾸면 무엇을 다시 확인해야 하나?” 답이 없으면 작은 변경도 깨진 검사나 낡은 문서를 남기고, 어떤 검사를 다시 돌려야 하는지 아무도 모른다.
oah impact <path>나 oah impact --changed-since origin/main을 실행한다. preflight, packet new, review도 먼저 지도를 새로 고친다.pin과 exec 행은 CHECK나 EXPECT가 그 경로를 고정하거나 실행하는 원장의 게이트를 짚고, link 행은 그 경로를 적은 코드, 테스트, 워크플로, 위키 문서에서, mention 행은 이름이 같은 것, 함께 바뀐 파일, graphify가 있을 때의 그래프 이웃에서 나온다.db_table:, db_routine:, db_grant: 항목으로 만든다.OAH_IMPACT_STALE로 거절한다.파일 하나나 브랜치의 변경이 무엇에 영향을 주는지 묻는다(개념 문서).
oah impact src/app.py
oah impact --changed-since origin/mainoah init이 만든다.mention 이웃만 더한다.post-commit과 post-merge 훅이 명령 사이에도 지도를 최신으로 유지한다.--offline이거나 가져오기에 실패하면 마지막으로 가져온 기본 브랜치 커밋을 쓰고 낡았다고 표시한다.db-impact: unavailable이라고 밝힌다.OAH_IMPACT_STALE이 나오면 메시지의 원인을 고치고 oah impact refresh를 실행한 뒤 다시 시도한다.OAH_LAND_IMPACT_STALE이다. URL이나 절대 경로인 원격을 쓴다.