@kood/claude-code 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/skills/brainstorm/SKILL.md +72 -9
- package/templates/.claude/skills/docs-fetch/CLAUDE.md +3 -0
- package/templates/.claude/skills/docs-fetch/SKILL.md +626 -0
- package/templates/.claude/skills/elon-musk/CLAUDE.md +3 -0
- package/templates/.claude/skills/elon-musk/SKILL.md +620 -0
- package/templates/.claude/skills/prd/SKILL.md +216 -589
- package/templates/.claude/skills/prd/references/ai-native-prd.md +116 -0
- package/templates/.claude/skills/prd/references/anti-patterns.md +82 -0
- package/templates/.claude/skills/prd/references/frameworks.md +216 -0
- package/templates/.claude/skills/prd/references/pm-leaders.md +106 -0
- package/templates/.claude/skills/prd/references/trends-2026.md +157 -0
- package/templates/.claude/skills/research/SKILL.md +260 -0
- package/templates/.claude/skills/research/report-template.md +88 -0
|
@@ -11,410 +11,161 @@ user-invocable: true
|
|
|
11
11
|
|
|
12
12
|
# PRD Skill
|
|
13
13
|
|
|
14
|
-
>
|
|
14
|
+
> Outcome 중심 PRD 생성 (2026 Spec-Driven Development 기반)
|
|
15
15
|
|
|
16
16
|
<when_to_use>
|
|
17
17
|
|
|
18
|
-
| 시나리오 |
|
|
18
|
+
| 시나리오 | 기준 |
|
|
19
19
|
|---------|------|
|
|
20
|
-
| **신규 기능** | 3
|
|
21
|
-
| **아키텍처 변경** |
|
|
22
|
-
| **복잡한 요구사항** | 다중 의존성, 여러 팀
|
|
23
|
-
| **기획 문서화** |
|
|
24
|
-
|
|
25
|
-
**호출 시점**: 구현 전 요구사항 정리, 팀 커뮤니케이션, 의사결정 기록
|
|
20
|
+
| **신규 기능** | 3개+ 파일 수정 예상 |
|
|
21
|
+
| **아키텍처 변경** | 새 시스템/모듈 추가 |
|
|
22
|
+
| **복잡한 요구사항** | 다중 의존성, 여러 팀 |
|
|
23
|
+
| **기획 문서화** | 아이디어 → 구조화 문서 |
|
|
26
24
|
|
|
27
25
|
</when_to_use>
|
|
28
26
|
|
|
29
27
|
---
|
|
30
28
|
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
## 병렬 Agent 실행
|
|
34
|
-
|
|
35
|
-
PRD 작성 시 여러 Agent를 병렬로 실행하여 효율성 향상.
|
|
36
|
-
|
|
37
|
-
### Recommended Agents & Model Routing
|
|
38
|
-
|
|
39
|
-
| Agent | 권장 모델 | 용도 | 복잡도별 모델 |
|
|
40
|
-
|-------|----------|------|--------------|
|
|
41
|
-
| **analyst** | sonnet/opus | 요구사항 분석, 문제 정의, 가정 검증 | LOW: sonnet, HIGH: opus |
|
|
42
|
-
| **planner** | opus | PRD 구조 설계, 아키텍처 검증 | 항상 opus |
|
|
43
|
-
| **document-writer** | haiku/sonnet | PRD 작성, 문서화 | 단순 문서: haiku, 복잡 PRD: sonnet |
|
|
44
|
-
| **explore** | haiku | 기존 문서/코드 조사 | 항상 haiku |
|
|
45
|
-
| **architect** | sonnet/opus | 기술 아키텍처 검토, 설계 분석 | MEDIUM: sonnet, HIGH: opus |
|
|
46
|
-
| **designer** | sonnet/opus | UI/UX 요구사항 설계 | 일반: sonnet, 복잡: opus |
|
|
47
|
-
|
|
48
|
-
### Smart Model Routing
|
|
49
|
-
|
|
50
|
-
| 복잡도 | 모델 | PRD 유형 | 기준 |
|
|
51
|
-
|--------|------|----------|------|
|
|
52
|
-
| **LOW** | haiku/sonnet | 단순 기능 PRD | CRUD, 단일 화면, 명확한 요구사항 |
|
|
53
|
-
| **MEDIUM** | sonnet | 일반 기능 PRD | 다중 화면, API 통합, 2-3개 의존성 |
|
|
54
|
-
| **HIGH** | opus | 복잡한 시스템 PRD | 신규 아키텍처, 다중 의존성, 불확실성 높음 |
|
|
55
|
-
|
|
56
|
-
**에이전트 호출 시 항상 `model` 파라미터 명시:**
|
|
57
|
-
|
|
58
|
-
```typescript
|
|
59
|
-
Task(subagent_type="analyst", model="sonnet", ...)
|
|
60
|
-
Task(subagent_type="planner", model="opus", ...)
|
|
61
|
-
Task(subagent_type="document-writer", model="haiku", ...)
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
### Parallel Execution Patterns
|
|
67
|
-
|
|
68
|
-
PRD 작성 시 병렬 실행 가능한 8가지 패턴:
|
|
69
|
-
|
|
70
|
-
#### 패턴 1: 사용자 스토리 병렬 작성 (Persona별)
|
|
71
|
-
|
|
72
|
-
**시나리오:** 여러 Persona의 User Stories를 동시에 도출
|
|
73
|
-
|
|
74
|
-
```typescript
|
|
75
|
-
// Persona별로 독립적으로 분석
|
|
76
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
77
|
-
prompt="Persona 1 (관리자) 사용자 스토리 도출: 권한 관리, 대시보드")
|
|
78
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
79
|
-
prompt="Persona 2 (일반 사용자) 사용자 스토리 도출: 프로필, 콘텐츠 소비")
|
|
80
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
81
|
-
prompt="Persona 3 (크리에이터) 사용자 스토리 도출: 콘텐츠 생성, 분석")
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**효과:** 3개 Persona 분석을 순차 대신 병렬로 처리 → 시간 단축
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
#### 패턴 2: 기술 요구사항 동시 분석 (영역별)
|
|
89
|
-
|
|
90
|
-
**시나리오:** Frontend, Backend, Infrastructure, Security 요구사항 동시 도출
|
|
91
|
-
|
|
92
|
-
```typescript
|
|
93
|
-
// 각 영역을 독립적으로 분석
|
|
94
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
95
|
-
prompt="Frontend 요구사항 분석: UI 컴포넌트, 상태 관리, 라우팅")
|
|
96
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
97
|
-
prompt="Backend 요구사항 분석: API 엔드포인트, 데이터 모델, 비즈니스 로직")
|
|
98
|
-
Task(subagent_type="architect", model="sonnet",
|
|
99
|
-
prompt="Infrastructure 요구사항 분석: 배포, 스케일링, 모니터링")
|
|
100
|
-
Task(subagent_type="analyst", model="opus",
|
|
101
|
-
prompt="Security 요구사항 분석: 인증/인가, 데이터 암호화, 취약점 대응")
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
**효과:** 4개 영역을 동시에 분석 → 종합적 요구사항 빠르게 파악
|
|
105
|
-
|
|
106
|
-
---
|
|
29
|
+
<principles>
|
|
107
30
|
|
|
108
|
-
|
|
31
|
+
## 2026 PRD 핵심 원칙
|
|
109
32
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
prompt="Designer 관점 검증: UX 플로우, 접근성, 디자인 시스템 일관성")
|
|
120
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
121
|
-
prompt="QA 관점 검증: 테스트 용이성, 엣지 케이스, 회귀 리스크")
|
|
122
|
-
```
|
|
33
|
+
| 원칙 | 설명 | 출처 |
|
|
34
|
+
|------|------|------|
|
|
35
|
+
| **Outcome 중심** | "기능 X 만든다" → "리텐션 10% 증가시킨다" | GitHub Spec Kit |
|
|
36
|
+
| **Discovery First** | PRD는 Discovery 이후 작성, 검증 없는 가정의 문서화 방지 | Marty Cagan/SVPG |
|
|
37
|
+
| **반복적 작성** | "완벽한 스펙" 후 전달 X → "충분한 요구사항"으로 병렬 진행 | Shreyas Doshi |
|
|
38
|
+
| **Living Document** | 정적 문서 X → Brief로 시작, 데이터 학습하며 진화 | OpenAI/Miqdad Jaffer |
|
|
39
|
+
| **문제/솔루션 분리** | 문제 공간 먼저 정의, 솔루션은 별도 섹션 | Kevin Yien, Asana |
|
|
40
|
+
| **간결성** | LLM으로 긴 PRD 생성 금지, 결정 중심 작성 | Aakash Gupta |
|
|
41
|
+
| **PRD = What, CLAUDE.md = How** | PRD는 무엇을/왜, 기술 구현은 별도 문서 | ChatPRD |
|
|
123
42
|
|
|
124
|
-
|
|
43
|
+
</principles>
|
|
125
44
|
|
|
126
45
|
---
|
|
127
46
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
**시나리오:** 신규 제품/기능 기획 시 경쟁사 및 시장 동시 분석
|
|
131
|
-
|
|
132
|
-
```typescript
|
|
133
|
-
// 경쟁사별, 시장별 동시 조사
|
|
134
|
-
Task(subagent_type="explore", model="haiku",
|
|
135
|
-
prompt="경쟁사 A 기능 조사: 핵심 기능, 가격 정책, 차별화 포인트")
|
|
136
|
-
Task(subagent_type="explore", model="haiku",
|
|
137
|
-
prompt="경쟁사 B 기능 조사: 사용자 리뷰, 주요 불만, 강점")
|
|
138
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
139
|
-
prompt="시장 트렌드 분석: 최근 1년 동향, 신기술 도입 사례")
|
|
140
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
141
|
-
prompt="사용자 니즈 분석: 설문조사 결과, 커뮤니티 피드백 요약")
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
**효과:** 경쟁사 2개 + 시장 조사를 병렬 처리 → 빠른 인사이트 도출
|
|
145
|
-
|
|
146
|
-
---
|
|
47
|
+
<frameworks>
|
|
147
48
|
|
|
148
|
-
|
|
49
|
+
## PRD 프레임워크
|
|
149
50
|
|
|
150
|
-
|
|
51
|
+
| 프레임워크 | 핵심 | 적합한 상황 |
|
|
52
|
+
|-----------|------|------------|
|
|
53
|
+
| **PRFAQ** (Amazon) | 미래 시점 보도자료 + FAQ, Working Backwards | 신규 제품, 큰 비전 |
|
|
54
|
+
| **Shape Up** (Basecamp) | 6주 사이클, Appetite 기반, 적절한 추상화 | 시간 제약 명확, 자율 팀 |
|
|
55
|
+
| **JTBD** | 고객이 "고용"하려는 근본 목표 정의 | 사용자 니즈 중심 기획 |
|
|
56
|
+
| **RICE** | (Reach × Impact × Confidence) / Effort | 기능 우선순위 결정 |
|
|
57
|
+
| **Opportunity Solution Tree** | Outcome → Opportunity → Solution → Experiment | Discovery 단계 |
|
|
58
|
+
| **GitHub Spec Kit** | Specify → Plan → Tasks → Implement 4단계 | AI 에이전트 활용 개발 |
|
|
151
59
|
|
|
152
|
-
|
|
153
|
-
// 기능별로 AC와 테스트 시나리오 병렬 작성
|
|
154
|
-
Task(subagent_type="document-writer", model="haiku",
|
|
155
|
-
prompt="기능 1: 사용자 로그인 - Acceptance Criteria 작성")
|
|
156
|
-
Task(subagent_type="document-writer", model="haiku",
|
|
157
|
-
prompt="기능 1: 사용자 로그인 - Test Scenario 작성 (Happy Path, Edge Cases)")
|
|
158
|
-
|
|
159
|
-
Task(subagent_type="document-writer", model="haiku",
|
|
160
|
-
prompt="기능 2: 결제 처리 - Acceptance Criteria 작성")
|
|
161
|
-
Task(subagent_type="document-writer", model="haiku",
|
|
162
|
-
prompt="기능 2: 결제 처리 - Test Scenario 작성")
|
|
163
|
-
```
|
|
60
|
+
**선택 기준:** 신규 제품 → PRFAQ, 기능 추가 → JTBD+RICE, AI 구현 → Spec Kit
|
|
164
61
|
|
|
165
|
-
|
|
62
|
+
</frameworks>
|
|
166
63
|
|
|
167
64
|
---
|
|
168
65
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
**시나리오:** 독립적인 기능마다 별도 PRD 또는 섹션 병렬 작성
|
|
172
|
-
|
|
173
|
-
```typescript
|
|
174
|
-
// 독립적인 기능마다 PRD 작성
|
|
175
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
176
|
-
prompt="User 관리 PRD 작성 (프로필 편집, 권한 관리)")
|
|
177
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
178
|
-
prompt="Payment 연동 PRD 작성 (결제 플로우, 환불 처리)")
|
|
179
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
180
|
-
prompt="Analytics 대시보드 PRD 작성 (지표 시각화, 리포팅)")
|
|
181
|
-
```
|
|
66
|
+
<ai_optimization>
|
|
182
67
|
|
|
183
|
-
|
|
68
|
+
## AI 에이전트용 PRD 최적화
|
|
184
69
|
|
|
185
|
-
|
|
70
|
+
### 6대 필수 영역 (GitHub 2,500+ 리포지토리 분석)
|
|
186
71
|
|
|
187
|
-
|
|
72
|
+
| 영역 | 포함 내용 |
|
|
73
|
+
|------|----------|
|
|
74
|
+
| **Commands** | 실행 명령어 + 플래그 (`npm test`, `pytest -v`) |
|
|
75
|
+
| **Testing** | 프레임워크, 파일 위치, 커버리지 기대치 |
|
|
76
|
+
| **Project Structure** | 소스, 테스트, 문서 경로 |
|
|
77
|
+
| **Code Style** | 선호 패턴을 코드 스니펫으로 |
|
|
78
|
+
| **Git Workflow** | 브랜치 네이밍, 커밋 형식, PR 요구사항 |
|
|
79
|
+
| **Boundaries** | 3단계 제약: Always Do / Ask First / Never Do |
|
|
188
80
|
|
|
189
|
-
|
|
81
|
+
### 핵심 규칙 (Addy Osmani, David Haberlah)
|
|
190
82
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
Task(subagent_type="analyst", model="opus",
|
|
200
|
-
prompt="신규 소셜 로그인 요구사항 분석 (Google, GitHub)")
|
|
201
|
-
Task(subagent_type="architect", model="sonnet",
|
|
202
|
-
prompt="소셜 로그인 아키텍처 검토 (OAuth 플로우, 토큰 관리)")
|
|
203
|
-
```
|
|
83
|
+
| 규칙 | 설명 |
|
|
84
|
+
|------|------|
|
|
85
|
+
| **모듈화** | Phase별 30-50개 요구사항 (150-200개 초과 시 성능 저하) |
|
|
86
|
+
| **Non-Goals 필수** | AI는 생략에서 추론 불가 → "X를 구현하지 말 것" 명시 |
|
|
87
|
+
| **원자적 User Stories** | 1 스토리 = 1 요구사항 |
|
|
88
|
+
| **체크 가능한 AC** | Given-When-Then 또는 불릿 포인트 |
|
|
89
|
+
| **단계적 구현** | 의존성 순서의 테스트 가능한 Phase |
|
|
90
|
+
| **기존 기능 보호** | 기존 코드 영향 범위 명시 |
|
|
204
91
|
|
|
205
|
-
|
|
92
|
+
</ai_optimization>
|
|
206
93
|
|
|
207
94
|
---
|
|
208
95
|
|
|
209
|
-
|
|
96
|
+
<anti_patterns>
|
|
210
97
|
|
|
211
|
-
|
|
98
|
+
## PRD 안티패턴
|
|
212
99
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
// 3단계: 다중 섹션 PRD 작성 (병렬)
|
|
225
|
-
Task(subagent_type="document-writer", model="sonnet", prompt="PRD 섹션 1-5 작성")
|
|
226
|
-
Task(subagent_type="document-writer", model="sonnet", prompt="PRD 섹션 6-10 작성")
|
|
227
|
-
Task(subagent_type="document-writer", model="haiku", prompt="PRD 섹션 11-15 작성")
|
|
228
|
-
```
|
|
100
|
+
| 안티패턴 | 문제 | 해결 |
|
|
101
|
+
|----------|------|------|
|
|
102
|
+
| **모호한 요구사항** | "빠른 로딩" 측정 불가 | "3G에서 2초 내 로딩" |
|
|
103
|
+
| **기능 과적재** | 스코프 크리프 | MoSCoW/RICE 우선순위 |
|
|
104
|
+
| **솔루션 편향** | 문제 정의 전 솔루션 결정 | 문제 공간 먼저 정의 |
|
|
105
|
+
| **성공 지표 부재** | 성공 여부 판단 불가 | 현재값 → 목표값 KPI |
|
|
106
|
+
| **정적 문서화** | 빠르게 구식화 | 정기 리뷰 + 업데이트 |
|
|
107
|
+
| **LLM 긴 PRD 생성** | 내용 없이 길기만 함 | 결정 중심, 간결 작성 |
|
|
108
|
+
| **Discovery 생략** | 검증 없는 가정 문서화 | Discovery → PRD 순서 |
|
|
109
|
+
| **엣지 케이스 무시** | 사용자 불만 | Alternative Flow, Edge Case 명시 |
|
|
229
110
|
|
|
230
|
-
|
|
111
|
+
</anti_patterns>
|
|
231
112
|
|
|
232
113
|
---
|
|
233
114
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
#### 시나리오 1: B2B SaaS - 팀 협업 도구 신규 기능
|
|
237
|
-
|
|
238
|
-
**요구사항:** "슬랙 연동 기능 추가 - 프로젝트 업데이트 자동 알림"
|
|
239
|
-
|
|
240
|
-
**복잡도:** MEDIUM (기존 시스템 + 외부 API 연동)
|
|
115
|
+
<parallel_agent_execution>
|
|
241
116
|
|
|
242
|
-
|
|
243
|
-
// 1단계: 조사 (병렬, haiku)
|
|
244
|
-
Task(subagent_type="explore", model="haiku",
|
|
245
|
-
prompt="현재 알림 시스템 구조 조사 (DB, 트리거, 이벤트)")
|
|
246
|
-
Task(subagent_type="explore", model="haiku",
|
|
247
|
-
prompt="Slack API 문서 조사 (Webhook, OAuth, 메시지 포맷)")
|
|
248
|
-
|
|
249
|
-
// 2단계: 분석 (병렬, sonnet)
|
|
250
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
251
|
-
prompt="요구사항 분석: Slack 연동 시나리오, 가정 검증, 엣지 케이스")
|
|
252
|
-
Task(subagent_type="architect", model="sonnet",
|
|
253
|
-
prompt="아키텍처 분석: Slack API 연동 패턴, 에러 핸들링, 재시도 로직")
|
|
254
|
-
|
|
255
|
-
// 3단계: PRD 작성 (sonnet)
|
|
256
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
257
|
-
prompt=`Slack 연동 PRD 작성 (15개 섹션):
|
|
258
|
-
- 비전: 팀 커뮤니케이션 통합
|
|
259
|
-
- 문제: 수동으로 Slack에 업데이트 공유
|
|
260
|
-
- 목표: 알림 자동화율 90%+
|
|
261
|
-
- 기능 요구사항: Slack 연동 설정, 자동 알림, 메시지 템플릿
|
|
262
|
-
- 기술 요구사항: Slack API, OAuth, Webhook
|
|
263
|
-
- 리스크: API Rate Limit, 네트워크 오류`)
|
|
264
|
-
```
|
|
117
|
+
## 병렬 Agent 실행
|
|
265
118
|
|
|
266
|
-
|
|
267
|
-
- explore (haiku): 단순 조사 작업
|
|
268
|
-
- analyst/architect (sonnet): 일반적인 API 연동 분석
|
|
269
|
-
- document-writer (sonnet): MEDIUM 복잡도 PRD
|
|
119
|
+
### Agent & Model Routing
|
|
270
120
|
|
|
271
|
-
|
|
121
|
+
| Agent | 용도 | LOW | MEDIUM | HIGH |
|
|
122
|
+
|-------|------|-----|--------|------|
|
|
123
|
+
| **explore** | 기존 문서/코드 조사 | haiku | haiku | haiku |
|
|
124
|
+
| **analyst** | 요구사항 분석, 가정 검증 | sonnet | sonnet | opus |
|
|
125
|
+
| **architect** | 기술 아키텍처 검토 | - | sonnet | opus |
|
|
126
|
+
| **designer** | UI/UX 요구사항 설계 | - | sonnet | opus |
|
|
127
|
+
| **planner** | PRD 구조 설계 | - | - | opus |
|
|
128
|
+
| **document-writer** | PRD 작성, 문서화 | haiku | sonnet | sonnet |
|
|
272
129
|
|
|
273
|
-
|
|
130
|
+
### 복잡도 판단
|
|
274
131
|
|
|
275
|
-
|
|
132
|
+
| 복잡도 | 기준 | 예시 |
|
|
133
|
+
|--------|------|------|
|
|
134
|
+
| **LOW** | CRUD, 단일 화면, 명확한 요구사항 | 프로필 편집, 목록 CRUD |
|
|
135
|
+
| **MEDIUM** | 다중 화면, API 연동, 2-3개 의존성 | Slack 연동, 결제 처리 |
|
|
136
|
+
| **HIGH** | 신규 아키텍처, 다중 의존성, 높은 불확실성 | 실시간 파이프라인, 소셜 피드 |
|
|
276
137
|
|
|
277
|
-
|
|
138
|
+
### 대표 병렬 패턴
|
|
278
139
|
|
|
140
|
+
**패턴 1: Persona별 사용자 스토리**
|
|
279
141
|
```typescript
|
|
280
|
-
|
|
281
|
-
Task(subagent_type="
|
|
282
|
-
|
|
283
|
-
Task(subagent_type="explore", model="haiku",
|
|
284
|
-
prompt="Instagram 피드 UX 조사: 무한 스크롤, 이미지 로딩, 캐싱")
|
|
285
|
-
Task(subagent_type="explore", model="haiku",
|
|
286
|
-
prompt="Twitter 피드 UX 조사: 실시간 업데이트, 최적화 패턴")
|
|
287
|
-
|
|
288
|
-
// 2단계: 다중 관점 분석 (병렬, opus)
|
|
289
|
-
Task(subagent_type="analyst", model="opus",
|
|
290
|
-
prompt="사용자 요구사항 분석: Persona별 시나리오, 엣지 케이스")
|
|
291
|
-
Task(subagent_type="architect", model="opus",
|
|
292
|
-
prompt="아키텍처 분석: 피드 알고리즘, 실시간 업데이트, 캐싱 전략")
|
|
293
|
-
Task(subagent_type="designer", model="opus",
|
|
294
|
-
prompt="UX 요구사항 분석: 플로우, 접근성, 모바일 최적화")
|
|
295
|
-
|
|
296
|
-
// 3단계: 다중 섹션 PRD 작성 (병렬, sonnet)
|
|
297
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
298
|
-
prompt="소셜 피드 PRD 작성 - 비전, 문제, 목표, 범위 섹션 (1-4)")
|
|
299
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
300
|
-
prompt="소셜 피드 PRD 작성 - 페르소나, 사용자 여정 섹션 (5-6)")
|
|
301
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
302
|
-
prompt="소셜 피드 PRD 작성 - 기능 요구사항 섹션 (7)")
|
|
303
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
304
|
-
prompt="소셜 피드 PRD 작성 - 기술/성능/리스크 섹션 (8-12)")
|
|
142
|
+
Task(subagent_type="analyst", model="sonnet", prompt="관리자 사용자 스토리 도출")
|
|
143
|
+
Task(subagent_type="analyst", model="sonnet", prompt="일반 사용자 사용자 스토리 도출")
|
|
144
|
+
Task(subagent_type="analyst", model="sonnet", prompt="크리에이터 사용자 스토리 도출")
|
|
305
145
|
```
|
|
306
146
|
|
|
307
|
-
|
|
308
|
-
- explore (haiku): 조사 작업
|
|
309
|
-
- analyst/architect/designer (opus): 복잡한 UX/아키텍처 분석
|
|
310
|
-
- document-writer (sonnet): 섹션별 병렬 작성 (opus는 과도)
|
|
311
|
-
|
|
312
|
-
---
|
|
313
|
-
|
|
314
|
-
#### 시나리오 3: 내부 도구 - 관리자 대시보드
|
|
315
|
-
|
|
316
|
-
**요구사항:** "사용자 관리 + 지표 모니터링 + 로그 분석 대시보드"
|
|
317
|
-
|
|
318
|
-
**복잡도:** MEDIUM (내부 도구, 요구사항 명확)
|
|
319
|
-
|
|
147
|
+
**패턴 2: 기술 영역별 동시 분석**
|
|
320
148
|
```typescript
|
|
321
|
-
|
|
322
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
323
|
-
|
|
324
|
-
Task(subagent_type="analyst", model="
|
|
325
|
-
prompt="지표 모니터링 요구사항 분석: 차트, 기간 필터, 실시간 업데이트")
|
|
326
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
327
|
-
prompt="로그 분석 요구사항 분석: 검색, 필터, 내보내기")
|
|
328
|
-
|
|
329
|
-
// 2단계: 다중 기능 PRD 병렬 작성 (haiku/sonnet)
|
|
330
|
-
Task(subagent_type="document-writer", model="haiku",
|
|
331
|
-
prompt="사용자 관리 PRD 작성 (간단한 CRUD)")
|
|
332
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
333
|
-
prompt="지표 모니터링 PRD 작성 (차트, 쿼리 최적화 포함)")
|
|
334
|
-
Task(subagent_type="document-writer", model="haiku",
|
|
335
|
-
prompt="로그 분석 PRD 작성 (검색/필터)")
|
|
149
|
+
Task(subagent_type="analyst", model="sonnet", prompt="Frontend 요구사항 분석")
|
|
150
|
+
Task(subagent_type="analyst", model="sonnet", prompt="Backend 요구사항 분석")
|
|
151
|
+
Task(subagent_type="architect", model="sonnet", prompt="Infrastructure 요구사항 분석")
|
|
152
|
+
Task(subagent_type="analyst", model="opus", prompt="Security 요구사항 분석")
|
|
336
153
|
```
|
|
337
154
|
|
|
338
|
-
|
|
339
|
-
- analyst (sonnet): 일반적인 내부 도구 요구사항
|
|
340
|
-
- document-writer (haiku): 단순 CRUD PRD
|
|
341
|
-
- document-writer (sonnet): 복잡한 지표 PRD
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
#### 시나리오 4: 데이터 대시보드 - 실시간 분석 플랫폼
|
|
346
|
-
|
|
347
|
-
**요구사항:** "실시간 데이터 수집 + 대시보드 + 알림 시스템"
|
|
348
|
-
|
|
349
|
-
**복잡도:** HIGH (실시간 처리 + 대용량 데이터 + 복잡한 아키텍처)
|
|
350
|
-
|
|
155
|
+
**패턴 3: 다중 관점 검증**
|
|
351
156
|
```typescript
|
|
352
|
-
|
|
353
|
-
Task(subagent_type="
|
|
354
|
-
|
|
355
|
-
Task(subagent_type="architect", model="opus",
|
|
356
|
-
prompt="아키텍처 분석: Kafka vs RabbitMQ, ClickHouse vs TimescaleDB")
|
|
357
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
358
|
-
prompt="대시보드 요구사항 분석: 차트, 필터, 사용자 커스터마이징")
|
|
359
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
360
|
-
prompt="알림 요구사항 분석: 트리거 조건, 채널 (이메일/슬랙/SMS)")
|
|
361
|
-
|
|
362
|
-
// 2단계: 다중 관점 검증 (병렬)
|
|
363
|
-
Task(subagent_type="analyst", model="sonnet",
|
|
364
|
-
prompt="PM 관점 검증: 비즈니스 가치, 우선순위, ROI")
|
|
365
|
-
Task(subagent_type="architect", model="opus",
|
|
366
|
-
prompt="Engineer 관점 검증: 기술적 리스크, 복잡도, 타임라인")
|
|
367
|
-
Task(subagent_type="designer", model="sonnet",
|
|
368
|
-
prompt="Designer 관점 검증: 대시보드 UX, 정보 계층")
|
|
369
|
-
|
|
370
|
-
// 3단계: PRD 작성 (planner + document-writer)
|
|
371
|
-
Task(subagent_type="planner", model="opus",
|
|
372
|
-
prompt="PRD 구조 설계: 15개 섹션 우선순위, 핵심 리스크 식별")
|
|
373
|
-
Task(subagent_type="document-writer", model="sonnet",
|
|
374
|
-
prompt="실시간 분석 플랫폼 PRD 작성 (Planner 구조 기반)")
|
|
157
|
+
Task(subagent_type="analyst", model="sonnet", prompt="PM 관점 검증: 비즈니스 목표, KPI")
|
|
158
|
+
Task(subagent_type="architect", model="opus", prompt="Engineer 관점 검증: 실현 가능성, 리스크")
|
|
159
|
+
Task(subagent_type="designer", model="sonnet", prompt="Designer 관점 검증: UX, 접근성")
|
|
375
160
|
```
|
|
376
161
|
|
|
377
|
-
|
|
378
|
-
- analyst/architect (opus): 복잡한 실시간 시스템 분석
|
|
379
|
-
- planner (opus): PRD 구조 설계 (HIGH 복잡도)
|
|
380
|
-
- document-writer (sonnet): 최종 PRD 작성
|
|
381
|
-
|
|
382
|
-
---
|
|
162
|
+
### 실행 순서
|
|
383
163
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
- [ ] 단순 기능 (CRUD, 단일 화면) → LOW → haiku/sonnet
|
|
390
|
-
- [ ] 일반 기능 (다중 화면, API 연동) → MEDIUM → sonnet
|
|
391
|
-
- [ ] 복잡한 시스템 (신규 아키텍처, 높은 불확실성) → HIGH → opus
|
|
392
|
-
|
|
393
|
-
**병렬 실행 가능 확인**
|
|
394
|
-
- [ ] 여러 Persona의 사용자 스토리 → 패턴 1 (analyst x N)
|
|
395
|
-
- [ ] 기술 영역별 요구사항 (Frontend/Backend/Security) → 패턴 2
|
|
396
|
-
- [ ] 다중 관점 검증 (PM/Engineer/Designer/QA) → 패턴 3
|
|
397
|
-
- [ ] 경쟁사 분석 + 시장 조사 → 패턴 4
|
|
398
|
-
- [ ] 기능별 AC + 테스트 시나리오 → 패턴 5
|
|
399
|
-
- [ ] 독립적인 기능 여러 개 → 패턴 6
|
|
400
|
-
|
|
401
|
-
**에이전트 선택**
|
|
402
|
-
- [ ] 요구사항 분석 → analyst (sonnet/opus)
|
|
403
|
-
- [ ] 아키텍처 검토 → architect (sonnet/opus)
|
|
404
|
-
- [ ] PRD 구조 설계 → planner (opus)
|
|
405
|
-
- [ ] PRD 작성 → document-writer (haiku/sonnet)
|
|
406
|
-
- [ ] 기존 시스템 조사 → explore (haiku)
|
|
407
|
-
- [ ] UI/UX 요구사항 → designer (sonnet/opus)
|
|
408
|
-
|
|
409
|
-
**Model 선택**
|
|
410
|
-
- [ ] haiku: 조사, 단순 문서, 명확한 요구사항
|
|
411
|
-
- [ ] sonnet: 일반적인 분석/작성, 균형 잡힌 품질
|
|
412
|
-
- [ ] opus: 복잡한 분석, 아키텍처 설계, 불확실성 높은 작업
|
|
413
|
-
|
|
414
|
-
**실행 순서**
|
|
415
|
-
- [ ] 1단계: 조사 (explore) + 경쟁사 분석 (병렬)
|
|
416
|
-
- [ ] 2단계: 요구사항 분석 (analyst) + 아키텍처 검토 (architect) (병렬)
|
|
417
|
-
- [ ] 3단계: PRD 작성 (document-writer) 또는 섹션별 병렬 작성
|
|
164
|
+
| 단계 | 작업 | 병렬 가능 |
|
|
165
|
+
|------|------|----------|
|
|
166
|
+
| **1** | 조사 (explore) + 경쟁사 분석 | O |
|
|
167
|
+
| **2** | 요구사항 분석 (analyst) + 아키텍처 (architect) | O |
|
|
168
|
+
| **3** | PRD 작성 (document-writer), 섹션별 분할 가능 | O |
|
|
418
169
|
|
|
419
170
|
**적극적으로 에이전트 활용. 혼자 하지 말 것.**
|
|
420
171
|
|
|
@@ -428,16 +179,10 @@ PRD 작성 시작 전 확인:
|
|
|
428
179
|
|
|
429
180
|
| 단계 | 작업 | 도구 |
|
|
430
181
|
|------|------|------|
|
|
431
|
-
| 1 | 복잡도
|
|
432
|
-
| 2 | 코드베이스/문서 조사
|
|
433
|
-
| 3 | 병렬 Agent 실행 (
|
|
434
|
-
| 4 |
|
|
435
|
-
|
|
436
|
-
**핵심 원칙**:
|
|
437
|
-
- 짧고 명확한 문장, 구체적 예시
|
|
438
|
-
- User Stories + Functional + Non-functional 구분
|
|
439
|
-
- 현재값 → 목표값 형태 지표
|
|
440
|
-
- 불확실한 부분은 Open Questions에 명시
|
|
182
|
+
| **1** | 복잡도 판단, PRD 프레임워크 선택 | Sequential Thinking |
|
|
183
|
+
| **2** | 코드베이스/문서 조사 | Task (explore) |
|
|
184
|
+
| **3** | 병렬 Agent 실행 (MEDIUM+ 복잡도) | Task (analyst, architect, document-writer) |
|
|
185
|
+
| **4** | PRD 작성 (아래 구조 준수) | Write → `.claude/plan/` 또는 `docs/prd/` |
|
|
441
186
|
|
|
442
187
|
</workflow>
|
|
443
188
|
|
|
@@ -445,82 +190,40 @@ PRD 작성 시작 전 확인:
|
|
|
445
190
|
|
|
446
191
|
<prd_structure>
|
|
447
192
|
|
|
448
|
-
## PRD 15개 섹션
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
### 6. 사용자 여정 & 시나리오
|
|
472
|
-
- 여정 단계 (해당 구간 표시)
|
|
473
|
-
- 대표 시나리오 (사용자 목적과 단계)
|
|
474
|
-
|
|
475
|
-
### 7. 기능 요구사항
|
|
476
|
-
각 기능마다:
|
|
477
|
-
- **User Stories**: As a [유저], I want to [행동] so that [가치]
|
|
478
|
-
- **기능 설명**: Happy Path, Alternative Flow, Edge Case
|
|
479
|
-
- **Functional Requirements**: 시스템 동작 명세
|
|
480
|
-
- **Non-functional Requirements**: 성능, 보안, 사용성
|
|
481
|
-
|
|
482
|
-
### 8. UX/UI 요구사항
|
|
483
|
-
- 핵심 원칙 (디자인 제약)
|
|
484
|
-
- 필수 정보/액션
|
|
485
|
-
- 접근성 (다국어, 키보드, 대비)
|
|
486
|
-
|
|
487
|
-
### 9. 기술/데이터 요구사항
|
|
488
|
-
- 기술 스택, 통합/의존성
|
|
489
|
-
- 데이터 구조 (엔티티)
|
|
490
|
-
- 보안/규제 (인증, 개인정보)
|
|
491
|
-
|
|
492
|
-
### 10. 성공 지표 & KPI
|
|
493
|
-
|
|
494
|
-
| 지표 | 현재값 | 목표값 | 측정 방법 |
|
|
495
|
-
|------|--------|--------|----------|
|
|
496
|
-
| ... | ... | ... | ... |
|
|
497
|
-
|
|
498
|
-
### 11. 리스크, 가정, 의존성
|
|
499
|
-
- 가정 (전제 조건)
|
|
500
|
-
- 리스크 (기술/비즈니스/UX, 완화 방안)
|
|
501
|
-
- 의존성 (다른 팀/프로젝트)
|
|
193
|
+
## PRD 15개 섹션
|
|
194
|
+
|
|
195
|
+
| # | 섹션 | 핵심 내용 |
|
|
196
|
+
|---|------|----------|
|
|
197
|
+
| 1 | **메타데이터** | 제목, 작성자, 버전, 날짜, 관련 문서 |
|
|
198
|
+
| 2 | **비전 & 배경** | 비전 1-2문장, 왜 지금, 기존 한계 |
|
|
199
|
+
| 3 | **문제 정의 & 목표** | 데이터 기반 문제, 측정 가능 KPI (비즈니스/사용자) |
|
|
200
|
+
| 4 | **범위** | In Scope (P0/P1), **Out of Scope (Non-Goals)** |
|
|
201
|
+
| 5 | **타깃 유저 & 페르소나** | 세그먼트, 페르소나 (이름/역할/목표/Pain Point) |
|
|
202
|
+
| 6 | **사용자 여정 & 시나리오** | 여정 단계, JTBD 기반 대표 시나리오 |
|
|
203
|
+
| 7 | **기능 요구사항** | User Stories + Functional + Non-functional (기능별) |
|
|
204
|
+
| 8 | **UX/UI 요구사항** | 핵심 원칙, 필수 정보/액션, 접근성 |
|
|
205
|
+
| 9 | **기술/데이터 요구사항** | 스택, 통합, 데이터 구조, 보안/규제 |
|
|
206
|
+
| 10 | **성공 지표 & KPI** | 현재값 → 목표값, 측정 방법 |
|
|
207
|
+
| 11 | **리스크, 가정, 의존성** | 가정, 리스크 + 완화 방안, 의존성 |
|
|
208
|
+
| 12 | **릴리즈 전략** | 전략 (단계적/A·B), 마일스톤, 롤백 |
|
|
209
|
+
| 13 | **오픈 이슈 & Todo** | 미결정 질문, 결정자, 기한 |
|
|
210
|
+
| 14 | **구현 Phase** | 의존성 순서 단계 분해, 각 Phase에 테스트 체크포인트 |
|
|
211
|
+
| 15 | **변경 이력** | 버전별 변경 사항 추적 |
|
|
212
|
+
|
|
213
|
+
**기능 요구사항 작성법:**
|
|
214
|
+
```markdown
|
|
215
|
+
### 기능 N: [이름] (P0/P1)
|
|
502
216
|
|
|
503
|
-
|
|
504
|
-
- 릴리즈 전략 (전체/단계적/A/B)
|
|
505
|
-
- 마일스톤 (타임라인)
|
|
506
|
-
- 롤백 계획 (Feature Flag)
|
|
217
|
+
**User Story**: As a [유저], I want to [행동] so that [가치]
|
|
507
218
|
|
|
508
|
-
|
|
219
|
+
**기능 설명**: Happy Path → Alternative Flow → Edge Case
|
|
509
220
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
221
|
+
**Acceptance Criteria** (Given-When-Then):
|
|
222
|
+
- Given [전제조건], When [행동], Then [결과]
|
|
223
|
+
- Given [전제조건], When [예외 행동], Then [에러 처리]
|
|
513
224
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
- "좋은 UX" → 구체적 기준/예시
|
|
517
|
-
- 트레이드오프 선택 이유 명시
|
|
518
|
-
|
|
519
|
-
### 15. Claude 최종 지시
|
|
520
|
-
- 15개 섹션 구조 준수
|
|
521
|
-
- 기능/요구사항: User Stories + Functional + Non-functional
|
|
522
|
-
- 불명확한 부분 → Open Questions
|
|
523
|
-
- 기존 PRD 수정 시 → Change log
|
|
225
|
+
**Non-functional**: 성능 (응답 < Nms), 보안, 사용성
|
|
226
|
+
```
|
|
524
227
|
|
|
525
228
|
</prd_structure>
|
|
526
229
|
|
|
@@ -540,7 +243,6 @@ PRD 작성 시작 전 확인:
|
|
|
540
243
|
| **작성자** | [이름] |
|
|
541
244
|
| **버전** | v0.1 |
|
|
542
245
|
| **작성일** | YYYY-MM-DD |
|
|
543
|
-
| **수정일** | YYYY-MM-DD |
|
|
544
246
|
| **관련 문서** | [링크] |
|
|
545
247
|
|
|
546
248
|
---
|
|
@@ -548,9 +250,7 @@ PRD 작성 시작 전 확인:
|
|
|
548
250
|
## 1. 비전 & 배경
|
|
549
251
|
|
|
550
252
|
**비전**: [1-2문장]
|
|
551
|
-
|
|
552
|
-
**배경**: [왜 지금 하는지]
|
|
553
|
-
|
|
253
|
+
**배경**: [왜 지금]
|
|
554
254
|
**기존 한계**: [간단히]
|
|
555
255
|
|
|
556
256
|
---
|
|
@@ -558,18 +258,16 @@ PRD 작성 시작 전 확인:
|
|
|
558
258
|
## 2. 문제 정의 & 목표
|
|
559
259
|
|
|
560
260
|
### 문제
|
|
561
|
-
[
|
|
562
|
-
|
|
563
|
-
**인사이트**:
|
|
261
|
+
[데이터 기반 문제 정의]
|
|
564
262
|
- 유저 피드백: [요약]
|
|
565
|
-
- 지표:
|
|
263
|
+
- 지표: [현재 수치]
|
|
566
264
|
|
|
567
265
|
### 목표
|
|
568
266
|
|
|
569
267
|
| 분류 | 목표 |
|
|
570
268
|
|------|------|
|
|
571
|
-
| **비즈니스** |
|
|
572
|
-
| **사용자** |
|
|
269
|
+
| **비즈니스** | [측정 가능한 목표] |
|
|
270
|
+
| **사용자** | [측정 가능한 목표] |
|
|
573
271
|
|
|
574
272
|
---
|
|
575
273
|
|
|
@@ -579,72 +277,37 @@ PRD 작성 시작 전 확인:
|
|
|
579
277
|
- [ ] 기능 1 (P0)
|
|
580
278
|
- [ ] 기능 2 (P1)
|
|
581
279
|
|
|
582
|
-
### Out of Scope
|
|
583
|
-
-
|
|
280
|
+
### Non-Goals (Out of Scope)
|
|
281
|
+
- [명시적으로 하지 않을 것과 이유]
|
|
584
282
|
|
|
585
283
|
---
|
|
586
284
|
|
|
587
285
|
## 4. 타깃 유저 & 페르소나
|
|
588
286
|
|
|
589
|
-
|
|
590
|
-
-
|
|
591
|
-
-
|
|
592
|
-
|
|
593
|
-
### 페르소나
|
|
594
|
-
|
|
595
|
-
**이름**: 김OO
|
|
596
|
-
**역할**: 소규모 쇼핑몰 운영자
|
|
597
|
-
**목표**: 재고 관리 자동화
|
|
598
|
-
**Pain Point**: 수동 입력 시간 과다
|
|
599
|
-
|
|
600
|
-
**Primary Persona**: 김OO
|
|
287
|
+
**Primary Persona**: [이름]
|
|
288
|
+
- **역할**: [역할]
|
|
289
|
+
- **목표**: [JTBD - 완수하려는 근본 과제]
|
|
290
|
+
- **Pain Point**: [현재 문제]
|
|
601
291
|
|
|
602
292
|
---
|
|
603
293
|
|
|
604
|
-
## 5. 사용자 여정
|
|
294
|
+
## 5. 사용자 여정
|
|
605
295
|
|
|
606
|
-
|
|
607
|
-
`랜딩 → [가입 → 첫 세팅] → 핵심 기능 → 반복 → 업그레이드`
|
|
608
|
-
|
|
609
|
-
### 대표 시나리오
|
|
610
|
-
사용자는 재고를 빠르게 등록하기 위해 앱을 연다.
|
|
611
|
-
...
|
|
612
|
-
5분 안에 100개 상품을 등록할 수 있다.
|
|
296
|
+
`[진입] → [핵심 행동] → [결과]`
|
|
613
297
|
|
|
614
298
|
---
|
|
615
299
|
|
|
616
300
|
## 6. 기능 요구사항
|
|
617
301
|
|
|
618
|
-
### 기능 1: [이름]
|
|
619
|
-
|
|
620
|
-
**설명**: [1-2문장]
|
|
621
|
-
|
|
622
|
-
**목표**: [어떤 문제 해결]
|
|
623
|
-
|
|
624
|
-
**우선순위**: P0
|
|
302
|
+
### 기능 1: [이름] (P0)
|
|
625
303
|
|
|
626
|
-
|
|
627
|
-
- As a 쇼핑몰 운영자, I want to 엑셀로 재고를 일괄 등록 so that 시간을 절약할 수 있다
|
|
304
|
+
**User Story**: As a [유저], I want to [행동] so that [가치]
|
|
628
305
|
|
|
629
|
-
|
|
630
|
-
-
|
|
631
|
-
-
|
|
632
|
-
- 성공/실패 피드백
|
|
633
|
-
|
|
634
|
-
#### Functional Requirements
|
|
635
|
-
- 시스템은 엑셀 업로드 시 필수 필드(상품명, 가격) 검증해야 함
|
|
636
|
-
- 중복 상품은 경고 표시 후 사용자 선택(덮어쓰기/건너뛰기)
|
|
637
|
-
- 성공 시 재고 목록 페이지로 이동
|
|
638
|
-
|
|
639
|
-
#### Non-functional Requirements
|
|
640
|
-
- 성능: 1,000행 처리 < 3초
|
|
641
|
-
- 보안: 파일 크기 제한 5MB
|
|
642
|
-
- 사용성: 진행률 표시
|
|
643
|
-
|
|
644
|
-
---
|
|
306
|
+
**Acceptance Criteria**:
|
|
307
|
+
- Given [전제], When [행동], Then [결과]
|
|
308
|
+
- Given [전제], When [예외], Then [에러 처리]
|
|
645
309
|
|
|
646
|
-
|
|
647
|
-
...
|
|
310
|
+
**Non-functional**: 성능, 보안, 사용성
|
|
648
311
|
|
|
649
312
|
---
|
|
650
313
|
|
|
@@ -652,9 +315,8 @@ PRD 작성 시작 전 확인:
|
|
|
652
315
|
|
|
653
316
|
| 항목 | 내용 |
|
|
654
317
|
|------|------|
|
|
655
|
-
| **핵심 원칙** |
|
|
656
|
-
|
|
|
657
|
-
| **접근성** | 키보드 네비게이션, 한/영 지원 |
|
|
318
|
+
| **핵심 원칙** | [디자인 제약] |
|
|
319
|
+
| **접근성** | [키보드, 대비, 다국어] |
|
|
658
320
|
|
|
659
321
|
---
|
|
660
322
|
|
|
@@ -662,136 +324,101 @@ PRD 작성 시작 전 확인:
|
|
|
662
324
|
|
|
663
325
|
| 항목 | 내용 |
|
|
664
326
|
|------|------|
|
|
665
|
-
| **기술 스택** |
|
|
666
|
-
|
|
|
667
|
-
|
|
|
668
|
-
| **보안** | JWT 인증, File validation |
|
|
327
|
+
| **기술 스택** | [사용 기술] |
|
|
328
|
+
| **데이터** | [엔티티, 관계] |
|
|
329
|
+
| **보안** | [인증, 개인정보] |
|
|
669
330
|
|
|
670
331
|
---
|
|
671
332
|
|
|
672
|
-
## 9. 성공 지표
|
|
333
|
+
## 9. 성공 지표
|
|
673
334
|
|
|
674
335
|
| 지표 | 현재값 | 목표값 | 측정 방법 |
|
|
675
336
|
|------|--------|--------|----------|
|
|
676
|
-
|
|
|
677
|
-
| 에러율 | 30% | 10% 이하 | 실패 업로드 / 전체 |
|
|
678
|
-
| 주간 활성 | 500명 | 800명 | GA 이벤트 |
|
|
337
|
+
| ... | ... | ... | ... |
|
|
679
338
|
|
|
680
339
|
---
|
|
681
340
|
|
|
682
|
-
## 10.
|
|
341
|
+
## 10. 리스크 & 가정
|
|
683
342
|
|
|
684
|
-
| 분류 | 내용 |
|
|
685
|
-
|
|
686
|
-
| **가정** |
|
|
687
|
-
| **리스크** |
|
|
688
|
-
| **의존성** |
|
|
343
|
+
| 분류 | 내용 | 완화 방안 |
|
|
344
|
+
|------|------|----------|
|
|
345
|
+
| **가정** | [전제 조건] | [검증 방법] |
|
|
346
|
+
| **리스크** | [기술/비즈니스] | [완화 전략] |
|
|
347
|
+
| **의존성** | [외부 팀/라이브러리] | - |
|
|
689
348
|
|
|
690
349
|
---
|
|
691
350
|
|
|
692
351
|
## 11. 릴리즈 전략
|
|
693
352
|
|
|
694
|
-
**전략**:
|
|
353
|
+
**전략**: [전체/단계적/A·B]
|
|
354
|
+
**마일스톤**: [타임라인]
|
|
355
|
+
**롤백**: [Feature Flag 등]
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## 12. 구현 Phase
|
|
695
360
|
|
|
696
|
-
|
|
697
|
-
-
|
|
698
|
-
-
|
|
699
|
-
-
|
|
361
|
+
### Phase 1: [기초] (Week 1-2)
|
|
362
|
+
- [ ] 태스크 1
|
|
363
|
+
- [ ] 태스크 2
|
|
364
|
+
- **체크포인트**: [테스트 가능한 검증 기준]
|
|
700
365
|
|
|
701
|
-
|
|
366
|
+
### Phase 2: [핵심] (Week 3-4)
|
|
367
|
+
- [ ] 태스크 3
|
|
368
|
+
- **체크포인트**: [검증 기준]
|
|
702
369
|
|
|
703
370
|
---
|
|
704
371
|
|
|
705
|
-
##
|
|
372
|
+
## 13. 오픈 이슈
|
|
706
373
|
|
|
707
374
|
| 질문 | 결정자 | 기한 |
|
|
708
375
|
|------|--------|------|
|
|
709
|
-
|
|
|
710
|
-
|
|
376
|
+
| ... | ... | ... |
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## 변경 이력
|
|
381
|
+
|
|
382
|
+
| 버전 | 날짜 | 변경 내용 |
|
|
383
|
+
|------|------|----------|
|
|
384
|
+
| v0.1 | YYYY-MM-DD | 초안 작성 |
|
|
711
385
|
```
|
|
712
386
|
|
|
713
387
|
</template>
|
|
714
388
|
|
|
715
389
|
---
|
|
716
390
|
|
|
717
|
-
<
|
|
391
|
+
<evaluation>
|
|
718
392
|
|
|
719
|
-
##
|
|
393
|
+
## PRD 품질 평가
|
|
720
394
|
|
|
721
|
-
|
|
395
|
+
| 항목 | 기준 | 가중치 |
|
|
396
|
+
|------|------|--------|
|
|
397
|
+
| **명확성** | 모호한 용어 없이 측정 가능한 요구사항 | 높음 |
|
|
398
|
+
| **완전성** | 범위, 제약조건, AC, Non-Goals 포함 | 높음 |
|
|
399
|
+
| **전략 정렬** | 비즈니스 목표/OKR과 직접 연결 | 높음 |
|
|
400
|
+
| **성공 메트릭** | 정량적 KPI + 현재값 → 목표값 | 높음 |
|
|
401
|
+
| **사용자 중심** | 페르소나, JTBD, User Stories, AC | 중간 |
|
|
402
|
+
| **우선순위** | MoSCoW/RICE 기반 명확한 우선순위 | 중간 |
|
|
403
|
+
| **가정 명시** | 검증되지 않은 가정 문서화 | 중간 |
|
|
404
|
+
| **AI 실행 가능** | Phase 분해, Non-Goals, 체크포인트 | 중간 |
|
|
722
405
|
|
|
723
|
-
|
|
724
|
-
사용자: 사용자 프로필 편집 기능 PRD 작성
|
|
406
|
+
</evaluation>
|
|
725
407
|
|
|
726
|
-
|
|
727
|
-
thought 1: "프로필 편집 - 보통 복잡도, CRUD 기본 기능"
|
|
728
|
-
thought 2: "현재 User 모델 확인 필요, 인증 방식 파악"
|
|
729
|
-
thought 3: "편집 가능 필드: 이름, 이메일, 프로필 이미지"
|
|
730
|
-
thought 4: "검증: 이메일 중복, 이미지 크기, 형식"
|
|
731
|
-
thought 5: "API: PUT /api/user/:id, 클라이언트: useQuery + useMutation"
|
|
732
|
-
|
|
733
|
-
2. Task 탐색:
|
|
734
|
-
Task (Explore): "User 모델 및 인증 구조 분석"
|
|
408
|
+
---
|
|
735
409
|
|
|
736
|
-
|
|
737
|
-
→ .claude/plan/profile-edit-prd.md
|
|
410
|
+
<references>
|
|
738
411
|
|
|
739
|
-
|
|
740
|
-
- 문제: 사용자가 정보를 수정할 방법이 없음
|
|
741
|
-
- 목표: 프로필 편집 완료율 90% 이상
|
|
742
|
-
- 기능: 이름/이메일/이미지 편집, 실시간 검증
|
|
743
|
-
- KPI: 편집 완료율, 에러율
|
|
744
|
-
```
|
|
412
|
+
## 참고 자료
|
|
745
413
|
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
thought 2: "현재 통신: REST만, 폴링 없음"
|
|
754
|
-
thought 3: "제약: 서버 부하, 클라이언트 연결 관리"
|
|
755
|
-
thought 4: "접근: WebSocket vs SSE vs Firebase"
|
|
756
|
-
thought 5: "WebSocket - 양방향, 복잡. SSE - 단방향, 간단"
|
|
757
|
-
thought 6: "옵션 3개: WebSocket(추천), SSE, Firebase"
|
|
758
|
-
thought 7: "WebSocket 추천 - 확장성, 제어 가능"
|
|
759
|
-
|
|
760
|
-
2. 병렬 실행:
|
|
761
|
-
Task({ subagent_type: 'analyst', prompt: '알림 요구사항 분석' })
|
|
762
|
-
Task({ subagent_type: 'architect', prompt: 'WebSocket 아키텍처 검토' })
|
|
763
|
-
|
|
764
|
-
3. PRD 작성:
|
|
765
|
-
- 비전: "사용자가 즉시 중요한 업데이트를 받는다"
|
|
766
|
-
- 범위:
|
|
767
|
-
* In: 주문 상태, 메시지 알림
|
|
768
|
-
* Out: 푸시 알림 (후속)
|
|
769
|
-
- 기술: WebSocket (ws 라이브러리), Redis Pub/Sub
|
|
770
|
-
- 리스크: 연결 안정성 (완화: 자동 재연결)
|
|
771
|
-
```
|
|
414
|
+
| 문서 | 내용 |
|
|
415
|
+
|------|------|
|
|
416
|
+
| @references/ai-native-prd.md | AI 에이전트용 PRD 작성법 (Osmani, Haberlah, Spec Kit, ChatPRD) |
|
|
417
|
+
| @references/pm-leaders.md | PM 리더 인사이트 (Cagan, Doshi, Rachitsky, Yien) |
|
|
418
|
+
| @references/frameworks.md | PRD 프레임워크 (PRFAQ, Shape Up, JTBD, RICE, Spec Kit) |
|
|
419
|
+
| @references/trends-2026.md | 2026 트렌드 (Spec-Driven, Outcome 중심, 빅테크 패턴) |
|
|
420
|
+
| @references/anti-patterns.md | 안티패턴 & 평가 기준 (Carnegie Mellon SEI 연구 포함) |
|
|
772
421
|
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
```bash
|
|
776
|
-
사용자: 대시보드 분석 기능 PRD - 매출, 주문, 트래픽 차트
|
|
777
|
-
|
|
778
|
-
1. Sequential Thinking (5단계):
|
|
779
|
-
thought 1: "대시보드 - 보통 복잡도, 데이터 집계 + 시각화"
|
|
780
|
-
thought 2: "데이터: Order, Payment, Analytics 테이블"
|
|
781
|
-
thought 3: "차트: 라인(트렌드), 바(비교), 파이(비율)"
|
|
782
|
-
thought 4: "필터: 기간(일/주/월), 카테고리"
|
|
783
|
-
thought 5: "성능: 집계 쿼리 최적화, 캐싱 필요"
|
|
784
|
-
|
|
785
|
-
2. PRD 핵심:
|
|
786
|
-
- 문제: 매출 데이터를 확인하려면 여러 페이지 접근 필요
|
|
787
|
-
- 목표: 대시보드 사용률 70% 이상
|
|
788
|
-
- 기능 요구사항:
|
|
789
|
-
* User Story: "As a 관리자, I want to 매출 트렌드를 한눈에 보고 싶다"
|
|
790
|
-
* Functional: 기간별 매출 집계, 차트 렌더링
|
|
791
|
-
* Non-functional: 쿼리 < 500ms, 캐싱 5분
|
|
792
|
-
- 성공 지표:
|
|
793
|
-
* 페이지뷰: 0 → 500/일
|
|
794
|
-
* 로딩 시간: - → 500ms 이하
|
|
795
|
-
```
|
|
422
|
+
**필요 시 해당 문서 참조. 각 문서 하단에 원본 URL 포함.**
|
|
796
423
|
|
|
797
|
-
</
|
|
424
|
+
</references>
|