@yeongjaeyou/claude-code-config 0.3.1 → 0.5.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.
- package/.claude/commands/ask-codex.md +131 -345
- package/.claude/commands/ask-deepwiki.md +15 -15
- package/.claude/commands/ask-gemini.md +134 -352
- package/.claude/commands/code-review.md +41 -40
- package/.claude/commands/commit-and-push.md +35 -36
- package/.claude/commands/council.md +318 -0
- package/.claude/commands/edit-notebook.md +34 -33
- package/.claude/commands/gh/create-issue-label.md +19 -17
- package/.claude/commands/gh/decompose-issue.md +66 -65
- package/.claude/commands/gh/init-project.md +46 -52
- package/.claude/commands/gh/post-merge.md +74 -79
- package/.claude/commands/gh/resolve-issue.md +38 -46
- package/.claude/commands/plan.md +15 -14
- package/.claude/commands/tm/convert-prd.md +53 -53
- package/.claude/commands/tm/post-merge.md +92 -112
- package/.claude/commands/tm/resolve-issue.md +148 -154
- package/.claude/commands/tm/review-prd-with-codex.md +272 -279
- package/.claude/commands/tm/sync-to-github.md +189 -212
- package/.claude/guidelines/cv-guidelines.md +30 -0
- package/.claude/guidelines/id-reference.md +34 -0
- package/.claude/guidelines/work-guidelines.md +17 -0
- package/.claude/skills/notion-md-uploader/SKILL.md +252 -0
- package/.claude/skills/notion-md-uploader/references/notion_block_types.md +323 -0
- package/.claude/skills/notion-md-uploader/references/setup_guide.md +156 -0
- package/.claude/skills/notion-md-uploader/scripts/__pycache__/markdown_parser.cpython-311.pyc +0 -0
- package/.claude/skills/notion-md-uploader/scripts/__pycache__/notion_client.cpython-311.pyc +0 -0
- package/.claude/skills/notion-md-uploader/scripts/__pycache__/notion_converter.cpython-311.pyc +0 -0
- package/.claude/skills/notion-md-uploader/scripts/markdown_parser.py +607 -0
- package/.claude/skills/notion-md-uploader/scripts/notion_client.py +337 -0
- package/.claude/skills/notion-md-uploader/scripts/notion_converter.py +477 -0
- package/.claude/skills/notion-md-uploader/scripts/upload_md.py +298 -0
- package/.claude/skills/skill-creator/LICENSE.txt +202 -0
- package/.claude/skills/skill-creator/SKILL.md +209 -0
- package/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/.claude/skills/skill-creator/scripts/quick_validate.py +65 -0
- package/.mcp.json +35 -0
- package/README.md +35 -0
- package/package.json +2 -1
|
@@ -1,438 +1,220 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Request Gemini review with Claude cross-check
|
|
3
3
|
---
|
|
4
4
|
|
|
5
|
-
# Gemini
|
|
5
|
+
# Gemini Review
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Request code review from Gemini CLI, cross-checked by Claude for consensus.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
- Gemini CLI 호출 (API 비용 없음, Pro 구독 활용)
|
|
11
|
-
- Gemini는 context/도구가 제한적이므로 Claude가 반드시 검증
|
|
12
|
-
- 불일치 시 Gemini에 재질문 (컨텍스트 재전달 방식)
|
|
13
|
-
- 최대 3회 핑퐁 후 합의 도출
|
|
9
|
+
**Core Principle:** Gemini has limited context/tools, so Claude validates all feedback. Disagreements trigger re-queries (max 3 rounds) until consensus.
|
|
14
10
|
|
|
15
11
|
---
|
|
16
12
|
|
|
17
|
-
##
|
|
13
|
+
## Arguments
|
|
18
14
|
|
|
19
|
-
`$ARGUMENTS
|
|
15
|
+
`$ARGUMENTS` parsing:
|
|
20
16
|
|
|
21
|
-
|
|
17
|
+
| Input | Mode | Action |
|
|
18
|
+
|-------|------|--------|
|
|
19
|
+
| (none) | General | AskUserQuestion for review type |
|
|
20
|
+
| `'text in quotes'` | Directed | Review in specified direction |
|
|
21
|
+
| `path/to/file` | File-focused | Review that file + dependencies |
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
- Claude가 현재 대화 맥락에서 관련 파일/변경사항을 자동 수집
|
|
25
|
-
- 범용 검토 (구현 방향성, 코드 품질, 설계 등)
|
|
26
|
-
|
|
27
|
-
2. **간단한 설명**: `/ask-gemini '프론트엔드 컴포넌트 설계 검토해줘'`
|
|
28
|
-
- 사용자가 지정한 방향으로 검토
|
|
29
|
-
- Claude가 해당 방향에 맞는 컨텍스트 수집
|
|
30
|
-
|
|
31
|
-
3. **파일 경로**: `/ask-gemini src/components/foo.tsx`
|
|
32
|
-
- 특정 파일을 중심으로 검토
|
|
33
|
-
- 해당 파일 + 관련 의존성 파일 포함
|
|
34
|
-
|
|
35
|
-
### 아규먼트 파싱 규칙
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
판단 기준 (우선순위 순):
|
|
39
|
-
1. 아규먼트가 실제 존재하는 파일/디렉토리 -> 파일 모드
|
|
40
|
-
2. 그 외 모든 경우 -> 텍스트 모드 (검토 방향 지시)
|
|
41
|
-
```
|
|
23
|
+
**Detection:** If argument is an existing file/directory path, use File-focused mode. Otherwise, treat as Directed review text.
|
|
42
24
|
|
|
43
25
|
---
|
|
44
26
|
|
|
45
|
-
##
|
|
27
|
+
## Context Gathering
|
|
46
28
|
|
|
47
|
-
###
|
|
48
|
-
- **Gemini CLI** 사용 (Bash 도구로 호출)
|
|
49
|
-
- 네트워크/웹서치는 사용하지 않음 (재현성과 안전을 위해)
|
|
50
|
-
- 재현성을 위해 컨텍스트를 프롬프트에 직접 포함
|
|
29
|
+
### Auto-collect
|
|
51
30
|
|
|
52
|
-
|
|
53
|
-
|
|
31
|
+
| Item | Source | Priority |
|
|
32
|
+
|------|--------|----------|
|
|
33
|
+
| Files from conversation | Read/Edit/Write history | Required |
|
|
34
|
+
| Git changes | `git diff`, `git status` | Required |
|
|
35
|
+
| CLAUDE.md | Project root | Required |
|
|
36
|
+
| Directory structure | `tree -L 2 -I 'node_modules\|__pycache__\|.git'` | Recommended |
|
|
37
|
+
| Recent commits | `git log --oneline -10` | Optional |
|
|
54
38
|
|
|
55
|
-
|
|
56
|
-
|------|----------|---------|
|
|
57
|
-
| 현재 대화에서 다룬 파일들 | 대화 히스토리에서 Read/Edit/Write 사용 이력 | 필수 |
|
|
58
|
-
| git 변경사항 | `git diff`, `git status` | 필수 |
|
|
59
|
-
| CLAUDE.md | 프로젝트 루트 | 필수 |
|
|
60
|
-
| 관련 디렉토리 구조 | `tree` 또는 `ls` | 권장 |
|
|
61
|
-
| 최근 커밋 히스토리 | `git log --oneline -10` | 선택 |
|
|
62
|
-
| 관련 파일 심볼 개요 | `get_symbols_overview` 또는 파일 읽기 | 선택 |
|
|
39
|
+
### Exclude (sensitive data)
|
|
63
40
|
|
|
64
|
-
|
|
65
|
-
-
|
|
66
|
-
|
|
41
|
+
**Files:** `.env*`, `secrets*`, `*credentials*`, `*token*`, `*.pem`, `*.key`
|
|
42
|
+
**Patterns:** `sk-[a-zA-Z0-9]+`, `AKIA[A-Z0-9]+`, `Bearer [...]`, `password[:=]...`
|
|
43
|
+
**Dirs:** `node_modules/`, `__pycache__/`, `.git/`, binaries, media files
|
|
67
44
|
|
|
68
|
-
###
|
|
45
|
+
### Size Management
|
|
69
46
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
- .env*, secrets*, *credentials*, *token*
|
|
75
|
-
- *.pem, *.key, *.p12, *.pfx
|
|
76
|
-
|
|
77
|
-
제외 콘텐츠 패턴 (정규식):
|
|
78
|
-
- API 키: sk-[a-zA-Z0-9]+, AKIA[A-Z0-9]+, ghp_[a-zA-Z0-9]+
|
|
79
|
-
- 토큰: Bearer [a-zA-Z0-9._-]+
|
|
80
|
-
- 비밀번호: password\s*[:=]\s*['"][^'"]+
|
|
81
|
-
|
|
82
|
-
기타 제외:
|
|
83
|
-
- 바이너리/미디어 파일 (*.mp4, *.png, *.jpg 등)
|
|
84
|
-
- node_modules/, __pycache__/, .git/
|
|
85
|
-
- 로그 파일 (*.log)
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### 5. 프롬프트 크기 관리 (토큰 초과 방지)
|
|
89
|
-
|
|
90
|
-
```
|
|
91
|
-
축약 정책 (우선순위 순):
|
|
92
|
-
1. git diff 우선 - 전체 파일 대신 변경분만 포함
|
|
93
|
-
2. 대용량 파일 - 500줄 초과 시 변경 주변 50줄만 발췌
|
|
94
|
-
3. 심볼 개요 - 매우 큰 파일은 함수/클래스 목록만
|
|
95
|
-
4. 최대 파일 수 - 한 번에 5개 파일까지만 (나머지는 요약)
|
|
96
|
-
|
|
97
|
-
타임아웃 발생 시:
|
|
98
|
-
- CLAUDE.md 핵심 섹션만 포함 (전체 대신)
|
|
99
|
-
- 디렉토리 구조 깊이 축소 (tree -L 1)
|
|
100
|
-
- 파일 본문 생략하고 diff만 전달
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### 6. 출력 형식 강제
|
|
104
|
-
- 구조화된 형식 명시 (테이블, 리스트)
|
|
105
|
-
- 라인 번호/파일 위치 참조 요구 (`nl -ba <file>` 형식 사용)
|
|
47
|
+
- Prefer `git diff` over full file content
|
|
48
|
+
- Large files (>500 lines): include only relevant sections (50 lines around changes)
|
|
49
|
+
- Max 5 files per prompt
|
|
50
|
+
- On timeout: reduce CLAUDE.md to key sections, use `tree -L 1`
|
|
106
51
|
|
|
107
52
|
---
|
|
108
53
|
|
|
109
|
-
##
|
|
110
|
-
|
|
111
|
-
### Step 1: 아규먼트 파싱
|
|
54
|
+
## Execution
|
|
112
55
|
|
|
113
|
-
|
|
114
|
-
$ARGUMENTS 분석:
|
|
115
|
-
- 없음 -> 범용 검토 모드
|
|
116
|
-
- 텍스트 (따옴표 포함) -> 해당 방향 검토 모드
|
|
117
|
-
- 파일 경로 -> 해당 파일 중심 검토 모드
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
아규먼트가 없으면 사용자에게 AskUserQuestion으로 검토 방향 확인:
|
|
121
|
-
- 구현 방향성 검토
|
|
122
|
-
- 코드 품질 검토
|
|
123
|
-
- 설계/아키텍처 검토
|
|
124
|
-
- 기타 (직접 입력)
|
|
125
|
-
|
|
126
|
-
### Step 2: 컨텍스트 자동 수집
|
|
127
|
-
|
|
128
|
-
#### 2.1 현재 대화에서 다룬 파일 목록 정리
|
|
129
|
-
- 이 대화에서 Read/Edit/Write 도구로 접근한 파일들
|
|
130
|
-
- 수정된 코드 내용 요약
|
|
131
|
-
|
|
132
|
-
#### 2.2 git 변경사항 수집
|
|
133
|
-
```bash
|
|
134
|
-
git status
|
|
135
|
-
git diff --stat
|
|
136
|
-
git diff [특정 파일] # 변경된 파일의 diff
|
|
137
|
-
```
|
|
56
|
+
### 1. Invoke Gemini
|
|
138
57
|
|
|
139
|
-
|
|
140
|
-
- 프로젝트 지침 전체 포함
|
|
58
|
+
Use heredoc to avoid quote/escape issues:
|
|
141
59
|
|
|
142
|
-
#### 2.4 관련 디렉토리 구조
|
|
143
60
|
```bash
|
|
144
|
-
|
|
61
|
+
cat <<'EOF' | gemini -p -
|
|
62
|
+
[REVIEW_PROMPT]
|
|
63
|
+
EOF
|
|
145
64
|
```
|
|
146
65
|
|
|
147
|
-
|
|
148
|
-
-
|
|
149
|
-
|
|
150
|
-
### Step 3: Gemini 프롬프트 구성
|
|
151
|
-
|
|
152
|
-
다음 템플릿을 사용하여 프롬프트 작성:
|
|
66
|
+
**Bash tool parameters:**
|
|
67
|
+
- `timeout`: 300000 (5 minutes)
|
|
68
|
+
- `description`: "Gemini code review request"
|
|
153
69
|
|
|
70
|
+
**Prompt template:**
|
|
154
71
|
```
|
|
155
|
-
##
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
## 검토 유형
|
|
159
|
-
[아규먼트 또는 사용자 선택에 따라]
|
|
160
|
-
- 구현 방향성 검토: 현재 접근 방식이 올바른지, 더 나은 방법이 있는지
|
|
161
|
-
- 코드 품질 검토: 코드 스타일, 버그 가능성, 리팩토링 제안
|
|
162
|
-
- 설계/아키텍처 검토: 전체적인 설계 패턴, 의존성 구조
|
|
163
|
-
|
|
164
|
-
## 프로젝트 컨텍스트
|
|
165
|
-
|
|
166
|
-
### 프로젝트 지침 (CLAUDE.md)
|
|
167
|
-
[CLAUDE.md 전문]
|
|
72
|
+
## Role
|
|
73
|
+
You are a code review expert reviewing work in progress.
|
|
168
74
|
|
|
169
|
-
|
|
170
|
-
[
|
|
75
|
+
## Review Type
|
|
76
|
+
[Implementation direction / Code quality / Architecture]
|
|
171
77
|
|
|
172
|
-
##
|
|
78
|
+
## Project Context
|
|
79
|
+
### CLAUDE.md
|
|
80
|
+
[Project guidelines]
|
|
173
81
|
|
|
174
|
-
###
|
|
175
|
-
[
|
|
82
|
+
### Directory Structure
|
|
83
|
+
[tree output]
|
|
176
84
|
|
|
177
|
-
|
|
178
|
-
|
|
85
|
+
## Review Target
|
|
86
|
+
### Current Work Summary
|
|
87
|
+
[Description of ongoing work]
|
|
179
88
|
|
|
180
|
-
###
|
|
181
|
-
[
|
|
89
|
+
### Changes
|
|
90
|
+
[git diff or file list]
|
|
182
91
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
2. 코드 품질: 버그 가능성, 예외 처리, 코드 스타일
|
|
186
|
-
3. 설계: 모듈 구조, 의존성, 확장성
|
|
187
|
-
4. 프로젝트 지침 준수: CLAUDE.md 컨벤션 준수 여부
|
|
92
|
+
### File Contents
|
|
93
|
+
[Key files with line numbers]
|
|
188
94
|
|
|
189
|
-
##
|
|
95
|
+
## Output Format (required)
|
|
190
96
|
|
|
191
|
-
###
|
|
192
|
-
- [
|
|
97
|
+
### Strengths
|
|
98
|
+
- [item]: [description] (file:line)
|
|
193
99
|
|
|
194
|
-
###
|
|
195
|
-
|
|
|
196
|
-
|
|
100
|
+
### Suggestions
|
|
101
|
+
| Item | Location | Issue | Solution |
|
|
102
|
+
|------|----------|-------|----------|
|
|
197
103
|
|
|
198
|
-
###
|
|
199
|
-
- [
|
|
104
|
+
### Risks
|
|
105
|
+
- [severity]: [description] (file:line)
|
|
200
106
|
|
|
201
|
-
###
|
|
202
|
-
- [
|
|
203
|
-
- [질문 2]
|
|
107
|
+
### Questions
|
|
108
|
+
- [question]
|
|
204
109
|
|
|
205
|
-
###
|
|
206
|
-
[1-2
|
|
110
|
+
### Summary
|
|
111
|
+
[1-2 sentence conclusion]
|
|
207
112
|
```
|
|
208
113
|
|
|
209
|
-
###
|
|
114
|
+
### 2. Parse Response
|
|
210
115
|
|
|
211
|
-
|
|
116
|
+
Extract sections: Strengths, Suggestions, Risks, Questions, Summary
|
|
212
117
|
|
|
213
|
-
|
|
214
|
-
cat <<'EOF' | gemini -p -
|
|
215
|
-
[Step 3에서 구성한 전체 프롬프트]
|
|
216
|
-
EOF
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
**Bash 도구 파라미터:**
|
|
220
|
-
- `timeout`: 300000 (5분)
|
|
221
|
-
- `description`: "Gemini 코드 검토 요청"
|
|
222
|
-
|
|
223
|
-
**에러 처리:**
|
|
224
|
-
- CLI 실패 시 stderr 캡처하여 사용자에게 보고
|
|
225
|
-
- 타임아웃 시 프롬프트 길이 축소 후 1회 재시도
|
|
226
|
-
|
|
227
|
-
### Step 5: Gemini 피드백 수신 및 파싱
|
|
228
|
-
|
|
229
|
-
Gemini 응답을 다음 구조로 정리:
|
|
230
|
-
- Strengths: 잘한 점 목록
|
|
231
|
-
- Suggestions: 개선 제안 테이블
|
|
232
|
-
- Risks: 위험 요소 목록
|
|
233
|
-
- Questions: 질문 사항
|
|
234
|
-
- Summary: 종합 평가
|
|
118
|
+
### 3. Claude Cross-check
|
|
235
119
|
|
|
236
|
-
|
|
120
|
+
Validate Gemini feedback against:
|
|
121
|
+
- Project context (did Gemini understand the codebase?)
|
|
122
|
+
- CLAUDE.md compliance
|
|
123
|
+
- Technical accuracy (is the suggestion implementable?)
|
|
124
|
+
- Existing patterns (does it match current codebase style?)
|
|
125
|
+
- Already-resolved issues (is Gemini pointing out something already fixed?)
|
|
237
126
|
|
|
238
|
-
|
|
127
|
+
Identify any incorrect claims with evidence.
|
|
239
128
|
|
|
240
|
-
|
|
241
|
-
- Gemini가 프로젝트 특성을 제대로 이해했는지
|
|
242
|
-
- CLAUDE.md 지침 준수 여부 재확인
|
|
129
|
+
### 4. Resolve Disagreements
|
|
243
130
|
|
|
244
|
-
|
|
245
|
-
- 제안된 개선 방안이 실제로 적용 가능한지
|
|
246
|
-
- 프로젝트 기술 스택과 호환되는지
|
|
247
|
-
|
|
248
|
-
3. **기존 코드베이스 검증**
|
|
249
|
-
- 제안이 기존 패턴과 일관성 있는지
|
|
250
|
-
- 이미 해결된 문제를 지적하지 않았는지
|
|
251
|
-
|
|
252
|
-
4. **Gemini 틀린 부분 식별**
|
|
253
|
-
- 검증 결과 틀린 내용 목록화
|
|
254
|
-
- 근거 준비 (실제 코드, 문서 등)
|
|
255
|
-
|
|
256
|
-
### Step 7: 불일치 확인 및 재검토 (최대 3회)
|
|
257
|
-
|
|
258
|
-
**불일치 항목이 있으면:**
|
|
259
|
-
|
|
260
|
-
새 Gemini CLI 호출하되, 이전 맥락을 프롬프트에 포함:
|
|
131
|
+
If discrepancies found, invoke Gemini again with context:
|
|
261
132
|
|
|
262
133
|
```
|
|
263
|
-
##
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
## 이전 검토 맥락
|
|
267
|
-
|
|
268
|
-
### 1차 검토 결과 요약
|
|
269
|
-
[Gemini 1차 응답 핵심 내용]
|
|
134
|
+
## Previous Review Summary
|
|
135
|
+
[Gemini 1st response key points]
|
|
270
136
|
|
|
271
|
-
|
|
272
|
-
[
|
|
137
|
+
## Claude Cross-check Results
|
|
138
|
+
[Discrepancies with evidence]
|
|
273
139
|
|
|
274
|
-
##
|
|
275
|
-
|
|
276
|
-
1. [
|
|
277
|
-
2. [
|
|
140
|
+
## Re-review Request
|
|
141
|
+
Reconsider only these items:
|
|
142
|
+
1. [item 1]
|
|
143
|
+
2. [item 2]
|
|
278
144
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
## 참고 정보
|
|
282
|
-
[필요시 추가 컨텍스트]
|
|
145
|
+
Provide corrections in the same output format.
|
|
283
146
|
```
|
|
284
147
|
|
|
285
|
-
|
|
286
|
-
-
|
|
287
|
-
-
|
|
288
|
-
- Gemini
|
|
289
|
-
|
|
290
|
-
### Step 8: 합의 결과 전달
|
|
148
|
+
**Exit conditions:**
|
|
149
|
+
- Consensus reached
|
|
150
|
+
- 3 rounds completed
|
|
151
|
+
- Gemini accepts Claude's evidence
|
|
291
152
|
|
|
292
|
-
|
|
153
|
+
### 5. Final Output
|
|
293
154
|
|
|
294
155
|
```markdown
|
|
295
|
-
## Gemini
|
|
156
|
+
## Gemini Review Result (Gemini + Claude Consensus)
|
|
296
157
|
|
|
297
|
-
###
|
|
298
|
-
-
|
|
299
|
-
-
|
|
300
|
-
-
|
|
158
|
+
### Process
|
|
159
|
+
- Review type: [type]
|
|
160
|
+
- Rounds: [N]
|
|
161
|
+
- Status: [Full consensus / Partial / Claude judgment]
|
|
301
162
|
|
|
302
|
-
###
|
|
303
|
-
|
|
|
304
|
-
|
|
163
|
+
### Valid Feedback
|
|
164
|
+
| Item | Description | Location | Source |
|
|
165
|
+
|------|-------------|----------|--------|
|
|
305
166
|
|
|
306
|
-
###
|
|
307
|
-
|
|
|
308
|
-
|
|
167
|
+
### Suggestions
|
|
168
|
+
| Item | Issue | Solution | Source |
|
|
169
|
+
|------|-------|----------|--------|
|
|
309
170
|
|
|
310
|
-
###
|
|
311
|
-
|
|
|
312
|
-
|
|
171
|
+
### Risks
|
|
172
|
+
| Severity | Description | Location |
|
|
173
|
+
|----------|-------------|----------|
|
|
313
174
|
|
|
314
|
-
###
|
|
315
|
-
| Gemini
|
|
316
|
-
|
|
175
|
+
### Corrections (Gemini errors)
|
|
176
|
+
| Gemini Claim | Actual | Evidence |
|
|
177
|
+
|--------------|--------|----------|
|
|
317
178
|
|
|
318
|
-
###
|
|
319
|
-
|
|
179
|
+
### Action Items
|
|
180
|
+
[Recommended next steps - use AskUserQuestion if choices needed]
|
|
320
181
|
|
|
321
|
-
###
|
|
322
|
-
[
|
|
182
|
+
### Summary
|
|
183
|
+
[Final conclusion]
|
|
323
184
|
```
|
|
324
185
|
|
|
325
186
|
---
|
|
326
187
|
|
|
327
|
-
##
|
|
188
|
+
## Error Handling
|
|
328
189
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
190
|
+
| Error | Response |
|
|
191
|
+
|-------|----------|
|
|
192
|
+
| No context | "No reviewable content found. Specify review direction." |
|
|
193
|
+
| CLI not installed | "Gemini CLI not installed. Run `npm install -g @google/gemini-cli` then `gemini auth`." |
|
|
194
|
+
| CLI failure | "Gemini CLI failed. Check `gemini auth` status." |
|
|
195
|
+
| Timeout | "Response timeout. Reducing prompt size and retrying." |
|
|
335
196
|
|
|
336
197
|
---
|
|
337
198
|
|
|
338
|
-
##
|
|
199
|
+
## Guidelines
|
|
339
200
|
|
|
340
|
-
-
|
|
341
|
-
-
|
|
342
|
-
- **
|
|
343
|
-
-
|
|
344
|
-
-
|
|
345
|
-
|
|
346
|
-
---
|
|
347
|
-
|
|
348
|
-
## 워크플로우 다이어그램
|
|
349
|
-
|
|
350
|
-
```
|
|
351
|
-
[Step 1: 아규먼트 파싱]
|
|
352
|
-
|
|
|
353
|
-
+-- 없음 -> AskUserQuestion으로 검토 유형 확인
|
|
354
|
-
+-- 텍스트 -> 해당 방향 검토
|
|
355
|
-
+-- 파일 경로 -> 해당 파일 중심 검토
|
|
356
|
-
|
|
|
357
|
-
v
|
|
358
|
-
[Step 2: 컨텍스트 자동 수집]
|
|
359
|
-
- 대화 히스토리에서 파일 목록
|
|
360
|
-
- git diff / status
|
|
361
|
-
- CLAUDE.md
|
|
362
|
-
- 디렉토리 구조
|
|
363
|
-
|
|
|
364
|
-
v
|
|
365
|
-
[Step 3: Gemini 프롬프트 구성]
|
|
366
|
-
|
|
|
367
|
-
v
|
|
368
|
-
[Step 4: Gemini CLI 호출] --------------------------------+
|
|
369
|
-
| cat <<'EOF' | gemini -p - |
|
|
370
|
-
v |
|
|
371
|
-
[Step 5: 피드백 파싱] |
|
|
372
|
-
| |
|
|
373
|
-
v |
|
|
374
|
-
[Step 6: Claude Cross-check] |
|
|
375
|
-
| |
|
|
376
|
-
v |
|
|
377
|
-
[Step 7: 불일치 있음?] |
|
|
378
|
-
| |
|
|
379
|
-
+-- YES & 반복 < 3 --> [새 CLI 호출 + 컨텍스트 재전달]-+
|
|
380
|
-
|
|
|
381
|
-
+-- NO 또는 반복 >= 3 --> [Step 8: 합의 결과 전달]
|
|
382
|
-
```
|
|
201
|
+
- Respond in user's language
|
|
202
|
+
- No emojis in code or documentation
|
|
203
|
+
- **Never assume unclear context - use AskUserQuestion**
|
|
204
|
+
- Code modifications require user confirmation
|
|
205
|
+
- Follow `@CLAUDE.md` project conventions
|
|
383
206
|
|
|
384
207
|
---
|
|
385
208
|
|
|
386
|
-
##
|
|
209
|
+
## Example
|
|
387
210
|
|
|
388
211
|
```bash
|
|
389
|
-
#
|
|
212
|
+
# General review
|
|
390
213
|
/ask-gemini
|
|
391
214
|
|
|
392
|
-
#
|
|
393
|
-
/ask-gemini '
|
|
394
|
-
/ask-gemini '이 구현 방향이 맞는지 확인해줘'
|
|
395
|
-
/ask-gemini '코드 품질 이슈 찾아줘'
|
|
396
|
-
|
|
397
|
-
# 특정 파일 검토
|
|
398
|
-
/ask-gemini src/components/video/video-player.tsx
|
|
399
|
-
/ask-gemini services/child_safety_processor.py
|
|
400
|
-
```
|
|
215
|
+
# Directed review
|
|
216
|
+
/ask-gemini 'Review error handling approach'
|
|
401
217
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
## 예상 결과물 예시
|
|
405
|
-
|
|
406
|
-
```markdown
|
|
407
|
-
## Gemini 검토 결과 (Gemini + Claude 합의)
|
|
408
|
-
|
|
409
|
-
### 검토 과정
|
|
410
|
-
- 검토 유형: 코드 품질 + 설계
|
|
411
|
-
- 핑퐁 횟수: 2회
|
|
412
|
-
- 합의 상태: 완전 합의
|
|
413
|
-
|
|
414
|
-
### [VALID] 유효한 피드백
|
|
415
|
-
| 항목 | 설명 | 위치 | 출처 |
|
|
416
|
-
|------|------|------|------|
|
|
417
|
-
| 에러 처리 양호 | try-catch로 API 오류 처리 | hooks/use-video-analysis.ts:45 | Gemini |
|
|
418
|
-
| 타입 안전성 | TypeScript 타입 명확히 정의 | components/vlm/types.ts | Gemini + Claude |
|
|
419
|
-
|
|
420
|
-
### [SUGGESTION] 개선 제안
|
|
421
|
-
| 항목 | 현재 문제 | 개선 방안 | 출처 |
|
|
422
|
-
|------|----------|----------|------|
|
|
423
|
-
| 메모이제이션 | 매 렌더링마다 객체 재생성 | useMemo로 최적화 | Gemini |
|
|
424
|
-
| 로딩 상태 | 로딩 중 UI 피드백 없음 | Skeleton 컴포넌트 추가 | Claude |
|
|
425
|
-
|
|
426
|
-
### [RISK] 주의 필요 사항
|
|
427
|
-
| 심각도 | 설명 | 위치 |
|
|
428
|
-
|--------|------|------|
|
|
429
|
-
| Medium | 대용량 파일 처리 시 메모리 이슈 가능성 | video-processor.py:120 |
|
|
430
|
-
|
|
431
|
-
### [CORRECTION] Gemini 오류 교정
|
|
432
|
-
| Gemini 주장 | 실제 상황 | 근거 |
|
|
433
|
-
|-------------|----------|------|
|
|
434
|
-
| useState 초기값 누락 | 이미 기본값 설정됨 | hooks/use-video-analysis.ts:12 확인 |
|
|
435
|
-
|
|
436
|
-
### [SUMMARY] 종합 결론
|
|
437
|
-
전반적으로 코드 품질 양호. 메모이제이션과 로딩 UI 개선 권장.
|
|
218
|
+
# File-focused review
|
|
219
|
+
/ask-gemini src/components/auth/login.tsx
|
|
438
220
|
```
|