@kood/claude-code 0.1.9 → 0.1.11

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 (56) hide show
  1. package/dist/index.js +54 -35
  2. package/package.json +1 -1
  3. package/templates/hono/docs/commands/docs-creator.md +239 -0
  4. package/templates/hono/docs/commands/docs-refactor.md +168 -0
  5. package/templates/hono/docs/commands/git-all.md +83 -0
  6. package/templates/hono/docs/commands/git-session.md +91 -0
  7. package/templates/hono/docs/commands/git.md +86 -0
  8. package/templates/hono/docs/commands/lint-fix.md +170 -0
  9. package/templates/hono/docs/commands/lint-init.md +300 -0
  10. package/templates/hono/docs/commands/ts-fix.md +176 -0
  11. package/templates/hono/docs/skills/command-creator/LICENSE.txt +202 -0
  12. package/templates/hono/docs/skills/command-creator/SKILL.md +245 -0
  13. package/templates/hono/docs/skills/command-creator/scripts/init_command.py +244 -0
  14. package/templates/hono/docs/skills/command-creator/scripts/package_command.py +125 -0
  15. package/templates/hono/docs/skills/command-creator/scripts/quick_validate.py +143 -0
  16. package/templates/hono/docs/skills/skill-creator/LICENSE.txt +202 -0
  17. package/templates/hono/docs/skills/skill-creator/SKILL.md +184 -0
  18. package/templates/hono/docs/skills/skill-creator/scripts/init_skill.py +303 -0
  19. package/templates/hono/docs/skills/skill-creator/scripts/package_skill.py +110 -0
  20. package/templates/hono/docs/skills/skill-creator/scripts/quick_validate.py +65 -0
  21. package/templates/npx/docs/commands/docs-creator.md +239 -0
  22. package/templates/npx/docs/commands/docs-refactor.md +168 -0
  23. package/templates/npx/docs/commands/git-all.md +83 -0
  24. package/templates/npx/docs/commands/git-session.md +91 -0
  25. package/templates/npx/docs/commands/git.md +86 -0
  26. package/templates/npx/docs/commands/lint-fix.md +170 -0
  27. package/templates/npx/docs/commands/lint-init.md +300 -0
  28. package/templates/npx/docs/commands/ts-fix.md +176 -0
  29. package/templates/npx/docs/skills/command-creator/LICENSE.txt +202 -0
  30. package/templates/npx/docs/skills/command-creator/SKILL.md +245 -0
  31. package/templates/npx/docs/skills/command-creator/scripts/init_command.py +244 -0
  32. package/templates/npx/docs/skills/command-creator/scripts/package_command.py +125 -0
  33. package/templates/npx/docs/skills/command-creator/scripts/quick_validate.py +143 -0
  34. package/templates/npx/docs/skills/skill-creator/LICENSE.txt +202 -0
  35. package/templates/npx/docs/skills/skill-creator/SKILL.md +184 -0
  36. package/templates/npx/docs/skills/skill-creator/scripts/init_skill.py +303 -0
  37. package/templates/npx/docs/skills/skill-creator/scripts/package_skill.py +110 -0
  38. package/templates/npx/docs/skills/skill-creator/scripts/quick_validate.py +65 -0
  39. package/templates/tanstack-start/docs/commands/docs-creator.md +239 -0
  40. package/templates/tanstack-start/docs/commands/docs-refactor.md +168 -0
  41. package/templates/tanstack-start/docs/commands/git-all.md +83 -0
  42. package/templates/tanstack-start/docs/commands/git-session.md +91 -0
  43. package/templates/tanstack-start/docs/commands/git.md +86 -0
  44. package/templates/tanstack-start/docs/commands/lint-fix.md +170 -0
  45. package/templates/tanstack-start/docs/commands/lint-init.md +300 -0
  46. package/templates/tanstack-start/docs/commands/ts-fix.md +176 -0
  47. package/templates/tanstack-start/docs/skills/command-creator/LICENSE.txt +202 -0
  48. package/templates/tanstack-start/docs/skills/command-creator/SKILL.md +245 -0
  49. package/templates/tanstack-start/docs/skills/command-creator/scripts/init_command.py +244 -0
  50. package/templates/tanstack-start/docs/skills/command-creator/scripts/package_command.py +125 -0
  51. package/templates/tanstack-start/docs/skills/command-creator/scripts/quick_validate.py +143 -0
  52. package/templates/tanstack-start/docs/skills/skill-creator/LICENSE.txt +202 -0
  53. package/templates/tanstack-start/docs/skills/skill-creator/SKILL.md +184 -0
  54. package/templates/tanstack-start/docs/skills/skill-creator/scripts/init_skill.py +303 -0
  55. package/templates/tanstack-start/docs/skills/skill-creator/scripts/package_skill.py +110 -0
  56. package/templates/tanstack-start/docs/skills/skill-creator/scripts/quick_validate.py +65 -0
@@ -0,0 +1,110 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Skill Packager - Creates a distributable zip file of a skill folder
4
+
5
+ Usage:
6
+ python utils/package_skill.py <path/to/skill-folder> [output-directory]
7
+
8
+ Example:
9
+ python utils/package_skill.py skills/public/my-skill
10
+ python utils/package_skill.py skills/public/my-skill ./dist
11
+ """
12
+
13
+ import sys
14
+ import zipfile
15
+ from pathlib import Path
16
+ from quick_validate import validate_skill
17
+
18
+
19
+ def package_skill(skill_path, output_dir=None):
20
+ """
21
+ Package a skill folder into a zip file.
22
+
23
+ Args:
24
+ skill_path: Path to the skill folder
25
+ output_dir: Optional output directory for the zip file (defaults to current directory)
26
+
27
+ Returns:
28
+ Path to the created zip file, or None if error
29
+ """
30
+ skill_path = Path(skill_path).resolve()
31
+
32
+ # Validate skill folder exists
33
+ if not skill_path.exists():
34
+ print(f"❌ Error: Skill folder not found: {skill_path}")
35
+ return None
36
+
37
+ if not skill_path.is_dir():
38
+ print(f"❌ Error: Path is not a directory: {skill_path}")
39
+ return None
40
+
41
+ # Validate SKILL.md exists
42
+ skill_md = skill_path / "SKILL.md"
43
+ if not skill_md.exists():
44
+ print(f"❌ Error: SKILL.md not found in {skill_path}")
45
+ return None
46
+
47
+ # Run validation before packaging
48
+ print("🔍 Validating skill...")
49
+ valid, message = validate_skill(skill_path)
50
+ if not valid:
51
+ print(f"❌ Validation failed: {message}")
52
+ print(" Please fix the validation errors before packaging.")
53
+ return None
54
+ print(f"✅ {message}\n")
55
+
56
+ # Determine output location
57
+ skill_name = skill_path.name
58
+ if output_dir:
59
+ output_path = Path(output_dir).resolve()
60
+ output_path.mkdir(parents=True, exist_ok=True)
61
+ else:
62
+ output_path = Path.cwd()
63
+
64
+ zip_filename = output_path / f"{skill_name}.zip"
65
+
66
+ # Create the zip file
67
+ try:
68
+ with zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED) as zipf:
69
+ # Walk through the skill directory
70
+ for file_path in skill_path.rglob('*'):
71
+ if file_path.is_file():
72
+ # Calculate the relative path within the zip
73
+ arcname = file_path.relative_to(skill_path.parent)
74
+ zipf.write(file_path, arcname)
75
+ print(f" Added: {arcname}")
76
+
77
+ print(f"\n✅ Successfully packaged skill to: {zip_filename}")
78
+ return zip_filename
79
+
80
+ except Exception as e:
81
+ print(f"❌ Error creating zip file: {e}")
82
+ return None
83
+
84
+
85
+ def main():
86
+ if len(sys.argv) < 2:
87
+ print("Usage: python utils/package_skill.py <path/to/skill-folder> [output-directory]")
88
+ print("\nExample:")
89
+ print(" python utils/package_skill.py skills/public/my-skill")
90
+ print(" python utils/package_skill.py skills/public/my-skill ./dist")
91
+ sys.exit(1)
92
+
93
+ skill_path = sys.argv[1]
94
+ output_dir = sys.argv[2] if len(sys.argv) > 2 else None
95
+
96
+ print(f"📦 Packaging skill: {skill_path}")
97
+ if output_dir:
98
+ print(f" Output directory: {output_dir}")
99
+ print()
100
+
101
+ result = package_skill(skill_path, output_dir)
102
+
103
+ if result:
104
+ sys.exit(0)
105
+ else:
106
+ sys.exit(1)
107
+
108
+
109
+ if __name__ == "__main__":
110
+ main()
@@ -0,0 +1,65 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Quick validation script for skills - minimal version
4
+ """
5
+
6
+ import sys
7
+ import os
8
+ import re
9
+ from pathlib import Path
10
+
11
+ def validate_skill(skill_path):
12
+ """Basic validation of a skill"""
13
+ skill_path = Path(skill_path)
14
+
15
+ # Check SKILL.md exists
16
+ skill_md = skill_path / 'SKILL.md'
17
+ if not skill_md.exists():
18
+ return False, "SKILL.md not found"
19
+
20
+ # Read and validate frontmatter
21
+ content = skill_md.read_text()
22
+ if not content.startswith('---'):
23
+ return False, "No YAML frontmatter found"
24
+
25
+ # Extract frontmatter
26
+ match = re.match(r'^---\n(.*?)\n---', content, re.DOTALL)
27
+ if not match:
28
+ return False, "Invalid frontmatter format"
29
+
30
+ frontmatter = match.group(1)
31
+
32
+ # Check required fields
33
+ if 'name:' not in frontmatter:
34
+ return False, "Missing 'name' in frontmatter"
35
+ if 'description:' not in frontmatter:
36
+ return False, "Missing 'description' in frontmatter"
37
+
38
+ # Extract name for validation
39
+ name_match = re.search(r'name:\s*(.+)', frontmatter)
40
+ if name_match:
41
+ name = name_match.group(1).strip()
42
+ # Check naming convention (hyphen-case: lowercase with hyphens)
43
+ if not re.match(r'^[a-z0-9-]+$', name):
44
+ return False, f"Name '{name}' should be hyphen-case (lowercase letters, digits, and hyphens only)"
45
+ if name.startswith('-') or name.endswith('-') or '--' in name:
46
+ return False, f"Name '{name}' cannot start/end with hyphen or contain consecutive hyphens"
47
+
48
+ # Extract and validate description
49
+ desc_match = re.search(r'description:\s*(.+)', frontmatter)
50
+ if desc_match:
51
+ description = desc_match.group(1).strip()
52
+ # Check for angle brackets
53
+ if '<' in description or '>' in description:
54
+ return False, "Description cannot contain angle brackets (< or >)"
55
+
56
+ return True, "Skill is valid!"
57
+
58
+ if __name__ == "__main__":
59
+ if len(sys.argv) != 2:
60
+ print("Usage: python quick_validate.py <skill_directory>")
61
+ sys.exit(1)
62
+
63
+ valid, message = validate_skill(sys.argv[1])
64
+ print(message)
65
+ sys.exit(0 if valid else 1)
@@ -0,0 +1,239 @@
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)
@@ -0,0 +1,168 @@
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)
@@ -0,0 +1,83 @@
1
+ ---
2
+ description: 모든 변경사항 커밋 후 푸시
3
+ allowed-tools: Bash(git:*)
4
+ ---
5
+
6
+ 모든 변경사항을 논리적 단위로 분리하여 전부 커밋 후 푸시.
7
+
8
+ ## 실행 흐름
9
+
10
+ ```
11
+ 1. git status + git diff (병렬 실행)
12
+ 2. 논리적 단위로 분리하여 git add + git commit (반복)
13
+ 3. git status (완료 확인 - 남은 변경 없어야 함)
14
+ 4. git push
15
+ ```
16
+
17
+ ## 병렬 실행
18
+
19
+ **초기 분석 단계에서 병렬 실행 필수:**
20
+
21
+ ```bash
22
+ # 동시에 실행 (두 Bash 호출을 하나의 응답에서)
23
+ git status
24
+ git diff
25
+ ```
26
+
27
+ ## CRITICAL: 절대 금지
28
+
29
+ | 금지 항목 |
30
+ |----------|
31
+ | "Generated with Claude Code" 포함 |
32
+ | "🤖" 또는 AI 관련 이모지 |
33
+ | "Co-Authored-By:" 헤더 |
34
+ | AI/봇 작성 표시 일체 |
35
+ | 여러 줄 커밋 메시지 |
36
+ | 커밋 메시지에 마침표(.) |
37
+ | 여러 작업 하나로 퉁치기 |
38
+ | 변경사항 남겨두기 |
39
+
40
+ ## 커밋 규칙
41
+
42
+ **형식**: `<prefix>: <설명>` (한 줄, 본문/푸터 없음)
43
+
44
+ **핵심 원칙**: 하나의 커밋 = 하나의 논리적 변경
45
+
46
+ ### Prefix
47
+
48
+ | Prefix | 용도 |
49
+ |--------|------|
50
+ | feat | 새 기능 |
51
+ | fix | 버그 수정 |
52
+ | refactor | 리팩토링 |
53
+ | style | 코드 스타일 |
54
+ | docs | 문서 수정 |
55
+ | test | 테스트 |
56
+ | chore | 빌드/설정 |
57
+ | perf | 성능 개선 |
58
+ | ci | CI/CD |
59
+
60
+ ### 분리 기준
61
+
62
+ | 분리 필요 | 묶어도 됨 |
63
+ |----------|----------|
64
+ | 서로 다른 기능 | 동일 기능의 관련 파일들 |
65
+ | 버그 수정 + 새 기능 | 동일 기능의 타입 + 구현 |
66
+ | 코드 변경 + 문서 변경 | |
67
+ | 리팩토링 + 기능 추가 | |
68
+
69
+ ## 예시
70
+
71
+ ```bash
72
+ # ✅ 올바른
73
+ feat: 사용자 로그인 기능 추가
74
+ fix: 세션 만료 오류 수정
75
+ refactor: 서비스 클래스 구조 개선
76
+
77
+ # ❌ 잘못된
78
+ 사용자 인증 기능 추가함 # prefix 없음
79
+ feat: 사용자 인증 추가. # 마침표
80
+ FEAT: 사용자 인증 추가 # 대문자
81
+ feat(auth): 인증 추가 # scope 불필요
82
+ feat: 로그인, 회원가입, 프로필 # 여러 작업 퉁침
83
+ ```