# task-2553+34 — TRACK C2: 독립 검증 / adversarial fixture (보고서)

**Executor**: dev5-team 마르둑 (key 109fa85250c6d46b, 1회 한정) · **Lv.3** · **상태**: `DEFERRED_PENDING_C1`

## 1. 결론 요약

- **Phase-A (engine-independent): COMPLETE.** 5개 adversarial fixture + Codex audit packet + engine-independent regression 작성·자체검증 완료.
- **Phase-B (engine-consuming): DEFERRED_PENDING_C1.** C1(task-2553+33) policy profile engine core 미산출 → 명시 terminal 연기. **HOLD 아님, FAIL 아님** (task md §3/§8/9-R.2).
- **C2 status = `DEFERRED_PENDING_C1`** (PASS·HOLD 아닌 명시 정상 terminal, `next_action="C1 settle 후 Phase-B 재개"`).
- §8 HOLD 트리거 **미적중**. 회장 보고 불필요(자동 수렴 경로).

## 2. C1 presence probe (Phase-B gate)

| C1 결정 산출물 | 상태 |
|---|---|
| `anu_v3/policy_profile_engine.py` | ABSENT |
| `schemas/policy_profile.schema.json` | ABSENT |
| `memory/events/task-2553+33.result.json` | ABSENT |
| `schemas/goal_request.schema.json` | PRESENT(단, task-2553+17 Track3 기존 산출물 — C1 engine 아님. read-only 구조 참조로만 사용) |

→ C1 decisive 산출물 부재 → Phase-B DEFERRED. 한 track(C1) 미산출이 독립 track(C2) 을 HOLD/실패로 끌어내리지 않음(§3/§5 병렬제한 정합).

## 3. 산출물 (실행 fixture·코드·regression — 문서/메모리만 완료 아님)

- `memory/fixtures/task-2553+34.profile-mismatch.json` — profile 정체성(id/version) 불일치, mismatched body 로 권한확장 시도
- `memory/fixtures/task-2553+34.missing-profile.json` — 미존재 profile, fail-OPEN 유인(부작용 registry 생성 포함)
- `memory/fixtures/task-2553+34.stale-profile.json` — version<요구 / freshness stale(+22 stale-signal 연계), stale 무단 소비 유인
- `memory/fixtures/task-2553+34.forbidden-boundary.json` — frozen anchor·C1 core·frozen coordinator 를 effective_diff 에 주입
- `memory/fixtures/task-2553+34.allow-vs-forbid-conflict.json` — 동일 토큰 `merge_pr` 가 allowed∩forbidden, ALLOW-vs-FORBID 우선순위 충돌(**최고 심각도**, FORBID_DOMINATES_ALLOW 고정)
- `tests/regression/test_policy_profile_engine_adversarial_2553plus34.py` — Phase-A 항상 실행 / Phase-B engine present 시 자동 활성, 부재 시 skip(DEFERRED)
- `memory/events/task-2553+34.codex-audit-packet.json` · `memory/events/task-2553+34.result.json`

regression: **5 passed (Phase-A) / 5 skipped (Phase-B DEFERRED) / 0 failed / 0 diagnostics**.

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

독립 Codex 감사 실행 → 사전 발견 **C1/H1/M1/L1**:

- **CRITICAL**: allow-vs-forbid Phase-B 검증이 약함 — 공존하는 forbidden-path breach 에 가려져 action-axis ALLOW-bias 가 은닉될 수 있음.
- **HIGH**: missing-profile 의 "registry 무변/무생성" 미검증 — 후속 요청용 영속 escalation path 은닉 가능.
- **MED**: mismatch/stale 가 `allowed_actions` 만 검사, `effective_allowed_actions` 등 누수면 미검사.
- **LOW**: fixture 자체는 모두 fail-closed 계약 정상(약점은 enforcement 측).

→ **§6 auto-converge 범위(fixture/regression 보강)** 에서 전건 해소: action-axis precedence 증명(`precedence_rule=='FORBID_DOMINATES_ALLOW'` + conflict 가 path breach 와 독립된 hold 사유), no-side-effect/registry-mutation guard, 전 permission surface sweep 추가. 재실행 clean. **C1 scope 무접촉**. post-resolution **C0/H0/M0** → §8 "Codex HIGH/CRITICAL unresolved" 미적중.

ANU-Codex adjudication: Phase-A = `ADJUDICATED_PASS`, Phase-B = `DEFERRED_PENDING_C1`.

## 5. Scope / contamination

- C1 core·engine schema **수정 0** (read/parse/reference only).
- frozen anchor byte-0 무변(anu_delegation_completion_callback.py 83b3e307… / durable v1 / anu_v3 frozen / parallel_batch_coordinator.py).
- git tracked HEAD/ref `20456b5f83fc039f2fd6f50f4b94095c29b41bfb` 전후 동일. task-2553+34.* 전부 git-untracked → §7/9-R 위반 아님.
- expected_files C1 core·C3 와 disjoint. cross-track contamination none.
- executor 신규 dispatch·delegation·handoff **0** (ANU 1회 위임 = 완료된 upstream; 자기 callback 등록/발사만, 9-R.3).

## 6. callback (§10 MANDATORY, NO-CRON 불가)

작업 완료 직후 ANU normal completion callback cron 발사(외부 cron tooling cokacdir, frozen 무접촉). 4-tuple = {task-2553+34, dispatch_cron, normal_collector_cron(필수), fallback_cron}. callback mandatory rule 약화 0.

## 7. next_action

C1(task-2553+33) settle 시 regression `skipUnless(ENGINE_PRESENT)` 가 Phase-B 자동 활성 → 5 fixture × hardened assertion 으로 실 engine fail-closed 거동 검증 + ANU-Codex 재adjudication. allow-vs-forbid 에서 구조적 결함 노출 시 그때 §8 후보(보고).
