@kood/claude-code 0.1.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/dist/index.d.ts +2 -0
- package/dist/index.js +297 -0
- package/package.json +47 -0
- package/templates/hono/CLAUDE.md +376 -0
- package/templates/hono/docs/deployment/cloudflare.md +328 -0
- package/templates/hono/docs/deployment/index.md +291 -0
- package/templates/hono/docs/git/index.md +180 -0
- package/templates/hono/docs/library/hono/error-handling.md +400 -0
- package/templates/hono/docs/library/hono/index.md +241 -0
- package/templates/hono/docs/library/hono/middleware.md +334 -0
- package/templates/hono/docs/library/hono/rpc.md +454 -0
- package/templates/hono/docs/library/hono/validation.md +328 -0
- package/templates/hono/docs/library/prisma/index.md +427 -0
- package/templates/hono/docs/library/zod/index.md +413 -0
- package/templates/hono/docs/mcp/context7.md +106 -0
- package/templates/hono/docs/mcp/index.md +94 -0
- package/templates/hono/docs/mcp/sequential-thinking.md +101 -0
- package/templates/hono/docs/mcp/sgrep.md +105 -0
- package/templates/hono/docs/skills/gemini-review/SKILL.md +220 -0
- package/templates/hono/docs/skills/gemini-review/references/checklists.md +136 -0
- package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +303 -0
- package/templates/tanstack-start/CLAUDE.md +279 -0
- package/templates/tanstack-start/docs/architecture/architecture.md +547 -0
- package/templates/tanstack-start/docs/deployment/cloudflare.md +346 -0
- package/templates/tanstack-start/docs/deployment/index.md +102 -0
- package/templates/tanstack-start/docs/deployment/nitro.md +211 -0
- package/templates/tanstack-start/docs/deployment/railway.md +364 -0
- package/templates/tanstack-start/docs/deployment/vercel.md +287 -0
- package/templates/tanstack-start/docs/design/accessibility.md +433 -0
- package/templates/tanstack-start/docs/design/color.md +235 -0
- package/templates/tanstack-start/docs/design/components.md +409 -0
- package/templates/tanstack-start/docs/design/index.md +107 -0
- package/templates/tanstack-start/docs/design/safe-area.md +317 -0
- package/templates/tanstack-start/docs/design/spacing.md +341 -0
- package/templates/tanstack-start/docs/design/tailwind-setup.md +470 -0
- package/templates/tanstack-start/docs/design/typography.md +324 -0
- package/templates/tanstack-start/docs/git/index.md +203 -0
- package/templates/tanstack-start/docs/guides/best-practices.md +753 -0
- package/templates/tanstack-start/docs/guides/getting-started.md +304 -0
- package/templates/tanstack-start/docs/guides/husky-lint-staged.md +303 -0
- package/templates/tanstack-start/docs/guides/prettier.md +189 -0
- package/templates/tanstack-start/docs/guides/project-templates.md +710 -0
- package/templates/tanstack-start/docs/library/better-auth/2fa.md +136 -0
- package/templates/tanstack-start/docs/library/better-auth/advanced.md +138 -0
- package/templates/tanstack-start/docs/library/better-auth/index.md +83 -0
- package/templates/tanstack-start/docs/library/better-auth/plugins.md +111 -0
- package/templates/tanstack-start/docs/library/better-auth/session.md +127 -0
- package/templates/tanstack-start/docs/library/better-auth/setup.md +123 -0
- package/templates/tanstack-start/docs/library/prisma/crud.md +218 -0
- package/templates/tanstack-start/docs/library/prisma/index.md +165 -0
- package/templates/tanstack-start/docs/library/prisma/relations.md +191 -0
- package/templates/tanstack-start/docs/library/prisma/schema.md +177 -0
- package/templates/tanstack-start/docs/library/prisma/setup.md +156 -0
- package/templates/tanstack-start/docs/library/prisma/transactions.md +140 -0
- package/templates/tanstack-start/docs/library/tanstack-query/index.md +146 -0
- package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +146 -0
- package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +196 -0
- package/templates/tanstack-start/docs/library/tanstack-query/setup.md +110 -0
- package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +170 -0
- package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +173 -0
- package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +171 -0
- package/templates/tanstack-start/docs/library/tanstack-start/index.md +114 -0
- package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +142 -0
- package/templates/tanstack-start/docs/library/tanstack-start/routing.md +163 -0
- package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +128 -0
- package/templates/tanstack-start/docs/library/tanstack-start/setup.md +85 -0
- package/templates/tanstack-start/docs/library/zod/basic-types.md +186 -0
- package/templates/tanstack-start/docs/library/zod/complex-types.md +204 -0
- package/templates/tanstack-start/docs/library/zod/index.md +186 -0
- package/templates/tanstack-start/docs/library/zod/transforms.md +174 -0
- package/templates/tanstack-start/docs/library/zod/validation.md +208 -0
- package/templates/tanstack-start/docs/mcp/context7.md +204 -0
- package/templates/tanstack-start/docs/mcp/index.md +116 -0
- package/templates/tanstack-start/docs/mcp/sequential-thinking.md +180 -0
- package/templates/tanstack-start/docs/mcp/sgrep.md +174 -0
- package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +220 -0
- package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +150 -0
- package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +293 -0
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# 배포 가이드
|
|
2
|
+
|
|
3
|
+
> Hono 애플리케이션 배포 옵션
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 지원 런타임
|
|
8
|
+
|
|
9
|
+
Hono는 Web Standards 기반으로 다양한 런타임에서 동작합니다.
|
|
10
|
+
|
|
11
|
+
| 런타임 | 특징 |
|
|
12
|
+
|--------|------|
|
|
13
|
+
| **Cloudflare Workers** | 엣지 컴퓨팅, 글로벌 배포 |
|
|
14
|
+
| **Deno Deploy** | TypeScript 네이티브 |
|
|
15
|
+
| **Bun** | 빠른 실행 속도 |
|
|
16
|
+
| **Node.js** | 전통적인 서버 환경 |
|
|
17
|
+
| **AWS Lambda** | 서버리스 |
|
|
18
|
+
| **Vercel** | 프론트엔드 통합 |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Cloudflare Workers
|
|
23
|
+
|
|
24
|
+
### 프로젝트 생성
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npm create hono@latest my-app
|
|
28
|
+
# cloudflare-workers 템플릿 선택
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### wrangler.toml
|
|
32
|
+
|
|
33
|
+
```toml
|
|
34
|
+
name = "my-hono-app"
|
|
35
|
+
main = "src/index.ts"
|
|
36
|
+
compatibility_date = "2024-01-01"
|
|
37
|
+
|
|
38
|
+
[vars]
|
|
39
|
+
NODE_ENV = "production"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 배포
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# 로컬 개발
|
|
46
|
+
npm run dev
|
|
47
|
+
|
|
48
|
+
# 배포
|
|
49
|
+
npm run deploy
|
|
50
|
+
# 또는
|
|
51
|
+
npx wrangler deploy
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 환경 변수
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# 시크릿 설정
|
|
58
|
+
npx wrangler secret put DATABASE_URL
|
|
59
|
+
npx wrangler secret put JWT_SECRET
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 로컬 환경 변수 (.dev.vars)
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
DATABASE_URL=postgresql://...
|
|
66
|
+
JWT_SECRET=your-secret
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### GitHub Actions 배포
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
name: Deploy
|
|
73
|
+
|
|
74
|
+
on:
|
|
75
|
+
push:
|
|
76
|
+
branches:
|
|
77
|
+
- main
|
|
78
|
+
|
|
79
|
+
jobs:
|
|
80
|
+
deploy:
|
|
81
|
+
runs-on: ubuntu-latest
|
|
82
|
+
steps:
|
|
83
|
+
- uses: actions/checkout@v4
|
|
84
|
+
- name: Deploy
|
|
85
|
+
uses: cloudflare/wrangler-action@v3
|
|
86
|
+
with:
|
|
87
|
+
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Bun
|
|
93
|
+
|
|
94
|
+
### 프로젝트 생성
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
bun create hono@latest my-app
|
|
98
|
+
# bun 템플릿 선택
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 실행
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
bun run src/index.ts
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### package.json
|
|
108
|
+
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"scripts": {
|
|
112
|
+
"dev": "bun run --hot src/index.ts",
|
|
113
|
+
"start": "bun run src/index.ts"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Docker 배포
|
|
119
|
+
|
|
120
|
+
```dockerfile
|
|
121
|
+
FROM oven/bun:1 AS base
|
|
122
|
+
WORKDIR /app
|
|
123
|
+
|
|
124
|
+
# 의존성 설치
|
|
125
|
+
COPY package.json bun.lockb ./
|
|
126
|
+
RUN bun install --frozen-lockfile
|
|
127
|
+
|
|
128
|
+
# 소스 복사
|
|
129
|
+
COPY . .
|
|
130
|
+
|
|
131
|
+
# 실행
|
|
132
|
+
EXPOSE 3000
|
|
133
|
+
CMD ["bun", "run", "src/index.ts"]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Node.js
|
|
139
|
+
|
|
140
|
+
### 설치
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
npm install @hono/node-server
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Entry Point
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
import { serve } from '@hono/node-server'
|
|
150
|
+
import app from './app'
|
|
151
|
+
|
|
152
|
+
serve({
|
|
153
|
+
fetch: app.fetch,
|
|
154
|
+
port: 3000,
|
|
155
|
+
})
|
|
156
|
+
|
|
157
|
+
console.log('Server is running on http://localhost:3000')
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### package.json
|
|
161
|
+
|
|
162
|
+
```json
|
|
163
|
+
{
|
|
164
|
+
"scripts": {
|
|
165
|
+
"dev": "tsx watch src/index.ts",
|
|
166
|
+
"build": "tsc",
|
|
167
|
+
"start": "node dist/index.js"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Deno
|
|
175
|
+
|
|
176
|
+
### 프로젝트 생성
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
deno init --npm hono@latest my-app
|
|
180
|
+
# deno 템플릿 선택
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### deno.json
|
|
184
|
+
|
|
185
|
+
```json
|
|
186
|
+
{
|
|
187
|
+
"tasks": {
|
|
188
|
+
"dev": "deno run --allow-net --allow-env --watch src/index.ts",
|
|
189
|
+
"start": "deno run --allow-net --allow-env src/index.ts"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Deno Deploy
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
deployctl deploy --project=my-app src/index.ts
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## Vercel
|
|
203
|
+
|
|
204
|
+
### vercel.json
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
{
|
|
208
|
+
"builds": [
|
|
209
|
+
{
|
|
210
|
+
"src": "src/index.ts",
|
|
211
|
+
"use": "@vercel/node"
|
|
212
|
+
}
|
|
213
|
+
],
|
|
214
|
+
"routes": [
|
|
215
|
+
{
|
|
216
|
+
"src": "/(.*)",
|
|
217
|
+
"dest": "src/index.ts"
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 환경별 설정
|
|
226
|
+
|
|
227
|
+
### 환경 변수 타입
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
// types/env.d.ts
|
|
231
|
+
type Bindings = {
|
|
232
|
+
NODE_ENV: 'development' | 'production' | 'test'
|
|
233
|
+
DATABASE_URL: string
|
|
234
|
+
JWT_SECRET: string
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
// app.ts
|
|
238
|
+
const app = new Hono<{ Bindings: Bindings }>()
|
|
239
|
+
|
|
240
|
+
app.get('/', (c) => {
|
|
241
|
+
const env = c.env.NODE_ENV
|
|
242
|
+
return c.json({ env })
|
|
243
|
+
})
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### 환경별 설정 분기
|
|
247
|
+
|
|
248
|
+
```typescript
|
|
249
|
+
const app = new Hono()
|
|
250
|
+
|
|
251
|
+
// 개발 환경에서만 logger
|
|
252
|
+
if (process.env.NODE_ENV === 'development') {
|
|
253
|
+
app.use(logger())
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// 프로덕션에서만 보안 헤더
|
|
257
|
+
if (process.env.NODE_ENV === 'production') {
|
|
258
|
+
app.use(secureHeaders())
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## 헬스 체크
|
|
265
|
+
|
|
266
|
+
```typescript
|
|
267
|
+
app.get('/health', (c) => {
|
|
268
|
+
return c.json({
|
|
269
|
+
status: 'ok',
|
|
270
|
+
timestamp: new Date().toISOString(),
|
|
271
|
+
})
|
|
272
|
+
})
|
|
273
|
+
|
|
274
|
+
app.get('/ready', async (c) => {
|
|
275
|
+
try {
|
|
276
|
+
// DB 연결 확인
|
|
277
|
+
await prisma.$queryRaw`SELECT 1`
|
|
278
|
+
return c.json({ status: 'ready' })
|
|
279
|
+
} catch {
|
|
280
|
+
return c.json({ status: 'not ready' }, 503)
|
|
281
|
+
}
|
|
282
|
+
})
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## 관련 문서
|
|
288
|
+
|
|
289
|
+
- [Cloudflare Workers 상세](./cloudflare.md)
|
|
290
|
+
- [Bun 상세](./bun.md)
|
|
291
|
+
- [Node.js 상세](./nodejs.md)
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Git 커밋 컨벤션
|
|
2
|
+
|
|
3
|
+
> 프로젝트 Git 워크플로우 및 커밋 메시지 규칙
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## ⛔ 절대 금지 사항
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
❌ "Generated with Claude Code" 포함 금지
|
|
11
|
+
❌ "🤖" 또는 AI 관련 이모지 포함 금지
|
|
12
|
+
❌ "Co-Authored-By:" 헤더 포함 금지
|
|
13
|
+
❌ AI/봇이 작성했다는 어떤 표시도 금지
|
|
14
|
+
❌ 커밋 메시지 여러 줄 작성 금지
|
|
15
|
+
❌ 커밋 메시지에 이모지 사용 금지
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 커밋 메시지 형식
|
|
21
|
+
|
|
22
|
+
### 기본 형식
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
<prefix>: <설명>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- **한 줄만 작성**
|
|
29
|
+
- **본문 없음**
|
|
30
|
+
- **마침표 없음**
|
|
31
|
+
- **이모지 없음**
|
|
32
|
+
|
|
33
|
+
### Prefix 목록
|
|
34
|
+
|
|
35
|
+
| Prefix | 용도 | 예시 |
|
|
36
|
+
|--------|------|------|
|
|
37
|
+
| `feat` | 새 기능 | `feat: 사용자 인증 API 추가` |
|
|
38
|
+
| `fix` | 버그 수정 | `fix: JWT 토큰 검증 오류 수정` |
|
|
39
|
+
| `refactor` | 리팩토링 | `refactor: 사용자 서비스 구조 개선` |
|
|
40
|
+
| `style` | 코드 스타일 | `style: prettier 적용` |
|
|
41
|
+
| `docs` | 문서 | `docs: API 문서 업데이트` |
|
|
42
|
+
| `test` | 테스트 | `test: 인증 미들웨어 테스트 추가` |
|
|
43
|
+
| `chore` | 기타 작업 | `chore: 의존성 업데이트` |
|
|
44
|
+
| `perf` | 성능 개선 | `perf: 쿼리 최적화` |
|
|
45
|
+
| `ci` | CI/CD | `ci: GitHub Actions 설정` |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 좋은 예시 vs 나쁜 예시
|
|
50
|
+
|
|
51
|
+
### ✅ 좋은 예시
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
feat: 사용자 로그인 API 추가
|
|
55
|
+
fix: 세션 만료 오류 수정
|
|
56
|
+
docs: README 업데이트
|
|
57
|
+
refactor: 인증 미들웨어 분리
|
|
58
|
+
test: 사용자 CRUD 테스트 추가
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### ❌ 나쁜 예시
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# 이모지 사용
|
|
65
|
+
🚀 feat: 새 기능 추가
|
|
66
|
+
|
|
67
|
+
# 여러 줄
|
|
68
|
+
feat: 새 기능 추가
|
|
69
|
+
|
|
70
|
+
상세 설명...
|
|
71
|
+
|
|
72
|
+
# AI 표시
|
|
73
|
+
feat: 로그인 기능 추가
|
|
74
|
+
|
|
75
|
+
Generated with Claude Code
|
|
76
|
+
|
|
77
|
+
# Co-Authored-By 포함
|
|
78
|
+
feat: 기능 추가
|
|
79
|
+
|
|
80
|
+
Co-Authored-By: Claude <noreply@anthropic.com>
|
|
81
|
+
|
|
82
|
+
# 마침표 사용
|
|
83
|
+
feat: 새 기능 추가.
|
|
84
|
+
|
|
85
|
+
# 모호한 설명
|
|
86
|
+
fix: 버그 수정
|
|
87
|
+
chore: 업데이트
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## 커밋 명령어
|
|
93
|
+
|
|
94
|
+
### 기본 커밋
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
git add .
|
|
98
|
+
git commit -m "feat: 사용자 인증 API 추가"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 파일 지정 커밋
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
git add src/routes/users.ts src/validators/user.ts
|
|
105
|
+
git commit -m "feat: 사용자 CRUD API 구현"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 브랜치 전략
|
|
111
|
+
|
|
112
|
+
### 브랜치 네이밍
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
feature/<기능명>
|
|
116
|
+
fix/<버그명>
|
|
117
|
+
refactor/<대상>
|
|
118
|
+
docs/<문서명>
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 예시
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
git checkout -b feature/user-auth
|
|
125
|
+
git checkout -b fix/jwt-validation
|
|
126
|
+
git checkout -b refactor/middleware-structure
|
|
127
|
+
git checkout -b docs/api-reference
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 워크플로우
|
|
133
|
+
|
|
134
|
+
### 1. 브랜치 생성
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
git checkout -b feature/new-feature
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 2. 작업 및 커밋
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# 작업 진행
|
|
144
|
+
git add .
|
|
145
|
+
git commit -m "feat: 새 기능 구현"
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### 3. 푸시
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
git push origin feature/new-feature
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 4. PR 생성
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# GitHub에서 PR 생성
|
|
158
|
+
# 또는 gh CLI 사용
|
|
159
|
+
gh pr create --title "feat: 새 기능 추가" --body "설명"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 커밋 전 체크리스트
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
□ 커밋 메시지가 한 줄인가?
|
|
168
|
+
□ 적절한 prefix를 사용했는가?
|
|
169
|
+
□ 이모지가 없는가?
|
|
170
|
+
□ AI 관련 표시가 없는가?
|
|
171
|
+
□ Co-Authored-By가 없는가?
|
|
172
|
+
□ 마침표가 없는가?
|
|
173
|
+
□ 설명이 명확한가?
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 관련 문서
|
|
179
|
+
|
|
180
|
+
- [CLAUDE.md](../../CLAUDE.md)
|