# task-2553+28 — TRACK D: CALLBACK CANCEL-ON-SUCCESS LIVE OBSERVATION FIXTURE 준비 (회장 GO, 코드/파일 자동화, +26 병행 SAFE)

> **Lv**: Lv.3 — 6-step live observation harness (fixture/mock 자동화). **Executor**: dev1-team 헤르메스 (key c38fb9955616e24d) 1회 한정. **TTL**: 1.5h.
> **상태**: 회장 GO 병행 우선순위 D — `task-2553-cancel-on-success-live-verification-contract_260517.json` 발효(+25 operational collector wiring DONE). 본 task = 그 contract 의 **6-step 라이브 관측을 fixture/mock harness 로 사전 구현**(실 cron·실 callback 4-tuple·실 운영 발화 0). md 박제만 금지. **+26 비간섭 SAFE**(실 4-tuple 무접촉·fixture only, expected_files ∅).
> **선행**: +25 산출(operational_collector_wiring·cancel-audit schema·operational-readiness)·+23 seam·+9a 분리모듈·live-verification-contract. **비간섭**: Track A(+27 coordinator closeout) expected_files ∅(callback-observation vs coordinator-closeout 도메인 상이).

---

## 1. 확정 전제 (변경 불가)

- live-verification-contract 6-step: normal collector success → run_operational_cancel_seam(operational=True) → live verifier 5조건 AND PASS → 해당 task fallback cron remove 성공 → fallback 발화 0(schedule_history) → cancel-audit JSON 생성(normal_success_unchanged=true·event_id).
- +25 = `utils/operational_collector_wiring.py` 결선(frozen collector 공개 CollectorResult durable-success 관찰 직후 +23 seam 1회), evidence=mock/격리, DONE post-result audit PASS.

## 2. 목표 (회장 verbatim 의도)

callback cancel-on-success **live observation fixture** 준비: contract 6-step 을 **mock/fixture harness 코드**로 사전 구현 → 향후 실 post-+25 task(예: +26) callback 사이클 도래 시 6-step 을 결정적으로 passive 검증 가능. 문서화만 금지, 코드/파일 자동화 산출물 필수.

## 3. 구현 방향 (코드/파일 자동화 — fixture/mock only)

1. **observation harness**(예: `tests/fixtures/cancel_on_success_observation_harness.py`): FakeCronLister/SpyRemover/격리 FS + subprocess 차단으로 6-step 을 시뮬레이션·assert. 실 cron-list·실 cron-remove·실 schedule_history·실 callback 4-tuple **무접촉**(read-only contract 참조만).
2. **6-step assertion test**(`tests/regression/test_cancel_on_success_live_observation_2553plus28.py`): ①normal success→seam 1회 ②verifier 5조건 AND PASS→remove called ③각 mismatch/SKIP→preserve(remove 0) ④fallback 발화 0(spy) ⑤cancel-audit JSON schema 정합(normal_success_unchanged=true·event_id·5각) ⑥exact-once(동시 2호출→1 invoke·1 no-op, +25 9-R.3 O_EXCL claim 정합) ⑦디커플(cron-remove 실패→normal success 불변).
3. **fixture decision JSON**(`memory/events/task-2553+28.observation-fixture-decision.json`: contract 6-step↔harness 매핑·mock-only 증명·실 운영 무접촉·향후 실 task 적용 가능 boolean).

## 4. 필수 산출

observation harness 코드 / 6-step assertion test / fixture decision JSON / result.json final packet. (전부 mock/fixture — 실 cron 실제 삭제·실 발화 요구 0.)

## 5. 금지 (회장 조건 + scope)

- 실 callback 4-tuple / 실 cron / 실 schedule_history / +26 expected_files·profile·auth·PR #129 접촉
- task-2553+26 artifact 수정 / +22·+24·+25·+27·Track A·B·P·coordinator artifact 수정·인용
- frozen anchor 변경: `utils/anu_delegation_completion_callback.py`(sha 83b3e307…) byte-0 / +25 seam·+23 verifier·+9a 분리모듈 기존 API 무회귀
- production code 변경 / credential·OWNER PAT 변경 / PR #129 merge 관련 write / 실 운영 cron 실제 삭제·실 발화
- cross-track contamination / dev 재가동·신규 dispatch(executor 자기작업중)·branch·commit·push·PR·merge
- live `/home/jay/workspace`(repo root) git tracked HEAD/branch/ref(`task/task-2553p1-f1-clean-replacement` `20456b5f`) 전후 assertEqual(task-2553+28.* marker=git-untracked, 위반 아님)

## 6. HOLD_FOR_CHAIR

contract 6-step harness 매핑 불가 / frozen anchor 변경 필요 / 실 cron·실 4-tuple 접촉 외 경로 없음 / +25 seam·+23 verifier API 무회귀 불가 / Codex HIGH·CRITICAL / ANU-Codex 반복충돌 / cross-track contamination / Critical7.

## 7. 무변경 anchor (byte-0) + 허용 write 화이트리스트

frozen byte-0: `utils/anu_delegation_completion_callback.py` sha `83b3e307c8207c76a3e311c408aab4951373bd317896e51687d3007907b0c3d4` · +25 operational_collector_wiring·+23 seam/verifier·+9a 분리모듈·anu_v3 frozen·+22 profile·+24 verifier·+26·+27 artifact 무변.
**+28 허용 write = 정확히** `tests/fixtures/cancel_on_success_observation_harness.py` · `tests/regression/test_cancel_on_success_live_observation_2553plus28.py` · `memory/events/task-2553+28.observation-fixture-decision.json` · `memory/events/task-2553+28.result.json` · `memory/events/task-2553+28.done`. 그 외 모든 경로(실 cron·실 schedule_history·실 4-tuple·+26·+27·shared·frozen) write 0.

## 8. 완료 후 보고 (consolidated 통합 — 단독·중간 0)

harness 6-step 매핑 결과 / mock-only·실 운영 무접촉 evidence / 향후 실 task 적용 가능 여부 / contamination 0 / HOLD 여부. +26 결과와 함께 batch consolidated summary 통합. result.json final packet.

## 9. ANU-Codex loop + callback (자동, 중간보고 0)

batch plan(§3§4) → Codex lint → ANU refine(9-R) → re-lint → **ANU(orchestrator) 1회 위임**(loop 기계; executor 자기작업중 신규 dispatch·cron·delegation·handoff 0, 필요 시 HOLD_FOR_CHAIR) → harness→assertion test→decision → post-result audit → adjudication → result.json. **callback (a) — +28 fixture-only 변형(실 cron 무접촉 hard 제약 우선)**: fallback callback cron = **ANU 가 dispatch 시 등록**(executor 행위 아님). executor 는 **실 normal-collector cron 자가등록 0**(실 cron 무접촉) — 대신 정상종료 시 `memory/events/task-2553+28.result.json` + `task-2553+28.done` 마커만 산출하고, 회수는 **ANU-registered fallback callback 이 result.json/.done 존재로 정상수렴 판정**(미존재+4신호 시에만 DISPATCH_NOT_RECEIVED). harness 내부 실 callback 등록 0 — mock metadata 만. executor 는 +26·+27·타 track 의 callback·profile·auth·PR#129·실 4-tuple·실 cron artifact 를 read·write·compare·register·인용 0. batch 통합은 executor scope 밖 — **ANU 사후 수행**. §6 트리거만 회장 보고, 그외 LOW/MED·fixture·regression·false-positive 자동 수렴. 9-R 이 본문에 우선.

## 10. 9-R — Codex lint 반영 (agent a4380d152461cc5bc: C0/H2/M2/L1 → 자동 수렴)

### 9-R.1 (HIGH §9/§5, re-lint a572d3146c88007ee) callback (a) = +28 fixture-only 변형(실 cron 무접촉 우선)
fixture-only scope 와 실 normal-collector cron 자가등록이 충돌 → **+28 은 fallback-only 변형**: fallback callback = ANU dispatch 시 등록(executor 행위 아님). **executor 실 normal-collector cron 자가등록 0**(실 cron 무접촉 hard 제약 우선) — 정상종료 시 `memory/events/task-2553+28.result.json`+`task-2553+28.done` 만 산출, 회수는 ANU-registered fallback 이 result.json/.done 존재로 정상수렴 판정. harness 내부 실 callback 등록 0 — mock metadata 만. executor 는 +26·+27·타 track 실 4-tuple/callback/profile/auth/PR#129/실 cron artifact read·write·compare·register·인용 0.

### 9-R.2 (HIGH §3.3/§4/§7/§8) 허용 write 화이트리스트 명시
§7 에 +28 허용 write 4경로(harness·assertion test·observation-fixture-decision.json·result.json) 명시, "fixture/test only" 문구를 그 화이트리스트로 정합. 그 외 모든 경로 write 0(필수 non-fixture 산출 = 화이트리스트 내 명시 경로 한정).

### 9-R.3 (MED §3.1/§5) 격리 = monkeypatch/allowlist 강제
subprocess 차단 + **cron API·callback 등록 entrypoint·live schedule_history·live workspace 경로 monkeypatch/allowlist 차단** 모두 강제(직접 라이브러리 호출·live-path 접근 0). harness 는 격리 FS·Fake/Spy 만.

### 9-R.4 (MED §3.2) O_EXCL claim 충실 emulation 명시
exact-once mock = **명시 claim artifact/key**(event_id 기반 격리 marker, O_EXCL create-if-absent 의미 mirror) + first-winner=1 invoke·second=즉시 no-op outcome 정확 재현. 약한 in-memory mutex 로 대체 불가(+25 9-R.3 정합).

### 9-R.5 (LOW §4/§8/§5) final packet 경로 고정
final packet = 정확히 `memory/events/task-2553+28.result.json` 단독(유일 허용 위치). zero-overlap·untracked 보장 강화.

→ 9-R.1~9-R.5 로 H2+M2+L1 해소. CRITICAL0. 9-R 이 본문에 우선. Codex re-lint GO_READY 시 ANU 1회 위임.
