@kood/claude-code 0.1.2 → 0.1.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.
Files changed (61) hide show
  1. package/dist/index.js +12 -3
  2. package/package.json +2 -2
  3. package/templates/hono/CLAUDE.md +20 -2
  4. package/templates/hono/docs/architecture/architecture.md +909 -0
  5. package/templates/hono/docs/deployment/cloudflare.md +537 -190
  6. package/templates/hono/docs/deployment/docker.md +517 -0
  7. package/templates/hono/docs/deployment/index.md +181 -213
  8. package/templates/hono/docs/deployment/railway.md +416 -0
  9. package/templates/hono/docs/deployment/vercel.md +572 -0
  10. package/templates/hono/docs/git/git.md +285 -0
  11. package/templates/hono/docs/library/ai-sdk/index.md +427 -0
  12. package/templates/hono/docs/library/ai-sdk/openrouter.md +479 -0
  13. package/templates/hono/docs/library/ai-sdk/providers.md +468 -0
  14. package/templates/hono/docs/library/ai-sdk/streaming.md +447 -0
  15. package/templates/hono/docs/library/ai-sdk/structured-output.md +493 -0
  16. package/templates/hono/docs/library/ai-sdk/tools.md +513 -0
  17. package/templates/hono/docs/library/hono/env-setup.md +458 -0
  18. package/templates/hono/docs/library/hono/index.md +1 -0
  19. package/templates/hono/docs/library/pino/index.md +437 -0
  20. package/templates/hono/docs/library/prisma/cloudflare-d1.md +503 -0
  21. package/templates/hono/docs/library/prisma/config.md +362 -0
  22. package/templates/hono/docs/library/prisma/index.md +86 -13
  23. package/templates/hono/docs/skills/gemini-review/SKILL.md +116 -116
  24. package/templates/hono/docs/skills/gemini-review/references/checklists.md +125 -125
  25. package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +191 -191
  26. package/templates/npx/CLAUDE.md +309 -0
  27. package/templates/npx/docs/git/git.md +307 -0
  28. package/templates/npx/docs/library/commander/index.md +164 -0
  29. package/templates/npx/docs/library/fs-extra/index.md +171 -0
  30. package/templates/npx/docs/library/prompts/index.md +253 -0
  31. package/templates/npx/docs/mcp/index.md +60 -0
  32. package/templates/npx/docs/skills/gemini-review/SKILL.md +220 -0
  33. package/templates/npx/docs/skills/gemini-review/references/checklists.md +134 -0
  34. package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +301 -0
  35. package/templates/tanstack-start/CLAUDE.md +43 -5
  36. package/templates/tanstack-start/docs/architecture/architecture.md +134 -4
  37. package/templates/tanstack-start/docs/deployment/cloudflare.md +234 -51
  38. package/templates/tanstack-start/docs/deployment/index.md +322 -32
  39. package/templates/tanstack-start/docs/deployment/nitro.md +201 -20
  40. package/templates/tanstack-start/docs/deployment/railway.md +305 -153
  41. package/templates/tanstack-start/docs/deployment/vercel.md +353 -78
  42. package/templates/tanstack-start/docs/git/{index.md → git.md} +81 -7
  43. package/templates/tanstack-start/docs/guides/best-practices.md +203 -1
  44. package/templates/tanstack-start/docs/guides/env-setup.md +450 -0
  45. package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +472 -0
  46. package/templates/tanstack-start/docs/library/ai-sdk/index.md +264 -0
  47. package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +371 -0
  48. package/templates/tanstack-start/docs/library/ai-sdk/providers.md +403 -0
  49. package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +320 -0
  50. package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +454 -0
  51. package/templates/tanstack-start/docs/library/ai-sdk/tools.md +473 -0
  52. package/templates/tanstack-start/docs/library/pino/index.md +320 -0
  53. package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +404 -0
  54. package/templates/tanstack-start/docs/library/prisma/config.md +377 -0
  55. package/templates/tanstack-start/docs/library/prisma/index.md +3 -1
  56. package/templates/tanstack-start/docs/library/prisma/schema.md +123 -25
  57. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +80 -2
  58. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +116 -116
  59. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +138 -144
  60. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +186 -187
  61. package/templates/hono/docs/git/index.md +0 -180
@@ -1,76 +1,76 @@
1
1
  ---
2
2
  name: gemini-review
3
- description: This skill orchestrates code review and plan validation using Google Gemini CLI. It should be used when users want to validate implementation plans, review completed code, or discuss architecture decisions with Gemini as a second opinion. Supports FastAPI, Next.js, and general tech stacks with specialized checklists. Uses gemini-3-pro-preview model with free tier (60 req/min, 1000 req/day).
3
+ description: Google Gemini CLI 활용한 코드 리뷰 계획 검증 스킬. 구현 계획 검토, 코드 리뷰, 아키텍처 논의 Gemini 세컨드 오피니언으로 활용. TanStack Start, FastAPI 특화 체크리스트 지원. gemini-2.5-pro 모델 사용 (무료: 60req/min, 1000req/day).
4
4
  ---
5
5
 
6
- # Gemini Review Skill
6
+ # Gemini 리뷰 스킬
7
7
 
8
- ## Overview
8
+ ## 개요
9
9
 
10
- This skill enables a dual-AI review workflow where Claude prepares context and Gemini provides independent validation. The output always includes both Gemini's raw feedback and Claude's synthesized action plan.
10
+ Claude가 컨텍스트를 준비하고 Gemini가 독립적인 검증을 제공하는 듀얼 AI 리뷰 워크플로우. 결과는 항상 Gemini 원본 응답과 Claude의 종합 액션 플랜 섹션으로 제공.
11
11
 
12
- **Model**: `gemini-3-pro-preview` (fixed)
13
- **Cost**: Free tier (60 requests/min, 1000 requests/day)
12
+ **모델**: `gemini-2.5-pro` (고정)
13
+ **비용**: 무료 티어 (60 req/min, 1000 req/day)
14
14
 
15
- ## When to Use
15
+ ## 사용 시점
16
16
 
17
- - Validating implementation plans before coding
18
- - Reviewing completed code for bugs, security, and best practices
19
- - Discussing architecture decisions with a second AI perspective
20
- - Getting specialized feedback for FastAPI or Next.js projects
17
+ - 코딩 구현 계획 검증
18
+ - 완성된 코드의 버그, 보안, 베스트 프랙티스 리뷰
19
+ - 아키텍처 결정에 대한 세컨드 AI 의견
20
+ - TanStack Start, FastAPI 프로젝트 특화 피드백
21
21
 
22
- ## Workflow Types
22
+ ## 워크플로우 타입
23
23
 
24
- | Type | Purpose | When to Use |
25
- |------|---------|-------------|
26
- | **plan** | Validate implementation plan | Before starting development |
27
- | **code** | Review completed code | After implementing features |
28
- | **architecture** | Discuss system design | During design phase or refactoring |
24
+ | 타입 | 목적 | 사용 시점 |
25
+ |------|------|-----------|
26
+ | **plan** | 구현 계획 검증 | 개발 시작 |
27
+ | **code** | 완성 코드 리뷰 | 기능 구현 |
28
+ | **architecture** | 시스템 설계 논의 | 설계 단계 또는 리팩토링 |
29
29
 
30
- ## Execution Process
30
+ ## 실행 프로세스
31
31
 
32
- ### Step 1: Gather Context from User
32
+ ### Step 1: 사용자 컨텍스트 수집
33
33
 
34
- Before executing, collect:
35
- 1. **Review type**: `plan`, `code`, or `architecture`
36
- 2. **Tech stack** (optional): `fastapi`, `nextjs`, or `general`
37
- 3. **Content to review**: The actual plan, code, or architecture description
34
+ 실행 수집할 정보:
35
+ 1. **리뷰 타입**: `plan`, `code`, `architecture`
36
+ 2. **기술 스택** (선택): `tanstack-start`, `fastapi`, `general`
37
+ 3. **리뷰 대상**: 실제 계획, 코드, 아키텍처 설명
38
38
 
39
- ### Step 2: Load Appropriate Checklist
39
+ ### Step 2: 체크리스트 로드
40
40
 
41
- Based on tech stack, load the corresponding checklist from `references/checklists.md`:
42
- - FastAPI: API design, Pydantic models, async patterns, security
43
- - Next.js: SSR/SSG, routing, state management, performance
44
- - General: Universal best practices
41
+ 기술 스택에 따라 `references/checklists.md`에서 해당 체크리스트 로드:
42
+ - **TanStack Start**: 라우팅, 서버 함수, 데이터 페칭, SSR/CSR
43
+ - **FastAPI**: API 설계, Pydantic 모델, 비동기 패턴, 보안
44
+ - **General**: 범용 베스트 프랙티스
45
45
 
46
- ### Step 3: Build and Execute Gemini Command
46
+ ### Step 3: Gemini 명령어 구성 실행
47
47
 
48
- Load the appropriate prompt template from `references/prompt-templates.md` and execute:
48
+ `references/prompt-templates.md`에서 적절한 프롬프트 템플릿 로드 후 실행:
49
49
 
50
- **For inline prompts:**
50
+ **인라인 프롬프트:**
51
51
  ```bash
52
- gemini -m gemini-3-pro-preview -p "{constructed_prompt}" --output-format json
52
+ gemini -m gemini-2.5-pro -p "{constructed_prompt}" --output-format json
53
53
  ```
54
54
 
55
- **For file content review:**
55
+ **파일 내용 리뷰:**
56
56
  ```bash
57
- cat {file_path} | gemini -m gemini-3-pro-preview -p "{review_instructions}" --output-format json
57
+ cat {file_path} | gemini -m gemini-2.5-pro -p "{review_instructions}" --output-format json
58
58
  ```
59
59
 
60
- **For multi-line prompts (heredoc):**
60
+ **멀티라인 프롬프트 (heredoc):**
61
61
  ```bash
62
- gemini -m gemini-3-pro-preview --output-format json -p "$(cat << 'EOF'
62
+ gemini -m gemini-2.5-pro --output-format json -p "$(cat << 'EOF'
63
63
  {constructed_prompt}
64
64
  EOF
65
65
  )"
66
66
  ```
67
67
 
68
- ### Step 4: Parse JSON Response
68
+ ### Step 4: JSON 응답 파싱
69
69
 
70
- Gemini returns JSON with this structure:
70
+ Gemini 응답 구조:
71
71
  ```json
72
72
  {
73
- "response": "The actual review content",
73
+ "response": "실제 리뷰 내용",
74
74
  "stats": {
75
75
  "models": { ... },
76
76
  "tools": { ... }
@@ -78,69 +78,69 @@ Gemini returns JSON with this structure:
78
78
  }
79
79
  ```
80
80
 
81
- Extract the review content from the `response` field. Use `jq` for parsing:
81
+ `response` 필드에서 리뷰 내용 추출. `jq` 사용:
82
82
  ```bash
83
- result=$(gemini -m gemini-3-pro-preview -p "..." --output-format json)
83
+ result=$(gemini -m gemini-2.5-pro -p "..." --output-format json)
84
84
  echo "$result" | jq -r '.response'
85
85
  ```
86
86
 
87
- ### Step 5: Present Results in Two Sections
87
+ ### Step 5: 결과를 섹션으로 제시
88
88
 
89
- **CRITICAL**: Always present results in two clearly separated sections:
89
+ **중요**: 항상 개의 명확히 구분된 섹션으로 결과 제시:
90
90
 
91
- #### Section A: Gemini Raw Response
92
- Present Gemini's complete response without modification. This shows the user exactly what Gemini found.
91
+ #### 섹션 A: Gemini 원본 응답
92
+ Gemini 완전한 응답을 수정 없이 제시. 사용자에게 Gemini가 발견한 내용을 그대로 보여줌.
93
93
 
94
- #### Section B: Claude's Analysis & Action Plan
95
- Based on Gemini's feedback, Claude provides:
94
+ #### 섹션 B: Claude 분석 액션 플랜
95
+ Gemini 피드백을 기반으로 Claude 제공:
96
96
 
97
- 1. **Summary** (2-3 sentences)
98
- - Key findings
99
- - Overall assessment
97
+ 1. **요약** (2-3문장)
98
+ - 핵심 발견 사항
99
+ - 전체 평가
100
100
 
101
- 2. **Action Items** (prioritized list)
102
- - 🔴 Critical: Must fix before proceeding
103
- - 🟡 Important: Should address soon
104
- - 🟢 Minor: Nice to have improvements
101
+ 2. **액션 아이템** (우선순위 목록)
102
+ - 🔴 심각: 진행 반드시 수정
103
+ - 🟡 중요: 조속히 해결 필요
104
+ - 🟢 경미: 개선하면 좋음
105
105
 
106
- 3. **Ready-to-Apply Code** (when applicable)
107
- - Provide actual code fixes for each issue
108
- - Include before/after comparison when helpful
106
+ 3. **바로 적용 가능한 코드** (해당 )
107
+ - 이슈에 대한 실제 코드 수정안
108
+ - 필요 before/after 비교 포함
109
109
 
110
- ## Output Format Template
110
+ ## 출력 형식 템플릿
111
111
 
112
112
  ```markdown
113
113
  ---
114
- ## 📋 Gemini Review Results
114
+ ## 📋 Gemini 리뷰 결과
115
115
 
116
- ### A. Gemini Response (Raw)
116
+ ### A. Gemini 응답 (원본)
117
117
 
118
118
  {gemini_response_verbatim}
119
119
 
120
120
  ---
121
121
 
122
- ### B. Claude's Analysis
122
+ ### B. Claude 분석
123
123
 
124
- #### Summary
125
- {2-3 sentence overview}
124
+ #### 요약
125
+ {2-3문장 개요}
126
126
 
127
- #### Action Items
127
+ #### 액션 아이템
128
128
 
129
- 🔴 **Critical**
130
- - Issue: {description}
131
- - Fix: {solution}
129
+ 🔴 **심각**
130
+ - 이슈: {설명}
131
+ - 수정: {해결책}
132
132
 
133
- 🟡 **Important**
134
- - Issue: {description}
135
- - Fix: {solution}
133
+ 🟡 **중요**
134
+ - 이슈: {설명}
135
+ - 수정: {해결책}
136
136
 
137
- 🟢 **Minor**
138
- - Issue: {description}
139
- - Fix: {solution}
137
+ 🟢 **경미**
138
+ - 이슈: {설명}
139
+ - 수정: {해결책}
140
140
 
141
- #### Ready-to-Apply Code
141
+ #### 바로 적용 가능한 코드
142
142
 
143
- **{issue_name}**
143
+ **{이슈명}**
144
144
  ```{language}
145
145
  {fixed_code}
146
146
  ```
@@ -148,73 +148,73 @@ Based on Gemini's feedback, Claude provides:
148
148
  ---
149
149
  ```
150
150
 
151
- ## Command Examples
151
+ ## 명령어 예시
152
152
 
153
- ### Plan Review
153
+ ### 계획 리뷰
154
154
  ```bash
155
- gemini -m gemini-3-pro-preview --output-format json -p "$(cat << 'EOF'
156
- [PLAN REVIEW REQUEST]
157
- Review this implementation plan for completeness and potential issues:
155
+ gemini -m gemini-2.5-pro --output-format json -p "$(cat << 'EOF'
156
+ [계획 리뷰 요청]
157
+ 구현 계획의 완전성과 잠재적 문제를 검토해주세요:
158
158
 
159
159
  {plan_content}
160
160
 
161
- Check for: Logic errors, missing edge cases, architecture flaws, security concerns.
162
- Provide specific, actionable feedback.
161
+ 확인 사항: 로직 오류, 누락된 엣지 케이스, 아키텍처 결함, 보안 우려.
162
+ 구체적이고 실행 가능한 피드백을 제공해주세요.
163
163
  EOF
164
164
  )"
165
165
  ```
166
166
 
167
- ### Code Review (piping file)
167
+ ### 코드 리뷰 (파일 파이핑)
168
168
  ```bash
169
- cat src/api/auth.py | gemini -m gemini-3-pro-preview -p "Review this FastAPI authentication code for security issues, bugs, and best practices. Provide specific line-by-line feedback." --output-format json
169
+ cat src/routes/api/auth.ts | gemini -m gemini-2.5-pro -p " TanStack Start 인증 코드를 보안 이슈, 버그, 베스트 프랙티스 관점에서 리뷰해주세요. 구체적인 라인별 피드백을 제공해주세요." --output-format json
170
170
  ```
171
171
 
172
- ### Architecture Review
172
+ ### 아키텍처 리뷰
173
173
  ```bash
174
- gemini -m gemini-3-pro-preview --output-format json -p "$(cat << 'EOF'
175
- [ARCHITECTURE REVIEW]
176
- System: {system_name}
177
- Tech Stack: FastAPI + Next.js + AWS
174
+ gemini -m gemini-2.5-pro --output-format json -p "$(cat << 'EOF'
175
+ [아키텍처 리뷰]
176
+ 시스템: {system_name}
177
+ 기술 스택: TanStack Start + FastAPI + AWS
178
178
 
179
179
  {architecture_description}
180
180
 
181
- Evaluate: Scalability, reliability, maintainability, security, cost efficiency.
182
- Suggest improvements with trade-off analysis.
181
+ 평가 항목: 확장성, 신뢰성, 유지보수성, 보안, 비용 효율성.
182
+ 트레이드오프 분석과 함께 개선안을 제시해주세요.
183
183
  EOF
184
184
  )"
185
185
  ```
186
186
 
187
- ## Environment Compatibility
187
+ ## 환경 호환성
188
188
 
189
- | Environment | Execution Method |
190
- |-------------|------------------|
191
- | Claude Code | Direct bash execution |
192
- | Claude (Web/Desktop) | Use `bash_tool` |
189
+ | 환경 | 실행 방법 |
190
+ |------|-----------|
191
+ | Claude Code | 직접 bash 실행 |
192
+ | Claude (Web/Desktop) | `bash_tool` 사용 |
193
193
 
194
- Command syntax remains identical across environments.
194
+ 명령어 문법은 모든 환경에서 동일.
195
195
 
196
- ## Error Handling
196
+ ## 에러 처리
197
197
 
198
- If Gemini returns an error:
199
- 1. Display the error message to user
200
- 2. Check for common issues:
201
- - Quota exceeded (60/min or 1000/day limit)
202
- - Network connectivity
203
- - Invalid prompt format
204
- 3. Suggest retry or alternative approach
198
+ Gemini 에러 발생 시:
199
+ 1. 사용자에게 에러 메시지 표시
200
+ 2. 일반적인 문제 확인:
201
+ - 할당량 초과 (60/min 또는 1000/day 한도)
202
+ - 네트워크 연결
203
+ - 잘못된 프롬프트 형식
204
+ 3. 재시도 또는 대안 제안
205
205
 
206
- ## Quota Management
206
+ ## 할당량 관리
207
207
 
208
- Free tier limits:
209
- - 60 requests per minute
210
- - 1000 requests per day
208
+ 무료 티어 한도:
209
+ - 분당 60 요청
210
+ - 일당 1000 요청
211
211
 
212
- To conserve quota:
213
- - Combine related reviews into single prompts
214
- - Use specific, focused review requests
215
- - Avoid redundant re-reviews
212
+ 할당량 절약:
213
+ - 관련 리뷰를 단일 프롬프트로 결합
214
+ - 구체적이고 집중된 리뷰 요청 사용
215
+ - 중복 리뷰 회피
216
216
 
217
- ## References
217
+ ## 참조 파일
218
218
 
219
- - `references/checklists.md`: Tech stack-specific review checklists
220
- - `references/prompt-templates.md`: Prompt templates for each review type
219
+ - `references/checklists.md`: 기술 스택별 리뷰 체크리스트
220
+ - `references/prompt-templates.md`: 리뷰 타입별 프롬프트 템플릿
@@ -1,150 +1,144 @@
1
- # Review Checklists by Tech Stack
2
-
3
- ## FastAPI Checklist
4
-
5
- ### API Design
6
- - [ ] RESTful conventions followed (proper HTTP methods, status codes)
7
- - [ ] Consistent URL naming (kebab-case, plural nouns)
8
- - [ ] Proper use of path vs query parameters
9
- - [ ] API versioning strategy (if applicable)
10
- - [ ] Response model consistency across endpoints
11
-
12
- ### Pydantic Models
13
- - [ ] Field validation with appropriate constraints (min, max, regex)
14
- - [ ] Optional vs required fields correctly defined
15
- - [ ] Proper use of `Field()` for metadata and examples
16
- - [ ] Config class settings (orm_mode, validate_assignment)
17
- - [ ] Custom validators where needed
18
-
19
- ### Async Patterns
20
- - [ ] Async/await used consistently
21
- - [ ] No blocking I/O in async functions
22
- - [ ] Proper use of `asyncio.gather()` for concurrent operations
23
- - [ ] Background tasks for long-running operations
24
- - [ ] Connection pooling for databases
25
-
26
- ### Security
27
- - [ ] Authentication implemented (OAuth2, JWT, API keys)
28
- - [ ] Authorization checks on protected endpoints
29
- - [ ] Input sanitization and validation
30
- - [ ] CORS configuration appropriate for use case
31
- - [ ] Rate limiting consideration
32
- - [ ] Secrets not hardcoded
33
-
34
- ### Error Handling
35
- - [ ] Custom exception handlers defined
36
- - [ ] Consistent error response format
37
- - [ ] Proper HTTP status codes for errors
38
- - [ ] Sensitive information not leaked in errors
39
-
40
- ### Performance
41
- - [ ] Database queries optimized (N+1 problem avoided)
42
- - [ ] Pagination for list endpoints
43
- - [ ] Caching strategy where appropriate
44
- - [ ] Response model excludes unnecessary fields
45
-
46
- ### Testing
47
- - [ ] Test client setup with TestClient
48
- - [ ] Dependency overrides for mocking
49
- - [ ] Coverage of happy path and edge cases
1
+ # 기술 스택별 리뷰 체크리스트
2
+
3
+ ## TanStack Start 체크리스트
4
+
5
+ ### 라우팅
6
+ - [ ] 파일 기반 라우팅 구조가 논리적으로 구성됨
7
+ - [ ] 동적 라우트가 적절히 파라미터화됨 (`$param`)
8
+ - [ ] 레이아웃 라우트가 올바르게 중첩됨
9
+ - [ ] 404 에러 경계가 적절히 처리됨
10
+ - [ ] 라우트 그룹이 효과적으로 활용됨
11
+
12
+ ### 서버 함수
13
+ - [ ] `createServerFn`이 올바르게 사용됨
14
+ - [ ] 서버 함수에서 적절한 유효성 검사 수행
15
+ - [ ] 에러 처리가 일관되게 구현됨
16
+ - [ ] 민감한 데이터가 클라이언트에 노출되지 않음
17
+ - [ ] 적절한 HTTP 메서드 사용 (GET vs POST)
18
+
19
+ ### 데이터 페칭
20
+ - [ ] TanStack Query가 올바르게 통합됨
21
+ - [ ] `queryOptions`가 적절히 정의됨
22
+ - [ ] 로더에서 효율적인 데이터 페칭
23
+ - [ ] 적절한 캐싱 전략 사용
24
+ - [ ] 로딩/에러 상태 처리 완비
25
+
26
+ ### SSR/CSR
27
+ - [ ] SSR이 필요한 곳에 적절히 사용됨
28
+ - [ ] 클라이언트 전용 코드가 올바르게 분리됨
29
+ - [ ] 하이드레이션 미스매치 방지
30
+ - [ ] SEO 필수 페이지에 SSR 적용
31
+ - [ ] 사용자별 데이터는 클라이언트에서 페칭
32
+
33
+ ### 상태 관리
34
+ - [ ] 서버 상태와 클라이언트 상태가 분리됨
35
+ - [ ] TanStack Query로 서버 상태 관리
36
+ - [ ] 불필요한 전역 상태 최소화
37
+ - [ ] 컨텍스트가 적절히 사용됨
38
+
39
+ ### 성능
40
+ - [ ] 코드 스플리팅 적용
41
+ - [ ] 이미지 최적화
42
+ - [ ] 번들 사이즈 모니터링
43
+ - [ ] 불필요한 리렌더링 방지
44
+
45
+ ### 타입스크립트
46
+ - [ ] Strict 모드 활성화
47
+ - [ ] Props 인터페이스 정의
48
+ - [ ] API 응답 타입 정의
49
+ - [ ] `any` 타입 사용 최소화
50
50
 
51
51
  ---
52
52
 
53
- ## Next.js Checklist
54
-
55
- ### Rendering Strategy
56
- - [ ] Appropriate use of SSR vs SSG vs ISR vs CSR
57
- - [ ] `getStaticProps` for static content
58
- - [ ] `getServerSideProps` only when necessary
59
- - [ ] ISR with proper revalidation intervals
60
- - [ ] Client-side fetching for user-specific data
61
-
62
- ### Routing
63
- - [ ] File-based routing structure organized
64
- - [ ] Dynamic routes properly parameterized
65
- - [ ] Catch-all routes used appropriately
66
- - [ ] Route groups for organization (App Router)
67
- - [ ] Parallel routes if needed
68
-
69
- ### Data Fetching
70
- - [ ] SWR or React Query for client-side
71
- - [ ] Proper loading and error states
72
- - [ ] Optimistic updates where appropriate
73
- - [ ] Cache invalidation strategy
74
-
75
- ### State Management
76
- - [ ] Server state vs client state separated
77
- - [ ] Zustand/Jotai for simple state
78
- - [ ] Context used sparingly
79
- - [ ] State lifted appropriately
80
-
81
- ### Performance
82
- - [ ] Image optimization with next/image
83
- - [ ] Font optimization with next/font
84
- - [ ] Code splitting and lazy loading
85
- - [ ] Bundle size monitored
86
- - [ ] Core Web Vitals considered
87
-
88
- ### SEO
89
- - [ ] Metadata properly configured
90
- - [ ] Open Graph tags present
91
- - [ ] Structured data where appropriate
92
- - [ ] Sitemap generation
93
- - [ ] robots.txt configured
94
-
95
- ### Security
96
- - [ ] API routes protected
97
- - [ ] Environment variables properly used
98
- - [ ] CSRF protection if needed
99
- - [ ] Content Security Policy headers
100
-
101
- ### TypeScript
102
- - [ ] Strict mode enabled
103
- - [ ] Props interfaces defined
104
- - [ ] API response types defined
105
- - [ ] No `any` types without justification
53
+ ## FastAPI 체크리스트
54
+
55
+ ### API 설계
56
+ - [ ] RESTful 규칙 준수 (적절한 HTTP 메서드, 상태 코드)
57
+ - [ ] 일관된 URL 명명 (kebab-case, 복수형 명사)
58
+ - [ ] path vs query 파라미터 적절한 사용
59
+ - [ ] API 버저닝 전략 (해당 시)
60
+ - [ ] 엔드포인트 응답 모델 일관성
61
+
62
+ ### Pydantic 모델
63
+ - [ ] 적절한 제약조건으로 필드 유효성 검사 (min, max, regex)
64
+ - [ ] Optional vs required 필드 올바르게 정의
65
+ - [ ] `Field()`로 메타데이터와 예시 적절히 사용
66
+ - [ ] Config 클래스 설정 (orm_mode, validate_assignment)
67
+ - [ ] 필요 커스텀 밸리데이터
68
+
69
+ ### 비동기 패턴
70
+ - [ ] async/await 일관되게 사용
71
+ - [ ] async 함수 블로킹 I/O 없음
72
+ - [ ] 동시 작업에 `asyncio.gather()` 적절히 사용
73
+ - [ ] 장시간 작업에 백그라운드 태스크 사용
74
+ - [ ] 데이터베이스 연결 풀링
75
+
76
+ ### 보안
77
+ - [ ] 인증 구현 (OAuth2, JWT, API 키)
78
+ - [ ] 보호된 엔드포인트에 인가 검사
79
+ - [ ] 입력 검증 및 살균
80
+ - [ ] 적절한 CORS 설정
81
+ - [ ] 레이트 리미팅 고려
82
+ - [ ] 하드코딩된 시크릿 없음
83
+
84
+ ### 에러 처리
85
+ - [ ] 커스텀 예외 핸들러 정의
86
+ - [ ] 일관된 에러 응답 형식
87
+ - [ ] 에러에 적절한 HTTP 상태 코드
88
+ - [ ] 에러에 민감 정보 노출 없음
89
+
90
+ ### 성능
91
+ - [ ] 데이터베이스 쿼리 최적화 (N+1 문제 방지)
92
+ - [ ] 목록 엔드포인트에 페이지네이션
93
+ - [ ] 적절한 캐싱 전략
94
+ - [ ] 응답 모델에서 불필요한 필드 제외
95
+
96
+ ### 테스팅
97
+ - [ ] TestClient로 테스트 클라이언트 설정
98
+ - [ ] 모킹을 위한 의존성 오버라이드
99
+ - [ ] 정상 경로 엣지 케이스 커버리지
106
100
 
107
101
  ---
108
102
 
109
- ## General Checklist
110
-
111
- ### Code Quality
112
- - [ ] Single responsibility principle followed
113
- - [ ] DRY - no unnecessary duplication
114
- - [ ] Functions/methods are focused and small
115
- - [ ] Clear naming conventions
116
- - [ ] Comments explain "why", not "what"
117
-
118
- ### Logic & Correctness
119
- - [ ] Edge cases handled (empty, null, boundary values)
120
- - [ ] Error handling comprehensive
121
- - [ ] Race conditions considered
122
- - [ ] Input validation present
123
- - [ ] Return values checked
124
-
125
- ### Security
126
- - [ ] No hardcoded secrets
127
- - [ ] User input sanitized
128
- - [ ] SQL injection prevented (parameterized queries)
129
- - [ ] XSS prevention measures
130
- - [ ] Authentication/authorization proper
131
-
132
- ### Performance
133
- - [ ] Time complexity acceptable for scale
134
- - [ ] Space complexity reasonable
135
- - [ ] No unnecessary loops or iterations
136
- - [ ] Database queries optimized
137
- - [ ] Caching considered where appropriate
138
-
139
- ### Maintainability
140
- - [ ] Code is testable
141
- - [ ] Dependencies minimal and justified
142
- - [ ] Configuration externalized
143
- - [ ] Logging present for debugging
144
- - [ ] Error messages helpful
145
-
146
- ### Documentation
147
- - [ ] Public APIs documented
148
- - [ ] Complex logic explained
149
- - [ ] Setup instructions clear
150
- - [ ] Environment variables documented
103
+ ## 범용 체크리스트
104
+
105
+ ### 코드 품질
106
+ - [ ] 단일 책임 원칙 준수
107
+ - [ ] DRY - 불필요한 중복 없음
108
+ - [ ] 함수/메서드가 집중적이고 작음
109
+ - [ ] 명확한 명명 규칙
110
+ - [ ] 주석은 "why" 설명, "what"이 아님
111
+
112
+ ### 로직 정확성
113
+ - [ ] 엣지 케이스 처리 ( 값, null, 경계값)
114
+ - [ ] 포괄적인 에러 처리
115
+ - [ ] 레이스 컨디션 고려
116
+ - [ ] 입력 유효성 검사
117
+ - [ ] 반환값 확인
118
+
119
+ ### 보안
120
+ - [ ] 하드코딩된 시크릿 없음
121
+ - [ ] 사용자 입력 살균
122
+ - [ ] SQL 인젝션 방지 (파라미터화된 쿼리)
123
+ - [ ] XSS 방지 조치
124
+ - [ ] 적절한 인증/인가
125
+
126
+ ### 성능
127
+ - [ ] 스케일에 적합한 시간 복잡도
128
+ - [ ] 적절한 공간 복잡도
129
+ - [ ] 불필요한 반복 없음
130
+ - [ ] 데이터베이스 쿼리 최적화
131
+ - [ ] 적절한 캐싱 고려
132
+
133
+ ### 유지보수성
134
+ - [ ] 테스트 가능한 코드
135
+ - [ ] 최소한의 정당화된 의존성
136
+ - [ ] 설정 외부화
137
+ - [ ] 디버깅을 위한 로깅
138
+ - [ ] 도움이 되는 에러 메시지
139
+
140
+ ### 문서화
141
+ - [ ] 공개 API 문서화
142
+ - [ ] 복잡한 로직 설명
143
+ - [ ] 명확한 설정 가이드
144
+ - [ ] 환경 변수 문서화