@kood/claude-code 0.5.0 → 0.5.3
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 +179 -33
- package/package.json +1 -1
- package/templates/.claude/agents/analyst.md +6 -14
- package/templates/.claude/agents/architect.md +6 -14
- package/templates/.claude/agents/code-reviewer.md +8 -14
- package/templates/.claude/agents/dependency-manager.md +8 -14
- package/templates/.claude/agents/deployment-validator.md +8 -14
- package/templates/.claude/agents/designer.md +8 -0
- package/templates/.claude/agents/document-writer.md +6 -14
- package/templates/.claude/agents/explore.md +8 -3
- package/templates/.claude/agents/git-operator.md +63 -17
- package/templates/.claude/agents/implementation-executor.md +14 -37
- package/templates/.claude/agents/ko-to-en-translator.md +8 -13
- package/templates/.claude/agents/lint-fixer.md +8 -172
- package/templates/.claude/agents/planner.md +6 -14
- package/templates/.claude/agents/refactor-advisor.md +8 -14
- package/templates/.claude/commands/git-all.md +3 -167
- package/templates/.claude/commands/git-session.md +3 -71
- package/templates/.claude/commands/lint-fix.md +119 -82
- package/templates/.claude/commands/lint-init.md +2 -54
- package/templates/.claude/commands/pre-deploy.md +143 -82
- package/templates/.claude/commands/version-update.md +171 -66
- package/templates/.claude/instructions/agent-patterns/agent-coordination.md +208 -0
- package/templates/.claude/instructions/agent-patterns/index.md +264 -0
- package/templates/.claude/instructions/agent-patterns/model-routing.md +167 -0
- package/templates/.claude/instructions/agent-patterns/parallel-execution.md +91 -0
- package/templates/.claude/instructions/agent-patterns/read-parallelization.md +106 -0
- package/templates/.claude/instructions/index.md +350 -0
- package/templates/.claude/instructions/multi-agent/agent-roster.md +811 -0
- package/templates/.claude/{PARALLEL_AGENTS.md → instructions/multi-agent/coordination-guide.md} +27 -336
- package/templates/.claude/instructions/{parallel-agent-execution.md → multi-agent/execution-patterns.md} +127 -438
- package/templates/.claude/instructions/multi-agent/index.md +282 -0
- package/templates/.claude/instructions/multi-agent/performance-optimization.md +456 -0
- package/templates/.claude/instructions/tech-stack/design-standards.md +282 -0
- package/templates/.claude/instructions/tech-stack/index.md +70 -0
- package/templates/.claude/instructions/tech-stack/prisma-patterns.md +352 -0
- package/templates/.claude/instructions/tech-stack/tanstack-patterns.md +275 -0
- package/templates/.claude/instructions/validation/forbidden-patterns.md +281 -0
- package/templates/.claude/instructions/validation/index.md +32 -0
- package/templates/.claude/instructions/validation/required-behaviors.md +331 -0
- package/templates/.claude/instructions/validation/verification-checklist.md +318 -0
- package/templates/.claude/instructions/workflow-patterns/index.md +18 -0
- package/templates/.claude/instructions/workflow-patterns/phase-based-workflow.md +250 -0
- package/templates/.claude/instructions/workflow-patterns/sequential-thinking.md +217 -0
- package/templates/.claude/instructions/workflow-patterns/todowrite-pattern.md +215 -0
- package/templates/.claude/skills/bug-fix/SKILL.md +972 -0
- package/templates/.claude/skills/docs-creator/AGENTS.md +4 -1
- package/templates/.claude/skills/docs-creator/SKILL.md +258 -0
- package/templates/.claude/skills/docs-refactor/AGENTS.md +4 -1
- package/templates/.claude/skills/docs-refactor/SKILL.md +145 -0
- package/templates/.claude/skills/execute/SKILL.md +15 -242
- package/templates/.claude/skills/figma-to-code/AGENTS.md +4 -1
- package/templates/.claude/skills/figma-to-code/SKILL.md +306 -0
- package/templates/.claude/skills/global-uiux-design/AGENTS.md +4 -1
- package/templates/.claude/skills/global-uiux-design/SKILL.md +455 -125
- package/templates/.claude/skills/korea-uiux-design/AGENTS.md +4 -1
- package/templates/.claude/skills/korea-uiux-design/SKILL.md +461 -116
- package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +177 -0
- package/templates/.claude/skills/plan/SKILL.md +1102 -98
- package/templates/.claude/skills/prd/SKILL.md +367 -66
- package/templates/.claude/skills/ralph/AGENTS.md +4 -1
- package/templates/.claude/skills/ralph/SKILL.md +83 -0
- package/templates/.claude/skills/refactor/SKILL.md +1214 -0
- package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +149 -0
- package/templates/.claude/commands/bug-fix.md +0 -510
- package/templates/.claude/commands/refactor.md +0 -788
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
# Phase-Based Workflow
|
|
2
|
+
|
|
3
|
+
**목적**: 복잡한 작업을 명확한 단계로 구조화하여 완료 보장
|
|
4
|
+
|
|
5
|
+
## 4-Phase 구조
|
|
6
|
+
|
|
7
|
+
모든 복잡한 구현 작업은 다음 4단계를 거칩니다:
|
|
8
|
+
|
|
9
|
+
| Phase | 이름 | 목적 | 완료 조건 |
|
|
10
|
+
|-------|------|------|----------|
|
|
11
|
+
| **1** | 작업 실행 | 요구사항 구현 | 모든 체크리스트 완료 |
|
|
12
|
+
| **2** | 자동 검증 | 코드 품질 확인 | /pre-deploy 통과 + TODO 0개 |
|
|
13
|
+
| **3** | 플래너 검증 | 아키텍처 승인 | Planner "승인" 응답 |
|
|
14
|
+
| **4** | 완료 | 최종 확인 | 문서 업데이트 완료 |
|
|
15
|
+
|
|
16
|
+
## Phase 1: 작업 실행
|
|
17
|
+
|
|
18
|
+
### 목표
|
|
19
|
+
모든 요구사항을 100% 구현
|
|
20
|
+
|
|
21
|
+
### 주요 활동
|
|
22
|
+
|
|
23
|
+
1. **요구사항 분석**
|
|
24
|
+
- Sequential Thinking (3-5단계)
|
|
25
|
+
- 체크리스트 작성 (TASKS.md)
|
|
26
|
+
|
|
27
|
+
2. **병렬 구현**
|
|
28
|
+
- 독립적인 작업 동시 실행
|
|
29
|
+
- 에이전트 적극 활용
|
|
30
|
+
- 백그라운드 실행
|
|
31
|
+
|
|
32
|
+
3. **진행 추적**
|
|
33
|
+
- TodoWrite로 단계 관리
|
|
34
|
+
- TASKS.md 체크박스 업데이트
|
|
35
|
+
- PROCESS.md 의사결정 기록
|
|
36
|
+
|
|
37
|
+
### 완료 조건
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
- [ ] 모든 요구사항 구현 완료
|
|
41
|
+
- [ ] TASKS.md 체크리스트 100% 완료
|
|
42
|
+
- [ ] PROCESS.md 업데이트 (Phase 1 완료)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 예시
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
// 1. 요구사항 분석
|
|
49
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
50
|
+
thought: "User 인증 API 구현: login, signup, logout 필요",
|
|
51
|
+
thoughtNumber: 1,
|
|
52
|
+
totalThoughts: 5,
|
|
53
|
+
nextThoughtNeeded: true
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
// 2. 병렬 구현
|
|
57
|
+
Task(subagent_type="implementation-executor", model="sonnet",
|
|
58
|
+
prompt="Login/Signup Server Functions 구현")
|
|
59
|
+
Task(subagent_type="designer", model="sonnet",
|
|
60
|
+
prompt="Login/Signup UI 컴포넌트 구현")
|
|
61
|
+
Task(subagent_type="document-writer", model="haiku",
|
|
62
|
+
prompt="API 문서 작성")
|
|
63
|
+
|
|
64
|
+
// 3. TASKS.md 업데이트
|
|
65
|
+
Task(subagent_type="document-writer", model="haiku",
|
|
66
|
+
prompt="TASKS.md: 인증 API 구현 완료 체크")
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Phase 2: 자동 검증
|
|
70
|
+
|
|
71
|
+
### 목표
|
|
72
|
+
코드 품질 및 빌드 안정성 확보
|
|
73
|
+
|
|
74
|
+
### 주요 활동
|
|
75
|
+
|
|
76
|
+
1. **/pre-deploy 실행**
|
|
77
|
+
```typescript
|
|
78
|
+
Skill("pre-deploy")
|
|
79
|
+
```
|
|
80
|
+
- typecheck (tsc --noEmit)
|
|
81
|
+
- lint (eslint)
|
|
82
|
+
- build (프로젝트 빌드)
|
|
83
|
+
|
|
84
|
+
2. **TODO 확인**
|
|
85
|
+
```typescript
|
|
86
|
+
TaskList() // pending/in_progress 작업 확인
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
3. **에러 수정**
|
|
90
|
+
- lint-fixer 에이전트 활용
|
|
91
|
+
- 하나씩 수정 (Sequential Thinking 필수)
|
|
92
|
+
|
|
93
|
+
4. **검증 결과 기록**
|
|
94
|
+
- VERIFICATION.md 업데이트
|
|
95
|
+
|
|
96
|
+
### 완료 조건
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
- [ ] /pre-deploy 전체 통과
|
|
100
|
+
- [ ] typecheck: ✅
|
|
101
|
+
- [ ] lint: ✅
|
|
102
|
+
- [ ] build: ✅
|
|
103
|
+
- [ ] TODO 리스트: pending/in_progress = 0
|
|
104
|
+
- [ ] VERIFICATION.md 업데이트 완료
|
|
105
|
+
- [ ] PROCESS.md 업데이트 (Phase 2 완료)
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 예시
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
// 1. /pre-deploy 실행
|
|
112
|
+
Skill("pre-deploy")
|
|
113
|
+
|
|
114
|
+
// 2. 결과 확인 및 기록
|
|
115
|
+
Task(subagent_type="document-writer", model="haiku",
|
|
116
|
+
prompt=`VERIFICATION.md 업데이트:
|
|
117
|
+
- typecheck: ✅ 통과
|
|
118
|
+
- lint: ✅ 0 에러
|
|
119
|
+
- build: ✅ 성공`)
|
|
120
|
+
|
|
121
|
+
// 3. TODO 확인
|
|
122
|
+
TaskList()
|
|
123
|
+
|
|
124
|
+
// 4. Phase 2 완료 기록
|
|
125
|
+
Task(subagent_type="document-writer", model="haiku",
|
|
126
|
+
prompt="PROCESS.md: Phase 2 완료 → Phase 3 시작")
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Phase 3: 플래너 검증
|
|
130
|
+
|
|
131
|
+
### 목표
|
|
132
|
+
아키텍처 및 구현 품질 검증
|
|
133
|
+
|
|
134
|
+
### 주요 활동
|
|
135
|
+
|
|
136
|
+
1. **Planner 에이전트 호출**
|
|
137
|
+
```typescript
|
|
138
|
+
Task(
|
|
139
|
+
subagent_type="planner",
|
|
140
|
+
model="opus",
|
|
141
|
+
prompt=`구현 완료 검증 요청
|
|
142
|
+
|
|
143
|
+
【원본 작업】
|
|
144
|
+
${PROMPT}
|
|
145
|
+
|
|
146
|
+
【수행 내용】
|
|
147
|
+
- 요구사항 1: 완료 (구체적 설명)
|
|
148
|
+
- 요구사항 2: 완료 (구체적 설명)
|
|
149
|
+
|
|
150
|
+
【검증 결과】
|
|
151
|
+
- /pre-deploy: ✅ 통과
|
|
152
|
+
- TODO: ✅ 0개
|
|
153
|
+
|
|
154
|
+
완료 여부를 판단하고, 미흡한 점이 있다면 구체적으로 지적해주세요.`
|
|
155
|
+
)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
2. **응답 처리**
|
|
159
|
+
- "승인" → Phase 4 진행
|
|
160
|
+
- "수정 필요" → Phase 2로 복귀
|
|
161
|
+
|
|
162
|
+
3. **결과 기록**
|
|
163
|
+
- VERIFICATION.md에 Planner 응답 기록
|
|
164
|
+
|
|
165
|
+
### 완료 조건
|
|
166
|
+
|
|
167
|
+
```markdown
|
|
168
|
+
- [ ] Planner 에이전트 호출 완료
|
|
169
|
+
- [ ] Planner 응답: "승인" 또는 "완료"
|
|
170
|
+
- [ ] VERIFICATION.md에 응답 기록
|
|
171
|
+
- [ ] PROCESS.md 업데이트 (Phase 3 완료)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 예시
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
// Planner 호출
|
|
178
|
+
Task(subagent_type="planner", model="opus", prompt="...")
|
|
179
|
+
|
|
180
|
+
// 응답 처리
|
|
181
|
+
if (planner_response.includes("승인")) {
|
|
182
|
+
// Phase 4 진행
|
|
183
|
+
Task(subagent_type="document-writer", model="haiku",
|
|
184
|
+
prompt="VERIFICATION.md: Planner 승인 기록")
|
|
185
|
+
} else {
|
|
186
|
+
// Phase 2로 복귀
|
|
187
|
+
// 피드백 반영 후 재검증
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Phase 4: 완료
|
|
192
|
+
|
|
193
|
+
### 목표
|
|
194
|
+
작업 완료 및 최종 문서화
|
|
195
|
+
|
|
196
|
+
### 주요 활동
|
|
197
|
+
|
|
198
|
+
1. **최종 문서 업데이트**
|
|
199
|
+
- PROCESS.md: 완료 시각, 총 소요 시간
|
|
200
|
+
- TASKS.md: 최종 확인 (모든 체크박스 체크)
|
|
201
|
+
|
|
202
|
+
2. **완료 출력**
|
|
203
|
+
```
|
|
204
|
+
<promise>{{PROMISE}}</promise>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### 완료 조건
|
|
208
|
+
|
|
209
|
+
```markdown
|
|
210
|
+
- [ ] TASKS.md: 모든 항목 체크 완료
|
|
211
|
+
- [ ] PROCESS.md: 완료 시각 기록
|
|
212
|
+
- [ ] VERIFICATION.md: 모든 검증 통과
|
|
213
|
+
- [ ] <promise> 태그 출력
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## 실패 처리
|
|
217
|
+
|
|
218
|
+
| 실패 Phase | 조치 |
|
|
219
|
+
|-----------|------|
|
|
220
|
+
| **Phase 1** | 미완료 항목 계속 구현 |
|
|
221
|
+
| **Phase 2** | 에러 수정 후 재검증 |
|
|
222
|
+
| **Phase 3** | Planner 피드백 반영 → Phase 2부터 재실행 |
|
|
223
|
+
|
|
224
|
+
**절대 건너뛰지 않음. 실패 시 수정 → 재검증 반복**
|
|
225
|
+
|
|
226
|
+
## 금지 사항
|
|
227
|
+
|
|
228
|
+
| 금지 패턴 | 설명 |
|
|
229
|
+
|----------|------|
|
|
230
|
+
| ❌ Phase 스킵 | 2→4 직행 금지 |
|
|
231
|
+
| ❌ 부분 검증 | /pre-deploy 일부만 실행 금지 |
|
|
232
|
+
| ❌ Planner 우회 | Phase 3 생략 금지 |
|
|
233
|
+
| ❌ 추측 완료 | "아마 완료" 금지 |
|
|
234
|
+
|
|
235
|
+
## 체크리스트
|
|
236
|
+
|
|
237
|
+
작업 시작 전:
|
|
238
|
+
|
|
239
|
+
- [ ] Phase 1-4 구조 이해
|
|
240
|
+
- [ ] 각 Phase 완료 조건 숙지
|
|
241
|
+
- [ ] 문서화 폴더 생성 (.claude/ralph/{timestamp}/)
|
|
242
|
+
- [ ] TASKS.md, PROCESS.md, VERIFICATION.md 초기화
|
|
243
|
+
|
|
244
|
+
작업 중:
|
|
245
|
+
|
|
246
|
+
- [ ] 현재 Phase 명확히 인식
|
|
247
|
+
- [ ] Phase 전환 시 문서 업데이트
|
|
248
|
+
- [ ] 실패 시 조기 탈출하지 않고 수정
|
|
249
|
+
|
|
250
|
+
**4단계 순차 진행으로 작업 완료 보장**
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
# Sequential Thinking Pattern
|
|
2
|
+
|
|
3
|
+
**목적**: 복잡한 문제를 구조화된 단계로 분해하여 해결
|
|
4
|
+
|
|
5
|
+
## 핵심 원칙
|
|
6
|
+
|
|
7
|
+
**작업 시작 전 Sequential Thinking으로 사고 과정을 거칠 것**
|
|
8
|
+
|
|
9
|
+
## 복잡도별 사고 단계
|
|
10
|
+
|
|
11
|
+
| 복잡도 | 단계 수 | 예시 |
|
|
12
|
+
|--------|---------|------|
|
|
13
|
+
| **LOW** | 1-2 | 단순 질문, 파일 읽기, 간단한 검색 |
|
|
14
|
+
| **MEDIUM** | 3-5 | 기능 구현, 버그 수정, 문서 작성 |
|
|
15
|
+
| **HIGH** | 7-10+ | 아키텍처 설계, 대규모 리팩토링, 복잡한 디버깅 |
|
|
16
|
+
|
|
17
|
+
## 사용 시점
|
|
18
|
+
|
|
19
|
+
| 상황 | 필수 여부 |
|
|
20
|
+
|------|----------|
|
|
21
|
+
| 새 기능 구현 | ✅ 필수 (3-5단계) |
|
|
22
|
+
| 버그 수정 | ✅ 필수 (3-5단계) |
|
|
23
|
+
| 리팩토링 | ✅ 필수 (5-7단계) |
|
|
24
|
+
| 아키텍처 설계 | ✅ 필수 (7-10단계) |
|
|
25
|
+
| 파일 읽기 | ❌ 선택 (1단계) |
|
|
26
|
+
| 간단한 검색 | ❌ 선택 (1단계) |
|
|
27
|
+
|
|
28
|
+
## 파라미터
|
|
29
|
+
|
|
30
|
+
| 필수 | 설명 |
|
|
31
|
+
|------|------|
|
|
32
|
+
| `thought` | 현재 사고 내용 |
|
|
33
|
+
| `nextThoughtNeeded` | 추가 사고 필요 여부 (true/false) |
|
|
34
|
+
| `thoughtNumber` | 현재 번호 (1부터 시작) |
|
|
35
|
+
| `totalThoughts` | 예상 총 단계 (동적 조정 가능) |
|
|
36
|
+
|
|
37
|
+
| 선택 | 설명 |
|
|
38
|
+
|------|------|
|
|
39
|
+
| `isRevision` | 이전 사고 수정 여부 |
|
|
40
|
+
| `revisesThought` | 수정 대상 번호 |
|
|
41
|
+
| `branchFromThought` | 분기 시작점 |
|
|
42
|
+
| `branchId` | 분기 식별자 |
|
|
43
|
+
|
|
44
|
+
## 코드 예시
|
|
45
|
+
|
|
46
|
+
### 예시 1: 간단한 작업 (2단계)
|
|
47
|
+
|
|
48
|
+
```typescript
|
|
49
|
+
// Thought 1: 파일 탐색 계획
|
|
50
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
51
|
+
thought: "User 관련 파일을 찾기 위해 src/functions/ 디렉토리를 탐색해야 함",
|
|
52
|
+
thoughtNumber: 1,
|
|
53
|
+
totalThoughts: 2,
|
|
54
|
+
nextThoughtNeeded: true
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
// Thought 2: 실행 결정
|
|
58
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
59
|
+
thought: "Glob 도구로 **/*user*.ts 패턴 검색 실행",
|
|
60
|
+
thoughtNumber: 2,
|
|
61
|
+
totalThoughts: 2,
|
|
62
|
+
nextThoughtNeeded: false
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 예시 2: 중간 복잡도 (5단계)
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
// Thought 1: 문제 정의
|
|
70
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
71
|
+
thought: "로그인 API에서 타입 에러 발생. src/functions/auth.ts 확인 필요",
|
|
72
|
+
thoughtNumber: 1,
|
|
73
|
+
totalThoughts: 5,
|
|
74
|
+
nextThoughtNeeded: true
|
|
75
|
+
})
|
|
76
|
+
|
|
77
|
+
// Thought 2: 탐색 계획
|
|
78
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
79
|
+
thought: "auth.ts와 관련 타입 파일 (src/types/auth.ts) 병렬로 읽기",
|
|
80
|
+
thoughtNumber: 2,
|
|
81
|
+
totalThoughts: 5,
|
|
82
|
+
nextThoughtNeeded: true
|
|
83
|
+
})
|
|
84
|
+
|
|
85
|
+
// Thought 3: 원인 분석
|
|
86
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
87
|
+
thought: "LoginInput 타입에 email 필드가 없음. Zod 스키마와 TypeScript 타입 불일치",
|
|
88
|
+
thoughtNumber: 3,
|
|
89
|
+
totalThoughts: 5,
|
|
90
|
+
nextThoughtNeeded: true
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
// Thought 4: 해결 방안
|
|
94
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
95
|
+
thought: "LoginInput 인터페이스에 email: string 추가. Zod 스키마는 이미 올바름",
|
|
96
|
+
thoughtNumber: 4,
|
|
97
|
+
totalThoughts: 5,
|
|
98
|
+
nextThoughtNeeded: true
|
|
99
|
+
})
|
|
100
|
+
|
|
101
|
+
// Thought 5: 실행 결정
|
|
102
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
103
|
+
thought: "Edit 도구로 src/types/auth.ts 수정 후 tsc 재실행",
|
|
104
|
+
thoughtNumber: 5,
|
|
105
|
+
totalThoughts: 5,
|
|
106
|
+
nextThoughtNeeded: false
|
|
107
|
+
})
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 예시 3: 동적 조정 (3→5단계)
|
|
111
|
+
|
|
112
|
+
```typescript
|
|
113
|
+
// Thought 1
|
|
114
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
115
|
+
thought: "API 엔드포인트 구현 시작. 3단계 예상",
|
|
116
|
+
thoughtNumber: 1,
|
|
117
|
+
totalThoughts: 3,
|
|
118
|
+
nextThoughtNeeded: true
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
// Thought 2
|
|
122
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
123
|
+
thought: "기존 패턴 확인 중 인증 미들웨어가 필요함을 발견. 단계 조정",
|
|
124
|
+
thoughtNumber: 2,
|
|
125
|
+
totalThoughts: 5, // 3→5로 증가
|
|
126
|
+
nextThoughtNeeded: true
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
// Thought 3-5 계속...
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## 주요 기능
|
|
133
|
+
|
|
134
|
+
### 1. 동적 조정
|
|
135
|
+
|
|
136
|
+
**totalThoughts는 고정이 아님:**
|
|
137
|
+
- 작업 중 복잡도 재평가 가능
|
|
138
|
+
- 필요 시 단계 추가/감소
|
|
139
|
+
|
|
140
|
+
### 2. 수정 (Revision)
|
|
141
|
+
|
|
142
|
+
**이전 사고를 재검토:**
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
146
|
+
thought: "Thought 3의 원인 분석이 잘못됨. 실제 문제는 DB 스키마 불일치",
|
|
147
|
+
thoughtNumber: 6,
|
|
148
|
+
totalThoughts: 7,
|
|
149
|
+
isRevision: true,
|
|
150
|
+
revisesThought: 3,
|
|
151
|
+
nextThoughtNeeded: true
|
|
152
|
+
})
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### 3. 분기 (Branching)
|
|
156
|
+
|
|
157
|
+
**여러 접근 방식 탐색:**
|
|
158
|
+
|
|
159
|
+
```typescript
|
|
160
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
161
|
+
thought: "방법 A: REST API 사용",
|
|
162
|
+
thoughtNumber: 4,
|
|
163
|
+
totalThoughts: 8,
|
|
164
|
+
branchFromThought: 3,
|
|
165
|
+
branchId: "approach-a",
|
|
166
|
+
nextThoughtNeeded: true
|
|
167
|
+
})
|
|
168
|
+
|
|
169
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
170
|
+
thought: "방법 B: GraphQL 사용",
|
|
171
|
+
thoughtNumber: 4,
|
|
172
|
+
totalThoughts: 8,
|
|
173
|
+
branchFromThought: 3,
|
|
174
|
+
branchId: "approach-b",
|
|
175
|
+
nextThoughtNeeded: true
|
|
176
|
+
})
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## 금지 패턴
|
|
180
|
+
|
|
181
|
+
**다음 표현 사용 금지:**
|
|
182
|
+
|
|
183
|
+
| 금지 표현 | 이유 | 대체 표현 |
|
|
184
|
+
|----------|------|----------|
|
|
185
|
+
| "~해야 한다" | 추측성 | "~한다" (단정) |
|
|
186
|
+
| "probably" | 불확실 | "확인 후 결정" |
|
|
187
|
+
| "seems to" | 모호함 | "분석 결과 ~임" |
|
|
188
|
+
| "아마도" | 추측 | "검증 필요" |
|
|
189
|
+
| "~것 같다" | 불확실 | "~이다" |
|
|
190
|
+
|
|
191
|
+
**올바른 표현:**
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
// ❌ 잘못된 표현
|
|
195
|
+
thought: "이 파일을 수정하면 아마도 해결될 것 같다"
|
|
196
|
+
|
|
197
|
+
// ✅ 올바른 표현
|
|
198
|
+
thought: "타입 정의 누락 확인. src/types/user.ts 수정으로 해결"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## 체크리스트
|
|
202
|
+
|
|
203
|
+
작업 시작 전:
|
|
204
|
+
|
|
205
|
+
- [ ] 복잡도 판단 (LOW/MEDIUM/HIGH)
|
|
206
|
+
- [ ] 최소 단계 수 결정
|
|
207
|
+
- [ ] 첫 번째 thought 작성 (문제 정의)
|
|
208
|
+
- [ ] 마지막 thought에서만 nextThoughtNeeded=false
|
|
209
|
+
|
|
210
|
+
작업 중:
|
|
211
|
+
|
|
212
|
+
- [ ] 각 단계마다 명확한 결론
|
|
213
|
+
- [ ] 추측성 표현 금지
|
|
214
|
+
- [ ] 필요 시 totalThoughts 조정
|
|
215
|
+
- [ ] 불확실하면 분기 또는 수정
|
|
216
|
+
|
|
217
|
+
**모든 복잡한 작업은 Sequential Thinking으로 시작**
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# TodoWrite Pattern
|
|
2
|
+
|
|
3
|
+
**목적**: 복잡한 작업을 단계별로 추적하고 진행 상황 관리
|
|
4
|
+
|
|
5
|
+
## 핵심 개념
|
|
6
|
+
|
|
7
|
+
TodoWrite는 작업을 작은 단위로 나누고 각 단계를 체크리스트로 관리하는 도구입니다.
|
|
8
|
+
|
|
9
|
+
## 사용 시점
|
|
10
|
+
|
|
11
|
+
| 상황 | 사용 여부 |
|
|
12
|
+
|------|----------|
|
|
13
|
+
| 3개 이상 단계 작업 | ✅ 권장 |
|
|
14
|
+
| 여러 파일 수정 | ✅ 권장 |
|
|
15
|
+
| 순차적 의존성 | ✅ 필수 |
|
|
16
|
+
| Plan 모드 | ✅ 필수 |
|
|
17
|
+
| 간단한 1-2단계 작업 | ❌ 불필요 |
|
|
18
|
+
|
|
19
|
+
## 기본 구조
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
TodoWrite({
|
|
23
|
+
todos: [
|
|
24
|
+
{ text: "1단계: 파일 탐색", done: false },
|
|
25
|
+
{ text: "2단계: 타입 수정", done: false },
|
|
26
|
+
{ text: "3단계: 테스트 실행", done: false }
|
|
27
|
+
]
|
|
28
|
+
})
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 워크플로우
|
|
32
|
+
|
|
33
|
+
### 1. 작업 시작 시
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
// 모든 단계를 done: false로 초기화
|
|
37
|
+
TodoWrite({
|
|
38
|
+
todos: [
|
|
39
|
+
{ text: "요구사항 분석", done: false },
|
|
40
|
+
{ text: "파일 탐색", done: false },
|
|
41
|
+
{ text: "코드 수정", done: false },
|
|
42
|
+
{ text: "테스트 검증", done: false }
|
|
43
|
+
]
|
|
44
|
+
})
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 2. 단계 완료 시
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
// 완료된 항목을 done: true로 업데이트
|
|
51
|
+
TodoWrite({
|
|
52
|
+
todos: [
|
|
53
|
+
{ text: "요구사항 분석", done: true }, // ✅
|
|
54
|
+
{ text: "파일 탐색", done: true }, // ✅
|
|
55
|
+
{ text: "코드 수정", done: false }, // 진행 중
|
|
56
|
+
{ text: "테스트 검증", done: false }
|
|
57
|
+
]
|
|
58
|
+
})
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 3. 작업 완료 시
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
// 모든 항목 done: true
|
|
65
|
+
TodoWrite({
|
|
66
|
+
todos: [
|
|
67
|
+
{ text: "요구사항 분석", done: true },
|
|
68
|
+
{ text: "파일 탐색", done: true },
|
|
69
|
+
{ text: "코드 수정", done: true },
|
|
70
|
+
{ text: "테스트 검증", done: true }
|
|
71
|
+
]
|
|
72
|
+
})
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 실전 예시
|
|
76
|
+
|
|
77
|
+
### 예시 1: 버그 수정
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
// 초기 상태
|
|
81
|
+
TodoWrite({
|
|
82
|
+
todos: [
|
|
83
|
+
{ text: "1. 버그 재현 및 원인 파악", done: false },
|
|
84
|
+
{ text: "2. 관련 파일 탐색 (src/functions/auth.ts)", done: false },
|
|
85
|
+
{ text: "3. 타입 에러 수정", done: false },
|
|
86
|
+
{ text: "4. tsc 검증", done: false },
|
|
87
|
+
{ text: "5. 테스트 실행", done: false }
|
|
88
|
+
]
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
// 1-2단계 완료 후
|
|
92
|
+
TodoWrite({
|
|
93
|
+
todos: [
|
|
94
|
+
{ text: "1. 버그 재현 및 원인 파악", done: true },
|
|
95
|
+
{ text: "2. 관련 파일 탐색 (src/functions/auth.ts)", done: true },
|
|
96
|
+
{ text: "3. 타입 에러 수정", done: false }, // 현재 작업
|
|
97
|
+
{ text: "4. tsc 검증", done: false },
|
|
98
|
+
{ text: "5. 테스트 실행", done: false }
|
|
99
|
+
]
|
|
100
|
+
})
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 예시 2: 새 기능 구현
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
TodoWrite({
|
|
107
|
+
todos: [
|
|
108
|
+
{ text: "1. 요구사항 분석 및 Sequential Thinking (5단계)", done: false },
|
|
109
|
+
{ text: "2. DB 스키마 설계 (Prisma)", done: false },
|
|
110
|
+
{ text: "3. Server Function 구현 (inputValidator + middleware)", done: false },
|
|
111
|
+
{ text: "4. UI 컴포넌트 구현 (TanStack Query 연동)", done: false },
|
|
112
|
+
{ text: "5. 검증 (typecheck, lint, build)", done: false },
|
|
113
|
+
{ text: "6. 문서 작성 (API 문서, README)", done: false }
|
|
114
|
+
]
|
|
115
|
+
})
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 예시 3: 동적 항목 추가
|
|
119
|
+
|
|
120
|
+
```typescript
|
|
121
|
+
// 초기 계획
|
|
122
|
+
TodoWrite({
|
|
123
|
+
todos: [
|
|
124
|
+
{ text: "1. 파일 읽기", done: true },
|
|
125
|
+
{ text: "2. 코드 수정", done: false }
|
|
126
|
+
]
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
// 작업 중 추가 단계 발견
|
|
130
|
+
TodoWrite({
|
|
131
|
+
todos: [
|
|
132
|
+
{ text: "1. 파일 읽기", done: true },
|
|
133
|
+
{ text: "2. 코드 수정", done: false },
|
|
134
|
+
{ text: "3. 의존성 업데이트 (새로 발견)", done: false }, // 추가
|
|
135
|
+
{ text: "4. 테스트 수정 (새로 발견)", done: false } // 추가
|
|
136
|
+
]
|
|
137
|
+
})
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Sequential Thinking과의 조합
|
|
141
|
+
|
|
142
|
+
**Sequential Thinking**: 사고 과정
|
|
143
|
+
**TodoWrite**: 실행 단계
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
// 1. Sequential Thinking으로 계획 수립
|
|
147
|
+
mcp__sequential-thinking__sequentialthinking({
|
|
148
|
+
thought: "User API 구현 계획: 스키마 → Server Function → UI → 검증",
|
|
149
|
+
thoughtNumber: 1,
|
|
150
|
+
totalThoughts: 3,
|
|
151
|
+
nextThoughtNeeded: true
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
// 2. TodoWrite로 작업 목록 생성
|
|
155
|
+
TodoWrite({
|
|
156
|
+
todos: [
|
|
157
|
+
{ text: "Prisma 스키마 정의", done: false },
|
|
158
|
+
{ text: "Server Function 구현", done: false },
|
|
159
|
+
{ text: "UI 컴포넌트 구현", done: false },
|
|
160
|
+
{ text: "/pre-deploy 검증", done: false }
|
|
161
|
+
]
|
|
162
|
+
})
|
|
163
|
+
|
|
164
|
+
// 3. 각 단계 실행 후 TodoWrite 업데이트
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## 장점
|
|
168
|
+
|
|
169
|
+
| 장점 | 설명 |
|
|
170
|
+
|------|------|
|
|
171
|
+
| **진행 추적** | 어디까지 완료했는지 명확 |
|
|
172
|
+
| **우선순위** | 다음에 할 일이 명확 |
|
|
173
|
+
| **컨텍스트 복구** | Context compaction 후 재개 용이 |
|
|
174
|
+
| **투명성** | 사용자가 진행 상황 확인 가능 |
|
|
175
|
+
|
|
176
|
+
## 주의사항
|
|
177
|
+
|
|
178
|
+
### 금지 패턴
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
// ❌ 너무 큰 단위
|
|
182
|
+
TodoWrite({
|
|
183
|
+
todos: [
|
|
184
|
+
{ text: "전체 기능 구현", done: false } // 너무 모호
|
|
185
|
+
]
|
|
186
|
+
})
|
|
187
|
+
|
|
188
|
+
// ✅ 적절한 단위
|
|
189
|
+
TodoWrite({
|
|
190
|
+
todos: [
|
|
191
|
+
{ text: "DB 스키마 정의", done: false },
|
|
192
|
+
{ text: "API 구현", done: false },
|
|
193
|
+
{ text: "UI 구현", done: false },
|
|
194
|
+
{ text: "테스트", done: false }
|
|
195
|
+
]
|
|
196
|
+
})
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### 권장 사항
|
|
200
|
+
|
|
201
|
+
- 각 항목은 30분 이내 완료 가능한 크기
|
|
202
|
+
- 5-10개 항목이 적절 (너무 많으면 분할)
|
|
203
|
+
- 구체적이고 측정 가능한 표현
|
|
204
|
+
- 순서가 중요하면 번호 부여
|
|
205
|
+
|
|
206
|
+
## 체크리스트
|
|
207
|
+
|
|
208
|
+
TodoWrite 사용 전:
|
|
209
|
+
|
|
210
|
+
- [ ] 작업이 3단계 이상인가?
|
|
211
|
+
- [ ] 각 단계가 명확한가?
|
|
212
|
+
- [ ] 순서가 논리적인가?
|
|
213
|
+
- [ ] 각 항목이 측정 가능한가?
|
|
214
|
+
|
|
215
|
+
**복잡한 작업은 TodoWrite로 체계적 관리**
|