@kood/claude-code 0.1.5 → 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 +105 -259
- 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/guides/best-practices.md +3 -8
- package/templates/tanstack-start/docs/guides/env-setup.md +3 -3
- 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 +13 -113
- 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 -73
- 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 +41 -172
- 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,145 +0,0 @@
|
|
|
1
|
-
현재 git 상태를 확인하고, 아래 규칙에 따라 작업을 진행해주세요.
|
|
2
|
-
|
|
3
|
-
**추가 지시사항**: $ARGUMENTS
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 실행 절차
|
|
8
|
-
|
|
9
|
-
### 추가 지시사항이 없는 경우 (기본 동작)
|
|
10
|
-
1. `git status`로 현재 상태 확인
|
|
11
|
-
2. `git diff`로 변경 내용 분석
|
|
12
|
-
3. 스테이징 안 된 변경사항 → `git add`
|
|
13
|
-
4. 커밋 안 된 변경사항 → 논리적 단위로 분리하여 `git commit`
|
|
14
|
-
5. 최종 `git status`로 완료 확인
|
|
15
|
-
|
|
16
|
-
### 추가 지시사항이 있는 경우
|
|
17
|
-
- 사용자의 지시사항을 우선적으로 따름
|
|
18
|
-
- 예: `/git push` → push 진행, `/git 특정파일만 커밋` → 해당 파일만 처리
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## ⛔ NEVER (절대 금지)
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
❌ 커밋에 "Generated with Claude Code" 포함
|
|
26
|
-
❌ 커밋에 "🤖" 또는 AI 관련 이모지 포함
|
|
27
|
-
❌ 커밋에 "Co-Authored-By:" 헤더 포함
|
|
28
|
-
❌ 커밋에 AI/봇이 작성했다는 어떤 표시도 포함
|
|
29
|
-
❌ 커밋 메시지 여러 줄 작성
|
|
30
|
-
❌ 커밋 메시지에 이모지 사용
|
|
31
|
-
❌ 커밋 메시지에 마침표(.) 사용
|
|
32
|
-
❌ 여러 작업을 하나의 커밋으로 퉁치기
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## ✅ ALWAYS (필수)
|
|
38
|
-
|
|
39
|
-
### 커밋 형식
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
<prefix>: <설명>
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**한 줄로 간결하게** 작성합니다. 본문이나 푸터는 작성하지 않습니다.
|
|
46
|
-
|
|
47
|
-
### ⭐ 커밋 분리 원칙
|
|
48
|
-
|
|
49
|
-
**하나의 커밋 = 하나의 논리적 변경 단위**
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
# ❌ 잘못된 방식: 모든 작업을 하나로 퉁침
|
|
53
|
-
git add .
|
|
54
|
-
git commit -m "feat: 여러 기능 추가"
|
|
55
|
-
|
|
56
|
-
# ✅ 올바른 방식: 논리적 단위로 분리
|
|
57
|
-
git add src/auth/
|
|
58
|
-
git commit -m "feat: 사용자 인증 기능 추가"
|
|
59
|
-
|
|
60
|
-
git add src/users/
|
|
61
|
-
git commit -m "feat: 사용자 관리 기능 추가"
|
|
62
|
-
|
|
63
|
-
git add docs/
|
|
64
|
-
git commit -m "docs: API 문서 업데이트"
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## 🏷 Prefix 목록
|
|
70
|
-
|
|
71
|
-
| Prefix | 용도 | 예시 |
|
|
72
|
-
|--------|------|------|
|
|
73
|
-
| `feat` | 새로운 기능 | `feat: 사용자 인증 기능 추가` |
|
|
74
|
-
| `fix` | 버그 수정 | `fix: 토큰 검증 오류 수정` |
|
|
75
|
-
| `refactor` | 리팩토링 | `refactor: 인증 로직 분리` |
|
|
76
|
-
| `style` | 코드 스타일 | `style: prettier 적용` |
|
|
77
|
-
| `docs` | 문서 수정 | `docs: API 문서 업데이트` |
|
|
78
|
-
| `test` | 테스트 | `test: 인증 테스트 추가` |
|
|
79
|
-
| `chore` | 빌드/설정 | `chore: 의존성 업데이트` |
|
|
80
|
-
| `perf` | 성능 개선 | `perf: 쿼리 최적화` |
|
|
81
|
-
| `ci` | CI/CD | `ci: GitHub Actions 추가` |
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## ✅ 올바른 예시
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
feat: 사용자 로그인 기능 추가
|
|
89
|
-
fix: 세션 만료 오류 수정
|
|
90
|
-
refactor: 서비스 클래스 구조 개선
|
|
91
|
-
docs: README 설치 가이드 추가
|
|
92
|
-
chore: 의존성 버전 업그레이드
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## ❌ 잘못된 예시
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
# prefix 없음
|
|
101
|
-
사용자 인증 기능 추가함
|
|
102
|
-
|
|
103
|
-
# 마침표 불필요
|
|
104
|
-
feat: 사용자 인증 추가.
|
|
105
|
-
|
|
106
|
-
# 대문자 사용
|
|
107
|
-
FEAT: 사용자 인증 추가
|
|
108
|
-
|
|
109
|
-
# scope 불필요
|
|
110
|
-
feat(auth): 인증 추가
|
|
111
|
-
|
|
112
|
-
# AI 작성 표시 (절대 금지!)
|
|
113
|
-
feat: 로그인 기능 추가
|
|
114
|
-
|
|
115
|
-
🤖 Generated with Claude Code
|
|
116
|
-
|
|
117
|
-
# Co-Author 표시 (절대 금지!)
|
|
118
|
-
feat: 로그인 기능 추가
|
|
119
|
-
|
|
120
|
-
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
121
|
-
|
|
122
|
-
# 여러 줄 본문 (금지)
|
|
123
|
-
feat: 로그인 기능 추가
|
|
124
|
-
|
|
125
|
-
- 이메일 인증 추가
|
|
126
|
-
- 세션 관리 구현
|
|
127
|
-
|
|
128
|
-
# 여러 작업을 하나로 퉁침 (금지)
|
|
129
|
-
feat: 로그인, 회원가입, 프로필 기능 추가
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
---
|
|
133
|
-
|
|
134
|
-
## 📦 커밋 분리 가이드
|
|
135
|
-
|
|
136
|
-
### 언제 커밋을 분리해야 하나요?
|
|
137
|
-
|
|
138
|
-
| 상황 | 커밋 분리 |
|
|
139
|
-
|------|----------|
|
|
140
|
-
| 서로 다른 기능 구현 | ✅ 분리 |
|
|
141
|
-
| 버그 수정 + 새 기능 | ✅ 분리 |
|
|
142
|
-
| 코드 변경 + 문서 변경 | ✅ 분리 |
|
|
143
|
-
| 리팩토링 + 기능 추가 | ✅ 분리 |
|
|
144
|
-
| 동일 기능의 관련 파일들 | 🔄 묶어도 됨 |
|
|
145
|
-
| 동일 기능의 타입 + 구현 | 🔄 묶어도 됨 |
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# MCP 도구 사용 가이드
|
|
2
|
-
|
|
3
|
-
## ⛔ 프로젝트 시작 전 필수 확인
|
|
4
|
-
|
|
5
|
-
### 1. Serena - 프로젝트 활성화 확인
|
|
6
|
-
```
|
|
7
|
-
mcp__serena__get_current_config 호출하여 현재 프로젝트 확인
|
|
8
|
-
→ 프로젝트 미활성화 시: mcp__serena__activate_project 실행
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
### 2. Sequential Thinking - 복잡한 문제 분석용
|
|
12
|
-
```
|
|
13
|
-
복잡한 로직, 아키텍처 설계, 디버깅 시 활용
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
### 3. sgrep - 코드베이스 검색용
|
|
17
|
-
```
|
|
18
|
-
❌ grep, rg 사용 금지
|
|
19
|
-
✅ sgrep 사용 필수
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## 필수 MCP 도구
|
|
25
|
-
|
|
26
|
-
### sgrep (코드 검색)
|
|
27
|
-
```
|
|
28
|
-
❌ 금지: grep, rg, find
|
|
29
|
-
✅ 필수: sgrep
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
**사용 상황**:
|
|
33
|
-
- 함수/클래스 정의 찾기
|
|
34
|
-
- 특정 패턴 검색
|
|
35
|
-
- 코드베이스 탐색
|
|
36
|
-
|
|
37
|
-
### Sequential Thinking (복잡한 분석)
|
|
38
|
-
**사용 상황**:
|
|
39
|
-
- 복잡한 로직 분석
|
|
40
|
-
- 아키텍처 설계
|
|
41
|
-
- 디버깅 및 문제 해결
|
|
42
|
-
- 멀티스텝 작업 계획
|
|
43
|
-
|
|
44
|
-
### Context7 (라이브러리 문서)
|
|
45
|
-
**사용 상황**:
|
|
46
|
-
- Commander 사용법 확인
|
|
47
|
-
- fs-extra API 확인
|
|
48
|
-
- prompts 옵션 확인
|
|
49
|
-
- 라이브러리 버전별 차이 확인
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## 상황별 MCP 사용
|
|
54
|
-
|
|
55
|
-
| 상황 | 사용 MCP |
|
|
56
|
-
|------|----------|
|
|
57
|
-
| 코드 검색 | sgrep |
|
|
58
|
-
| 복잡한 분석 | Sequential Thinking |
|
|
59
|
-
| 라이브러리 문서 | Context7 |
|
|
60
|
-
| 프로젝트 컨텍스트 | Serena |
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: gemini-review
|
|
3
|
-
description: Google Gemini CLI를 활용한 코드 리뷰 및 계획 검증 스킬. 구현 계획 검토, 코드 리뷰, 아키텍처 논의 시 Gemini를 세컨드 오피니언으로 활용. NPX CLI 도구, Node.js 등 특화 체크리스트 지원. 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
|
-
- NPX CLI 도구, Node.js 프로젝트 특화 피드백
|
|
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. **기술 스택** (선택): `npx-cli`, `nodejs`, `general`
|
|
37
|
-
3. **리뷰 대상**: 실제 계획, 코드, 아키텍처 설명
|
|
38
|
-
|
|
39
|
-
### Step 2: 체크리스트 로드
|
|
40
|
-
|
|
41
|
-
기술 스택에 따라 `references/checklists.md`에서 해당 체크리스트 로드:
|
|
42
|
-
- **NPX CLI**: Commander.js, prompts, fs-extra, 파일 시스템 작업
|
|
43
|
-
- **Node.js**: 비동기 패턴, 에러 처리, 스트림
|
|
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/cli.ts | gemini -m gemini-2.5-pro -p "이 NPX CLI 코드를 보안 이슈, 버그, 베스트 프랙티스 관점에서 리뷰해주세요. 구체적인 라인별 피드백을 제공해주세요." --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
|
-
기술 스택: NPX CLI + Commander.js + fs-extra
|
|
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`: 리뷰 타입별 프롬프트 템플릿
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
# 기술 스택별 리뷰 체크리스트
|
|
2
|
-
|
|
3
|
-
## NPX CLI 체크리스트
|
|
4
|
-
|
|
5
|
-
### Commander.js 사용
|
|
6
|
-
- [ ] program.name(), description(), version() 설정
|
|
7
|
-
- [ ] 명령어와 옵션이 명확히 정의됨
|
|
8
|
-
- [ ] 필수 옵션과 선택 옵션이 구분됨
|
|
9
|
-
- [ ] 도움말 텍스트가 명확하고 유용함
|
|
10
|
-
- [ ] 기본값이 적절히 설정됨
|
|
11
|
-
- [ ] 인수 유효성 검사 구현
|
|
12
|
-
|
|
13
|
-
### 인터랙티브 프롬프트 (prompts)
|
|
14
|
-
- [ ] 사용자 입력에 적절한 프롬프트 타입 사용
|
|
15
|
-
- [ ] 유효성 검사 함수 구현
|
|
16
|
-
- [ ] 기본값 제공
|
|
17
|
-
- [ ] 취소 처리 (Ctrl+C)
|
|
18
|
-
- [ ] 초기값과 힌트 텍스트 제공
|
|
19
|
-
- [ ] 조건부 프롬프트 적절히 처리
|
|
20
|
-
|
|
21
|
-
### 파일 시스템 작업 (fs-extra)
|
|
22
|
-
- [ ] fs-extra 메서드 올바르게 사용 (copy, ensureDir, remove 등)
|
|
23
|
-
- [ ] 파일/디렉토리 존재 여부 확인
|
|
24
|
-
- [ ] 에러 처리 구현 (ENOENT, EACCES 등)
|
|
25
|
-
- [ ] 비동기 작업에 async/await 사용
|
|
26
|
-
- [ ] 경로 조합에 path.join() 사용
|
|
27
|
-
- [ ] 상대 경로와 절대 경로 적절히 처리
|
|
28
|
-
|
|
29
|
-
### 출력 및 로깅
|
|
30
|
-
- [ ] 콘솔 출력이 명확하고 포맷팅됨
|
|
31
|
-
- [ ] 색상 출력 적절히 사용 (chalk 등)
|
|
32
|
-
- [ ] 진행 상황 표시 (스피너, 프로그레스 바)
|
|
33
|
-
- [ ] 에러 메시지가 도움이 됨
|
|
34
|
-
- [ ] 디버그 모드 지원
|
|
35
|
-
- [ ] 조용한 모드 옵션 제공
|
|
36
|
-
|
|
37
|
-
### 에러 처리
|
|
38
|
-
- [ ] try-catch로 비동기 에러 처리
|
|
39
|
-
- [ ] 사용자 친화적 에러 메시지
|
|
40
|
-
- [ ] 적절한 exit 코드 사용 (0: 성공, 1: 에러)
|
|
41
|
-
- [ ] 스택 트레이스는 디버그 모드에서만 표시
|
|
42
|
-
- [ ] 복구 가능한 에러와 치명적 에러 구분
|
|
43
|
-
|
|
44
|
-
### 타입 안전성 (TypeScript)
|
|
45
|
-
- [ ] CLI 옵션 타입 정의
|
|
46
|
-
- [ ] 설정 객체 인터페이스 정의
|
|
47
|
-
- [ ] 함수 반환 타입 명시
|
|
48
|
-
- [ ] `any` 타입 사용 최소화
|
|
49
|
-
- [ ] 타입 가드 적절히 사용
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## Node.js 체크리스트
|
|
54
|
-
|
|
55
|
-
### 비동기 패턴
|
|
56
|
-
- [ ] async/await 일관되게 사용
|
|
57
|
-
- [ ] Promise 체인 적절히 처리
|
|
58
|
-
- [ ] 병렬 작업에 Promise.all() 사용
|
|
59
|
-
- [ ] 에러 전파 올바르게 처리
|
|
60
|
-
- [ ] 콜백 지옥 회피
|
|
61
|
-
|
|
62
|
-
### 파일 시스템
|
|
63
|
-
- [ ] 비동기 fs 메서드 사용 (fs.promises)
|
|
64
|
-
- [ ] 스트림으로 대용량 파일 처리
|
|
65
|
-
- [ ] 파일 핸들 적절히 닫기
|
|
66
|
-
- [ ] 임시 파일 정리
|
|
67
|
-
- [ ] 심볼릭 링크 적절히 처리
|
|
68
|
-
|
|
69
|
-
### 프로세스 관리
|
|
70
|
-
- [ ] 자식 프로세스 적절히 생성 (spawn vs exec)
|
|
71
|
-
- [ ] 프로세스 종료 시그널 처리 (SIGTERM, SIGINT)
|
|
72
|
-
- [ ] stdin/stdout/stderr 스트림 처리
|
|
73
|
-
- [ ] exit 코드 올바르게 설정
|
|
74
|
-
- [ ] 환경 변수 적절히 사용
|
|
75
|
-
|
|
76
|
-
### 의존성 관리
|
|
77
|
-
- [ ] package.json 메타데이터 완전함
|
|
78
|
-
- [ ] dependencies vs devDependencies 구분
|
|
79
|
-
- [ ] peerDependencies 필요 시 명시
|
|
80
|
-
- [ ] bin 필드로 실행 파일 지정
|
|
81
|
-
- [ ] engines 필드로 Node.js 버전 명시
|
|
82
|
-
|
|
83
|
-
### 보안
|
|
84
|
-
- [ ] 사용자 입력 검증
|
|
85
|
-
- [ ] 경로 순회 공격 방지
|
|
86
|
-
- [ ] 환경 변수로 민감 정보 관리
|
|
87
|
-
- [ ] 의존성 취약점 확인
|
|
88
|
-
- [ ] 파일 권한 적절히 설정
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## 범용 체크리스트
|
|
93
|
-
|
|
94
|
-
### 코드 품질
|
|
95
|
-
- [ ] 단일 책임 원칙 준수
|
|
96
|
-
- [ ] DRY - 불필요한 중복 없음
|
|
97
|
-
- [ ] 함수/메서드가 집중적이고 작음
|
|
98
|
-
- [ ] 명확한 명명 규칙
|
|
99
|
-
- [ ] 주석은 "why"를 설명, "what"이 아님
|
|
100
|
-
|
|
101
|
-
### 로직 및 정확성
|
|
102
|
-
- [ ] 엣지 케이스 처리 (빈 값, null, 경계값)
|
|
103
|
-
- [ ] 포괄적인 에러 처리
|
|
104
|
-
- [ ] 레이스 컨디션 고려
|
|
105
|
-
- [ ] 입력 유효성 검사
|
|
106
|
-
- [ ] 반환값 확인
|
|
107
|
-
|
|
108
|
-
### 보안
|
|
109
|
-
- [ ] 하드코딩된 시크릿 없음
|
|
110
|
-
- [ ] 사용자 입력 살균
|
|
111
|
-
- [ ] 명령어 인젝션 방지
|
|
112
|
-
- [ ] 경로 순회 방지
|
|
113
|
-
- [ ] 적절한 파일 권한
|
|
114
|
-
|
|
115
|
-
### 성능
|
|
116
|
-
- [ ] 스케일에 적합한 시간 복잡도
|
|
117
|
-
- [ ] 적절한 공간 복잡도
|
|
118
|
-
- [ ] 불필요한 반복 없음
|
|
119
|
-
- [ ] 대용량 파일에 스트림 사용
|
|
120
|
-
- [ ] 적절한 캐싱 고려
|
|
121
|
-
|
|
122
|
-
### 유지보수성
|
|
123
|
-
- [ ] 테스트 가능한 코드
|
|
124
|
-
- [ ] 최소한의 정당화된 의존성
|
|
125
|
-
- [ ] 설정 외부화
|
|
126
|
-
- [ ] 디버깅을 위한 로깅
|
|
127
|
-
- [ ] 도움이 되는 에러 메시지
|
|
128
|
-
|
|
129
|
-
### 문서화
|
|
130
|
-
- [ ] README.md 완비
|
|
131
|
-
- [ ] 설치 및 사용법 안내
|
|
132
|
-
- [ ] CLI 도움말 텍스트 명확
|
|
133
|
-
- [ ] 예제 제공
|
|
134
|
-
- [ ] 환경 변수 문서화
|