iop/agent-task/m-agent-task-runtime-target-selector/11+10_unknown_isolation/CODE_REVIEW-cloud-G07.md
toki a17bad1fd3 feat: agent-task-runtime-target-selector 완료 및 SDD/로드맵 동기화
- dispatch.py: unknown isolation, selfcheck policy, admission quota, target cap 제거 로직 구현
- select_execution_target.py: 대상 선택器 개선
- test_dispatch.py: 전체 시나리오 테스트 대폭 추가/리팩토링
- test_select_execution_target.py: 신규 테스트 추가
- ROADMAP/PHASE/SDD 마일스톤 업데이트: unknown_isolation 완료, cli-agent-group-grade-routing 종료
- archive: 07~10번 subtask를 archive로 이동
- WORK_LOG 갱신, agent-test/inventory-dev.yaml 동기화
- shared-agent-task-runtime-desktop-agent SDD 신규 생성
2026-07-26 20:48:23 +09:00

12 KiB

Code Review Reference - REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_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-26 task=m-agent-task-runtime-target-selector/11+10_unknown_isolation, plan=6, tag=REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_REFACTOR

Roadmap Targets

  • Milestone: agent-roadmap/phase/automation-runtime-bridge/milestones/agent-task-runtime-target-selector.md
  • Milestone link: Milestone 문서
  • 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_5.log
  • Prior review: agent-task/m-agent-task-runtime-target-selector/11+10_unknown_isolation/code_review_cloud_G07_5.log
  • Verdict: FAIL
  • Required:
    • terminal recovery-limit가 typed blocker evidence를 쓰지 않고 mark_retry_quota_refresh가 evidence 부재를 provider-quota로 기본 처리한다.
    • retry admission이 persisted unused alternate 대신 현재 KST policy candidates를 계산하고 shared snapshot을 모든 worker에 전달하며 retry locator를 actual continuation에 연결하지 않는다.
    • 야간 회귀가 deterministic initial snapshot 없이 실제 quota subprocess를 1회 호출하고 fake runner가 actual worker/escalation 경계를 우회한다.
    • 구현 완료 표, 설계 결정, 계획 대비 변경과 검증 출력이 모두 미작성이다.
  • 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
  • Verification evidence: terminal 4개, throughput 12개, focused 13개와 전체 251개에서 같은 1개가 FAIL했다. BlockerDrainTest 6개, py_compile, git diff --check는 PASS였다.
  • Roadmap carryover: throughput-policy와 SDD S11의 task-local explicit retry, pinned route/history, same-batch quota snapshot, unknown 격리를 유지한다.

이 파일을 읽는 리뷰 에이전트에게

[REVIEW AGENT ONLY] 아래 종결 절차는 코드리뷰 에이전트 전용이다. 구현 에이전트는 이 섹션을 실행하지 않는다.

각 항목의 구현을 실제 소스 파일과 대조하고, 검증 결과 섹션의 출력이 코드와 일치하는지 확인하세요. 리뷰 완료는 아래 순서까지 끝난 상태를 의미합니다.

  1. 판정을 append한다.
  2. CODE_REVIEW-cloud-G07.mdcode_review_cloud_G07_6.log, PLAN-local-G07.mdplan_local_G07_6.log로 아카이브한다.
  3. PASS이면 complete.log 작성 후 active task 디렉터리를 agent-task/archive/YYYY/MM/m-agent-task-runtime-target-selector/11+10_unknown_isolation/로 이동한다. WARN/FAIL이면 code-review skill이 요구하는 다음 filesystem state를 완전히 작성한다.
  4. PASS이고 task group이 m-<milestone-slug>이면 완료 이벤트 메타데이터를 보고한다. roadmap 상태 체크와 update-roadmap 호출은 런타임 책임이다.
  5. 적용 가능한 코드리뷰 전용 체크리스트 항목을 최종 .log 위치에서 체크한 뒤 보고한다.

구현 항목별 완료 여부

항목 완료 여부
REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_REFACTOR-1 Typed terminal evidence와 qualified retry intent [x]
REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_REFACTOR-2 Persisted-unused admission과 continuation commit [x]
REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_REVIEW_REFACTOR-3 Deterministic actual dispatcher evidence와 제출 완결 [x]

구현 체크리스트

  • terminal blocker가 canonical role/failure class/locator/selected/work-unit identity를 typed evidence로 기록하고 qualified complete evidence만 failover intent로 만든다.
  • persisted unused alternate만 batch probe하고 fresh snapshot/locator/context를 pending worker에만 전달해 successful decision commit 뒤 exactly once 소비한다.
  • actual dispatcher→run_worker→run_escalating 회귀에서 KST 경계, external deny, transition/continuation/commit과 정상 sibling 전체 state 불변을 검증하고 focused/전체 suite를 통과한다.
  • CODE_REVIEW-*-G??.md의 구현 에이전트 소유 섹션을 실제 구현 내용과 검증 출력으로 채운다.

코드리뷰 전용 체크리스트

[REVIEW AGENT ONLY] 이 체크리스트는 코드리뷰 에이전트만 사용한다. 구현 에이전트는 이 섹션을 수정하거나 체크하지 않는다.

  • 코드리뷰 결과PASS, WARN, FAIL 중 하나의 판정을 append한다.
  • 판정과 차원별 평가, Required/Suggested/Nit 분류가 서로 일치한다.
  • active CODE_REVIEW-*-G??.mdcode_review_cloud_G07_6.log로 아카이브한다.
  • active PLAN-*-G??.mdplan_local_G07_6.log로 아카이브한다.
  • .gitignore의 Agent-Ops 관리 block이 agent-task/**/*.mdagent-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/11+10_unknown_isolation/agent-task/archive/YYYY/MM/m-agent-task-runtime-target-selector/11+10_unknown_isolation/로 이동하고 최종 archive 경로에서 이 체크리스트를 갱신한다.
  • PASS이고 task group이 m-<milestone-slug>이면 런타임이 읽을 완료 이벤트 메타데이터를 보고하고, 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를 작성하지 않는다.

계획 대비 변경 사항

없음. 활성 plan의 retry state 및 local test 범위 안에서 구현했다.

주요 설계 결정

  • 문자열 blocker 추론과 기본 provider-quota 승격을 제거했다. typed worker evidence가 qualified failure·locator·선택/작업 단위를 모두 보유할 때만 failover intent를 만든다.
  • retry admission은 persisted decision의 아직 사용하지 않은 cloud candidate만 probe하며, persisted normal sibling에는 새 batch snapshot을 전달하지 않는다.
  • retry locator는 run_worker가 decision commit 전에 읽어 run_escalating continuation으로 전달한다.

리뷰어를 위한 체크포인트

  • terminal recovery-limit 두 경로가 normalized last failure와 current decision identity를 typed evidence로 기록하는가.
  • generic/incomplete/mismatched evidence가 failover marker를 만들지 않고 same-target resume으로 남는가.
  • retry admission이 현재 시각 policy가 아니라 persisted unused canonical alternate만 probe하는가.
  • fresh snapshot, locator와 context가 pending worker에만 전달되고 normal sibling의 전체 task state가 불변인가.
  • selector/context/commit 실패 전에는 retry intent가 보존되고 successful commit 뒤 exactly once 소비되는가.
  • actual dispatcher→run_worker→run_escalating 경로가 external invocation을 전부 deny하면서 continuation prompt/locator를 검증하는가.
  • 구현 소유 섹션에 실제 설계 결정과 모든 명령의 원문 stdout/stderr/exit code가 있는가.

검증 결과

Terminal evidence variants

명령: python3 agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_dispatch.py DynamicFailoverBudgetTest ThroughputQuotaBatchTest.test_retry_blocked_scopes_to_blocked_worker_and_refreshes_pinned_alternate -v

원문 결과: Ran 4 tests in 0.071s / OK / exit 0.

Pending snapshot lifecycle

명령: python3 agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_dispatch.py ThroughputQuotaBatchTest -v

원문 결과: Ran 12 tests in 0.172s / OK / exit 0.

Focused retry/throughput

명령: python3 agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_dispatch.py ThroughputQuotaBatchTest SelectorDispatcherIntegrationTest.test_context_budget_and_retry_blocked_lifecycle -v

원문 결과: Ran 13 tests in 0.159s / OK / exit 0.

독립 branch drain

명령: python3 agent-ops/skills/project/orchestrate-agent-task-loop/tests/test_dispatch.py BlockerDrainTest -v

원문 결과: Ran 6 tests in 0.068s / OK / exit 0.

전체 Python suite

명령: python3 -m unittest discover -s agent-ops/skills/project/orchestrate-agent-task-loop/tests -p 'test_*.py'

원문 결과: Ran 251 tests in 14.901s / OK / exit 0.

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/tests/test_dispatch.py

원문 결과: 출력 없음 / exit 0.

diff check

명령: git diff --check

원문 결과: 출력 없음 / exit 0.


[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