# task-2605+2 — Track B HOLD remediation 옵션 A: stage9 real-call 테스트 강도 강화 (회장 정정·AUTO_REMEDIATION_HOLD)

> **Lv**: Lv.3. **goal_type**: hold_remediation_stage9_test_strength. **Executor**: dev6-team 페룬 (key 1e41a2324a3ccdd0) 1회 한정 — task-2605/+1 원 executor. **TTL**: 3h. **분류**: **AUTO_REMEDIATION_HOLD**(Critical7 아님·test-strength gap·회장 판단 대기 없이 ANU-Codex loop 자동 수렴). **상태**: 회장 정정 — task-2605+1 옵션 B → 옵션 A. task-2605+1 SUPERSEDED(옵션 B 구현 baseline 계승). 문서-only 금지. **callback: 반드시 독립 ANU key c119085addb0f8b7(executor self key 1e41a2324a3ccdd0 절대 금지·+49 코드 정본).**
> **HOLD 정본**: `memory/events/task-2605+1.independent-anu-collector.adjudication.json`(Codex 신규 HIGH: stage9 회귀테스트가 select_authoritative_verdict 실 호출 미증명·자기보고 값만 검증·하드코딩 우회 가능).

## 1. baseline (task-2605+1 옵션 B 구현 — 정상·계승)

task-2605+1 이 stage9 를 real entrypoint 로 이미 결선 완료: `scripts/run_operational_pilot_2605.py:843` `_stage9_consolidation()→consolidate_pilot_result()→anu_v3.authoritative_verdict_selector.select_authoritative_verdict(...)` 실 호출(static string 폐기·17/17 PASS·stage1~8 무회귀·pilot dry-run clean·git/shared invariant byte-0). **구현 자체는 정상 — 본 remediation 은 구현 재작성 아님, 테스트 강도만 강화.**

## 2. HOLD 원인 (Codex 신규 HIGH 확정)

`tests/regression/test_operational_pilot_2605.py:286 (test_stage9_consolidation_real_entrypoint_option_b)` 가 `select_authoritative_verdict` 의 실제 호출을 spy/대체/관찰하지 않고 `run['stages']['stage9']` 자기보고 값(문자열/플래그)만 검증 → `consolidate_pilot_result()` 가 동일 dict 를 하드코딩해도 통과 가능. 이전 HIGH(stage9 static-string class) 재발 차단력 부족 = test-strength gap.

## 3. 목표 (회장 verbatim 결정 — 옵션 A)

옵션 A를 진행한다(자동 수렴). stage9 회귀 테스트가 실 entrypoint 호출을 독립 증명하도록 강화한다.

## 4. 필수 remediation (회장 verbatim 1~10)

1. stage9 회귀 테스트에서 `select_authoritative_verdict` 실제 호출을 monkeypatch/spy로 증명한다. 2. consolidated result dict의 자기보고 플래그만 검증하는 방식 금지. 3. `consolidate_pilot_result()`가 stage9 값을 하드코딩해도 통과하는 테스트 구조를 제거한다(spy 미호출 시 FAIL·negative/mutation 검증 포함). 4. stage1~8 byte-equivalent 무회귀 유지. 5. range(1,10) 또는 동등한 9-stage 검증 유지. 6. production write/PR/merge/credential 0 유지. 7. executor self key callback/collector/adjudication/dispatch 0 유지. 8. Codex 재audit에서 HIGH/CRITICAL 0 확인. 9. 그 뒤에만 독립 ANU collector가 durable-success write-back을 수행한다. 10. +54 runtime loop/+55 enactor를 dogfood하고 batch 상태를 갱신한다.

## 5. expected_files allowlist (자기 track deliverable 한정·옵션 B 구현 무회귀)

`tests/regression/test_operational_pilot_2605.py`(stage9 테스트 강도 강화·spy/monkeypatch·자기보고 검증 제거·하드코딩 우회 구조 제거·range(1,10) 유지·stage1~8 byte-equiv 무회귀) · `scripts/run_operational_pilot_2605.py`(옵션 B real-entrypoint 구현 유지 — 테스트 가능성 위한 최소 seam 외 로직 무회귀) · `memory/events/task-2605.pilot-run.json`·`task-2605.execution-result.json`·`task-2605.consolidated-result.json`·`task-2605.result.json`·`task-2605.decision.json`·`memory/reports/task-2605.md`(remediation 반영 갱신) · `memory/events/task-2605+2.{decision,result}.json` · `memory/reports/task-2605+2.md`. 이 외 write 0. **다른 track PASS 산출물(task-2604/2604+1·task-2606/2607/2609)·기존 task-2553 전 산출물(+32~+60 포함) 전부 byte-0·+44~+55·policy_profile_engine·authoritative_verdict_selector·frozen anchor byte-0. callback_4tuple_index.jsonl=track 미소유 공유 인프라(+53/+54 소관)**. git HEAD·branch 전후 EQUAL.

## 6. 금지 (회장 verbatim)

Codex HIGH를 framing gap으로 수용해 OPERATIONAL_PASS 처리 · 자기보고 플래그만 검증 · premature write-back(Codex HIGH/CRITICAL 잔존 시 write-back 0) · 기존 PASS track 산출물 변조 · GitHub write/PR/merge/credential · executor self-callback/self-collector/self-adjudication/self-dispatch(self-chain) · 옵션 B real-entrypoint 구현 회귀 · 문서-only 완료.

## 7. HOLD 처리 (AUTO_REMEDIATION_HOLD doctrine)

본 건은 Critical7 아님 → 재 HOLD 발생 시에도 CHAIR_HOLD 아닌 AUTO_REMEDIATION_HOLD: 독립 ANU collector batch-level adjudication 후 ANU-Codex loop 자동 수렴(회장 개별 확인 대기 없음). 단 Critical7(보안/credential/permission/forbidden path/scope expansion/merge-write) 발견 시에만 HOLD_FOR_CHAIR 즉시 보고.

## 8. callback (a) — 독립 ANU key 강제 + 다운스트림

완료 직후 normal completion callback **ANU key c119085addb0f8b7로만 발사** → 독립 ANU collector 회수·검증·Codex 재audit(spy 실호출 증명·하드코딩 우회 불가 확인)·adjudication. Codex HIGH/CRITICAL 0일 때만 +53 durable-success write-back → +54 event loop → +55 enactor dogfood → all-settled 시 last-settle collector consolidated batch summary. executor self key 1e41a2324a3ccdd0 callback/collector/adjudication/dispatch 절대 금지(+49 코드 정본). ANU fallback=ANU key·안전망 한정·진행 트리거 아님.

## 9. 9-R (확정 — 본 절 본문 우선)

ANU-Codex lint 1차 NEEDS_9R(§5 task-2553 전 산출물 byte-0 명시 부족) → 9-R.1: §5 에 "기존 task-2553 전 산출물(+32~+60 포함) 전부 byte-0" 명시 추가. **Codex re-lint = GO_READY (HIGH/CRITICAL 0)** — 옵션 A 정합(spy/monkeypatch 실 호출 증명·자기보고 검증 제거·하드코딩 우회 구조 제거·negative test) · 옵션 B real-entrypoint 구현 무회귀·stage1~8 byte-equiv 무회귀·range(1,10) 유지 · 자기 deliverable 한정(PASS track+task-2553 전 산출물 byte-0) · production write/PR/merge/credential·self-key·premature write-back 0 · framing-gap 수용 금지 · AUTO_REMEDIATION_HOLD 정합. ANU key 로 dev6 페룬 1회 위임.
