---
name: verification-before-completion
description: "Use when: .done 파일 생성 전 최종 검증이 필요할 때, 팀원이 완료 보고 전 검증 게이트를 통과해야 할 때"
triggers:
  - "완료 전 검증"
  - "verification-before-completion"
  - "done 생성 전"
  - "완료 검증"
usage: ".done 파일 생성 전 반드시 실행"
---

# Verification Before Completion

## 핵심 원칙

**.done 파일 생성 = 검증 통과의 증거. 통과 전 생성 절대 금지.**

## 4가지 검증 게이트 (예외 없음)

### Gate 1: 런타임 검증 (기능 동작 확인)
- 구현한 기능이 실제로 실행되는가?
- "아마 될 것"은 FAIL. 실행 후 출력/결과를 증거로 첨부해야 PASS

### Gate 2: 테스트 통과 확인
- `python3 /home/jay/workspace/teams/dev1/qc/qc_verify.py --task-id <TASK_ID>` 실행
- PASS 또는 WARN만 허용. FAIL은 수정 후 재실행
- 실행 출력 결과를 보고서에 첨부 필수

### Gate 3: 보고 내용 정확성 (Self-Deception 방지)
- 팀장에게 보고한 내용이 실제 구현과 일치하는가?
- "완료" 표현 사용 전 반드시 재확인
- 구현하지 않은 것을 완료로 보고하는 것은 팀장 기만

### Gate 4: 범위 준수 확인 (scope_check)
- 작업 지시 범위를 벗어난 파일을 변경하지 않았는가?
- 요청하지 않은 리팩터링, 추가 기능, 스타일 변경 여부 확인
- 범위 외 변경이 있으면 팀장에게 보고 후 판단을 받아야 함

### Gate 5: 보안 검증 (보안 관련 변경 시)
- 인증/결제/세션 관련 코드 변경 시, `/owasp-security --quick` 검사 결과 포함
- CRITICAL/HIGH 발견 시 수정 후 재검사 필수
- 참조: `/owasp-security` 스킬 (OWASP Top 10 보안 검사)

## 절대 규칙

1. **4개 Gate 모두 통과해야만 .done 생성 가능**
2. **Gate 실패 = .done 생성 불가**
3. **예외 없음**: "간단한 작업", "이미 검증함", "시간이 없다" 등 어떤 이유도 Gate 스킵 사유가 되지 않는다

## 금지 완료 보고 표현

아래 표현이 떠오르면 Gate를 통과하지 않은 것:
- "아마 작동할 것입니다"
- "보통은 이렇게 하면 됩니다"
- "수동으로 테스트했습니다" (자동화 테스트 증거 없이)
- "분명히 통과할 것입니다"

## 합리화 방지

| 핑계 | 현실 |
|------|------|
| "작은 수정이라 검증 불필요" | 작은 수정도 예상치 못한 회귀를 만든다 |
| "이미 수동으로 확인했다" | 수동 확인은 재현 불가. 자동화 증거가 신뢰의 기준 |
| "테스트가 없어서 검증 불가" | 없으면 만들어야 한다 (TDD 스킬 참조) |
| "나머지는 다른 사람이 확인할 것" | 본인이 완료한 것은 본인이 증명한다 |

---

> TDD 스킬 참조: `tdd-enforcement/SKILL.md`
> QC 규칙 참조: `/home/jay/workspace/teams/shared/QC-RULES.md`
> 버전: v1.0 | 작성자: 브리짓 (프론트엔드) | 작성일: 2026-03-23
