# task-2605+2 — Track B HOLD remediation 옵션 A: stage9 real-call 테스트 강도 강화 (완료보고)

> Lv.3 · goal_type=hold_remediation_stage9_test_strength · Executor:
> dev6-team 페룬 (key `1e41a2324a3ccdd0`) 1회 한정 · 분류
> **AUTO_REMEDIATION_HOLD**(Critical7 미해당·ANU-Codex loop 자동 수렴) ·
> spec sha256 `26563d2f…` 일치 확인 후 수행.

## 1. 결과 요약

회장 정정 — task-2605+1 **옵션 B(구현 정상·이미 stage9 real entrypoint
결선 완료) → 옵션 A**. 구현 재작성 아님. 옵션 B real-entrypoint
구현(`_stage9_consolidation → consolidate_pilot_result →
anu_v3.authoritative_verdict_selector.select_authoritative_verdict` 실
호출)을 **byte-equivalent 무회귀로 계승**하고, stage9 회귀 테스트만
spy/mutation 으로 강화했다.

- regression `tests/regression/test_operational_pilot_2605.py` —
  **17 → 23 PASS** (기존 17 전부 무회귀 + 강화 6개 additive).
- 인접 PASS-track/selector regression **81 passed · 0 regression**.
- pilot `--emit` exit=0 · **10/10 checks true** ·
  `auto_chained_9_stage=true` · `ledger_direct_write=0`.

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

HOLD 정본 `memory/events/task-2605+1.independent-anu-collector.
adjudication.json` — `test_stage9_consolidation_real_entrypoint_
option_b` 가 `select_authoritative_verdict` 실 호출을 spy/관찰하지
않고 `run['stages']['stage9']` 자기보고 값만 검증 →
`consolidate_pilot_result()` 가 동일 dict 를 하드코딩해도 통과 가능
(이전 static-string HIGH 재발 차단력 부족 = test-strength gap).

## 3. remediation (회장 verbatim 1~10)

### 3.1 최소 seam (구현 무회귀)

`scripts/run_operational_pilot_2605.py` 에 테스트 가능성용 *최소* seam
`_consolidation_authoritative_seal(avs, records, *, task_id,
anu_keys)` 1점 추가 — 실 selector 단일 호출 지점. 기본(unpatched)
경로는 인자/반환 변형 0 으로 `avs.select_authoritative_verdict` 에
그대로 위임. **stage1~9 byte-equivalent 무회귀**를 seam 도입 전
baseline sha256 캡처 → 도입 후 전수 대조(EQUAL)로 실증.

### 3.2 stage9 회귀 spy/mutation 배터리

1. **`..._real_call_proven_by_spy`** — seam 을 monkeypatch 하여 실
   `avs.select_authoritative_verdict` 위임을 관찰. 실 entrypoint 가
   *진짜 consolidated self-chain 레코드*(`kind=collector_result` ·
   `claimed_origin="independent"`(untrusted) · `collector_key`=executor
   self · `session_is_executor_self=True` · `anu_keys=[c119085…]`)에
   대해 실행됨을 독립 증명. 실 모듈이 claim 무시·`derived_origin`
   재계산(=`ORIGIN_SELF_CHAIN`)·quarantine(`AUTHORITATIVE_VERDICT_
   PENDING`·indep=0·quar≥1·`ok` False) 산출함을 검증. 통합 dict 의
   seal 필드(`verdict`/`classification`/`quarantined_count`/
   `independent_anu_count`)가 **실 seal 에서 파생**됨을 대조 →
   자기보고 플래그만 검증하는 방식 제거(회장 §4.2).
2. **`..._cannot_pass_mutation`** (parametrize ×3) — seam 이 임의
   sentinel `AuthoritativeSelectionResult` 를 반환하도록 변형하면
   통합 dict 가 그 sentinel 값을 그대로 반영해야 통과. **하드코딩이면
   canonical 값이 잔존하여 반드시 FAIL** → 하드코딩 우회 구조 구조적
   제거(회장 §4.3, negative/mutation 검증). PENDING-동형/명백한
   sentinel/AUTHORITATIVE_PASS 3 변형으로 파생 양방향 잠금.
3. **`..._seam_is_on_critical_path_not_dead_code`** — seam 을 예외로
   대체하면 `consolidate_pilot_result` 가 그대로 전파. selector
   무관 하드코딩 shortcut 이면 예외가 삼켜져 통과할 것이므로 차단
   (spy 미호출 시 FAIL 구조).
4. **`..._byte_equivalent_no_regression_and_nine_stage`** — 독립
   `run_pilot()` 2회 stage1~8 byte-equivalent + stage9 default 결정론
   + `range(1,10)` 9-stage 전수 유지(회장 §4.4·§4.5).
5. **`..._self_report_contract_and_real_entrypoint_shape`** — 옵션 B
   계약 계승 보존(자기보고 검증은 *보조*, 권위 증명은 1~3 담당).

### 3.3 하드코딩 제거 실증

하드코딩 시뮬레이션(stage9 canonical dict 고정·selector 미호출) →
mutation 대조(`quarantined_count==4242` 등) 및 spy-call(`len==1`)
assertion 양쪽에서 강화 테스트가 FAIL 함을 경험적으로 확인 → 하드코딩
통과 구조가 구조적으로 제거됨을 실증.

## 4. 조건·금지 준수 (회장 §5/§6)

- read-only · no PR · no merge · no credential · no
  branch/commit/push: **준수**. git HEAD `20456b5f…` 전후 EQUAL ·
  branch `task/task-2553p1-f1-clean-replacement` 불변.
- `callback_4tuple_index.jsonl` = track 미소유 공유 durable 인프라 —
  **byte-0**(runner `_write` allowlist 가드가 거부 · mtime pre-task ·
  세션 write/modify 0). +53/+54 소관.
- `anu_v3/authoritative_verdict_selector.py` **byte-0** (read-only
  consume — seam 은 caller 측 1점, selector 모듈 무수정).
- 기존 task-2553 전 산출물(+32~+60)·다른 PASS track
  (task-2604/2604+1/2606/2607/2609) **byte-0** (세션 write/modify 0 —
  ` M` 잔존 task-2553 reports 는 mtime 05-16~17 pre-task 환경 상태).
- executor self key `1e41a2324a3ccdd0`
  callback/collector/adjudication/dispatch/delegation **0** (+49 코드
  정본). authoritative = 독립 ANU collector(ANU key
  `c119085addb0f8b7`)만.
- Codex HIGH framing-gap 수용 0 · 자기보고만 검증 0 · premature
  write-back 0 · 옵션 B 구현 회귀 0 · 문서-only 0.
- §5 allowlist 외 write **0**.

## 5. subagent usage ledger (회장 §7 — team result 필수)

**subagents_used = [] (미사용 명시).** 단일 executor(dev6-team 페룬)
세션이 seam 추가·테스트 강화·byte-equivalence 검증·산출물 갱신을 직접
수행. 내부 subagent 0회 · executor self
callback/collector/dispatch/delegation 0회.

## 6. 산출물 (§5 allowlist)

- `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`·`.execution-result.json`·
  `.consolidated-result.json`·`.result.json`·`.decision.json`
  (remediation 반영 갱신 — `--emit` allowlist 가드 경유)
- `memory/reports/task-2605.md` (§8 remediation 반영 추가)
- `memory/events/task-2605+2.decision.json`·`.result.json`
- `memory/reports/task-2605+2.md` (본 문서)

## 7. downstream (회장 §8 — 자동 결선)

완료 직후 normal completion callback 을 **독립 ANU key
`c119085addb0f8b7`(chat 6937032012)로만** 발사 (executor self key
`1e41a2324a3ccdd0` 절대 금지·+49 코드 정본). 독립 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 consolidated batch summary. **authoritative = 독립 ANU
only.** 재 HOLD 도 Critical7 아니면 AUTO_REMEDIATION_HOLD(자동 수렴)·
Critical7 만 HOLD_FOR_CHAIR.
