# task-2604 — Track A: CANCEL_ON_SUCCESS_LIVE_ADOPTION (회장 5-track 배치, 독립 task·코드/파일)

> **Lv**: Lv.4. **goal_type**: cancel_on_success_live_adoption. **Executor**: dev1-team 헤르메스 (key c38fb9955616e24d) 1회 한정. **TTL**: 3h. **상태**: 회장 5-track 병렬 Track A (preflight SAFE_PARALLEL). 문서-only 금지. **callback: 반드시 독립 ANU key c119085addb0f8b7(executor self key c38fb9955616e24d 절대 금지·+49 코드 정본·위반 시 CallbackRegistrationBlocked/SELF_COLLECTOR_FORBIDDEN).**
> **preflight 정본**: `memory/events/task-2604-multitrack-preflight-decision_260519.json`. **task-2553 +N 아님 — 독립 task** (feedback-stop-plus-n-separate-rounds).

## 1. 목표 (회장 verbatim)

normal callback durable-success 이후 bound fallback을 live verifier 5조건으로 안전 확인하고, 실제 cancel/remove 또는 명시적 NON_BLOCKING/CANCEL_FAILED_CLASSIFIED로 처리한다.

## 2. 필수 (회장 verbatim)

bound fallback 식별, live verifier 5조건, unrelated cron 제거 방지, cancel-audit JSON, normal success decouple, remove 실패 안전 분류.

## 3. 구현 방향 (read-only consume — 기존 모듈 무수정·byte-0)

신규 orchestration `anu_v3/cancel_on_success_live_adoption_2604.py` 가 기존 frozen 모듈을 **read-only import만** 하여 결선: `utils/completion_callback_fallback_cancel.py`(+9a cancel·CancelClassification) · `utils/live_cron_state_verifier.py`(+23 5조건 AND) · `utils/completion_callback_operational_cancel_seam.py`(+23 seam) · `anu_v3/cancel_on_success_live_wiring.py`(+45 durable lookup) · `anu_v3/cancel_on_success_live_e2e.py`(+48) · `anu_v3/callback_4tuple_registry.py`(+44) · `callback_4tuple_index.jsonl`(durable). durable registry에서 normal-callback durable-success 1건 식별 → bound fallback_callback_cron_id 안전 lookup(LOOKUP_VERIFIED) → live verifier 5조건 AND → ① 통과 시 실제 cancel/remove(unrelated cron 제거 방지: task_id+cron_id 4-tuple ownership 일치 검증) ② remove 실패 시 `CANCEL_FAILED_CLASSIFIED` ③ verifier 미충족 시 registry `NON_BLOCKING` 명시 마크(+58 schema 정합). normal success 판정은 cancel 결과와 **decouple**(cancel 실패가 normal success 무효화 0). 전 결과 `task-2604.cancel-adoption-audit.json`(다중 후보 보장 기록).

## 4. expected_files allowlist (DISJOINT — Track B/C/D/E 와 0 overlap, additive only)

`anu_v3/cancel_on_success_live_adoption_2604.py` · `scripts/run_cancel_on_success_live_adoption_2604.py`(실 entrypoint) · `schemas/cancel_on_success_live_adoption_2604.schema.json` · `memory/events/task-2604.cancel-adoption-audit.json` · `tests/regression/test_cancel_on_success_live_adoption_2604.py`(mock-only FAIL) · `memory/events/task-2604.{decision,result}.json` · `memory/reports/task-2604.md`. 이 외 write 0. **`memory/events/callback_4tuple_index.jsonl` 는 track 소유 expected_file 아님 — +53/+54 소관 mechanism 으로만 append 되는 공유 durable 인프라(track 직접 write 0·read-only consume). 기존 task-2553 전 산출물·+9a/+23/+25/+44~+55·frozen anchor byte-0(read-only consume)**. git HEAD·branch 전후 EQUAL.

## 5. 금지 (회장 verbatim 공통)

기존 task-2553 산출물 변조 · unrelated cron 제거 · PR/branch/main write · merge · credential 조작 · fallback safety path 제거 · fallback/dead-man/fixed-time 진행 트리거 · executor self-callback/self-collector/self-adjudication/self-dispatch · ANU authoritative 약화 · 문서-only 완료(검증 스크립트+regression 실 entrypoint·mock-only FAIL).

## 6. HOLD_FOR_CHAIR (회장 verbatim 공통)

Critical7 · Codex unresolved HIGH/CRITICAL · 기존 산출물 수정 필요 · credential/permission expansion · self-* · fallback/dead-man/fixed-time 진행트리거 · ANU authoritative 약화 · 문서-only 시도 · expected_files overlap · shared invariant 파손.

## 7. callback (a) — 독립 ANU key 강제

완료 직후 normal completion callback cron **ANU key c119085addb0f8b7로만 발사** → 독립 ANU collector. executor self key 절대 금지(+49 코드 정본). 회수·검증·Codex·adjudication=독립 ANU 세션. ANU fallback=ANU key·안전망 한정·진행 트리거 아님. next_action=normal-callback durable-success event. Track B acceptance가 본 track durable-success EVENT를 소비(event-driven). Track E는 {A,D} all-settled 후 conflict 재판정.

## 8. 9-R (확정 — 본 절 본문 우선)

ANU-Codex lint 1차 = NEEDS_9R (callback_4tuple_index.jsonl 이 Track B 와 allowlist overlap = DISJOINT 위반 HIGH). **9-R.1 해소**: callback_4tuple_index.jsonl 은 +54 9-R.1 선례와 동일 — track 소유 expected_file 아님, +53/+54 소관 mechanism 으로만 append 되는 공유 durable 인프라(track 직접 write 0·read-only consume). §4 에서 allowlist 제거·공유 인프라 명시 → A/B/C/D/E expected_files 완전 DISJOINT 회복. **Codex re-lint = GO_READY (HIGH/CRITICAL 0)** · shared invariant 보존(기존 task-2553 산출물 byte-0·callback owner=ANU key·no self-*·fallback≠진행트리거·ANU-only authoritative) · 문서-only 금지(실 entrypoint regression·mock-only FAIL). ANU key 로 dev1 헤르메스 1회 위임.
