# Backlog — PR #253 chair-accepted fresh MED 3건 (별도 축, PR #253 범위 밖)

출처: 2026-06-25 회장 판단. PR #253 fresh head 2c2c7ba0 Gemini 재리뷰에서 나온 신규 MED 3건을
**chair-accepted non-blocking**으로 처리하고 PR #253에서는 닫지 않기로 결정(추가 override/+13 미승인).
LOOP_BOUNDARY로 Gemini-driven scope creep 차단. **본 backlog는 별도 승인 시에만 착수**(자동 진행 금지).

상태명: `TASK2774P12_PR253_FRESH_MED3_CHAIR_ACCEPTED_NONBLOCKING_PENDING_MERGE_PACKET_ACTIVE_FALSE`
연관 패킷: `memory/reports/pr253_merge_candidate_packet_260625.md`

## BL-#4 — gate_result 자체 None fail-closed design
- 출처 thread: 2026-06-25T12:58:00Z, `dispatch/anu_result_pickup_runner.py`
- Gemini 지적: `run_approved_oneshot_fire` 등 진입부에서 `gate_result`가 None이면 이후
  `_oneshot_wrapper_block` 호출에서 AttributeError 가능. `if gate_result is None: raise ValueError(...)` 권고.
- 회장 판단(미착수 사유): `gate_result=None`까지 수용하는 건 **helper contract 확장**이라 +12(eligibility/reasons
  None-shape) 범위 밖. 또 `ValueError` raise는 "안전 wrapper가 null state에서 죽지 말아야 한다"는 원칙과
  충돌 가능 → 제대로 하려면 **fail-closed block result 설계**가 필요(단순 raise 아님). same-PR micro-fix 부적합.
- 착수 시 설계 포인트: None gate_result에 대해 raise가 아닌 **명시 fail-closed block result**(active=false·argv=None·
  원인 status)로 수렴하는 contract 정의. 호출자 전수 영향 분석 선행.

## BL-#5 — fire_fn non-callable validation
- 출처 thread: 2026-06-25T12:58:01Z, `dispatch/anu_result_pickup_runner.py`
- Gemini 지적: `fire_fn`이 None은 아니나 non-callable이면 이후 TypeError 가능. flag_reader처럼
  callable 검증 후 명시 fail-closed(`FIRE_BLOCKED_NO_FIRE_FN` 계열) 권고.
- 회장 판단(미착수 사유): 단순 1줄처럼 보여도 실제로는 **fire path 계약 문제** — owner-fire / callback launch /
  governor 경계로 번질 수 있어 PR #253의 **금지 경로에 가까움**. 별도 hardening 축.
- 착수 시 설계 포인트: flag_reader INVALID_FLAG_READER(+11) 패턴과 일관된 non-callable fire_fn fail-closed.
  단 fire path 계약·owner-fire 경계 영향 검토 선행.

## BL-#6 — test class naming cleanup (cosmetic)
- 출처 thread: 2026-06-25T12:58:01Z, `tests/regression/test_d2_fire_wiring_2774p8.py`
- Gemini 지적: `Test09_InvalidFlagReader`가 기존 `Test09_BacklogNotProcessed`와 접두사 번호(Test09) 중복.
  `Test16_InvalidFlagReader` 등으로 변경 권고.
- 회장 판단: **cosmetic** — 런타임/안전/CI blocker 아님. merge blocker 아님.
- 착수 시: 테스트 클래스 번호 재정렬(Test09 중복 해소). 기능 영향 0.

## 처리 원칙 (회장 명시)
- 위 3건은 PR #253 merge blocker로 보지 않음.
- thread resolve/dismiss는 **회장/OWNER 영역** — ANU 임의 resolve/dismiss 금지(현재 미처리 상태 유지).
- 본 backlog 착수는 **별도 회장 승인 필요**. 자동 micro-fix/위임 금지.
