@kood/claude-code 0.1.12 → 0.1.13

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 (57) hide show
  1. package/dist/index.js +17 -31
  2. package/package.json +1 -1
  3. package/templates/.claude/commands/feedback.md +189 -0
  4. package/templates/npx/docs/commands/docs-creator.md +0 -239
  5. package/templates/npx/docs/commands/docs-refactor.md +0 -168
  6. package/templates/npx/docs/commands/git-all.md +0 -83
  7. package/templates/npx/docs/commands/git-session.md +0 -91
  8. package/templates/npx/docs/commands/git.md +0 -86
  9. package/templates/npx/docs/commands/lint-fix.md +0 -170
  10. package/templates/npx/docs/commands/lint-init.md +0 -300
  11. package/templates/npx/docs/commands/ts-fix.md +0 -176
  12. package/templates/npx/docs/skills/command-creator/LICENSE.txt +0 -202
  13. package/templates/npx/docs/skills/command-creator/SKILL.md +0 -245
  14. package/templates/npx/docs/skills/command-creator/scripts/init_command.py +0 -244
  15. package/templates/npx/docs/skills/command-creator/scripts/package_command.py +0 -125
  16. package/templates/npx/docs/skills/command-creator/scripts/quick_validate.py +0 -143
  17. package/templates/npx/docs/skills/skill-creator/LICENSE.txt +0 -202
  18. package/templates/npx/docs/skills/skill-creator/SKILL.md +0 -184
  19. package/templates/npx/docs/skills/skill-creator/scripts/init_skill.py +0 -303
  20. package/templates/npx/docs/skills/skill-creator/scripts/package_skill.py +0 -110
  21. package/templates/npx/docs/skills/skill-creator/scripts/quick_validate.py +0 -65
  22. package/templates/tanstack-start/docs/commands/docs-creator.md +0 -239
  23. package/templates/tanstack-start/docs/commands/docs-refactor.md +0 -168
  24. package/templates/tanstack-start/docs/commands/git-all.md +0 -83
  25. package/templates/tanstack-start/docs/commands/git-session.md +0 -91
  26. package/templates/tanstack-start/docs/commands/git.md +0 -86
  27. package/templates/tanstack-start/docs/commands/lint-fix.md +0 -170
  28. package/templates/tanstack-start/docs/commands/lint-init.md +0 -300
  29. package/templates/tanstack-start/docs/commands/ts-fix.md +0 -176
  30. package/templates/tanstack-start/docs/skills/command-creator/LICENSE.txt +0 -202
  31. package/templates/tanstack-start/docs/skills/command-creator/SKILL.md +0 -245
  32. package/templates/tanstack-start/docs/skills/command-creator/scripts/init_command.py +0 -244
  33. package/templates/tanstack-start/docs/skills/command-creator/scripts/package_command.py +0 -125
  34. package/templates/tanstack-start/docs/skills/command-creator/scripts/quick_validate.py +0 -143
  35. package/templates/tanstack-start/docs/skills/skill-creator/LICENSE.txt +0 -202
  36. package/templates/tanstack-start/docs/skills/skill-creator/SKILL.md +0 -184
  37. package/templates/tanstack-start/docs/skills/skill-creator/scripts/init_skill.py +0 -303
  38. package/templates/tanstack-start/docs/skills/skill-creator/scripts/package_skill.py +0 -110
  39. package/templates/tanstack-start/docs/skills/skill-creator/scripts/quick_validate.py +0 -65
  40. /package/templates/{hono/docs → .claude}/commands/docs-creator.md +0 -0
  41. /package/templates/{hono/docs → .claude}/commands/docs-refactor.md +0 -0
  42. /package/templates/{hono/docs → .claude}/commands/git-all.md +0 -0
  43. /package/templates/{hono/docs → .claude}/commands/git-session.md +0 -0
  44. /package/templates/{hono/docs → .claude}/commands/git.md +0 -0
  45. /package/templates/{hono/docs → .claude}/commands/lint-fix.md +0 -0
  46. /package/templates/{hono/docs → .claude}/commands/lint-init.md +0 -0
  47. /package/templates/{hono/docs → .claude}/commands/ts-fix.md +0 -0
  48. /package/templates/{hono/docs → .claude}/skills/command-creator/LICENSE.txt +0 -0
  49. /package/templates/{hono/docs → .claude}/skills/command-creator/SKILL.md +0 -0
  50. /package/templates/{hono/docs → .claude}/skills/command-creator/scripts/init_command.py +0 -0
  51. /package/templates/{hono/docs → .claude}/skills/command-creator/scripts/package_command.py +0 -0
  52. /package/templates/{hono/docs → .claude}/skills/command-creator/scripts/quick_validate.py +0 -0
  53. /package/templates/{hono/docs → .claude}/skills/skill-creator/LICENSE.txt +0 -0
  54. /package/templates/{hono/docs → .claude}/skills/skill-creator/SKILL.md +0 -0
  55. /package/templates/{hono/docs → .claude}/skills/skill-creator/scripts/init_skill.py +0 -0
  56. /package/templates/{hono/docs → .claude}/skills/skill-creator/scripts/package_skill.py +0 -0
  57. /package/templates/{hono/docs → .claude}/skills/skill-creator/scripts/quick_validate.py +0 -0
package/dist/index.js CHANGED
@@ -136,46 +136,32 @@ var listAvailableTemplates = async () => {
136
136
  }
137
137
  return templates;
138
138
  };
139
- var copySkills = async (templates, targetDir) => {
139
+ var copySkills = async (_templates, targetDir) => {
140
140
  const counter = { files: 0, directories: 0 };
141
141
  const targetSkillsDir = path.join(targetDir, ".claude", "skills");
142
- for (const template of templates) {
143
- const templatePath = getTemplatePath(template);
144
- const skillsSrc = path.join(templatePath, "docs", "skills");
145
- if (await fs.pathExists(skillsSrc)) {
146
- await fs.ensureDir(targetSkillsDir);
147
- await copyRecursive(skillsSrc, targetSkillsDir, counter);
148
- }
142
+ const skillsSrc = path.join(getTemplatesDir(), ".claude", "skills");
143
+ if (await fs.pathExists(skillsSrc)) {
144
+ await fs.ensureDir(targetSkillsDir);
145
+ await copyRecursive(skillsSrc, targetSkillsDir, counter);
149
146
  }
150
147
  return counter;
151
148
  };
152
- var copyCommands = async (templates, targetDir) => {
149
+ var copyCommands = async (_templates, targetDir) => {
153
150
  const counter = { files: 0, directories: 0 };
154
151
  const targetCommandsDir = path.join(targetDir, ".claude", "commands");
155
- for (const template of templates) {
156
- const templatePath = getTemplatePath(template);
157
- const commandsSrc = path.join(templatePath, "docs", "commands");
158
- if (await fs.pathExists(commandsSrc)) {
159
- await fs.ensureDir(targetCommandsDir);
160
- await copyRecursive(commandsSrc, targetCommandsDir, counter);
161
- }
152
+ const commandsSrc = path.join(getTemplatesDir(), ".claude", "commands");
153
+ if (await fs.pathExists(commandsSrc)) {
154
+ await fs.ensureDir(targetCommandsDir);
155
+ await copyRecursive(commandsSrc, targetCommandsDir, counter);
162
156
  }
163
157
  return counter;
164
158
  };
165
- var checkSkillsAndCommandsExist = async (templates) => {
166
- let hasSkills = false;
167
- let hasCommands = false;
168
- for (const template of templates) {
169
- const templatePath = getTemplatePath(template);
170
- const skillsSrc = path.join(templatePath, "docs", "skills");
171
- const commandsSrc = path.join(templatePath, "docs", "commands");
172
- if (await fs.pathExists(skillsSrc)) {
173
- hasSkills = true;
174
- }
175
- if (await fs.pathExists(commandsSrc)) {
176
- hasCommands = true;
177
- }
178
- }
159
+ var checkSkillsAndCommandsExist = async (_templates) => {
160
+ const claudeDir = path.join(getTemplatesDir(), ".claude");
161
+ const skillsSrc = path.join(claudeDir, "skills");
162
+ const commandsSrc = path.join(claudeDir, "commands");
163
+ const hasSkills = await fs.pathExists(skillsSrc);
164
+ const hasCommands = await fs.pathExists(commandsSrc);
179
165
  return { hasSkills, hasCommands };
180
166
  };
181
167
  var checkExistingClaudeFiles = async (targetDir) => {
@@ -372,7 +358,7 @@ var init = async (options) => {
372
358
 
373
359
  // src/index.ts
374
360
  var program = new Command();
375
- program.name("claude-code").description("Claude Code documentation installer for projects").version("0.1.12");
361
+ program.name("claude-code").description("Claude Code documentation installer for projects").version("0.1.13");
376
362
  program.option(
377
363
  "-t, --template <names>",
378
364
  "template names (comma-separated: tanstack-start,hono)"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kood/claude-code",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "description": "Claude Code documentation installer for projects",
5
5
  "type": "module",
6
6
  "bin": "./dist/index.js",
@@ -0,0 +1,189 @@
1
+ ---
2
+ description: 피드백 기반 코드 위치 탐색 및 수정. ultrathink + sequential thinking 10+ + subagent 필수.
3
+ allowed-tools: Read, Edit, Glob, Grep, Bash(git:*, ast-grep:*), Task, mcp__sequential-thinking__sequentialthinking
4
+ argument-hint: <피드백 내용>
5
+ ---
6
+
7
+ # Feedback Command
8
+
9
+ 피드백을 분석하여 관련 코드를 찾고 수정하는 커맨드.
10
+
11
+ ## CRITICAL: 필수 요구사항
12
+
13
+ | 요구사항 | 설명 |
14
+ |----------|------|
15
+ | **ARGUMENT 필수** | 피드백 내용 없이 실행 시 되물음 |
16
+ | **Ultrathink** | 깊은 사고로 피드백 분석 |
17
+ | **Sequential Thinking 10+** | 최소 10단계 사고 과정 필수 |
18
+ | **Subagent (Task)** | 코드 탐색에 Task 도구 활용 |
19
+
20
+ ## ARGUMENT 확인
21
+
22
+ ```
23
+ $ARGUMENTS 없음 → 즉시 질문:
24
+ "어떤 피드백을 수정해야 하나요? 구체적으로 알려주세요."
25
+
26
+ $ARGUMENTS 있음 → 다음 단계 진행
27
+ ```
28
+
29
+ **피드백 내용**: $ARGUMENTS
30
+
31
+ ## 실행 흐름
32
+
33
+ ```
34
+ 1. ARGUMENT 확인 (없으면 되물음)
35
+ 2. Sequential Thinking 10+로 피드백 분석
36
+ - 피드백 의도 파악
37
+ - 키워드 추출
38
+ - 수정 대상 추론
39
+ 3. Task subagent로 코드 위치 탐색
40
+ 4. 후보 위치 정리
41
+ - 확실 → 수정 계획 제시
42
+ - 불확실 → 2~3개 후보 제시 → 컨펌 요청
43
+ 5. 사용자 컨펌
44
+ - Y → 수정 진행
45
+ - N → 더 찾기 반복
46
+ 6. 수정 완료 → git add <파일> && git commit
47
+ ```
48
+
49
+ ## Sequential Thinking 가이드
50
+
51
+ **피드백 분석 시 최소 10단계:**
52
+
53
+ ```
54
+ thought 1: 피드백 원문 분석 - 무엇을 수정하라는 것인가?
55
+ thought 2: 핵심 키워드 추출 (기능명, 변수명, 컴포넌트명 등)
56
+ thought 3: 피드백 유형 분류 (버그, UI, 로직, 성능 등)
57
+ thought 4: 예상 파일 위치 추론 (디렉토리, 파일 패턴)
58
+ thought 5: 검색 전략 수립 (ast-grep vs grep vs glob)
59
+ thought 6: 첫 번째 탐색 결과 분석
60
+ thought 7: 추가 탐색 필요 여부 판단
61
+ thought 8: 후보 위치 정리 및 우선순위
62
+ thought 9: 수정 방안 초안 작성
63
+ thought 10: 수정 영향 범위 분석
64
+ thought 11+: 필요시 추가 분석
65
+ ```
66
+
67
+ ## Task Subagent 활용
68
+
69
+ **코드 탐색 시 Task 도구 사용:**
70
+
71
+ | subagent_type | 용도 |
72
+ |---------------|------|
73
+ | `Explore` | 코드베이스 전반 탐색, 파일 구조 파악 |
74
+ | `general-purpose` | 복잡한 로직 분석, 다중 파일 연관 관계 파악 |
75
+
76
+ **Task 호출 예시:**
77
+
78
+ ```
79
+ Task: "피드백 '[버튼 클릭 시 에러 발생]' 관련 코드 위치 탐색"
80
+ subagent_type: Explore
81
+ prompt: "버튼 클릭 핸들러, onClick 이벤트, 관련 컴포넌트 탐색.
82
+ 에러 발생 가능 위치와 수정 대상 파일 목록 제시."
83
+ ```
84
+
85
+ **병렬 탐색:**
86
+
87
+ ```
88
+ 여러 가능성 있을 때:
89
+ Task 1: "컴포넌트 레벨 탐색" (Explore)
90
+ Task 2: "API 호출 레벨 탐색" (Explore)
91
+ Task 3: "상태 관리 레벨 탐색" (Explore)
92
+
93
+ → 단일 메시지에 다중 Task 호출
94
+ → 결과 취합 후 후보 정리
95
+ ```
96
+
97
+ ## 후보 제시 및 컨펌
98
+
99
+ **확실한 경우 (1개):**
100
+
101
+ ```
102
+ 수정 대상: src/components/Button.tsx:42
103
+
104
+ 수정 계획:
105
+ - onClick 핸들러에서 null 체크 추가
106
+ - 에러 바운더리 적용
107
+
108
+ 이대로 수정할까요? (Y/N)
109
+ ```
110
+
111
+ **불확실한 경우 (2~3개):**
112
+
113
+ ```
114
+ 후보 위치를 찾았습니다:
115
+
116
+ 1. src/components/Button.tsx:42
117
+ - onClick 핸들러 내 API 호출 부분
118
+
119
+ 2. src/hooks/useSubmit.ts:28
120
+ - submit 함수의 에러 처리 부분
121
+
122
+ 3. src/api/client.ts:15
123
+ - API 클라이언트 에러 핸들링
124
+
125
+ 어느 위치를 수정할까요? (1/2/3/N)
126
+ - 숫자: 해당 위치 수정
127
+ - N: 다른 위치 더 탐색
128
+ ```
129
+
130
+ **N 선택 시:**
131
+
132
+ ```
133
+ → 추가 탐색 시작
134
+ → 다른 키워드/패턴으로 재검색
135
+ → 새로운 후보 제시
136
+ → 반복
137
+ ```
138
+
139
+ ## Git 커밋 규칙
140
+
141
+ **수정 완료 후 커밋:**
142
+
143
+ ```bash
144
+ # 수정한 파일만 add
145
+ git add <수정된 파일>
146
+
147
+ # 커밋 (한 줄, prefix 필수, 마침표 없음)
148
+ git commit -m "fix: <피드백 요약>"
149
+ ```
150
+
151
+ **커밋 메시지 예시:**
152
+
153
+ ```bash
154
+ # ✅ 올바른
155
+ git add src/components/Button.tsx
156
+ git commit -m "fix: 버튼 클릭 시 null 체크 추가"
157
+
158
+ git add src/hooks/useSubmit.ts
159
+ git commit -m "fix: submit 에러 핸들링 개선"
160
+
161
+ # ❌ 잘못된
162
+ git commit -m "fix: 버튼 수정." # 마침표
163
+ git commit -m "피드백 반영" # prefix 없음
164
+ git commit -m "fix: 여러 파일 수정" # 구체적이지 않음
165
+ ```
166
+
167
+ **prefix 선택 기준:**
168
+
169
+ | 피드백 유형 | prefix |
170
+ |-------------|--------|
171
+ | 버그 수정 | fix |
172
+ | 기능 개선 | feat |
173
+ | UI 수정 | style |
174
+ | 성능 개선 | perf |
175
+ | 코드 정리 | refactor |
176
+
177
+ ## CRITICAL: 절대 금지
178
+
179
+ | 금지 항목 |
180
+ |----------|
181
+ | ARGUMENT 없이 수정 시작 |
182
+ | Sequential Thinking 10단계 미만 |
183
+ | 코드 탐색 없이 추측으로 수정 |
184
+ | 사용자 컨펌 없이 수정 |
185
+ | "Generated with Claude Code" 포함 |
186
+ | "🤖" 또는 AI 관련 이모지 |
187
+ | "Co-Authored-By:" 헤더 |
188
+ | 여러 줄 커밋 메시지 |
189
+ | 커밋 메시지에 마침표(.) |
@@ -1,239 +0,0 @@
1
- ---
2
- description: Claude Code 문서 작성 가이드. CLAUDE.md, SKILL.md 등 효과적인 문서 작성 시 사용.
3
- ---
4
-
5
- # Docs Creator
6
-
7
- Claude Code 문서 작성 베스트 프랙티스 가이드.
8
-
9
- ## 핵심 원칙
10
-
11
- | 원칙 | 설명 |
12
- |------|------|
13
- | **간결함** | 컨텍스트 윈도우는 공공재. 모든 토큰이 비용 |
14
- | **점진적 공개** | 핵심만 메인 파일에, 상세는 참조 파일로 분리 |
15
- | **보편적 적용** | 모든 세션에 필요한 정보만 포함 |
16
-
17
- ## 문서 유형별 가이드
18
-
19
- | 문서 | 권장 길이 | 용도 |
20
- |------|----------|------|
21
- | CLAUDE.md | 60-200줄 | 프로젝트 전역 설정, 컨벤션 |
22
- | SKILL.md | 500줄 이하 | 특화 워크플로우, 도구 사용법 |
23
- | references/ | 무제한 | 상세 API 문서, 스키마 등 |
24
-
25
- **지침 개수 한계**: 150-200개 (Claude Code 자체 ~50개 사용)
26
-
27
- ## 구조 템플릿
28
-
29
- ### CLAUDE.md
30
-
31
- ```markdown
32
- # 프로젝트명
33
-
34
- ## 개요
35
- 프로젝트 목적 (1-2문장)
36
-
37
- ## 기술 스택
38
- - 프레임워크: X
39
- - 언어: Y
40
- - DB: Z
41
-
42
- ## 명령어
43
- | 명령 | 설명 |
44
- |------|------|
45
- | `yarn dev` | 개발 서버 |
46
- | `yarn test` | 테스트 실행 |
47
-
48
- ## 컨벤션
49
- - 파일명: kebab-case
50
- - 함수: const 화살표 함수
51
- - 타입: interface (객체), type (유니온)
52
-
53
- ## 워크플로우
54
- 기능 추가 → 테스트 → 린트 → 커밋
55
- ```
56
-
57
- ### SKILL.md
58
-
59
- ```markdown
60
- ---
61
- name: skill-name
62
- description: 무엇을 하는지 + 언제 사용하는지. (scope)
63
- ---
64
-
65
- # Skill Name
66
-
67
- 스킬 목적 (2-3문장)
68
-
69
- ## 사용 시점
70
- - 조건 1
71
- - 조건 2
72
-
73
- ## 사용 방법
74
-
75
- ### 기본 워크플로우
76
- 1. 단계 1
77
- 2. 단계 2
78
-
79
- ### 참조
80
- - 상세 API: [references/api.md](references/api.md)
81
- - 스키마: [references/schema.md](references/schema.md)
82
- ```
83
-
84
- ## Progressive Disclosure
85
-
86
- ```
87
- project/
88
- ├── CLAUDE.md # 핵심만 (60-200줄)
89
- ├── docs/
90
- │ ├── api.md # API 상세
91
- │ └── architecture.md # 아키텍처
92
- └── .claude/skills/
93
- └── my-skill/
94
- ├── SKILL.md # 개요 (<500줄)
95
- └── references/ # 상세 정보
96
- ```
97
-
98
- **토큰 로드 단계:**
99
-
100
- | 단계 | 내용 | 크기 |
101
- |------|------|------|
102
- | 1. 메타데이터 | name + description | 30-50 토큰 |
103
- | 2. 활성화 | SKILL.md 본문 | <5k 단어 |
104
- | 3. 참조 | 번들 리소스 | 필요 시만 |
105
-
106
- ## 작성 규칙
107
-
108
- ### DO
109
-
110
- - 불릿 포인트 + 짧은 문장
111
- - 코드 예시 중심
112
- - 표로 정보 구조화
113
- - 강조: `IMPORTANT:`, `YOU MUST:`
114
- - 1단계 깊이 참조 (A→B ✅, A→B→C ❌)
115
-
116
- ### DON'T
117
-
118
- - 긴 서술형 문단
119
- - Claude가 아는 것 설명
120
- - 린터 역할 강요 (도구 사용)
121
- - 시간 의존적 정보
122
- - /init 자동 생성 의존
123
-
124
- ## Description 작성
125
-
126
- SKILL.md의 description은 스킬 발견에 핵심.
127
-
128
- ```yaml
129
- # Good - 구체적 + 트리거 포함
130
- description: PDF에서 텍스트/표 추출, 폼 작성. PDF 작업 시 사용.
131
-
132
- # Bad - 모호함
133
- description: 문서 처리
134
- ```
135
-
136
- **규칙:**
137
- - 3인칭 작성 (시스템 프롬프트에 주입됨)
138
- - 무엇을 하는지 + 언제 사용하는지
139
- - 구체적 키워드 포함
140
-
141
- ## Context 관리
142
-
143
- | 명령어 | 용도 | 시점 |
144
- |--------|------|------|
145
- | `/compact` | 컨텍스트 요약 | 70% 도달 |
146
- | `/clear` | 세션 초기화 | 새 기능 시작 |
147
- | `/resume` | 세션 복원 | 작업 재개 |
148
-
149
- **주의:** 마지막 20%는 복잡한 작업 피할 것
150
-
151
- ## Subagent 활용
152
-
153
- 문서 작성 시 subagent를 적극 활용하여 메인 컨텍스트 보호.
154
-
155
- ### Subagent 종류
156
-
157
- | 타입 | 용도 | 문서 작성 활용 |
158
- |------|------|---------------|
159
- | `Explore` | 코드베이스 탐색 | 프로젝트 구조 파악, 패턴 분석 |
160
- | `Plan` | 구현 계획 수립 | 문서 구조 설계, 섹션 계획 |
161
- | `general-purpose` | 범용 조사 | 베스트 프랙티스 조사, 예시 수집 |
162
-
163
- ### 활용 시점
164
-
165
- **CLAUDE.md 작성 시:**
166
- ```
167
- 1. Explore agent → 프로젝트 구조/기술 스택 파악
168
- 2. Explore agent → 기존 컨벤션/패턴 분석
169
- 3. 메인 에이전트 → 요약 기반 문서 작성
170
- ```
171
-
172
- **SKILL.md 작성 시:**
173
- ```
174
- 1. Explore agent → 관련 코드/워크플로우 분석
175
- 2. Plan agent → 스킬 구조 설계
176
- 3. 메인 에이전트 → 설계 기반 작성
177
- ```
178
-
179
- ### 효과
180
-
181
- | 방식 | 컨텍스트 사용 |
182
- |------|--------------|
183
- | 직접 탐색 | 전체 파일 내용 로드 |
184
- | Subagent | 요약만 반환 → 90%+ 절약 |
185
-
186
- ### 프롬프트 예시
187
-
188
- ```
189
- Explore agent에게:
190
- "프로젝트 구조와 기술 스택을 분석하고,
191
- CLAUDE.md에 포함할 핵심 정보만 요약해줘.
192
- - 디렉토리 구조
193
- - 주요 의존성
194
- - 빌드/테스트 명령어
195
- - 코드 컨벤션"
196
- ```
197
-
198
- ```
199
- Plan agent에게:
200
- "이 스킬의 SKILL.md 구조를 설계해줘.
201
- - 스킬 목적
202
- - 주요 섹션
203
- - 참조 파일 분리 계획
204
- - 워크플로우 단계"
205
- ```
206
-
207
- ## 체크리스트
208
-
209
- ### CLAUDE.md
210
-
211
- - [ ] 60-200줄 이내
212
- - [ ] 기술 스택 명시
213
- - [ ] 주요 명령어 포함
214
- - [ ] 컨벤션 정리
215
- - [ ] 민감 정보 제외
216
-
217
- ### SKILL.md
218
-
219
- - [ ] 500줄 이하
220
- - [ ] description 구체적 (무엇 + 언제)
221
- - [ ] 3인칭 작성
222
- - [ ] 참조 1단계 깊이
223
- - [ ] 100줄+ 파일은 목차 포함
224
- - [ ] 워크플로우에 체크리스트
225
-
226
- ### 공통
227
-
228
- - [ ] 간결한 작성
229
- - [ ] 코드 예시 포함
230
- - [ ] 표로 구조화
231
- - [ ] 시간 의존 정보 없음
232
- - [ ] Subagent로 사전 조사 완료
233
- - [ ] 테스트 완료
234
-
235
- ## 참조
236
-
237
- - [Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices)
238
- - [Using CLAUDE.MD files](https://claude.com/blog/using-claude-md-files)
239
- - [Skill Best Practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)
@@ -1,168 +0,0 @@
1
- ---
2
- description: Claude Code 문서 리팩토링 가이드. 기존 CLAUDE.md, SKILL.md 개선 시 사용.
3
- ---
4
-
5
- # Docs Refactor
6
-
7
- 기존 Claude Code 문서를 베스트 프랙티스에 맞게 개선하는 가이드.
8
-
9
- ## 리팩토링 필요 신호
10
-
11
- | 신호 | 문제 | 우선순위 |
12
- |------|------|---------|
13
- | 200줄+ CLAUDE.md | 컨텍스트 과부하 | 높음 |
14
- | 500줄+ SKILL.md | 로딩 지연, 품질 저하 | 높음 |
15
- | Claude가 지침 무시 | 과도한 지침 (150+개) | 높음 |
16
- | 중첩 참조 (A→B→C) | 불완전한 파일 읽기 | 중간 |
17
- | 코드 스타일 지침 | 린터 역할 강요 | 중간 |
18
- | 시간 의존 정보 | 오래된 지침 | 낮음 |
19
-
20
- ## 분석 워크플로우
21
-
22
- ### 1단계: Subagent로 현황 분석
23
-
24
- ```
25
- Explore agent에게:
26
- "현재 CLAUDE.md/SKILL.md를 분석하고 보고해줘:
27
- - 총 줄 수
28
- - 섹션별 줄 수
29
- - 지침 개수 (명령형 문장)
30
- - 중첩 참조 깊이
31
- - 린터 역할 지침 여부
32
- - 시간 의존 정보 여부"
33
- ```
34
-
35
- ### 2단계: 개선 계획 수립
36
-
37
- ```
38
- Plan agent에게:
39
- "분석 결과를 바탕으로 리팩토링 계획 수립:
40
- - 삭제할 내용
41
- - 분리할 내용 (references/)
42
- - 병합할 섹션
43
- - 추가할 내용"
44
- ```
45
-
46
- ### 3단계: 리팩토링 실행
47
-
48
- 메인 에이전트가 계획 기반으로 문서 수정.
49
-
50
- ## 안티패턴 → 개선 패턴
51
-
52
- ### 길이 문제
53
-
54
- | Before | After |
55
- |--------|-------|
56
- | 300줄 CLAUDE.md | 60-200줄 + docs/ 분리 |
57
- | 800줄 SKILL.md | 500줄 이하 + references/ 분리 |
58
-
59
- **분리 기준:**
60
- - 모든 세션에 필요 → 메인 파일
61
- - 특정 작업에만 필요 → 참조 파일
62
-
63
- ### 구조 문제
64
-
65
- | Before | After |
66
- |--------|-------|
67
- | 긴 서술형 문단 | 불릿 포인트 + 짧은 문장 |
68
- | 중첩 참조 (A→B→C) | 1단계 깊이 (A→B) |
69
- | 목차 없는 100줄+ 파일 | 상단에 목차 추가 |
70
-
71
- ### 내용 문제
72
-
73
- | Before | After |
74
- |--------|-------|
75
- | 코드 스타일 가이드 | 삭제 (Biome/ESLint 사용) |
76
- | Claude가 아는 설명 | 삭제 |
77
- | 시간 의존 정보 | "old patterns" 섹션으로 이동 |
78
- | 너무 많은 옵션 | 기본값 + 대안 1개 |
79
-
80
- **삭제 예시:**
81
- ```markdown
82
- # Before - 불필요한 설명
83
- PDF (Portable Document Format)는 Adobe에서 개발한
84
- 문서 형식으로, 텍스트와 이미지를 포함할 수 있습니다...
85
-
86
- # After - 핵심만
87
- PDF 텍스트 추출: `pdfplumber.open("file.pdf")`
88
- ```
89
-
90
- ### Description 문제
91
-
92
- | Before | After |
93
- |--------|-------|
94
- | `description: 문서 처리` | `description: PDF 텍스트/표 추출. PDF 작업 시 사용.` |
95
- | 1인칭/2인칭 | 3인칭 작성 |
96
- | 트리거 없음 | 구체적 트리거 포함 |
97
-
98
- ## 분리 전략
99
-
100
- ### 참조 파일로 분리할 내용
101
-
102
- | 내용 | 분리 위치 |
103
- |------|----------|
104
- | API 상세 문서 | `references/api.md` |
105
- | 스키마 정의 | `references/schema.md` |
106
- | 예시 모음 | `references/examples.md` |
107
- | 도메인별 가이드 | `references/{domain}.md` |
108
-
109
- ### 분리 후 메인 파일 참조
110
-
111
- ```markdown
112
- ## API 사용
113
-
114
- 기본 호출: `api.call(params)`
115
-
116
- **상세 API 문서**: [references/api.md](references/api.md)
117
- ```
118
-
119
- ## Subagent 활용
120
-
121
- | 단계 | Agent | 작업 |
122
- |------|-------|------|
123
- | 분석 | Explore | 현황 파악, 문제점 식별 |
124
- | 계획 | Plan | 리팩토링 전략 수립 |
125
- | 검증 | Explore | 개선 결과 확인 |
126
-
127
- ### 검증 프롬프트
128
-
129
- ```
130
- Explore agent에게:
131
- "리팩토링된 문서 검증:
132
- - 줄 수 목표 달성?
133
- - 지침 개수 150개 이하?
134
- - 중첩 참조 1단계?
135
- - 필수 정보 누락 없음?"
136
- ```
137
-
138
- ## 체크리스트
139
-
140
- ### 분석 단계
141
-
142
- - [ ] Subagent로 현황 분석 완료
143
- - [ ] 문제점 목록 작성
144
- - [ ] 개선 우선순위 결정
145
-
146
- ### 리팩토링 단계
147
-
148
- - [ ] 불필요한 설명 삭제
149
- - [ ] 코드 스타일 지침 삭제
150
- - [ ] 긴 내용 참조 파일로 분리
151
- - [ ] 중첩 참조 1단계로 평탄화
152
- - [ ] 100줄+ 파일에 목차 추가
153
- - [ ] Description 개선 (3인칭, 트리거)
154
-
155
- ### 검증 단계
156
-
157
- - [ ] CLAUDE.md 60-200줄
158
- - [ ] SKILL.md 500줄 이하
159
- - [ ] 지침 개수 150개 이하
160
- - [ ] 참조 1단계 깊이
161
- - [ ] 필수 정보 유지 확인
162
- - [ ] 테스트 완료
163
-
164
- ## 참조
165
-
166
- - [Claude Code Best Practices](https://www.anthropic.com/engineering/claude-code-best-practices)
167
- - [Using CLAUDE.MD files](https://claude.com/blog/using-claude-md-files)
168
- - [Skill Best Practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)