@kood/claude-code 0.2.4 → 0.3.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 (130) hide show
  1. package/dist/index.js +13 -8
  2. package/package.json +1 -1
  3. package/templates/.claude/agents/code-reviewer.md +371 -19
  4. package/templates/.claude/agents/dependency-manager.md +197 -0
  5. package/templates/.claude/agents/deployment-validator.md +136 -0
  6. package/templates/.claude/agents/git-operator.md +147 -0
  7. package/templates/.claude/agents/implementation-executor.md +202 -0
  8. package/templates/.claude/agents/lint-fixer.md +155 -0
  9. package/templates/.claude/agents/refactor-advisor.md +339 -29
  10. package/templates/.claude/commands/agent-creator.md +355 -0
  11. package/templates/.claude/commands/docs-creator.md +404 -163
  12. package/templates/.claude/commands/docs-refactor.md +400 -113
  13. package/templates/.claude/commands/execute.md +357 -185
  14. package/templates/.claude/commands/git-all.md +16 -70
  15. package/templates/.claude/commands/git-session.md +36 -68
  16. package/templates/.claude/commands/git.md +20 -69
  17. package/templates/.claude/commands/lint-fix.md +164 -107
  18. package/templates/.claude/commands/lint-init.md +142 -168
  19. package/templates/.claude/commands/plan.md +300 -84
  20. package/templates/.claude/commands/prd.md +613 -0
  21. package/templates/.claude/commands/pre-deploy.md +242 -0
  22. package/templates/.claude/commands/subagent-creator.md +118 -0
  23. package/templates/.claude/commands/version-update.md +45 -57
  24. package/templates/hono/CLAUDE.md +99 -54
  25. package/templates/hono/docs/guides/conventions.md +352 -0
  26. package/templates/hono/docs/guides/env-setup.md +347 -0
  27. package/templates/hono/docs/guides/getting-started.md +239 -0
  28. package/templates/hono/docs/library/hono/error-handling.md +20 -29
  29. package/templates/hono/docs/library/hono/index.md +25 -52
  30. package/templates/hono/docs/library/hono/middleware.md +16 -75
  31. package/templates/hono/docs/library/hono/rpc.md +7 -35
  32. package/templates/hono/docs/library/hono/validation.md +25 -45
  33. package/templates/hono/docs/library/t3-env/index.md +374 -0
  34. package/templates/npx/CLAUDE.md +165 -65
  35. package/templates/npx/docs/library/commander/index.md +10 -73
  36. package/templates/npx/docs/library/fs-extra/index.md +21 -113
  37. package/templates/npx/docs/library/prompts/index.md +30 -176
  38. package/templates/npx/docs/references/patterns.md +75 -48
  39. package/templates/tanstack-start/CLAUDE.md +101 -77
  40. package/templates/tanstack-start/docs/architecture.md +427 -0
  41. package/templates/tanstack-start/docs/design.md +558 -0
  42. package/templates/tanstack-start/docs/guides/conventions.md +132 -32
  43. package/templates/tanstack-start/docs/guides/env-setup.md +127 -62
  44. package/templates/tanstack-start/docs/guides/getting-started.md +81 -20
  45. package/templates/tanstack-start/docs/guides/hooks.md +241 -36
  46. package/templates/tanstack-start/docs/guides/routes.md +213 -61
  47. package/templates/tanstack-start/docs/guides/services.md +260 -24
  48. package/templates/tanstack-start/docs/library/better-auth/index.md +469 -16
  49. package/templates/tanstack-start/docs/library/t3-env/index.md +307 -0
  50. package/templates/tanstack-start/docs/library/tanstack-query/index.md +12 -21
  51. package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +22 -35
  52. package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +7 -24
  53. package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +26 -39
  54. package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +23 -26
  55. package/templates/tanstack-start/docs/library/tanstack-router/error-handling.md +32 -147
  56. package/templates/tanstack-start/docs/library/tanstack-router/hooks.md +25 -167
  57. package/templates/tanstack-start/docs/library/tanstack-router/index.md +39 -74
  58. package/templates/tanstack-start/docs/library/tanstack-router/navigation.md +46 -116
  59. package/templates/tanstack-start/docs/library/tanstack-router/route-context.md +35 -154
  60. package/templates/tanstack-start/docs/library/tanstack-router/search-params.md +32 -171
  61. package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +7 -15
  62. package/templates/tanstack-start/docs/library/tanstack-start/routing.md +16 -23
  63. package/templates/tanstack-start/docs/library/zod/complex-types.md +12 -31
  64. package/templates/tanstack-start/docs/library/zod/index.md +18 -35
  65. package/templates/tanstack-start/docs/library/zod/transforms.md +11 -25
  66. package/templates/tanstack-start/docs/library/zod/validation.md +12 -34
  67. package/templates/.claude/agents/debug-detective.md +0 -37
  68. package/templates/.claude/agents/test-writer.md +0 -41
  69. package/templates/.claude/commands/feedback.md +0 -199
  70. package/templates/.claude/commands/ts-fix.md +0 -176
  71. package/templates/.claude/skills/command-creator/LICENSE.txt +0 -202
  72. package/templates/.claude/skills/command-creator/SKILL.md +0 -245
  73. package/templates/.claude/skills/command-creator/scripts/init_command.py +0 -244
  74. package/templates/.claude/skills/command-creator/scripts/package_command.py +0 -125
  75. package/templates/.claude/skills/command-creator/scripts/quick_validate.py +0 -143
  76. package/templates/.claude/skills/frontend-design/SKILL.md +0 -310
  77. package/templates/.claude/skills/frontend-design/references/animation-patterns.md +0 -446
  78. package/templates/.claude/skills/frontend-design/references/colors-2026.md +0 -244
  79. package/templates/.claude/skills/frontend-design/references/typography-2026.md +0 -302
  80. package/templates/.claude/skills/gemini-review/SKILL.md +0 -118
  81. package/templates/.claude/skills/gemini-review/references/checklists.md +0 -129
  82. package/templates/.claude/skills/gemini-review/references/prompt-templates.md +0 -274
  83. package/templates/.claude/skills/skill-creator/LICENSE.txt +0 -202
  84. package/templates/.claude/skills/skill-creator/SKILL.md +0 -184
  85. package/templates/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
  86. package/templates/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
  87. package/templates/.claude/skills/skill-creator/scripts/quick_validate.py +0 -65
  88. package/templates/hono/docs/library/ai-sdk/index.md +0 -190
  89. package/templates/hono/docs/library/ai-sdk/openrouter.md +0 -111
  90. package/templates/hono/docs/library/ai-sdk/providers.md +0 -102
  91. package/templates/hono/docs/library/ai-sdk/streaming.md +0 -146
  92. package/templates/hono/docs/library/ai-sdk/structured-output.md +0 -161
  93. package/templates/hono/docs/library/ai-sdk/tools.md +0 -144
  94. package/templates/hono/docs/library/drizzle/cloudflare-d1.md +0 -247
  95. package/templates/hono/docs/library/drizzle/config.md +0 -167
  96. package/templates/hono/docs/library/drizzle/index.md +0 -259
  97. package/templates/hono/docs/library/hono/env-setup.md +0 -169
  98. package/templates/hono/docs/library/pino/index.md +0 -146
  99. package/templates/tanstack-start/docs/architecture/architecture.md +0 -243
  100. package/templates/tanstack-start/docs/deployment/cloudflare.md +0 -132
  101. package/templates/tanstack-start/docs/deployment/index.md +0 -163
  102. package/templates/tanstack-start/docs/deployment/nitro.md +0 -110
  103. package/templates/tanstack-start/docs/deployment/railway.md +0 -147
  104. package/templates/tanstack-start/docs/deployment/vercel.md +0 -135
  105. package/templates/tanstack-start/docs/design/components.md +0 -175
  106. package/templates/tanstack-start/docs/design/index.md +0 -151
  107. package/templates/tanstack-start/docs/design/safe-area.md +0 -118
  108. package/templates/tanstack-start/docs/design/tailwind-setup.md +0 -156
  109. package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +0 -472
  110. package/templates/tanstack-start/docs/library/ai-sdk/index.md +0 -264
  111. package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +0 -371
  112. package/templates/tanstack-start/docs/library/ai-sdk/providers.md +0 -403
  113. package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +0 -320
  114. package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +0 -454
  115. package/templates/tanstack-start/docs/library/ai-sdk/tools.md +0 -473
  116. package/templates/tanstack-start/docs/library/better-auth/2fa.md +0 -48
  117. package/templates/tanstack-start/docs/library/better-auth/advanced.md +0 -55
  118. package/templates/tanstack-start/docs/library/better-auth/plugins.md +0 -34
  119. package/templates/tanstack-start/docs/library/better-auth/session.md +0 -47
  120. package/templates/tanstack-start/docs/library/better-auth/setup.md +0 -41
  121. package/templates/tanstack-start/docs/library/drizzle/cloudflare-d1.md +0 -147
  122. package/templates/tanstack-start/docs/library/drizzle/config.md +0 -118
  123. package/templates/tanstack-start/docs/library/drizzle/crud.md +0 -205
  124. package/templates/tanstack-start/docs/library/drizzle/index.md +0 -79
  125. package/templates/tanstack-start/docs/library/drizzle/relations.md +0 -202
  126. package/templates/tanstack-start/docs/library/drizzle/schema.md +0 -154
  127. package/templates/tanstack-start/docs/library/drizzle/setup.md +0 -96
  128. package/templates/tanstack-start/docs/library/drizzle/transactions.md +0 -127
  129. package/templates/tanstack-start/docs/library/pino/index.md +0 -320
  130. /package/templates/hono/docs/{architecture/architecture.md → architecture.md} +0 -0
@@ -0,0 +1,613 @@
1
+ ---
2
+ description: PRD(Product Requirements Document) 생성
3
+ allowed-tools: Read, Write, Glob, Grep, Task, mcp__sequential-thinking__sequentialthinking
4
+ argument-hint: <기능/제품 설명>
5
+ ---
6
+
7
+ @../instructions/sequential-thinking-guide.md
8
+
9
+ # PRD Command
10
+
11
+ 기능/제품의 요구사항 문서(PRD)를 작성.
12
+
13
+ **대상**: $ARGUMENTS
14
+
15
+ ---
16
+
17
+ <workflow>
18
+
19
+ ## 실행 흐름
20
+
21
+ | 단계 | 작업 | 도구 |
22
+ |------|------|------|
23
+ | 1. 입력 확인 | ARGUMENT 검증, 없으면 질문 | - |
24
+ | 2. Sequential Thinking | 3-5단계로 PRD 구조 분석 | sequentialthinking |
25
+ | 3. 코드베이스 확인 | 관련 코드/문서 탐색 (필요시) | Task (Explore) |
26
+ | 4. PRD 작성 | 15개 섹션 구조로 작성 | Write |
27
+ | 5. 저장 | `.claude/plans/` 또는 `docs/prd/` | - |
28
+
29
+ </workflow>
30
+
31
+ ---
32
+
33
+ <forbidden>
34
+
35
+ | 분류 | 금지 |
36
+ |------|------|
37
+ | **문제 정의** | 솔루션/기능 목록 포함 |
38
+ | **범위** | In/Out 구분 없이 나열 |
39
+ | **표현** | 모호한 표현 ("좋은 UX", "빠르게") |
40
+ | **스타일** | 마케팅 문구, 과도한 수식어 |
41
+
42
+ </forbidden>
43
+
44
+ ---
45
+
46
+ <required>
47
+
48
+ | 분류 | 필수 |
49
+ |------|------|
50
+ | **구조** | 15개 섹션 (메타데이터~템플릿) |
51
+ | **기능 요구사항** | User Stories + Functional + Non-functional |
52
+ | **지표** | 현재값 → 목표값 형태 |
53
+ | **가정/리스크** | 별도 섹션으로 명시 |
54
+ | **스타일** | 짧고 명확한 문장, 구체적 예시 |
55
+
56
+ </required>
57
+
58
+ ---
59
+
60
+ <prd_structure>
61
+
62
+ ## PRD 15개 섹션 구조
63
+
64
+ ### 1. 메타데이터
65
+
66
+ | 항목 | 내용 |
67
+ |------|------|
68
+ | **제목** | 제품명 + 버전/설명 |
69
+ | **작성자** | PM/오너 |
70
+ | **버전** | v0.1 (초안), v1.0 (확정) 등 |
71
+ | **날짜** | 최초 작성일, 마지막 수정일 |
72
+ | **관련 문서** | 전략 문서, 디자인, 기술 설계 링크 |
73
+
74
+ ### 2. 비전 & 배경
75
+
76
+ ```text
77
+ ✅ 3-5문장 이내
78
+ ✅ "어떤 사용자, 어떤 문제, 어떤 임팩트"
79
+
80
+ 포함 내용:
81
+ - 제품 비전 (1-2문장)
82
+ - 배경/컨텍스트 (왜 지금 하는지)
83
+ - 이전 시도/기존 제품 한계 (간단히)
84
+ ```
85
+
86
+ ### 3. 문제 정의 & 목표
87
+
88
+ | 섹션 | 내용 | 포함 요소 |
89
+ |------|------|----------|
90
+ | **문제 정의** | 어떤 문제/기회가 있는지 | 유저 피드백, 지표 (전환율, 이탈률) |
91
+ | **목표** | 비즈니스/사용자 목표 | 측정 가능한 KPI (예: 결제율 +5%) |
92
+
93
+ ```text
94
+ ❌ 솔루션/기능 목록 넣지 않기
95
+ ✅ "무엇이 문제이고 무엇을 달성하려 하는지"만
96
+ ```
97
+
98
+ ### 4. 범위 (Scope)
99
+
100
+ | 구분 | 내용 |
101
+ |------|------|
102
+ | **In Scope** | 이번 릴리즈 포함 기능 (P0/P1 표시) |
103
+ | **Out of Scope** | 하지 않는 것 (후속 릴리즈 메모) |
104
+
105
+ ### 5. 타깃 유저 & 페르소나
106
+
107
+ ```markdown
108
+ ## 주요 타깃 유저
109
+ - 세그먼트 1
110
+ - 세그먼트 2
111
+
112
+ ## 페르소나 (1-3개)
113
+ **이름(가명)**:
114
+ **역할**:
115
+ **목표**:
116
+ **Pain Point**:
117
+
118
+ **Primary Persona**: [가장 우선 해결]
119
+ ```
120
+
121
+ ```text
122
+ ✅ 행동/맥락/목표 중심
123
+ ❌ 기능 설명 아님
124
+ ```
125
+
126
+ ### 6. 사용자 여정 & 시나리오
127
+
128
+ ```markdown
129
+ ## 주요 여정 단계
130
+ 랜딩 → 가입 → 첫 세팅 → 핵심 기능 → 반복 → 업그레이드
131
+
132
+ ## 이번 PRD 구간
133
+ [해당 구간 표시]
134
+
135
+ ## 대표 시나리오
136
+ 사용자 A는 X를 하기 위해 앱을 연다.
137
+ ...
138
+ 그래서 Y를 할 수 있게 된다.
139
+ ```
140
+
141
+ ```text
142
+ ✅ 사용자 목적과 단계만 요약
143
+ ❌ 상세한 UI 단계 나열 금지
144
+ ```
145
+
146
+ ### 7. 기능 요구사항 (핵심)
147
+
148
+ #### 기능 구조
149
+
150
+ 각 기능마다 포함:
151
+
152
+ | 필드 | 내용 |
153
+ |------|------|
154
+ | **기능 이름** | - |
155
+ | **설명** | 1-2문장 |
156
+ | **목표/가치** | 어떤 문제 해결, 어떤 지표 영향 |
157
+ | **우선순위** | P0/P1 또는 Must/Should/Could |
158
+ | **관련 시나리오** | 사용자 시나리오/페르소나 |
159
+
160
+ #### 기능 상세
161
+
162
+ ```markdown
163
+ ### [기능 1]
164
+
165
+ #### User Stories
166
+ - As a [유저 타입], I want to [행동] so that [가치]
167
+ - ...
168
+
169
+ #### 기능 설명
170
+ 동작, 상태, 변형 설명.
171
+ - Happy Path
172
+ - Alternative Flow
173
+ - Edge Case
174
+
175
+ #### Functional Requirements
176
+ - 시스템은 X 버튼 클릭 시 Y API 호출해야 함
177
+ - 성공 시 Z 화면 이동해야 함
178
+
179
+ #### Non-functional Requirements
180
+ - 퍼포먼스: 응답 시간 < 200ms
181
+ - 보안: JWT 인증 필수
182
+ - 사용성: 키보드 네비게이션 지원
183
+ ```
184
+
185
+ ### 8. UX/UI 요구사항
186
+
187
+ | 항목 | 내용 |
188
+ |------|------|
189
+ | **핵심 원칙** | "간편함 우선", "모바일 우선" 등 |
190
+ | **UI 제약** | 필수 정보, 숨기면 안 되는 액션 |
191
+ | **접근성** | 다국어, 키보드, 대비, 폰트 제한 |
192
+
193
+ ```text
194
+ ✅ 디자인이 꼭 지켜야 하는 제약/원칙
195
+ ❌ 상세 디자인 아님
196
+ ```
197
+
198
+ ### 9. 기술/데이터 요구사항
199
+
200
+ | 항목 | 내용 |
201
+ |------|------|
202
+ | **기술 제약** | 스택, 호환성, 아키텍처 연결 |
203
+ | **통합/의존성** | 외부 서비스 API, 내부 시스템 |
204
+ | **데이터** | 저장/조회/집계 데이터, 엔티티 |
205
+ | **보안/규제** | 인증/인가, 개인정보, 감사 로그 |
206
+
207
+ ```text
208
+ ✅ 개발 설계 시작 전 꼭 알아야 할 제약
209
+ ❌ 구현 세부 코드 수준 금지
210
+ ```
211
+
212
+ ### 10. 성공 지표 & KPI
213
+
214
+ ```markdown
215
+ | 지표 | 현재값 | 목표값 | 측정 방법 |
216
+ |------|--------|--------|----------|
217
+ | 활성 사용자 | 1,000 | 1,500 | GA 이벤트 |
218
+ | 전환율 | 20% | 25% | 결제 완료 / 방문 |
219
+ | 이탈률 | 40% | 25% 이하 | 가입 플로우 |
220
+ ```
221
+
222
+ ```text
223
+ ✅ 현재값 → 목표값 형태
224
+ ✅ 측정 방법 명시
225
+ ```
226
+
227
+ ### 11. 리스크, 가정, 의존성
228
+
229
+ | 분류 | 내용 |
230
+ |------|------|
231
+ | **가정** | "유저는 이메일 인증 완료 상태", "마케팅 캠페인 진행" |
232
+ | **리스크** | 기술/비즈니스/UX 리스크, 심각도/가능성 |
233
+ | **의존성** | 다른 팀/프로젝트/벤더, 선행 작업 |
234
+
235
+ ```text
236
+ ✅ 별도 섹션으로 명확히
237
+ ❌ 기능 설명에 섞지 않기
238
+ ```
239
+
240
+ ### 12. 릴리즈 전략 & 마일스톤
241
+
242
+ ```markdown
243
+ ## 릴리즈 전략
244
+ - 전체 론칭 / 단계적 롤아웃 / A/B 테스트
245
+
246
+ ## 마일스톤
247
+ - 설계 완료: 2025-02-15
248
+ - 개발 완료: 2025-03-01
249
+ - 베타 릴리즈: 2025-03-15
250
+ - GA: 2025-04-01
251
+
252
+ ## 롤백 계획
253
+ - Feature Flag 사용
254
+ - 문제 발생 시 즉시 비활성화
255
+ ```
256
+
257
+ ```text
258
+ ✅ 타임라인 + 큰 이벤트만
259
+ ❌ 상세 스프린트 계획 금지
260
+ ```
261
+
262
+ ### 13. 오픈 이슈 & Todo
263
+
264
+ ```markdown
265
+ ## Open Questions
266
+
267
+ | 질문 | 결정자 | 기한 |
268
+ |------|--------|------|
269
+ | 가격 정책 | PM | 2025-02-10 |
270
+ | 온보딩 플로우 구성 | UX팀 | 2025-02-15 |
271
+ | 정책 문구 확정 | Legal | 2025-02-20 |
272
+ ```
273
+
274
+ ```text
275
+ ✅ 불확실한 부분 명시
276
+ ❌ 숨기지 않기
277
+ ```
278
+
279
+ ### 14. 작성 스타일 가이드 (Claude용)
280
+
281
+ | 원칙 | 적용 |
282
+ |------|------|
283
+ | **톤** | 짧고 명확한 문장, 수식어 제거 |
284
+ | **구조** | 1-13 섹션 순서 유지 |
285
+ | **구체성** | "좋은 UX" → 구체적 기준/예시 |
286
+ | **트레이드오프** | 선택 이유 한 줄 설명 |
287
+
288
+ ### 15. Claude 최종 지시
289
+
290
+ ```text
291
+ 1. 15개 섹션 구조 기준으로 PRD 구성
292
+ 2. 입력(아이디어, 회의 메모)을 다음으로 재구성:
293
+ - 문제/목표
294
+ - 범위
295
+ - 기능 요구사항
296
+ - 리스크/가정
297
+ - 성공 지표
298
+
299
+ 3. 기능/요구사항 작성 시 포함:
300
+ - User Stories
301
+ - 기능 설명
302
+ - Functional Requirements
303
+ - Non-functional Requirements
304
+
305
+ 4. 불명확한 부분:
306
+ - "Open Questions" 섹션에 질문 리스트
307
+
308
+ 5. 기존 PRD 수정 시:
309
+ - Change log (변경 요약)
310
+ ```
311
+
312
+ </prd_structure>
313
+
314
+ ---
315
+
316
+ <template>
317
+
318
+ ## PRD 템플릿
319
+
320
+ ```markdown
321
+ # [제품/기능명] PRD
322
+
323
+ ## 메타데이터
324
+
325
+ | 항목 | 내용 |
326
+ |------|------|
327
+ | **작성자** | [이름] |
328
+ | **버전** | v0.1 |
329
+ | **작성일** | YYYY-MM-DD |
330
+ | **수정일** | YYYY-MM-DD |
331
+ | **관련 문서** | [링크] |
332
+
333
+ ---
334
+
335
+ ## 1. 비전 & 배경
336
+
337
+ **비전**: [1-2문장]
338
+
339
+ **배경**: [왜 지금 하는지]
340
+
341
+ **기존 한계**: [간단히]
342
+
343
+ ---
344
+
345
+ ## 2. 문제 정의 & 목표
346
+
347
+ ### 문제
348
+ [어떤 문제/기회]
349
+
350
+ **인사이트**:
351
+ - 유저 피드백: [요약]
352
+ - 지표: 전환율 15%, 이탈률 50%
353
+
354
+ ### 목표
355
+
356
+ | 분류 | 목표 |
357
+ |------|------|
358
+ | **비즈니스** | 결제 완료율 +5% |
359
+ | **사용자** | 작업 시간 30% 단축 |
360
+
361
+ ---
362
+
363
+ ## 3. 범위
364
+
365
+ ### In Scope (P0/P1)
366
+ - [ ] 기능 1 (P0)
367
+ - [ ] 기능 2 (P1)
368
+
369
+ ### Out of Scope
370
+ - 기능 X (후속 릴리즈)
371
+
372
+ ---
373
+
374
+ ## 4. 타깃 유저 & 페르소나
375
+
376
+ ### 주요 세그먼트
377
+ - 세그먼트 1
378
+ - 세그먼트 2
379
+
380
+ ### 페르소나
381
+
382
+ **이름**: 김OO
383
+ **역할**: 소규모 쇼핑몰 운영자
384
+ **목표**: 재고 관리 자동화
385
+ **Pain Point**: 수동 입력 시간 과다
386
+
387
+ **Primary Persona**: 김OO
388
+
389
+ ---
390
+
391
+ ## 5. 사용자 여정 & 시나리오
392
+
393
+ ### 여정 단계
394
+ `랜딩 → [가입 → 첫 세팅] → 핵심 기능 → 반복 → 업그레이드`
395
+
396
+ ### 대표 시나리오
397
+ 사용자는 재고를 빠르게 등록하기 위해 앱을 연다.
398
+ ...
399
+ 5분 안에 100개 상품을 등록할 수 있다.
400
+
401
+ ---
402
+
403
+ ## 6. 기능 요구사항
404
+
405
+ ### 기능 1: [이름]
406
+
407
+ **설명**: [1-2문장]
408
+
409
+ **목표**: [어떤 문제 해결]
410
+
411
+ **우선순위**: P0
412
+
413
+ #### User Stories
414
+ - As a 쇼핑몰 운영자, I want to 엑셀로 재고를 일괄 등록 so that 시간을 절약할 수 있다
415
+
416
+ #### 기능 설명
417
+ - 엑셀 파일 업로드 (최대 1,000행)
418
+ - 검증: 필수 필드, 중복 체크
419
+ - 성공/실패 피드백
420
+
421
+ #### Functional Requirements
422
+ - 시스템은 엑셀 업로드 시 필수 필드(상품명, 가격) 검증해야 함
423
+ - 중복 상품은 경고 표시 후 사용자 선택(덮어쓰기/건너뛰기)
424
+ - 성공 시 재고 목록 페이지로 이동
425
+
426
+ #### Non-functional Requirements
427
+ - 성능: 1,000행 처리 < 3초
428
+ - 보안: 파일 크기 제한 5MB
429
+ - 사용성: 진행률 표시
430
+
431
+ ---
432
+
433
+ ### 기능 2: [이름]
434
+ ...
435
+
436
+ ---
437
+
438
+ ## 7. UX/UI 요구사항
439
+
440
+ | 항목 | 내용 |
441
+ |------|------|
442
+ | **핵심 원칙** | 간편함 우선, 3클릭 이내 완료 |
443
+ | **필수 정보** | 진행률 바, 에러 메시지 |
444
+ | **접근성** | 키보드 네비게이션, 한/영 지원 |
445
+
446
+ ---
447
+
448
+ ## 8. 기술/데이터 요구사항
449
+
450
+ | 항목 | 내용 |
451
+ |------|------|
452
+ | **기술 스택** | React, TanStack Query, Prisma |
453
+ | **통합** | Excel Parser (xlsx.js) |
454
+ | **데이터** | Product 테이블 (name, price, quantity) |
455
+ | **보안** | JWT 인증, File validation |
456
+
457
+ ---
458
+
459
+ ## 9. 성공 지표 & KPI
460
+
461
+ | 지표 | 현재값 | 목표값 | 측정 방법 |
462
+ |------|--------|--------|----------|
463
+ | 등록 시간 | 평균 15분 | 5분 이하 | 업로드 완료 이벤트 |
464
+ | 에러율 | 30% | 10% 이하 | 실패 업로드 / 전체 |
465
+ | 주간 활성 | 500명 | 800명 | GA 이벤트 |
466
+
467
+ ---
468
+
469
+ ## 10. 리스크, 가정, 의존성
470
+
471
+ | 분류 | 내용 |
472
+ |------|------|
473
+ | **가정** | 사용자는 엑셀 형식을 알고 있음 |
474
+ | **리스크** | 대용량 파일 처리 성능 (완화: 행 수 제한) |
475
+ | **의존성** | xlsx.js 라이브러리 |
476
+
477
+ ---
478
+
479
+ ## 11. 릴리즈 전략
480
+
481
+ **전략**: 단계적 롤아웃 (베타 → GA)
482
+
483
+ **마일스톤**:
484
+ - 설계 완료: 2025-02-20
485
+ - 베타 릴리즈: 2025-03-10 (100명)
486
+ - GA: 2025-03-25
487
+
488
+ **롤백**: Feature Flag 사용
489
+
490
+ ---
491
+
492
+ ## 12. 오픈 이슈
493
+
494
+ | 질문 | 결정자 | 기한 |
495
+ |------|--------|------|
496
+ | 엑셀 템플릿 제공 여부 | PM | 2025-02-15 |
497
+ | 에러 메시지 문구 확정 | UX | 2025-02-20 |
498
+ ```
499
+
500
+ </template>
501
+
502
+ ---
503
+
504
+ <examples>
505
+
506
+ ## 실전 예시
507
+
508
+ ### 예시 1: 사용자 프로필 편집
509
+
510
+ ```bash
511
+ 사용자: /prd 사용자 프로필 편집 기능
512
+
513
+ 1. Sequential Thinking (5단계):
514
+ thought 1: "프로필 편집 - 보통 복잡도, CRUD 기본 기능"
515
+ thought 2: "현재 User 모델 확인 필요, 인증 방식 파악"
516
+ thought 3: "편집 가능 필드: 이름, 이메일, 프로필 이미지"
517
+ thought 4: "검증: 이메일 중복, 이미지 크기, 형식"
518
+ thought 5: "API: PUT /api/user/:id, 클라이언트: useQuery + useMutation"
519
+
520
+ 2. Task 탐색:
521
+ Task (Explore): "User 모델 및 인증 구조 분석"
522
+
523
+ 3. PRD 작성:
524
+ → .claude/plans/profile-edit-prd.md
525
+
526
+ 4. 주요 섹션:
527
+ - 문제: 사용자가 정보를 수정할 방법이 없음
528
+ - 목표: 프로필 편집 완료율 90% 이상
529
+ - 기능: 이름/이메일/이미지 편집, 실시간 검증
530
+ - KPI: 편집 완료율, 에러율
531
+ ```
532
+
533
+ ### 예시 2: 실시간 알림
534
+
535
+ ```bash
536
+ 사용자: /prd 실시간 알림 시스템 추가
537
+
538
+ 1. Sequential Thinking (7단계):
539
+ thought 1: "실시간 알림 - 복잡도 높음, 새 인프라 필요"
540
+ thought 2: "현재 통신: REST만, 폴링 없음"
541
+ thought 3: "제약: 서버 부하, 클라이언트 연결 관리"
542
+ thought 4: "접근: WebSocket vs SSE vs Firebase"
543
+ thought 5: "WebSocket - 양방향, 복잡. SSE - 단방향, 간단"
544
+ thought 6: "옵션 3개: WebSocket(추천), SSE, Firebase"
545
+ thought 7: "WebSocket 추천 - 확장성, 제어 가능"
546
+
547
+ 2. PRD 작성:
548
+ - 비전: "사용자가 즉시 중요한 업데이트를 받는다"
549
+ - 범위:
550
+ * In: 주문 상태, 메시지 알림
551
+ * Out: 푸시 알림 (후속)
552
+ - 기술: WebSocket (ws 라이브러리), Redis Pub/Sub
553
+ - 리스크: 연결 안정성 (완화: 자동 재연결)
554
+ ```
555
+
556
+ ### 예시 3: 대시보드 분석 기능
557
+
558
+ ```bash
559
+ 사용자: /prd 대시보드 분석 기능 - 매출, 주문, 트래픽 차트
560
+
561
+ 1. Sequential Thinking (5단계):
562
+ thought 1: "대시보드 - 보통 복잡도, 데이터 집계 + 시각화"
563
+ thought 2: "데이터: Order, Payment, Analytics 테이블"
564
+ thought 3: "차트: 라인(트렌드), 바(비교), 파이(비율)"
565
+ thought 4: "필터: 기간(일/주/월), 카테고리"
566
+ thought 5: "성능: 집계 쿼리 최적화, 캐싱 필요"
567
+
568
+ 2. PRD 핵심:
569
+ - 문제: 매출 데이터를 확인하려면 여러 페이지 접근 필요
570
+ - 목표: 대시보드 사용률 70% 이상
571
+ - 기능 요구사항:
572
+ * User Story: "As a 관리자, I want to 매출 트렌드를 한눈에 보고 싶다"
573
+ * Functional: 기간별 매출 집계, 차트 렌더링
574
+ * Non-functional: 쿼리 < 500ms, 캐싱 5분
575
+ - 성공 지표:
576
+ * 페이지뷰: 0 → 500/일
577
+ * 로딩 시간: - → 500ms 이하
578
+ ```
579
+
580
+ </examples>
581
+
582
+ ---
583
+
584
+ <validation>
585
+
586
+ ## 검증 체크리스트
587
+
588
+ 실행 전:
589
+
590
+ ```text
591
+ ✅ ARGUMENT 확인 (없으면 질문)
592
+ ✅ Sequential Thinking 3-5단계
593
+ ✅ Task (Explore)로 코드베이스 확인 (필요시)
594
+ ✅ 15개 섹션 구조 준수
595
+ ✅ User Stories 형식 작성
596
+ ✅ Functional/Non-functional 구분
597
+ ✅ 현재값 → 목표값 지표
598
+ ✅ Open Questions 명시 (불확실한 부분)
599
+ ```
600
+
601
+ 절대 금지:
602
+
603
+ ```text
604
+ ❌ ARGUMENT 없이 PRD 작성
605
+ ❌ Sequential Thinking 3단계 미만
606
+ ❌ 문제 정의에 솔루션 포함
607
+ ❌ In/Out Scope 구분 없이 나열
608
+ ❌ 모호한 표현만 사용 ("좋은 UX")
609
+ ❌ User Stories 없이 기능만 나열
610
+ ❌ 불확실한 부분 숨기기
611
+ ```
612
+
613
+ </validation>