# Code Review Reference - REFACTOR > **[IMPLEMENTING AGENT — READ FIRST] Filling in this file is the mandatory final step of implementation.** > The task is NOT complete until every implementation-owned section below is filled in. > Complete the `구현 체크리스트`; the final checklist item is mandatory before saving. > Fill implementation-owned sections, then stop with active files in place and report ready for review. > If implementation is blocked, record the exact blocker, attempted commands/output, and resume condition only in implementation-owned evidence fields. > Do not ask the user directly, present choices, call user-input tools, create control-plane stop files, or classify the next state. > Finalization (`코드리뷰 결과`, log rename, `complete.log`, archive moves, `코드리뷰 전용 체크리스트`) is review-agent-only, even after compaction/resume. > Follow the ownership table at the bottom of this file for which sections you own. ## 개요 date=2026-07-25 task=m-agent-task-runtime-target-selector/05+04_dispatch_integration, plan=0, tag=REFACTOR ## Roadmap Targets - Milestone: `agent-roadmap/phase/automation-runtime-bridge/milestones/agent-task-runtime-target-selector.md` - Milestone link: [Milestone 문서](agent-roadmap/phase/automation-runtime-bridge/milestones/agent-task-runtime-target-selector.md) - Task ids: - `route-pin`: 작업 세대별 최초 route 고정과 재시작 복원 - `context-failover`: 단방향 adapter failover와 논리적 context 이전 - `failure-budget`: target 전환 전후 동일 stage 실패 예산 공유 - `dispatch-integration`: persisted selector decision 기반 최초 실행·resume·failover - Completion mode: check-on-pass ## 이 파일을 읽는 리뷰 에이전트에게 > **[REVIEW AGENT ONLY]** 아래 종결 절차는 코드리뷰 에이전트 전용이다. 구현 에이전트는 이 섹션을 실행하지 않는다. 각 항목의 구현을 실제 소스 파일과 대조하고, `검증 결과` 섹션의 출력이 코드와 일치하는지 확인하세요. 리뷰 완료는 아래 순서까지 끝난 상태를 의미합니다. 1. 판정을 append한다. 2. `CODE_REVIEW-cloud-G09.md` → `code_review_cloud_G09_0.log`, `PLAN-local-G08.md` → `plan_local_G08_0.log`로 아카이브한다. 3. PASS이면 `complete.log` 작성 후 active task 디렉터리를 `agent-task/archive/YYYY/MM/m-agent-task-runtime-target-selector/05+04_dispatch_integration/`로 이동한다. WARN/FAIL이면 code-review skill이 요구하는 다음 filesystem state를 완전히 작성한다. 4. PASS이고 task group이 `m-agent-task-runtime-target-selector`이면 완료 이벤트 메타데이터를 보고한다. roadmap 상태 체크와 `update-roadmap` 호출은 런타임 책임이다. 5. 적용 가능한 `코드리뷰 전용 체크리스트` 항목을 최종 `.log` 위치에서 체크한 뒤 보고한다. --- ## 구현 항목별 완료 여부 | 항목 | 완료 여부 | |------|---------| | REFACTOR-1 Live route source 교체 | [ ] | | REFACTOR-2 Runtime quota probe와 resume/failover state machine | [ ] | | REFACTOR-3 Context, budget과 retry-blocked 소비 | [ ] | | REFACTOR-4 Review recovery와 runtime audit evidence | [ ] | ## 구현 체크리스트 - [ ] worker/review initial invocation과 dry-run이 persisted selector decision을 단일 route source로 사용한다. - [ ] bounded candidate의 runtime quota probe가 target/profile required-cap argv로 실행되고 probe 오류는 `unknown` snapshot으로 decision에 남는다. - [ ] resume은 시간·본문 변경에도 pinned target을 사용하고, 확정된 provider target 불가 또는 명시적 retry eligibility만 transition history와 invocation target을 변경한다. - [ ] cross-adapter invocation이 persisted normalized-output context package를 소비하고 dynamic failover와 기존 cloud promotion 모두 같은 stage 실패 예산을 이어받는다. - [ ] dry-run은 read-only preview이고 retry-blocked는 blocker/budget만 초기화하며 review resume/finalization recovery는 pinned Codex와 독립 budget을 유지한다. - [ ] locator/state/status가 work unit, rule/candidate/reason, quota, transition과 stage budget을 추적하고 통합 테스트가 restart·blocker·독립 drain을 함께 검증한다. - [ ] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다. ## 코드리뷰 전용 체크리스트 > **[REVIEW AGENT ONLY]** 이 체크리스트는 코드리뷰 에이전트만 사용한다. > 구현 에이전트는 이 섹션을 수정하거나 체크하지 않는다. - [ ] `코드리뷰 결과`에 `PASS`, `WARN`, `FAIL` 중 하나의 판정을 append한다. - [ ] 판정과 `차원별 평가`, Required/Suggested/Nit 분류가 서로 일치한다. - [ ] active `CODE_REVIEW-cloud-G09.md`를 `code_review_cloud_G09_0.log`로 아카이브한다. - [ ] active `PLAN-local-G08.md`를 `plan_local_G08_0.log`로 아카이브한다. - [ ] `.gitignore`의 Agent-Ops 관리 block이 `agent-task/**/*.md`와 `agent-task/**/*.log`를 unignore하고 `agent-roadmap/current.md`를 ignore하는지 확인한다. - [ ] PASS이면 `agent-ops/skills/common/code-review/templates/complete-log-template.md` 기준으로 `complete.log`를 작성하고 active `.md` 파일을 남기지 않는다. - [ ] PASS이면 active task 디렉터리 `agent-task/m-agent-task-runtime-target-selector/05+04_dispatch_integration/`를 `agent-task/archive/YYYY/MM/m-agent-task-runtime-target-selector/05+04_dispatch_integration/`로 이동하고 최종 archive 경로에서 이 체크리스트를 갱신한다. - [ ] PASS이고 task group이 `m-agent-task-runtime-target-selector`이면 런타임이 읽을 완료 이벤트 메타데이터를 보고하고, roadmap 수정이나 `update-roadmap` 직접 호출을 하지 않는다. - [ ] PASS split 작업이면 이동 후 빈 active parent `agent-task/m-agent-task-runtime-target-selector/`를 제거하거나, 남은 sibling/file이 있어 유지했다고 확인한다. - [ ] WARN/FAIL이면 code-review skill의 판정에 맞는 다음 filesystem state를 작성하고 `complete.log`를 작성하지 않는다. ## 계획 대비 변경 사항 _구현 에이전트가 계획과 다르게 구현한 부분을 이유와 함께 기록한다._ ## 주요 설계 결정 _구현 에이전트가 주요 설계 결정 사항을 기록한다._ ## 리뷰어를 위한 체크포인트 - runtime probe argv의 canonical target/profile/required caps와 error→unknown이 Go producer 계약과 일치하는가. - dynamic primary의 확정된 provider target 불가만 failover하고, 일반 실패는 same-target recovery로 남으며 기존 cloud promotion은 history/budget에 남는가. - retry-blocked, dry-run, finalization recovery가 generation/history를 손상하거나 quota/failover를 재평가하지 않는가. - locator/state/status/dry-run의 selector evidence가 동일 work unit/transition을 가리키고 독립 branch drain을 보존하는가. ## 검증 결과 ### SelectorDispatcherIntegrationTest 명령: `python3 agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_dispatch.py SelectorDispatcherIntegrationTest -v` _실제 stdout/stderr와 exit code를 기록한다._ ### Selector 전체 회귀 명령: `python3 agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_select_execution_target.py -v` _실제 stdout/stderr와 exit code를 기록한다._ ### BlockerDrainTest 명령: `python3 agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_dispatch.py BlockerDrainTest -v` _실제 stdout/stderr와 exit code를 기록한다._ ### 전체 Python suite 명령: `python3 -m unittest discover -s agent-ops/skills/project/orchestrate-agent-task-loop/tests -p 'test_*.py'` _실제 stdout/stderr와 exit code를 기록한다._ ### py_compile 명령: `python3 -m py_compile agent-ops/skills/project/orchestrate-agent-task-loop/scripts/dispatch.py agent-ops/skills/project/orchestrate-agent-task-loop/scripts/execution_target_policy.py agent-ops/skills/project/orchestrate-agent-task-loop/scripts/select_execution_target.py agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_dispatch.py agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_execution_target_policy.py agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_select_execution_target.py` _실제 stdout/stderr와 exit code를 기록한다._ ### diff check 명령: `git diff --check` _실제 stdout/stderr와 exit code를 기록한다._ --- > **[IMPLEMENTING AGENT — BEFORE SAVING] Have you filled in every implementation-owned section?** > If anything is blank, go back and fill it in before saving this file. > Leave review-agent-only sections unchanged. ## 섹션 소유권 | Section | Owner | Note | |---------|-------|------| | Header comment, 개요, 리뷰 에이전트 지시 | Fixed at stub creation | Implementing agent must not modify or execute these (archive, complete.log, and task-directory archive move are review-agent only) | | Roadmap Targets | Fixed at stub creation from plan when present | Implementing agent must not modify; code-review copies it into `complete.log` as `Roadmap Completion` only on PASS | | Archive Evidence Snapshot | Fixed at stub creation from plan when present | Implementing agent uses it as default prior-loop context; read only the specific archive files cited there when more detail is required | | Agent UI Completion | Mixed | Present only for plan-required agent-ui code work; implementing agent fills actual evidence, review agent applies `구현됨` status/evidence update on PASS and copies the section into `complete.log` | | 구현 항목별 완료 여부 (item names) | Fixed at stub creation | Implementing agent checks `[ ]` → `[x]` only | | 구현 체크리스트 (item text/order) | Fixed at stub creation from plan | Implementing agent checks `[ ]` → `[x]` only | | 코드리뷰 전용 체크리스트 | Review agent only | Implementing agent must not modify or check this section | | 계획 대비 변경 사항, 주요 설계 결정 | Implementing agent | Replace placeholder text with actual content | | 리뷰어를 위한 체크포인트 | Fixed at stub creation | Pre-filled from plan | | 검증 결과 (section headings + commands) | Fixed at stub creation | Implementing agent fills in command output only; command changes require a `계획 대비 변경 사항` entry | | 코드리뷰 결과 | Review agent appends | Not included in stub |