# task-2553+27 — TRACK A: BATCH COORDINATOR +17/+19 CLOSEOUT (회장 GO, 코드/파일 자동화, +26 병행 SAFE)

> **Lv**: Lv.3 — coordinator V0 lifecycle 정식 closeout (code/file 자동화). **Executor**: dev6-team 페룬 (key 1e41a2324a3ccdd0) 1회 한정. **TTL**: 1.5h.
> **상태**: 회장 GO 병행 우선순위 A — +17(coordinator V0 impl, result.json·activation-decision)·+19(ACCEPT/CONVERGED, 옵션 A closeout packet ANU 산출 md). 본 task = 그 lifecycle 을 **코드/파일 자동화 closeout 으로 정식 종결**(finalizer+decision JSON+regression). md 박제만 금지. **+26 비간섭 SAFE**(expected_files ∅, PR#129/profile/auth/callback 4-tuple 무접촉).
> **선행**: +17 산출(`memory/events/task-2553+17.result.json`·`.activation-decision.json`)·+19 산출(`task-2553+19.adjudication-resolution.json`·`.result.json`·`memory/reports/task-2553+19.coordinator-v0-closeout-packet.md`). **후속 대기열**: Track B(coordinator v0 일반화) = 본 A 완료 후 직렬(coordinator code 충돌 가능 → 병행 0).

---

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

- +17 = `anu_v3/parallel_batch_coordinator.py` + `tests/regression/test_parallel_batch_coordinator_2553.py` + durable state `memory/events/task-2553.parallel-batch-state.json`(anu_v3.parallel_batch_state.v1, **회장 수정 durable — revert 0·preserve**).
- +19 = coordinator V0 ACCEPT/CONVERGED, HIGH-4(auditor interpretation stricter than 9-R.2) 회장 옵션 A spec-clarification 으로 RESOLVED, ANU 9-packet closeout md 산출.

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

batch coordinator +17/+19 lifecycle 을 **정식 closeout**: ANU 가 산출한 옵션 A closeout packet(md)을 **코드/파일 자동화 산출물**(closeout finalizer + decision JSON + regression)로 정식 종결. 문서화만 금지.

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

1. **closeout finalizer**(예: `scripts/run_coordinator_v0_closeout.py`): 입력=+17/+19 산출 + parallel-batch-state.json(**read-only**). 동작 = V0 lifecycle 상태가 ACCEPT/CONVERGED·9-packet 충족·HIGH-4 RESOLVED 임을 evidence 로 확인하고 **closeout 마커** `memory/events/task-2553+27.coordinator-v0-closeout.json` 산출(idempotent — 이미 closeout 이면 no-op success). **parallel_batch_coordinator.py 코드·state 파일 mutation 0**(closeout=별도 marker, coordinator code/state 무변).
2. **closeout decision JSON**(`memory/events/task-2553+27.decision.json`: +17/+19 evidence 참조·9-packet 체크·HIGH-4 RESOLVED·idempotent 분기·전후 state sha 동일 증거).
3. **regression**(closeout finalizer 단위: ①정상 closeout→마커 산출·9-packet PASS ②state 파일 무변(sha 전후 동일) ③coordinator code 무변 ④idempotent(이미 closeout→no-op) ⑤+17/+19 evidence 부재 시 HOLD).

## 4. 필수 산출

closeout finalizer 코드 / closeout marker JSON / decision JSON / regression / result.json final packet.

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

- `anu_v3/parallel_batch_coordinator.py` 코드 변경 / `memory/events/task-2553.parallel-batch-state.json` 수정·revert(read-only·preserve)
- +26 expected_files / test_only_hardening_pr_merge_v1 profile / auth / PR #129 / callback 4-tuple 접촉·인용
- task-2553+26 artifact 수정 / +22·+24·+25 artifact 수정·인용
- production code 변경 / credential·OWNER PAT 변경 / PR #129 merge 관련 write
- cross-track contamination / Track B(coordinator 일반화) 선점 / 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+27.* marker=git-untracked, 위반 아님)

## 6. HOLD_FOR_CHAIR

coordinator state 손상 가능성 / +17·+19 evidence 부재·불일치 / 9-packet·HIGH-4 RESOLVED 재확인 실패 / coordinator code·state 수정 필요 / Codex HIGH·CRITICAL / ANU-Codex 반복충돌 / cross-track contamination / Critical7.

## 7. 무변경 anchor (byte-0)

`anu_v3/parallel_batch_coordinator.py`·`memory/events/task-2553.parallel-batch-state.json`·`utils/anu_delegation_completion_callback.py`(sha 83b3e307…)·anu_v3 frozen·+22 profile/runner·+24 verifier·+25 seam·+26 artifact 무변. closeout=별도 untracked marker 만.

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

executor 는 **자기 `memory/events/task-2553+27.result.json` 만 산출**(closeout 결과·state·code 무변 evidence·idempotent 분기·contamination 0·HOLD 여부 포함). +26 결과와의 batch consolidated summary 통합은 **executor scope 밖 — ANU 가 사후 수행**(executor 는 shared batch artifact 무생성·무접촉).

## 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) → closeout→decision→regression → post-result audit → adjudication → result.json. **callback (a)**: fallback callback cron = **ANU 가 dispatch 시 등록**(executor 행위 아님) / normal-collector cron = executor 가 자기 정상종료 직전 **자기 task_id=task-2553+27 전용**으로만 자가등록. executor 는 +26(또는 타 track)의 callback·profile·auth·PR#129 artifact 를 **read·write·compare·register·인용 0**. batch consolidated 통합은 executor scope 밖 — **ANU 가 사후 수행**(executor 는 자기 `result.json` 만 산출, shared batch artifact 무생성). §6 트리거만 회장 보고, 그외 LOW/MED·fixture·regression·false-positive 자동 수렴. 9-R 이 본문에 우선.

## 10. 9-R — Codex lint 반영 (agent ac6fb3393feded450: C1/H2/M2/L0 → 자동 수렴)

### 9-R.1 (CRITICAL §5/§7/§9) callback (a) 행위자·격리 명시
fallback callback = **ANU dispatch 시 등록**(executor 행위 아님). normal-collector cron = executor 가 **자기 task_id=task-2553+27 전용**으로만 자가등록(타 track 4-tuple 무접촉). executor 는 +26·기타 track 의 callback/profile/auth/PR#129 artifact 를 read·write·compare·register·인용 0. shared callback 영역 write 0.

### 9-R.2 (HIGH §8) result.json 단독 — batch 통합은 ANU 사후
executor 산출 = `memory/events/task-2553+27.result.json` 단독. +26 와의 batch consolidated 통합은 executor scope 밖, **ANU 가 사후 수행**. executor 는 shared/batch artifact 무생성·무touch(cross-track contamination 차단).

### 9-R.3 (HIGH §5/§9) +26 artifact 무접촉 명문 규칙
executor 는 +26(및 +22/+24/+25/Track B·P/coordinator)의 어떤 artifact 도 read·write·compare·register·인용 0 — 측면 주석이 아닌 **강제 규칙**(§5 금지에 통합).

### 9-R.4 (MED §3/§4) 전 산출 no-op semantics
idempotent: closeout marker·decision·result 각각 — 이미 존재 시 **deterministically 동일 재생성 또는 보존(byte-stable)**, double-closeout 0, 전후 state sha 동일. 부분 산출 불일치 시 HOLD.

### 9-R.5 (MED §3/§7) 허용 write path 화이트리스트
+27 허용 write = 정확히 `scripts/run_coordinator_v0_closeout.py` · `tests/regression/test_coordinator_v0_closeout_2553plus27.py` · `memory/events/task-2553+27.coordinator-v0-closeout.json` · `memory/events/task-2553+27.decision.json` · `memory/events/task-2553+27.result.json`. 그 외 모든 경로(특히 coordinator code/state·+26·shared) write 0.

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