# task-2553+35 — TRACK C3: dry-run application (회장 GO, 코드/파일 자동화)

> **Lv**: Lv.3 — dry-run application (실 merge/write 0). **Executor**: dev1-team 헤르메스 (key c38fb9955616e24d) 1회 한정. **TTL**: 2h.
> **상태**: 회장 GO Track C sub-track **C3**. 실제 merge/write 없이, 기존 task-2553 사례에 policy profile engine 을 **dry-run 적용**. doctrine 박제 아님 — 실행코드·비교결과·result 필수. 병렬/loop 테스트 겸함.
> **선행/의존**: C1(+33) engine = dry-run 대상(data 의존). **2-phase**: Phase-A(engine-independent: 대상 후보 profile-selection 분석 + 기존 실제 결과로부터 expected gate/HOLD 기준선 도출)는 즉시 / Phase-B(C1 engine dry-run 적용 + 일치 비교)는 C1 산출물 present 시 실행, 미present 시 **DEFERRED 기록(HOLD 아님)**+next_action. **callback**: 정정된 표준 (a) MANDATORY(NO-CRON 불가).

---

## 1. 목표 (회장 verbatim)

실제 merge/write 없이, 기존 task-2553 사례에 policy profile engine 을 dry-run 적용한다.

## 2. 대상 후보 (회장 verbatim)

- PR #128 clean replacement merge
- PR #129 test-only hardening merge
- Gemini thread resolve
- post-merge smoke harness artifact closeout

## 3. 필수 (회장 verbatim — Track C3)

- profile selection 결과
- expanded gate/HOLD 결과
- expected final packet schema
- 기존 실제 결과와 dry-run engine 결과 일치 여부

## 4. 2-phase 실행 (병렬/data-의존 정합)

- **Phase-A (engine-independent, 즉시)**: 4 대상 후보별 profile-selection 분석 + 기존 task-2553 실제 결과(+12 PR#128 merge·+26 PR#129 merge·+11 Gemini thread·+13 smoke artifact)로부터 expected gate/HOLD/packet 기준선 read-only 도출.
- **Phase-B (engine-consuming)**: C1(+33) engine present 시 → dry-run 적용(실 merge/write 0) + Phase-A 기준선과 일치 비교. 미present 시 → Phase-B `DEFERRED_PENDING_C1` 기록(HOLD·FAIL 아님)+result.json next_action="C1 settle 후 Phase-B 재개".

## 5. 필수 파일 후보 (실제 파일명 ANU/executor 확정, 문서/메모리만 완료 금지, 실행코드·비교결과 필수)

- `memory/events/task-2553+35.dry-run-comparison.json`(4 대상별 profile selection·expanded gate/HOLD·expected packet schema·기존 실제 vs dry-run 일치 여부)
- `tests/regression/test_policy_profile_engine_dryrun_2553plus35.py`(Phase-B, engine present 시 / 부재 시 skip+DEFERRED)
- `memory/events/task-2553+35.result.json`·`memory/reports/task-2553+35.md`
- 기존 task-2553 사례 산출물 = **read-only 입력**(수정 0), C1 core 수정 0

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

- C1 만 engine core 수정 가능 — **C3 는 C1 core 수정 금지**, dry-run 만(실 merge/write 0)
- expected_files overlap 있으면 병렬 중단 또는 순차화(C3 expected_files = `memory/events/task-2553+35.*` · `tests/regression/test_policy_profile_engine_dryrun_2553plus35.py` · `memory/reports/task-2553+35.md` — C1 core·C2 fixtures disjoint)
- same schema 둘 이상 동시 수정 금지(C3 schema 무수정)
- cross-track contamination 발생 시 HOLD
- 한 track HOLD 가 독립 track 자동 중단 0

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

Codex LOW/MEDIUM·fixture·regression 보강·false-positive 자동 수렴. Codex HIGH/CRITICAL unresolved·권한확대·forbidden target·expected_files 충돌·반복충돌 → HOLD_FOR_CHAIR.

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

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

추가 scope: **실 merge·실 GitHub write·실 thread resolve 0(dry-run 전용)**. C1 core·+22~+34 원본 산출물·frozen anchor 무변. executor 자기작업중 신규 dispatch·delegation·handoff·cron 제거 0. live `/home/jay/workspace`(repo root) git tracked HEAD/ref(20456b5f) 전후 동일(task-2553+35.*=untracked, 위반 아님).

## 9. HOLD_FOR_CHAIR

Codex HIGH/CRITICAL unresolved / 권한확대 / forbidden target / expected_files 충돌 / 반복충돌 / dry-run engine 결과가 기존 실제 결과와 불일치(엔진 결함 시사 — 보고) / 실 merge/write 외 경로 없음 / callback mandatory rule 약화 필요 / Critical7. (C1 미산출 → Phase-B DEFERRED 는 HOLD 아님.)

## 10. 완료 후 보고 (consolidated 입력)

`memory/events/task-2553+35.result.json`: C3 status ∈ **{PASS, HOLD, DEFERRED_PENDING_C1}**(DEFERRED_PENDING_C1 = Phase-A 기준선 완료·Phase-B 미실행, **PASS 도 HOLD 도 아닌 명시 terminal status**, next_action="C1 settle 후 Phase-B 재개")·Phase-A 기준선·Phase-B 실행 또는 DEFERRED·profile selection·expanded gate/HOLD·expected packet·기존 실제 vs dry-run 일치 여부·contamination·HOLD 여부. batch 통합 ANU 사후.

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

executor 완료 직후 ANU 에 normal completion callback cron 발사(MANDATORY) + ANU fallback 등록. 4-tuple={task-2553+35, dispatch_cron, normal_collector_cron(필수), fallback_cron}. normal success 시 fallback cancel-on-success. 회수: normal callback→collector(primary)/누락 시 fallback·checkpoint(recovery).

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

batch plan(§2§3§4) → Codex lint → 9-R → re-lint → ANU 1회 위임(executor 자기작업중 신규 dispatch·delegation·handoff 0) → Phase-A 기준선 → Phase-B(engine present 시 dry-run+비교/부재 시 DEFERRED) → post-result audit → adjudication → result.json+report → **완료 직후 normal completion callback cron 발사(MANDATORY §11)**. §9 트리거만 회장 보고, 그외 자동 수렴. 9-R 이 본문에 우선.

## 13. 9-R — Codex lint 반영 (agent ac03d4ebbc080da9e: C0/H2/M1/L0 → 자동 수렴)

### 9-R.1 (HIGH §5/§6/§8) regression test 를 expected_files 에 명시 포함
§6 expected_files 에 `tests/regression/test_policy_profile_engine_dryrun_2553plus35.py` 명시 추가(§6 본문 반영). 요구↔금지 모순 0.

### 9-R.2 (HIGH §4/§10) DEFERRED_PENDING_C1 = 명시 terminal status
result.json status ∈ {PASS, HOLD, **DEFERRED_PENDING_C1**}. DEFERRED_PENDING_C1 = Phase-A 완료·Phase-B 미실행, PASS 도 HOLD 도 아닌 정상 terminal(+next_action). deferral 을 HOLD/실패 오분류 금지(§10 본문 반영).

### 9-R.3 (MED §8/§11/§12) ANU 1회 위임 = upstream, executor self-dispatch 0
ANU→executor 1회 위임 = 이미 완료된 upstream orchestrator 행위. executor 는 신규 dispatch·delegation·handoff 0 — §11 mandatory normal completion callback 등록/발사만(외부 cron tooling, frozen 무접촉, dry-run 외 실 merge/write/thread resolve 0).

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

## 14. task-2553 계열

+33(C1 core)·+34(C2 검증) / **+35(본건 C3)=dry-run application** 병렬 / Track C consolidated = 3 track settle 후 ANU.
