# task-2553+33 — TRACK C1: POLICY_PROFILE_ENGINE core 구현 (회장 GO, 코드/파일 자동화)

> **Lv**: Lv.4 — policy profile engine core. **Executor**: dev6-team 페룬 (key 1e41a2324a3ccdd0) 1회 한정. **TTL**: 2.5h.
> **상태**: 회장 GO Track C(POLICY_PROFILE_ENGINE_GENERALIZATION) sub-track **C1 core**. 회장이 gate/HOLD/allowed/forbidden/completion packet 을 매번 풀어 쓰지 않도록, **goal_type + policy_profile + boundary 만으로 ANU 가 profile 로딩 → gate/HOLD/allowed_actions/forbidden_actions/evidence schema/completion packet schema 자동 산출**. doctrine 박제 아님 — 실행코드·schema·fixture·regression 필수. 병렬/loop 자동작업 테스트 겸함.
> **선행**: +32 executor completion callback mandatory rule(복원·유지). **병렬**: C2(task-2553+34, 독립검증)·C3(task-2553+35, dry-run) — C1 core 수정권은 **C1 단독**. **callback**: 정정된 표준 (a) MANDATORY(NO-CRON 불가).

---

## 1. 목표 (회장 verbatim)

POLICY_PROFILE_ENGINE_GENERALIZATION core: goal_type + policy_profile + boundary 만으로 ANU 가 profile 을 로딩하고, gate / HOLD / allowed_actions / forbidden_actions / evidence schema / completion packet schema 를 자동 산출하게 하라.

## 2. 운영 원칙 (회장 verbatim)

실행 병렬 / 각 track goal 까지 ANU-Codex loop / 판단 batch coordinator 통합 / 회장 최종 decision 만 / 문서화만 금지 코드·파일 필수 / **executor completion callback mandatory rule 유지** / runtime checkpoint 는 recovery layer 로 유지 / batch coordinator 와 연결 가능해야 함.

## 3. 필수 구현 (회장 verbatim — Track C1)

- goal_request schema
- policy_profile schema
- profile loader
- goal_type resolver
- boundary resolver
- gate/HOLD/allowed/forbidden expansion
- completion packet schema resolver
- evidence schema resolver
- decision/result JSON
- regression

## 4. 필수 파일 후보 (실제 파일명 ANU/executor 가 repo 충돌 없게 확정, 문서/메모리만 완료 금지, 실행코드·schema·fixture·regression 필수)

- `anu_v3/policy_profile_engine.py`(loader+goal_type/boundary resolver+gate/HOLD/allowed/forbidden expansion+packet/evidence schema resolver)
- `schemas/goal_request.schema.json`
- `schemas/policy_profile.schema.json`
- `schemas/completion_packet.schema.json`·`schemas/evidence.schema.json` = **resolver 가 참조·검증하는 정적 meta-schema**(per-profile concrete 산출물은 engine 런타임 in-memory/decision JSON 내 표현, 별도 schema 파일 동적 생성·공유 schema mutation 0)
- `tests/regression/test_policy_profile_engine_2553plus33.py`
- `memory/events/task-2553+33.decision.json`·`memory/events/task-2553+33.result.json`
- `memory/reports/task-2553+33.md`
- 기존 단일 profile(`schemas/policy_profiles/test_only_hardening_pr_merge_v1.schema.json`·`memory/policy_profiles/test_only_hardening_pr_merge_v1.json`) = **read-only 입력**(mutation 0, +22 거버넌스)

## 5. 병렬 제한 (회장 verbatim)

- **C1 만 engine core 파일 수정 가능** (C2/C3 는 C1 core 수정 금지)
- expected_files overlap 있으면 병렬 중단 또는 순차화
- same schema 파일을 둘 이상이 동시 수정 금지(engine schema = C1 단독)
- cross-track contamination 발생 시 HOLD
- 한 track 의 HOLD 가 독립 track 을 자동 중단시키지 않음

## 6. 자동 loop (회장 verbatim)

Codex LOW/MEDIUM·fixture 보강·regression 보강·false-positive 해석은 회장에 묻지 말고 ANU-Codex loop 자동 수렴. Codex HIGH/CRITICAL unresolved·권한확대·forbidden target·expected_files 충돌·반복충돌 → HOLD_FOR_CHAIR.

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

- production code 변경
- PR/branch/main write
- merge
- credential/OWNER PAT 조작
- callback mandatory rule 약화
- runtime checkpoint를 primary callback 대체물로 격상
- batch coordinator 원본 파괴
- 문서/메모리만 작성하고 완료 처리

추가 scope: 기존 단일 profile 인스턴스/schema·+22~+32 원본 산출물·frozen anchor(`utils/anu_delegation_completion_callback.py` 83b3e307…·durable v1·`anu_v3/parallel_batch_coordinator.py`) 무변. **기존 anu_v3 tracked 파일 무변, 단 §4 명시 신규 파일(anu_v3/policy_profile_engine.py·schemas/*·tests/*·memory/events|reports/task-2553+33.*) 추가만 허용**(engine=신규 별도 모듈, additive). executor 자기작업중 신규 dispatch·delegation·handoff·cron 제거 0. **§10 normal completion callback cron 등록/발사는 dispatch·delegation·handoff·"cron 제거" 금지 범주가 아닌 필수 종료신호** — 외부 cron tooling(cokacdir) 로만 등록, frozen 코드 무접촉. live `/home/jay/workspace`(repo root) git tracked HEAD/branch/ref(`task/task-2553p1-f1-clean-replacement` `20456b5f`) 전후 assertEqual(task-2553+33.* 및 §4 명시 신규 파일=git-untracked, 위반 아님).

## 8. HOLD_FOR_CHAIR

Codex HIGH/CRITICAL unresolved / 권한확대 / forbidden target / expected_files 충돌 / 반복충돌 / engine 이 기존 단일 profile 의미를 깨뜨림 / batch coordinator 연결 불가 / callback mandatory rule 약화 필요 / frozen anchor mutation 필요 / Critical7.

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

executor 는 `memory/events/task-2553+33.result.json` 에 Track C1 core PASS/HOLD·지원 profile 목록·regression·Codex audit·ANU-Codex adjudication·contamination·HOLD 여부 산출. batch consolidated 통합은 ANU 사후(§13).

## 10. callback (a) — 정정된 표준 MANDATORY (+32 복원 규칙 dogfood, NO-CRON 불가)

executor 는 작업 **완료 직후 ANU 에 normal completion callback cron 발사(MANDATORY)** + ANU 가 dispatch 시 fallback/dead-man 등록. 4-tuple={task-2553+33, dispatch_cron, **normal_collector_cron(필수)**, fallback_cron}. normal success 시 fallback cancel-on-success. 회수: normal callback→ANU collector(primary) / 누락 시에만 fallback·checkpoint(recovery, 대체 아님).

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

batch plan(§3§4) → Codex lint → ANU refine(9-R) → re-lint → **ANU(orchestrator) 1회 위임**(loop 기계; executor 자기작업중 신규 dispatch·delegation·handoff 0) → engine core+schemas+regression → post-result audit → adjudication → result.json+report → **완료 직후 normal completion callback cron 발사(MANDATORY §10)**. §8 트리거만 회장 보고, 그외 자동 수렴. 9-R 이 본문에 우선.

## 12. 9-R — Codex lint 반영 (agent a2d90ea88ab5d5ded: C0/H1/M2/L2 → 자동 수렴)

### 9-R.1 (HIGH §7) "anu_v3 frozen" → 신규 모듈 추가 허용 명시
"anu_v3 frozen" 폐기 → **기존 anu_v3 tracked 파일 무변, §4 명시 신규 파일(anu_v3/policy_profile_engine.py 등) 추가만 허용**. engine=신규 별도 모듈 additive 와 정합(§7 본문 정정 반영).

### 9-R.2 (MED §7/§10/§11) callback cron 등록 carve-out
§10 normal completion callback cron 등록/발사 = dispatch·delegation·handoff·"cron 제거" 금지 범주 **아님** — 회장 정정 규칙상 필수 종료신호. 외부 cron tooling(cokacdir)로만 등록, frozen 코드 무접촉(§7 본문 carve-out 반영).

### 9-R.3 (MED §4) completion_packet/evidence schema = 정적 meta-schema
resolver 가 참조·검증하는 **정적 meta-schema**(per-profile concrete 는 engine 런타임/decision JSON 표현, 동적 schema 파일 생성·공유 schema mutation 0). §4 본문 명시.

### 9-R.4 (LOW §7) "cron 제거 0" 의미 명시
"cron 제거 0" = 기존 cron 삭제 금지. §10 mandatory normal completion callback 등록/발사는 별도 필수행위(과잉일반화 금지).

### 9-R.5 (LOW §5/§7) write surface = §4 정확 파일로 한정
허용 write = §4 명시 정확 파일/경로(anu_v3/policy_profile_engine.py·schemas/{goal_request,policy_profile,completion_packet,evidence}.schema.json·tests/regression/test_policy_profile_engine_2553plus33.py·memory/events|reports/task-2553+33.*) 한정. 그 외 anu_v3/schemas/tests 전역 신규 허용 아님.

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

## 13. task-2553 계열

+32 callback mandatory 복원 / **+33(Track C1)=policy profile engine core** / +34(C2 독립검증)·+35(C3 dry-run) 병렬 / Track C 통합 consolidated = 3 track settle 후 ANU.
