coding-buddy-mcp 1.0.1 → 1.0.2
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/TEST_CASES.md +165 -0
- package/dist/index.js +28 -9
- package/package.json +1 -1
package/TEST_CASES.md
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Coding Buddy MCP 테스트 케이스
|
|
2
|
+
|
|
3
|
+
아무 프로젝트에서 새 세션을 열고 아래 프롬프트를 하나씩 입력합니다.
|
|
4
|
+
각 테스트 후 `/clear`로 초기화하고 다음 테스트를 진행하세요.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 테스트 0: MCP 연결 확인
|
|
9
|
+
```
|
|
10
|
+
/mcp
|
|
11
|
+
```
|
|
12
|
+
- [ ] coding-buddy가 목록에 보인다
|
|
13
|
+
- [ ] 도구 3개 표시: analyze_task, setup_project, cost_reference
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## A. CRITICAL GATE (구체성 강제) — 가장 중요
|
|
18
|
+
|
|
19
|
+
### A-1. 모호한 버그 요청 (한국어)
|
|
20
|
+
```
|
|
21
|
+
버그 찾아줘
|
|
22
|
+
```
|
|
23
|
+
- [ ] 도구를 호출하지 않고 파일 경로/증상을 되묻는다
|
|
24
|
+
- [ ] Explore, Glob, Grep 등 탐색을 시작하지 않는다
|
|
25
|
+
|
|
26
|
+
### A-2. 모호한 버그 요청 (영어)
|
|
27
|
+
```
|
|
28
|
+
find bugs in this project
|
|
29
|
+
```
|
|
30
|
+
- [ ] 되묻는다 (which file? what symptoms?)
|
|
31
|
+
|
|
32
|
+
### A-3. 모호한 리팩토링
|
|
33
|
+
```
|
|
34
|
+
코드 리팩토링 해줘
|
|
35
|
+
```
|
|
36
|
+
- [ ] 범위를 확인한다 (어떤 파일? 어떤 부분?)
|
|
37
|
+
|
|
38
|
+
### A-4. 모호한 테스트 요청
|
|
39
|
+
```
|
|
40
|
+
테스트 작성해줘
|
|
41
|
+
```
|
|
42
|
+
- [ ] 어떤 파일/함수에 대한 테스트인지 되묻는다
|
|
43
|
+
|
|
44
|
+
### A-5. 모호한 에러 보고
|
|
45
|
+
```
|
|
46
|
+
에러가 나
|
|
47
|
+
```
|
|
48
|
+
- [ ] 에러 메시지와 발생 파일을 물어본다
|
|
49
|
+
|
|
50
|
+
### A-6. 구체적 요청 → 바로 실행해야 함
|
|
51
|
+
```
|
|
52
|
+
package.json의 dependencies 섹션 보여줘
|
|
53
|
+
```
|
|
54
|
+
- [ ] 되묻지 않고 바로 파일을 읽는다
|
|
55
|
+
|
|
56
|
+
### A-7. 구체적 버그 요청 → 바로 실행해야 함
|
|
57
|
+
```
|
|
58
|
+
src/index.ts의 main 함수에서 에러 핸들링이 빠져있어. 확인해줘
|
|
59
|
+
```
|
|
60
|
+
- [ ] 되묻지 않고 해당 파일을 바로 읽는다
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## B. 모델 추천 (analyze_task 도구 호출)
|
|
65
|
+
|
|
66
|
+
### B-1. 단순 작업 → Haiku 추천
|
|
67
|
+
```
|
|
68
|
+
README.md에서 오타 하나 수정해줘. "recieve"를 "receive"로
|
|
69
|
+
```
|
|
70
|
+
- [ ] analyze_task 도구를 호출한다
|
|
71
|
+
- [ ] Haiku를 추천한다
|
|
72
|
+
|
|
73
|
+
### B-2. 중간 작업 → Sonnet 추천
|
|
74
|
+
```
|
|
75
|
+
src/components/LoginForm.tsx에 비밀번호 유효성 검사 추가해줘
|
|
76
|
+
```
|
|
77
|
+
- [ ] analyze_task 도구를 호출한다
|
|
78
|
+
- [ ] Sonnet을 추천한다
|
|
79
|
+
|
|
80
|
+
### B-3. 복잡한 작업 → Opus 추천 + Plan Mode 제안
|
|
81
|
+
```
|
|
82
|
+
인증 시스템을 JWT에서 세션 기반으로 전체 마이그레이션 해줘
|
|
83
|
+
```
|
|
84
|
+
- [ ] analyze_task 도구를 호출한다
|
|
85
|
+
- [ ] Opus를 추천한다
|
|
86
|
+
- [ ] Plan Mode를 먼저 쓰라고 제안한다
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## C. 세션 관리
|
|
91
|
+
|
|
92
|
+
### C-1. 주제 변경 감지
|
|
93
|
+
(먼저 아무 작업을 하나 한 후)
|
|
94
|
+
```
|
|
95
|
+
그건 됐고, 이제 CI/CD 파이프라인 설정해줘
|
|
96
|
+
```
|
|
97
|
+
- [ ] 새 세션을 시작하라고 제안한다
|
|
98
|
+
|
|
99
|
+
### C-2. 작업 완료 후 정리 제안
|
|
100
|
+
(아무 간단한 작업 완료 후 Claude가 "완료했습니다" 류의 답변을 한 후)
|
|
101
|
+
- [ ] /clear 또는 새 세션을 제안한다
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## D. 캐시 보호
|
|
106
|
+
|
|
107
|
+
### D-1. 모델 변경 경고
|
|
108
|
+
```
|
|
109
|
+
모델을 opus로 바꿔줘
|
|
110
|
+
```
|
|
111
|
+
- [ ] 캐시가 깨진다고 경고한다
|
|
112
|
+
- [ ] 새 세션에서 바꾸라고 안내한다
|
|
113
|
+
|
|
114
|
+
### D-2. CLAUDE.md 수정 경고
|
|
115
|
+
```
|
|
116
|
+
CLAUDE.md에 새로운 규칙 추가해줘
|
|
117
|
+
```
|
|
118
|
+
- [ ] 세션 시작 전에 수정하라고 경고한다 (캐시 브레이크)
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## E. 생산성
|
|
123
|
+
|
|
124
|
+
### E-1. 복잡한 작업 → Plan Mode 제안
|
|
125
|
+
```
|
|
126
|
+
데이터베이스 스키마를 PostgreSQL에서 MongoDB로 마이그레이션 계획 세워줘
|
|
127
|
+
```
|
|
128
|
+
- [ ] Plan Mode를 먼저 제안한다
|
|
129
|
+
|
|
130
|
+
### E-2. CLAUDE.md 없는 프로젝트에서 setup 제안
|
|
131
|
+
(CLAUDE.md가 없는 프로젝트에서)
|
|
132
|
+
```
|
|
133
|
+
이 프로젝트 최적화하고 싶어
|
|
134
|
+
```
|
|
135
|
+
- [ ] setup_project 도구를 호출하거나 CLAUDE.md 생성을 제안한다
|
|
136
|
+
|
|
137
|
+
### E-3. 비용 참조
|
|
138
|
+
```
|
|
139
|
+
Claude Code 모델별 가격이 어떻게 돼?
|
|
140
|
+
```
|
|
141
|
+
- [ ] cost_reference 도구를 호출한다
|
|
142
|
+
- [ ] 모델별 단가표를 보여준다
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## F. Output 효율
|
|
147
|
+
|
|
148
|
+
### F-1. 간결한 응답
|
|
149
|
+
(아무 구체적 작업 후)
|
|
150
|
+
- [ ] 불필요한 요약 없이 간결하게 답한다
|
|
151
|
+
- [ ] "제가 한 작업을 정리하면..." 같은 반복 없음
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 테스트 결과 요약
|
|
156
|
+
|
|
157
|
+
| 카테고리 | 통과 | 실패 | 비고 |
|
|
158
|
+
|---------|------|------|------|
|
|
159
|
+
| A. 구체성 강제 (7개) | /7 | /7 | |
|
|
160
|
+
| B. 모델 추천 (3개) | /3 | /3 | |
|
|
161
|
+
| C. 세션 관리 (2개) | /2 | /2 | |
|
|
162
|
+
| D. 캐시 보호 (2개) | /2 | /2 | |
|
|
163
|
+
| E. 생산성 (3개) | /3 | /3 | |
|
|
164
|
+
| F. Output 효율 (1개) | /1 | /1 | |
|
|
165
|
+
| **합계** | **/18** | **/18** | |
|
package/dist/index.js
CHANGED
|
@@ -41,17 +41,36 @@ This gate exists because vague requests cause tool explosion:
|
|
|
41
41
|
- Specific: 1-2 turns × 1-2 tool calls = fast ($0.10-0.30)
|
|
42
42
|
|
|
43
43
|
======================================================================
|
|
44
|
-
END OF CRITICAL GATE
|
|
44
|
+
END OF CRITICAL GATE — SPECIFICITY
|
|
45
45
|
======================================================================
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
+
======================================================================
|
|
55
74
|
|
|
56
75
|
## 3. SESSION DISCIPLINE
|
|
57
76
|
- ONE session = ONE focused task. When topic changes → suggest: "새 작업이니 새 세션에서 하는 게 효율적입니다"
|
package/package.json
CHANGED