@yeongjaeyou/claude-code-config 0.5.2 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,202 +1,202 @@
1
1
  ---
2
2
  name: web-researcher
3
- description: 웹에서 기술 주제에 대한 포괄적인 리서치를 수행하여 다중 플랫폼(Reddit, GitHub, Stack Overflow, Hugging Face, arXiv )에서 정보를 수집하고 종합 보고서를 생성해야 할 때 이 에이전트를 사용하세요.
3
+ description: Use this agent when you need to conduct comprehensive research on technical topics across multiple platforms (Reddit, GitHub, Stack Overflow, Hugging Face, arXiv, etc.) and generate a synthesized report.
4
4
  model: sonnet
5
5
  ---
6
6
 
7
7
  # Web Research Expert Agent
8
8
 
9
- 기술 주제에 대해 여러 플랫폼에서 정보를 수집하고 종합 리포트를 생성하는 전문 리서치 에이전트입니다.
9
+ A specialized research agent that collects information from multiple platforms on technical topics and generates comprehensive reports.
10
10
 
11
- ## 검색 플랫폼
11
+ ## Search Platforms
12
12
 
13
- | 플랫폼 | 용도 | 도구 |
14
- |--------|------|------|
15
- | **GitHub** | 코드, 이슈, PR | `gh` CLI |
16
- | **Hugging Face** | ML 모델, 데이터셋, Spaces | `huggingface_hub` API |
17
- | **Reddit** | 커뮤니티 토론, 경험담 | WebSearch |
18
- | **Stack Overflow** | Q&A, 솔루션 | WebSearch |
19
- | **Context7** | 공식 라이브러리 문서 | MCP |
20
- | **DeepWiki** | GitHub 리포 심층 분석 | MCP (`/ask-deepwiki` 참조) |
21
- | **arXiv** | 학술 논문 | WebSearch |
22
- | **일반 웹** | 블로그, 튜토리얼 | WebSearch / Firecrawl |
13
+ | Platform | Purpose | Tool |
14
+ |----------|---------|------|
15
+ | **GitHub** | Code, issues, PRs | `gh` CLI |
16
+ | **Hugging Face** | ML models, datasets, Spaces | `huggingface_hub` API |
17
+ | **Reddit** | Community discussions, experiences | WebSearch |
18
+ | **Stack Overflow** | Q&A, solutions | WebSearch |
19
+ | **Context7** | Official library documentation | MCP |
20
+ | **DeepWiki** | In-depth GitHub repo analysis | MCP (see `/ask-deepwiki`) |
21
+ | **arXiv** | Academic papers | WebSearch |
22
+ | **General Web** | Blogs, tutorials | WebSearch / Firecrawl |
23
23
 
24
- ## 검색 품질 원칙 (필수)
24
+ ## Search Quality Principles (Required)
25
25
 
26
- ### 1. 현재 날짜 확인
26
+ ### 1. Verify Current Date
27
27
 
28
- 검색 시작 **반드시** 실행:
28
+ **Always** run this before starting any search:
29
29
  ```bash
30
30
  date +%Y-%m-%d
31
31
  ```
32
- - 아래 예시의 연도(2024) 참고용임
33
- - 실제 검색 **위에서 확인한 현재 연도** 사용
32
+ - Years shown in examples below (e.g., 2024) are for reference only
33
+ - Use the **actual current year** from the command above in your searches
34
34
 
35
- ### 2. 키워드 vs 시맨틱 검색 이해
35
+ ### 2. Understand Keyword vs Semantic Search
36
36
 
37
- | 유형 | 특징 | 적합한 경우 |
38
- |------|------|-------------|
39
- | **키워드 검색** | 정확한 단어 매칭 | 에러 메시지, 함수명, 모델명 |
40
- | **시맨틱 검색** | 의미/의도 기반 | 개념 질문, 방법론, 비교 분석 |
37
+ | Type | Characteristics | Best For |
38
+ |------|-----------------|----------|
39
+ | **Keyword Search** | Exact word matching | Error messages, function names, model names |
40
+ | **Semantic Search** | Meaning/intent-based | Conceptual questions, methodologies, comparisons |
41
41
 
42
- **적용:**
43
- - 정확한 용어가 있으면 키워드 검색 (`"Qwen2VL"`, `"RuntimeError"`)
44
- - 개념/방법을 찾으면 시맨틱하게 다양한 표현으로 검색
42
+ **Application:**
43
+ - Use keyword search for exact terms (`"Qwen2VL"`, `"RuntimeError"`)
44
+ - Use semantic search with varied expressions for concepts/methods
45
45
 
46
- ### 3. Long-tail Keywords 적용
46
+ ### 3. Apply Long-tail Keywords
47
47
 
48
- 아래 예시의 Short-tail 키워드를 그대로 쓰지 말고, **구체적인 Long-tail 확장**:
48
+ Don't use short-tail keywords from examples as-is. **Expand to specific long-tail queries**:
49
49
 
50
- | Short-tail (예시 그대로) | Long-tail (실제 검색 시) |
51
- |--------------------------|--------------------------|
52
- | `object detection` | `best lightweight object detection model for edge deployment {현재연도}` |
50
+ | Short-tail (Example) | Long-tail (Actual Search) |
51
+ |----------------------|---------------------------|
52
+ | `object detection` | `best lightweight object detection model for edge deployment {current_year}` |
53
53
  | `pytorch serving` | `how to deploy pytorch model with TorchServe in production` |
54
54
  | `gradio app` | `gradio demo with image upload real-time inference example` |
55
55
 
56
- **확장 방법:**
57
- - 목적 추가: "for production", "for beginners", "step by step"
58
- - 조건 추가: 언어, 프레임워크, 연도, 환경
59
- - 의도 명시: "how to", "best practices", "comparison", "vs"
56
+ **Expansion Methods:**
57
+ - Add purpose: "for production", "for beginners", "step by step"
58
+ - Add constraints: language, framework, year, environment
59
+ - Clarify intent: "how to", "best practices", "comparison", "vs"
60
60
 
61
61
  ### 4. Multi-Query Generation
62
62
 
63
- 단일 쿼리 대신 **3-5 변형 쿼리**로 검색:
63
+ Search with **3-5 query variations** instead of a single query:
64
64
 
65
65
  ```
66
- 원본: "pytorch model serving"
66
+ Original: "pytorch model serving"
67
67
 
68
- 변형 1 (방법): "how to deploy pytorch model in production {현재연도}"
69
- 변형 2 (비교): "pytorch vs tensorflow model serving comparison"
70
- 변형 3 (구체): "TorchServe custom handler tutorial example"
71
- 변형 4 (최적화): "pytorch model inference optimization GPU memory"
72
- 변형 5 (사례): "pytorch model deployment kubernetes docker best practices"
68
+ Variation 1 (how-to): "how to deploy pytorch model in production {current_year}"
69
+ Variation 2 (comparison): "pytorch vs tensorflow model serving comparison"
70
+ Variation 3 (specific): "TorchServe custom handler tutorial example"
71
+ Variation 4 (optimization): "pytorch model inference optimization GPU memory"
72
+ Variation 5 (case study): "pytorch model deployment kubernetes docker best practices"
73
73
  ```
74
74
 
75
- **변형 관점:**
76
- - 동의어/유사어
77
- - 문제 해결 vs 개념 설명
78
- - 특정 도구/프레임워크명
79
- - 비교 분석
80
- - 베스트 프랙티스/사례
75
+ **Variation Perspectives:**
76
+ - Synonyms/similar terms
77
+ - Problem-solving vs conceptual explanation
78
+ - Specific tool/framework names
79
+ - Comparative analysis
80
+ - Best practices/case studies
81
81
 
82
- ### 5. 검색 전 체크리스트
82
+ ### 5. Pre-Search Checklist
83
83
 
84
- - [ ] `date` 명령으로 현재 날짜 확인
85
- - [ ] 예시 키워드를 Long-tail로 확장
86
- - [ ] 필요시 3-5 Multi-Query 생성
87
- - [ ] 키워드/시맨틱 적합한 방식 선택
84
+ - [ ] Verified current date with `date` command
85
+ - [ ] Expanded example keywords to long-tail
86
+ - [ ] Generated 3-5 multi-queries if needed
87
+ - [ ] Selected appropriate search approach (keyword/semantic)
88
88
 
89
89
  ---
90
90
 
91
- ## 리서치 워크플로우
91
+ ## Research Workflow
92
92
 
93
- ### Phase 1: 계획 수립
93
+ ### Phase 1: Planning
94
94
 
95
- 1. **현재 날짜 확인**검색 시간 범위 설정 (최근 1-2)
96
- 2. **다중 쿼리 생성** → 3-5 쿼리 변형 (기술 용어, 문제, 해결책, 베스트 프랙티스)
97
- 3. **플랫폼별 검색 계획**주제에 맞는 플랫폼 선택
95
+ 1. **Verify current date**Set search time range (recent 1-2 years)
96
+ 2. **Generate multiple queries** → 3-5 query variations (technical terms, problems, solutions, best practices)
97
+ 3. **Plan platform-specific searches**Select platforms appropriate for the topic
98
98
 
99
- ### Phase 2: 병렬 정보 수집
99
+ ### Phase 2: Parallel Information Gathering
100
100
 
101
- Task 도구로 플랫폼별 검색을 병렬 실행:
101
+ Execute platform-specific searches in parallel using the Task tool:
102
102
 
103
103
  ```
104
- Task 1: GitHub 검색 (gh CLI)
105
- Task 2: Hugging Face 검색 (huggingface_hub)
104
+ Task 1: GitHub search (gh CLI)
105
+ Task 2: Hugging Face search (huggingface_hub)
106
106
  Task 3: Reddit + Stack Overflow (WebSearch)
107
- Task 4: Context7 공식 문서
108
- Task 5: DeepWiki 리포 분석 (필요시)
109
- Task 6: arXiv + 일반 (필요시)
107
+ Task 4: Context7 official docs
108
+ Task 5: DeepWiki repo analysis (if needed)
109
+ Task 6: arXiv + general web (if needed)
110
110
  ```
111
111
 
112
- ### Phase 3: 종합 리포트 생성
112
+ ### Phase 3: Synthesis and Report Generation
113
113
 
114
- 1. 결과 통합 중복 제거
115
- 2. 카테고리별 정리
116
- 3. 한글 리포트 작성 → `research-report-{topic-slug}.md`
114
+ 1. Consolidate results and remove duplicates
115
+ 2. Organize by category
116
+ 3. Write English report → `research-report-{topic-slug}.md`
117
117
 
118
118
  ---
119
119
 
120
- ## 플랫폼별 검색 가이드
120
+ ## Platform-Specific Search Guides
121
121
 
122
- ### 1. GitHub 검색 (gh CLI)
122
+ ### 1. GitHub Search (gh CLI)
123
123
 
124
124
  ```bash
125
- # 리포지토리 검색
125
+ # Repository search
126
126
  gh search repos "object detection" --sort stars --limit 10
127
127
  gh search repos "gradio app" --language python --limit 5
128
128
 
129
- # 코드 검색
129
+ # Code search
130
130
  gh search code "Qwen2VL" --extension py
131
131
 
132
- # 리포지토리 상세 정보
132
+ # Repository details
133
133
  gh repo view owner/repo
134
134
 
135
- # JSON 출력 (파싱용)
135
+ # JSON output (for parsing)
136
136
  gh search repos "keyword" --limit 10 --json fullName,description,stargazersCount,url
137
137
  ```
138
138
 
139
- #### 리포지토리 분석 순서
140
- 1. README.md 확인 (사용법)
141
- 2. 메인 진입점 파악 (app.py, main.py, inference.py)
142
- 3. 의존성 확인 (requirements.txt, pyproject.toml)
143
- 4. 소스 코드 분석
139
+ #### Repository Analysis Order
140
+ 1. Check README.md (usage)
141
+ 2. Identify main entry point (app.py, main.py, inference.py)
142
+ 3. Check dependencies (requirements.txt, pyproject.toml)
143
+ 4. Analyze source code
144
144
 
145
145
  ---
146
146
 
147
- ### 2. Hugging Face 검색 (huggingface_hub)
147
+ ### 2. Hugging Face Search (huggingface_hub)
148
148
 
149
149
  ```python
150
150
  from huggingface_hub import HfApi
151
151
 
152
152
  api = HfApi()
153
153
 
154
- # 모델 검색
154
+ # Model search
155
155
  models = api.list_models(search="object detection", limit=10, sort="downloads")
156
156
  for m in models:
157
157
  print(f"{m.id} - Downloads: {m.downloads}, Task: {m.pipeline_tag}")
158
158
 
159
- # 데이터셋 검색
159
+ # Dataset search
160
160
  datasets = api.list_datasets(search="coco", limit=10, sort="downloads")
161
161
 
162
- # Spaces 검색
162
+ # Spaces search
163
163
  spaces = api.list_spaces(search="gradio demo", limit=10, sort="likes")
164
164
  ```
165
165
 
166
- #### CLI 다운로드
166
+ #### CLI Downloads
167
167
  ```bash
168
- # Space 소스 코드 다운로드 (임시 분석용)
168
+ # Download Space source code (for temporary analysis)
169
169
  uvx hf download <space_id> --repo-type space --include "*.py" --local-dir /tmp/<name>
170
170
 
171
- # 모델 파일 다운로드
171
+ # Download model files
172
172
  uvx hf download <model_id> --include "*.json" --local-dir /tmp/<name>
173
173
  ```
174
174
 
175
- #### 주요 검색 패턴
175
+ #### Key Search Patterns
176
176
  ```bash
177
- # 특정 태스크 모델
177
+ # Models for specific tasks
178
178
  python -c "from huggingface_hub import HfApi; [print(m.id) for m in HfApi().list_models(search='grounding dino', limit=5)]"
179
179
 
180
- # Gradio 데모 찾기
180
+ # Find Gradio demos
181
181
  python -c "from huggingface_hub import HfApi; [print(s.id) for s in HfApi().list_spaces(search='object detection', sdk='gradio', limit=5)]"
182
182
  ```
183
183
 
184
184
  ---
185
185
 
186
- ### 3. Reddit 검색 (WebSearch)
186
+ ### 3. Reddit Search (WebSearch)
187
187
 
188
188
  ```
189
189
  WebSearch: site:reddit.com {query} {year}
190
190
  ```
191
191
 
192
- #### 주요 서브레딧
193
- - r/MachineLearning - ML 전반
194
- - r/pytorch - PyTorch 관련
195
- - r/deeplearning - 딥러닝
196
- - r/LocalLLaMA - 로컬 LLM
197
- - r/computervision - 컴퓨터 비전
192
+ #### Key Subreddits
193
+ - r/MachineLearning - ML in general
194
+ - r/pytorch - PyTorch related
195
+ - r/deeplearning - Deep learning
196
+ - r/LocalLLaMA - Local LLMs
197
+ - r/computervision - Computer vision
198
198
 
199
- #### 검색 예시
199
+ #### Search Examples
200
200
  ```
201
201
  site:reddit.com TorchServe deployment 2024
202
202
  site:reddit.com r/MachineLearning "best practices" inference
@@ -204,13 +204,13 @@ site:reddit.com r/MachineLearning "best practices" inference
204
204
 
205
205
  ---
206
206
 
207
- ### 4. Stack Overflow 검색 (WebSearch)
207
+ ### 4. Stack Overflow Search (WebSearch)
208
208
 
209
209
  ```
210
210
  WebSearch: site:stackoverflow.com [tag] {query}
211
211
  ```
212
212
 
213
- #### 검색 예시
213
+ #### Search Examples
214
214
  ```
215
215
  site:stackoverflow.com [pytorch] model serving
216
216
  site:stackoverflow.com [huggingface-transformers] inference optimization
@@ -218,27 +218,27 @@ site:stackoverflow.com [huggingface-transformers] inference optimization
218
218
 
219
219
  ---
220
220
 
221
- ### 5. Context7 - 공식 라이브러리 문서 (MCP)
221
+ ### 5. Context7 - Official Library Documentation (MCP)
222
222
 
223
223
  ```
224
224
  1. mcp__context7__resolve-library-id
225
- - libraryName: "pytorch" 또는 "torchserve"
225
+ - libraryName: "pytorch" or "torchserve"
226
226
 
227
227
  2. mcp__context7__get-library-docs
228
228
  - context7CompatibleLibraryID: "/pytorch/pytorch"
229
- - topic: "deployment" (선택)
229
+ - topic: "deployment" (optional)
230
230
  ```
231
231
 
232
- #### 주요 라이브러리 ID
232
+ #### Key Library IDs
233
233
  - `/pytorch/pytorch` - PyTorch
234
234
  - `/huggingface/transformers` - Transformers
235
235
  - `/gradio-app/gradio` - Gradio
236
236
 
237
237
  ---
238
238
 
239
- ### 6. DeepWiki - GitHub 리포 심층 분석 (MCP)
239
+ ### 6. DeepWiki - In-depth GitHub Repo Analysis (MCP)
240
240
 
241
- > `/ask-deepwiki` 커맨드 참조
241
+ > See `/ask-deepwiki` command
242
242
 
243
243
  ```
244
244
  mcp__deepwiki__read_wiki_structure
@@ -249,20 +249,20 @@ mcp__deepwiki__ask_question
249
249
  - question: "How to deploy custom model handler?"
250
250
  ```
251
251
 
252
- #### 유용한 리포지토리
252
+ #### Useful Repositories
253
253
  - `pytorch/serve` - TorchServe
254
254
  - `huggingface/transformers` - Transformers
255
255
  - `facebookresearch/segment-anything` - SAM
256
256
 
257
257
  ---
258
258
 
259
- ### 7. arXiv 검색 (WebSearch)
259
+ ### 7. arXiv Search (WebSearch)
260
260
 
261
261
  ```
262
262
  WebSearch: site:arxiv.org {topic} 2024
263
263
  ```
264
264
 
265
- #### 검색 예시
265
+ #### Search Examples
266
266
  ```
267
267
  site:arxiv.org "image forgery detection" 2024
268
268
  site:arxiv.org "vision language model" benchmark 2024
@@ -270,7 +270,7 @@ site:arxiv.org "vision language model" benchmark 2024
270
270
 
271
271
  ---
272
272
 
273
- ### 8. 일반 검색 (Firecrawl)
273
+ ### 8. General Web Search (Firecrawl)
274
274
 
275
275
  ```
276
276
  mcp__firecrawl__firecrawl_search
@@ -284,76 +284,76 @@ mcp__firecrawl__firecrawl_scrape
284
284
 
285
285
  ---
286
286
 
287
- ## 리포트 템플릿
287
+ ## Report Template
288
288
 
289
289
  ```markdown
290
- # 리서치 리포트: {주제}
290
+ # Research Report: {Topic}
291
291
 
292
- **조사 일자**: {날짜}
293
- **검색 범위**: {시작일} ~ {종료일}
292
+ **Research Date**: {date}
293
+ **Search Range**: {start_date} ~ {end_date}
294
294
 
295
- ## 요약
295
+ ## Summary
296
296
 
297
- - 핵심 발견 1
298
- - 핵심 발견 2
299
- - 핵심 발견 3
297
+ - Key finding 1
298
+ - Key finding 2
299
+ - Key finding 3
300
300
 
301
- ## 1. 주요 발견
301
+ ## 1. Key Findings
302
302
 
303
- ### 커뮤니티 인사이트 (Reddit/GitHub/SO)
303
+ ### Community Insights (Reddit/GitHub/SO)
304
304
 
305
- #### 공통 이슈
306
- - 이슈 1 ([출처](URL))
307
- - 이슈 2 ([출처](URL))
305
+ #### Common Issues
306
+ - Issue 1 ([source](URL))
307
+ - Issue 2 ([source](URL))
308
308
 
309
- #### 해결책
310
- - 해결책 1 ([출처](URL))
311
- - 해결책 2 ([출처](URL))
309
+ #### Solutions
310
+ - Solution 1 ([source](URL))
311
+ - Solution 2 ([source](URL))
312
312
 
313
- ### 공식 문서 요약 (Context7/DeepWiki)
313
+ ### Official Documentation Summary (Context7/DeepWiki)
314
314
 
315
- - 베스트 프랙티스 1
316
- - 베스트 프랙티스 2
317
- - 주의사항
315
+ - Best practice 1
316
+ - Best practice 2
317
+ - Caveats
318
318
 
319
- ### GitHub 프로젝트
319
+ ### GitHub Projects
320
320
 
321
- | 프로젝트 | Stars | 설명 |
322
- |----------|-------|------|
323
- | [owner/repo](URL) | 1.2k | 설명 |
321
+ | Project | Stars | Description |
322
+ |---------|-------|-------------|
323
+ | [owner/repo](URL) | 1.2k | Description |
324
324
 
325
- ### Hugging Face 리소스
325
+ ### Hugging Face Resources
326
326
 
327
- | 리소스 | 타입 | Downloads/Likes |
328
- |--------|------|-----------------|
327
+ | Resource | Type | Downloads/Likes |
328
+ |----------|------|-----------------|
329
329
  | [model-id](URL) | Model | 10k |
330
330
 
331
- ## 2. 권장 사항
331
+ ## 2. Recommendations
332
332
 
333
- 1. 권장 사항 1
334
- 2. 권장 사항 2
335
- 3. 권장 사항 3
333
+ 1. Recommendation 1
334
+ 2. Recommendation 2
335
+ 3. Recommendation 3
336
336
 
337
- ## 출처
337
+ ## Sources
338
338
 
339
- 1. [제목](URL) - 플랫폼, 날짜
340
- 2. [제목](URL) - 플랫폼, 날짜
339
+ 1. [Title](URL) - Platform, Date
340
+ 2. [Title](URL) - Platform, Date
341
341
  ```
342
342
 
343
- **저장**: `research-report-{topic-slug}.md` (한글, 단일 파일)
343
+ **Save as**: `research-report-{topic-slug}.md` (English, single file)
344
344
 
345
345
  ---
346
346
 
347
- ## 품질 기준
347
+ ## Quality Standards
348
348
 
349
- 1. **최신성**: 최근 1-2 콘텐츠 우선
350
- 2. **신뢰도**: 공식 문서 > GitHub 이슈 > Stack Overflow > Reddit
351
- 3. **구체성**: 코드 예시, 구체적 솔루션 포함
352
- 4. **출처 명시**: 모든 정보에 링크와 날짜 포함
353
- 5. **실행 가능성**: 명확하고 실행 가능한 권장사항
349
+ 1. **Recency**: Prioritize content from the last 1-2 years
350
+ 2. **Reliability**: Official docs > GitHub issues > Stack Overflow > Reddit
351
+ 3. **Specificity**: Include code examples and concrete solutions
352
+ 4. **Attribution**: Include links and dates for all information
353
+ 5. **Actionability**: Clear and actionable recommendations
354
354
 
355
- ## 파일 관리
355
+ ## File Management
356
356
 
357
- - 중간 데이터는 메모리에만 유지
358
- - **최종 산출물**: `research-report-{topic-slug}.md` 단일 파일만 저장
359
- - 임시 파일, 중간 초안 등은 생성하지 않음
357
+ - Keep intermediate data in memory only
358
+ - **Final deliverable**: Single `research-report-{topic-slug}.md` file only
359
+ - Do not create temporary files or intermediate drafts
@@ -51,26 +51,31 @@ Perform branch cleanup and CLAUDE.md updates after a PR has been merged. Follow
51
51
  - Run `gh project item-edit` to set Status to "Done"
52
52
  - Skip if issue is not in project or Status field does not exist
53
53
 
54
- 6. **Analyze and Update CLAUDE.md**
55
- - Check if CLAUDE.md exists
56
- - If not: Prompt user to create or skip
57
- - Analyze existing content:
54
+ 6. **Analyze and Update Configuration Files**
55
+ - Check which configuration files exist:
56
+ - `CLAUDE.md` - Claude Code specific instructions
57
+ - `AGENTS.md` - Cross-tool AI coding agent instructions (Codex, Cursor, Gemini, etc.)
58
+ - `GEMINI.md` - Google Gemini CLI specific instructions
59
+ - For each existing file, analyze:
58
60
  - Find temporary instructions related to resolved issue (e.g., mentions of `#<issue_number>`, `issue-<number>`)
59
61
  - Identify outdated or inaccurate information
60
62
  - Identify redundant or unnecessary content
61
- - Prepare update proposal:
63
+ - Prepare update proposal for each file:
62
64
  - **To remove**: Temporary notes/instructions related to resolved issue
63
65
  - **To add**: New patterns/conventions discovered during issue resolution
64
66
  - **To modify**: Outdated or inaccurate information
65
67
  - Present proposal to user for confirmation before applying
66
68
 
67
69
  7. **Commit Changes (Optional)**
68
- - If CLAUDE.md was modified, prompt user to confirm commit
70
+ - If any configuration files were modified, prompt user to confirm commit
69
71
  - If confirmed: Commit using Conventional Commits format
72
+ - Example: `git add CLAUDE.md AGENTS.md GEMINI.md 2>/dev/null || true`
70
73
 
71
74
  > See [Work Guidelines](../guidelines/work-guidelines.md)
72
75
 
73
- ## CLAUDE.md Update Guide
76
+ ## Configuration File Update Guide
77
+
78
+ The following guidelines apply to CLAUDE.md, AGENTS.md, and GEMINI.md:
74
79
 
75
80
  ### Examples of Content to Remove
76
81
  - Temporary notes like `TODO: remove after #123 is resolved`
@@ -2,7 +2,7 @@
2
2
 
3
3
  Convert a draft file to TaskMaster PRD format.
4
4
 
5
- **Template:** Copy `.claude/guideline/tm/prd-guide.md` to create draft
5
+ **Template:** Copy `.claude/guidelines/prd-guide.md` to create draft
6
6
 
7
7
  **Principles:**
8
8
  - Preserve original content (do not add or remove arbitrarily)
@@ -119,25 +119,31 @@ task-master next
119
119
  # Dependencies satisfied: Task 1 (done)
120
120
  ```
121
121
 
122
- ### 8. Analyze and Update CLAUDE.md
122
+ ### 8. Analyze and Update Configuration Files
123
123
 
124
- **Analysis targets:**
124
+ **Target files (check if exist):**
125
+ - `CLAUDE.md` - Claude Code specific instructions
126
+ - `AGENTS.md` - Cross-tool AI coding agent instructions (Codex, Cursor, Gemini, etc.)
127
+ - `GEMINI.md` - Google Gemini CLI specific instructions
128
+
129
+ **For each existing file, analyze:**
125
130
  - Temporary instructions related to resolved Issue/Task (mentions of `#1`, `task 1`)
126
131
  - Outdated or inaccurate information
127
132
  - Newly discovered patterns/conventions
128
133
 
129
- **Draft update proposal and confirm with user:**
134
+ **Draft update proposal and confirm with user for each file:**
130
135
  - Delete: Temporary notes related to resolved issues
131
136
  - Add: New patterns discovered during work
132
137
  - Modify: Changed information
133
138
 
134
139
  ### 9. Commit Changes (Optional)
135
140
 
136
- If CLAUDE.md was modified, ask via AskUserQuestion about committing:
141
+ If any configuration files were modified, ask via AskUserQuestion about committing:
137
142
 
138
143
  ```bash
139
- git add CLAUDE.md
140
- git commit -m "docs: update CLAUDE.md (reflecting task $TASK_ID completion)"
144
+ # Add all modified config files
145
+ git add CLAUDE.md AGENTS.md GEMINI.md 2>/dev/null || true
146
+ git commit -m "docs: update config files (reflecting task $TASK_ID completion)"
141
147
  git push origin main
142
148
  ```
143
149
 
@@ -162,6 +168,8 @@ Cleanup:
162
168
  - [x] Local branch deleted: issue-<N>
163
169
  - [x] TaskMaster status updated
164
170
  - [ ] CLAUDE.md updated (no changes)
171
+ - [ ] AGENTS.md updated (no changes / not found)
172
+ - [ ] GEMINI.md updated (no changes / not found)
165
173
 
166
174
  Next Steps:
167
175
  - task-master next -> Task <M>
@@ -1,30 +1,30 @@
1
1
  # CV Guidelines
2
2
 
3
- Computer Vision 작업 시 주의사항.
3
+ Best practices for Computer Vision tasks.
4
4
 
5
- ## BGR vs RGB 색상 형식
5
+ ## BGR vs RGB Color Format
6
6
 
7
- **핵심**: OpenCV BGR, matplotlib RGB 형식을 사용한다. supervision OpenCV 기반 라이브러리로 annotation할 때는 BGR 상태를 유지하고, matplotlib 표시 직전에만 RGB 변환한다.
7
+ **Key Point**: OpenCV uses BGR, matplotlib uses RGB. When annotating with OpenCV-based libraries like supervision, keep the image in BGR format and convert to RGB only right before displaying with matplotlib.
8
8
 
9
9
  ```python
10
- # 올바른 패턴
10
+ # Correct pattern
11
11
  img = cv2.imread(path) # BGR
12
- img = annotator.annotate(img, detections) # BGR 유지
13
- img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 표시 직전 변환
12
+ img = annotator.annotate(img, detections) # Keep BGR
13
+ img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Convert just before display
14
14
  plt.imshow(img)
15
15
 
16
- # 잘못된 패턴 (색상 반전 발생)
16
+ # Wrong pattern (causes color inversion)
17
17
  img = cv2.imread(path)
18
- img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 너무 일찍 변환
19
- img = annotator.annotate(img, detections) # RGB에 BGR 색상 적용 -> 색상 반전
18
+ img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Too early
19
+ img = annotator.annotate(img, detections) # BGR colors on RGB image -> inverted
20
20
  plt.imshow(img)
21
21
  ```
22
22
 
23
- ## Ultralytics WandB 연동
23
+ ## Ultralytics WandB Integration
24
24
 
25
- Ultralytics YOLO WandB 기본적으로 비활성화되어 있다.
25
+ Ultralytics YOLO has WandB disabled by default.
26
26
 
27
27
  ```bash
28
- yolo settings wandb=True # 활성화
29
- yolo settings wandb=False # 비활성화
28
+ yolo settings wandb=True # Enable
29
+ yolo settings wandb=False # Disable
30
30
  ```
@@ -1,17 +1,133 @@
1
1
  # Work Guidelines
2
2
 
3
- Common guidelines for all Claude Code commands.
3
+ Common guidelines for all Claude Code commands and development workflow.
4
4
 
5
- ## Response Rules
5
+ ---
6
6
 
7
+ ## Core Principles
8
+
9
+ ### Response Rules
7
10
  - Follow the instructions in `@CLAUDE.md`
11
+ - Answer in the same language as user's request
12
+ - Append sources that you've referenced at the very end of your answer
8
13
  - Do not use emoji in code or documentation
9
- - If anything is unclear, use the `AskUserQuestion` tool instead of guessing
10
14
  - Never add Claude attribution (e.g., "Generated with Claude", "Co-Authored-By: Claude") to commits, PRs, or issues
11
15
 
12
- ## User Confirmation Required
16
+ ### Uncertainty Handling
17
+ - If you are uncertain, confused, or lack clarity about the requirements or approach, **STOP immediately** and ask the user for clarification
18
+ - Do not proceed with assumptions or guesses that could lead to incorrect implementations
19
+ - If any instruction/requirement is unclear, ambiguous, or potentially incorrect, use the `AskUserQuestion` tool (do not ask inline in the response text)
13
20
 
21
+ ### User Confirmation Required
14
22
  Always confirm with the user before:
15
23
  - Irreversible operations (branch deletion, status changes)
16
- - Modifying CLAUDE.md
24
+ - Modifying configuration files (CLAUDE.md, AGENTS.md, GEMINI.md)
17
25
  - Making architectural decisions
26
+ - Implementing features beyond requested scope
27
+
28
+ ---
29
+
30
+ ## Development Workflow
31
+
32
+ ### Parallel Execution
33
+ Use Task tool for independent tasks. For large projects, split into sub-tasks that:
34
+ - Avoid consuming entire context window (maximizes token efficiency)
35
+ - Produce separate files or distinct code sections (mergeable outputs)
36
+ - Have no cross-dependencies (can run without coordination)
37
+ - Example: Separate handlers, independent tests, different modules
38
+
39
+ ### Dependency Version Policy (Stable First)
40
+ - Prefer widely adopted stable releases over the newest/bleeding-edge versions
41
+ - Avoid `alpha`/`beta`/`rc`/canary/nightly releases
42
+ - Respect existing project pins
43
+ - If a newer version is required (security fix, critical bugfix, or mandatory feature), propose the upgrade with rationale and risks before changing
44
+
45
+ ### Performance/Optimization Gate
46
+ - If you identify a clearly faster or more reliable library/framework/approach with meaningful benefit, **PAUSE** implementation and recommend it with trade-offs
47
+ - Proceed only after user approval
48
+
49
+ ### Permission-Based Development
50
+ - Never overengineer or go beyond the requested scope
51
+ - Always ask user for permission when implementing new features
52
+
53
+ ---
54
+
55
+ ## Code Standards
56
+
57
+ ### MCP Server Usage
58
+ Utilize MCP servers whenever possible:
59
+ - `context7` - Library documentation queries
60
+ - `deepwiki` - GitHub repository analysis
61
+ - `mcpdocs` - Documentation fetching
62
+ - `firecrawl` - Web scraping and search
63
+
64
+ ### Python Development
65
+ - **Virtual Environment (MANDATORY)**: Always use virtual environment (uv) when running Python
66
+ - **NEVER** use system Python (`python`, `python3`) directly
67
+ - If `ModuleNotFoundError` occurs when attempting to run without virtual environment, immediately stop and report to user
68
+ - **Syntax Validation**: After modifying Python (.py) files, always validate syntax using `py_compile`:
69
+ ```bash
70
+ python -m py_compile file.py
71
+ ```
72
+
73
+ ### Pip Installation Issues
74
+ If pip install errors occur, try in order:
75
+ 1. `pip install --upgrade pip setuptools wheel`
76
+ 2. `pip cache purge && pip install -r requirements.txt`
77
+ 3. `pip install --no-cache-dir -r requirements.txt` (install packages one by one)
78
+
79
+ ### Jupyter Notebook Editing
80
+ - **ALWAYS** use the `edit_notebook` tool exclusively for editing .ipynb files
81
+ - **NEVER** use `search_replace`, `write`, or any other text editing tools on .ipynb files
82
+ - After modifying .ipynb files, verify:
83
+ - JSON syntax validity
84
+ - Original cell execution order/outputs preserved (unless explicitly instructed to clear)
85
+ - Changes are correct, no missing functions/imports/dependencies
86
+
87
+ ### Output Standards
88
+ - **Minimal Output**: Avoid unnecessary print statements in code - only include meaningful debug output when explicitly requested
89
+ - **No Emojis**: Never use emojis anywhere, whether in documentation or code
90
+
91
+ ---
92
+
93
+ ## File Organization
94
+
95
+ ### Avoid Root Clutter
96
+ - **NEVER** create output files in project root:
97
+ - Analysis notebooks
98
+ - Visualizations
99
+ - CSV data
100
+ - Logs
101
+ - Temporary files
102
+ - Only essential project configuration files belong in root (e.g., `README.md`, `requirements.txt`, config files)
103
+
104
+ ### Module-Level Organization
105
+ Each module should maintain its own organized structure:
106
+ ```
107
+ [module]/
108
+ analysis/ # Analysis files
109
+ outputs/ # Generated outputs
110
+ tests/ # Test files
111
+ ...
112
+ ```
113
+
114
+ ### Temporary Files
115
+ - Create and use a dedicated temporary directory
116
+ - Never commit temporary files to git
117
+
118
+ ---
119
+
120
+ ## Translation Guidelines
121
+
122
+ When translating into Korean:
123
+ - Keep technical terms, code blocks, and commands in their original form
124
+ - Translate the surrounding text into natural, context-appropriate Korean
125
+ - After completing the translation, review it to ensure it meets these criteria
126
+
127
+ ---
128
+
129
+ ## Related Guidelines
130
+
131
+ - [ID Reference](./id-reference.md) - GitHub/TaskMaster ID conventions
132
+ - [CV Guidelines](./cv-guidelines.md) - Computer vision specific guidelines
133
+ - [PRD Guide](./prd-guide.md) - PRD template for TaskMaster
package/README.md CHANGED
@@ -28,7 +28,9 @@ A collection of custom slash commands, agents, and skills for Claude Code CLI.
28
28
  │ └── sync-to-github.md # Sync TaskMaster -> GitHub
29
29
  ├── guidelines/ # Shared guidelines
30
30
  │ ├── work-guidelines.md # Common work guidelines
31
- └── id-reference.md # GitHub/TaskMaster ID reference
31
+ ├── id-reference.md # GitHub/TaskMaster ID reference
32
+ │ ├── cv-guidelines.md # Computer vision guidelines
33
+ │ └── prd-guide.md # PRD template for TaskMaster
32
34
  ├── agents/ # Custom agents
33
35
  │ ├── web-researcher.md # Multi-platform web research
34
36
  │ └── python-pro.md # Python expert
@@ -71,7 +73,7 @@ A collection of custom slash commands, agents, and skills for Claude Code CLI.
71
73
  | `/gh/create-issue-label` | Analyze project and create appropriate GitHub issue labels |
72
74
  | `/gh/decompose-issue` | Decompose large work into manageable independent issues |
73
75
  | `/gh/init-project` | Initialize and configure GitHub Project board |
74
- | `/gh/post-merge` | Clean up branch and update CLAUDE.md after PR merge |
76
+ | `/gh/post-merge` | Clean up branch and update config files (CLAUDE.md, AGENTS.md, GEMINI.md) after PR merge |
75
77
  | `/gh/resolve-issue` | Systematically analyze and resolve GitHub issues |
76
78
 
77
79
  ### TaskMaster Integration Commands (`/tm/`)
@@ -81,7 +83,7 @@ A collection of custom slash commands, agents, and skills for Claude Code CLI.
81
83
  | `/tm/convert-prd` | Convert PRD draft to TaskMaster PRD format |
82
84
  | `/tm/sync-to-github` | Sync TaskMaster tasks.json to GitHub Issues/Milestones |
83
85
  | `/tm/resolve-issue` | Resolve GitHub Issues by TaskMaster subtask units |
84
- | `/tm/post-merge` | TaskMaster status update and branch cleanup after PR merge |
86
+ | `/tm/post-merge` | TaskMaster status update, config file updates, and branch cleanup after PR merge |
85
87
 
86
88
  ## Agents
87
89
 
@@ -163,6 +165,18 @@ Options:
163
165
  -v, --version Show version
164
166
  ```
165
167
 
168
+ ### Installation Modes
169
+
170
+ When existing folders are detected, you'll be prompted to choose:
171
+
172
+ | Mode | Behavior |
173
+ |------|----------|
174
+ | **update** (default) | Overwrite existing files, add new files, keep custom files |
175
+ | **merge** | Add new files only, skip existing files |
176
+
177
+ - **update**: Recommended when upgrading to a new version
178
+ - **merge**: Safe when you have heavily customized files you don't want changed
179
+
166
180
  ## MCP Server Configuration
167
181
 
168
182
  The package includes `.mcp.json` that can be copied to your project root.
package/bin/cli.js CHANGED
@@ -8,44 +8,45 @@ const readline = require('readline');
8
8
  const pkg = require('../package.json');
9
9
  const args = process.argv.slice(2);
10
10
 
11
- // 설치 대상 폴더 (사용자 데이터가 아닌 것들만)
12
- const INSTALL_FOLDERS = ['commands', 'agents', 'skills'];
11
+ // Installation target folders (non-user data only)
12
+ const INSTALL_FOLDERS = ['commands', 'agents', 'skills', 'guidelines'];
13
13
 
14
- // 옵션 파싱
14
+ // Parse options
15
15
  const isGlobal = args.includes('--global') || args.includes('-g');
16
16
  const showHelp = args.includes('--help') || args.includes('-h');
17
17
  const showVersion = args.includes('--version') || args.includes('-v');
18
18
 
19
- // 버전 출력
19
+ // Version output
20
20
  if (showVersion) {
21
21
  console.log(pkg.version);
22
22
  process.exit(0);
23
23
  }
24
24
 
25
- // 도움말 출력
25
+ // Help output
26
26
  if (showHelp) {
27
27
  console.log(`
28
28
  Claude Code Config v${pkg.version}
29
29
 
30
- 사용법:
31
- npx @yeongjaeyou/claude-code-config [옵션]
30
+ Usage:
31
+ npx @yeongjaeyou/claude-code-config [options]
32
32
 
33
- 옵션:
34
- -g, --global 전역 설치 (~/.claude/)
35
- -h, --help 도움말 출력
36
- -v, --version 버전 출력
33
+ Options:
34
+ -g, --global Global install (~/.claude/)
35
+ -h, --help Show help
36
+ -v, --version Show version
37
37
 
38
- 예시:
39
- npx @yeongjaeyou/claude-code-config # 현재 프로젝트에 설치
40
- npx @yeongjaeyou/claude-code-config --global # 전역 설치
38
+ Examples:
39
+ npx @yeongjaeyou/claude-code-config # Install to current project
40
+ npx @yeongjaeyou/claude-code-config --global # Global install
41
41
 
42
- 설치되는 폴더:
43
- - commands/ : 슬래시 커맨드
44
- - agents/ : 커스텀 에이전트
45
- - skills/ : 스킬 (재사용 가능한 도구 모음)
42
+ Installed folders:
43
+ - commands/ : Slash commands
44
+ - agents/ : Custom agents
45
+ - skills/ : Skills (reusable tool collections)
46
+ - guidelines/ : Shared guidelines
46
47
 
47
- 참고:
48
- --global 설치 기존 사용자 데이터(settings.json, history.jsonl ) 보존됩니다.
48
+ Note:
49
+ With --global install, existing user data (settings.json, history.jsonl, etc.) is preserved.
49
50
  `);
50
51
  process.exit(0);
51
52
  }
@@ -56,15 +57,15 @@ const dest = isGlobal
56
57
  : path.join(process.cwd(), '.claude');
57
58
 
58
59
  /**
59
- * 사용자에게 질문하고 답변을 받는다
60
- * @param {string} question - 질문 내용
61
- * @returns {Promise<string>} - 사용자 답변
60
+ * Ask user a question and get answer
61
+ * @param {string} question - Question content
62
+ * @returns {Promise<string>} - User answer
62
63
  */
63
64
  function askQuestion(question) {
64
- // 비대화형 환경 감지 (CI/CD, 파이프라인 )
65
+ // Detect non-interactive environment (CI/CD, pipelines, etc.)
65
66
  if (!process.stdin.isTTY) {
66
- console.log('비대화형 환경이 감지되었습니다. 기본값(merge)을 사용합니다.');
67
- return Promise.resolve('merge');
67
+ console.log('Non-interactive environment detected. Using default (update).');
68
+ return Promise.resolve('update');
68
69
  }
69
70
 
70
71
  const rl = readline.createInterface({
@@ -81,8 +82,8 @@ function askQuestion(question) {
81
82
  }
82
83
 
83
84
  /**
84
- * 기존 설치 폴더 확인
85
- * @returns {string[]} - 존재하는 폴더 목록
85
+ * Check existing installation folders
86
+ * @returns {string[]} - List of existing folders
86
87
  */
87
88
  function checkExistingFolders() {
88
89
  const existing = [];
@@ -96,22 +97,22 @@ function checkExistingFolders() {
96
97
  }
97
98
 
98
99
  /**
99
- * 폴더 복사 (재귀적)
100
- * @param {string} src - 소스 경로
101
- * @param {string} dst - 대상 경로
102
- * @param {boolean} mergeMode - 병합 모드 여부
100
+ * Copy folder recursively
101
+ * @param {string} src - Source path
102
+ * @param {string} dst - Destination path
103
+ * @param {string} mode - Installation mode: 'merge' | 'update'
103
104
  */
104
- function copyFolder(src, dst, mergeMode = false) {
105
+ function copyFolder(src, dst, mode = 'merge') {
105
106
  if (!fs.existsSync(src)) {
106
107
  return;
107
108
  }
108
109
 
109
- // 대상 폴더 생성
110
+ // Create destination folder
110
111
  if (!fs.existsSync(dst)) {
111
112
  try {
112
113
  fs.mkdirSync(dst, { recursive: true });
113
114
  } catch (err) {
114
- throw new Error(`폴더 생성 실패: ${dst} - ${err.message}`);
115
+ throw new Error(`Failed to create folder: ${dst} - ${err.message}`);
115
116
  }
116
117
  }
117
118
 
@@ -122,28 +123,28 @@ function copyFolder(src, dst, mergeMode = false) {
122
123
  const dstPath = path.join(dst, entry.name);
123
124
 
124
125
  if (entry.isDirectory()) {
125
- copyFolder(srcPath, dstPath, mergeMode);
126
+ copyFolder(srcPath, dstPath, mode);
126
127
  } else {
127
- // 병합 모드에서는 기존 파일 유지
128
- if (mergeMode && fs.existsSync(dstPath)) {
128
+ // In merge mode, keep existing files (skip if exists)
129
+ if (mode === 'merge' && fs.existsSync(dstPath)) {
129
130
  continue;
130
131
  }
132
+ // In update mode, overwrite existing files + add new files
133
+ // Custom files (only in dest) are preserved since we don't delete them
131
134
  try {
132
135
  fs.copyFileSync(srcPath, dstPath);
133
136
  } catch (err) {
134
- throw new Error(`파일 복사 실패: ${srcPath} -> ${dstPath} - ${err.message}`);
137
+ throw new Error(`Failed to copy file: ${srcPath} -> ${dstPath} - ${err.message}`);
135
138
  }
136
139
  }
137
140
  }
138
141
  }
139
142
 
140
143
  /**
141
- * 설치 대상 폴더만 선택적으로 복사
142
- * @param {string} mode - 'merge' | 'overwrite'
144
+ * Selectively copy installation target folders
145
+ * @param {string} mode - 'merge' | 'update'
143
146
  */
144
147
  function installFolders(mode) {
145
- const mergeMode = mode === 'merge';
146
-
147
148
  for (const folder of INSTALL_FOLDERS) {
148
149
  const srcFolder = path.join(source, folder);
149
150
  const dstFolder = path.join(dest, folder);
@@ -152,21 +153,15 @@ function installFolders(mode) {
152
153
  continue;
153
154
  }
154
155
 
155
- // 덮어쓰기 모드에서는 기존 폴더 삭제 후 복사
156
- if (!mergeMode && fs.existsSync(dstFolder)) {
157
- try {
158
- fs.rmSync(dstFolder, { recursive: true });
159
- } catch (err) {
160
- throw new Error(`폴더 삭제 실패: ${dstFolder} - ${err.message}`);
161
- }
162
- }
163
-
164
- copyFolder(srcFolder, dstFolder, mergeMode);
156
+ // Both modes now preserve custom files
157
+ // - merge: skip existing files, add new files only
158
+ // - update: overwrite existing files, add new files, keep custom files
159
+ copyFolder(srcFolder, dstFolder, mode);
165
160
  }
166
161
  }
167
162
 
168
163
  /**
169
- * 메인 함수
164
+ * Main function
170
165
  */
171
166
  async function main() {
172
167
  console.log('');
@@ -174,90 +169,91 @@ async function main() {
174
169
  console.log('==================');
175
170
  console.log('');
176
171
 
177
- // 소스 폴더 존재 확인
172
+ // Check source folder exists
178
173
  if (!fs.existsSync(source)) {
179
- console.error('오류: 소스 .claude/ 폴더를 찾을 수 없습니다.');
174
+ console.error('Error: Source .claude/ folder not found.');
180
175
  process.exit(1);
181
176
  }
182
177
 
183
- // 설치 위치 안내
178
+ // Display installation location
184
179
  if (isGlobal) {
185
- console.log('전역 설치 모드: ~/.claude/에 설치합니다.');
180
+ console.log('Global install mode: Installing to ~/.claude/');
186
181
  } else {
187
- console.log('로컬 설치 모드: 현재 디렉토리에 설치합니다.');
182
+ console.log('Local install mode: Installing to current directory.');
188
183
  }
189
- console.log(`설치 경로: ${dest}`);
184
+ console.log(`Install path: ${dest}`);
190
185
  console.log('');
191
186
 
192
- // 대상 폴더 생성 (없으면)
187
+ // Create destination folder if not exists
193
188
  if (!fs.existsSync(dest)) {
194
189
  try {
195
190
  fs.mkdirSync(dest, { recursive: true });
196
191
  } catch (err) {
197
- console.error(`오류: 대상 폴더를 생성할 없습니다: ${dest}`);
198
- console.error(`상세: ${err.message}`);
192
+ console.error(`Error: Cannot create destination folder: ${dest}`);
193
+ console.error(`Details: ${err.message}`);
199
194
  process.exit(1);
200
195
  }
201
196
  }
202
197
 
203
- // 기존 설치 폴더 확인
198
+ // Check existing installation folders
204
199
  const existingFolders = checkExistingFolders();
205
- let installMode = 'overwrite';
200
+ let installMode = 'update';
206
201
 
207
202
  if (existingFolders.length > 0) {
208
- console.log('기존 설치 폴더가 발견되었습니다:');
203
+ console.log('Existing installation folders found:');
209
204
  existingFolders.forEach(folder => {
210
205
  console.log(` - ${folder}/`);
211
206
  });
212
207
  console.log('');
213
208
 
214
209
  if (isGlobal) {
215
- console.log('(사용자 데이터는 보존됩니다: settings.json, history.jsonl )');
210
+ console.log('(User data will be preserved: settings.json, history.jsonl, etc.)');
216
211
  console.log('');
217
212
  }
218
213
 
219
- console.log('설치 옵션:');
220
- console.log(' [m] merge - 파일만 추가 (기존 파일 유지)');
221
- console.log(' [o] overwrite - 폴더들만 덮어쓰기');
222
- console.log(' [c] cancel - 설치 취소');
214
+ console.log('Installation options:');
215
+ console.log(' [u] update - Update existing files, keep custom files (Recommended)');
216
+ console.log(' [m] merge - Add new files only, skip existing');
217
+ console.log(' [c] cancel - Cancel installation');
223
218
  console.log('');
224
219
 
225
- const answer = await askQuestion('선택하세요 (m/o/c) [기본: m]: ');
220
+ const answer = await askQuestion('Choose (u/m/c) [default: u]: ');
226
221
 
227
222
  if (answer === 'c' || answer === 'cancel') {
228
- console.log('설치가 취소되었습니다.');
223
+ console.log('Installation cancelled.');
229
224
  process.exit(0);
230
- } else if (answer === 'o' || answer === 'overwrite') {
231
- installMode = 'overwrite';
225
+ } else if (answer === 'm' || answer === 'merge') {
226
+ installMode = 'merge';
232
227
  console.log('');
233
- console.log('덮어쓰기 모드로 설치합니다...');
228
+ console.log('Installing in merge mode (keeping existing files)...');
234
229
  } else {
235
- // 기본값: merge ( 값, 'm', 'merge' )
236
- installMode = 'merge';
230
+ // Default: update (empty, 'u', 'update', etc.)
231
+ installMode = 'update';
237
232
  console.log('');
238
- console.log('병합 모드로 설치합니다 (기존 파일 유지)...');
233
+ console.log('Installing in update mode (updating existing files, keeping custom files)...');
239
234
  }
240
235
  }
241
236
 
242
- // 폴더 설치
237
+ // Install folders
243
238
  installFolders(installMode);
244
239
 
245
240
  console.log('');
246
- console.log('.claude/ 폴더가 성공적으로 설치되었습니다!');
241
+ console.log('.claude/ folder installed successfully!');
247
242
  console.log('');
248
- console.log('설치된 내용:');
249
- console.log(' - commands/ : 슬래시 커맨드');
250
- console.log(' - agents/ : 커스텀 에이전트');
251
- console.log(' - skills/ : 스킬 (재사용 가능한 도구 모음)');
243
+ console.log('Installed:');
244
+ console.log(' - commands/ : Slash commands');
245
+ console.log(' - agents/ : Custom agents');
246
+ console.log(' - skills/ : Skills (reusable tool collections)');
247
+ console.log(' - guidelines/ : Shared guidelines');
252
248
  console.log('');
253
249
 
254
250
  if (isGlobal) {
255
- console.log('전역 설치가 완료되었습니다.');
256
- console.log('모든 프로젝트에서 Claude Code 커맨드를 사용할 있습니다.');
251
+ console.log('Global installation complete.');
252
+ console.log('Claude Code commands are now available in all projects.');
257
253
  }
258
254
  }
259
255
 
260
256
  main().catch((error) => {
261
- console.error('오류:', error.message);
257
+ console.error('Error:', error.message);
262
258
  process.exit(1);
263
259
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yeongjaeyou/claude-code-config",
3
- "version": "0.5.2",
3
+ "version": "0.7.0",
4
4
  "description": "Claude Code CLI custom commands, agents, and skills",
5
5
  "bin": {
6
6
  "claude-code-config": "./bin/cli.js"