@kood/claude-code 0.2.5 → 0.3.1

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 (130) hide show
  1. package/dist/index.js +13 -8
  2. package/package.json +1 -1
  3. package/templates/.claude/agents/code-reviewer.md +371 -19
  4. package/templates/.claude/agents/dependency-manager.md +197 -0
  5. package/templates/.claude/agents/deployment-validator.md +136 -0
  6. package/templates/.claude/agents/git-operator.md +147 -0
  7. package/templates/.claude/agents/implementation-executor.md +202 -0
  8. package/templates/.claude/agents/lint-fixer.md +155 -0
  9. package/templates/.claude/agents/refactor-advisor.md +339 -29
  10. package/templates/.claude/commands/agent-creator.md +355 -0
  11. package/templates/.claude/commands/docs-creator.md +404 -163
  12. package/templates/.claude/commands/docs-refactor.md +400 -113
  13. package/templates/.claude/commands/execute.md +357 -185
  14. package/templates/.claude/commands/git-all.md +65 -71
  15. package/templates/.claude/commands/git-session.md +80 -64
  16. package/templates/.claude/commands/git.md +68 -72
  17. package/templates/.claude/commands/lint-fix.md +224 -109
  18. package/templates/.claude/commands/lint-init.md +142 -168
  19. package/templates/.claude/commands/plan.md +300 -84
  20. package/templates/.claude/commands/prd.md +497 -214
  21. package/templates/.claude/commands/pre-deploy.md +242 -0
  22. package/templates/.claude/commands/subagent-creator.md +118 -0
  23. package/templates/.claude/commands/version-update.md +45 -57
  24. package/templates/hono/CLAUDE.md +99 -54
  25. package/templates/hono/docs/guides/conventions.md +352 -0
  26. package/templates/hono/docs/guides/env-setup.md +347 -0
  27. package/templates/hono/docs/guides/getting-started.md +239 -0
  28. package/templates/hono/docs/library/hono/error-handling.md +20 -29
  29. package/templates/hono/docs/library/hono/index.md +25 -52
  30. package/templates/hono/docs/library/hono/middleware.md +16 -75
  31. package/templates/hono/docs/library/hono/rpc.md +7 -35
  32. package/templates/hono/docs/library/hono/validation.md +25 -45
  33. package/templates/hono/docs/library/t3-env/index.md +374 -0
  34. package/templates/npx/CLAUDE.md +165 -65
  35. package/templates/npx/docs/library/commander/index.md +10 -73
  36. package/templates/npx/docs/library/fs-extra/index.md +21 -113
  37. package/templates/npx/docs/library/prompts/index.md +30 -176
  38. package/templates/npx/docs/references/patterns.md +75 -48
  39. package/templates/tanstack-start/CLAUDE.md +101 -77
  40. package/templates/tanstack-start/docs/architecture.md +427 -0
  41. package/templates/tanstack-start/docs/design.md +558 -0
  42. package/templates/tanstack-start/docs/guides/conventions.md +132 -32
  43. package/templates/tanstack-start/docs/guides/env-setup.md +127 -62
  44. package/templates/tanstack-start/docs/guides/getting-started.md +81 -20
  45. package/templates/tanstack-start/docs/guides/hooks.md +241 -36
  46. package/templates/tanstack-start/docs/guides/routes.md +213 -61
  47. package/templates/tanstack-start/docs/guides/services.md +260 -24
  48. package/templates/tanstack-start/docs/library/better-auth/index.md +469 -16
  49. package/templates/tanstack-start/docs/library/t3-env/index.md +307 -0
  50. package/templates/tanstack-start/docs/library/tanstack-query/index.md +12 -21
  51. package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +22 -35
  52. package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +7 -24
  53. package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +26 -39
  54. package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +23 -26
  55. package/templates/tanstack-start/docs/library/tanstack-router/error-handling.md +32 -147
  56. package/templates/tanstack-start/docs/library/tanstack-router/hooks.md +25 -167
  57. package/templates/tanstack-start/docs/library/tanstack-router/index.md +39 -74
  58. package/templates/tanstack-start/docs/library/tanstack-router/navigation.md +46 -116
  59. package/templates/tanstack-start/docs/library/tanstack-router/route-context.md +35 -154
  60. package/templates/tanstack-start/docs/library/tanstack-router/search-params.md +32 -171
  61. package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +7 -15
  62. package/templates/tanstack-start/docs/library/tanstack-start/routing.md +16 -23
  63. package/templates/tanstack-start/docs/library/zod/complex-types.md +12 -31
  64. package/templates/tanstack-start/docs/library/zod/index.md +18 -35
  65. package/templates/tanstack-start/docs/library/zod/transforms.md +11 -25
  66. package/templates/tanstack-start/docs/library/zod/validation.md +12 -34
  67. package/templates/.claude/agents/debug-detective.md +0 -37
  68. package/templates/.claude/agents/test-writer.md +0 -41
  69. package/templates/.claude/commands/feedback.md +0 -199
  70. package/templates/.claude/commands/ts-fix.md +0 -176
  71. package/templates/.claude/skills/command-creator/LICENSE.txt +0 -202
  72. package/templates/.claude/skills/command-creator/SKILL.md +0 -245
  73. package/templates/.claude/skills/command-creator/scripts/init_command.py +0 -244
  74. package/templates/.claude/skills/command-creator/scripts/package_command.py +0 -125
  75. package/templates/.claude/skills/command-creator/scripts/quick_validate.py +0 -143
  76. package/templates/.claude/skills/frontend-design/SKILL.md +0 -310
  77. package/templates/.claude/skills/frontend-design/references/animation-patterns.md +0 -446
  78. package/templates/.claude/skills/frontend-design/references/colors-2026.md +0 -244
  79. package/templates/.claude/skills/frontend-design/references/typography-2026.md +0 -302
  80. package/templates/.claude/skills/gemini-review/SKILL.md +0 -118
  81. package/templates/.claude/skills/gemini-review/references/checklists.md +0 -129
  82. package/templates/.claude/skills/gemini-review/references/prompt-templates.md +0 -274
  83. package/templates/.claude/skills/skill-creator/LICENSE.txt +0 -202
  84. package/templates/.claude/skills/skill-creator/SKILL.md +0 -184
  85. package/templates/.claude/skills/skill-creator/scripts/init_skill.py +0 -303
  86. package/templates/.claude/skills/skill-creator/scripts/package_skill.py +0 -110
  87. package/templates/.claude/skills/skill-creator/scripts/quick_validate.py +0 -65
  88. package/templates/hono/docs/library/ai-sdk/index.md +0 -190
  89. package/templates/hono/docs/library/ai-sdk/openrouter.md +0 -111
  90. package/templates/hono/docs/library/ai-sdk/providers.md +0 -102
  91. package/templates/hono/docs/library/ai-sdk/streaming.md +0 -146
  92. package/templates/hono/docs/library/ai-sdk/structured-output.md +0 -161
  93. package/templates/hono/docs/library/ai-sdk/tools.md +0 -144
  94. package/templates/hono/docs/library/drizzle/cloudflare-d1.md +0 -247
  95. package/templates/hono/docs/library/drizzle/config.md +0 -167
  96. package/templates/hono/docs/library/drizzle/index.md +0 -259
  97. package/templates/hono/docs/library/hono/env-setup.md +0 -169
  98. package/templates/hono/docs/library/pino/index.md +0 -146
  99. package/templates/tanstack-start/docs/architecture/architecture.md +0 -243
  100. package/templates/tanstack-start/docs/deployment/cloudflare.md +0 -132
  101. package/templates/tanstack-start/docs/deployment/index.md +0 -163
  102. package/templates/tanstack-start/docs/deployment/nitro.md +0 -110
  103. package/templates/tanstack-start/docs/deployment/railway.md +0 -147
  104. package/templates/tanstack-start/docs/deployment/vercel.md +0 -135
  105. package/templates/tanstack-start/docs/design/components.md +0 -175
  106. package/templates/tanstack-start/docs/design/index.md +0 -151
  107. package/templates/tanstack-start/docs/design/safe-area.md +0 -118
  108. package/templates/tanstack-start/docs/design/tailwind-setup.md +0 -156
  109. package/templates/tanstack-start/docs/library/ai-sdk/hooks.md +0 -472
  110. package/templates/tanstack-start/docs/library/ai-sdk/index.md +0 -264
  111. package/templates/tanstack-start/docs/library/ai-sdk/openrouter.md +0 -371
  112. package/templates/tanstack-start/docs/library/ai-sdk/providers.md +0 -403
  113. package/templates/tanstack-start/docs/library/ai-sdk/streaming.md +0 -320
  114. package/templates/tanstack-start/docs/library/ai-sdk/structured-output.md +0 -454
  115. package/templates/tanstack-start/docs/library/ai-sdk/tools.md +0 -473
  116. package/templates/tanstack-start/docs/library/better-auth/2fa.md +0 -48
  117. package/templates/tanstack-start/docs/library/better-auth/advanced.md +0 -55
  118. package/templates/tanstack-start/docs/library/better-auth/plugins.md +0 -34
  119. package/templates/tanstack-start/docs/library/better-auth/session.md +0 -47
  120. package/templates/tanstack-start/docs/library/better-auth/setup.md +0 -41
  121. package/templates/tanstack-start/docs/library/drizzle/cloudflare-d1.md +0 -147
  122. package/templates/tanstack-start/docs/library/drizzle/config.md +0 -118
  123. package/templates/tanstack-start/docs/library/drizzle/crud.md +0 -205
  124. package/templates/tanstack-start/docs/library/drizzle/index.md +0 -79
  125. package/templates/tanstack-start/docs/library/drizzle/relations.md +0 -202
  126. package/templates/tanstack-start/docs/library/drizzle/schema.md +0 -154
  127. package/templates/tanstack-start/docs/library/drizzle/setup.md +0 -96
  128. package/templates/tanstack-start/docs/library/drizzle/transactions.md +0 -127
  129. package/templates/tanstack-start/docs/library/pino/index.md +0 -320
  130. /package/templates/hono/docs/{architecture/architecture.md → architecture.md} +0 -0
@@ -1,320 +0,0 @@
1
- # Pino - Structured Logging
2
-
3
- > 초고속 JSON 로거 (Server Functions 전용)
4
-
5
- ---
6
-
7
- ## ⚠️ 중요: Server Functions에서만 사용
8
-
9
- Pino는 **Server Functions에서만** 사용해야 합니다. 클라이언트 컴포넌트에서는 사용하지 마세요.
10
-
11
- ```
12
- ✅ src/functions/*.ts → Pino 사용 가능
13
- ✅ routes/*/-functions/*.ts → Pino 사용 가능
14
- ❌ routes/*.tsx (컴포넌트) → Pino 사용 금지 (console.log 사용)
15
- ❌ components/*.tsx → Pino 사용 금지
16
- ```
17
-
18
- ---
19
-
20
- ## 왜 console.log 대신 Pino를 사용해야 하나요?
21
-
22
- | 항목 | console.log | Pino |
23
- |------|-------------|------|
24
- | **출력 형식** | 비정형 텍스트 | 구조화된 JSON |
25
- | **성능** | 느림 | 초고속 (30x 빠름) |
26
- | **로그 레벨** | 없음 | debug, info, warn, error, fatal |
27
- | **컨텍스트 추가** | 수동 문자열 연결 | 자동 객체 바인딩 |
28
- | **프로덕션 분석** | 어려움 | JSON 파싱으로 쉬움 |
29
- | **Child Logger** | 불가 | 요청별 컨텍스트 분리 |
30
-
31
- ---
32
-
33
- ## 설치
34
-
35
- ```bash
36
- # pino + pino-pretty (개발용 포맷터)
37
- npm install pino pino-pretty
38
- ```
39
-
40
- ---
41
-
42
- ## 기본 설정
43
-
44
- ### lib/logger.ts
45
-
46
- ```typescript
47
- import pino from 'pino'
48
-
49
- const isDev = process.env.NODE_ENV === 'development'
50
-
51
- export const logger = pino({
52
- level: isDev ? 'debug' : 'info',
53
- transport: isDev
54
- ? {
55
- target: 'pino-pretty',
56
- options: {
57
- colorize: true,
58
- translateTime: 'SYS:yyyy-mm-dd HH:MM:ss',
59
- ignore: 'pid,hostname',
60
- },
61
- }
62
- : undefined,
63
- })
64
- ```
65
-
66
- ### 환경별 출력
67
-
68
- **개발 환경** (pino-pretty):
69
- ```
70
- 2024-01-15 10:30:45 INFO: User created successfully
71
- userId: "user_123"
72
- email: "user@example.com"
73
- ```
74
-
75
- **프로덕션** (JSON):
76
- ```json
77
- {"level":30,"time":1705312245000,"msg":"User created successfully","userId":"user_123","email":"user@example.com"}
78
- ```
79
-
80
- ---
81
-
82
- ## Server Functions에서 사용
83
-
84
- ### 기본 사용법
85
-
86
- ```typescript
87
- // functions/user.ts
88
- import { createServerFn } from '@tanstack/react-start'
89
- import { logger } from '@/lib/logger'
90
- import { prisma } from '@/database/prisma'
91
- import { createUserSchema } from '@/validators/user'
92
- import { authMiddleware } from '@/middleware/auth'
93
-
94
- export const createUser = createServerFn({ method: 'POST' })
95
- .middleware([authMiddleware])
96
- .inputValidator(createUserSchema)
97
- .handler(async ({ data, context }) => {
98
- logger.info({ email: data.email }, 'Creating new user')
99
-
100
- try {
101
- const user = await prisma.user.create({ data })
102
- logger.info({ userId: user.id }, 'User created successfully')
103
- return user
104
- } catch (error) {
105
- logger.error({ error, email: data.email }, 'Failed to create user')
106
- throw error
107
- }
108
- })
109
- ```
110
-
111
- ### Child Logger로 요청 컨텍스트 추가
112
-
113
- ```typescript
114
- // functions/user.ts
115
- import { createServerFn } from '@tanstack/react-start'
116
- import { logger } from '@/lib/logger'
117
- import { prisma } from '@/database/prisma'
118
-
119
- export const getUser = createServerFn({ method: 'GET' })
120
- .middleware([authMiddleware])
121
- .handler(async ({ context }) => {
122
- // 요청별 컨텍스트가 포함된 child logger 생성
123
- const log = logger.child({
124
- requestId: context.requestId,
125
- userId: context.userId,
126
- })
127
-
128
- log.info('Fetching user profile')
129
-
130
- const user = await prisma.user.findUnique({
131
- where: { id: context.userId },
132
- })
133
-
134
- if (!user) {
135
- log.warn('User not found')
136
- throw new Error('User not found')
137
- }
138
-
139
- log.debug({ user }, 'User fetched successfully')
140
- return user
141
- })
142
- ```
143
-
144
- **출력 예시**:
145
- ```json
146
- {"level":30,"time":1705312245000,"requestId":"req_abc123","userId":"user_456","msg":"Fetching user profile"}
147
- {"level":20,"time":1705312245050,"requestId":"req_abc123","userId":"user_456","user":{"id":"user_456","name":"John"},"msg":"User fetched successfully"}
148
- ```
149
-
150
- ---
151
-
152
- ## 로그 레벨
153
-
154
- ```typescript
155
- logger.trace('매우 상세한 디버깅 정보') // level: 10
156
- logger.debug('디버깅 정보') // level: 20
157
- logger.info('일반 정보') // level: 30
158
- logger.warn('경고') // level: 40
159
- logger.error('에러') // level: 50
160
- logger.fatal('치명적 에러') // level: 60
161
- ```
162
-
163
- ### 레벨별 사용 가이드
164
-
165
- | 레벨 | 용도 | 예시 |
166
- |------|------|------|
167
- | `trace` | 매우 상세한 흐름 추적 | 함수 진입/종료, 변수 값 |
168
- | `debug` | 개발 중 디버깅 | 쿼리 결과, 중간 계산값 |
169
- | `info` | 주요 이벤트 | 사용자 생성, 결제 완료 |
170
- | `warn` | 주의 필요 | 재시도 발생, 느린 쿼리 |
171
- | `error` | 에러 발생 | API 실패, 예외 처리 |
172
- | `fatal` | 시스템 중단 | 서버 시작 실패 |
173
-
174
- ---
175
-
176
- ## 구조화된 로깅 패턴
177
-
178
- ### 객체와 메시지 함께 로깅
179
-
180
- ```typescript
181
- // ✅ 올바른 패턴: 객체 먼저, 메시지 나중
182
- logger.info({ userId: '123', action: 'login' }, 'User logged in')
183
-
184
- // ❌ 잘못된 패턴: 문자열 연결
185
- logger.info('User ' + userId + ' logged in') // 구조화되지 않음
186
- ```
187
-
188
- ### 에러 로깅
189
-
190
- ```typescript
191
- try {
192
- await riskyOperation()
193
- } catch (error) {
194
- // ✅ err 키로 에러 객체 전달 (스택 트레이스 자동 포함)
195
- logger.error({ err: error, context: 'riskyOperation' }, 'Operation failed')
196
- }
197
- ```
198
-
199
- **출력**:
200
- ```json
201
- {
202
- "level": 50,
203
- "time": 1705312245000,
204
- "err": {
205
- "type": "Error",
206
- "message": "Connection refused",
207
- "stack": "Error: Connection refused\n at ..."
208
- },
209
- "context": "riskyOperation",
210
- "msg": "Operation failed"
211
- }
212
- ```
213
-
214
- ---
215
-
216
- ## 고급 설정
217
-
218
- ### pino-pretty 전체 옵션
219
-
220
- ```typescript
221
- // lib/logger.ts
222
- import pino from 'pino'
223
-
224
- export const logger = pino({
225
- level: process.env.LOG_LEVEL || 'info',
226
- transport:
227
- process.env.NODE_ENV === 'development'
228
- ? {
229
- target: 'pino-pretty',
230
- options: {
231
- colorize: true,
232
- translateTime: 'SYS:yyyy-mm-dd HH:MM:ss.l',
233
- ignore: 'pid,hostname',
234
- singleLine: false,
235
- levelFirst: true,
236
- messageFormat: '{levelLabel} - {msg}',
237
- customColors: 'info:blue,warn:yellow,error:red,fatal:bgRed',
238
- errorProps: 'stack,code,cause',
239
- },
240
- }
241
- : undefined,
242
- })
243
- ```
244
-
245
- ### TypeScript 타입 강제
246
-
247
- ```typescript
248
- // types/pino.d.ts
249
- declare module 'pino' {
250
- interface LogFnFields {
251
- userId?: string
252
- requestId?: string
253
- action?: string
254
- }
255
- }
256
- ```
257
-
258
- ```typescript
259
- // 사용 시 타입 검사
260
- logger.info({ userId: '123' }, 'User action') // ✅
261
- logger.info({ userId: 123 }, 'User action') // ❌ 타입 에러
262
- ```
263
-
264
- ---
265
-
266
- ## 프로덕션 설정
267
-
268
- ### 환경 변수
269
-
270
- ```bash
271
- # .env
272
- LOG_LEVEL=info # production
273
- # LOG_LEVEL=debug # staging
274
- ```
275
-
276
- ### 멀티 스트림 (파일 + stdout)
277
-
278
- ```typescript
279
- import pino from 'pino'
280
-
281
- const streams = [
282
- { level: 'info', stream: process.stdout },
283
- { level: 'error', stream: pino.destination('./logs/error.log') },
284
- ]
285
-
286
- export const logger = pino(
287
- { level: 'debug' },
288
- pino.multistream(streams)
289
- )
290
- ```
291
-
292
- ---
293
-
294
- ## ❌ 하지 말아야 할 것
295
-
296
- ```typescript
297
- // ❌ 클라이언트 컴포넌트에서 pino 사용 금지
298
- const MyComponent = () => {
299
- logger.info('Component rendered') // ❌ 서버에서만 동작
300
- return <div>Hello</div>
301
- }
302
-
303
- // ❌ 민감한 정보 로깅 금지
304
- logger.info({ password: user.password }, 'User logged in') // ❌
305
-
306
- // ❌ 문자열 연결 사용 금지
307
- logger.info('User ' + userId + ' created at ' + new Date()) // ❌
308
-
309
- // ❌ console.log와 혼용 금지 (Server Functions에서)
310
- console.log('Processing...') // ❌ pino 사용하세요
311
- logger.info('Processing...') // ✅
312
- ```
313
-
314
- ---
315
-
316
- ## 관련 문서
317
-
318
- - [Server Functions](../tanstack-start/server-functions.md)
319
- - [미들웨어](../tanstack-start/middleware.md)
320
- - [아키텍처](../../architecture/architecture.md)