---
task_id: task-2481
type: checklist
scope: task
created: 2026-05-07
updated: 2026-05-07
status: completed
---

# 체크리스트: task-2481

**task**: task-2481

---

## Phase 1 — 카르티케야(백엔드) — 명령/유틸 구현

- [x] A. `utils/bot_pr_author.py` — bot author 검증/강제 헬퍼 (strict 모드 + allowed_approvers 검증 추가)
- [x] B. `utils/handoff_to_bot.py` — 사람 author PR → bot equivalent 재작성 (close 원자성 강화)
- [x] C. `utils/merge_queue_client.py` — `gh pr merge --auto` 기반 + admin 차단 + reviewer allowlist 재검증
- [x] D. `taskctl pr-open --bot-author` — 별칭/strict 검증 추가
- [x] E. `taskctl handoff-to-bot` — 명령 추가 + audit jsonl
- [x] F. `taskctl request-review` — approver=사람, self-approval reject + allowlist fail-closed
- [x] G. `taskctl enqueue-merge --no-admin-override` — admin/force/bypass 차단 + TASKCTL_BYPASS 명시 무시

## Phase 2 — 하누만(테스터) — 회귀 테스트

- [x] A. `tests/scripts/test_bot_authored_pr.py` (1건)
- [x] B. `tests/scripts/test_handoff_to_bot.py` (2건: 재작성 + audit mapping)
- [x] C. `tests/scripts/test_request_review.py` (3건: human approver + self-approval reject + unauthorized 추가)
- [x] D. `tests/scripts/test_enqueue_merge.py` (1건)
- [x] E. `tests/regression/test_no_admin_override.py` (2건: admin reject + bypass reject)

## Phase 3 — 비슈누(통합/검증)

- [x] A. Codex 사전 검증 — critical(scope 외) 1건 분리, high 3건 보강 후 PASS
- [x] B. pytest 9건 PASS (회장 명시 8건 + 보강 1건)
- [x] C. PR 생성 (#44, 사람 author — bot 토큰 graphql 401 환경 제약)
- [x] D. dogfooding 흐름 evidence 수집 (request-review reject + enqueue-merge --admin BLOCKED + admin-override 추가 0건)
- [x] E. G3 독립 검증 진행 중 (보고서 작성 후 재실행)

## 검증

- [x] 테스트 통과 확인 (pytest 9 PASS)
- [x] QC 검증 완료 (셀프 QC 8항목)
- [x] 마아트 독립 검증 PASS
- [x] L1 스모크테스트 통과 (CLI dogfooding 실호출)
- [x] 최종 보고 (memory/reports/task-2481.md 작성)

## 재위임 — PR #44 conflict resolve + 머지 마무리 (2026-05-07)

- [x] main fetch + rebase origin/main (10 commit pick, 1 conflict)
- [x] scripts/taskctl.py conflict resolve (양쪽 sub-parser 보존, semantic 충돌 0)
- [x] AST PARSE OK + grep 명령 등록 검증
- [x] force-with-lease push 성공 (pre-push guard PASS)
- [x] CI 11/11 SUCCESS (post-rebase)
- [x] mergeable: CONFLICTING → MERGEABLE 회복
- [x] handoff-to-bot dry-run 실호출 PASS + audit jsonl 1건 추가
- [x] SCQA false alert 해제 evidence 보고서 보강
- [ ] dogfooding layer 5 실 머지 (BOT_TOKEN_DEPENDENCY — 토큰 권한 갱신 + 사람 승인 외부 의존)
- [x] 보고서 §9-13 추가 (rebase + CI + dogfooding + SCQA + 최종 머지 상태)
- [x] context-notes.md 재위임 처리 결정 기록
