--- name: loop-update description: 기존 loop_setup/LOOP.md를 실제 실행 환경·진행 상태·복구 이력에 맞춰 부분 갱신한다. 실행 수단·병렬 운용·재개 방식·반복 정체를 조정할 때 사용하며 기존 합의와 잔여 예산을 이어받는다. --- # 개발 루프 갱신 진행 상태를 잃지 않고 운영 방법을 맞춰 원래 요청의 완성까지 이어 간다. ## 입력과 최소 산출물 - `loop_setup/LOOP.md`, 관련 코드·태스크·`plan_setup/PLAN.md`·`STATE.md`·`LOG.md`, `harness_setup/`을 읽는다. - PRD의 `## 자율운영 합의`와 구판 결정의 원래 위치를 확인한다. 현재 실행 주체·미반영 결과·잔여 예산을 조사한다. - 산출물은 영향 있는 LOOP 절의 부분 수정, 필요한 STATE 보완, LOG의 변경 이유와 실제 검증 결과다. - LOOP가 없으면 필요한 `loop-setup` 절차를 이어 수행한다. 형식 전환이나 전체 문서 재생성을 선행 조건으로 삼지 않는다. 재개·추가 UI 작업은 디자인 정본의 유효한 사용자 승인 근거·버전·범위를 확인해 이어 간다. 새 방향은 PRD의 미리보기·사용자 확정 단계로 연결한다. Loop 중 미확정 새 결정은 중간 질문·자체 승인 없이 영향 UI·의존만 차단하고 독립 작업을 계속한다. 미리보기·증거·재개 조건을 보존해 최종 미완료로 보고한다. ## 원인과 실행 수단 확인 반복 정체·실패는 로그와 실제 코드·명령·실행 상태를 대조해 원인을 구분한다. 작업 의존/범위 문제면 계획을, 검사/환경 문제면 하네스를, 운영 문제면 LOOP를 고친다. 합의 안에서 필요한 스킬 지침을 읽고 해당 조정을 수행한 뒤 원래 작업으로 돌아온다. 다른 스킬 이름이나 다음 명령을 사용자에게 안내하는 것만으로 실행 요청을 끝내지 않는다. 현재 도구 목록·CLI 도움말·권한을 확인하고 기존 실행 수단을 재사용한다. 제출됐는지·실행 중인지·결과가 완전한지를 실제 증거로 확인한다. 초안·무응답·시간 경과를 완료나 사망으로 읽지 않는다. 제품 이름으로 브라우저·서브에이전트·자동 호출 가능 여부를 단정하지 않는다. 복잡한 구동기·감시·질문/답변 플랫폼을 프로젝트마다 새로 만들지 않는다. ## 환경 선택과 실행 준비 Orca / 일반 환경 / Others(실제 도구명)의 기존 사용자 선택을 보존한다. OS·권한·도구·가용 메모리·기존 서비스·외부 의존을 조사하고 부담에 맞는 구성을 추천한다. 미확정 선택과 필요한 사전 안내/동의 → 허용 구성 → 실제 무인 실행 경로 시험 순서로 준비한다. Orca는 설치된 orca-cli·orchestration의 현행 스킬과 공식 CLI를 읽고 재사용한다. Others는 도구의 현재 지침·공식 문서·CLI와 출처를 확인하고 일반 환경은 실제 제공 수단을 사용한다. 누락 도구는 출처·준비 방법·변경 범위·대안을 안내하고 기존 허용 설치/설정은 재승인하지 않는다. 새 계정·비용·범위 밖 변경·사용자 로그인 등 필요한 동의는 Loop 전에 해소한다. 실제 경로의 시작·작업 폴더·모델/인증·허용 명령·상태·종료·완전한 결과 회수·독립 관찰 연결을 시험한다. 도움말·입력 접수·부모 권한만으로 무인 준비 완료를 선언하지 않는다. 자식 금지 시 시험을 강행하지 않고 미검증을 적는다. 현재 세션 밖 자동 지속/재시작은 실제 실행 기반이 확인된 범위만 약속한다. ## 배정·회수·통합과 안전 중단 매 배정마다 현재 통합·검증된 선행, 단독 소유권, 실제 파일·DB·포트·앱·설정 충돌, 가용 메모리·잔여 전체 예산을 확인한다. 정적 DAG 폭만으로 배정하지 않는다. 배정/선점과 공유 STATE·LOG 반영은 한 주체가 관리하고 실제 수정 범위 변경 시 충돌 판단을 갱신한다. 동시에 코드를 바꾸는 작업은 서로의 미완·보존 변경이 검사 대상에 섞이지 않는 위치에서 하며, 별도 작업 사본에는 미커밋 문서가 없을 수 있으니 문서 정본 위치를 알린다. 워커 수와 빌드·브라우저·컨테이너 등 무거운 작업의 동시 상한을 따로 정한다. 이름을 붙일 수 있는 실행 환경(Orca 워크트리·터미널 등)에서는 워커를 `phase-NN-task-MM-worker`(검증은 `phase-NN-task-MM-validation-worker`), 조정자를 담당 phase 기준 `phase-NN-coordinator`(여러 phase면 `phase-01-03-coordinator`처럼 범위)로 이름 짓는다. 서비스는 재사용하고 필요한 데이터/앱만 격리하며 Docker 사용 시 실제 설정에 자원 제한을 적용한다. 자원 부족 시 신규 배정·무거운 작업을 줄여 동시 수 1까지 축소한다. 타인 프로세스를 종료해 자원을 확보하지 않는다. 공유 DB 준비/초기화·마이그레이션·시드 명령과 실제 접속, 앱의 대상 코드/데이터 동일성·readiness를 확인한다. 포트 열림만으로 준비 완료를 판정하지 않으며 검증 중 앱/DB 교체를 막는다. 결과는 태스크·시도·대상 코드/미커밋 해시·환경·관찰 증거와 연결한다. 입력 접수·시작·종료·완전 회수를 구분한다. 늦거나 중복된 결과는 현재 배정/시도와 대조해 거부하거나 한 번만 반영한다. 대상 변경 시 영향 판정을 무효화한다. 개별 PASS는 통합 PASS가 아니다. 통합 뒤 영향 검사와 phase/프로젝트 수용 기준을 재검증한다. 한 워커 실패로 무관 작업을 세우지 않으며 종료 확인된 자리는 충돌 없는 작업에 재사용한다. 조용함만으로 사망을 단정하지 않지만 합의 기한은 살아 있는 작업에도 집행한다. 기한/사용자 중단 시 신규 배정을 멈추고 소유권·동일성을 확인한 자기 작업만 안전 중단·종료 확인·회수한다. 종료 불명은 점유/미확인을 기록하고 종료 확인이나 격리 없이 중복 실행하지 않는다. 이름·오래된 PID만으로 정리하지 않는다. ## 지속 기록과 새 세션 재개 작업 시작과 중요한 코드/문서·검증·분석·배정/반영·중단 전환마다 대상 문서·태스크·STATE·LOG를 증분 저장한다. STATE는 급작스러운 중단 뒤 원 대화 없이 안전하게 재개하기 위한 기록이다. 태스크·git에서 다시 얻을 수 없는 진행 중 실행자·작업 폴더·기준 코드·미반영 결과·누적 시도/전략·사용/잔여 예산 참조·다음 행동을 담고, 상태 전이를 기록하는 저장·커밋에 그 시점의 STATE를 함께 포함한다. LOG는 누적 이력이며 요약으로 원기록을 지우지 않는다. 채택 로그·이미지·트레이스·코드 식별은 비밀값 없이 지속 경로에 보존한다. 임시 경로만 남기지 않으며 기록 갱신 중 중단돼도 이전 기록과 불완전한 갱신을 구분한다. 원 대화 없는 새 세션은 LOOP·STATE·관련 기록과 실제 코드·미커밋 변경·살아 있는 실행자·미반영 결과를 대조한다. 기존 합의·누적 시도/전략·전체 사용 예산을 계승하고 유효성을 확인한 다음 행동부터 재개한다. 완료 작업 재구현·생존 작업 중복 실행·미관찰 PASS 추정을 금한다. 자동 재시작과 기록 기반 재개는 별도로 확인한다. 기획/문서만 요청도 해당 문서에 현재 단계·확정/미결·다음 행동을 남기되 전체 Loop를 새로 강제하지 않는다. ## 갱신할 내용 - 실행 방법이 바뀌면 실제 시작·상태 확인·종료·재개 경로와 검증 정의 참조를 맞춘다. - LOOP의 한 곳에 실제 사용하는 역할별 모델·추론 강도·허용 대체 범위와 확인한 사용값을 맞추고 다른 문서는 이를 참조한다. 기존 합의·위임·예산과 변경 이력을 계승한다. 기본값 상속·미지원·미확인을 구분하고 조용히 대체하거나 기록을 위해 새 역할·질문을 만들지 않는다. - 작업이 늘거나 의존이 바뀌면 실행 가능한 후보·순환·미존재 ID·차단된 후행을 다시 확인한다. 기존 DAG 도구가 유용하면 재사용한다. 별도 그림/생성기는 필요한 경우에만 둔다. 유효한 범위 결정으로 정식 폐기한 작업은 기록·색인·의존을 맞춘 뒤 phase/프로젝트 집계 대상에서 제외한다. 폐기는 PASS가 아니며 실패·차단·미검증을 임의 폐기하지 않는다. - 독립·준비된 작업은 병렬 기본이며 배정 조건과 사용자 상한을 적용한다. - 상태 형식을 넓혀야 하면 기존 작업·판정·재시도 이력·결정·잔여 예산을 먼저 옮겨 보존한다. 동시 작업을 줄일 때도 미반영 결과를 회수하고 기존 실행 주체를 중복 기동하지 않는다. - 유효한 합의를 재사용한다. `Standing Decisions`의 만료는 로그에 남기고 현재 검증을 적용한다. 만료됐다는 이유로 같은 목적·권한·예산을 다시 묻지 않는다. - 제품 Loop는 `lint → unit → e2e → task_validation` 판정 순서를 유지한다. `harness_setup/quality_gates/`의 네 정의와 HARNESS·태스크 verification 연결을 확인하고 누락은 복구한다. 앞 실패 복구 전 뒤의 완료 판정을 열지 않는다. 현재 코드·설정·의존성·데이터 조건과 영향이 같은 근거가 있는 결과는 재사용하고 같은 코드 상태 태스크를 묶어 검사할 수 있으나 각 수용 기준의 태스크별 대응을 남긴다. 검증 전 completed 처리나 후행의 완료 선행 사용을 금한다. 준비 미활성은 PASS가 아니며 준비 증거와 후속 활성 담당/시점을 연결한다. 문서·세팅만 요청과 작은 독립 수정에는 전체 Loop를 강제하지 않는다. 기존 Loop의 작업 범위에 속하는 제품 변경은 계약을 계승한다. LOOP.md의 존재만으로 새 독립 요청을 편입하지 않으며 현재 요청·유효한 합의·태스크 연결로 범위를 판단해 기록한다. 사용자 명시 기본값 변경·자식 금지가 우선하며 보장 변경과 미검증을 기록한다. - 모든 게이트의 판정 중 제품 소스·수용 기준·통과 단언을 자동 수정하지 않는다. 수정은 구현 단계에서 수행하고 영향받은 판정을 무효화해 재검증한다. 기준을 바꾸지 않는 허용된 테스트 데이터 준비는 가능하다. - 화면은 브라우저/실행 E2E, 비화면은 적합한 HTTP·CLI·DB로 실제 관찰한다. 중요한 실패 경로도 확인한다. 코드 작성·명령 종료 코드 0·테스트 0건·전부 skip·미활성·서비스 미실행은 기능 완료 증거가 아니다. 제품 최종 완료는 필요한 네 게이트와 포함 범위 수용 기준의 실제 증거로 닫는다. - task_validation은 해당 변경을 구현하지 않은 비상속 별도 세션이 맡는다. 같은 모델도 가능하나 구현 대화·추론·자체 통과 결론을 상속한 자식이나 같은 세션 역할 변경은 독립 검증이 아니다. 구현 태스크마다 새 세션은 요구하지 않는다. 요구·수용 기준·필요 설계·대상 코드 식별·환경/접속·허용 데이터/권한·잔여 예산을 주며 코드/diff 열람은 허용한다. 운영 제약은 필요한 절만 전달하고, 구현 추론·자체 판정이 담긴 STATE/LOG 전체를 검증 입력으로 넘기지 않는다. 검증자는 제품·수용 기준·통과 단언을 수정하지 않는다. 직접 수정한 변경은 다른 독립 검증자가 판정한다. 실제 관찰의 기준별 PASS/FAIL·환경 문제/판정 불가·재현 증거를 완전히 회수한다. 테스트 재실행·코드 리뷰·구현자 보고로 대체하지 않는다. ## 상태 보존과 구판 호환 기존 FR/NFR/US/TD/OQ/CF·태스크·phase·BUG ID와 `파일명 §절번호` 참조를 보존한다. 구판 12필드 태스크·추적표·`Retry`·`Standing Decisions`도 그대로 읽고 필요한 부분만 고친다. 사용자 변경·완료 상태·과거 시도와 금지 사항을 지우지 않는다. 새 ID는 끝번호 뒤에 붙인다. 현재 사용자가 승인한 운영 변경은 관련 구판 지시보다 우선한다. 과거 승인 대기·검증 면제·복구 종료 문구는 현재 합의와 제품 Loop 계약의 영향 부분만 맞추되 실제 도구 제한과 명시된 사용자 금지는 보존한다. 만료된 허용을 새 권한으로 확대하지 않는다. 기존 `활성/부분 활성/미활성/대기`와 태스크 `pending/in_progress/blocked/failed/completed` 의미를 섞지 않는다. 태스크 정본·실행 증거에 맞춰 STATE 재개 기록을 복구하고 LOG 이력은 보존한다. 실행 중 갱신은 현재 필자와 안전한 경계에서 적용한다. 바뀐 운영을 다음 실행자가 읽을 수 있게 남긴다. 루트 `CLAUDE.md`·`AGENTS.md`는 필요한 포인터만 보완한다. 양쪽 문서를 통째로 다시 쓰지 않는다. ## 자율 복구와 종료 Loop 전 미해소 목적·권한·예산은 기존 합의를 먼저 조사하고 필요한 결정만 해소한다. Loop 이후에는 사용자 질문·재승인·수동 명령/새 세션 요청 0회다. 새 세션도 같은 합의와 잔여 예산을 이어받는다. 통상적인 코드·테스트·의존성·하네스·문서·로컬 환경 조정은 합의 안에서 수행한다. 실패를 코드 결함·검사/문서 불일치·환경·흔들림·판정 불가로 나눠 해당 원인을 고친다. 같은 방식의 수정은 3회 이내, 진전이 없으면 더 일찍 자율 심층 분석으로 전환한다. 실패 관찰·가설·수정 결과 대조 → 원인 조사/가설 구분 실험 → 근거 있는 다른 전략과 관찰 방법 기록 → 전체 예산 안에서 계속한다. 3회는 자동 실패나 사람 질문 기준이 아니다. 이름만 바꾼 같은 조치·검사 약화(대상 축소·재실행으로 통과 만들기 포함)는 새 전략이 아니다. 제품/환경 실패·워커 시작 실패·불완전 결과·흔들림·통합 실패를 구분해 복구한다. 세션 교체·실패 분류·태스크 분할·하네스 변경에도 누적 시도·분석·전략·전체 사용 예산을 초기화하지 않는다. 부모·자식·대기·복구·통합·종료/결과 회수 여유를 포함한 집행 가능한 전체 시간 상한을 관리한다. 토큰/비용 미측정은 미확인이며 정확한 잔여 비용을 주장하지 않는다. 새 사용자 결정·권한이 필요한 작업과 후행만 차단하고 독립 작업을 계속한다. 권한을 우회하거나 수용 기준을 낮추지 않는다. 질문 파일·사람 응답 대기·수동 재개 요청으로 끝내지 않는다. 사용자가 자동 재시작을 합의하지 않았으면 부모(조정) 세션이 끊길 때 자동 재시작·이어 실행 없이 중단한다. 사용자가 다시 부르면 기록과 워커 실제 상태를 확인해 재개한다. 전체 예산 소진·필수 권한 부재와 대안 없음·분석 후 실행 경로 없음일 때만 근거를 남기고 변경·실패 증거·시도를 보존해 최종 미완료로 종료한다. STATE·LOG와 최종 보고에 남은 범위·차단 원인·잔여 예산·재개 명령/조건을 기록한다. ## 완료 증거와 연결 바꾼 실행·재개 방법을 실제로 확인하고 영향 받은 검사와 필요한 통합 검증을 수행한다. 관찰 결과·적용된 운영 변경·보존한 상태·미검증 한계를 보고한다. 세팅/운영 문서만 요청하면 그 범위에서 끝낸다. 실행 중 조정이나 실행 요청이면 갱신 뒤 원래 작업을 재개해 구현·검증·복구·완료/최종 미완료 보고까지 책임진다. 코드 작성·종료 코드 0·테스트 0건·미활성·미실행을 실제 수용 기준 충족으로 대신하지 않는다. ## 환경 참고 현재 호스트의 실제 차이가 관련될 때만 읽는다. - [Claude Code](references/claude-code.md) - [Codex](references/codex.md) - Orca 실행을 조정할 때: [Orca](../loop-setup/references/orca.md)