---
task_id: task-2509+1
type: plan
scope: task
created: 2026-05-08
updated: 2026-05-08
status: completed
---

# 계획서: task-2509+1

**task**: task-2509+1
**목표**: PR #58에서 드러난 Gemini quota/unavailable 상황을 명시적으로 코드화한다. `review_gate_passed` + `fallback_review_passed` 구조로 자동 머지 조건을 보강해 Gemini 미가용 시에도 결정론적 fallback 8조건 검사로 안전 머지를 가능하게 한다.
**승인**: 회장 2026-05-08 "PR #58 fallback assumption 코드화"
**근거**: `memory/tasks/task-2509+1.md` (회장 직접 명령) + `memory/feedback/feedback_critical_escalation_only_260508.md`

---

## 목표

`utils/merge_queue_executor.py`를 보강하여 다음 7건을 코드로 박제한다:

1. `review_gate_passed` 판정 도입 (Gemini OK ∨ Gemini Unavailable + fallback PASS)
2. Gemini 상태 enum 7종 (`GEMINI_COMPLETED` ~ `GEMINI_SCOPE_EXPANSION`)
3. `fallback_review_passed` 8조건 검증 함수
4. HIGH_CORE risk level 파일 4종 + 강화 fallback (static risky pattern scan)
5. non-dry-run 시 smoke_command 미정의 → BLOCK
6. 후행 PR stale 재검증 7개 신규 항목 (BEHIND, conflict, diff 변동, expected_files 유지, forbidden, gemini stale, CI 재실행)
7. audit JSON 7 신규 필드 (`gemini_status`, `fallback_review_used`, `fallback_review_passed`, `risk_level`, `review_gate_passed`, `final_decision`, `critical_escalation`)

회귀 테스트 12 케이스 PASS (★ #2 = PR #58 fixture 재현).

## 범위

### 포함
- `utils/merge_queue_executor.py` 보강 (인터페이스 확장만, breaking change 없음)
- `tests/regression/test_merge_queue_executor_review_gate_2509p1.py` 신규 12 케이스
- CLI JSON 출력에 신규 필드 7종 추가
- 기존 12 회귀 테스트 (`test_merge_queue_executor_2509.py`) 회귀 0건

### 제외 (다음 페이즈 이후)
- task-2510 replacement_pr_runner 본체 (hook만 박제)
- task-2511 auto_gemini_triage 본체
- task-2512 post_merge_smoke_runner 본체
- task-2513 critical_escalation_reporter 본체
- 정책 문서 단독 작성 (회장 §6 금지)

## 위임 계획

- **Phase 1 (병렬)**:
  - **루 (Lugh, 백엔드)**: `utils/merge_queue_executor.py` 보강 (Gemini enum / fallback_review / risk_level / smoke gate / recheck 강화 / audit 필드)
  - **모리건 (Morrigan, 테스터)**: `tests/regression/test_merge_queue_executor_review_gate_2509p1.py` 신규 12 케이스 작성 (루의 새 인터페이스 명세 기반)
- **Phase 2 (직렬)**:
  - 다그다(팀장): 통합 검증 — 12 신규 + 16 기존 회귀 테스트 PASS, dry-run CLI로 PR #58 fixture 재현
- **Phase 3 (직렬)**:
  - 다그다(팀장): G3 독립 검증 + 보고서 작성 → finish-task.sh

## 검증 기준

- `pytest tests/regression/test_merge_queue_executor_review_gate_2509p1.py -v` → 12/12 PASS
- `pytest tests/regression/test_merge_queue_executor_2509.py -v` → 14/14 PASS (회귀 0건)
- `python3 utils/merge_queue_executor.py --pr 58 --dry-run --task-file <fixture>` → 신규 필드 7종 포함된 JSON
- `python3 scripts/codex_gate_check.py --task-id task-2509+1` → PASS
- `python3 scripts/g3_independent_verifier.py --task-id task-2509+1` → PASS
