@kood/claude-code 0.5.1 → 0.5.4

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 (88) hide show
  1. package/dist/index.js +604 -261
  2. package/package.json +1 -1
  3. package/templates/.claude/agents/analyst.md +6 -14
  4. package/templates/.claude/agents/architect.md +6 -14
  5. package/templates/.claude/agents/code-reviewer.md +8 -14
  6. package/templates/.claude/agents/dependency-manager.md +8 -14
  7. package/templates/.claude/agents/deployment-validator.md +8 -14
  8. package/templates/.claude/agents/designer.md +8 -0
  9. package/templates/.claude/agents/document-writer.md +75 -316
  10. package/templates/.claude/agents/explore.md +8 -3
  11. package/templates/.claude/agents/git-operator.md +63 -17
  12. package/templates/.claude/agents/implementation-executor.md +14 -37
  13. package/templates/.claude/agents/ko-to-en-translator.md +8 -13
  14. package/templates/.claude/agents/lint-fixer.md +8 -172
  15. package/templates/.claude/agents/planner.md +6 -14
  16. package/templates/.claude/agents/refactor-advisor.md +8 -14
  17. package/templates/.claude/commands/git-all.md +3 -167
  18. package/templates/.claude/commands/git-session.md +3 -71
  19. package/templates/.claude/commands/lint-fix.md +119 -82
  20. package/templates/.claude/commands/lint-init.md +2 -54
  21. package/templates/.claude/commands/pre-deploy.md +143 -82
  22. package/templates/.claude/commands/version-update.md +171 -66
  23. package/templates/.claude/instructions/agent-patterns/agent-coordination.md +208 -0
  24. package/templates/.claude/instructions/agent-patterns/index.md +264 -0
  25. package/templates/.claude/instructions/agent-patterns/model-routing.md +167 -0
  26. package/templates/.claude/instructions/agent-patterns/parallel-execution.md +91 -0
  27. package/templates/.claude/instructions/agent-patterns/read-parallelization.md +106 -0
  28. package/templates/.claude/instructions/document-templates/ralph-templates.md +71 -0
  29. package/templates/.claude/instructions/index.md +350 -0
  30. package/templates/.claude/instructions/multi-agent/agent-roster.md +811 -0
  31. package/templates/.claude/{PARALLEL_AGENTS.md → instructions/multi-agent/coordination-guide.md} +27 -336
  32. package/templates/.claude/instructions/{parallel-agent-execution.md → multi-agent/execution-patterns.md} +127 -438
  33. package/templates/.claude/instructions/multi-agent/index.md +282 -0
  34. package/templates/.claude/instructions/multi-agent/performance-optimization.md +456 -0
  35. package/templates/.claude/instructions/tech-stack/design-standards.md +282 -0
  36. package/templates/.claude/instructions/tech-stack/index.md +70 -0
  37. package/templates/.claude/instructions/tech-stack/prisma-patterns.md +352 -0
  38. package/templates/.claude/instructions/tech-stack/tanstack-patterns.md +275 -0
  39. package/templates/.claude/instructions/validation/forbidden-patterns.md +281 -0
  40. package/templates/.claude/instructions/validation/index.md +32 -0
  41. package/templates/.claude/instructions/validation/required-behaviors.md +331 -0
  42. package/templates/.claude/instructions/validation/verification-checklist.md +318 -0
  43. package/templates/.claude/instructions/workflow-patterns/index.md +18 -0
  44. package/templates/.claude/instructions/workflow-patterns/phase-based-workflow.md +250 -0
  45. package/templates/.claude/instructions/workflow-patterns/sequential-thinking.md +217 -0
  46. package/templates/.claude/instructions/workflow-patterns/todowrite-pattern.md +215 -0
  47. package/templates/.claude/skills/bug-fix/SKILL.md +972 -0
  48. package/templates/.claude/skills/docs-creator/AGENTS.md +54 -173
  49. package/templates/.claude/skills/docs-creator/SKILL.md +146 -254
  50. package/templates/.claude/skills/docs-refactor/AGENTS.md +61 -187
  51. package/templates/.claude/skills/docs-refactor/SKILL.md +84 -315
  52. package/templates/.claude/skills/execute/SKILL.md +454 -154
  53. package/templates/.claude/skills/figma-to-code/AGENTS.md +4 -1
  54. package/templates/.claude/skills/figma-to-code/SKILL.md +306 -0
  55. package/templates/.claude/skills/global-uiux-design/AGENTS.md +4 -1
  56. package/templates/.claude/skills/global-uiux-design/SKILL.md +455 -125
  57. package/templates/.claude/skills/korea-uiux-design/AGENTS.md +4 -1
  58. package/templates/.claude/skills/korea-uiux-design/SKILL.md +461 -116
  59. package/templates/.claude/skills/nextjs-react-best-practices/SKILL.md +177 -0
  60. package/templates/.claude/skills/plan/SKILL.md +1157 -87
  61. package/templates/.claude/skills/prd/SKILL.md +367 -66
  62. package/templates/.claude/skills/ralph/AGENTS.md +4 -1
  63. package/templates/.claude/skills/ralph/SKILL.md +100 -14
  64. package/templates/.claude/skills/refactor/AGENTS.md +269 -0
  65. package/templates/.claude/skills/refactor/SKILL.md +1572 -0
  66. package/templates/.claude/skills/stitch-design/README.md +34 -0
  67. package/templates/.claude/skills/stitch-design/SKILL.md +213 -0
  68. package/templates/.claude/skills/stitch-design/examples/DESIGN.md +154 -0
  69. package/templates/.claude/skills/stitch-loop/README.md +54 -0
  70. package/templates/.claude/skills/stitch-loop/SKILL.md +316 -0
  71. package/templates/.claude/skills/stitch-loop/examples/SITE.md +73 -0
  72. package/templates/.claude/skills/stitch-loop/examples/next-prompt.md +25 -0
  73. package/templates/.claude/skills/stitch-loop/resources/baton-schema.md +61 -0
  74. package/templates/.claude/skills/stitch-loop/resources/site-template.md +104 -0
  75. package/templates/.claude/skills/stitch-react/README.md +36 -0
  76. package/templates/.claude/skills/stitch-react/SKILL.md +323 -0
  77. package/templates/.claude/skills/stitch-react/examples/gold-standard-card.tsx +88 -0
  78. package/templates/.claude/skills/stitch-react/package-lock.json +231 -0
  79. package/templates/.claude/skills/stitch-react/package.json +16 -0
  80. package/templates/.claude/skills/stitch-react/resources/architecture-checklist.md +15 -0
  81. package/templates/.claude/skills/stitch-react/resources/component-template.tsx +37 -0
  82. package/templates/.claude/skills/stitch-react/resources/stitch-api-reference.md +14 -0
  83. package/templates/.claude/skills/stitch-react/resources/style-guide.json +24 -0
  84. package/templates/.claude/skills/stitch-react/scripts/fetch-stitch.sh +30 -0
  85. package/templates/.claude/skills/stitch-react/scripts/validate.js +77 -0
  86. package/templates/.claude/skills/tanstack-start-react-best-practices/SKILL.md +149 -0
  87. package/templates/.claude/commands/bug-fix.md +0 -510
  88. package/templates/.claude/commands/refactor.md +0 -788
@@ -0,0 +1,1572 @@
1
+ ---
2
+ name: refactor
3
+ description: 코드 품질 개선을 위한 리팩토링 계획 수립 및 실행 전략 제시
4
+ user-invocable: true
5
+ ---
6
+
7
+ @../../instructions/workflow-patterns/sequential-thinking.md
8
+ @../../instructions/agent-patterns/parallel-execution.md
9
+ @../../instructions/agent-patterns/model-routing.md
10
+ @../../instructions/validation/forbidden-patterns.md
11
+ @../../instructions/validation/required-behaviors.md
12
+
13
+ # Refactor Skill
14
+
15
+ > 코드 품질 개선을 위한 리팩토링 계획 수립 및 실행 전략 제시
16
+
17
+ ---
18
+
19
+ <when_to_use>
20
+
21
+ ## 사용 시점
22
+
23
+ | 상황 | 예시 |
24
+ |------|------|
25
+ | **코드 품질 개선** | 복잡도 감소, 중복 코드 제거, 명명 개선 |
26
+ | **구조 개선** | 파일/모듈 구조 정리, 관심사 분리 |
27
+ | **점진적 개선** | 단계적 리팩토링 계획 필요 |
28
+ | **성능 최적화** | 코드 효율성 개선 (기능 유지) |
29
+ | **타입 안정성** | any 제거, 명시적 타입 정의 |
30
+
31
+ ## 호출 방법
32
+
33
+ ```bash
34
+ # 직접 처리 (명확한 범위)
35
+ /refactor src/utils/auth.ts - 너무 복잡함
36
+
37
+ # @refactor-advisor 위임 (코드 품질 개선)
38
+ Task({
39
+ subagent_type: 'refactor-advisor',
40
+ model: 'sonnet',
41
+ description: '인증 모듈 리팩토링',
42
+ prompt: '복잡도 감소, 중복 제거, 타입 안정성 향상'
43
+ })
44
+ ```
45
+
46
+ ## 결과물
47
+
48
+ - 2-3개 리팩토링 옵션 제시 (장단점, 영향 범위)
49
+ - 추천안 및 근거
50
+ - 선택 후 `.claude/refactor/00.[모듈명]/` 폴더에 3개 문서 병렬 생성
51
+ - ANALYSIS.md, PLAN.md, METRICS.md
52
+
53
+ </when_to_use>
54
+
55
+ ---
56
+
57
+ <argument_validation>
58
+
59
+ ## ARGUMENT 필수 확인
60
+
61
+ ```
62
+ $ARGUMENTS 없음 → 즉시 질문:
63
+
64
+ "무엇을 리팩토링해야 하나요? 구체적으로 알려주세요.
65
+
66
+ 예시:
67
+ - 특정 파일/모듈 개선
68
+ - 복잡도 감소
69
+ - 중복 코드 제거
70
+ - 구조 개선
71
+ - 성능 최적화"
72
+
73
+ $ARGUMENTS 있음 → 다음 단계 진행
74
+ ```
75
+
76
+ </argument_validation>
77
+
78
+ ---
79
+
80
+ <workflow>
81
+
82
+ ## 실행 흐름
83
+
84
+ | 단계 | 작업 | 도구 |
85
+ |------|------|------|
86
+ | 1. 입력 확인 | ARGUMENT 검증, 없으면 질문 | - |
87
+ | 2. Agent 판단 | @refactor-advisor 사용 여부 결정 | - |
88
+ | 3. 복잡도 판단 | Sequential Thinking으로 분석 범위 결정 | sequentialthinking (1단계) |
89
+ | 4. 코드 분석 | 현재 코드 구조, 문제점, 메트릭 파악 | Task (Explore) + Read/Grep |
90
+ | 5. 개선 옵션 도출 | 가능한 접근 4-5개 → 주요 2-3개 선정 | sequentialthinking (2-6단계) |
91
+ | 6. 옵션 제시 | 장단점, 영향 범위, 추천안 제시 | - |
92
+ | 7. 문서 생성 | 옵션 선택 대기 후 3개 문서 병렬 생성 | Task (document-writer) 병렬 |
93
+ | 8. 구현 시작 | 문서 완료 즉시 구현 진행 (확인 불필요) | Skill (execute) |
94
+
95
+ </workflow>
96
+
97
+ ---
98
+
99
+ <agent_priority>
100
+
101
+ ## @refactor-advisor Agent 우선 사용
102
+
103
+ **기본 원칙:**
104
+ ```
105
+ 리팩토링 요청 → @refactor-advisor 먼저 고려
106
+ ```
107
+
108
+ ### 사용 조건
109
+
110
+ | 조건 | 설명 |
111
+ |------|------|
112
+ | **코드 품질 개선** | 복잡도, 중복, 명명, 구조 개선 |
113
+ | **기능 변경 없음** | 동작은 유지하며 코드만 개선 |
114
+ | **점진적 개선** | 단계적 리팩토링 계획 필요 |
115
+
116
+ ### Agent 활용 흐름
117
+
118
+ ```
119
+ 1. @refactor-advisor 호출
120
+ → 코드 분석, 우선순위별 개선점 도출
121
+
122
+ 2. 분석 결과 기반 옵션 정리
123
+ → 사용자에게 2-3개 옵션 제시
124
+
125
+ 3. 선택 후 계획 문서 작성
126
+ → .claude/plans/refactor-[이름].md
127
+ ```
128
+
129
+ ### Agent 미사용 케이스
130
+
131
+ ```
132
+ ✅ @refactor-advisor 사용:
133
+ - 기존 코드 개선
134
+ - 복잡도/중복 감소
135
+ - 구조 개선
136
+
137
+ ❌ 직접 처리:
138
+ - 아키텍처 변경
139
+ - 새 기능 추가와 함께 리팩토링
140
+ - 프레임워크 마이그레이션
141
+ ```
142
+
143
+ </agent_priority>
144
+
145
+ ---
146
+
147
+ <parallel_agent_execution>
148
+
149
+ ## 병렬 Agent 실행
150
+
151
+ **복잡한 리팩토링은 여러 Agent를 병렬로 실행하여 효율 향상.**
152
+
153
+ ### 권장 Agent
154
+
155
+ | Agent | Model | 역할 |
156
+ |-------|-------|------|
157
+ | **@refactor-advisor** | sonnet | 리팩토링 계획 수립, 우선순위 분석 |
158
+ | **@architect** | opus | 아키텍처 분석, 구조 개선 방향 제시 (READ-ONLY) |
159
+ | **@implementation-executor** | sonnet | 리팩토링 구현 실행 |
160
+ | **@code-reviewer** | opus | 리팩토링 후 품질 검증 |
161
+ | **@analyst** | sonnet | 코드 메트릭 분석, 엣지 케이스 검증 |
162
+ | **@explore** | haiku | 코드베이스 탐색, 의존성 파악 |
163
+ | **@document-writer** | haiku/sonnet | 리팩토링 계획 및 결과 문서화 |
164
+
165
+ ### 병렬 실행 패턴
166
+
167
+ ### Read 도구 병렬화
168
+
169
+ **프로젝트 분석 시 파일 병렬 읽기:**
170
+
171
+ ```typescript
172
+ // ❌ 순차 읽기 (느림)
173
+ Read({ file_path: "src/file1.ts" })
174
+ // 대기...
175
+ Read({ file_path: "src/file2.ts" })
176
+
177
+ // ✅ 병렬 읽기 (빠름)
178
+ Read({ file_path: "src/file1.ts" })
179
+ Read({ file_path: "src/file2.ts" })
180
+ Read({ file_path: "src/file3.ts" })
181
+ Read({ file_path: "docs/api.md" })
182
+ ```
183
+
184
+ **복잡한 탐색은 explore 에이전트 활용:**
185
+
186
+ ```typescript
187
+ // 여러 영역 동시 탐색
188
+ Task(subagent_type="explore", model="haiku",
189
+ prompt="영역 1 파일 구조 및 패턴 분석")
190
+ Task(subagent_type="explore", model="haiku",
191
+ prompt="영역 2 의존성 및 관계 분석")
192
+ ```
193
+
194
+ ---
195
+
196
+ #### 1. 독립적 모듈 병렬 리팩토링
197
+
198
+ ```typescript
199
+ // ✅ 여러 모듈을 동시에 리팩토링
200
+ Task({
201
+ subagent_type: "implementation-executor",
202
+ model: "sonnet",
203
+ prompt: "User 모듈 리팩토링: 복잡도 감소, 중복 제거"
204
+ })
205
+
206
+ Task({
207
+ subagent_type: "implementation-executor",
208
+ model: "sonnet",
209
+ prompt: "Product 모듈 리팩토링: 타입 안정성 개선"
210
+ })
211
+
212
+ Task({
213
+ subagent_type: "implementation-executor",
214
+ model: "sonnet",
215
+ prompt: "Order 모듈 리팩토링: 함수 분리"
216
+ })
217
+ ```
218
+
219
+ #### 2. 분석 + 계획 병렬
220
+
221
+ ```typescript
222
+ // ✅ 아키텍처 분석과 리팩토링 계획을 동시에
223
+ Task({
224
+ subagent_type: "architect",
225
+ model: "opus",
226
+ prompt: "현재 아키텍처 문제점 및 개선 방향 분석 (READ-ONLY)"
227
+ })
228
+
229
+ Task({
230
+ subagent_type: "refactor-advisor",
231
+ model: "sonnet",
232
+ prompt: "리팩토링 우선순위 계획 및 단계별 전략"
233
+ })
234
+
235
+ Task({
236
+ subagent_type: "analyst",
237
+ model: "sonnet",
238
+ prompt: "코드 복잡도, 중복률, 결합도 메트릭 분석"
239
+ })
240
+ ```
241
+
242
+ #### 3. 의존성 분석 + 수정 병렬
243
+
244
+ ```typescript
245
+ // ✅ 의존성 파악과 독립 모듈 리팩토링 동시 진행
246
+ Task({
247
+ subagent_type: "explore",
248
+ model: "haiku",
249
+ prompt: "모듈 간 의존성 그래프 분석 및 순환 의존성 탐지"
250
+ })
251
+
252
+ Task({
253
+ subagent_type: "implementation-executor",
254
+ model: "sonnet",
255
+ prompt: "독립 유틸리티 함수 리팩토링 (의존성 없음)"
256
+ })
257
+
258
+ Task({
259
+ subagent_type: "implementation-executor",
260
+ model: "sonnet",
261
+ prompt: "타입 정의 개선 (다른 모듈에 영향 없음)"
262
+ })
263
+ ```
264
+
265
+ #### 4. 리팩토링 + 테스트 + 문서 병렬
266
+
267
+ ```typescript
268
+ // ✅ 구현, 테스트, 문서를 동시에
269
+ Task({
270
+ subagent_type: "implementation-executor",
271
+ model: "sonnet",
272
+ prompt: "API 레이어 리팩토링 실행"
273
+ })
274
+
275
+ Task({
276
+ subagent_type: "implementation-executor",
277
+ model: "sonnet",
278
+ prompt: "리팩토링된 함수에 대한 단위 테스트 작성"
279
+ })
280
+
281
+ Task({
282
+ subagent_type: "document-writer",
283
+ model: "haiku",
284
+ prompt: "리팩토링 변경 사항 및 마이그레이션 가이드 문서화"
285
+ })
286
+ ```
287
+
288
+ #### 5. 다중 관점 코드 리뷰 (병렬)
289
+
290
+ ```typescript
291
+ // ✅ 리팩토링 후 여러 관점에서 동시 검증
292
+ Task({
293
+ subagent_type: "code-reviewer",
294
+ model: "opus",
295
+ prompt: "성능 검토: 불필요한 리렌더, N+1 쿼리, 메모이제이션"
296
+ })
297
+
298
+ Task({
299
+ subagent_type: "code-reviewer",
300
+ model: "opus",
301
+ prompt: "보안 검토: 타입 안정성, 입력 검증, 인증/인가 로직"
302
+ })
303
+
304
+ Task({
305
+ subagent_type: "code-reviewer",
306
+ model: "opus",
307
+ prompt: "가독성 검토: 명명 규칙, 함수 길이, 주석 품질"
308
+ })
309
+
310
+ Task({
311
+ subagent_type: "code-reviewer",
312
+ model: "opus",
313
+ prompt: "유지보수성 검토: 테스트 커버리지, 의존성 관리, 확장성"
314
+ })
315
+ ```
316
+
317
+ #### 6. 점진적 마이그레이션 병렬화
318
+
319
+ ```typescript
320
+ // ✅ 레거시 + 신규 시스템 공존 리팩토링
321
+ Task({
322
+ subagent_type: "implementation-executor",
323
+ model: "sonnet",
324
+ prompt: "새 인증 시스템 구현 (기존과 독립)"
325
+ })
326
+
327
+ Task({
328
+ subagent_type: "implementation-executor",
329
+ model: "sonnet",
330
+ prompt: "레거시 API 어댑터 구현 (호환성 유지)"
331
+ })
332
+
333
+ Task({
334
+ subagent_type: "implementation-executor",
335
+ model: "haiku",
336
+ prompt: "Feature flag 설정 및 점진적 전환 로직"
337
+ })
338
+
339
+ Task({
340
+ subagent_type: "document-writer",
341
+ model: "sonnet",
342
+ prompt: "마이그레이션 플랜 및 롤백 가이드 작성"
343
+ })
344
+ ```
345
+
346
+ ### Model Routing (복잡도별)
347
+
348
+ | 복잡도 | 리팩토링 유형 | Model | Agent | 예시 |
349
+ |--------|--------------|-------|-------|------|
350
+ | **LOW** | 단순 개선 | haiku | implementation-executor | 변수명 변경, 코드 포맷팅, 주석 정리 |
351
+ | **MEDIUM** | 일반 리팩토링 | sonnet | implementation-executor, refactor-advisor | 함수 분리, 중복 제거, 타입 개선 |
352
+ | **HIGH** | 복잡한 구조 변경 | opus | architect, code-reviewer | 아키텍처 재설계, 모듈 분리, 디자인 패턴 적용 |
353
+
354
+ **Agent별 모델 선택 원칙:**
355
+
356
+ | Agent | 권장 모델 | 이유 |
357
+ |-------|----------|------|
358
+ | **architect** | **opus** | 아키텍처 분석은 높은 사고력 필요 |
359
+ | **implementation-executor** | **sonnet** | 균형 잡힌 품질/속도 (haiku: 단순 작업) |
360
+ | **code-reviewer** | **opus** | 품질 검증은 세밀한 분석 필요 |
361
+ | **refactor-advisor** | **sonnet** | 계획 수립은 중간 복잡도 |
362
+ | **explore** | **haiku** | 단순 탐색은 빠른 응답 우선 |
363
+ | **analyst** | **sonnet** | 메트릭 분석은 중간 복잡도 |
364
+ | **document-writer** | **haiku/sonnet** | 간단한 문서는 haiku, 상세 문서는 sonnet |
365
+
366
+ ### 병렬 실행 전략
367
+
368
+ #### 언제 병렬 실행하는가
369
+
370
+ | 조건 | 병렬 실행 | 순차 실행 |
371
+ |------|----------|----------|
372
+ | **독립성** | ✅ 서로 다른 파일/모듈 | ❌ 같은 파일 수정 |
373
+ | **의존성** | ✅ 의존성 없음 | ❌ 순차 의존성 있음 |
374
+ | **작업 유형** | ✅ 읽기 전용 (분석/탐색) | ❌ 결과가 다음 입력 |
375
+ | **컨텍스트** | ✅ 독립 컨텍스트 | ❌ 공유 컨텍스트 필요 |
376
+
377
+ #### 병렬 실행 체크리스트
378
+
379
+ 실행 전 확인:
380
+
381
+ ```text
382
+ - [ ] 이 작업들은 독립적인가? (서로 다른 파일/모듈)
383
+ - [ ] 순차 의존성이 없는가? (A 결과 → B 입력 아님)
384
+ - [ ] 같은 파일을 동시에 수정하지 않는가?
385
+ - [ ] 컨텍스트 분리가 가능한가? (각 에이전트가 독립적으로 작업)
386
+ - [ ] 적절한 모델을 선택했는가? (복잡도에 맞게)
387
+ ```
388
+
389
+ **모든 항목 ✅ → 병렬 실행 / 하나라도 ❌ → 순차 실행**
390
+
391
+ ### 실전 시나리오
392
+
393
+ #### 시나리오 1: 레거시 → 최신 프레임워크 전환
394
+
395
+ **배경:** 레거시 React 클래스 컴포넌트를 TanStack Start로 전환
396
+
397
+ ```typescript
398
+ // 1단계: 분석 (병렬)
399
+ Task({
400
+ subagent_type: "architect",
401
+ model: "opus",
402
+ prompt: "레거시 아키텍처 분석 및 TanStack Start 전환 전략"
403
+ })
404
+
405
+ Task({
406
+ subagent_type: "explore",
407
+ model: "haiku",
408
+ prompt: "레거시 컴포넌트 목록 및 의존성 파악"
409
+ })
410
+
411
+ Task({
412
+ subagent_type: "analyst",
413
+ model: "sonnet",
414
+ prompt: "전환 리스크 분석: 상태 관리, 라우팅, 데이터 페칭 차이점"
415
+ })
416
+
417
+ // 2단계: 점진적 전환 (병렬 - 독립 컴포넌트)
418
+ Task({
419
+ subagent_type: "implementation-executor",
420
+ model: "sonnet",
421
+ prompt: "Profile 페이지 전환: createFileRoute + Server Functions"
422
+ })
423
+
424
+ Task({
425
+ subagent_type: "implementation-executor",
426
+ model: "sonnet",
427
+ prompt: "Settings 페이지 전환: createFileRoute + Server Functions"
428
+ })
429
+
430
+ Task({
431
+ subagent_type: "implementation-executor",
432
+ model: "sonnet",
433
+ prompt: "Dashboard 페이지 전환: createFileRoute + Server Functions"
434
+ })
435
+
436
+ // 3단계: 검증 + 문서 (병렬)
437
+ Task({
438
+ subagent_type: "code-reviewer",
439
+ model: "opus",
440
+ prompt: "전환된 코드 품질 검증: 라우팅, 상태, 데이터 페칭"
441
+ })
442
+
443
+ Task({
444
+ subagent_type: "document-writer",
445
+ model: "sonnet",
446
+ prompt: "마이그레이션 가이드 작성: 패턴 비교, 주의사항, 롤백 절차"
447
+ })
448
+ ```
449
+
450
+ #### 시나리오 2: 아키텍처 개선 (모놀리식 → 레이어드)
451
+
452
+ **배경:** 모든 로직이 혼재된 파일을 레이어드 아키텍처로 분리
453
+
454
+ ```typescript
455
+ // 1단계: 현재 상태 분석 (병렬)
456
+ Task({
457
+ subagent_type: "architect",
458
+ model: "opus",
459
+ prompt: "현재 아키텍처 문제점 분석: 순환 의존성, 결합도, 테스트 어려움"
460
+ })
461
+
462
+ Task({
463
+ subagent_type: "explore",
464
+ model: "haiku",
465
+ prompt: "모듈 간 의존성 그래프 생성 및 순환 의존성 식별"
466
+ })
467
+
468
+ Task({
469
+ subagent_type: "analyst",
470
+ model: "sonnet",
471
+ prompt: "복잡도 메트릭 분석: 파일 크기, 함수 길이, 중첩 깊이"
472
+ })
473
+
474
+ // 2단계: 레이어 분리 계획
475
+ Task({
476
+ subagent_type: "refactor-advisor",
477
+ model: "sonnet",
478
+ prompt: "레이어드 아키텍처 전환 계획: Presentation → Service → Domain → Data"
479
+ })
480
+
481
+ // 3단계: 레이어별 구현 (순차적 - 의존성 있음)
482
+ // 먼저 Domain Layer (의존성 없음)
483
+ Task({
484
+ subagent_type: "implementation-executor",
485
+ model: "sonnet",
486
+ prompt: "Domain Layer 분리: 엔티티, Value Object, 비즈니스 로직"
487
+ })
488
+
489
+ // 이후 상위 레이어 (병렬 가능)
490
+ Task({
491
+ subagent_type: "implementation-executor",
492
+ model: "sonnet",
493
+ prompt: "Data Layer 구현: Repository, Prisma 연동"
494
+ })
495
+
496
+ Task({
497
+ subagent_type: "implementation-executor",
498
+ model: "sonnet",
499
+ prompt: "Service Layer 구현: 비즈니스 로직 조율, 트랜잭션 관리"
500
+ })
501
+
502
+ Task({
503
+ subagent_type: "implementation-executor",
504
+ model: "sonnet",
505
+ prompt: "Presentation Layer 구현: Server Functions, 입력 검증"
506
+ })
507
+
508
+ // 4단계: 다중 관점 검증 (병렬)
509
+ Task({
510
+ subagent_type: "code-reviewer",
511
+ model: "opus",
512
+ prompt: "아키텍처 검증: 레이어 분리 원칙 준수, 의존성 방향"
513
+ })
514
+
515
+ Task({
516
+ subagent_type: "code-reviewer",
517
+ model: "opus",
518
+ prompt: "테스트 용이성 검증: 단위 테스트 가능성, Mock 필요성"
519
+ })
520
+ ```
521
+
522
+ #### 시나리오 3: 성능 최적화 리팩토링
523
+
524
+ **배경:** 느린 렌더링, N+1 쿼리 문제 해결
525
+
526
+ ```typescript
527
+ // 1단계: 성능 문제 분석 (병렬)
528
+ Task({
529
+ subagent_type: "analyst",
530
+ model: "sonnet",
531
+ prompt: "성능 병목 지점 분석: React Profiler 데이터, DB 쿼리 로그"
532
+ })
533
+
534
+ Task({
535
+ subagent_type: "explore",
536
+ model: "haiku",
537
+ prompt: "불필요한 리렌더 발생 컴포넌트 탐색"
538
+ })
539
+
540
+ Task({
541
+ subagent_type: "explore",
542
+ model: "haiku",
543
+ prompt: "N+1 쿼리 발생 지점 탐색 (Prisma 쿼리 분석)"
544
+ })
545
+
546
+ // 2단계: 최적화 실행 (병렬 - 독립 영역)
547
+ Task({
548
+ subagent_type: "implementation-executor",
549
+ model: "sonnet",
550
+ prompt: "React 최적화: useMemo, useCallback, React.memo 적용"
551
+ })
552
+
553
+ Task({
554
+ subagent_type: "implementation-executor",
555
+ model: "sonnet",
556
+ prompt: "Prisma 쿼리 최적화: include 정리, select 최소화, 배치 쿼리"
557
+ })
558
+
559
+ Task({
560
+ subagent_type: "implementation-executor",
561
+ model: "sonnet",
562
+ prompt: "TanStack Query 최적화: 캐싱 전략, staleTime/cacheTime 조정"
563
+ })
564
+
565
+ // 3단계: 성능 검증 (병렬)
566
+ Task({
567
+ subagent_type: "code-reviewer",
568
+ model: "opus",
569
+ prompt: "성능 개선 검증: 렌더 횟수, 쿼리 실행 시간, 번들 크기"
570
+ })
571
+
572
+ Task({
573
+ subagent_type: "analyst",
574
+ model: "sonnet",
575
+ prompt: "Before/After 메트릭 비교: 응답 시간, 메모리 사용량"
576
+ })
577
+
578
+ Task({
579
+ subagent_type: "document-writer",
580
+ model: "haiku",
581
+ prompt: "성능 최적화 가이드 작성: 적용 패턴, 측정 방법"
582
+ })
583
+ ```
584
+
585
+ #### 시나리오 4: 타입 안정성 개선 (any 제거)
586
+
587
+ **배경:** 프로젝트 전반에 any 타입 남용, 런타임 에러 빈발
588
+
589
+ ```typescript
590
+ // 1단계: any 사용 분석 (병렬)
591
+ Task({
592
+ subagent_type: "explore",
593
+ model: "haiku",
594
+ prompt: "any 타입 사용 지점 전수 조사 (ast-grep 활용)"
595
+ })
596
+
597
+ Task({
598
+ subagent_type: "analyst",
599
+ model: "sonnet",
600
+ prompt: "any 사용 우선순위 분석: 영향 범위, 수정 난이도"
601
+ })
602
+
603
+ Task({
604
+ subagent_type: "architect",
605
+ model: "opus",
606
+ prompt: "타입 설계 개선 방향: Generic, Utility Types, Type Guards"
607
+ })
608
+
609
+ // 2단계: 타입 정의 개선 (병렬 - 독립 모듈)
610
+ Task({
611
+ subagent_type: "implementation-executor",
612
+ model: "sonnet",
613
+ prompt: "API 응답 타입 정의: Zod 스키마 → TypeScript 타입"
614
+ })
615
+
616
+ Task({
617
+ subagent_type: "implementation-executor",
618
+ model: "sonnet",
619
+ prompt: "이벤트 핸들러 타입 정의: React.MouseEvent, React.ChangeEvent"
620
+ })
621
+
622
+ Task({
623
+ subagent_type: "implementation-executor",
624
+ model: "sonnet",
625
+ prompt: "유틸리티 함수 타입 정의: Generic, Overload"
626
+ })
627
+
628
+ // 3단계: 타입 안정성 검증 (병렬)
629
+ Task({
630
+ subagent_type: "code-reviewer",
631
+ model: "opus",
632
+ prompt: "타입 안정성 검토: unknown vs any, Type Guards 필요성"
633
+ })
634
+
635
+ Task({
636
+ subagent_type: "code-reviewer",
637
+ model: "opus",
638
+ prompt: "타입 에러 검증: tsc --noEmit, 런타임 에러 가능성"
639
+ })
640
+ ```
641
+
642
+ #### 시나리오 5: 코드 중복 제거 (DRY 원칙)
643
+
644
+ **배경:** 여러 파일에 유사한 로직 반복, 유지보수 어려움
645
+
646
+ ```typescript
647
+ // 1단계: 중복 패턴 분석 (병렬)
648
+ Task({
649
+ subagent_type: "explore",
650
+ model: "haiku",
651
+ prompt: "중복 코드 패턴 탐색: 유사 함수, 중복 로직 (jscpd 등 활용)"
652
+ })
653
+
654
+ Task({
655
+ subagent_type: "analyst",
656
+ model: "sonnet",
657
+ prompt: "중복률 분석 및 우선순위: 중복 라인 수, 파일 개수, 수정 빈도"
658
+ })
659
+
660
+ // 2단계: 공통 모듈 추출 계획
661
+ Task({
662
+ subagent_type: "refactor-advisor",
663
+ model: "sonnet",
664
+ prompt: "공통 모듈 추출 전략: 유틸리티 vs 훅 vs 컴포넌트"
665
+ })
666
+
667
+ // 3단계: 모듈 추출 및 교체 (병렬 - 독립 영역)
668
+ Task({
669
+ subagent_type: "implementation-executor",
670
+ model: "sonnet",
671
+ prompt: "공통 유틸리티 함수 추출: src/lib/utils/ 구성"
672
+ })
673
+
674
+ Task({
675
+ subagent_type: "implementation-executor",
676
+ model: "sonnet",
677
+ prompt: "커스텀 훅 추출: src/hooks/ 구성"
678
+ })
679
+
680
+ Task({
681
+ subagent_type: "implementation-executor",
682
+ model: "sonnet",
683
+ prompt: "공통 UI 컴포넌트 추출: src/components/ui/ 구성"
684
+ })
685
+
686
+ // 4단계: 기존 코드 교체 (병렬 - 독립 파일)
687
+ Task({
688
+ subagent_type: "implementation-executor",
689
+ model: "haiku",
690
+ prompt: "components/ 내 중복 코드 → 공통 모듈 참조로 교체"
691
+ })
692
+
693
+ Task({
694
+ subagent_type: "implementation-executor",
695
+ model: "haiku",
696
+ prompt: "routes/ 내 중복 코드 → 공통 모듈 참조로 교체"
697
+ })
698
+
699
+ Task({
700
+ subagent_type: "implementation-executor",
701
+ model: "haiku",
702
+ prompt: "functions/ 내 중복 코드 → 공통 모듈 참조로 교체"
703
+ })
704
+
705
+ // 5단계: 검증 (병렬)
706
+ Task({
707
+ subagent_type: "code-reviewer",
708
+ model: "opus",
709
+ prompt: "중복 제거 검증: 기존 기능 유지, 새로운 중복 발생 여부"
710
+ })
711
+
712
+ Task({
713
+ subagent_type: "analyst",
714
+ model: "sonnet",
715
+ prompt: "Before/After 중복률 측정: 개선 효과 정량화"
716
+ })
717
+ ```
718
+
719
+ ### 병렬 실행 시 주의사항
720
+
721
+ ```text
722
+ ✅ 권장:
723
+ - 독립적인 모듈/파일 → 병렬 실행
724
+ - 분석 작업 (읽기 전용) → 병렬 실행
725
+ - 다중 관점 검증 → 병렬 실행
726
+ - 테스트 + 문서 작성 → 병렬 실행
727
+ - 레거시 + 신규 시스템 공존 → 병렬 실행
728
+
729
+ ❌ 금지:
730
+ - 같은 파일 동시 수정 (충돌 발생)
731
+ - 순차 의존성 있는 작업 병렬화 (A → B → C)
732
+ - 공유 상태/컨텍스트 필요한 작업
733
+ - 결과가 다음 작업의 입력인 경우
734
+ ```
735
+
736
+ ### Model 선택 가이드
737
+
738
+ ```typescript
739
+ // ✅ 적절한 모델 선택
740
+ Task({
741
+ subagent_type: "implementation-executor",
742
+ model: "haiku", // 단순 작업: 변수명 변경, 주석 정리
743
+ prompt: "변수명을 camelCase로 통일"
744
+ })
745
+
746
+ Task({
747
+ subagent_type: "refactor-advisor",
748
+ model: "sonnet", // 일반 작업: 함수 분리 계획, 중복 제거
749
+ prompt: "함수 복잡도 감소 계획 수립"
750
+ })
751
+
752
+ Task({
753
+ subagent_type: "architect",
754
+ model: "opus", // 복잡한 작업: 아키텍처 재설계
755
+ prompt: "레이어드 아키텍처 전환 전략 분석"
756
+ })
757
+
758
+ Task({
759
+ subagent_type: "code-reviewer",
760
+ model: "opus", // 품질 검증: 세밀한 검토 필요
761
+ prompt: "리팩토링 후 보안/성능/가독성 종합 검토"
762
+ })
763
+
764
+ // ❌ 잘못된 모델 선택
765
+ Task({
766
+ subagent_type: "architect",
767
+ model: "haiku", // 복잡한 작업에 haiku 사용 금지
768
+ prompt: "아키텍처 재설계..."
769
+ })
770
+
771
+ Task({
772
+ subagent_type: "implementation-executor",
773
+ model: "opus", // 단순 작업에 opus 낭비
774
+ prompt: "변수명 변경..."
775
+ })
776
+ ```
777
+
778
+ ### 병렬 실행 최적화 팁
779
+
780
+ | 팁 | 설명 | 예시 |
781
+ |----|------|------|
782
+ | **독립성 우선** | 의존성 없는 작업부터 병렬 실행 | 여러 모듈 동시 리팩토링 |
783
+ | **읽기 병렬화** | 분석/탐색 작업은 항상 병렬 | architect + explore + analyst |
784
+ | **쓰기 격리** | 파일 수정은 충돌 없도록 분리 | 각 모듈별로 다른 executor |
785
+ | **검증 병렬화** | 다중 관점 코드 리뷰 동시 실행 | 성능/보안/가독성/유지보수성 |
786
+ | **문서 병렬화** | 리팩토링과 문서 작성 동시 진행 | implementation + document-writer |
787
+ | **모델 적정화** | 복잡도에 맞는 모델 선택 | haiku(단순) / sonnet(일반) / opus(복잡) |
788
+
789
+ </parallel_agent_execution>
790
+
791
+ ---
792
+
793
+ <thinking_strategy>
794
+
795
+ ## Sequential Thinking 가이드
796
+
797
+ ### 복잡도 판단 (thought 1)
798
+
799
+ ```
800
+ thought 1: 복잡도 판단
801
+ - 영향 범위: 파일 수, 함수 수
802
+ - 현재 문제: 복잡도, 중복, 명명, 구조
803
+ - 리스크: 기존 기능 영향, 테스트 커버리지
804
+ - 우선순위: High/Medium/Low
805
+ ```
806
+
807
+ ### 복잡도별 전략
808
+
809
+ | 복잡도 | 사고 횟수 | 판단 기준 | 사고 패턴 |
810
+ |--------|----------|----------|------------|
811
+ | **간단** | 3 | 1-2 파일, 명확한 개선점 | 복잡도 판단 → 현재 분석 → 개선 방안 |
812
+ | **보통** | 5 | 3-5 파일, 구조 변경 | 복잡도 판단 → 현재 분석 → 문제점 → 옵션 비교 → 추천안 |
813
+ | **복잡** | 7+ | 다중 모듈, 점진적 변경 필요 | 복잡도 판단 → 심층 분석 → 우선순위 → 접근 방식 → 비교 → 단계별 계획 → 추천안 |
814
+
815
+ ### 보통 복잡도 패턴 (5단계)
816
+
817
+ ```
818
+ thought 1: 복잡도 판단 및 분석 범위 결정
819
+ thought 2: 현재 코드 분석 (복잡도, 중복, 구조)
820
+ thought 3: 가능한 개선 방법 열거 (4-5개)
821
+ thought 4: 주요 옵션 3개 선정 및 장단점 분석
822
+ thought 5: 최종 옵션 정리 및 추천안 도출
823
+ ```
824
+
825
+ ### 복잡한 경우 패턴 (7단계)
826
+
827
+ ```
828
+ thought 1: 복잡도 판단
829
+ thought 2: 현재 코드 심층 분석 (메트릭, 패턴)
830
+ thought 3: 개선 우선순위 정리 (High/Medium/Low)
831
+ thought 4: 가능한 접근 방식 탐색
832
+ thought 5: 각 접근 방식 비교 분석
833
+ thought 6: 옵션 3개 선정 및 상세 장단점
834
+ thought 7: 단계별 계획 및 추천안
835
+ ```
836
+
837
+ ### 핵심 원칙
838
+
839
+ ```text
840
+ ✅ 사고 과정을 출력해야 실제로 생각이 일어남
841
+ ✅ 복잡도가 불확실하면 높게 책정 (5→7로 확장 가능)
842
+ ✅ 각 thought에서 구체적 분석 필요 (추상적 설명 금지)
843
+ ✅ 필요 시 isRevision으로 이전 사고 수정
844
+ ```
845
+
846
+ </thinking_strategy>
847
+
848
+ ---
849
+
850
+ <refactoring_areas>
851
+
852
+ ## 리팩토링 영역
853
+
854
+ ### 6가지 개선 영역
855
+
856
+ | 영역 | 문제 | 개선 방향 |
857
+ |------|------|----------|
858
+ | **복잡도** | 긴 함수, 깊은 중첩 | 함수 분리, Early Return |
859
+ | **중복** | 동일/유사 코드 반복 | 공통 함수/모듈 추출 |
860
+ | **명명** | 모호한 변수/함수명 | 의도 명확한 이름 |
861
+ | **구조** | 파일/모듈 구조 불명확 | 관심사 분리, 계층화 |
862
+ | **패턴** | 안티패턴 사용 | 디자인 패턴 적용 |
863
+ | **타입** | any 남용, 타입 불안정 | 명시적 타입 정의 |
864
+
865
+ ### 체크리스트
866
+
867
+ ```text
868
+ ✅ 함수 길이: 20줄 이하 목표
869
+ ✅ 중첩 깊이: 3단계 이하 목표
870
+ ✅ 파일 길이: 200-300줄 권장
871
+ ✅ 순환 의존성: 제거
872
+ ✅ 매직 넘버: 상수화
873
+ ✅ 주석: 코드로 설명 불가능한 것만
874
+ ```
875
+
876
+ </refactoring_areas>
877
+
878
+ ---
879
+
880
+ <option_presentation>
881
+
882
+ ## 옵션 제시 형식
883
+
884
+ ### 옵션 3개 제시 (표준)
885
+
886
+ ```markdown
887
+ ## 분석 결과
888
+
889
+ ### 현재 상태
890
+ - 문제점 1
891
+ - 문제점 2
892
+ - 개선 필요 영역
893
+
894
+ ---
895
+
896
+ ### 옵션 1: [옵션 이름] (추천)
897
+
898
+ **개선 방법:**
899
+ - 설명 1
900
+ - 설명 2
901
+
902
+ | 장점 | 단점 |
903
+ |------|------|
904
+ | 장점 1 | 단점 1 |
905
+ | 장점 2 | 단점 2 |
906
+
907
+ **영향 범위:**
908
+ - 파일: `src/module/`
909
+ - 예상 작업량: 중간
910
+ - 리스크: 낮음
911
+ - 테스트 영향: 최소
912
+
913
+ ---
914
+
915
+ ### 옵션 2: [옵션 이름]
916
+
917
+ **개선 방법:**
918
+ ...
919
+
920
+ | 장점 | 단점 |
921
+ |------|------|
922
+ | ... | ... |
923
+
924
+ **영향 범위:**
925
+ ...
926
+
927
+ ---
928
+
929
+ ### 옵션 3: [옵션 이름]
930
+
931
+ **개선 방법:**
932
+ ...
933
+
934
+ ---
935
+
936
+ ## 추천 및 근거
937
+
938
+ 옵션 1을 추천합니다.
939
+ - 근거 1
940
+ - 근거 2
941
+
942
+ 어떤 옵션을 선택하시겠습니까? (1/2/3)
943
+ ```
944
+
945
+ ### 옵션 2개 제시 (개선점이 명확한 경우)
946
+
947
+ ```markdown
948
+ ## 분석 결과
949
+
950
+ 두 가지 접근 방식이 있습니다:
951
+
952
+ ### 옵션 A: [옵션 이름]
953
+ ...
954
+
955
+ ### 옵션 B: [옵션 이름]
956
+ ...
957
+
958
+ 어떤 옵션을 선택하시겠습니까? (A/B)
959
+ ```
960
+
961
+ </option_presentation>
962
+
963
+ ---
964
+
965
+ <state_management>
966
+
967
+ ## 상태 관리 및 문서화
968
+
969
+ ### 폴더 구조
970
+
971
+ 옵션 선택 후 `.claude/refactor/00.[모듈명]/` 폴더 생성:
972
+
973
+ ```
974
+ .claude/refactor/00.인증_모듈/
975
+ ├── ANALYSIS.md # 현재 상태, 문제점, 옵션 비교
976
+ ├── PLAN.md # 단계별 리팩토링 계획, 롤백 가이드
977
+ └── METRICS.md # 품질 메트릭 Before/After
978
+ ```
979
+
980
+ **폴더명 형식:** `00.[모듈명]` (넘버링 + 한글 설명, 언더스코어로 구분)
981
+ **넘버링:** 기존 refactor 폴더 목록 조회 → 다음 번호 자동 부여 (00, 01, 02...)
982
+
983
+ ### 문서 역할
984
+
985
+ | 파일 | 내용 | 담당 에이전트 |
986
+ |------|------|--------------|
987
+ | **ANALYSIS.md** | 현재 상태 분석, 문제점 우선순위, 옵션 비교, 선택된 옵션 및 이유 | document-writer (haiku) |
988
+ | **PLAN.md** | 단계별 리팩토링 계획, 작업 체크리스트, 롤백 가이드, 검증 방법 | document-writer (sonnet) |
989
+ | **METRICS.md** | 품질 메트릭 Before/After, 측정 방법, 성공 기준 | document-writer (haiku) |
990
+
991
+ ### 문서 작성
992
+
993
+ **우선순위: document-writer 에이전트 병렬 실행**
994
+
995
+ | 작업 | 방법 | 모델 |
996
+ |------|------|------|
997
+ | 3개 문서 동시 생성 | `Task(subagent_type="document-writer", ...)` 병렬 호출 | haiku (2개), sonnet (1개) |
998
+ | 복잡한 PLAN.md | `Task(subagent_type="document-writer", model="sonnet", ...)` | sonnet |
999
+
1000
+ **병렬 실행 패턴:**
1001
+
1002
+ ```typescript
1003
+ // ✅ 3개 문서 동시 작성 (빠름)
1004
+ Task(subagent_type="document-writer", model="haiku",
1005
+ prompt="ANALYSIS.md 생성: 현재 상태, 문제점, 옵션 비교")
1006
+ Task(subagent_type="document-writer", model="sonnet",
1007
+ prompt="PLAN.md 생성: 단계별 계획, 체크리스트, 롤백 가이드")
1008
+ Task(subagent_type="document-writer", model="haiku",
1009
+ prompt="METRICS.md 생성: Before/After 메트릭, 성공 기준")
1010
+
1011
+ // ❌ 순차 실행 (느림)
1012
+ Write({ file_path: "ANALYSIS.md", ... }) // 대기...
1013
+ Write({ file_path: "PLAN.md", ... }) // 대기...
1014
+ ```
1015
+
1016
+ ### 문서 템플릿
1017
+
1018
+ #### ANALYSIS.md
1019
+
1020
+ ```markdown
1021
+ # [모듈명] 코드 분석
1022
+
1023
+ 생성: {{TIMESTAMP}}
1024
+
1025
+ ## 현재 상태
1026
+
1027
+ ### 파일 구조
1028
+ - 주요 파일: `src/module/file.ts` (200줄)
1029
+ - 관련 파일: [목록]
1030
+
1031
+ ### 복잡도 분석
1032
+ - 함수 평균 길이: [N줄]
1033
+ - 최대 중첩 깊이: [N단계]
1034
+ - 순환 복잡도: [값]
1035
+
1036
+ ### 문제점 (우선순위별)
1037
+
1038
+ | 문제 | 영향 | 우선순위 | 설명 |
1039
+ |------|------|---------|------|
1040
+ | 문제 1 | High | High | 상세 설명 |
1041
+ | 문제 2 | Medium | Medium | 상세 설명 |
1042
+ | 문제 3 | Low | Low | 상세 설명 |
1043
+
1044
+ ## 옵션 비교
1045
+
1046
+ ### 옵션 1: [옵션 이름] (추천)
1047
+
1048
+ **개선 방법:**
1049
+ - 방법 1
1050
+ - 방법 2
1051
+
1052
+ | 장점 | 단점 |
1053
+ |------|------|
1054
+ | 장점 1 | 단점 1 |
1055
+ | 장점 2 | 단점 2 |
1056
+
1057
+ **영향 범위:**
1058
+ - 파일: `src/module/`
1059
+ - 예상 작업량: 중간
1060
+ - 리스크: 낮음
1061
+
1062
+ ---
1063
+
1064
+ ### 옵션 2: [옵션 이름]
1065
+
1066
+ [동일 형식]
1067
+
1068
+ ---
1069
+
1070
+ ### 옵션 3: [옵션 이름]
1071
+
1072
+ [동일 형식]
1073
+
1074
+ ## 선택된 옵션
1075
+
1076
+ **옵션 [N]: [옵션 이름]**
1077
+
1078
+ **선택 이유:**
1079
+ 1. 이유 1
1080
+ 2. 이유 2
1081
+ 3. 이유 3
1082
+ ```
1083
+
1084
+ #### PLAN.md
1085
+
1086
+ ```markdown
1087
+ # [모듈명] 리팩토링 계획
1088
+
1089
+ ## 개요
1090
+
1091
+ **목표:** [무엇을 개선할 것인가]
1092
+ **접근 방식:** [선택된 옵션]
1093
+ **예상 영향 범위:** [파일/모듈 목록]
1094
+
1095
+ ## 단계별 계획
1096
+
1097
+ ### 1단계: [단계 이름]
1098
+
1099
+ **목표:** [이 단계에서 달성할 것]
1100
+
1101
+ **작업 체크리스트:**
1102
+ - [ ] 작업 1
1103
+ - [ ] 작업 2
1104
+ - [ ] 작업 3
1105
+
1106
+ **변경 파일:**
1107
+ - `src/file1.ts`: [변경 내용]
1108
+ - `src/file2.ts`: [변경 내용]
1109
+
1110
+ **검증:**
1111
+ - [ ] 테스트 통과
1112
+ - [ ] 빌드 성공
1113
+ - [ ] 타입 체크 통과
1114
+
1115
+ ---
1116
+
1117
+ ### 2단계: [단계 이름]
1118
+
1119
+ **목표:** [이 단계에서 달성할 것]
1120
+
1121
+ **작업 체크리스트:**
1122
+ - [ ] 작업 4
1123
+ - [ ] 작업 5
1124
+
1125
+ **변경 파일:**
1126
+ - `src/file3.ts`: [변경 내용]
1127
+
1128
+ **검증:**
1129
+ - [ ] 테스트 통과
1130
+ - [ ] 기능 동작 확인
1131
+
1132
+ ---
1133
+
1134
+ ### 3단계: [단계 이름]
1135
+
1136
+ [동일 형식]
1137
+
1138
+ ## 롤백 가이드
1139
+
1140
+ ### 문제 발생 시
1141
+
1142
+ **단계별 롤백:**
1143
+ 1. 현재 단계 중단
1144
+ 2. `git stash` 또는 커밋 되돌리기
1145
+ 3. 이전 단계로 복구
1146
+ 4. 테스트 재실행
1147
+
1148
+ **완전 롤백:**
1149
+ 1. 모든 변경 취소: `git reset --hard [시작 커밋]`
1150
+ 2. 의존성 복구: `npm install`
1151
+ 3. 빌드 확인: `npm run build`
1152
+
1153
+ ### 주의사항
1154
+
1155
+ - 각 단계 완료 후 커밋
1156
+ - 커밋 메시지: "refactor: [단계명] - [변경 내용]"
1157
+ - 테스트 실패 시 즉시 중단
1158
+
1159
+ ## 검증 방법
1160
+
1161
+ ### 기능 검증
1162
+ - [ ] 기존 기능 동작 확인
1163
+ - [ ] 회귀 테스트 통과
1164
+ - [ ] 통합 테스트 통과
1165
+ - [ ] E2E 테스트 통과
1166
+
1167
+ ### 품질 검증
1168
+ - [ ] 복잡도 감소 확인
1169
+ - [ ] 중복 제거 확인
1170
+ - [ ] 타입 안정성 확인
1171
+ - [ ] 성능 저하 없음
1172
+ ```
1173
+
1174
+ #### METRICS.md
1175
+
1176
+ ```markdown
1177
+ # [모듈명] 품질 메트릭
1178
+
1179
+ ## Before (현재 상태)
1180
+
1181
+ ### 복잡도
1182
+ - 순환 복잡도: [현재 값]
1183
+ - 함수 평균 길이: [N줄]
1184
+ - 최대 중첩 깊이: [N단계]
1185
+
1186
+ ### 중복
1187
+ - 중복률: [N%]
1188
+ - 중복 코드 블록 수: [N개]
1189
+ - 중복 라인 수: [N줄]
1190
+
1191
+ ### 타입 안정성
1192
+ - any 사용 횟수: [N개]
1193
+ - 명시적 타입 비율: [N%]
1194
+ - 타입 에러 가능성: [High/Medium/Low]
1195
+
1196
+ ### 테스트
1197
+ - 테스트 커버리지: [N%]
1198
+ - 단위 테스트 수: [N개]
1199
+ - 통합 테스트 수: [N개]
1200
+
1201
+ ### 성능
1202
+ - 평균 응답 시간: [Nms]
1203
+ - 메모리 사용량: [NMB]
1204
+ - 번들 크기: [NKB]
1205
+
1206
+ ## After (목표)
1207
+
1208
+ ### 복잡도
1209
+ - 순환 복잡도: [목표 값] (-N%)
1210
+ - 함수 평균 길이: [N줄] (-N%)
1211
+ - 최대 중첩 깊이: [N단계] (-N%)
1212
+
1213
+ ### 중복
1214
+ - 중복률: [N%] (-N%)
1215
+ - 중복 코드 블록 수: [N개] (-N%)
1216
+ - 중복 라인 수: [N줄] (-N%)
1217
+
1218
+ ### 타입 안정성
1219
+ - any 사용 횟수: [N개] (-N%)
1220
+ - 명시적 타입 비율: [N%] (+N%)
1221
+ - 타입 에러 가능성: [Low]
1222
+
1223
+ ### 테스트
1224
+ - 테스트 커버리지: [N%] (+N%)
1225
+ - 단위 테스트 수: [N개] (+N%)
1226
+ - 통합 테스트 수: [N개] (+N%)
1227
+
1228
+ ### 성능
1229
+ - 평균 응답 시간: [Nms] (-N%)
1230
+ - 메모리 사용량: [NMB] (-N%)
1231
+ - 번들 크기: [NKB] (-N%)
1232
+
1233
+ ## 측정 방법
1234
+
1235
+ ### 복잡도 측정
1236
+ ```bash
1237
+ # ESLint complexity 규칙
1238
+ npx eslint --rule 'complexity: ["error", { max: 10 }]' src/
1239
+
1240
+ # 또는 복잡도 분석 도구
1241
+ npx plato -r -d report src/
1242
+ ```
1243
+
1244
+ ### 중복 측정
1245
+ ```bash
1246
+ # jscpd 사용
1247
+ npx jscpd src/
1248
+ ```
1249
+
1250
+ ### 타입 체크
1251
+ ```bash
1252
+ # TypeScript 컴파일러
1253
+ npx tsc --noEmit
1254
+
1255
+ # any 타입 검색
1256
+ grep -r "any" src/ | wc -l
1257
+ ```
1258
+
1259
+ ### 테스트 커버리지
1260
+ ```bash
1261
+ # Jest 커버리지
1262
+ npm test -- --coverage
1263
+ ```
1264
+
1265
+ ### 성능 측정
1266
+ ```bash
1267
+ # 빌드 크기
1268
+ npm run build --report
1269
+
1270
+ # 런타임 성능
1271
+ # (프로파일러, 성능 테스트 도구 사용)
1272
+ ```
1273
+
1274
+ ## 성공 기준
1275
+
1276
+ | 메트릭 | 현재 | 목표 | 필수/선택 |
1277
+ |--------|------|------|----------|
1278
+ | 복잡도 | X | -20% | 필수 |
1279
+ | 중복률 | X | -30% | 필수 |
1280
+ | any 사용 | X | -50% | 필수 |
1281
+ | 테스트 커버리지 | X | +10% | 선택 |
1282
+ | 번들 크기 | X | 유지 | 필수 |
1283
+ | 응답 시간 | X | 유지 | 필수 |
1284
+
1285
+ **최소 달성 기준:** 필수 항목 모두 목표 달성
1286
+ ```
1287
+
1288
+ </state_management>
1289
+
1290
+ ---
1291
+
1292
+ <document_generation>
1293
+
1294
+ ## 계획 문서 병렬 생성
1295
+
1296
+ 사용자가 옵션을 선택하면 `.claude/refactor/00.[모듈명]/` 폴더에 3개 문서를 **병렬로** 생성합니다.
1297
+
1298
+ ### 병렬 생성 워크플로우
1299
+
1300
+ ```text
1301
+ 1. 넘버링 결정: ls .claude/refactor/ → 다음 번호 자동 부여
1302
+ 2. 폴더 생성: .claude/refactor/00.[모듈명]/
1303
+ 3. document-writer 에이전트 3개 병렬 호출
1304
+ - ANALYSIS.md (haiku)
1305
+ - PLAN.md (sonnet)
1306
+ - METRICS.md (haiku)
1307
+ 4. 모든 에이전트 완료 대기
1308
+ 5. 사용자에게 폴더 경로 안내
1309
+ 6. /execute 스킬 즉시 호출 (확인 불필요)
1310
+ - PLAN.md 기반 자동 구현 시작
1311
+ ```
1312
+
1313
+ ### 에이전트 호출 예시
1314
+
1315
+ ```typescript
1316
+ // 옵션 선택 후 실행
1317
+ // 1. 넘버링 결정
1318
+ Bash("ls .claude/refactor/ | grep -E '^[0-9]+' | wc -l")
1319
+ const nextNumber = "00" // 결과 기반 계산
1320
+ const moduleName = "인증_모듈"
1321
+ const basePath = `.claude/refactor/${nextNumber}.${moduleName}`
1322
+
1323
+ // 2. 폴더 생성
1324
+ Bash(`mkdir -p ${basePath}`)
1325
+
1326
+ // 3. 3개 문서 병렬 생성
1327
+ Task({
1328
+ subagent_type: 'document-writer',
1329
+ model: 'haiku',
1330
+ description: 'ANALYSIS.md 작성',
1331
+ prompt: `
1332
+ ${basePath}/ANALYSIS.md 생성:
1333
+ - 현재 상태: ${파일_구조}, ${복잡도_분석}
1334
+ - 문제점: ${우선순위별_문제점}
1335
+ - 옵션 비교: ${모든_옵션}
1336
+ - 선택된 옵션: 옵션 ${선택번호}
1337
+ `
1338
+ })
1339
+
1340
+ Task({
1341
+ subagent_type: 'document-writer',
1342
+ model: 'sonnet',
1343
+ description: 'PLAN.md 작성',
1344
+ prompt: `
1345
+ ${basePath}/PLAN.md 생성:
1346
+ - 단계별 계획: 1단계, 2단계, 3단계...
1347
+ - 작업 체크리스트
1348
+ - 롤백 가이드
1349
+ - 검증 방법
1350
+ `
1351
+ })
1352
+
1353
+ Task({
1354
+ subagent_type: 'document-writer',
1355
+ model: 'haiku',
1356
+ description: 'METRICS.md 작성',
1357
+ prompt: `
1358
+ ${basePath}/METRICS.md 생성:
1359
+ - Before 메트릭: ${현재_측정값}
1360
+ - After 목표: ${개선_목표치}
1361
+ - 측정 방법
1362
+ - 성공 기준
1363
+ `
1364
+ })
1365
+
1366
+ // → 3개 문서 병렬 생성으로 빠르게 계획 문서화
1367
+ ```
1368
+
1369
+ **모델 선택:**
1370
+ - PLAN.md는 복잡하므로 sonnet
1371
+ - 나머지는 haiku로 충분
1372
+
1373
+ </document_generation>
1374
+
1375
+ ---
1376
+
1377
+ <auto_implementation>
1378
+
1379
+ ## 자동 구현 시작
1380
+
1381
+ 계획 문서 생성 완료 후 **사용자 확인 없이** 즉시 구현을 시작합니다.
1382
+
1383
+ ### 워크플로우
1384
+
1385
+ ```text
1386
+ 1. 계획 문서 병렬 생성 완료
1387
+ 2. PLAN.md 존재 확인
1388
+ 3. /execute 스킬 즉시 호출
1389
+ 4. 1단계부터 순차 구현
1390
+ ```
1391
+
1392
+ ### 구현 시작 패턴
1393
+
1394
+ ```typescript
1395
+ // 문서 생성 완료 후 즉시 실행
1396
+ Skill({
1397
+ skill: 'execute',
1398
+ args: `@.claude/refactor/${nextNumber}.${moduleName}/PLAN.md 1단계부터 구현`
1399
+ })
1400
+ ```
1401
+
1402
+ ### 금지 사항
1403
+
1404
+ ```text
1405
+ ❌ "구현을 시작할까요?" 물어보기
1406
+ ❌ "어떤 방식으로 진행할까요?" 선택지 제시
1407
+ ❌ 사용자 확인 대기
1408
+ ```
1409
+
1410
+ ### 허용 사항
1411
+
1412
+ ```text
1413
+ ✅ 문서 생성 완료 즉시 /execute 호출
1414
+ ✅ PLAN.md 1단계부터 자동 시작
1415
+ ✅ 구현 중 문제 발생 시에만 사용자 확인
1416
+ ```
1417
+
1418
+ </auto_implementation>
1419
+
1420
+ ---
1421
+
1422
+ <validation>
1423
+
1424
+ ## 검증 체크리스트
1425
+
1426
+ 실행 전 확인:
1427
+
1428
+ ```text
1429
+ ✅ ARGUMENT 확인 (없으면 질문)
1430
+ ✅ @refactor-advisor 사용 여부 판단
1431
+ ✅ Sequential Thinking 최소 3단계
1432
+ ✅ Task (Explore)로 코드 분석 + 메트릭 수집
1433
+ ✅ 옵션 최소 2개, 권장 3개
1434
+ ✅ 각 옵션에 장단점 명시
1435
+ ✅ 영향 범위 및 예상 작업량 제시
1436
+ ✅ 넘버링 자동 결정 (ls .claude/refactor/)
1437
+ ✅ document-writer 에이전트 병렬 호출로 문서 생성
1438
+ ✅ .claude/refactor/00.[모듈명]/ 폴더 구조 사용 (한글 설명)
1439
+ ✅ 기능 유지 원칙 강조
1440
+ ```
1441
+
1442
+ 절대 금지:
1443
+
1444
+ ```text
1445
+ ❌ ARGUMENT 없이 분석 시작
1446
+ ❌ Edit/Write 도구 직접 사용 (문서 작성은 document-writer 에이전트)
1447
+ ❌ Sequential Thinking 3단계 미만
1448
+ ❌ 옵션 1개만 제시
1449
+ ❌ 코드 분석 없이 추측으로 옵션 제시
1450
+ ❌ 장단점 없이 옵션만 나열
1451
+ ❌ 문서 작성 Y/N 질문 (자동 생성)
1452
+ ❌ 문서 생성 후 "구현을 시작할까요?" 물어보기 (즉시 진행)
1453
+ ❌ 기능 변경 포함
1454
+ ```
1455
+
1456
+ </validation>
1457
+
1458
+ ---
1459
+
1460
+ <examples>
1461
+
1462
+ ## 실전 예시
1463
+
1464
+ ### 예시 1: 복잡한 함수 분리
1465
+
1466
+ ```bash
1467
+ 사용자: /refactor src/utils/auth.ts - 너무 복잡함
1468
+
1469
+ 1. @refactor-advisor 고려:
1470
+ → 단일 파일, 복잡도 감소 → Agent 활용 추천
1471
+
1472
+ 2. Sequential Thinking (5단계):
1473
+ thought 1: "단일 파일, 함수 복잡도 - 보통 복잡도"
1474
+ thought 2: "auth.ts 분석: 200줄, 5단계 중첩, 여러 책임"
1475
+ thought 3: "접근 방식: 함수 분리, 책임 분리, 타입 개선"
1476
+ thought 4: "옵션 3개 선정 및 장단점"
1477
+ thought 5: "점진적 분리 추천 - 단계적 검증 가능"
1478
+
1479
+ 3. 옵션 제시:
1480
+ 옵션 1: 점진적 함수 분리 (추천)
1481
+ - 장점: 안전, 단계별 검증
1482
+ - 단점: 시간 소요
1483
+
1484
+ 옵션 2: 모듈 분리
1485
+ - 장점: 명확한 구조
1486
+ - 단점: 큰 변경
1487
+
1488
+ 옵션 3: 타입 개선 우선
1489
+ - 장점: 빠른 개선
1490
+ - 단점: 근본 해결 아님
1491
+
1492
+ 4. 사용자 선택: 1
1493
+
1494
+ 5. document-writer 에이전트 3개 병렬 호출로 문서 생성
1495
+ - .claude/refactor/00.auth_유틸/
1496
+ ├── ANALYSIS.md
1497
+ ├── PLAN.md
1498
+ └── METRICS.md
1499
+
1500
+ 6. 구현 자동 시작:
1501
+ Skill({ skill: 'execute' })
1502
+ - PLAN.md 읽고 1단계부터 구현
1503
+ - 확인 절차 없이 즉시 진행
1504
+ ```
1505
+
1506
+ ### 예시 2: 중복 코드 제거
1507
+
1508
+ ```bash
1509
+ 사용자: /refactor 여러 파일에 중복 코드가 많음
1510
+
1511
+ 1. @refactor-advisor 활용:
1512
+ → 다중 파일, 중복 분석 → Agent 활용 적합
1513
+
1514
+ 2. Sequential Thinking (5단계):
1515
+ thought 1: "다중 파일 중복 - 보통 복잡도"
1516
+ thought 2: "중복 패턴 분석: 3가지 유형"
1517
+ thought 3: "접근: 공통 함수, 유틸리티, 훅 추출"
1518
+ thought 4: "옵션 비교: 점진적 vs 일괄"
1519
+ thought 5: "점진적 추출 추천"
1520
+
1521
+ 3. Task 탐색:
1522
+ Task (Explore): "중복 코드 패턴 분석"
1523
+ → src/components/, src/hooks/ 파악
1524
+
1525
+ 4. 옵션:
1526
+ 옵션 1: 점진적 공통 함수 추출 (추천)
1527
+ 옵션 2: 새 유틸리티 모듈 생성
1528
+ 옵션 3: 커스텀 훅 추출
1529
+
1530
+ 5. 선택 후 3개 문서 병렬 생성
1531
+ - .claude/refactor/00.중복_제거/
1532
+
1533
+ 6. 구현 자동 시작 (확인 불필요)
1534
+ ```
1535
+
1536
+ ### 예시 3: 구조 개선
1537
+
1538
+ ```bash
1539
+ 사용자: /refactor 프로젝트 구조를 더 명확하게
1540
+
1541
+ 1. @refactor-advisor 판단:
1542
+ → 구조 변경, 다중 모듈 → 직접 처리 (Agent 미사용)
1543
+
1544
+ 2. Sequential Thinking (7단계):
1545
+ thought 1: "구조 개선 - 복잡도 높음, 다중 모듈"
1546
+ thought 2: "현재 구조 분석: src/ 내 혼재"
1547
+ thought 3: "요구사항: 관심사 분리, 계층 명확화"
1548
+ thought 4: "접근: 모듈화, 디렉토리 재구성, 경로 정리"
1549
+ thought 5: "각 접근 비교: 영향 범위, 리스크"
1550
+ thought 6: "옵션 3개 선정 및 상세 분석"
1551
+ thought 7: "점진적 재구성 추천 - 단계적 이동"
1552
+
1553
+ 3. Task 탐색 (병렬):
1554
+ Task (Explore): "현재 디렉토리 구조 분석"
1555
+ Task (Explore): "모듈 간 의존성 파악"
1556
+ Task (Explore): "import 경로 패턴 분석"
1557
+
1558
+ 4. 옵션:
1559
+ 옵션 1: 점진적 모듈 분리 (추천)
1560
+ 옵션 2: 레이어 기반 재구성
1561
+ 옵션 3: 기능별 도메인 분리
1562
+
1563
+ 5. document-writer 병렬 호출로 3개 문서 생성
1564
+ - .claude/refactor/00.구조_개선/
1565
+ ├── ANALYSIS.md (현재 구조, 의존성 그래프)
1566
+ ├── PLAN.md (단계별 이동 계획)
1567
+ └── METRICS.md (복잡도, 결합도 메트릭)
1568
+
1569
+ 6. 구현 자동 시작 (확인 불필요)
1570
+ ```
1571
+
1572
+ </examples>