@kood/claude-code 0.4.0 → 0.5.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.
- package/dist/index.js +53 -7
- package/package.json +2 -1
- package/templates/.claude/PARALLEL_AGENTS.md +737 -0
- package/templates/.claude/agents/analyst.md +416 -0
- package/templates/.claude/agents/architect.md +569 -0
- package/templates/.claude/agents/code-reviewer.md +132 -133
- package/templates/.claude/agents/dependency-manager.md +93 -94
- package/templates/.claude/agents/deployment-validator.md +64 -65
- package/templates/.claude/agents/designer.md +655 -0
- package/templates/.claude/agents/document-writer.md +500 -0
- package/templates/.claude/agents/explore.md +499 -0
- package/templates/.claude/agents/git-operator.md +74 -75
- package/templates/.claude/agents/implementation-executor.md +138 -109
- package/templates/.claude/agents/ko-to-en-translator.md +18 -22
- package/templates/.claude/agents/lint-fixer.md +250 -93
- package/templates/.claude/agents/planner.md +356 -0
- package/templates/.claude/agents/refactor-advisor.md +135 -136
- package/templates/.claude/commands/bug-fix.md +296 -207
- package/templates/.claude/commands/git-all.md +199 -46
- package/templates/.claude/commands/git-session.md +113 -57
- package/templates/.claude/commands/lint-fix.md +219 -153
- package/templates/.claude/commands/lint-init.md +113 -76
- package/templates/.claude/commands/pre-deploy.md +190 -124
- package/templates/.claude/commands/refactor.md +407 -162
- package/templates/.claude/commands/version-update.md +138 -37
- package/templates/.claude/instructions/context-engineering/ANTHROPIC_CONTEXT_ENGINEERING.md +178 -0
- package/templates/.claude/instructions/context-engineering/references/claude-4x.md +215 -0
- package/templates/.claude/instructions/context-engineering/references/core-principles.md +137 -0
- package/templates/.claude/instructions/context-engineering/references/examples.md +351 -0
- package/templates/.claude/instructions/context-engineering/references/techniques.md +162 -0
- package/templates/.claude/instructions/parallel-agent-execution.md +874 -0
- package/templates/.claude/skills/docs-creator/AGENTS.md +238 -0
- package/templates/.claude/{commands/docs-creator.md → skills/docs-creator/SKILL.md} +61 -75
- package/templates/.claude/skills/docs-refactor/AGENTS.md +270 -0
- package/templates/.claude/{commands/docs-refactor.md → skills/docs-refactor/SKILL.md} +30 -44
- package/templates/.claude/skills/execute/SKILL.md +451 -0
- package/templates/.claude/skills/figma-to-code/AGENTS.md +287 -0
- package/templates/.claude/skills/figma-to-code/SKILL.md +225 -225
- package/templates/.claude/skills/figma-to-code/references/design-tokens.md +75 -73
- package/templates/.claude/skills/figma-to-code/references/figma-mcp-tools.md +73 -73
- package/templates/.claude/skills/figma-to-code/references/layout-mapping.md +104 -104
- package/templates/.claude/skills/figma-to-code/references/responsive-design.md +99 -99
- package/templates/.claude/skills/figma-to-code/references/verification.md +91 -91
- package/templates/.claude/skills/global-uiux-design/AGENTS.md +317 -0
- package/templates/.claude/skills/global-uiux-design/SKILL.md +738 -0
- package/templates/.claude/skills/global-uiux-design/references/accessibility.md +401 -0
- package/templates/.claude/skills/global-uiux-design/references/color-system.md +275 -0
- package/templates/.claude/skills/global-uiux-design/references/design-philosophy.md +206 -0
- package/templates/.claude/skills/global-uiux-design/references/design-systems.md +446 -0
- package/templates/.claude/skills/korea-uiux-design/AGENTS.md +307 -0
- package/templates/.claude/skills/korea-uiux-design/SKILL.md +170 -0
- package/templates/.claude/skills/nextjs-react-best-practices/AGENTS.md +95 -116
- package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +134 -152
- package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-event-handler-refs.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/advanced-use-latest.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-api-routes.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-defer-await.md +22 -22
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-dependencies.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-parallel.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/async-suspense-boundaries.md +21 -21
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-barrel-imports.md +18 -18
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-conditional.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-defer-third-party.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-dynamic-imports.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/bundle-preload.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/client-event-listeners.md +9 -9
- package/templates/.claude/skills/nextjs-react-best-practices/rules/client-swr-dedup.md +7 -7
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-batch-dom-css.md +13 -13
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-function-results.md +14 -14
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-property-access.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-cache-storage.md +10 -10
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-combine-iterations.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-early-exit.md +7 -7
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-hoist-regexp.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-index-maps.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-length-check-first.md +14 -14
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-min-max-loop.md +16 -16
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-set-map-lookups.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/js-tosorted-immutable.md +17 -17
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-activity.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-animate-svg-wrapper.md +11 -11
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-conditional-render.md +8 -8
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-content-visibility.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hoist-jsx.md +6 -6
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-hydration-no-flicker.md +14 -14
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rendering-svg-precision.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-defer-reads.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-dependencies.md +7 -7
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-derived-state.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-functional-setstate.md +34 -34
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-lazy-state-init.md +15 -15
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-memo.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/rerender-transitions.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-after-nonblocking.md +24 -24
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-lru.md +10 -10
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-cache-react.md +4 -4
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-parallel-fetching.md +5 -5
- package/templates/.claude/skills/nextjs-react-best-practices/rules/server-serialization.md +6 -6
- package/templates/.claude/skills/plan/SKILL.md +594 -0
- package/templates/.claude/skills/prd/SKILL.md +496 -0
- package/templates/.claude/skills/ralph/AGENTS.md +393 -0
- package/templates/.claude/skills/ralph/SKILL.md +1035 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/AGENTS.md +100 -121
- package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +139 -157
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-defer-await.md +22 -22
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-dependencies.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-loader.md +7 -7
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/async-parallel.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-barrel-imports.md +18 -18
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-conditional.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-defer-third-party.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-lazy-routes.md +12 -12
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/bundle-preload.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-event-listeners.md +9 -9
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/client-tanstack-query.md +12 -12
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-batch-dom-css.md +13 -13
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-function-results.md +14 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-property-access.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-cache-storage.md +10 -10
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-combine-iterations.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-early-exit.md +7 -7
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-hoist-regexp.md +6 -6
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-index-maps.md +6 -6
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-length-check-first.md +14 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-min-max-loop.md +16 -16
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-set-map-lookups.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/js-tosorted-immutable.md +17 -17
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-animate-svg-wrapper.md +11 -11
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-conditional-render.md +8 -8
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-content-visibility.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-hoist-jsx.md +6 -6
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rendering-svg-precision.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-defer-reads.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-dependencies.md +7 -7
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-derived-state.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-functional-setstate.md +34 -34
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-lazy-state-init.md +15 -15
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-memo.md +5 -5
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/rerender-transitions.md +4 -4
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-cache-lru.md +12 -12
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-deferred-data.md +14 -14
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-parallel-fetching.md +9 -9
- package/templates/.claude/skills/tanstack-start-react-best-practices/rules/server-serialization.md +6 -6
- package/templates/.claude/commands/agent-creator.md +0 -370
- package/templates/.claude/commands/command-creator.md +0 -524
- package/templates/.claude/commands/execute.md +0 -469
- package/templates/.claude/commands/git.md +0 -98
- package/templates/.claude/commands/plan.md +0 -531
- package/templates/.claude/commands/prd.md +0 -629
|
@@ -1,629 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: PRD(Product Requirements Document) 생성
|
|
3
|
-
allowed-tools: Read, Write, Glob, Grep, Task, mcp__sequential-thinking__sequentialthinking
|
|
4
|
-
argument-hint: <feature/product description>
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<critical_instruction>
|
|
8
|
-
|
|
9
|
-
**CRITICAL: 사용자와의 모든 커뮤니케이션은 반드시 한국어로 작성하세요.**
|
|
10
|
-
|
|
11
|
-
- 내부 사고와 분석은 영어로 해도 됨
|
|
12
|
-
- 설명, 요약, 보고서, 피드백 등 사용자에게 전달하는 모든 내용은 반드시 한국어
|
|
13
|
-
- 사용자가 영어로 말하더라도 답변은 한국어로
|
|
14
|
-
- 진행 상황 업데이트와 상태 보고는 반드시 한국어
|
|
15
|
-
|
|
16
|
-
이 규칙은 절대적이며 예외가 없습니다.
|
|
17
|
-
|
|
18
|
-
</critical_instruction>
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
@../instructions/sequential-thinking-guide.md
|
|
24
|
-
|
|
25
|
-
# PRD Command
|
|
26
|
-
|
|
27
|
-
Write Product Requirements Document (PRD) for feature/product.
|
|
28
|
-
|
|
29
|
-
**Target**: $ARGUMENTS
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
<workflow>
|
|
34
|
-
|
|
35
|
-
## Execution Flow
|
|
36
|
-
|
|
37
|
-
| Step | Task | Tool |
|
|
38
|
-
|------|------|------|
|
|
39
|
-
| 1. Validate input | Verify ARGUMENT, ask if missing | - |
|
|
40
|
-
| 2. Sequential Thinking | Analyze PRD structure in 3-5 steps | sequentialthinking |
|
|
41
|
-
| 3. Check codebase | Explore related code/documents (if needed) | Task (Explore) |
|
|
42
|
-
| 4. Write PRD | Write in 15-section structure | Write |
|
|
43
|
-
| 5. Save | Save to `.claude/plans/` or `docs/prd/` | - |
|
|
44
|
-
|
|
45
|
-
</workflow>
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
<forbidden>
|
|
50
|
-
|
|
51
|
-
| Category | Forbidden |
|
|
52
|
-
|----------|-----------|
|
|
53
|
-
| **Problem definition** | Include solutions/feature list |
|
|
54
|
-
| **Scope** | List without In/Out distinction |
|
|
55
|
-
| **Expression** | Vague expressions ("good UX", "fast") |
|
|
56
|
-
| **Style** | Marketing language, excessive adjectives |
|
|
57
|
-
|
|
58
|
-
</forbidden>
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
<required>
|
|
63
|
-
|
|
64
|
-
| Category | Required |
|
|
65
|
-
|----------|----------|
|
|
66
|
-
| **Structure** | 15 sections (metadata ~ template) |
|
|
67
|
-
| **Feature requirements** | User Stories + Functional + Non-functional |
|
|
68
|
-
| **Metrics** | Current value → target value format |
|
|
69
|
-
| **Assumptions/Risks** | Specify in separate section |
|
|
70
|
-
| **Style** | Short clear sentences, concrete examples |
|
|
71
|
-
|
|
72
|
-
</required>
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
<prd_structure>
|
|
77
|
-
|
|
78
|
-
## PRD 15개 섹션 구조
|
|
79
|
-
|
|
80
|
-
### 1. 메타데이터
|
|
81
|
-
|
|
82
|
-
| 항목 | 내용 |
|
|
83
|
-
|------|------|
|
|
84
|
-
| **제목** | 제품명 + 버전/설명 |
|
|
85
|
-
| **작성자** | PM/오너 |
|
|
86
|
-
| **버전** | v0.1 (초안), v1.0 (확정) 등 |
|
|
87
|
-
| **날짜** | 최초 작성일, 마지막 수정일 |
|
|
88
|
-
| **관련 문서** | 전략 문서, 디자인, 기술 설계 링크 |
|
|
89
|
-
|
|
90
|
-
### 2. 비전 & 배경
|
|
91
|
-
|
|
92
|
-
```text
|
|
93
|
-
✅ 3-5문장 이내
|
|
94
|
-
✅ "어떤 사용자, 어떤 문제, 어떤 임팩트"
|
|
95
|
-
|
|
96
|
-
포함 내용:
|
|
97
|
-
- 제품 비전 (1-2문장)
|
|
98
|
-
- 배경/컨텍스트 (왜 지금 하는지)
|
|
99
|
-
- 이전 시도/기존 제품 한계 (간단히)
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### 3. 문제 정의 & 목표
|
|
103
|
-
|
|
104
|
-
| 섹션 | 내용 | 포함 요소 |
|
|
105
|
-
|------|------|----------|
|
|
106
|
-
| **문제 정의** | 어떤 문제/기회가 있는지 | 유저 피드백, 지표 (전환율, 이탈률) |
|
|
107
|
-
| **목표** | 비즈니스/사용자 목표 | 측정 가능한 KPI (예: 결제율 +5%) |
|
|
108
|
-
|
|
109
|
-
```text
|
|
110
|
-
❌ 솔루션/기능 목록 넣지 않기
|
|
111
|
-
✅ "무엇이 문제이고 무엇을 달성하려 하는지"만
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### 4. 범위 (Scope)
|
|
115
|
-
|
|
116
|
-
| 구분 | 내용 |
|
|
117
|
-
|------|------|
|
|
118
|
-
| **In Scope** | 이번 릴리즈 포함 기능 (P0/P1 표시) |
|
|
119
|
-
| **Out of Scope** | 하지 않는 것 (후속 릴리즈 메모) |
|
|
120
|
-
|
|
121
|
-
### 5. 타깃 유저 & 페르소나
|
|
122
|
-
|
|
123
|
-
```markdown
|
|
124
|
-
## 주요 타깃 유저
|
|
125
|
-
- 세그먼트 1
|
|
126
|
-
- 세그먼트 2
|
|
127
|
-
|
|
128
|
-
## 페르소나 (1-3개)
|
|
129
|
-
**이름(가명)**:
|
|
130
|
-
**역할**:
|
|
131
|
-
**목표**:
|
|
132
|
-
**Pain Point**:
|
|
133
|
-
|
|
134
|
-
**Primary Persona**: [가장 우선 해결]
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
```text
|
|
138
|
-
✅ 행동/맥락/목표 중심
|
|
139
|
-
❌ 기능 설명 아님
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### 6. 사용자 여정 & 시나리오
|
|
143
|
-
|
|
144
|
-
```markdown
|
|
145
|
-
## 주요 여정 단계
|
|
146
|
-
랜딩 → 가입 → 첫 세팅 → 핵심 기능 → 반복 → 업그레이드
|
|
147
|
-
|
|
148
|
-
## 이번 PRD 구간
|
|
149
|
-
[해당 구간 표시]
|
|
150
|
-
|
|
151
|
-
## 대표 시나리오
|
|
152
|
-
사용자 A는 X를 하기 위해 앱을 연다.
|
|
153
|
-
...
|
|
154
|
-
그래서 Y를 할 수 있게 된다.
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
```text
|
|
158
|
-
✅ 사용자 목적과 단계만 요약
|
|
159
|
-
❌ 상세한 UI 단계 나열 금지
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### 7. 기능 요구사항 (핵심)
|
|
163
|
-
|
|
164
|
-
#### 기능 구조
|
|
165
|
-
|
|
166
|
-
각 기능마다 포함:
|
|
167
|
-
|
|
168
|
-
| 필드 | 내용 |
|
|
169
|
-
|------|------|
|
|
170
|
-
| **기능 이름** | - |
|
|
171
|
-
| **설명** | 1-2문장 |
|
|
172
|
-
| **목표/가치** | 어떤 문제 해결, 어떤 지표 영향 |
|
|
173
|
-
| **우선순위** | P0/P1 또는 Must/Should/Could |
|
|
174
|
-
| **관련 시나리오** | 사용자 시나리오/페르소나 |
|
|
175
|
-
|
|
176
|
-
#### 기능 상세
|
|
177
|
-
|
|
178
|
-
```markdown
|
|
179
|
-
### [기능 1]
|
|
180
|
-
|
|
181
|
-
#### User Stories
|
|
182
|
-
- As a [유저 타입], I want to [행동] so that [가치]
|
|
183
|
-
- ...
|
|
184
|
-
|
|
185
|
-
#### 기능 설명
|
|
186
|
-
동작, 상태, 변형 설명.
|
|
187
|
-
- Happy Path
|
|
188
|
-
- Alternative Flow
|
|
189
|
-
- Edge Case
|
|
190
|
-
|
|
191
|
-
#### Functional Requirements
|
|
192
|
-
- 시스템은 X 버튼 클릭 시 Y API 호출해야 함
|
|
193
|
-
- 성공 시 Z 화면 이동해야 함
|
|
194
|
-
|
|
195
|
-
#### Non-functional Requirements
|
|
196
|
-
- 퍼포먼스: 응답 시간 < 200ms
|
|
197
|
-
- 보안: JWT 인증 필수
|
|
198
|
-
- 사용성: 키보드 네비게이션 지원
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### 8. UX/UI 요구사항
|
|
202
|
-
|
|
203
|
-
| 항목 | 내용 |
|
|
204
|
-
|------|------|
|
|
205
|
-
| **핵심 원칙** | "간편함 우선", "모바일 우선" 등 |
|
|
206
|
-
| **UI 제약** | 필수 정보, 숨기면 안 되는 액션 |
|
|
207
|
-
| **접근성** | 다국어, 키보드, 대비, 폰트 제한 |
|
|
208
|
-
|
|
209
|
-
```text
|
|
210
|
-
✅ 디자인이 꼭 지켜야 하는 제약/원칙
|
|
211
|
-
❌ 상세 디자인 아님
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
### 9. 기술/데이터 요구사항
|
|
215
|
-
|
|
216
|
-
| 항목 | 내용 |
|
|
217
|
-
|------|------|
|
|
218
|
-
| **기술 제약** | 스택, 호환성, 아키텍처 연결 |
|
|
219
|
-
| **통합/의존성** | 외부 서비스 API, 내부 시스템 |
|
|
220
|
-
| **데이터** | 저장/조회/집계 데이터, 엔티티 |
|
|
221
|
-
| **보안/규제** | 인증/인가, 개인정보, 감사 로그 |
|
|
222
|
-
|
|
223
|
-
```text
|
|
224
|
-
✅ 개발 설계 시작 전 꼭 알아야 할 제약
|
|
225
|
-
❌ 구현 세부 코드 수준 금지
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
### 10. 성공 지표 & KPI
|
|
229
|
-
|
|
230
|
-
```markdown
|
|
231
|
-
| 지표 | 현재값 | 목표값 | 측정 방법 |
|
|
232
|
-
|------|--------|--------|----------|
|
|
233
|
-
| 활성 사용자 | 1,000 | 1,500 | GA 이벤트 |
|
|
234
|
-
| 전환율 | 20% | 25% | 결제 완료 / 방문 |
|
|
235
|
-
| 이탈률 | 40% | 25% 이하 | 가입 플로우 |
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
```text
|
|
239
|
-
✅ 현재값 → 목표값 형태
|
|
240
|
-
✅ 측정 방법 명시
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### 11. 리스크, 가정, 의존성
|
|
244
|
-
|
|
245
|
-
| 분류 | 내용 |
|
|
246
|
-
|------|------|
|
|
247
|
-
| **가정** | "유저는 이메일 인증 완료 상태", "마케팅 캠페인 진행" |
|
|
248
|
-
| **리스크** | 기술/비즈니스/UX 리스크, 심각도/가능성 |
|
|
249
|
-
| **의존성** | 다른 팀/프로젝트/벤더, 선행 작업 |
|
|
250
|
-
|
|
251
|
-
```text
|
|
252
|
-
✅ 별도 섹션으로 명확히
|
|
253
|
-
❌ 기능 설명에 섞지 않기
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
### 12. 릴리즈 전략 & 마일스톤
|
|
257
|
-
|
|
258
|
-
```markdown
|
|
259
|
-
## 릴리즈 전략
|
|
260
|
-
- 전체 론칭 / 단계적 롤아웃 / A/B 테스트
|
|
261
|
-
|
|
262
|
-
## 마일스톤
|
|
263
|
-
- 설계 완료: 2025-02-15
|
|
264
|
-
- 개발 완료: 2025-03-01
|
|
265
|
-
- 베타 릴리즈: 2025-03-15
|
|
266
|
-
- GA: 2025-04-01
|
|
267
|
-
|
|
268
|
-
## 롤백 계획
|
|
269
|
-
- Feature Flag 사용
|
|
270
|
-
- 문제 발생 시 즉시 비활성화
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
```text
|
|
274
|
-
✅ 타임라인 + 큰 이벤트만
|
|
275
|
-
❌ 상세 스프린트 계획 금지
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
### 13. 오픈 이슈 & Todo
|
|
279
|
-
|
|
280
|
-
```markdown
|
|
281
|
-
## Open Questions
|
|
282
|
-
|
|
283
|
-
| 질문 | 결정자 | 기한 |
|
|
284
|
-
|------|--------|------|
|
|
285
|
-
| 가격 정책 | PM | 2025-02-10 |
|
|
286
|
-
| 온보딩 플로우 구성 | UX팀 | 2025-02-15 |
|
|
287
|
-
| 정책 문구 확정 | Legal | 2025-02-20 |
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
```text
|
|
291
|
-
✅ 불확실한 부분 명시
|
|
292
|
-
❌ 숨기지 않기
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
### 14. 작성 스타일 가이드 (Claude용)
|
|
296
|
-
|
|
297
|
-
| 원칙 | 적용 |
|
|
298
|
-
|------|------|
|
|
299
|
-
| **톤** | 짧고 명확한 문장, 수식어 제거 |
|
|
300
|
-
| **구조** | 1-13 섹션 순서 유지 |
|
|
301
|
-
| **구체성** | "좋은 UX" → 구체적 기준/예시 |
|
|
302
|
-
| **트레이드오프** | 선택 이유 한 줄 설명 |
|
|
303
|
-
|
|
304
|
-
### 15. Claude 최종 지시
|
|
305
|
-
|
|
306
|
-
```text
|
|
307
|
-
1. 15개 섹션 구조 기준으로 PRD 구성
|
|
308
|
-
2. 입력(아이디어, 회의 메모)을 다음으로 재구성:
|
|
309
|
-
- 문제/목표
|
|
310
|
-
- 범위
|
|
311
|
-
- 기능 요구사항
|
|
312
|
-
- 리스크/가정
|
|
313
|
-
- 성공 지표
|
|
314
|
-
|
|
315
|
-
3. 기능/요구사항 작성 시 포함:
|
|
316
|
-
- User Stories
|
|
317
|
-
- 기능 설명
|
|
318
|
-
- Functional Requirements
|
|
319
|
-
- Non-functional Requirements
|
|
320
|
-
|
|
321
|
-
4. 불명확한 부분:
|
|
322
|
-
- "Open Questions" 섹션에 질문 리스트
|
|
323
|
-
|
|
324
|
-
5. 기존 PRD 수정 시:
|
|
325
|
-
- Change log (변경 요약)
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
</prd_structure>
|
|
329
|
-
|
|
330
|
-
---
|
|
331
|
-
|
|
332
|
-
<template>
|
|
333
|
-
|
|
334
|
-
## PRD 템플릿
|
|
335
|
-
|
|
336
|
-
```markdown
|
|
337
|
-
# [제품/기능명] PRD
|
|
338
|
-
|
|
339
|
-
## 메타데이터
|
|
340
|
-
|
|
341
|
-
| 항목 | 내용 |
|
|
342
|
-
|------|------|
|
|
343
|
-
| **작성자** | [이름] |
|
|
344
|
-
| **버전** | v0.1 |
|
|
345
|
-
| **작성일** | YYYY-MM-DD |
|
|
346
|
-
| **수정일** | YYYY-MM-DD |
|
|
347
|
-
| **관련 문서** | [링크] |
|
|
348
|
-
|
|
349
|
-
---
|
|
350
|
-
|
|
351
|
-
## 1. 비전 & 배경
|
|
352
|
-
|
|
353
|
-
**비전**: [1-2문장]
|
|
354
|
-
|
|
355
|
-
**배경**: [왜 지금 하는지]
|
|
356
|
-
|
|
357
|
-
**기존 한계**: [간단히]
|
|
358
|
-
|
|
359
|
-
---
|
|
360
|
-
|
|
361
|
-
## 2. 문제 정의 & 목표
|
|
362
|
-
|
|
363
|
-
### 문제
|
|
364
|
-
[어떤 문제/기회]
|
|
365
|
-
|
|
366
|
-
**인사이트**:
|
|
367
|
-
- 유저 피드백: [요약]
|
|
368
|
-
- 지표: 전환율 15%, 이탈률 50%
|
|
369
|
-
|
|
370
|
-
### 목표
|
|
371
|
-
|
|
372
|
-
| 분류 | 목표 |
|
|
373
|
-
|------|------|
|
|
374
|
-
| **비즈니스** | 결제 완료율 +5% |
|
|
375
|
-
| **사용자** | 작업 시간 30% 단축 |
|
|
376
|
-
|
|
377
|
-
---
|
|
378
|
-
|
|
379
|
-
## 3. 범위
|
|
380
|
-
|
|
381
|
-
### In Scope (P0/P1)
|
|
382
|
-
- [ ] 기능 1 (P0)
|
|
383
|
-
- [ ] 기능 2 (P1)
|
|
384
|
-
|
|
385
|
-
### Out of Scope
|
|
386
|
-
- 기능 X (후속 릴리즈)
|
|
387
|
-
|
|
388
|
-
---
|
|
389
|
-
|
|
390
|
-
## 4. 타깃 유저 & 페르소나
|
|
391
|
-
|
|
392
|
-
### 주요 세그먼트
|
|
393
|
-
- 세그먼트 1
|
|
394
|
-
- 세그먼트 2
|
|
395
|
-
|
|
396
|
-
### 페르소나
|
|
397
|
-
|
|
398
|
-
**이름**: 김OO
|
|
399
|
-
**역할**: 소규모 쇼핑몰 운영자
|
|
400
|
-
**목표**: 재고 관리 자동화
|
|
401
|
-
**Pain Point**: 수동 입력 시간 과다
|
|
402
|
-
|
|
403
|
-
**Primary Persona**: 김OO
|
|
404
|
-
|
|
405
|
-
---
|
|
406
|
-
|
|
407
|
-
## 5. 사용자 여정 & 시나리오
|
|
408
|
-
|
|
409
|
-
### 여정 단계
|
|
410
|
-
`랜딩 → [가입 → 첫 세팅] → 핵심 기능 → 반복 → 업그레이드`
|
|
411
|
-
|
|
412
|
-
### 대표 시나리오
|
|
413
|
-
사용자는 재고를 빠르게 등록하기 위해 앱을 연다.
|
|
414
|
-
...
|
|
415
|
-
5분 안에 100개 상품을 등록할 수 있다.
|
|
416
|
-
|
|
417
|
-
---
|
|
418
|
-
|
|
419
|
-
## 6. 기능 요구사항
|
|
420
|
-
|
|
421
|
-
### 기능 1: [이름]
|
|
422
|
-
|
|
423
|
-
**설명**: [1-2문장]
|
|
424
|
-
|
|
425
|
-
**목표**: [어떤 문제 해결]
|
|
426
|
-
|
|
427
|
-
**우선순위**: P0
|
|
428
|
-
|
|
429
|
-
#### User Stories
|
|
430
|
-
- As a 쇼핑몰 운영자, I want to 엑셀로 재고를 일괄 등록 so that 시간을 절약할 수 있다
|
|
431
|
-
|
|
432
|
-
#### 기능 설명
|
|
433
|
-
- 엑셀 파일 업로드 (최대 1,000행)
|
|
434
|
-
- 검증: 필수 필드, 중복 체크
|
|
435
|
-
- 성공/실패 피드백
|
|
436
|
-
|
|
437
|
-
#### Functional Requirements
|
|
438
|
-
- 시스템은 엑셀 업로드 시 필수 필드(상품명, 가격) 검증해야 함
|
|
439
|
-
- 중복 상품은 경고 표시 후 사용자 선택(덮어쓰기/건너뛰기)
|
|
440
|
-
- 성공 시 재고 목록 페이지로 이동
|
|
441
|
-
|
|
442
|
-
#### Non-functional Requirements
|
|
443
|
-
- 성능: 1,000행 처리 < 3초
|
|
444
|
-
- 보안: 파일 크기 제한 5MB
|
|
445
|
-
- 사용성: 진행률 표시
|
|
446
|
-
|
|
447
|
-
---
|
|
448
|
-
|
|
449
|
-
### 기능 2: [이름]
|
|
450
|
-
...
|
|
451
|
-
|
|
452
|
-
---
|
|
453
|
-
|
|
454
|
-
## 7. UX/UI 요구사항
|
|
455
|
-
|
|
456
|
-
| 항목 | 내용 |
|
|
457
|
-
|------|------|
|
|
458
|
-
| **핵심 원칙** | 간편함 우선, 3클릭 이내 완료 |
|
|
459
|
-
| **필수 정보** | 진행률 바, 에러 메시지 |
|
|
460
|
-
| **접근성** | 키보드 네비게이션, 한/영 지원 |
|
|
461
|
-
|
|
462
|
-
---
|
|
463
|
-
|
|
464
|
-
## 8. 기술/데이터 요구사항
|
|
465
|
-
|
|
466
|
-
| 항목 | 내용 |
|
|
467
|
-
|------|------|
|
|
468
|
-
| **기술 스택** | React, TanStack Query, Prisma |
|
|
469
|
-
| **통합** | Excel Parser (xlsx.js) |
|
|
470
|
-
| **데이터** | Product 테이블 (name, price, quantity) |
|
|
471
|
-
| **보안** | JWT 인증, File validation |
|
|
472
|
-
|
|
473
|
-
---
|
|
474
|
-
|
|
475
|
-
## 9. 성공 지표 & KPI
|
|
476
|
-
|
|
477
|
-
| 지표 | 현재값 | 목표값 | 측정 방법 |
|
|
478
|
-
|------|--------|--------|----------|
|
|
479
|
-
| 등록 시간 | 평균 15분 | 5분 이하 | 업로드 완료 이벤트 |
|
|
480
|
-
| 에러율 | 30% | 10% 이하 | 실패 업로드 / 전체 |
|
|
481
|
-
| 주간 활성 | 500명 | 800명 | GA 이벤트 |
|
|
482
|
-
|
|
483
|
-
---
|
|
484
|
-
|
|
485
|
-
## 10. 리스크, 가정, 의존성
|
|
486
|
-
|
|
487
|
-
| 분류 | 내용 |
|
|
488
|
-
|------|------|
|
|
489
|
-
| **가정** | 사용자는 엑셀 형식을 알고 있음 |
|
|
490
|
-
| **리스크** | 대용량 파일 처리 성능 (완화: 행 수 제한) |
|
|
491
|
-
| **의존성** | xlsx.js 라이브러리 |
|
|
492
|
-
|
|
493
|
-
---
|
|
494
|
-
|
|
495
|
-
## 11. 릴리즈 전략
|
|
496
|
-
|
|
497
|
-
**전략**: 단계적 롤아웃 (베타 → GA)
|
|
498
|
-
|
|
499
|
-
**마일스톤**:
|
|
500
|
-
- 설계 완료: 2025-02-20
|
|
501
|
-
- 베타 릴리즈: 2025-03-10 (100명)
|
|
502
|
-
- GA: 2025-03-25
|
|
503
|
-
|
|
504
|
-
**롤백**: Feature Flag 사용
|
|
505
|
-
|
|
506
|
-
---
|
|
507
|
-
|
|
508
|
-
## 12. 오픈 이슈
|
|
509
|
-
|
|
510
|
-
| 질문 | 결정자 | 기한 |
|
|
511
|
-
|------|--------|------|
|
|
512
|
-
| 엑셀 템플릿 제공 여부 | PM | 2025-02-15 |
|
|
513
|
-
| 에러 메시지 문구 확정 | UX | 2025-02-20 |
|
|
514
|
-
```
|
|
515
|
-
|
|
516
|
-
</template>
|
|
517
|
-
|
|
518
|
-
---
|
|
519
|
-
|
|
520
|
-
<examples>
|
|
521
|
-
|
|
522
|
-
## 실전 예시
|
|
523
|
-
|
|
524
|
-
### 예시 1: 사용자 프로필 편집
|
|
525
|
-
|
|
526
|
-
```bash
|
|
527
|
-
사용자: /prd 사용자 프로필 편집 기능
|
|
528
|
-
|
|
529
|
-
1. Sequential Thinking (5단계):
|
|
530
|
-
thought 1: "프로필 편집 - 보통 복잡도, CRUD 기본 기능"
|
|
531
|
-
thought 2: "현재 User 모델 확인 필요, 인증 방식 파악"
|
|
532
|
-
thought 3: "편집 가능 필드: 이름, 이메일, 프로필 이미지"
|
|
533
|
-
thought 4: "검증: 이메일 중복, 이미지 크기, 형식"
|
|
534
|
-
thought 5: "API: PUT /api/user/:id, 클라이언트: useQuery + useMutation"
|
|
535
|
-
|
|
536
|
-
2. Task 탐색:
|
|
537
|
-
Task (Explore): "User 모델 및 인증 구조 분석"
|
|
538
|
-
|
|
539
|
-
3. PRD 작성:
|
|
540
|
-
→ .claude/plans/profile-edit-prd.md
|
|
541
|
-
|
|
542
|
-
4. 주요 섹션:
|
|
543
|
-
- 문제: 사용자가 정보를 수정할 방법이 없음
|
|
544
|
-
- 목표: 프로필 편집 완료율 90% 이상
|
|
545
|
-
- 기능: 이름/이메일/이미지 편집, 실시간 검증
|
|
546
|
-
- KPI: 편집 완료율, 에러율
|
|
547
|
-
```
|
|
548
|
-
|
|
549
|
-
### 예시 2: 실시간 알림
|
|
550
|
-
|
|
551
|
-
```bash
|
|
552
|
-
사용자: /prd 실시간 알림 시스템 추가
|
|
553
|
-
|
|
554
|
-
1. Sequential Thinking (7단계):
|
|
555
|
-
thought 1: "실시간 알림 - 복잡도 높음, 새 인프라 필요"
|
|
556
|
-
thought 2: "현재 통신: REST만, 폴링 없음"
|
|
557
|
-
thought 3: "제약: 서버 부하, 클라이언트 연결 관리"
|
|
558
|
-
thought 4: "접근: WebSocket vs SSE vs Firebase"
|
|
559
|
-
thought 5: "WebSocket - 양방향, 복잡. SSE - 단방향, 간단"
|
|
560
|
-
thought 6: "옵션 3개: WebSocket(추천), SSE, Firebase"
|
|
561
|
-
thought 7: "WebSocket 추천 - 확장성, 제어 가능"
|
|
562
|
-
|
|
563
|
-
2. PRD 작성:
|
|
564
|
-
- 비전: "사용자가 즉시 중요한 업데이트를 받는다"
|
|
565
|
-
- 범위:
|
|
566
|
-
* In: 주문 상태, 메시지 알림
|
|
567
|
-
* Out: 푸시 알림 (후속)
|
|
568
|
-
- 기술: WebSocket (ws 라이브러리), Redis Pub/Sub
|
|
569
|
-
- 리스크: 연결 안정성 (완화: 자동 재연결)
|
|
570
|
-
```
|
|
571
|
-
|
|
572
|
-
### 예시 3: 대시보드 분석 기능
|
|
573
|
-
|
|
574
|
-
```bash
|
|
575
|
-
사용자: /prd 대시보드 분석 기능 - 매출, 주문, 트래픽 차트
|
|
576
|
-
|
|
577
|
-
1. Sequential Thinking (5단계):
|
|
578
|
-
thought 1: "대시보드 - 보통 복잡도, 데이터 집계 + 시각화"
|
|
579
|
-
thought 2: "데이터: Order, Payment, Analytics 테이블"
|
|
580
|
-
thought 3: "차트: 라인(트렌드), 바(비교), 파이(비율)"
|
|
581
|
-
thought 4: "필터: 기간(일/주/월), 카테고리"
|
|
582
|
-
thought 5: "성능: 집계 쿼리 최적화, 캐싱 필요"
|
|
583
|
-
|
|
584
|
-
2. PRD 핵심:
|
|
585
|
-
- 문제: 매출 데이터를 확인하려면 여러 페이지 접근 필요
|
|
586
|
-
- 목표: 대시보드 사용률 70% 이상
|
|
587
|
-
- 기능 요구사항:
|
|
588
|
-
* User Story: "As a 관리자, I want to 매출 트렌드를 한눈에 보고 싶다"
|
|
589
|
-
* Functional: 기간별 매출 집계, 차트 렌더링
|
|
590
|
-
* Non-functional: 쿼리 < 500ms, 캐싱 5분
|
|
591
|
-
- 성공 지표:
|
|
592
|
-
* 페이지뷰: 0 → 500/일
|
|
593
|
-
* 로딩 시간: - → 500ms 이하
|
|
594
|
-
```
|
|
595
|
-
|
|
596
|
-
</examples>
|
|
597
|
-
|
|
598
|
-
---
|
|
599
|
-
|
|
600
|
-
<validation>
|
|
601
|
-
|
|
602
|
-
## 검증 체크리스트
|
|
603
|
-
|
|
604
|
-
실행 전:
|
|
605
|
-
|
|
606
|
-
```text
|
|
607
|
-
✅ ARGUMENT 확인 (없으면 질문)
|
|
608
|
-
✅ Sequential Thinking 3-5단계
|
|
609
|
-
✅ Task (Explore)로 코드베이스 확인 (필요시)
|
|
610
|
-
✅ 15개 섹션 구조 준수
|
|
611
|
-
✅ User Stories 형식 작성
|
|
612
|
-
✅ Functional/Non-functional 구분
|
|
613
|
-
✅ 현재값 → 목표값 지표
|
|
614
|
-
✅ Open Questions 명시 (불확실한 부분)
|
|
615
|
-
```
|
|
616
|
-
|
|
617
|
-
절대 금지:
|
|
618
|
-
|
|
619
|
-
```text
|
|
620
|
-
❌ ARGUMENT 없이 PRD 작성
|
|
621
|
-
❌ Sequential Thinking 3단계 미만
|
|
622
|
-
❌ 문제 정의에 솔루션 포함
|
|
623
|
-
❌ In/Out Scope 구분 없이 나열
|
|
624
|
-
❌ 모호한 표현만 사용 ("좋은 UX")
|
|
625
|
-
❌ User Stories 없이 기능만 나열
|
|
626
|
-
❌ 불확실한 부분 숨기기
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
</validation>
|