<!-- task=m-agent-task-runtime-target-selector/11+10_unknown_isolation plan=10 tag=REVIEW_REFACTOR -->

# Code Review Reference - REVIEW_REFACTOR

## 개요

date=2026-07-27
task=m-agent-task-runtime-target-selector/11+10_unknown_isolation, plan=10, tag=REVIEW_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:
  - `throughput-policy`: target별 정적 cap 없이 ready task dispatch와 batch quota snapshot 재사용
- Completion mode: check-on-pass

## Archive Evidence Snapshot

- Prior plan: `agent-task/m-agent-task-runtime-target-selector/11+10_unknown_isolation/plan_local_G07_9.log`
- Prior review: `agent-task/m-agent-task-runtime-target-selector/11+10_unknown_isolation/code_review_cloud_G07_9.log`
- Verdict: `FAIL`
- Required: locator durable write와 pending consume 사이 duplicate invoke 창, timeout 또는 `restart_probe_calls=0`로 끝나는 dedicated tests.
- Suggested: 없음
- Nit: 없음
- Affected files: `agent-ops/skills/project/orchestrate-agent-task-loop/scripts/dispatch.py`, `agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_dispatch.py`

## 구현 항목별 완료 여부

| 항목 | 완료 여부 |
|------|---------|
| REVIEW_REFACTOR-1 Locator-first handoff consume | [x] |
| REVIEW_REFACTOR-2 Durable-handoff verification closure | [x] |

## 구현 체크리스트

- [x] matching handoff id를 locator-first consume transaction으로 전환하고 crash/restart에서 기존 locator를 재사용해 duplicate invoke를 막는다.
- [x] retry handoff의 locator write, consume save-fault, commit-before-invoke와 locator-before-consume restart를 종료 가능한 deterministic tests로 교체한다.
- [x] CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다.

## 계획 대비 변경 사항

계획과 다르게 구현한 부분은 없다고 기록됐으나, review는 실제 publication path에서 handoff identity가 연결되지 않음을 확인했다.

## 주요 설계 결정

1. retry context에 `handoff_id`를 추가했다.
2. locator-first consume helper와 restart pre-check를 추가했다.
3. helper-level crash/save-fault tests를 추가했다.

## 검증 결과

- `ThroughputQuotaBatchTest.test_retry_handoff_locator_consume_restart_windows -v`: PASS (1 test).
- `ThroughputQuotaBatchTest.test_retry_handoff_consume_save_fault_preserves_pending -v`: PASS (1 test).
- `ThroughputQuotaBatchTest.test_retry_restart_preserves_handoff_and_consumes_pending -v`: FAIL, `restart_probe_calls=0`.
- `DynamicFailoverBudgetTest ThroughputQuotaBatchTest DispatcherCanonicalFailoverIntegrationTest -v`: 30 tests, 2 failures (`test_retry_evidence_artifact_identity_variants`, `test_retry_restart_preserves_handoff_and_consumes_pending`).
- `BlockerDrainTest -v`: PASS (6 tests).
- full Python suite: 256 tests, 3 failures (ReviewControlTest 1개와 위 ThroughputQuotaBatchTest 2개).
- `py_compile`, `git diff --check`: PASS.

## 코드리뷰 결과

- 종합 판정: FAIL
- 차원별 평가:
  - Correctness: Fail
  - Completeness: Fail
  - Test coverage: Fail
  - API contract: Pass
  - Code quality: Pass
  - Implementation deviation: Fail
  - Verification trust: Fail
  - Spec conformance: Fail
- 발견된 문제:
  - Required — `agent-ops/skills/project/orchestrate-agent-task-loop/scripts/dispatch.py:581-583`, `:3083-3090`, `:4634-4650`: retry context에는 실패한 attempt의 locator만 남고 `invoke()`는 새 locator를 `active_locator`로 저장한다. consume은 두 locator의 문자열 동일성을 요구하므로 실제 restart attempt 뒤에는 pending handoff를 소비하지 못해 crash/restart가 새 worker invoke를 다시 만들 수 있다. stable `handoff_id`를 retry context와 새 locator에 함께 기록하고, locator 저장과 pending consume을 그 identity로 하나의 durable state transition으로 연결하라.
  - Required — `agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_dispatch.py:9401-9532`, `:9726-9761`: locator-first focused test는 helper를 직접 호출할 뿐 실제 `invoke()`의 새 locator 저장 경로를 통과하지 않고, restart test는 현재 `restart_probe_calls=0`으로 실패한다. 실제 locator publication, consume save-fault, process-free restart를 포함해 exactly-once invoke count와 pending rollback을 검증하도록 테스트를 고쳐라.
- 다음 단계: FAIL follow-up을 isolated reassessment로 준비했다.

## 코드리뷰 전용 체크리스트

- [x] `코드리뷰 결과`에 `FAIL` 판정을 append했다.
- [x] 판정과 차원별 평가 및 Required 분류가 일치한다.
- [x] active `CODE_REVIEW-cloud-G07.md`를 `code_review_cloud_G07_10.log`로 아카이브했다.
- [x] active `PLAN-local-G07.md`를 `plan_local_G07_10.log`로 아카이브했다.
- [x] `.gitignore`의 Agent-Ops 관리 block과 task artifact unignore를 확인했다.
- [x] FAIL follow-up active pair를 작성했고 `complete.log`를 만들지 않았다.
