muno-claude-plugin 1.0.0

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.
Files changed (48) hide show
  1. package/README.md +834 -0
  2. package/bin/cli.js +262 -0
  3. package/package.json +37 -0
  4. package/templates/WORKFLOW.md +260 -0
  5. package/templates/agents/acceptance-test-generator.md +508 -0
  6. package/templates/agents/epic-story-reviewer.md +255 -0
  7. package/templates/agents/hld-reviewer.md +306 -0
  8. package/templates/agents/lld-reviewer.md +310 -0
  9. package/templates/agents/prd-reviewer.md +174 -0
  10. package/templates/agents/task-tracker.md +445 -0
  11. package/templates/agents/tc-reviewer.md +339 -0
  12. package/templates/agents/unit-test-generator.md +431 -0
  13. package/templates/commands/claude-code-expert.md +9 -0
  14. package/templates/commands/dev.md +9 -0
  15. package/templates/commands/po.md +9 -0
  16. package/templates/commands/principal-engineer.md +9 -0
  17. package/templates/commands/qa.md +9 -0
  18. package/templates/commands/sm.md +9 -0
  19. package/templates/commands/staff-engineer.md +9 -0
  20. package/templates/personas/claude-code-expert.md +153 -0
  21. package/templates/personas/dev.md +130 -0
  22. package/templates/personas/po.md +92 -0
  23. package/templates/personas/principal-engineer.md +163 -0
  24. package/templates/personas/qa.md +174 -0
  25. package/templates/personas/sm.md +101 -0
  26. package/templates/personas/staff-engineer.md +153 -0
  27. package/templates/references/claude-code-resources.md +79 -0
  28. package/templates/skills/epic-story-generator/SKILL.md +453 -0
  29. package/templates/skills/epic-story-generator/reference/epic-template.md +192 -0
  30. package/templates/skills/epic-story-generator/reference/story-template.md +297 -0
  31. package/templates/skills/hld-generator/SKILL.md +400 -0
  32. package/templates/skills/hld-generator/reference/hld-examples.md +305 -0
  33. package/templates/skills/hld-generator/reference/hld-template.md +244 -0
  34. package/templates/skills/hld-generator/reference/tech-stack-guidelines.md +194 -0
  35. package/templates/skills/lld-generator/SKILL.md +360 -0
  36. package/templates/skills/lld-generator/reference/lld-examples.md +338 -0
  37. package/templates/skills/lld-generator/reference/lld-template.md +286 -0
  38. package/templates/skills/prd-generator/SKILL.md +352 -0
  39. package/templates/skills/prd-generator/reference/prd-template.md +98 -0
  40. package/templates/skills/task-generator/SKILL.md +661 -0
  41. package/templates/skills/task-generator/reference/impl-task-template.md +621 -0
  42. package/templates/skills/task-generator/reference/task-examples.md +678 -0
  43. package/templates/skills/task-reviewer/SKILL.md +463 -0
  44. package/templates/skills/task-reviewer/reference/review-criteria.md +501 -0
  45. package/templates/skills/task-reviewer/reference/review-template.md +403 -0
  46. package/templates/skills/tc-generator/SKILL.md +595 -0
  47. package/templates/skills/tc-generator/reference/tc-examples.md +654 -0
  48. package/templates/skills/tc-generator/reference/tc-template.md +451 -0
@@ -0,0 +1,286 @@
1
+ # LLD 템플릿
2
+
3
+ ## 문서 구조 개요
4
+
5
+ LLD는 다음 섹션으로 구성됩니다:
6
+
7
+ | 섹션 | 필수 | 설명 |
8
+ |------|:----:|------|
9
+ | 1. Glossary | ✓ | 용어 정의 |
10
+ | 2. Problem Statement | ✓ | 도메인별 기술적 난제 |
11
+ | 3. Functional Requirements | ✓ | 기능 요구사항 |
12
+ | 4. Non-Functional Requirements | ✓ | 성능/가용성 목표 |
13
+ | 5. Goal / Non-Goal | ✓ | 설계 범위 명확화 |
14
+ | 6. Proposed Design | ✓ | 도메인별 6가지 관점 설계 |
15
+ | 7. Resilience & Reliability | ✓ | 공통 장애 대응 아키텍처 |
16
+ | 8. Appendix | △ | 참고 문서 |
17
+
18
+ **제외 항목**: ERD, 클래스 다이어그램, API 스펙 상세 (→ Task에서 작성)
19
+
20
+ ---
21
+
22
+ ## 전체 템플릿
23
+
24
+ ```markdown
25
+ # [LLD] 기능명
26
+
27
+ > **문서 정보**
28
+ >
29
+ > | 항목 | 내용 |
30
+ > |------|------|
31
+ > | 작성자 | @작성자 |
32
+ > | 작성일 | YYYY-MM-DD |
33
+ > | 상태 | Draft / Review / Approved |
34
+ > | HLD | [HLD 문서 링크] |
35
+ > | PRD | [PRD 문서 링크] |
36
+
37
+ ---
38
+
39
+ ## 1. Glossary
40
+
41
+ | Term | Description |
42
+ |------|-------------|
43
+ | [용어1] | [정의] |
44
+ | [용어2] | [정의] |
45
+ | Hard Failure | 핵심 의존성 조회 실패로 인해 서비스 불능 상태가 된 경우 |
46
+ | Soft Failure | 의존성의 조회 실패로 Default 값을 반환하여 기능이 심각하게 저하된 상태 |
47
+ | SPOF | Single Point of Failure. 장애 시 Fail-fast 처리함 |
48
+ | Default [Value] | 외부 시스템 장애 시 서비스 중단을 막기 위해 반환하는 사전 정의된 보수적 값 |
49
+
50
+ ---
51
+
52
+ ## 2. Problem Statement
53
+
54
+ [시스템이 해결해야 할 핵심 문제와 기술적 도전 과제를 기술합니다.]
55
+
56
+ [예시]
57
+ > Core Promise System은 단일 상품 조회 시 P99 50ms, 최대 78,000 TPS라는 극한의 성능 목표를 달성해야 합니다.
58
+ > 그러나 데이터를 처리할 때 범용적인 단일 아키텍처로는 각기 다른 특성을 가진 데이터 도메인들을 효율적으로 처리하는 데 구조적 한계가 있습니다.
59
+
60
+ ### 도메인별 기술적 난제 매트릭스
61
+
62
+ | 도메인 | 데이터 특성 | 주요 기술적 난제 | 미해결 시 영향 (Impact) |
63
+ |--------|------------|-----------------|------------------------|
64
+ | [도메인1] | [특성: 변동성, 크기, 조회 패턴] | [난제] | [비즈니스 영향] |
65
+ | [도메인2] | [특성] | [난제] | [비즈니스 영향] |
66
+ | [도메인3] | [특성] | [난제] | [비즈니스 영향] |
67
+
68
+ **작성 팁**:
69
+ - 데이터 특성: 초고변동성, 대용량, Read-Heavy, 외부 소유 등
70
+ - 기술적 난제: 캐싱 불가, Latency vs Consistency, Fan-out 처리, 통제 불가능한 Latency 등
71
+ - 미해결 시 영향: 오판매, 과도한 인프라 비용, 장애 전파 등 **비즈니스 관점**으로 기술
72
+
73
+ ---
74
+
75
+ ## 3. Functional Requirements
76
+
77
+ | Type | Requirement | Description |
78
+ |------|-------------|-------------|
79
+ | Must-have | [요구사항명] | [상세 설명] |
80
+ | Must-have | [요구사항명] | [상세 설명] |
81
+ | Must-have | Fail-fast ([의존성]) | [SPOF 시스템] 조회 실패 시 즉시 에러 처리하여 [비즈니스 리스크]를 원천 차단 |
82
+ | Must-have | Fallback (Non-Critical) | [비SPOF 시스템] 장애 시 주문 흐름을 막지 않고 Default 값 반환 |
83
+ | nice-to-have | [요구사항명] | [상세 설명] |
84
+
85
+ ---
86
+
87
+ ## 4. Non-Functional Requirements
88
+
89
+ ### 4.1. Performance & Scalability
90
+
91
+ | Component | Type | Requirement |
92
+ |-----------|------|-------------|
93
+ | [컴포넌트1] 조회 API | Latency | P99 [X]ms 이하 |
94
+ | [컴포넌트2] 조회 API | Latency | P99 [X]ms 이하 |
95
+ | System Total | Throughput | Target [X] TPS |
96
+ | System Total | Scalability | 트래픽 급증 시 수평 확장(Scale-out) 지원 |
97
+
98
+ **TPS 산출 근거**:
99
+ ```
100
+ 현재 피크 * 연간 기대 성장률^(years)
101
+ 예: 66,000 * 1.2^3 = 114,000 TPS
102
+ ```
103
+
104
+ ### 4.2. Availability & Reliability
105
+
106
+ | Metric | Threshold | Action |
107
+ |--------|-----------|--------|
108
+ | Hard Failure | HTTP 5xx > [X]% ([의존성]) | 즉시 장애 간주 (SLA 차감), Fail-fast |
109
+ | Soft Failure | Default 반환율 ≥ [X]% | 장애 간주 (SLA 차감), 심각한 품질 저하로 판단 |
110
+ | Degradation | Default 반환율 < [X]% | 정상 가동 간주 (SLA 차감 X), Alert 발송 |
111
+ | Data Consistency | [도메인1] 변경 반영 | [X]분/초 이내 반영 |
112
+ | Data Consistency | [도메인2] 변경 반영 | [X]ms 이내 반영 |
113
+
114
+ ---
115
+
116
+ ## 5. Goal / Non-Goal
117
+
118
+ ### 5.1. Goal: [목표 제목]
119
+
120
+ 본 설계의 최우선 목적은 [핵심 목표]입니다.
121
+
122
+ - **[세부 목표1]**: [상세 설명]
123
+ - **[세부 목표2]**: [상세 설명]
124
+ - **[세부 목표3]**: [상세 설명]
125
+
126
+ ### 5.2. Non-Goal: [제외 범위 제목]
127
+
128
+ [포함하지 않는 범위]에 집중하며, [제외하는 내용]은 본 설계의 범위에서 제외합니다.
129
+
130
+ - **[제외1]**: [이유]
131
+ - **[제외2]**: [이유]
132
+ - **[제외3]**: [이유]
133
+
134
+ ---
135
+
136
+ ## 6. Proposed Design: [전략명]
137
+
138
+ [전체 아키텍처 다이어그램 - Mermaid 또는 이미지]
139
+
140
+ ### 도메인별 서빙 전략 요약
141
+
142
+ | 도메인 | 원천/주 저장소 | 서빙 전략 | 프로토콜 | 동기화 방식 | 장애 대응 전략 |
143
+ |--------|--------------|----------|---------|------------|--------------|
144
+ | [도메인1] | [저장소] | [전략] | [프로토콜] | [방식] | [Hard/Soft Failure] |
145
+ | [도메인2] | [저장소] | [전략] | [프로토콜] | [방식] | [Hard/Soft Failure] |
146
+ | [도메인3] | [저장소] | [전략] | [프로토콜] | [방식] | [Hard/Soft Failure] |
147
+
148
+ ---
149
+
150
+ ### 6.1. [도메인1] 조회 아키텍처: [전략명]
151
+
152
+ [도메인 설명 - 왜 이 도메인이 중요한지]
153
+
154
+ #### Challenge (제약 사항)
155
+
156
+ - **[제약1]**: [상세 설명]
157
+ - **[제약2]**: [상세 설명]
158
+ - **[제약3]**: [상세 설명]
159
+
160
+ #### Serving Strategy (조회 전략)
161
+
162
+ - **[전략명]**: [상세 설명]
163
+ - **[최적화1]**: [상세 설명]
164
+ - **[최적화2]**: [상세 설명]
165
+
166
+ #### Data Synchronization (데이터 동기화)
167
+
168
+ - **[동기화 방식]**: [상세 설명]
169
+ - 따라서 [결론]
170
+
171
+ #### Consistency Guarantee (정합성 목표)
172
+
173
+ - **[정합성 수준]**: [상세 설명 - Strong/Eventual Consistency, NRT 등]
174
+
175
+ #### Key Technology (기술 스택)
176
+
177
+ | 항목 | 기술 | 설명 |
178
+ |------|------|------|
179
+ | Protocol | [프로토콜] | [선택 이유] |
180
+ | Serialization | [직렬화 방식] | [선택 이유] |
181
+ | Load Balancer | [LB 방식] | [선택 이유] |
182
+
183
+ #### Resilience & Fallback (장애 대응)
184
+
185
+ - **[시나리오1]**: [대응 방안]
186
+ - **[시나리오2]**: [대응 방안]
187
+
188
+ ---
189
+
190
+ ### 6.2. [도메인2] 조회 아키텍처: [전략명]
191
+
192
+ [위와 동일한 구조로 작성]
193
+
194
+ ---
195
+
196
+ ### 6.3. [도메인3] 조회 아키텍처: [전략명]
197
+
198
+ [위와 동일한 구조로 작성]
199
+
200
+ ---
201
+
202
+ ## 7. Resilience & Reliability Architecture (공통 장애 대응 아키텍처)
203
+
204
+ 개별 시스템의 전략을 넘어, 시스템 전체가 장애 상황에서 어떻게 생존할 것인지를 정의하는 계층적 방어(Tiered Defense) 구조입니다.
205
+
206
+ ### 7.1. 장애 등급 정의
207
+
208
+ | 장애 등급 | 정의 | 판단 기준 (Threshold) | 대응 및 SLA 반영 |
209
+ |----------|------|----------------------|-----------------|
210
+ | Hard Failure (가용성 장애) | 서비스가 불능이거나 핵심 의존성이 실패한 상태 | HTTP 5xx Error > [X]% (5분 평균) / [SPOF 시스템] 조회 실패 | 즉시 장애 간주 (SLA 차감), Fail-fast |
211
+ | Soft Failure (기능적 장애) | API는 정상 응답(200 OK)하나 데이터 누락으로 Default 값이 반환된 상태 | Default 반환율 ≥ [X]% (Critical Threshold) | 장애 간주 (SLA 차감), [X]% 이상 대량 발생은 시스템적 결함으로 판단 |
212
+ | Degradation (품질 저하) | 간헐적인 데이터 누락으로 Default 값이 소량 반환된 상태 | Default 반환율 < [X]% (Warning Threshold) | 정상 가동 간주 (SLA 차감 X), Alert만 발송 |
213
+
214
+ **가용성 지표 정의**:
215
+ > 우리는 "서버가 켜져 있는가"가 아니라 "고객에게 유효한 응답을 주었는가"를 가용성의 기준으로 삼습니다.
216
+ > 따라서 가용성 지표 산정 시 [X]%를 초과하는 Soft Failure를 다운타임에 포함합니다.
217
+
218
+ ```
219
+ Availability = (전체 요청 - (Hard failure + Soft failure)) / 전체 요청
220
+ ```
221
+
222
+ ### 7.2. 의존성 시스템별 장애 대응 매트릭스
223
+
224
+ | 의존 시스템 | 데이터 특성 | 실패 시 시스템 상태 | 대응 전략 (Action) | 근거 |
225
+ |------------|-----------|-------------------|-------------------|------|
226
+ | [시스템1] | [특성: 실시간성, 변동성 등] | Hard Failure (장애) | Fail-fast 또는 전면 차단 | [비즈니스 근거] |
227
+ | [시스템2] | [특성] | Soft Failure (저하) | Local Cache → Default 반환 | [근거] |
228
+ | [시스템3] | [특성] | Soft Failure (저하) | Redis → DB → Default 반환 | [근거] |
229
+
230
+ ### 7.3. Circuit Breaker 및 Fallback 정책
231
+
232
+ - **[SPOF 시스템]**: Circuit Open 시 Fail-fast. 계산을 중단하고 즉시 장애를 전파합니다.
233
+ - **[Non-Critical 시스템]**: Circuit Open 시 Fallback 모드 진입. 1차로 로컬 캐시를 확인하고, 실패 시 Default 값을 반환합니다.
234
+
235
+ ### 7.4. 사전 정의된 Default 값
236
+
237
+ 각종 예외나 시스템 failure로 인한 비정상 상태에서 서비스 중단을 막기 위해 fallback으로 제공할 default 값입니다.
238
+
239
+ **Default [Object] (TBU)**:
240
+
241
+ | 항목 | 값 | 설명 |
242
+ |------|-----|------|
243
+ | [필드1] | [값] | [설명] |
244
+ | [필드2] | [값] | [설명] |
245
+ | [필드3] | [값] | [설명] |
246
+
247
+ ---
248
+
249
+ ## 8. Appendix
250
+
251
+ ### 8.1. 참고 문서
252
+
253
+ 1. [문서1 제목과 링크]
254
+ 2. [문서2 제목과 링크]
255
+ 3. [문서3 제목과 링크]
256
+
257
+ ### 8.2. 관련 LLD
258
+
259
+ - [관련 LLD 1]
260
+ - [관련 LLD 2]
261
+ ```
262
+
263
+ ---
264
+
265
+ ## 저장 경로
266
+
267
+ `documents/lld/{기능명}-lld.md`
268
+
269
+ 예시:
270
+ - `documents/lld/promise-data-strategy-lld.md`
271
+ - `documents/lld/order-processing-lld.md`
272
+
273
+ ---
274
+
275
+ ## 도메인별 6가지 관점 작성 가이드
276
+
277
+ 각 도메인 섹션에서 반드시 다뤄야 할 6가지 관점입니다:
278
+
279
+ | 관점 | 질문 | 예시 |
280
+ |------|------|------|
281
+ | **Challenge** | 이 도메인이 직면한 기술적 제약은? | "초고변동성으로 캐싱 불가", "Fan-out 트래픽 처리" |
282
+ | **Serving Strategy** | 데이터를 어떻게 서빙할 것인가? | "Direct RPC Call", "Redis-Centric CQRS", "Data Serving Layer" |
283
+ | **Data Sync** | 원천 데이터와 어떻게 동기화? | "Real-time", "Worker/Polling", "Event-Driven" |
284
+ | **Consistency** | 어느 수준의 정합성을 보장? | "Strong Consistency", "NRT < 10s", "Eventual < 5min" |
285
+ | **Key Technology** | 어떤 기술을 사용? | "gRPC + Protobuf", "Redis Cluster", "Kafka" |
286
+ | **Resilience** | 장애 시 어떻게 대응? | "Fail-fast", "Tiered Defense", "Circuit Breaker" |
@@ -0,0 +1,352 @@
1
+ ---
2
+ name: prd-generator
3
+ description: |
4
+ 간단한 아이디어나 기능 요청을 표준 PRD(Product Requirements Document)로 구체화합니다.
5
+ "PRD 작성해줘", "기획서 만들어줘", "이 기능 PRD로 정리해줘", "제품 요구사항 문서 작성",
6
+ "기획 문서 만들어줘", "요구사항 정의서 작성", "이 아이디어 PRD로" 등의 요청에 사용합니다.
7
+ PRD는 HLD(High Level Design) 작성의 입력 문서가 됩니다.
8
+ 사용자의 요청만으로 알아서 작성하지 않고, 질문을 통해 충분한 정보를 수집한 후 작성합니다.
9
+ allowed-tools: Read, Glob, Grep, Write, Edit, WebSearch, WebFetch
10
+ ---
11
+
12
+ # PRD Generator
13
+
14
+ ## 페르소나
15
+
16
+ @.claude/personas/po.md
17
+
18
+ > **PRD의 역할**: "무엇을(What)"과 "왜(Why)"를 정의합니다.
19
+ > "어떻게(How)" 구현할지는 HLD/LLD에서 다룹니다.
20
+
21
+ ---
22
+
23
+ ## 문서 체계
24
+
25
+ ```
26
+ PRD (What & Why) → HLD (How-개략) → LLD (How-상세)
27
+ ─────────────────────────────────────────────────────────────
28
+ • 문제 정의 • 시스템 아키텍처 • API 스펙
29
+ • 비즈니스 목표 • 컴포넌트 구조 • DB 스키마
30
+ • 사용자 요구사항 • 기술 스택 선정 • 시퀀스 다이어그램
31
+ • 성공 지표 • 시스템 간 연동 • 에러 처리
32
+ • 범위 정의 • 트레이드오프 분석 • 상세 구현
33
+ ```
34
+
35
+ ---
36
+
37
+ ## 워크플로우
38
+
39
+ ```mermaid
40
+ flowchart TD
41
+ A[사용자 요청] --> B[Step 1: 문제/배경 파악]
42
+ B --> C{정보 충분?}
43
+ C -->|No| D[보충 질문 2-3개]
44
+ D --> E[사용자 응답]
45
+ E --> C
46
+ C -->|Yes| F[Step 2: 목표/지표 파악]
47
+ F --> G{정보 충분?}
48
+ G -->|No| H[보충 질문 2-3개]
49
+ H --> I[사용자 응답]
50
+ I --> G
51
+ G -->|Yes| J[Step 3: 요구사항/범위 파악]
52
+ J --> K{정보 충분?}
53
+ K -->|No| L[보충 질문 2-3개]
54
+ L --> M[사용자 응답]
55
+ M --> K
56
+ K -->|Yes| N[Step 4: PRD 작성]
57
+ N --> O[사용자 검토 요청]
58
+ O -->|수정| N
59
+ O -->|승인| P[저장: documents/feature/NAME/PRD.md]
60
+ ```
61
+
62
+ ---
63
+
64
+ ## Step 1: 문제/배경 파악
65
+
66
+ ### 수집해야 할 정보
67
+ - 해결하려는 문제가 무엇인가?
68
+ - 현재 상황(As-Is)은 어떠한가?
69
+ - 문제의 규모는? (빈도, 손실액, 영향 받는 사용자 수)
70
+ - 이 문제로 인한 비즈니스 영향은?
71
+
72
+ ### 질문 예시 (한 번에 2-3개)
73
+ ```
74
+ 1. "이 문제가 구체적으로 어떤 상황에서 발생하나요?"
75
+ 2. "현재 이 문제로 인해 어떤 영향(손실, 불편)이 있나요?"
76
+ 3. "대략적인 규모를 알 수 있을까요? (발생 빈도, 영향 받는 사용자 수 등)"
77
+ ```
78
+
79
+ ### 정보가 충분한 기준
80
+ - [ ] 현재 상황이 구체적으로 기술됨
81
+ - [ ] 문제가 정량화됨 (숫자 포함)
82
+ - [ ] 비즈니스 영향이 명확함
83
+
84
+ ---
85
+
86
+ ## Step 2: 목표/지표 파악
87
+
88
+ ### 수집해야 할 정보
89
+ - 이 프로젝트의 성공 기준은 무엇인가?
90
+ - 어떤 지표가 개선되어야 하는가? (Before → After)
91
+ - 어떻게 측정할 것인가?
92
+
93
+ ### 질문 예시 (한 번에 2-3개)
94
+ ```
95
+ 1. "이 문제가 해결되면 어떤 지표가 개선될까요?"
96
+ 2. "현재 수치와 목표 수치를 알 수 있을까요?"
97
+ 3. "성공/실패를 어떻게 판단할 수 있을까요?"
98
+ ```
99
+
100
+ ### 정보가 충분한 기준
101
+ - [ ] 핵심 지표가 정의됨 (1-3개)
102
+ - [ ] Before/After 수치가 있음
103
+ - [ ] 측정 방법이 명확함
104
+
105
+ ---
106
+
107
+ ## Step 3: 요구사항/범위 파악
108
+
109
+ ### 수집해야 할 정보
110
+ - 핵심 사용자(페르소나)는 누구인가?
111
+ - 필수 기능(Must-have)은 무엇인가?
112
+ - 제외할 기능(Out-of-Scope)은 무엇인가?
113
+ - 비즈니스 제약 조건은? (일정, 예산, 인력)
114
+
115
+ ### 질문 예시 (한 번에 2-3개)
116
+ ```
117
+ 1. "이 기능의 핵심 사용자는 누구인가요? (연령, 직업, 특성)"
118
+ 2. "이번 버전에 반드시 포함되어야 할 기능은 무엇인가요?"
119
+ 3. "명시적으로 제외하거나 나중으로 미뤄야 할 것이 있나요?"
120
+ 4. "일정이나 예산 등 제약 조건이 있나요?"
121
+ ```
122
+
123
+ ### 정보가 충분한 기준
124
+ - [ ] 핵심 사용자가 정의됨
125
+ - [ ] 필수 기능이 3-5개로 정리됨
126
+ - [ ] In-Scope/Out-of-Scope가 구분됨
127
+
128
+ ---
129
+
130
+ ## Step 4: PRD 작성
131
+
132
+ 모든 정보가 수집되면 아래 구조로 PRD를 작성합니다.
133
+
134
+ ### PRD 구조
135
+
136
+ ```markdown
137
+ ---
138
+ document_type: PRD
139
+ version: 1.0.0
140
+ status: draft
141
+ created_at: YYYY-MM-DD
142
+ owner: [작성자]
143
+ ---
144
+
145
+ # [PRD] 기능명
146
+
147
+ ## 1. Executive Summary
148
+ [한 문단 요약 - 무엇을, 왜, 누구를 위해]
149
+
150
+ ## 2. Background & Problem
151
+
152
+ ### 현재 상황 (As-Is)
153
+ - [현재 프로세스/시스템 설명]
154
+ - [관련 데이터]
155
+
156
+ ### 문제
157
+ 1. **[문제 1]**: [정량적 규모]
158
+ 2. **[문제 2]**: [정량적 규모]
159
+
160
+ ### 비즈니스 영향
161
+ - 정량적: [월/연 손실액]
162
+ - 정성적: [사용자 불만, 경쟁 열위 등]
163
+
164
+ ## 3. Objectives & Success Metrics
165
+
166
+ ### 핵심 목표
167
+ 1. [목표 1]: X → Y
168
+
169
+ ### Success Metrics
170
+ | 지표 | 현재 | 목표 | 측정 방법 |
171
+ |------|------|------|----------|
172
+ | [지표1] | [X] | [Y] | [방법] |
173
+
174
+ ## 4. Target Users
175
+
176
+ ### Primary Persona
177
+ - **인구통계**: [연령, 성별, 직업]
178
+ - **행동 특성**: [서비스 사용 패턴]
179
+ - **Pain Point**: [겪고 있는 불편함]
180
+
181
+ ## 5. Requirements
182
+
183
+ ### User Stories
184
+ 1. [사용자]로서, [기능]을 원한다, [목적] 때문에
185
+
186
+ ### Key Features
187
+ 1. **[기능명]**: [설명]
188
+
189
+ ## 6. Scope
190
+
191
+ ### ✅ In-Scope
192
+ - [포함 항목]
193
+
194
+ ### ❌ Out-of-Scope
195
+ - [제외 항목] - 이유: [이유]
196
+
197
+ ### 🔮 Future
198
+ - [향후 검토 항목]
199
+
200
+ ## 7. Constraints
201
+ - 비즈니스 제약: [일정, 예산, 인력]
202
+ - 규정 제약: [개인정보보호, 법적 요건]
203
+
204
+ ## 8. Risks
205
+ | 위험 | 영향 | 완화 방안 |
206
+ |------|------|----------|
207
+ | [위험] | [영향] | [대응] |
208
+
209
+ ---
210
+ **다음 단계**: HLD 작성
211
+ ```
212
+
213
+ ---
214
+
215
+ ## 금지 사항
216
+
217
+ ### ❌ 절대 하지 말 것
218
+
219
+ 1. **정보 없이 추측하여 작성 금지**
220
+ ```
221
+ ❌ 사용자가 "로그인 기능 PRD 써줘"라고 하면 바로 작성
222
+ ✅ "어떤 문제를 해결하려는 건가요?" 질문부터 시작
223
+ ```
224
+
225
+ 2. **솔루션부터 제시 금지**
226
+ ```
227
+ ❌ "챗봇 기능이 필요합니다"
228
+ ✅ "고객 문의 응답 시간이 평균 2시간 지연됩니다"
229
+ ```
230
+
231
+ 3. **모호한 표현 금지**
232
+ ```
233
+ ❌ "빠르게", "많이", "개선", "최적화"
234
+ ✅ "3초 이내", "30% 증가", "32% → 70%"
235
+ ```
236
+
237
+ 4. **기술 구현 상세 금지** (HLD/LLD 영역)
238
+ ```
239
+ ❌ "Spring AI로 구현", "Redis 캐싱 적용", "REST API 설계"
240
+ ✅ "AI 기반 추천 필요", "빠른 응답 필요"
241
+ ```
242
+
243
+ 5. **범위 없는 PRD 금지**
244
+ ```
245
+ ❌ "모든 필요한 기능 구현"
246
+ ✅ In-Scope 5개, Out-of-Scope 3개 명시
247
+ ```
248
+
249
+ ---
250
+
251
+ ## Good/Bad 예시
252
+
253
+ ### 배경 및 문제
254
+
255
+ ```markdown
256
+ # ✅ Good
257
+ ## 현재 상황
258
+ 사용자는 패션 추천을 받기 위해 8개 질문에 답변해야 하며,
259
+ 평균 완료 시간은 3분 30초입니다.
260
+
261
+ ## 문제
262
+ - 높은 이탈률: 68%가 온보딩 중 이탈
263
+ - 월 손실: 4,500명 잠재 고객 손실 (추정 ₩15,000,000)
264
+
265
+ # ❌ Bad
266
+ 사용자가 질문에 답하는 게 너무 오래 걸립니다.
267
+ 그래서 간편한 온보딩이 필요합니다.
268
+ → 문제 정량화 없음, 솔루션 먼저 제시
269
+ ```
270
+
271
+ ### 목표
272
+
273
+ ```markdown
274
+ # ✅ Good
275
+ | 지표 | 현재 | 목표 | 측정 방법 |
276
+ |------|------|------|----------|
277
+ | 온보딩 완료율 | 32% | 70%+ | GA4 funnel |
278
+ | 완료 시간 | 3분 30초 | 1분 이내 | 세션 로그 |
279
+
280
+ # ❌ Bad
281
+ - 사용자 경험 개선
282
+ - 더 많은 사람들이 서비스를 사용하도록
283
+ → 측정 불가능, Before/After 없음
284
+ ```
285
+
286
+ ### User Story
287
+
288
+ ```markdown
289
+ # ✅ Good
290
+ "패션 초보 사용자로서,
291
+ 사진 몇 장만 선택해서 스타일 프로필을 완성하고 싶다,
292
+ 복잡한 질문에 답하지 않아도 되도록"
293
+
294
+ # ❌ Bad
295
+ "사용자는 프로필을 만들 수 있어야 한다"
296
+ → 동기/맥락 없음
297
+ ```
298
+
299
+ ### Scope
300
+
301
+ ```markdown
302
+ # ✅ Good
303
+ **In-Scope**
304
+ - 이미지 기반 스타일 선택 (4개)
305
+ - 간소화된 체형 입력 (3개 필드)
306
+
307
+ **Out-of-Scope**
308
+ - 음성 입력 (기술 검증 필요, v2.0)
309
+ - SNS 연동 (우선순위 낮음)
310
+
311
+ # ❌ Bad
312
+ - 온보딩 개선
313
+ - 필요한 기능 추가
314
+ → 구체성 없음, 경계 불명확
315
+ ```
316
+
317
+ ---
318
+
319
+ ## 체크리스트
320
+
321
+ ### 정보 수집 완료 확인
322
+ - [ ] 문제가 정량화되어 있는가?
323
+ - [ ] 목표 지표가 Before/After로 정의되어 있는가?
324
+ - [ ] 핵심 사용자가 구체적으로 정의되어 있는가?
325
+ - [ ] In-Scope/Out-of-Scope가 명확한가?
326
+
327
+ ### PRD 작성 완료 확인
328
+ - [ ] 솔루션 없이 문제가 독립적으로 기술되었는가?
329
+ - [ ] 모든 지표가 측정 가능한가?
330
+ - [ ] User Story가 "~로서, ~하고 싶다, ~ 때문에" 형식인가?
331
+ - [ ] 기술 구현 상세가 포함되지 않았는가?
332
+ - [ ] 비개발자도 이해 가능한가?
333
+
334
+ ---
335
+
336
+ ## 산출물
337
+
338
+ **저장 위치**: `documents/feature/<feature-name>/PRD.md`
339
+
340
+ **사용자 검토**: PRD 작성 후 반드시 사용자에게 검토 요청
341
+ ```
342
+ PRD 초안을 작성했습니다. 검토 후 수정이 필요하면 말씀해주세요.
343
+ 승인되면 저장하고 HLD 작성으로 넘어갑니다.
344
+ ```
345
+
346
+ ---
347
+
348
+ ## 관련 스킬
349
+
350
+ - `/skill:hld-generator`: PRD 기반 High Level Design 생성
351
+ - `/skill:lld-generator`: HLD 기반 Low Level Design 생성
352
+ - `/skill:design-orchestrator`: PRD-HLD-LLD 연계 관리