# task-2553+42 — STEP 2: profile engine operational adoption 준비 (회장 GO, 코드/파일 자동화)

> **Lv**: Lv.4 — profile engine 실사용 연결 준비(plan+dry-run, 실 adoption 0). **Executor**: dev2-team 오딘 (key fedf78d1d09509f5) 1회 한정. **TTL**: 2.5h.
> **상태**: 회장 3단계 지시 Step 2. +38~+41 settle 후. callback/collector 경로 무접촉. 실 in-place adoption 금지 — plan+conflict+risk+dry-run 까지. **callback: 정정 표준 (a) MANDATORY.**
> **선행**: +38 `anu_v3/dispatch_profile_selection.py`(seam, byte-0) · +39 `anu_v3/coordinator_profile_binding.py`(binding seam, byte-0) · C1 `anu_v3/policy_profile_engine.py`(byte-0). **병렬**: +43(Step 3 checkpoint operationalization) — expected_files disjoint.

---

## 1. 목표 (회장 verbatim)

+38~+41 결과를 바탕으로 profile engine → dispatch selection, batch coordinator ← profile decision output 소비 경로를 실사용 연결할 준비를 하라. 단, callback/collector 경로는 건드리지 말고, 먼저 expected_files·conflict·risk plan을 산출하라.

## 2. 원칙 (회장 verbatim)

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

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

1. adoption planner 모듈(신규 `anu_v3/profile_adoption_planner.py`): +38 seam(`dispatch_profile_selection.py`)·+39 binding seam(`coordinator_profile_binding.py`)·C1 engine 을 **read-only 소비**하여, 실사용 연결 시 touch 될 live dispatch/coordinator 경로 touchpoint 를 **기계가독 enumeration** → adoption plan JSON(`expected_files` allowlist 후보·`conflict` set·`risk` tier(LOW/MED/HIGH)) 산출. seam/engine/coordinator **byte-0**.
2. read-only adoption dry-run: 실제 in-place 연결을 **시뮬레이션만**(실 write/merge/cron/PR 0, callback·collector 경로 무접촉) — adoption 시 예상 diff·conflict·rollback 지점을 산출하되 적용 0.
3. schema/fixture: adoption-plan + dry-run 입출력 schema + fixture.
4. regression: plan 산출 정상 / seam·engine·coordinator byte-0 / callback·collector 경로 무수정 / 실 write·merge·cron·PR 0 / dry-run 부작용 0.
5. decision/result JSON.

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

`anu_v3/profile_adoption_planner.py` · `schemas/profile_adoption_plan.schema.json` · `tests/regression/test_profile_adoption_planner_2553plus42.py` · `memory/fixtures/task-2553+42.*` · `memory/events/task-2553+42.{decision,result}.json` · `memory/reports/task-2553+42.md` · `memory/events/task-2553+42.adoption-plan.json`. policy_profile_engine.py·dispatch_profile_selection.py·coordinator_profile_binding.py·parallel_batch_coordinator.py·기존 dispatch/coordinator tracked 코드·callback/collector 경로·+22~+41 원본 무변.

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

- callback/collector 경로 수정
- 실 in-place adoption(실사용 연결 실행)
- PR/branch/main write
- merge
- cron 등록·제거
- credential/OWNER PAT 조작
- callback mandatory rule 약화
- fallback safety path 제거
- runtime checkpoint를 primary callback 대체물로 격상
- batch coordinator가 closeout/merge를 자동 확정
- cross-track contamination

추가 scope: policy_profile_engine.py(C1 byte-0)·dispatch_profile_selection.py·coordinator_profile_binding.py·parallel_batch_coordinator.py·frozen anchor(anu_delegation_completion_callback.py 83b3e307…·durable v1)·+22~+41 원본 무변. live `/home/jay/workspace` git tracked HEAD/branch/ref(`task/task-2553p1-f1-clean-replacement` `20456b5f`) 전후 assertEqual(task-2553+42.*·신규 anu_v3/schemas/tests=untracked). 실 PR/merge/dispatch/cron 실행 0(plan+dry-run only; 실사용 adoption 은 본 task 후 별도 회장 GO).

## 6. HOLD_FOR_CHAIR (회장 verbatim)

Critical7 / 권한확대 / forbidden target / unresolved HIGH·CRITICAL / cross-track contamination. + seam·engine·coordinator byte-0 깨짐 / callback·collector 경로 변경 위험 / 실 adoption 불가피 판단 시.

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

`memory/events/task-2553+42.result.json`: Step 2 PASS/HOLD · adoption-plan 위치 · expected_files/conflict/risk 요약 · seam/engine/coordinator read-only 증거 · 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+42, dispatch_cron, **normal_collector_cron(필수)**, fallback_cron}. callback 등록/발사=외부 cron tooling(cokacdir), frozen 무접촉, 금지 §5 cron 등록·제거(=registry/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회 위임 → planner+schema+fixture+dry-run+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.2/§4/§5 "callback/collector 무접촉" 충돌) — 2-layer 분리
Codex 적발: §8 normal completion callback cron 발사가 §1/§3/§5 "callback/collector 경로 무접촉·실 in-place adoption 0"과 표면 충돌. **해소(회장 +29/+30/+31→+32 직접 정정 doctrine 적용, ★★★ executor completion callback MANDATORY)**:

- **Layer A — deliverable module 경계 (§1/§3/§4/§5 대상)**: 본 task 의 산출 모듈(`profile_adoption_planner.py`)·dry-run 은 callback/collector **소스 경로를 읽거나 수정하지 않으며**, adoption 을 **실제 적용하지 않는다**(plan+simulate only). "callback/collector 경로 무접촉"·"실 in-place adoption 0"·"cron 등록·제거 금지"는 **이 산출 모듈의 행위·소스 편집 범위**를 구속한다.
- **Layer B — executor process lifecycle (§8 대상)**: §8 normal completion callback 은 executor 가 **작업 완료 후** 외부 cron tooling(cokacdir)으로 발사하는 **프로세스 종료 신호**이다. 이는 산출 모듈의 side-effect 가 아니며 callback/collector **소스 경로 편집도 아니다**. 회장 정정 verbatim: "봇 작업 완료 후 ANU 에게 normal completion callback cron 을 보내는 것은 금지 대상이 아니다. 그것은 ANU lifecycle 의 필수 완료 신호다. NO-CRON 변형은 registry/checkpoint 가 임의의 신규 cron 을 추가/제거하지 않는다는 뜻."

→ 두 layer 는 직교. §5 "cron 등록·제거 금지"=산출 모듈/dry-run 이 자체 로직으로 임의 cron 조작 금지(Layer A). §8=executor 종료 신호(Layer B, MANDATORY). regression 은 Layer A 의 callback/collector 소스 무수정·실 adoption 0·dry-run 부작용 0 만 증명하면 충분(executor 의 §8 발사는 검증 대상 아님). 이로써 §8↔§1/§3/§5 gap 해소. CRITICAL0. 9-R 이 본문에 우선. Codex re-lint GO_READY 시 ANU 1회 위임.

## 11. task-2553 계열

+33 C1 engine / +37 cancel-on-success wired / +38 A seam / +39 B binding / +40 C dry-run / +41 D observation / **+42(본건 Step 2)=profile engine operational adoption 준비** / +43 Step 3 checkpoint operationalization 병렬 / consolidated = Step 1(12:05 sweep)+2+3 settle 후 ANU.
