# task-2553+43 — STEP 3: runtime checkpoint operationalization 후보 정리 (회장 GO, 코드/파일 자동화)

> **Lv**: Lv.4 — +31 checkpoint → ANU turn-boundary 자동 read-only sweep 운영 결선 후보(read-only only). **Executor**: dev7-team 이참나 (key a999e2ea4c06d2fb) 1회 한정. **TTL**: 2.5h.
> **상태**: 회장 3단계 지시 Step 3. write/merge/cron 등록·제거 0 — read-only 자동 감지 경로만 제안. **callback: 정정 표준 (a) MANDATORY.**
> **선행**: +31 `anu_v3/runtime_reconcile_checkpoint.py` + `runtime_reconcile_checkpoint_recovery_layer.py`(byte-0). **병렬**: +42(Step 2 adoption 준비) — expected_files disjoint.

---

## 1. 목표 (회장 verbatim)

+31 checkpoint가 ANU turn-boundary에서 자동 read-only sweep으로 돌 수 있도록 운영 결선 후보를 정리하라. 단, write/merge/cron 등록·제거 없이 read-only 자동 감지 경로만 제안하라.

## 2. 원칙 (회장 verbatim)

문서화만 금지 코드/파일 자동화 기준 / 병렬 가능하면 병렬 / 각 track 은 ANU-Codex loop 로 자동 수렴 / 회장은 최종 decision 만 / Critical7·권한확대·forbidden target·unresolved HIGH/CRITICAL·cross-track contamination 이면 HOLD.

## 3. 구현 방향 (코드/파일 자동화 — 문서-only 아님)

1. turn-boundary sweep 후보 모듈(신규 `anu_v3/checkpoint_turn_boundary_sweep.py`): +31 `runtime_reconcile_checkpoint.py`·recovery layer 를 **read-only 소비**하여, ANU turn boundary 마다 호출 가능한 **순수 read-only 감지 함수**(checkpoint state 읽기→drift/stale/recovery 후보 enumeration 반환). **write 0·cron register/remove 0·merge 0·side-effect 0** (pure function, idempotent).
2. operational wiring 후보 enumeration: ANU turn-boundary 에 sweep 을 결선할 수 있는 후보 hook point 를 **기계가독 JSON** 으로 산출(각 후보 = 호출지점·read-only 보장·side-effect 0 증명·conflict·risk tier). 실 결선 적용 0.
3. schema/fixture: sweep 출력 + wiring-candidate schema + fixture.
4. regression: sweep 정상 감지 / +31 checkpoint·recovery byte-0 / **write·cron·merge·PR side-effect 0 정적+동적 검증** / idempotent(N회 호출 동일) / callback·collector 경로 무접촉.
5. decision/result JSON.

## 4. expected_files allowlist (이 외 write 0)

`anu_v3/checkpoint_turn_boundary_sweep.py` · `schemas/checkpoint_turn_boundary_sweep.schema.json` · `tests/regression/test_checkpoint_turn_boundary_sweep_2553plus43.py` · `memory/fixtures/task-2553+43.*` · `memory/events/task-2553+43.{decision,result}.json` · `memory/reports/task-2553+43.md` · `memory/events/task-2553+43.wiring-candidates.json`. runtime_reconcile_checkpoint.py·recovery layer·policy_profile_engine.py·parallel_batch_coordinator.py·callback/collector 경로·+22~+42 원본 무변.

## 5. 금지 (회장 verbatim — D-SPEC-EXACTNESS 원문 박제)

- write
- merge
- cron 등록·제거
- 실 운영 결선 적용(sweep 을 실제 turn-boundary 에 wire)
- callback/collector 경로 수정
- PR/branch/main write
- credential/OWNER PAT 조작
- callback mandatory rule 약화
- fallback safety path 제거
- runtime checkpoint를 primary callback 대체물로 격상
- batch coordinator가 closeout/merge를 자동 확정
- cross-track contamination

추가 scope: runtime_reconcile_checkpoint.py·recovery layer·policy_profile_engine.py·parallel_batch_coordinator.py·frozen anchor(anu_delegation_completion_callback.py 83b3e307…·durable v1)·+22~+42 원본 무변. live `/home/jay/workspace` git tracked HEAD/branch/ref(`task/task-2553p1-f1-clean-replacement` `20456b5f`) 전후 assertEqual(task-2553+43.*·신규 anu_v3/schemas/tests=untracked). 실 결선·write·cron·merge 0(read-only 감지 경로 후보 제안 only; 실 운영 결선은 본 task 후 별도 회장 GO).

## 6. HOLD_FOR_CHAIR (회장 verbatim)

Critical7 / 권한확대 / forbidden target / unresolved HIGH·CRITICAL / cross-track contamination. + +31 checkpoint·recovery byte-0 깨짐 / sweep 이 write·cron·merge side-effect 불가피 / callback·collector 경로 변경 위험 시.

## 7. 완료 후 보고 (consolidated 입력 — 단독·중간 0)

`memory/events/task-2553+43.result.json`: Step 3 PASS/HOLD · sweep 모듈 위치 · wiring-candidate 요약 · +31 read-only 소비 증거 · side-effect 0(write/cron/merge) 정적+동적 증거 · idempotent 증거 · callback/collector 무접촉 · regression · Codex audit · ANU-Codex adjudication · contamination · HOLD. batch consolidated 통합은 ANU 사후.

## 8. callback (a) — 정정 표준 MANDATORY (+32 복원·+37 wired, NO-CRON 불가)

executor 작업 **완료 직후 ANU 에 normal completion callback cron 발사(MANDATORY)** + ANU dispatch 시 fallback 등록. 4-tuple={task-2553+43, dispatch_cron, **normal_collector_cron(필수)**, fallback_cron}. callback 등록/발사=외부 cron tooling(cokacdir), frozen 무접촉, 금지 §5 "cron 등록·제거"(=sweep 모듈/checkpoint 가 임의 cron 조작)와 별개의 필수 종료신호. ANU 1회 위임=upstream 완료, executor 자기작업중 신규 dispatch·delegation 0.

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

batch plan(§3§4) → Codex lint → 9-R → re-lint → ANU 1회 위임 → sweep 모듈+schema+fixture+regression → post-result audit → adjudication → result/decision → **완료 직후 normal completion callback cron 발사(MANDATORY §8)**. §6 트리거만 회장 보고, 그외 자동 수렴. 9-R 이 본문에 우선.

## 10. 9-R — Codex lint 반영 (Codex HIGH 1건 → 9-R.1 자동 수렴)

### 9-R.1 (HIGH §8 ↔ §1/§3.1/§3.4/§5 "side-effect 0·cron 0" 충돌) — 2-layer 분리
Codex 적발: §8 normal completion callback cron 발사가 §1/§3 "순수 read-only·side-effect 0"·§5 "cron 등록·제거 금지"·§3.4 regression "write·cron·merge·PR side-effect 0 정적+동적"과 표면 충돌. **해소(회장 +29/+30/+31→+32 직접 정정 doctrine 적용, ★★★ executor completion callback MANDATORY)**:

- **Layer A — deliverable module 경계 (§1/§3/§4/§5 대상)**: 본 task 의 산출 모듈(`checkpoint_turn_boundary_sweep.py`)은 **순수 read-only pure function** — checkpoint state 읽기→enumeration 반환만. write·cron register/remove·merge·PR **side-effect 0**. §3.4 regression(정적+동적)은 **이 sweep 함수·모듈의 무부작용·idempotent** 를 증명한다. "cron 등록·제거 금지"·"실 운영 결선 0"는 **이 산출 모듈의 행위 범위**를 구속한다.
- **Layer B — executor process lifecycle (§8 대상)**: §8 normal completion callback 은 executor 가 **작업 완료 후** 외부 cron tooling(cokacdir)으로 발사하는 **프로세스 종료 신호**이다. sweep 모듈이 호출하는 cron 이 아니며 sweep 함수의 side-effect 도 아니다. 회장 정정 verbatim: "NO-CRON 변형은 registry/checkpoint 가 임의의 신규 cron 을 추가/제거하지 않는다는 뜻이지, executor completion callback 금지가 아니다. 그것은 ANU lifecycle 의 필수 완료 신호다."

→ 두 layer 는 직교. §5 "cron 등록·제거 금지"=sweep 모듈/checkpoint 가 자체 로직으로 임의 cron 조작 금지(Layer A — 정적+동적 검증 대상). §8=executor 종료 신호(Layer B, MANDATORY, 외부 tooling). regression 은 Layer A 의 sweep 모듈 side-effect 0·idempotent·+31 byte-0 만 증명하면 충분(executor 의 §8 발사는 모듈 검증 대상 아님). 이로써 §8↔§1/§3/§5 gap 해소. CRITICAL0. 9-R 이 본문에 우선. Codex re-lint GO_READY 시 ANU 1회 위임.

## 11. task-2553 계열

+31 checkpoint(NO-CRON runtime reconcile) / +37 cancel-on-success wired / +38~+41 4트랙 / +42 Step 2 adoption 준비 / **+43(본건 Step 3)=runtime checkpoint operationalization 후보(read-only)** / consolidated = Step 1(12:05 sweep)+2+3 settle 후 ANU.
