@kood/claude-code 0.1.6 → 0.1.7
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 +21 -243
- package/package.json +1 -1
- package/templates/hono/CLAUDE.md +10 -6
- package/templates/hono/docs/deployment/index.md +5 -0
- package/templates/hono/docs/library/hono/index.md +6 -0
- package/templates/hono/docs/library/prisma/index.md +3 -0
- package/templates/npx/CLAUDE.md +8 -2
- package/templates/tanstack-start/CLAUDE.md +103 -255
- package/templates/tanstack-start/docs/deployment/cloudflare.md +37 -424
- package/templates/tanstack-start/docs/deployment/index.md +57 -286
- package/templates/tanstack-start/docs/deployment/nitro.md +36 -318
- package/templates/tanstack-start/docs/deployment/railway.md +40 -409
- package/templates/tanstack-start/docs/deployment/vercel.md +43 -465
- package/templates/tanstack-start/docs/design/accessibility.md +56 -326
- package/templates/tanstack-start/docs/design/color.md +37 -179
- package/templates/tanstack-start/docs/design/components.md +77 -311
- package/templates/tanstack-start/docs/design/index.md +24 -87
- package/templates/tanstack-start/docs/design/safe-area.md +51 -250
- package/templates/tanstack-start/docs/design/spacing.md +57 -276
- package/templates/tanstack-start/docs/design/tailwind-setup.md +45 -359
- package/templates/tanstack-start/docs/design/typography.md +40 -284
- package/templates/tanstack-start/docs/library/better-auth/2fa.md +27 -115
- package/templates/tanstack-start/docs/library/better-auth/advanced.md +22 -105
- package/templates/tanstack-start/docs/library/better-auth/index.md +17 -66
- package/templates/tanstack-start/docs/library/better-auth/plugins.md +11 -88
- package/templates/tanstack-start/docs/library/better-auth/session.md +12 -92
- package/templates/tanstack-start/docs/library/better-auth/setup.md +9 -91
- package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +30 -358
- package/templates/tanstack-start/docs/library/prisma/config.md +27 -327
- package/templates/tanstack-start/docs/library/prisma/crud.md +46 -174
- package/templates/tanstack-start/docs/library/prisma/index.md +23 -113
- package/templates/tanstack-start/docs/library/prisma/relations.md +31 -153
- package/templates/tanstack-start/docs/library/prisma/schema.md +40 -217
- package/templates/tanstack-start/docs/library/prisma/setup.md +12 -112
- package/templates/tanstack-start/docs/library/prisma/transactions.md +20 -110
- package/templates/tanstack-start/docs/library/tanstack-query/index.md +12 -99
- package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +28 -107
- package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +44 -146
- package/templates/tanstack-start/docs/library/tanstack-query/setup.md +11 -70
- package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +33 -127
- package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +49 -149
- package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +19 -112
- package/templates/tanstack-start/docs/library/tanstack-start/index.md +33 -80
- package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +28 -106
- package/templates/tanstack-start/docs/library/tanstack-start/routing.md +21 -118
- package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +34 -246
- package/templates/tanstack-start/docs/library/tanstack-start/setup.md +6 -39
- package/templates/tanstack-start/docs/library/zod/basic-types.md +33 -145
- package/templates/tanstack-start/docs/library/zod/complex-types.md +32 -156
- package/templates/tanstack-start/docs/library/zod/index.md +22 -150
- package/templates/tanstack-start/docs/library/zod/transforms.md +20 -129
- package/templates/tanstack-start/docs/library/zod/validation.md +39 -155
- package/templates/hono/docs/commands/git.md +0 -145
- package/templates/hono/docs/mcp/context7.md +0 -106
- package/templates/hono/docs/mcp/index.md +0 -176
- package/templates/hono/docs/mcp/sequential-thinking.md +0 -101
- package/templates/hono/docs/mcp/serena.md +0 -269
- package/templates/hono/docs/mcp/sgrep.md +0 -105
- package/templates/hono/docs/skills/gemini-review/SKILL.md +0 -220
- package/templates/hono/docs/skills/gemini-review/references/checklists.md +0 -136
- package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +0 -303
- package/templates/npx/docs/commands/git.md +0 -145
- package/templates/npx/docs/mcp/index.md +0 -60
- package/templates/npx/docs/skills/gemini-review/SKILL.md +0 -220
- package/templates/npx/docs/skills/gemini-review/references/checklists.md +0 -134
- package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +0 -301
- package/templates/tanstack-start/docs/commands/git.md +0 -145
- package/templates/tanstack-start/docs/mcp/context7.md +0 -204
- package/templates/tanstack-start/docs/mcp/index.md +0 -177
- package/templates/tanstack-start/docs/mcp/sequential-thinking.md +0 -180
- package/templates/tanstack-start/docs/mcp/serena.md +0 -269
- package/templates/tanstack-start/docs/mcp/sgrep.md +0 -174
- package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +0 -220
- package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +0 -144
- package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +0 -292
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
# Serena MCP Server
|
|
2
|
-
|
|
3
|
-
> **Purpose**: 시맨틱 코드 이해, 프로젝트 메모리, 세션 지속성을 위한 MCP 서버
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 프로젝트 시작 전 필수 확인
|
|
8
|
-
|
|
9
|
-
프로젝트 작업을 시작하기 전에 **반드시** Serena가 활성화되어 있는지 확인해야 합니다.
|
|
10
|
-
|
|
11
|
-
### 1. 현재 설정 확인
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
mcp__serena__get_current_config
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
**확인 사항:**
|
|
18
|
-
- `Active project`: 현재 작업할 프로젝트명이 표시되는지 확인
|
|
19
|
-
- 프로젝트가 `Available projects` 목록에 있는지 확인
|
|
20
|
-
|
|
21
|
-
### 2. 프로젝트 활성화
|
|
22
|
-
|
|
23
|
-
프로젝트가 활성화되지 않은 경우:
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
mcp__serena__activate_project({ project: "프로젝트명" })
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### 3. 온보딩 확인
|
|
30
|
-
|
|
31
|
-
새 프로젝트의 경우 온보딩이 필요할 수 있습니다:
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
mcp__serena__check_onboarding_performed
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
온보딩이 필요한 경우:
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
mcp__serena__onboarding
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## 핵심 기능
|
|
46
|
-
|
|
47
|
-
### 심볼 탐색 (Symbol Navigation)
|
|
48
|
-
|
|
49
|
-
파일 내 심볼(클래스, 함수, 변수 등) 개요 확인:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
mcp__serena__get_symbols_overview({ relative_path: "src/index.ts" })
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
특정 심볼 검색:
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
mcp__serena__find_symbol({
|
|
59
|
-
name_path_pattern: "MyClass/myMethod",
|
|
60
|
-
include_body: true,
|
|
61
|
-
depth: 1
|
|
62
|
-
})
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
심볼 참조 찾기:
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
mcp__serena__find_referencing_symbols({
|
|
69
|
-
name_path: "MyClass",
|
|
70
|
-
relative_path: "src/my-class.ts"
|
|
71
|
-
})
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### 코드 수정 (Code Modification)
|
|
75
|
-
|
|
76
|
-
심볼 본문 교체:
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
mcp__serena__replace_symbol_body({
|
|
80
|
-
name_path: "MyClass/myMethod",
|
|
81
|
-
relative_path: "src/my-class.ts",
|
|
82
|
-
body: "새로운 코드 본문"
|
|
83
|
-
})
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
심볼 뒤에 코드 삽입:
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
mcp__serena__insert_after_symbol({
|
|
90
|
-
name_path: "MyClass",
|
|
91
|
-
relative_path: "src/my-class.ts",
|
|
92
|
-
body: "\n\nexport const newFunction = () => {}"
|
|
93
|
-
})
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
심볼 앞에 코드 삽입:
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
mcp__serena__insert_before_symbol({
|
|
100
|
-
name_path: "MyClass",
|
|
101
|
-
relative_path: "src/my-class.ts",
|
|
102
|
-
body: "import { Something } from './something'\n\n"
|
|
103
|
-
})
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
심볼 이름 변경 (전체 코드베이스):
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
mcp__serena__rename_symbol({
|
|
110
|
-
name_path: "oldFunctionName",
|
|
111
|
-
relative_path: "src/utils.ts",
|
|
112
|
-
new_name: "newFunctionName"
|
|
113
|
-
})
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### 파일 탐색 (File Navigation)
|
|
117
|
-
|
|
118
|
-
디렉토리 목록:
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
mcp__serena__list_dir({
|
|
122
|
-
relative_path: "src",
|
|
123
|
-
recursive: false
|
|
124
|
-
})
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
파일 검색:
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
mcp__serena__find_file({
|
|
131
|
-
file_mask: "*.ts",
|
|
132
|
-
relative_path: "src"
|
|
133
|
-
})
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
패턴 검색:
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
mcp__serena__search_for_pattern({
|
|
140
|
-
substring_pattern: "createServerFn",
|
|
141
|
-
relative_path: "src/services",
|
|
142
|
-
context_lines_before: 2,
|
|
143
|
-
context_lines_after: 2
|
|
144
|
-
})
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### 메모리 관리 (Memory Management)
|
|
148
|
-
|
|
149
|
-
프로젝트 관련 정보를 메모리에 저장하여 세션 간 유지:
|
|
150
|
-
|
|
151
|
-
메모리 목록 확인:
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
mcp__serena__list_memories
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
메모리 읽기:
|
|
158
|
-
|
|
159
|
-
```
|
|
160
|
-
mcp__serena__read_memory({ memory_file_name: "architecture.md" })
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
메모리 작성:
|
|
164
|
-
|
|
165
|
-
```
|
|
166
|
-
mcp__serena__write_memory({
|
|
167
|
-
memory_file_name: "decisions.md",
|
|
168
|
-
content: "# 주요 결정 사항\n\n- API 설계: REST 대신 Server Functions 사용"
|
|
169
|
-
})
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
메모리 수정:
|
|
173
|
-
|
|
174
|
-
```
|
|
175
|
-
mcp__serena__edit_memory({
|
|
176
|
-
memory_file_name: "decisions.md",
|
|
177
|
-
needle: "REST 대신",
|
|
178
|
-
repl: "REST API 대신",
|
|
179
|
-
mode: "literal"
|
|
180
|
-
})
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
메모리 삭제:
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
mcp__serena__delete_memory({ memory_file_name: "outdated.md" })
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
### 사고 도구 (Thinking Tools)
|
|
190
|
-
|
|
191
|
-
수집된 정보 검토:
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
mcp__serena__think_about_collected_information
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
작업 목표 준수 확인:
|
|
198
|
-
|
|
199
|
-
```
|
|
200
|
-
mcp__serena__think_about_task_adherence
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
작업 완료 여부 확인:
|
|
204
|
-
|
|
205
|
-
```
|
|
206
|
-
mcp__serena__think_about_whether_you_are_done
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## 사용 시나리오
|
|
212
|
-
|
|
213
|
-
### 시나리오 1: 새 프로젝트 시작
|
|
214
|
-
|
|
215
|
-
```
|
|
216
|
-
1. get_current_config → 현재 상태 확인
|
|
217
|
-
2. activate_project → 프로젝트 활성화
|
|
218
|
-
3. check_onboarding_performed → 온보딩 필요 여부 확인
|
|
219
|
-
4. onboarding → 필요시 온보딩 진행
|
|
220
|
-
5. list_memories → 기존 메모리 확인
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
### 시나리오 2: 기존 프로젝트 재개
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
1. get_current_config → 프로젝트 활성화 확인
|
|
227
|
-
2. list_memories → 이전 세션 컨텍스트 확인
|
|
228
|
-
3. read_memory → 필요한 메모리 읽기
|
|
229
|
-
4. 작업 진행
|
|
230
|
-
5. write_memory → 중요 결정/진행 상황 저장
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### 시나리오 3: 대규모 리팩토링
|
|
234
|
-
|
|
235
|
-
```
|
|
236
|
-
1. get_symbols_overview → 파일 구조 파악
|
|
237
|
-
2. find_symbol → 수정할 심볼 찾기
|
|
238
|
-
3. find_referencing_symbols → 영향받는 코드 확인
|
|
239
|
-
4. replace_symbol_body → 심볼 수정
|
|
240
|
-
5. rename_symbol → 필요시 이름 변경
|
|
241
|
-
6. think_about_whether_you_are_done → 완료 확인
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
---
|
|
245
|
-
|
|
246
|
-
## Best Practices
|
|
247
|
-
|
|
248
|
-
### 1. 항상 프로젝트 활성화 확인
|
|
249
|
-
|
|
250
|
-
작업 시작 전 `get_current_config`로 올바른 프로젝트가 활성화되어 있는지 확인하세요.
|
|
251
|
-
|
|
252
|
-
### 2. 심볼 도구 우선 사용
|
|
253
|
-
|
|
254
|
-
전체 파일을 읽지 말고, `get_symbols_overview`와 `find_symbol`을 사용하여 필요한 부분만 확인하세요.
|
|
255
|
-
|
|
256
|
-
### 3. 메모리 적극 활용
|
|
257
|
-
|
|
258
|
-
중요한 결정, 아키텍처 정보, 작업 진행 상황을 메모리에 저장하여 세션 간 컨텍스트를 유지하세요.
|
|
259
|
-
|
|
260
|
-
### 4. 사고 도구 활용
|
|
261
|
-
|
|
262
|
-
복잡한 작업 중에는 `think_about_*` 도구를 사용하여 진행 상황을 검토하세요.
|
|
263
|
-
|
|
264
|
-
---
|
|
265
|
-
|
|
266
|
-
## 참고 자료
|
|
267
|
-
|
|
268
|
-
- [Serena GitHub](https://github.com/oraios/serena)
|
|
269
|
-
- [MCP Protocol](https://modelcontextprotocol.io)
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
# sgrep - 의미론적 코드 검색
|
|
2
|
-
|
|
3
|
-
> 자연어로 코드베이스를 검색하는 로컬 시맨틱 검색 엔진
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 🚨 필수 사용 규칙
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
✅ 코드베이스 검색 시 기본 grep 대신 sgrep 사용
|
|
11
|
-
✅ 자연어 쿼리로 코드 위치 파악
|
|
12
|
-
✅ JSON 출력으로 결과 파싱
|
|
13
|
-
❌ grep, rg 등 기존 검색 도구 사용 금지
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## 🚀 Quick Reference
|
|
19
|
-
|
|
20
|
-
### 기본 검색
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
# 자연어로 코드 검색
|
|
24
|
-
sgrep search "where do we handle authentication?"
|
|
25
|
-
|
|
26
|
-
# 결과 수 제한
|
|
27
|
-
sgrep search "user validation logic" -n 5
|
|
28
|
-
|
|
29
|
-
# JSON 형식 출력
|
|
30
|
-
sgrep search "database connection setup" --json
|
|
31
|
-
|
|
32
|
-
# 전체 코드 청크 포함
|
|
33
|
-
sgrep search "error handling patterns" -c
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### 인덱싱
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
# 인덱스 강제 재구성
|
|
40
|
-
sgrep index --force
|
|
41
|
-
|
|
42
|
-
# 파일시스템 감시 (실시간 업데이트)
|
|
43
|
-
sgrep watch . --debounce-ms 200
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 설정
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
# 기본 설정 초기화
|
|
50
|
-
sgrep config --init
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## 주요 기능
|
|
56
|
-
|
|
57
|
-
### 벡터 + 그래프 검색
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
장점:
|
|
61
|
-
- 밀집 벡터 임베딩으로 의미 기반 검색
|
|
62
|
-
- 구조적 코드 그래프 분석
|
|
63
|
-
- 자연어 쿼리 지원
|
|
64
|
-
- 정확한 코드 위치 파악
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### 로컬 처리
|
|
68
|
-
|
|
69
|
-
```
|
|
70
|
-
특징:
|
|
71
|
-
- 모든 처리가 로컬에서 수행
|
|
72
|
-
- 프라이버시 보장
|
|
73
|
-
- 외부 API 호출 없음
|
|
74
|
-
- 오프라인 사용 가능
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### 에이전트 친화적
|
|
78
|
-
|
|
79
|
-
```
|
|
80
|
-
통합:
|
|
81
|
-
- 안정적인 CLI 인터페이스
|
|
82
|
-
- JSON 출력 지원
|
|
83
|
-
- Claude Code 플러그인 호환
|
|
84
|
-
- 자동화 스크립트 연동
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## 사용 예시
|
|
90
|
-
|
|
91
|
-
### 예시 1: 인증 로직 찾기
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
sgrep search "authentication middleware implementation"
|
|
95
|
-
|
|
96
|
-
# 결과:
|
|
97
|
-
# src/middleware/auth.ts:15 - authMiddleware function
|
|
98
|
-
# src/functions/auth.ts:8 - session validation
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### 예시 2: 에러 핸들링 패턴
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
sgrep search "how are API errors handled" --json
|
|
105
|
-
|
|
106
|
-
# JSON 결과로 파싱하여 분석
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### 예시 3: 데이터베이스 쿼리
|
|
110
|
-
|
|
111
|
-
```bash
|
|
112
|
-
sgrep search "user data fetching with prisma" -c
|
|
113
|
-
|
|
114
|
-
# 전체 코드 블록 포함하여 컨텍스트 파악
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
---
|
|
118
|
-
|
|
119
|
-
## 옵션 요약
|
|
120
|
-
|
|
121
|
-
| 옵션 | 설명 | 기본값 |
|
|
122
|
-
|------|------|--------|
|
|
123
|
-
| `-n, --limit` | 반환 결과 수 | 10 |
|
|
124
|
-
| `-c, --context` | 전체 청크 내용 포함 | false |
|
|
125
|
-
| `--json` | JSON 형식 출력 | false |
|
|
126
|
-
| `--force` | 인덱스 강제 재구성 | false |
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## Sequential Thinking과 함께 사용
|
|
131
|
-
|
|
132
|
-
```
|
|
133
|
-
복잡한 코드 분석 시:
|
|
134
|
-
|
|
135
|
-
1. sgrep로 관련 코드 위치 파악
|
|
136
|
-
↓
|
|
137
|
-
2. Sequential Thinking으로 코드 흐름 분석
|
|
138
|
-
↓
|
|
139
|
-
3. Context7로 라이브러리 API 확인
|
|
140
|
-
↓
|
|
141
|
-
4. 수정 구현
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## 설치
|
|
147
|
-
|
|
148
|
-
### Claude Code Plugin 설치 (권장)
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
# Plugin 추가
|
|
152
|
-
/plugin marketplace add rika-labs/sgrep
|
|
153
|
-
|
|
154
|
-
# 설치
|
|
155
|
-
/plugin install sgrep
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### 수동 설치
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
# 간편 설치
|
|
162
|
-
curl -fsSL https://raw.githubusercontent.com/rika-labs/sgrep/main/scripts/install.sh | sh
|
|
163
|
-
|
|
164
|
-
# Cargo로 설치
|
|
165
|
-
cargo install --path .
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## 참고
|
|
171
|
-
|
|
172
|
-
- [sgrep GitHub](https://github.com/Rika-Labs/sgrep)
|
|
173
|
-
- 로컬 처리로 프라이버시 보장
|
|
174
|
-
- 자연어 쿼리로 직관적 검색
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gemini-review
|
|
3
|
-
description: Google Gemini CLI를 활용한 코드 리뷰 및 계획 검증 스킬. 구현 계획 검토, 코드 리뷰, 아키텍처 논의 시 Gemini를 세컨드 오피니언으로 활용. TanStack Start, FastAPI 등 특화 체크리스트 지원. gemini-2.5-pro 모델 사용 (무료: 60req/min, 1000req/day).
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Gemini 리뷰 스킬
|
|
7
|
-
|
|
8
|
-
## 개요
|
|
9
|
-
|
|
10
|
-
Claude가 컨텍스트를 준비하고 Gemini가 독립적인 검증을 제공하는 듀얼 AI 리뷰 워크플로우. 결과는 항상 Gemini 원본 응답과 Claude의 종합 액션 플랜 두 섹션으로 제공.
|
|
11
|
-
|
|
12
|
-
**모델**: `gemini-2.5-pro` (고정)
|
|
13
|
-
**비용**: 무료 티어 (60 req/min, 1000 req/day)
|
|
14
|
-
|
|
15
|
-
## 사용 시점
|
|
16
|
-
|
|
17
|
-
- 코딩 전 구현 계획 검증
|
|
18
|
-
- 완성된 코드의 버그, 보안, 베스트 프랙티스 리뷰
|
|
19
|
-
- 아키텍처 결정에 대한 세컨드 AI 의견
|
|
20
|
-
- TanStack Start, FastAPI 프로젝트 특화 피드백
|
|
21
|
-
|
|
22
|
-
## 워크플로우 타입
|
|
23
|
-
|
|
24
|
-
| 타입 | 목적 | 사용 시점 |
|
|
25
|
-
|------|------|-----------|
|
|
26
|
-
| **plan** | 구현 계획 검증 | 개발 시작 전 |
|
|
27
|
-
| **code** | 완성 코드 리뷰 | 기능 구현 후 |
|
|
28
|
-
| **architecture** | 시스템 설계 논의 | 설계 단계 또는 리팩토링 시 |
|
|
29
|
-
|
|
30
|
-
## 실행 프로세스
|
|
31
|
-
|
|
32
|
-
### Step 1: 사용자 컨텍스트 수집
|
|
33
|
-
|
|
34
|
-
실행 전 수집할 정보:
|
|
35
|
-
1. **리뷰 타입**: `plan`, `code`, `architecture`
|
|
36
|
-
2. **기술 스택** (선택): `tanstack-start`, `fastapi`, `general`
|
|
37
|
-
3. **리뷰 대상**: 실제 계획, 코드, 아키텍처 설명
|
|
38
|
-
|
|
39
|
-
### Step 2: 체크리스트 로드
|
|
40
|
-
|
|
41
|
-
기술 스택에 따라 `references/checklists.md`에서 해당 체크리스트 로드:
|
|
42
|
-
- **TanStack Start**: 라우팅, 서버 함수, 데이터 페칭, SSR/CSR
|
|
43
|
-
- **FastAPI**: API 설계, Pydantic 모델, 비동기 패턴, 보안
|
|
44
|
-
- **General**: 범용 베스트 프랙티스
|
|
45
|
-
|
|
46
|
-
### Step 3: Gemini 명령어 구성 및 실행
|
|
47
|
-
|
|
48
|
-
`references/prompt-templates.md`에서 적절한 프롬프트 템플릿 로드 후 실행:
|
|
49
|
-
|
|
50
|
-
**인라인 프롬프트:**
|
|
51
|
-
```bash
|
|
52
|
-
gemini -m gemini-2.5-pro -p "{constructed_prompt}" --output-format json
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
**파일 내용 리뷰:**
|
|
56
|
-
```bash
|
|
57
|
-
cat {file_path} | gemini -m gemini-2.5-pro -p "{review_instructions}" --output-format json
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
**멀티라인 프롬프트 (heredoc):**
|
|
61
|
-
```bash
|
|
62
|
-
gemini -m gemini-2.5-pro --output-format json -p "$(cat << 'EOF'
|
|
63
|
-
{constructed_prompt}
|
|
64
|
-
EOF
|
|
65
|
-
)"
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### Step 4: JSON 응답 파싱
|
|
69
|
-
|
|
70
|
-
Gemini 응답 구조:
|
|
71
|
-
```json
|
|
72
|
-
{
|
|
73
|
-
"response": "실제 리뷰 내용",
|
|
74
|
-
"stats": {
|
|
75
|
-
"models": { ... },
|
|
76
|
-
"tools": { ... }
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
`response` 필드에서 리뷰 내용 추출. `jq` 사용:
|
|
82
|
-
```bash
|
|
83
|
-
result=$(gemini -m gemini-2.5-pro -p "..." --output-format json)
|
|
84
|
-
echo "$result" | jq -r '.response'
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### Step 5: 결과를 두 섹션으로 제시
|
|
88
|
-
|
|
89
|
-
**중요**: 항상 두 개의 명확히 구분된 섹션으로 결과 제시:
|
|
90
|
-
|
|
91
|
-
#### 섹션 A: Gemini 원본 응답
|
|
92
|
-
Gemini의 완전한 응답을 수정 없이 제시. 사용자에게 Gemini가 발견한 내용을 그대로 보여줌.
|
|
93
|
-
|
|
94
|
-
#### 섹션 B: Claude 분석 및 액션 플랜
|
|
95
|
-
Gemini 피드백을 기반으로 Claude가 제공:
|
|
96
|
-
|
|
97
|
-
1. **요약** (2-3문장)
|
|
98
|
-
- 핵심 발견 사항
|
|
99
|
-
- 전체 평가
|
|
100
|
-
|
|
101
|
-
2. **액션 아이템** (우선순위 목록)
|
|
102
|
-
- 🔴 심각: 진행 전 반드시 수정
|
|
103
|
-
- 🟡 중요: 조속히 해결 필요
|
|
104
|
-
- 🟢 경미: 개선하면 좋음
|
|
105
|
-
|
|
106
|
-
3. **바로 적용 가능한 코드** (해당 시)
|
|
107
|
-
- 각 이슈에 대한 실제 코드 수정안
|
|
108
|
-
- 필요 시 before/after 비교 포함
|
|
109
|
-
|
|
110
|
-
## 출력 형식 템플릿
|
|
111
|
-
|
|
112
|
-
```markdown
|
|
113
|
-
---
|
|
114
|
-
## 📋 Gemini 리뷰 결과
|
|
115
|
-
|
|
116
|
-
### A. Gemini 응답 (원본)
|
|
117
|
-
|
|
118
|
-
{gemini_response_verbatim}
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
### B. Claude 분석
|
|
123
|
-
|
|
124
|
-
#### 요약
|
|
125
|
-
{2-3문장 개요}
|
|
126
|
-
|
|
127
|
-
#### 액션 아이템
|
|
128
|
-
|
|
129
|
-
🔴 **심각**
|
|
130
|
-
- 이슈: {설명}
|
|
131
|
-
- 수정: {해결책}
|
|
132
|
-
|
|
133
|
-
🟡 **중요**
|
|
134
|
-
- 이슈: {설명}
|
|
135
|
-
- 수정: {해결책}
|
|
136
|
-
|
|
137
|
-
🟢 **경미**
|
|
138
|
-
- 이슈: {설명}
|
|
139
|
-
- 수정: {해결책}
|
|
140
|
-
|
|
141
|
-
#### 바로 적용 가능한 코드
|
|
142
|
-
|
|
143
|
-
**{이슈명}**
|
|
144
|
-
```{language}
|
|
145
|
-
{fixed_code}
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## 명령어 예시
|
|
152
|
-
|
|
153
|
-
### 계획 리뷰
|
|
154
|
-
```bash
|
|
155
|
-
gemini -m gemini-2.5-pro --output-format json -p "$(cat << 'EOF'
|
|
156
|
-
[계획 리뷰 요청]
|
|
157
|
-
이 구현 계획의 완전성과 잠재적 문제를 검토해주세요:
|
|
158
|
-
|
|
159
|
-
{plan_content}
|
|
160
|
-
|
|
161
|
-
확인 사항: 로직 오류, 누락된 엣지 케이스, 아키텍처 결함, 보안 우려.
|
|
162
|
-
구체적이고 실행 가능한 피드백을 제공해주세요.
|
|
163
|
-
EOF
|
|
164
|
-
)"
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### 코드 리뷰 (파일 파이핑)
|
|
168
|
-
```bash
|
|
169
|
-
cat src/routes/api/auth.ts | gemini -m gemini-2.5-pro -p "이 TanStack Start 인증 코드를 보안 이슈, 버그, 베스트 프랙티스 관점에서 리뷰해주세요. 구체적인 라인별 피드백을 제공해주세요." --output-format json
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### 아키텍처 리뷰
|
|
173
|
-
```bash
|
|
174
|
-
gemini -m gemini-2.5-pro --output-format json -p "$(cat << 'EOF'
|
|
175
|
-
[아키텍처 리뷰]
|
|
176
|
-
시스템: {system_name}
|
|
177
|
-
기술 스택: TanStack Start + FastAPI + AWS
|
|
178
|
-
|
|
179
|
-
{architecture_description}
|
|
180
|
-
|
|
181
|
-
평가 항목: 확장성, 신뢰성, 유지보수성, 보안, 비용 효율성.
|
|
182
|
-
트레이드오프 분석과 함께 개선안을 제시해주세요.
|
|
183
|
-
EOF
|
|
184
|
-
)"
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
## 환경 호환성
|
|
188
|
-
|
|
189
|
-
| 환경 | 실행 방법 |
|
|
190
|
-
|------|-----------|
|
|
191
|
-
| Claude Code | 직접 bash 실행 |
|
|
192
|
-
| Claude (Web/Desktop) | `bash_tool` 사용 |
|
|
193
|
-
|
|
194
|
-
명령어 문법은 모든 환경에서 동일.
|
|
195
|
-
|
|
196
|
-
## 에러 처리
|
|
197
|
-
|
|
198
|
-
Gemini 에러 발생 시:
|
|
199
|
-
1. 사용자에게 에러 메시지 표시
|
|
200
|
-
2. 일반적인 문제 확인:
|
|
201
|
-
- 할당량 초과 (60/min 또는 1000/day 한도)
|
|
202
|
-
- 네트워크 연결
|
|
203
|
-
- 잘못된 프롬프트 형식
|
|
204
|
-
3. 재시도 또는 대안 제안
|
|
205
|
-
|
|
206
|
-
## 할당량 관리
|
|
207
|
-
|
|
208
|
-
무료 티어 한도:
|
|
209
|
-
- 분당 60 요청
|
|
210
|
-
- 일당 1000 요청
|
|
211
|
-
|
|
212
|
-
할당량 절약:
|
|
213
|
-
- 관련 리뷰를 단일 프롬프트로 결합
|
|
214
|
-
- 구체적이고 집중된 리뷰 요청 사용
|
|
215
|
-
- 중복 리뷰 회피
|
|
216
|
-
|
|
217
|
-
## 참조 파일
|
|
218
|
-
|
|
219
|
-
- `references/checklists.md`: 기술 스택별 리뷰 체크리스트
|
|
220
|
-
- `references/prompt-templates.md`: 리뷰 타입별 프롬프트 템플릿
|