# .done 파일 생성 시점 워크플로우 개선

## 작업 레벨: Lv.2

## 프로젝트
- 시스템 작업 (워크스페이스: `/home/jay/workspace`)

## 미팅 기록
- `/home/jay/workspace/memory/meetings/2026-04-28-done-file-timing.md`

## 기능 개요
봇들이 finish-task.sh를 우회하여 수동 .done을 생성하거나, QC/PR/머지 완료 전에 .done이 생성되는 문제를 해결한다.

## 수정 사항

### 1. DIRECT-WORKFLOW.md 상충 문구 제거
파일: `/home/jay/workspace/prompts/DIRECT-WORKFLOW.md`

**삭제할 부분 (라인 424 부근)**:
```
- **완료 전 반드시 이벤트 파일 생성**: {WORKSPACE_ROOT}/memory/events/{task_id}.done
```
이 문구가 라인 374의 "수동 .done 생성 절대 금지. finish-task.sh만이 유일한 완료 경로"와 상충한다.

**유지/강화할 부분 (라인 374 부근)**:
기존 문구 유지. 추가로 아래 문구를 Step 5(보고서 작성) 바로 뒤에 삽입:
```
★ 보고서 작성 후 즉시 finish-task.sh를 실행하세요. 보고서 작성 ≠ 작업 완료. finish-task.sh 실행 = 작업 완료.
```

### 2. dispatch 프롬프트 강화
파일: `/home/jay/workspace/prompts/team_prompts.py` (또는 프롬프트 생성 관련 파일)

봇에게 전달하는 프롬프트에 아래 2곳에 고정 블록 추가:

**프롬프트 서두 (CRITICAL 섹션)에 추가**:
```
- 완료 선언: finish-task.sh 실행이 유일한 완료 경로. 보고서 작성은 완료가 아님. 수동 .done 생성 절대 금지.
```

**프롬프트 마지막 (세션 종료 안내 전)에 추가**:
```
★ 작업 순서: 보고서 작성 → 즉시 finish-task.sh 실행 → 세션 종료. 수동 .done 생성 시 QC FAIL 처리.
```

### 3. finish-task.sh에 PR 머지 검증 추가
파일: `/home/jay/workspace/scripts/finish-task.sh`

Step 2(머지) 이후, .done 생성 전에 PR 머지 검증 게이트 추가:

```bash
# 2.5. PR 머지 검증 (worktree PR 생성한 경우만)
if [ -n "$PROJECT_PATH" ] && [ -d "$PROJECT_PATH/.git" ]; then
    BRANCH_NAME="task/${TASK_ID}-${TEAM_SHORT}"
    OPEN_PR=$(gh pr list --state open --head "$BRANCH_NAME" --json number --jq length 2>/dev/null || echo "0")
    if [ "$OPEN_PR" -gt 0 ]; then
        echo "[PR-GATE] BLOCKED: PR이 아직 머지되지 않았습니다 (branch: $BRANCH_NAME)"
        exit 1
    fi
fi
```

조건:
- PROJECT_PATH가 있고 .git 존재 시에만 실행
- 해당 task 브랜치의 open PR이 있으면 차단
- PR이 없거나 이미 머지된 경우 통과
- Lv.0-1 (워크트리 미사용, PR 미생성)은 자동 스킵

## affected_files
- `prompts/DIRECT-WORKFLOW.md` (수정 — 상충 문구 삭제 + 강화 문구 추가)
- `prompts/team_prompts.py` (수정 — 프롬프트 서두/마지막 고정 블록 추가)
- `scripts/finish-task.sh` (수정 — PR 머지 검증 게이트 추가)

## 검증 시나리오
1. DIRECT-WORKFLOW.md에서 "완료 전 반드시 이벤트 파일 생성" 문구가 삭제되었는지 grep 확인
2. DIRECT-WORKFLOW.md에서 "finish-task.sh만이 유일한 완료 경로" 문구가 유지되는지 확인
3. team_prompts.py에서 "finish-task.sh 실행이 유일한 완료 경로" 문구가 프롬프트에 포함되는지 확인
4. finish-task.sh에서 PR 머지 검증 게이트가 추가되었는지 grep 확인
5. finish-task.sh 실행 시 PROJECT_PATH 없으면 PR 검증 스킵 확인
6. 기존 테스트 (pytest) 통과