---
task_id: task-2515
type: checklist
scope: task
created: 2026-05-09
updated: 2026-05-09
status: completed
---

# 체크리스트: task-2515

**task**: task-2515

---

## Phase 1 — 루(Lugh): fixture JSON 설계 + e2e harness 본체

- [x] A. tests/e2e/__init__.py + tests/e2e/fixtures/__init__.py 패키지 마커 생성
- [x] B. tests/e2e/fixtures/auto_merge_replay_2515.json 9 시나리오 메타데이터 작성
  - [x] B1. PR55 clean auto merge
  - [x] B2. PR57 false-positive triage (regex/wrapper)
  - [x] B3. PR58 Gemini quota fallback
  - [x] B4. PR64 smoke PASS
  - [x] B5. PR57 contamination → replacement runner
  - [x] B6. PR61 5 unresolved → triage 모두 OUTDATED/CODE_ALREADY_FIXED
  - [x] B7. Critical #7 smoke FAIL synthetic
  - [x] B8. forbidden path synthetic
  - [x] B9. diff contamination replacement failed synthetic
- [x] C. tests/e2e/test_auto_merge_e2e_replay_2515.py 본체 작성
  - [x] C1. fixture loader + ExecutorContext 빌더
  - [x] C2. fake_runner 합성 (forbidden flag assertion 포함)
  - [x] C3. _verify_12_items helper (회장 §1~12 1:1 매핑)
  - [x] C4. 9 pytest test_e2e_pr* functions
  - [x] C5. CLI entrypoint (--pr <N> 옵션)

## Phase 2 — 모리건(Morrigan): 회귀 + 108 assertions 검증

- [x] A. PYTHONPATH=. pytest tests/e2e/test_auto_merge_e2e_replay_2515.py -q → 9 PASS
- [x] B. PYTHONPATH=. pytest tests/regression/ -q → 기존 회귀 보존 (PASS 갯수 동일)
- [x] C. 12 verification 항목별 assertion 매핑 검토 (108 assertions 실재)
- [x] D. forbidden path / admin override / force / rebase 차단 assertion 검토

## Phase 3 — 다그다(팀장): 통합 + 게이트 + 머지

- [x] A. Codex G1 gate check PASS
- [x] B. sanitize gate (PII 0건 확인 — fixture에 합성 데이터만)
- [x] C. micro-commit 단위 커밋 (Phase 1/2 분리)
- [x] D. worktree finish --action pr → Gemini PR 리뷰 대응
- [x] E. G3 독립 검증 PASS
- [x] F. live pilot 후보 1건 보고서 명시

## 검증

- [x] 테스트 통과 확인 (108 assertions PASS)
- [x] QC 검증 완료 (qc_verify.py three_docs_check, scope_check)
- [x] L1 스모크: pytest 실제 실행 + 결과 첨부
- [x] 최종 보고서 SCQA 작성 + finish-task.sh 실행
