# task-2063 완료 보고서: dispatch.py wake-up 2단계 방식 구현

## 완료일: 2026-04-21

## 변경 요약

### 1. `dispatch.py` — `_wake_up_bot()` 함수 (L1248~1295)
**Before:** systemd 자동 시작에만 의존한 25초 passive polling (메시지 전송 없음)
**After:** 2단계 active wake-up

- **Stage 1** (L1265~1284): `cokacdir --once`로 시스템 메시지 전송하여 봇 세션을 능동적으로 시작
  - 메시지: `[SYSTEM] 세션 준비 중. 다음 메시지에서 작업이 전달됩니다. 이 메시지는 무시하세요.`
  - 3초 후 전송 (get_dispatch_time(3))
  - 에러 핸들링: TimeoutExpired, returncode 실패, 기타 예외 모두 경고 로그 후 Stage 2로 진행
- **Stage 2** (L1286~1294): 15초간 5초 간격 polling (기존 25초 → 15초로 단축)
  - Stage 1에서 세션이 시작되므로 대기 시간 단축 가능

### 2. `prompts/DIRECT-WORKFLOW.md` — 시스템 메시지 무시 규칙 추가
- `## [SYSTEM] 세션 준비 메시지 무시 규칙` 섹션 추가 (L122~131)
- 봇이 wake-up 메시지 수신 시 무시하고 다음 실제 작업 메시지를 대기하도록 지시

### 3. 호출부 (변경 없음)
- `_dispatch_composite()` L2158~2165: 기존 인터페이스 유지 (_wake_up_bot 반환값에 따라 딜레이 조정)
- `dispatch()` L2952~2959: 동일

## 검증 결과
- `python3 -m pytest tests/test_dispatch.py -x` → **181 passed** (36.43s)
- 완료 시그니처 grep 패턴 매칭 확인:
  - `세션 준비 중|SYSTEM.*세션|wake.*stage` @ dispatch.py ✅
  - `세션 준비 중.*무시|SYSTEM.*무시` @ DIRECT-WORKFLOW.md ✅

## 모델 사용 기록
- dev3 팀장 (Opus): 분석/구현/검증 직접 수행 (팀원 불필요한 단일 함수 수정 작업)
