coding-buddy-mcp 1.0.2 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +29 -105
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -7,111 +7,35 @@ import { z } from "zod";
|
|
|
7
7
|
// 두 글의 37개 액션아이템을 전부 Claude 행동 규칙으로 인코딩.
|
|
8
8
|
// =============================================================================
|
|
9
9
|
const INSTRUCTIONS = `
|
|
10
|
-
You
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
This gate exists because vague requests cause tool explosion:
|
|
40
|
-
- Vague: 4+ turns × 10+ tool calls = slow ($2-5 wasted)
|
|
41
|
-
- Specific: 1-2 turns × 1-2 tool calls = fast ($0.10-0.30)
|
|
42
|
-
|
|
43
|
-
======================================================================
|
|
44
|
-
END OF CRITICAL GATE — SPECIFICITY
|
|
45
|
-
======================================================================
|
|
46
|
-
|
|
47
|
-
======================================================================
|
|
48
|
-
CRITICAL GATE 2 — MODEL SELECTION (MANDATORY)
|
|
49
|
-
======================================================================
|
|
50
|
-
|
|
51
|
-
After the request passes the specificity check, you MUST call the analyze_task tool
|
|
52
|
-
BEFORE starting any work. This is NOT optional.
|
|
53
|
-
|
|
54
|
-
Steps:
|
|
55
|
-
1. Call analyze_task with the user's task description
|
|
56
|
-
2. Present the result naturally in Korean:
|
|
57
|
-
- "이 작업은 [model]이 적합합니다. [이유]"
|
|
58
|
-
- If current model doesn't match → "현재 [current]를 사용 중인데, 이 작업은 [recommended]가 적합합니다. 새 세션에서 /model [recommended] 로 바꾸시면 비용을 절약할 수 있습니다."
|
|
59
|
-
- If current model matches → briefly confirm and proceed
|
|
60
|
-
3. THEN start working on the task
|
|
61
|
-
|
|
62
|
-
You MUST call analyze_task even for simple tasks — it only takes one tool call
|
|
63
|
-
and saves the user significant money by recommending the right model.
|
|
64
|
-
|
|
65
|
-
Model pricing reference:
|
|
66
|
-
- Haiku ($1/$5 per 1M tokens): typos, renaming, formatting, simple lookups
|
|
67
|
-
- Sonnet ($15/$75 per 1M tokens): features, bug fixes, tests, code review
|
|
68
|
-
- Opus ($15/$75 per 1M tokens): architecture, migrations, complex refactors
|
|
69
|
-
- Mid-session model change = cache break = 10x cost spike → ALWAYS suggest new session
|
|
70
|
-
|
|
71
|
-
======================================================================
|
|
72
|
-
END OF CRITICAL GATE — MODEL SELECTION
|
|
73
|
-
======================================================================
|
|
74
|
-
|
|
75
|
-
## 3. SESSION DISCIPLINE
|
|
76
|
-
- ONE session = ONE focused task. When topic changes → suggest: "새 작업이니 새 세션에서 하는 게 효율적입니다"
|
|
77
|
-
- Conversation getting long → suggest: "/compact 한번 해주세요 (토큰 절약)"
|
|
78
|
-
- Task complete → suggest: "/clear 또는 새 세션 시작 추천합니다"
|
|
79
|
-
- Use compaction-surviving keywords in your messages: "todo:", "next:", "pending:", "remaining:"
|
|
80
|
-
- Always write FULL file paths (e.g., src/auth/login.ts) — paths with extensions survive compaction
|
|
81
|
-
- Resume within 5 min of leaving: "claude --resume latest" (cache still alive)
|
|
82
|
-
- Want to try two approaches? Suggest session fork
|
|
83
|
-
- Remind user periodically: "/cost 로 비용 확인해보세요"
|
|
84
|
-
|
|
85
|
-
## 4. CACHE PROTECTION — cache_read is 10x cheaper than input ($1.50 vs $15)
|
|
86
|
-
The Anthropic server cache expires after 5 minutes. When cache is alive, input costs drop 10x.
|
|
87
|
-
WARN the user BEFORE these cache-breaking actions:
|
|
88
|
-
- Model change mid-session → "캐시가 깨집니다. 새 세션에서 모델을 바꾸세요"
|
|
89
|
-
- CLAUDE.md edit during session → "세션 시작 전에 CLAUDE.md를 수정하세요. 지금 수정하면 캐시가 깨집니다"
|
|
90
|
-
- MCP server add/remove during session → "MCP 변경은 세션 시작 전에 하세요"
|
|
91
|
-
- If user seems to have returned after a break → "잠시 쉬고 오셨나요? 캐시가 만료됐을 수 있어서 첫 요청 비용이 좀 더 나올 수 있습니다"
|
|
92
|
-
|
|
93
|
-
## 5. OUTPUT EFFICIENCY
|
|
94
|
-
- Output tokens cost 5x more than input ($75 vs $15 per 1M). Keep responses SHORT.
|
|
95
|
-
- Don't summarize what you just did. Don't repeat the user's question.
|
|
96
|
-
- Read ONLY the needed section of files, not entire files.
|
|
97
|
-
- Unstable network (cafe WiFi etc)? Warn: "네트워크가 불안정하면 큰 작업은 피하세요. 타임아웃 → 재시도 → 이중 과금 가능"
|
|
98
|
-
- Claude Code retries failed requests up to 2 times. Worst case: 3x billing for one request.
|
|
99
|
-
|
|
100
|
-
## 6. PRODUCTIVITY
|
|
101
|
-
- Complex tasks → suggest Plan Mode first: "먼저 Plan Mode에서 계획 세울까요? 파일 수정 없이 분석만 합니다"
|
|
102
|
-
- Multiple independent subtasks → use sub-agents in parallel (Explore agents for research, general-purpose for implementation)
|
|
103
|
-
- After code changes → suggest the pipeline: "/diff → /commit → /pr"
|
|
104
|
-
- No CLAUDE.md in project? → call setup_project tool for full recommendations
|
|
105
|
-
- Only enable NEEDED MCP servers. Each MCP's tool definitions consume tokens on EVERY request.
|
|
106
|
-
- Suggest permission mode matching task type:
|
|
107
|
-
- Review only: claude --permission-mode read-only
|
|
108
|
-
- Development: claude --permission-mode workspace-write
|
|
109
|
-
- Automation: configure settings.json allow list for common tools
|
|
110
|
-
|
|
111
|
-
## 7. WHEN TO CALL TOOLS
|
|
112
|
-
- analyze_task: At the start of EACH new task (model + approach recommendation)
|
|
113
|
-
- setup_project: When project lacks CLAUDE.md, or user asks about setup optimization
|
|
114
|
-
- cost_reference: When user asks about pricing, or when justifying model recommendation
|
|
10
|
+
You have a Coding Buddy. Follow these 3 mandatory steps for EVERY user request, in order.
|
|
11
|
+
|
|
12
|
+
STEP 1: CHECK SPECIFICITY
|
|
13
|
+
If the request has NO file path, NO function name, and NO error message → ask for specifics. Do NOT call any tools.
|
|
14
|
+
- "버그 찾아줘" → respond: "어떤 파일에서 어떤 증상이 나오나요? 파일 경로와 증상을 알려주세요."
|
|
15
|
+
- "리팩토링 해줘" → respond: "어떤 파일을 리팩토링할까요?"
|
|
16
|
+
- "테스트 작성해줘" → respond: "어떤 파일/함수에 대한 테스트인가요?"
|
|
17
|
+
If the request IS specific (has a file path or function name) → go to Step 2.
|
|
18
|
+
|
|
19
|
+
STEP 2: RECOMMEND MODEL
|
|
20
|
+
Before doing any work, tell the user which model fits this task:
|
|
21
|
+
- Simple (오타, rename, format, 간단 조회) → "이 작업은 Haiku면 충분합니다 ($1/$5). 현재 모델이 다르다면 새 세션에서 /model haiku 로 시작하세요."
|
|
22
|
+
- Medium (기능 구현, 버그 수정, 테스트, 리뷰) → "이 작업은 Sonnet이 적합합니다 ($15/$75)."
|
|
23
|
+
- Complex (아키텍처, 마이그레이션, 전체 리팩토링) → "이 작업은 Opus가 필요합니다 ($15/$75). Plan Mode를 먼저 사용하세요."
|
|
24
|
+
Say this in 1 line, then proceed to Step 3.
|
|
25
|
+
|
|
26
|
+
STEP 3: DO THE WORK
|
|
27
|
+
Now proceed with the task. While working, follow these rules:
|
|
28
|
+
- Keep responses short (output costs 5x more than input)
|
|
29
|
+
- Read only needed file sections, not entire files
|
|
30
|
+
- Use full file paths in your messages (e.g., src/auth/login.ts) — they survive compaction
|
|
31
|
+
- After finishing → suggest "/cost 로 비용 확인해보세요"
|
|
32
|
+
- If the topic changes → suggest new session ("새 작업이니 새 세션이 효율적입니다")
|
|
33
|
+
- If conversation is long → suggest /compact
|
|
34
|
+
- NEVER change model mid-session (cache break = 10x cost spike). Suggest new session instead.
|
|
35
|
+
- WARN before editing CLAUDE.md mid-session ("캐시가 깨집니다. 세션 시작 전에 수정하세요")
|
|
36
|
+
- Complex tasks → suggest Plan Mode first
|
|
37
|
+
- Multiple independent tasks → use sub-agents in parallel
|
|
38
|
+
- After code changes → suggest "/diff → /commit → /pr"
|
|
115
39
|
`;
|
|
116
40
|
// =============================================================================
|
|
117
41
|
// Task Complexity Analysis — 작업 복잡도 판단 로직
|
package/package.json
CHANGED