@kood/claude-code 0.1.6 → 0.1.9

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 (107) hide show
  1. package/dist/index.js +109 -216
  2. package/package.json +8 -2
  3. package/templates/hono/CLAUDE.md +59 -328
  4. package/templates/hono/docs/architecture/architecture.md +93 -747
  5. package/templates/hono/docs/deployment/cloudflare.md +59 -513
  6. package/templates/hono/docs/deployment/docker.md +41 -356
  7. package/templates/hono/docs/deployment/index.md +54 -190
  8. package/templates/hono/docs/deployment/railway.md +36 -306
  9. package/templates/hono/docs/deployment/vercel.md +49 -434
  10. package/templates/hono/docs/library/ai-sdk/index.md +53 -290
  11. package/templates/hono/docs/library/ai-sdk/openrouter.md +19 -387
  12. package/templates/hono/docs/library/ai-sdk/providers.md +28 -394
  13. package/templates/hono/docs/library/ai-sdk/streaming.md +52 -353
  14. package/templates/hono/docs/library/ai-sdk/structured-output.md +63 -395
  15. package/templates/hono/docs/library/ai-sdk/tools.md +62 -431
  16. package/templates/hono/docs/library/hono/env-setup.md +24 -313
  17. package/templates/hono/docs/library/hono/error-handling.md +34 -295
  18. package/templates/hono/docs/library/hono/index.md +29 -121
  19. package/templates/hono/docs/library/hono/middleware.md +21 -188
  20. package/templates/hono/docs/library/hono/rpc.md +40 -341
  21. package/templates/hono/docs/library/hono/validation.md +35 -195
  22. package/templates/hono/docs/library/pino/index.md +42 -333
  23. package/templates/hono/docs/library/prisma/cloudflare-d1.md +64 -367
  24. package/templates/hono/docs/library/prisma/config.md +19 -260
  25. package/templates/hono/docs/library/prisma/index.md +67 -320
  26. package/templates/hono/docs/library/zod/index.md +53 -257
  27. package/templates/npx/CLAUDE.md +62 -274
  28. package/templates/npx/docs/references/patterns.md +160 -0
  29. package/templates/tanstack-start/CLAUDE.md +100 -256
  30. package/templates/tanstack-start/docs/architecture/architecture.md +44 -589
  31. package/templates/tanstack-start/docs/deployment/cloudflare.md +37 -424
  32. package/templates/tanstack-start/docs/deployment/index.md +57 -286
  33. package/templates/tanstack-start/docs/deployment/nitro.md +36 -318
  34. package/templates/tanstack-start/docs/deployment/railway.md +40 -409
  35. package/templates/tanstack-start/docs/deployment/vercel.md +43 -465
  36. package/templates/tanstack-start/docs/design/components.md +77 -311
  37. package/templates/tanstack-start/docs/design/index.md +113 -69
  38. package/templates/tanstack-start/docs/design/safe-area.md +51 -250
  39. package/templates/tanstack-start/docs/design/tailwind-setup.md +45 -359
  40. package/templates/tanstack-start/docs/guides/conventions.md +103 -0
  41. package/templates/tanstack-start/docs/guides/env-setup.md +34 -340
  42. package/templates/tanstack-start/docs/guides/getting-started.md +22 -209
  43. package/templates/tanstack-start/docs/guides/hooks.md +166 -0
  44. package/templates/tanstack-start/docs/guides/routes.md +166 -0
  45. package/templates/tanstack-start/docs/guides/services.md +143 -0
  46. package/templates/tanstack-start/docs/library/better-auth/2fa.md +27 -115
  47. package/templates/tanstack-start/docs/library/better-auth/advanced.md +22 -105
  48. package/templates/tanstack-start/docs/library/better-auth/index.md +17 -66
  49. package/templates/tanstack-start/docs/library/better-auth/plugins.md +11 -88
  50. package/templates/tanstack-start/docs/library/better-auth/session.md +12 -92
  51. package/templates/tanstack-start/docs/library/better-auth/setup.md +9 -91
  52. package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +30 -358
  53. package/templates/tanstack-start/docs/library/prisma/config.md +27 -327
  54. package/templates/tanstack-start/docs/library/prisma/crud.md +46 -174
  55. package/templates/tanstack-start/docs/library/prisma/index.md +23 -113
  56. package/templates/tanstack-start/docs/library/prisma/relations.md +31 -153
  57. package/templates/tanstack-start/docs/library/prisma/schema.md +40 -217
  58. package/templates/tanstack-start/docs/library/prisma/setup.md +12 -112
  59. package/templates/tanstack-start/docs/library/prisma/transactions.md +20 -110
  60. package/templates/tanstack-start/docs/library/tanstack-query/index.md +26 -97
  61. package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +28 -107
  62. package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +44 -146
  63. package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +33 -127
  64. package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +49 -149
  65. package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +19 -112
  66. package/templates/tanstack-start/docs/library/tanstack-start/index.md +33 -80
  67. package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +28 -106
  68. package/templates/tanstack-start/docs/library/tanstack-start/routing.md +21 -118
  69. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +34 -246
  70. package/templates/tanstack-start/docs/library/tanstack-start/setup.md +6 -39
  71. package/templates/tanstack-start/docs/library/zod/complex-types.md +32 -156
  72. package/templates/tanstack-start/docs/library/zod/index.md +31 -144
  73. package/templates/tanstack-start/docs/library/zod/transforms.md +20 -129
  74. package/templates/tanstack-start/docs/library/zod/validation.md +39 -155
  75. package/templates/hono/docs/commands/git.md +0 -145
  76. package/templates/hono/docs/mcp/context7.md +0 -106
  77. package/templates/hono/docs/mcp/index.md +0 -176
  78. package/templates/hono/docs/mcp/sequential-thinking.md +0 -101
  79. package/templates/hono/docs/mcp/serena.md +0 -269
  80. package/templates/hono/docs/mcp/sgrep.md +0 -105
  81. package/templates/hono/docs/skills/gemini-review/SKILL.md +0 -220
  82. package/templates/hono/docs/skills/gemini-review/references/checklists.md +0 -136
  83. package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +0 -303
  84. package/templates/npx/docs/commands/git.md +0 -145
  85. package/templates/npx/docs/mcp/index.md +0 -60
  86. package/templates/npx/docs/skills/gemini-review/SKILL.md +0 -220
  87. package/templates/npx/docs/skills/gemini-review/references/checklists.md +0 -134
  88. package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +0 -301
  89. package/templates/tanstack-start/docs/commands/git.md +0 -145
  90. package/templates/tanstack-start/docs/design/accessibility.md +0 -433
  91. package/templates/tanstack-start/docs/design/color.md +0 -235
  92. package/templates/tanstack-start/docs/design/spacing.md +0 -341
  93. package/templates/tanstack-start/docs/design/typography.md +0 -324
  94. package/templates/tanstack-start/docs/guides/best-practices.md +0 -950
  95. package/templates/tanstack-start/docs/guides/husky-lint-staged.md +0 -303
  96. package/templates/tanstack-start/docs/guides/prettier.md +0 -189
  97. package/templates/tanstack-start/docs/guides/project-templates.md +0 -710
  98. package/templates/tanstack-start/docs/library/tanstack-query/setup.md +0 -107
  99. package/templates/tanstack-start/docs/library/zod/basic-types.md +0 -186
  100. package/templates/tanstack-start/docs/mcp/context7.md +0 -204
  101. package/templates/tanstack-start/docs/mcp/index.md +0 -177
  102. package/templates/tanstack-start/docs/mcp/sequential-thinking.md +0 -180
  103. package/templates/tanstack-start/docs/mcp/serena.md +0 -269
  104. package/templates/tanstack-start/docs/mcp/sgrep.md +0 -174
  105. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +0 -220
  106. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +0 -144
  107. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +0 -292
@@ -1,220 +1,64 @@
1
- # CLAUDE.md - Claude Code Instructions
1
+ # CLAUDE.md - Hono Server Framework
2
2
 
3
- > Hono 서버 프레임워크 프로젝트 작업 지침
3
+ > Web Standards 기반 초경량 서버 프레임워크
4
4
 
5
- ---
6
-
7
- ## 🚨 STOP - 작업 전 필수 확인
8
-
9
- ```
10
- ┌─────────────────────────────────────────────────────────────┐
11
- │ 이 프로젝트에서 작업하기 전에 이 문서를 끝까지 읽으세요. │
12
- │ 특히 ⛔ NEVER DO 섹션의 규칙은 절대 위반하지 마세요. │
13
- │ │
14
- │ 📖 작업 유형별 상세 문서: docs/ 폴더 참조 │
15
- └─────────────────────────────────────────────────────────────┘
16
- ```
17
-
18
- ---
19
-
20
- ## ⛔ NEVER DO (절대 금지 - 예외 없음)
21
-
22
- ### Git 커밋 금지 사항
23
- ```
24
- ❌ "Generated with Claude Code" 포함 금지
25
- ❌ "🤖" 또는 AI 관련 이모지 포함 금지
26
- ❌ "Co-Authored-By:" 헤더 포함 금지
27
- ❌ AI/봇이 작성했다는 어떤 표시도 금지
28
- ❌ 커밋 메시지 여러 줄 작성 금지
29
- ❌ 커밋 메시지에 이모지 사용 금지
30
- ```
31
-
32
- ### Prisma 금지 사항
33
- ```
34
- ❌ prisma db push 자동 실행 금지
35
- ❌ prisma migrate 자동 실행 금지
36
- ❌ prisma generate 자동 실행 금지
37
- ❌ schema.prisma 임의 변경 금지 (요청된 것만)
38
- ```
5
+ ## Instructions
39
6
 
40
- ### API 구현 금지 사항
41
- ```
42
- ❌ handler 내부에서 수동 검증 금지 (zValidator 사용)
43
- ❌ handler 내부에서 수동 인증 체크 금지 (middleware 사용)
44
- ❌ app.onError 없이 에러 처리 금지
45
- ❌ HTTPException 없이 에러 throw 금지
46
- ```
47
-
48
- ### 코드 검색 금지 사항
49
- ```
50
- ❌ grep, rg 등 기본 검색 도구 사용 금지
51
- ❌ find 명령어로 코드 검색 금지
52
- ✅ 코드베이스 검색 시 sgrep 사용 필수
53
- ```
54
-
55
- ### 코드 작성 규칙
56
- ```
57
- ✅ 모든 한글 텍스트는 UTF-8 인코딩 유지
58
- ✅ 코드 묶음 단위로 한글 주석 작성 (너무 세세하게 X)
59
- ✅ Prisma Multi-File 모든 요소에 한글 주석 필수
60
- ```
61
-
62
- ### Prisma Multi-File 구조 (필수)
63
- ```
64
- prisma/
65
- ├── schema/
66
- │ ├── +base.prisma # datasource, generator 설정
67
- │ ├── +enum.prisma # 모든 enum 정의
68
- │ ├── user.prisma # User 모델
69
- │ ├── post.prisma # Post 모델
70
- │ └── ... # 기타 모델별 파일
71
- ```
7
+ @../../commands/git.md
8
+ @docs/library/hono/index.md
9
+ @docs/library/prisma/index.md
10
+ @docs/library/zod/index.md
11
+ @docs/deployment/index.md
72
12
 
73
13
  ---
74
14
 
75
- ## ALWAYS DO (필수 실행)
76
-
77
- ### 1. 작업 전: 관련 문서 읽기
78
- ```
79
- API 작업 → docs/library/hono/ 읽기
80
- DB 작업 → docs/library/prisma/ 읽기
81
- 검증 작업 → docs/library/zod/ 읽기
82
- 배포 작업 → docs/deployment/ 읽기
83
- ```
84
-
85
- ### 2. MCP 도구 적극 활용
86
- ```
87
- 코드베이스 검색 → sgrep 사용 (grep/rg 금지)
88
- 복잡한 분석/디버깅 → Sequential Thinking 사용
89
- 라이브러리 문서 → Context7 사용
90
- ```
91
- **상세**: `docs/mcp/` 참고
92
-
93
- ### 3. 복잡한 작업 시: Gemini Review 실행
94
- ```
95
- 아키텍처 설계/변경 → gemini-review (architecture)
96
- 구현 계획 검증 → gemini-review (plan)
97
- 복잡한 코드 리뷰 → gemini-review (code)
98
- ```
99
-
100
- **실행 조건**:
101
- - 3개 이상 파일 수정하는 기능 구현
102
- - 새로운 아키텍처 패턴 도입
103
- - 보안 관련 코드 (인증, 권한, 암호화)
104
- - 성능 크리티컬 코드
15
+ ## STOP - 금지 사항
105
16
 
106
- **상세**: `docs/skills/gemini-review/SKILL.md` 참고
107
-
108
- ### 4. 작업 완료 후: Git 커밋
109
- ```bash
110
- git add .
111
- git commit -m "<prefix>: <설명>"
112
- ```
113
-
114
- **커밋 형식**: `<prefix>: <설명>` (한 줄, 본문 없음)
115
-
116
- **Prefix**: `feat` | `fix` | `refactor` | `style` | `docs` | `test` | `chore` | `perf` | `ci`
117
-
118
- **예시**:
119
- ```bash
120
- feat: 사용자 인증 API 추가
121
- fix: JWT 토큰 검증 오류 수정
122
- docs: API 문서 업데이트
123
- ```
17
+ | 분류 | 금지 항목 |
18
+ |------|----------|
19
+ | **Git** | `Generated with Claude Code`, `🤖`, `Co-Authored-By:`, 여러 줄 커밋, 이모지 |
20
+ | **Prisma** | `db push`, `migrate`, `generate` 자동 실행, schema 임의 변경 |
21
+ | **API** | handler 내부 수동 검증 (→ zValidator), 수동 인증 (→ middleware), 일반 Error throw (→ HTTPException) |
22
+ | **검색** | grep, rg, find (→ ast-grep 사용) |
124
23
 
125
24
  ---
126
25
 
127
- ## 📚 문서 참조 테이블
26
+ ## ALWAYS - 필수 사항
128
27
 
129
- | 작업 | 문서 경로 | 필독 여부 |
130
- |------|----------|----------|
131
- | **Git 규칙** | `docs/git/git.md` | 🔴 필수 |
132
- | **MCP 도구** | `docs/mcp/` | 🔴 필수 |
133
- | **Gemini Review** | `docs/skills/gemini-review/` | 🟡 복잡한 작업 시 |
134
- | **API 개발** | `docs/library/hono/` | 🔴 필수 |
135
- | **DB** | `docs/library/prisma/` | 🟡 해당 |
136
- | **검증** | `docs/library/zod/` | 🟡 해당 |
137
- | **배포** | `docs/deployment/` | 🟡 해당 시 |
28
+ | 작업 | 필수 |
29
+ |------|------|
30
+ | 작업 | 관련 docs 읽기 |
31
+ | 코드 검색 | ast-grep 사용 |
32
+ | 복잡한 분석 | Sequential Thinking MCP |
33
+ | 3+ 파일 수정 | gemini-review 실행 |
34
+ | 코드 작성 | UTF-8, 코드 묶음별 한글 주석 |
35
+ | Prisma | Multi-File 구조, 모든 요소 한글 주석 |
138
36
 
139
37
  ---
140
38
 
141
- ## 🛠 Tech Stack (버전 주의)
39
+ ## Tech Stack
142
40
 
143
41
  | 기술 | 버전 | 주의사항 |
144
42
  |------|------|----------|
145
- | Hono | 최신 | Web Standards 기반 서버 프레임워크 |
43
+ | Hono | 최신 | Web Standards 기반 |
146
44
  | TypeScript | 5.x | strict mode |
147
- | Prisma | **7.x** | `prisma-client` (js 아님), output 필수 |
148
- | Zod | **4.x** | `z.email()`, `z.url()` (string().email() 아님) |
149
- | @hono/zod-validator | 최신 | Zod 검증 미들웨어 |
150
-
151
- ---
152
-
153
- ## 📁 Directory Structure
154
-
155
- ```
156
- src/
157
- ├── index.ts # Entry point
158
- ├── routes/ # 라우트 모듈
159
- │ ├── index.ts # 라우트 통합
160
- │ ├── users.ts # /users 라우트
161
- │ └── posts.ts # /posts 라우트
162
- ├── middleware/ # 미들웨어
163
- │ ├── auth.ts # 인증 미들웨어
164
- │ └── logger.ts # 로깅 미들웨어
165
- ├── validators/ # Zod 스키마
166
- │ ├── user.ts # 사용자 스키마
167
- │ └── post.ts # 게시글 스키마
168
- ├── services/ # 비즈니스 로직
169
- │ └── user.service.ts # 사용자 서비스
170
- ├── database/ # DB 연결
171
- │ └── prisma.ts # Prisma Client
172
- ├── types/ # 타입 정의
173
- │ └── env.d.ts # 환경변수 타입
174
- └── lib/ # 유틸리티
175
- └── errors.ts # 커스텀 에러
176
- ```
45
+ | Prisma | **7.x** | `prisma-client`, output 필수 |
46
+ | Zod | **4.x** | `z.email()`, `z.url()` (v4 문법) |
177
47
 
178
48
  ---
179
49
 
180
- ## 🔧 Code Conventions
181
-
182
- ### File Naming
183
- - **kebab-case**: `user-service.ts`, `auth-middleware.ts`
184
- - **라우트 파일**: `users.ts`, `posts.ts`
185
-
186
- ### TypeScript
187
- - `const` 선언 사용 (function 대신)
188
- - 명시적 return type
189
- - `interface` (객체) / `type` (유니온)
190
- - `any` 금지 → `unknown` 사용
50
+ ## Quick Patterns
191
51
 
192
- ### Import
193
- ```typescript
194
- // @/ → ./src/
195
- import { prisma } from '@/database/prisma'
196
- import { userSchema } from '@/validators/user'
197
- ```
52
+ ### App + 에러 핸들러
198
53
 
199
- **순서**: 외부 → 내부(@/) → 상대경로 → type imports
200
-
201
- ---
202
-
203
- ## 📝 Quick Patterns (복사용)
204
-
205
- ### App 설정
206
54
  ```typescript
207
55
  import { Hono } from 'hono'
208
56
  import { HTTPException } from 'hono/http-exception'
209
57
 
210
- type Bindings = {
211
- DATABASE_URL: string
212
- JWT_SECRET: string
213
- }
58
+ type Bindings = { DATABASE_URL: string; JWT_SECRET: string }
214
59
 
215
60
  const app = new Hono<{ Bindings: Bindings }>()
216
61
 
217
- // 글로벌 에러 핸들러
218
62
  app.onError((err, c) => {
219
63
  if (err instanceof HTTPException) {
220
64
  return c.json({ error: err.message }, err.status)
@@ -223,172 +67,59 @@ app.onError((err, c) => {
223
67
  return c.json({ error: 'Internal Server Error' }, 500)
224
68
  })
225
69
 
226
- // 404 핸들러
227
- app.notFound((c) => {
228
- return c.json({ error: 'Not Found', path: c.req.path }, 404)
229
- })
70
+ app.notFound((c) => c.json({ error: 'Not Found' }, 404))
230
71
 
231
72
  export default app
232
73
  ```
233
74
 
234
- ### 라우트 + Zod 검증 (GET)
235
- ```typescript
236
- import { Hono } from 'hono'
237
- import { zValidator } from '@hono/zod-validator'
238
- import { z } from 'zod'
239
-
240
- const app = new Hono()
241
-
242
- // ✅ 올바른 패턴: zValidator 사용
243
- const querySchema = z.object({
244
- page: z.coerce.number().positive().optional(),
245
- limit: z.coerce.number().max(100).optional(),
246
- })
247
-
248
- app.get('/users', zValidator('query', querySchema), (c) => {
249
- const { page = 1, limit = 10 } = c.req.valid('query')
250
- return c.json({ page, limit, users: [] })
251
- })
252
- ```
75
+ ### Zod 검증 (v4 문법)
253
76
 
254
- ### 라우트 + Zod 검증 (POST)
255
77
  ```typescript
256
78
  import { zValidator } from '@hono/zod-validator'
257
79
  import { z } from 'zod'
258
80
 
259
- // Zod v4 문법
260
- const createUserSchema = z.object({
261
- email: z.email(), // ✅ v4
81
+ const schema = z.object({
82
+ email: z.email(), // ✅ v4
262
83
  name: z.string().min(1).trim(),
263
- website: z.url().optional(), // ✅ v4
84
+ website: z.url().optional() // ✅ v4
264
85
  })
265
86
 
266
- app.post('/users', zValidator('json', createUserSchema), async (c) => {
87
+ app.post('/users', zValidator('json', schema), (c) => {
267
88
  const data = c.req.valid('json')
268
- // prisma.user.create({ data })
269
89
  return c.json({ user: data }, 201)
270
90
  })
271
91
  ```
272
92
 
273
- ### 잘못된 패턴 (금지)
274
- ```typescript
275
- // ❌ handler 내부에서 수동 검증 금지
276
- app.post('/users', async (c) => {
277
- const body = await c.req.json()
278
- // ❌ 이렇게 하지 마세요!
279
- if (!body.email) {
280
- return c.json({ error: 'Email required' }, 400)
281
- }
282
- })
93
+ ### Prisma Multi-File 구조
283
94
 
284
- // ❌ 일반 Error throw 금지
285
- app.get('/user/:id', async (c) => {
286
- throw new Error('Not found') // ❌ HTTPException 사용해야 함
287
- })
288
95
  ```
289
-
290
- ### HTTPException 사용
291
- ```typescript
292
- import { HTTPException } from 'hono/http-exception'
293
-
294
- app.get('/users/:id', async (c) => {
295
- const id = c.req.param('id')
296
- const user = await prisma.user.findUnique({ where: { id } })
297
-
298
- if (!user) {
299
- throw new HTTPException(404, { message: 'User not found' })
300
- }
301
-
302
- return c.json({ user })
303
- })
96
+ prisma/schema/
97
+ ├── +base.prisma # datasource, generator
98
+ ├── +enum.prisma # enum 정의
99
+ ├── user.prisma # User 모델 (한글 주석 필수)
100
+ └── post.prisma # Post 모델
304
101
  ```
305
102
 
306
- ### 인증 미들웨어
307
- ```typescript
308
- import { createMiddleware } from 'hono/factory'
309
- import { HTTPException } from 'hono/http-exception'
310
-
311
- type Env = {
312
- Variables: {
313
- userId: string
314
- }
103
+ ```prisma
104
+ // +base.prisma
105
+ generator client {
106
+ provider = "prisma-client" // v7
107
+ output = "./generated/client" // ✅ 필수
315
108
  }
316
-
317
- export const authMiddleware = createMiddleware<Env>(async (c, next) => {
318
- const token = c.req.header('Authorization')?.replace('Bearer ', '')
319
-
320
- if (!token) {
321
- throw new HTTPException(401, { message: 'Unauthorized' })
322
- }
323
-
324
- // JWT 검증 로직
325
- const payload = verifyToken(token)
326
- c.set('userId', payload.sub)
327
-
328
- await next()
329
- })
330
-
331
- // 사용
332
- app.get('/me', authMiddleware, (c) => {
333
- const userId = c.get('userId')
334
- return c.json({ userId })
335
- })
336
109
  ```
337
110
 
338
- ### Zod Schema (v4 문법!)
339
- ```typescript
340
- import { z } from 'zod'
111
+ ---
341
112
 
342
- const schema = z.object({
343
- email: z.email(), // ✅ v4
344
- name: z.string().min(1).trim(),
345
- website: z.url().optional(), // ✅ v4
346
- age: z.number().min(0),
347
- })
113
+ ## 문서 구조
348
114
 
349
- // 커스텀 에러 핸들링
350
- app.post(
351
- '/users',
352
- zValidator('json', schema, (result, c) => {
353
- if (!result.success) {
354
- return c.json({ errors: result.error.flatten() }, 400)
355
- }
356
- }),
357
- (c) => {
358
- const data = c.req.valid('json')
359
- return c.json({ user: data }, 201)
360
- }
361
- )
362
115
  ```
363
-
364
- ### RPC Client (Type-safe)
365
- ```typescript
366
- // server.ts
367
- const app = new Hono()
368
- .get('/users', (c) => c.json({ users: [] }))
369
- .post('/users', zValidator('json', createUserSchema), (c) => {
370
- const data = c.req.valid('json')
371
- return c.json({ user: data }, 201)
372
- })
373
-
374
- export type AppType = typeof app
375
-
376
- // client.ts
377
- import { hc } from 'hono/client'
378
- import type { AppType } from './server'
379
-
380
- const client = hc<AppType>('http://localhost:8787/')
381
-
382
- // Type-safe API 호출
383
- const res = await client.users.$get()
384
- const data = await res.json() // { users: [] }
116
+ docs/
117
+ ├── library/
118
+ │ ├── hono/ # 라우팅, 미들웨어, 검증, RPC
119
+ │ ├── prisma/ # CRUD, 관계, D1 연동
120
+ │ ├── zod/ # v4 문법, 검증 패턴
121
+ │ ├── ai-sdk/ # LLM 통합 (streaming, tools)
122
+ │ └── pino/ # 로깅
123
+ ├── deployment/ # Docker, Railway, Vercel, Cloudflare
124
+ └── architecture/ # 아키텍처 패턴
385
125
  ```
386
-
387
- ---
388
-
389
- ## 🔗 Quick Links
390
-
391
- - [Hono 가이드](./docs/library/hono/index.md)
392
- - [Git 규칙](./docs/git/git.md)
393
- - [MCP 가이드](./docs/mcp/index.md)
394
- - [배포 가이드](./docs/deployment/index.md)