---
description: 태스크 완료 후 자동 검증 워크플로우
---

# 태스크 완료 후 검증 워크플로우

이 워크플로우는 모든 태스크 완료 시 **반드시** 수행해야 하는 검증 단계입니다.

> ⚠️ **중요**: 검증은 단순 빌드/린트 체크가 아닌, **구현된 기능과 UI가 요구사항에 부합하는지**까지 포함합니다.

---

## 1단계: 코드 품질 검증
<% if (hasTurbo) { %>// turbo
<% } %>```bash
<%= runCmd %> typecheck
```

<% if (hasTurbo) { %>// turbo
<% } %>```bash
<% if (lintTool === 'biome') { %>
npx @biomejs/biome check --apply .
<% } else if (lintTool === 'eslint') { %>
npx eslint . --fix
<% } else if (lintTool === 'prettier') { %>
npx prettier --write .
<% } else { %>
<%= runCmd %> lint
<% } %>
```

## 2단계: 빌드 검증
<% if (hasTurbo) { %>// turbo
<% } %>```bash
<%= runCmd %> build
```

<% if (locals.testTypes && locals.testTypes.length > 0) { %>## <%= locals.testTypes.length > 0 ? '3' : '3' %>단계: 테스트 코드 검증
> ⚠️ **필수**: 수정된 기능에 대한 테스트 코드가 없다면 반드시 작성해야 합니다.

<% if (locals.testTypes.includes('unit')) { %>### Unit Test (단위 테스트)
<% if (hasTurbo) { %>// turbo
<% } %>```bash
<%= runCmd %> test
```
<% } %>

<% if (locals.testTypes.includes('e2e')) { %>### E2E Test (엔드투엔드 테스트)
<% if (hasTurbo) { %>// turbo
<% } %>```bash
<%= runCmd %> test:e2e
```
<% } %>
<% } %>

<% if (workspacePackages.length > 0) { %>## <%= (locals.testTypes && locals.testTypes.length > 0) ? '4' : '3' %>단계: 앱별 런타임 검증

<% workspacePackages.forEach(function(pkg) { %>### <%= pkg %> 변경 시
<% if (hasTurbo) { %>// turbo
<% } %>```bash
<%= packageManager === 'pnpm' ? 'pnpm --filter ' + pkg + ' dev' : runCmd + ' --workspace=' + pkg + ' dev' %>
```
- 변경된 화면/기능 동작 확인

<% }); %>
<% } %>## <%= (locals.testTypes && locals.testTypes.length > 0) ? (workspacePackages.length > 0 ? '5' : '4') : (workspacePackages.length > 0 ? '4' : '3') %>단계: 요구사항 충족 검증 ⭐ 핵심

> 💡 **이 단계가 가장 중요합니다.** 코드가 빌드되더라도 요구사항을 충족하지 않으면 태스크 미완료입니다.

### 기능 요구사항 검증
| 검증 항목 | 확인 방법 |
|----------|----------|
| **명세된 기능 동작** | 태스크에 정의된 모든 기능이 실제로 동작하는가? |
| **엣지 케이스 처리** | 빈 값, 잘못된 입력 등 예외 상황 처리가 되는가? |
| **에러 핸들링** | 에러 발생 시 적절한 피드백이 표시되는가? |

### 검증 방법
1. **브라우저 도구 활용** - 실제 화면 캡처 및 동작 테스트
2. **PRD 문서 대조** - `prd/*.md` 파일의 요구사항과 구현 내용 비교
3. **TASK_BREAKDOWN.md 체크** - 완료 기준 항목 하나씩 확인

---

## 검증 결과 처리

### ✅ 모든 검증 통과 시
> **[CRITICAL RULE]** 태스크가 끝날 때마다 반드시 `TASK_BREAKDOWN.md`를 업데이트하여 최신 상태를 유지해야 합니다.
1. `TASK_BREAKDOWN.md`에서 해당 태스크를 `[x]` (완료) 상태로 변경하고, 하위 세부 완료 기준 항목들도 모두 체크합니다.
2. 다음 미완료 태스크로 진행합니다.
### ❌ 검증 실패 시
1. **실패 원인 분석** → 수정 → 재검증
2. 모든 검증 통과 시까지 반복
