@einja/dev-cli 0.1.30 → 0.1.32
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/README.md +1 -0
- package/dist/commands/task-loop/index.d.ts.map +1 -1
- package/dist/commands/task-loop/index.js +149 -16
- package/dist/commands/task-loop/index.js.map +1 -1
- package/dist/commands/task-loop/lib/task-state-manager.d.ts +33 -2
- package/dist/commands/task-loop/lib/task-state-manager.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/task-state-manager.js +74 -3
- package/dist/commands/task-loop/lib/task-state-manager.js.map +1 -1
- package/dist/commands/task-loop/lib/task-state-manager.test.js +252 -1
- package/dist/commands/task-loop/lib/task-state-manager.test.js.map +1 -1
- package/dist/commands/task-loop/lib/types.d.ts +17 -0
- package/dist/commands/task-loop/lib/types.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/vibe-kanban-client.d.ts +25 -0
- package/dist/commands/task-loop/lib/vibe-kanban-client.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/vibe-kanban-client.js +63 -0
- package/dist/commands/task-loop/lib/vibe-kanban-client.js.map +1 -1
- package/dist/commands/task-loop/lib/vibe-kanban-client.test.js +184 -0
- package/dist/commands/task-loop/lib/vibe-kanban-client.test.js.map +1 -1
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.d.ts +47 -0
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js +116 -0
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.js.map +1 -1
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.test.d.ts +2 -0
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.test.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.test.js +293 -0
- package/dist/commands/task-loop/lib/vibe-kanban-rest-client.test.js.map +1 -0
- package/package.json +1 -1
- package/presets/default/.claude/agents/einja/codex-agent.md +117 -0
- package/presets/default/.claude/agents/einja/specs/spec-requirements-generator.md +15 -6
- package/presets/default/.claude/hooks/einja/playwright-resize.sh +12 -2
- package/presets/default/.claude/settings.json +15 -0
- package/presets/default/.claude/skills/einja-backend-architecture/SKILL.md +4 -0
- package/presets/default/.claude/skills/einja-output-format/SKILL.md +21 -0
- package/presets/default/.claude/skills/einja-spec-context-loader/SKILL.md +1 -1
- package/scaffolds/.mcp.json +6 -9
- package/scaffolds/example/specs/issues/issue999-example-task/qa-tests/scenarios.md +4 -4
- package/scaffolds/example/specs/issues/issue999-example-task/requirements.md +131 -100
- package/scaffolds/example/specs/issues/issue999-example-task/tasks.md +4 -3
- package/scaffolds/instructions/task-vibe-kanban-loop.md +38 -17
- package/scaffolds/instructions/vercel-cli-reference.md +451 -0
- package/scaffolds/steering/README.md +1 -0
- package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +13 -1
- package/scaffolds/steering/development/backend-architecture.md +2 -1
- package/scaffolds/steering/development/database-guidelines.md +239 -0
- package/scaffolds/steering/development/frontend-development.md +80 -5
- package/scaffolds/steering/development/review-guidelines.md +5 -0
- package/scaffolds/steering/development-workflow.md +15 -1
- package/scaffolds/steering/infrastructure/deployment.md +27 -21
- package/scaffolds/steering/task-management.md +21 -0
- package/scaffolds/templates/README.md +11 -7
- package/scaffolds/templates/requirements.md.template +44 -32
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
# Vercel CLI/API リファレンス
|
|
2
|
+
|
|
3
|
+
## 概要
|
|
4
|
+
|
|
5
|
+
このドキュメントは、Vercelプロジェクトのセットアップにおいて、どの操作がCLI/API/vercel.jsonで可能かを明確にしたリファレンスです。
|
|
6
|
+
|
|
7
|
+
ダッシュボード操作中心のセットアップ手順は [デプロイセットアップ手順](./deployment-setup.md) を参照してください。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 操作別対応表
|
|
12
|
+
|
|
13
|
+
| 操作 | CLI | API | vercel.json | Dashboard |
|
|
14
|
+
|------|:---:|:---:|:-----------:|:---------:|
|
|
15
|
+
| プロジェクト作成 | ✅ | ✅ | ❌ | ✅ |
|
|
16
|
+
| GitHubリポジトリ接続 | ✅ | ✅ | ❌ | ✅ |
|
|
17
|
+
| Root Directory設定 | ❌ | ✅ | ❌ | ✅ |
|
|
18
|
+
| ビルドコマンド設定 | ❌ | ✅ | ✅ | ✅ |
|
|
19
|
+
| インストールコマンド設定 | ❌ | ✅ | ✅ | ✅ |
|
|
20
|
+
| 環境変数追加(標準環境) | ✅ | ✅ | ❌ | ✅ |
|
|
21
|
+
| 環境変数追加(カスタム環境) | ❌ | ✅ | ❌ | ✅ |
|
|
22
|
+
| カスタム環境作成 | ❌ | ✅ | ❌ | ✅ |
|
|
23
|
+
| 環境変数の参照・一覧 | ✅ | ✅ | ❌ | ✅ |
|
|
24
|
+
| 環境変数のpull(.envファイル生成) | ✅ | ❌ | ❌ | ❌ |
|
|
25
|
+
|
|
26
|
+
### 凡例
|
|
27
|
+
- ✅: 対応(推奨または唯一の方法)
|
|
28
|
+
- ❌: 非対応
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## CLIコマンドリファレンス
|
|
33
|
+
|
|
34
|
+
### 認証・チーム切り替え
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# GitHubアカウントでログイン
|
|
38
|
+
vercel login --github
|
|
39
|
+
|
|
40
|
+
# チーム/スコープの切り替え
|
|
41
|
+
vercel switch <team-slug>
|
|
42
|
+
|
|
43
|
+
# 現在のログイン情報確認
|
|
44
|
+
vercel whoami
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### プロジェクト操作
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# プロジェクト一覧
|
|
51
|
+
vercel project ls
|
|
52
|
+
|
|
53
|
+
# プロジェクト詳細確認
|
|
54
|
+
vercel project inspect <project-name>
|
|
55
|
+
|
|
56
|
+
# プロジェクトとローカルディレクトリの紐付け
|
|
57
|
+
vercel link --project=<project-name> --yes
|
|
58
|
+
|
|
59
|
+
# プロジェクトの紐付け解除
|
|
60
|
+
vercel unlink
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Git接続
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# GitHubリポジトリとの接続
|
|
67
|
+
vercel git connect <github-url> --yes
|
|
68
|
+
|
|
69
|
+
# 接続解除
|
|
70
|
+
vercel git disconnect --yes
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 環境変数管理
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# 環境変数一覧
|
|
77
|
+
vercel env ls
|
|
78
|
+
|
|
79
|
+
# 環境変数追加(対話式)
|
|
80
|
+
vercel env add <name>
|
|
81
|
+
|
|
82
|
+
# 環境変数追加(値を指定)
|
|
83
|
+
echo "<value>" | vercel env add <name> <environment>
|
|
84
|
+
# environment: production, preview, development
|
|
85
|
+
|
|
86
|
+
# 環境変数削除
|
|
87
|
+
vercel env rm <name> <environment>
|
|
88
|
+
|
|
89
|
+
# 環境変数をローカル.envファイルにpull
|
|
90
|
+
vercel env pull .env.local
|
|
91
|
+
vercel env pull --environment=production .env.production.local
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### デプロイ
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# プレビューデプロイ
|
|
98
|
+
vercel
|
|
99
|
+
|
|
100
|
+
# 本番デプロイ
|
|
101
|
+
vercel --prod
|
|
102
|
+
|
|
103
|
+
# ビルドログの確認
|
|
104
|
+
vercel logs <deployment-url>
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### CLIの制限事項
|
|
108
|
+
|
|
109
|
+
CLIでは以下の操作が**できません**:
|
|
110
|
+
|
|
111
|
+
1. **Root Directory設定**: `vercel.json`やAPIで設定が必要
|
|
112
|
+
2. **カスタム環境への環境変数設定**: APIまたはDashboardで設定が必要
|
|
113
|
+
3. **カスタム環境の作成**: APIまたはDashboardで作成が必要
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## APIリファレンス
|
|
118
|
+
|
|
119
|
+
### 認証
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Bearer Token認証
|
|
123
|
+
Authorization: Bearer <VERCEL_TOKEN>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
環境変数 `VERCEL_TOKEN` を設定するか、リクエスト時に指定します。
|
|
127
|
+
|
|
128
|
+
### プロジェクト設定変更
|
|
129
|
+
|
|
130
|
+
**エンドポイント**: `PATCH /v9/projects/{idOrName}`
|
|
131
|
+
|
|
132
|
+
Root Directoryやビルドコマンドを設定する際に使用します。
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
curl -X PATCH "https://api.vercel.com/v9/projects/<project-id-or-name>?teamId=<team-id>" \
|
|
136
|
+
-H "Authorization: Bearer $VERCEL_TOKEN" \
|
|
137
|
+
-H "Content-Type: application/json" \
|
|
138
|
+
-d '{
|
|
139
|
+
"rootDirectory": "apps/<app-name>",
|
|
140
|
+
"buildCommand": "pnpm turbo run build --filter=@repo/<app-name>...",
|
|
141
|
+
"installCommand": "pnpm install",
|
|
142
|
+
"framework": "nextjs"
|
|
143
|
+
}'
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**設定可能なフィールド**:
|
|
147
|
+
|
|
148
|
+
| フィールド | 説明 |
|
|
149
|
+
|-----------|------|
|
|
150
|
+
| `rootDirectory` | プロジェクトのルートディレクトリ |
|
|
151
|
+
| `buildCommand` | ビルドコマンド |
|
|
152
|
+
| `installCommand` | インストールコマンド |
|
|
153
|
+
| `outputDirectory` | 出力ディレクトリ |
|
|
154
|
+
| `framework` | フレームワーク(`nextjs`等) |
|
|
155
|
+
|
|
156
|
+
### カスタム環境作成
|
|
157
|
+
|
|
158
|
+
**エンドポイント**: `POST /v9/projects/{idOrName}/custom-environments`
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
curl -X POST "https://api.vercel.com/v9/projects/<project-id-or-name>/custom-environments?teamId=<team-id>" \
|
|
162
|
+
-H "Authorization: Bearer $VERCEL_TOKEN" \
|
|
163
|
+
-H "Content-Type: application/json" \
|
|
164
|
+
-d '{
|
|
165
|
+
"slug": "develop",
|
|
166
|
+
"name": "Develop",
|
|
167
|
+
"branchMatcher": {
|
|
168
|
+
"type": "equals",
|
|
169
|
+
"pattern": "develop"
|
|
170
|
+
}
|
|
171
|
+
}'
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**branchMatcherのtype**:
|
|
175
|
+
|
|
176
|
+
| type | 説明 | 例 |
|
|
177
|
+
|------|------|-----|
|
|
178
|
+
| `equals` | 完全一致 | `develop` → developブランチのみ |
|
|
179
|
+
| `startsWith` | 前方一致 | `feature/` → feature/*ブランチ |
|
|
180
|
+
| `endsWith` | 後方一致 | `-hotfix` → *-hotfixブランチ |
|
|
181
|
+
|
|
182
|
+
### 環境変数追加(カスタム環境対応)
|
|
183
|
+
|
|
184
|
+
**エンドポイント**: `POST /v10/projects/{idOrName}/env`
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
curl -X POST "https://api.vercel.com/v10/projects/<project-id-or-name>/env?teamId=<team-id>" \
|
|
188
|
+
-H "Authorization: Bearer $VERCEL_TOKEN" \
|
|
189
|
+
-H "Content-Type: application/json" \
|
|
190
|
+
-d '{
|
|
191
|
+
"key": "DOTENV_PRIVATE_KEY_DEVELOP",
|
|
192
|
+
"value": "<your-key>",
|
|
193
|
+
"type": "encrypted",
|
|
194
|
+
"target": ["preview"],
|
|
195
|
+
"customEnvironmentIds": ["<custom-env-id>"]
|
|
196
|
+
}'
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**パラメータ**:
|
|
200
|
+
|
|
201
|
+
| パラメータ | 説明 |
|
|
202
|
+
|-----------|------|
|
|
203
|
+
| `key` | 環境変数名 |
|
|
204
|
+
| `value` | 値 |
|
|
205
|
+
| `type` | `plain`, `encrypted`, `secret` |
|
|
206
|
+
| `target` | `["production"]`, `["preview"]`, `["development"]` |
|
|
207
|
+
| `customEnvironmentIds` | カスタム環境のID配列(オプション) |
|
|
208
|
+
|
|
209
|
+
**重要**: `customEnvironmentIds`を指定することで、特定のカスタム環境にのみ環境変数を設定できます。
|
|
210
|
+
|
|
211
|
+
### カスタム環境一覧取得
|
|
212
|
+
|
|
213
|
+
**エンドポイント**: `GET /v9/projects/{idOrName}/custom-environments`
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
curl "https://api.vercel.com/v9/projects/<project-id-or-name>/custom-environments?teamId=<team-id>" \
|
|
217
|
+
-H "Authorization: Bearer $VERCEL_TOKEN"
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
レスポンスから `customEnvironmentIds` に使用するIDを取得できます。
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## vercel.json設定リファレンス
|
|
225
|
+
|
|
226
|
+
`vercel.json` はリポジトリに配置する設定ファイルで、ビルド設定を定義します。
|
|
227
|
+
|
|
228
|
+
### 基本設定
|
|
229
|
+
|
|
230
|
+
```json
|
|
231
|
+
{
|
|
232
|
+
"buildCommand": "bash scripts/vercel-build-safe.sh web",
|
|
233
|
+
"installCommand": "pnpm install",
|
|
234
|
+
"framework": "nextjs",
|
|
235
|
+
"outputDirectory": ".next"
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### 設定項目
|
|
240
|
+
|
|
241
|
+
| 項目 | 説明 | デフォルト |
|
|
242
|
+
|------|------|-----------|
|
|
243
|
+
| `buildCommand` | ビルドコマンド | フレームワークに依存 |
|
|
244
|
+
| `installCommand` | 依存関係インストールコマンド | `npm install` |
|
|
245
|
+
| `outputDirectory` | ビルド出力ディレクトリ | フレームワークに依存 |
|
|
246
|
+
| `framework` | フレームワーク指定 | 自動検出 |
|
|
247
|
+
| `regions` | デプロイリージョン | `["iad1"]` |
|
|
248
|
+
|
|
249
|
+
### 注意事項
|
|
250
|
+
|
|
251
|
+
- `vercel.json` では**Root Directoryは設定できません**
|
|
252
|
+
- Root Directoryは Dashboard または API で設定する必要があります
|
|
253
|
+
- モノレポでは各アプリの `vercel.json` がそのアプリのビルド設定として使用されます
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 実践例:新規アプリのセットアップ手順
|
|
258
|
+
|
|
259
|
+
以下は、モノレポに新しいアプリ(例: `apps/admin`)を追加し、Vercelにデプロイする完全な手順です。
|
|
260
|
+
|
|
261
|
+
### 前提条件
|
|
262
|
+
|
|
263
|
+
- Vercel CLIがインストール済み(`npm i -g vercel`)
|
|
264
|
+
- `VERCEL_TOKEN` 環境変数が設定済み
|
|
265
|
+
- チームIDを把握している
|
|
266
|
+
|
|
267
|
+
### Step 1: vercel.jsonの作成
|
|
268
|
+
|
|
269
|
+
`apps/admin/vercel.json`:
|
|
270
|
+
|
|
271
|
+
```json
|
|
272
|
+
{
|
|
273
|
+
"buildCommand": "bash scripts/vercel-build-safe.sh admin",
|
|
274
|
+
"installCommand": "pnpm install",
|
|
275
|
+
"framework": "nextjs"
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### Step 2: CLIでプロジェクト作成・Git接続
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# チーム切り替え
|
|
283
|
+
vercel switch <team-slug>
|
|
284
|
+
|
|
285
|
+
# プロジェクト作成とGit接続
|
|
286
|
+
vercel link --project=<project-name> --yes
|
|
287
|
+
vercel git connect https://github.com/<org>/<repo> --yes
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
### Step 3: APIでRoot Directory設定
|
|
291
|
+
|
|
292
|
+
CLIではRoot Directoryを設定できないため、APIを使用します。
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
curl -X PATCH "https://api.vercel.com/v9/projects/<project-name>?teamId=<team-id>" \
|
|
296
|
+
-H "Authorization: Bearer $VERCEL_TOKEN" \
|
|
297
|
+
-H "Content-Type: application/json" \
|
|
298
|
+
-d '{
|
|
299
|
+
"rootDirectory": "apps/admin"
|
|
300
|
+
}'
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Step 4: カスタム環境の作成(必要な場合)
|
|
304
|
+
|
|
305
|
+
```bash
|
|
306
|
+
# Develop環境を作成
|
|
307
|
+
curl -X POST "https://api.vercel.com/v9/projects/<project-name>/custom-environments?teamId=<team-id>" \
|
|
308
|
+
-H "Authorization: Bearer $VERCEL_TOKEN" \
|
|
309
|
+
-H "Content-Type: application/json" \
|
|
310
|
+
-d '{
|
|
311
|
+
"slug": "develop",
|
|
312
|
+
"name": "Develop",
|
|
313
|
+
"branchMatcher": {
|
|
314
|
+
"type": "equals",
|
|
315
|
+
"pattern": "develop"
|
|
316
|
+
}
|
|
317
|
+
}'
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
### Step 5: 環境変数の設定
|
|
321
|
+
|
|
322
|
+
**標準環境(Production/Preview)への設定 - CLIで可能**:
|
|
323
|
+
|
|
324
|
+
```bash
|
|
325
|
+
# Production環境
|
|
326
|
+
echo "<production-key>" | vercel env add DOTENV_PRIVATE_KEY_PRODUCTION production
|
|
327
|
+
|
|
328
|
+
# Preview環境(全プレビュー)
|
|
329
|
+
echo "<preview-key>" | vercel env add DOTENV_PRIVATE_KEY_PREVIEW preview
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**カスタム環境への設定 - APIが必要**:
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
# カスタム環境ID取得
|
|
336
|
+
CUSTOM_ENV_ID=$(curl -s "https://api.vercel.com/v9/projects/<project-name>/custom-environments?teamId=<team-id>" \
|
|
337
|
+
-H "Authorization: Bearer $VERCEL_TOKEN" \
|
|
338
|
+
| jq -r '.environments[] | select(.slug=="develop") | .id')
|
|
339
|
+
|
|
340
|
+
# カスタム環境に環境変数設定
|
|
341
|
+
curl -X POST "https://api.vercel.com/v10/projects/<project-name>/env?teamId=<team-id>" \
|
|
342
|
+
-H "Authorization: Bearer $VERCEL_TOKEN" \
|
|
343
|
+
-H "Content-Type: application/json" \
|
|
344
|
+
-d '{
|
|
345
|
+
"key": "DOTENV_PRIVATE_KEY_DEVELOP",
|
|
346
|
+
"value": "<develop-key>",
|
|
347
|
+
"type": "encrypted",
|
|
348
|
+
"target": ["preview"],
|
|
349
|
+
"customEnvironmentIds": ["'"$CUSTOM_ENV_ID"'"]
|
|
350
|
+
}'
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### Step 6: デプロイ確認
|
|
354
|
+
|
|
355
|
+
```bash
|
|
356
|
+
# 手動デプロイ(プレビュー)
|
|
357
|
+
vercel
|
|
358
|
+
|
|
359
|
+
# 本番デプロイ
|
|
360
|
+
vercel --prod
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## トラブルシューティング
|
|
366
|
+
|
|
367
|
+
### CLIで環境変数が設定できない
|
|
368
|
+
|
|
369
|
+
**症状**: `vercel env add` でカスタム環境を指定できない
|
|
370
|
+
|
|
371
|
+
**原因**: Vercel CLIはカスタム環境への環境変数設定をサポートしていません
|
|
372
|
+
|
|
373
|
+
**解決策**: APIを使用して `customEnvironmentIds` を指定して設定
|
|
374
|
+
|
|
375
|
+
### Root Directoryが反映されない
|
|
376
|
+
|
|
377
|
+
**症状**: vercel.jsonにrootDirectoryを設定しても反映されない
|
|
378
|
+
|
|
379
|
+
**原因**: vercel.jsonではRoot Directoryは設定できません
|
|
380
|
+
|
|
381
|
+
**解決策**: DashboardまたはAPIで設定
|
|
382
|
+
|
|
383
|
+
### APIでチームプロジェクトにアクセスできない
|
|
384
|
+
|
|
385
|
+
**症状**: 404エラーが返る
|
|
386
|
+
|
|
387
|
+
**原因**: `teamId`パラメータが不足している
|
|
388
|
+
|
|
389
|
+
**解決策**: URLに `?teamId=<team-id>` を追加
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
## GitHub Secrets設定(CI/CD用)
|
|
394
|
+
|
|
395
|
+
CI/CDワークフローで使用する環境変数は**GitHub Secrets**で管理します。
|
|
396
|
+
|
|
397
|
+
> **重要**: dotenvxの`.env.ci`ファイルは非推奨です。複数のenvファイルを読み込む際に変数の競合が発生し、デプロイ時に誤った値が使用されるリスクがあるため、GitHub Secretsに一元化しています。
|
|
398
|
+
|
|
399
|
+
### 必要なSecrets
|
|
400
|
+
|
|
401
|
+
| Secret名 | 説明 |
|
|
402
|
+
|---------|------|
|
|
403
|
+
| `VERCEL_TOKEN` | Vercel APIトークン |
|
|
404
|
+
| `VERCEL_ORG_ID` | VercelチームID |
|
|
405
|
+
| `VERCEL_PROJECT_ID_WEB` | WebアプリのプロジェクトID |
|
|
406
|
+
| `VERCEL_PROJECT_ID_ADMIN` | AdminアプリのプロジェクトID |
|
|
407
|
+
| `TURBO_TOKEN` | Turborepoリモートキャッシュトークン |
|
|
408
|
+
| `TURBO_TEAM` | TurborepoチームID |
|
|
409
|
+
|
|
410
|
+
### gh CLIでの設定
|
|
411
|
+
|
|
412
|
+
```bash
|
|
413
|
+
# Secret一覧確認
|
|
414
|
+
gh secret list --repo <owner>/<repo>
|
|
415
|
+
|
|
416
|
+
# Secret設定
|
|
417
|
+
gh secret set VERCEL_TOKEN --repo <owner>/<repo> --body "<token>"
|
|
418
|
+
|
|
419
|
+
# 複数Secretを一括設定
|
|
420
|
+
gh secret set VERCEL_ORG_ID --repo <owner>/<repo> --body "<org-id>"
|
|
421
|
+
gh secret set VERCEL_PROJECT_ID_WEB --repo <owner>/<repo> --body "<project-id>"
|
|
422
|
+
gh secret set VERCEL_PROJECT_ID_ADMIN --repo <owner>/<repo> --body "<project-id>"
|
|
423
|
+
gh secret set TURBO_TOKEN --repo <owner>/<repo> --body "<token>"
|
|
424
|
+
gh secret set TURBO_TEAM --repo <owner>/<repo> --body "<team-id>"
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### CI/CDワークフローでの使用
|
|
428
|
+
|
|
429
|
+
```yaml
|
|
430
|
+
# .github/workflows/ci.yml
|
|
431
|
+
jobs:
|
|
432
|
+
deploy-web:
|
|
433
|
+
runs-on: ubuntu-latest
|
|
434
|
+
env:
|
|
435
|
+
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
|
|
436
|
+
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
|
|
437
|
+
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID_WEB }}
|
|
438
|
+
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
439
|
+
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
## 関連ドキュメント
|
|
445
|
+
|
|
446
|
+
- [デプロイセットアップ手順(Dashboard操作)](./deployment-setup.md)
|
|
447
|
+
- [環境変数セットアップ手順](./environment-setup.md)
|
|
448
|
+
- [デプロイメント設計方針](../steering/infrastructure/deployment.md)
|
|
449
|
+
- [Vercel CLI公式ドキュメント](https://vercel.com/docs/cli)
|
|
450
|
+
- [Vercel REST API公式ドキュメント](https://vercel.com/docs/rest-api)
|
|
451
|
+
- [GitHub CLI公式ドキュメント](https://cli.github.com/manual/)
|
|
@@ -98,6 +98,7 @@
|
|
|
98
98
|
| ドキュメント | 説明 | 対象者 |
|
|
99
99
|
|-------------|------|--------|
|
|
100
100
|
| [データベーススキーマ設計](db-schema-design.md) | Prismaスキーマ、テーブル定義、リレーション設計 | バックエンド開発者 |
|
|
101
|
+
| [データベースガイドライン](development/database-guidelines.md) | PostgreSQL日付型の使い分け、Prisma型マッピング | バックエンド開発者 |
|
|
101
102
|
|
|
102
103
|
### インフラストラクチャ
|
|
103
104
|
| ドキュメント | 説明 | 対象者 |
|
|
@@ -18,8 +18,11 @@
|
|
|
18
18
|
- 実装手段(特定フレームワーク、DB テーブル構造など)を強制する。
|
|
19
19
|
|
|
20
20
|
### 振る舞い駆動テンプレート
|
|
21
|
+
|
|
22
|
+
> **Note**: `ACx.y:` の直後に記載する「振る舞いの名前」は、この受け入れ基準の内容を1文で要約したものです。Given/When/Thenの詳細を読まなくても概要が把握できるようにしてください。
|
|
23
|
+
|
|
21
24
|
```
|
|
22
|
-
ACx.y:
|
|
25
|
+
ACx.y: <振る舞いの1文要約>
|
|
23
26
|
- 前提: <状態/入力/役割>
|
|
24
27
|
- 操作: <ユーザー操作 or システムイベント>
|
|
25
28
|
- 期待結果: <観測可能なアウトプット>(例: HTTP ステータス/レスポンス/DB 変化/イベント)
|
|
@@ -28,6 +31,15 @@ ACx.y: <振る舞いの名前>
|
|
|
28
31
|
- 補足: <ビジネスルールやエッジケース>
|
|
29
32
|
```
|
|
30
33
|
|
|
34
|
+
> **Markdown形式(requirements.mdで使用)**: 上記テンプレートをrequirements.mdに記載する場合は、以下のチェックボックス付きインデント形式を使用してください:
|
|
35
|
+
> ```
|
|
36
|
+
> - [ ] **ACx.y**: <振る舞いの1文要約>
|
|
37
|
+
> - Given: <前提条件>
|
|
38
|
+
> - When: <操作>
|
|
39
|
+
> - Then: <期待結果>
|
|
40
|
+
> - 検証レベル: <Unit | Integration | E2E | Browser>
|
|
41
|
+
> ```
|
|
42
|
+
|
|
31
43
|
## 2. テスト設計の原則
|
|
32
44
|
|
|
33
45
|
### テストレベルと責務
|
|
@@ -707,7 +707,8 @@ if (process.env.NODE_ENV !== "production") globalForPrisma.prisma = prisma
|
|
|
707
707
|
- **[フロントエンド開発ガイド](frontend-development.md)** - Server/Client Component、Tanstack Query、React Hook Form、Hono Client
|
|
708
708
|
|
|
709
709
|
### データベース
|
|
710
|
-
- **[スキーマ設計](../schema-design.md)** - Prismaスキーマ、テーブル定義、ERD
|
|
710
|
+
- **[スキーマ設計](../db-schema-design.md)** - Prismaスキーマ、テーブル定義、ERD
|
|
711
|
+
- **[データベースガイドライン](database-guidelines.md)** - PostgreSQL日付型の使い分け、Prisma型マッピング
|
|
711
712
|
|
|
712
713
|
### インフラ
|
|
713
714
|
- **[CI/CDパイプライン](../infrastructure/ci-cd.md)** - GitHub Actions、Turborepoキャッシュ
|