@einja/dev-cli 0.1.19 → 0.1.21
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/commands/task-loop/lib/dependency-resolver.d.ts.map +1 -1
- package/dist/commands/task-loop/lib/dependency-resolver.js +16 -0
- package/dist/commands/task-loop/lib/dependency-resolver.js.map +1 -1
- package/dist/commands/task-loop/lib/dependency-resolver.test.js +98 -0
- package/dist/commands/task-loop/lib/dependency-resolver.test.js.map +1 -1
- package/dist/commands/task-loop/lib/issue-validator.d.ts +36 -0
- package/dist/commands/task-loop/lib/issue-validator.d.ts.map +1 -0
- package/dist/commands/task-loop/lib/issue-validator.js +367 -0
- package/dist/commands/task-loop/lib/issue-validator.js.map +1 -0
- package/package.json +1 -1
- package/presets/default/.claude/agents/einja/backend-architect.md +3 -1
- package/presets/default/.claude/agents/einja/design-engineer.md +3 -1
- package/presets/default/.claude/agents/einja/docs/docs-updater.md +1 -1
- package/presets/default/.claude/agents/einja/frontend-architect.md +3 -1
- package/presets/default/.claude/agents/einja/frontend-coder.md +3 -1
- package/presets/default/.claude/agents/einja/specs/spec-tasks-generator.md +133 -176
- package/presets/default/.claude/agents/einja/specs/spec-tasks-validator.md +150 -0
- package/presets/default/.claude/agents/einja/task/task-executer.md +19 -11
- package/presets/default/.claude/commands/einja/spec-create.md +85 -14
- package/presets/default/.claude/skills/einja-general-context-loader/SKILL.md +1 -1
- package/presets/default/.claude/skills/einja-spec-context-loader/SKILL.md +4 -4
- package/scaffolds/instructions/deployment-setup.md +74 -6
- package/scaffolds/instructions/environment-setup.md +10 -18
- package/scaffolds/instructions/task-execute.md +31 -31
- package/scaffolds/instructions/task-vibe-kanban-loop.md +5 -5
- package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +1 -1
- package/scaffolds/steering/development-workflow.md +21 -21
- package/scaffolds/steering/infrastructure/deployment.md +18 -7
- package/scaffolds/steering/infrastructure/environment-variables.md +11 -8
- package/scaffolds/steering/task-management.md +131 -7
|
@@ -32,7 +32,7 @@ TodoWriteツールを使用して全体の進捗を可視化し、ユーザー
|
|
|
32
32
|
|
|
33
33
|
### 0. 前提確認フェーズ(ワークフロー開始時)
|
|
34
34
|
|
|
35
|
-
**⚠️ 重要**: 仕様書作成開始前に、以下の
|
|
35
|
+
**⚠️ 重要**: 仕様書作成開始前に、以下の3つの質問で前提を確認すること。
|
|
36
36
|
|
|
37
37
|
#### 0.1 TDD適用判定
|
|
38
38
|
|
|
@@ -86,6 +86,28 @@ AskUserQuestion:
|
|
|
86
86
|
3. **エラー時**: エラーの場合、ユーザーにどう見せたい?
|
|
87
87
|
4. **暗黙の期待**: 「当たり前」だと思っていることは?
|
|
88
88
|
|
|
89
|
+
#### 0.3 IssueBranchBaseの選択
|
|
90
|
+
|
|
91
|
+
**質問3: Issueブランチの作成元を確認**
|
|
92
|
+
|
|
93
|
+
```yaml
|
|
94
|
+
AskUserQuestion:
|
|
95
|
+
question: "Issueブランチ(issue/{issue番号})の作成元(IssueBranchBase)を選択してください"
|
|
96
|
+
header: "IssueBranchBase選択"
|
|
97
|
+
options:
|
|
98
|
+
- label: "デフォルトブランチ(推奨)"
|
|
99
|
+
description: "gitのデフォルトブランチ(main/developなど)を使用します"
|
|
100
|
+
- label: "main"
|
|
101
|
+
description: "mainブランチをIssueBranchBaseとして使用します"
|
|
102
|
+
- label: "develop"
|
|
103
|
+
description: "developブランチをIssueBranchBaseとして使用します"
|
|
104
|
+
- label: "その他(ブランチ名を入力)"
|
|
105
|
+
description: "例: release/2025-01"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**「その他」選択時の対応**:
|
|
109
|
+
- ブランチ名をユーザーに確認し、IssueBranchBaseとして記録する
|
|
110
|
+
|
|
89
111
|
### 1. 外部リソースの確認
|
|
90
112
|
|
|
91
113
|
**AsanaタスクURL**の場合:
|
|
@@ -108,6 +130,12 @@ AskUserQuestion:
|
|
|
108
130
|
- パス指定あり → 指定ディレクトリを使用
|
|
109
131
|
- パス指定なし → `/docs/specs/issues/{機能カテゴリ名}/issue{issue番号}-{機能名}/` で自動作成
|
|
110
132
|
|
|
133
|
+
3. **Issueブランチ作成(MCP + ローカル)**
|
|
134
|
+
- `mcp__github__create_branch` を使用
|
|
135
|
+
- branch: `issue/{issue番号}`(例: `issue/42`)
|
|
136
|
+
- from_branch: IssueBranchBase(0.3で選択)
|
|
137
|
+
- ローカルでも `issue/{issue番号}` にチェックアウトして作業を開始
|
|
138
|
+
|
|
111
139
|
### 3. 段階的仕様書作成
|
|
112
140
|
**重要**: 各段階で必ずユーザー承認を得て、コミット&プッシュしてから次へ進行すること。
|
|
113
141
|
|
|
@@ -119,8 +147,8 @@ AskUserQuestion:
|
|
|
119
147
|
- 作成したファイルのパスと概要を提示
|
|
120
148
|
- 確認ポイントを明示(要件の過不足、受け入れ基準の明確性など)
|
|
121
149
|
3. **ユーザー承認後、コミット&プッシュ**
|
|
122
|
-
- コミットメッセージ: `docs:
|
|
123
|
-
-
|
|
150
|
+
- コミットメッセージ: `docs: {機能名}の要件を追加`
|
|
151
|
+
- ブランチは `issue/{issue番号}` にプッシュ
|
|
124
152
|
- 他のメンバーがレビューできるようにする
|
|
125
153
|
4. **承認を得てから次のステップ(design.md)に進む**
|
|
126
154
|
|
|
@@ -133,8 +161,8 @@ AskUserQuestion:
|
|
|
133
161
|
- 作成したファイルのパスと概要を提示
|
|
134
162
|
- 確認ポイントを明示(アーキテクチャの妥当性、実装方針など)
|
|
135
163
|
3. **ユーザー承認後、コミット&プッシュ**
|
|
136
|
-
- コミットメッセージ: `docs:
|
|
137
|
-
-
|
|
164
|
+
- コミットメッセージ: `docs: {機能名}の設計を追加`
|
|
165
|
+
- ブランチは `issue/{issue番号}` にプッシュ
|
|
138
166
|
4. **承認を得てから次のステップ(QAテスト仕様生成)に進む**
|
|
139
167
|
|
|
140
168
|
#### Phase 3: QAテスト仕様生成(シナリオテスト含む)
|
|
@@ -147,33 +175,76 @@ AskUserQuestion:
|
|
|
147
175
|
- 作成したqa-tests/ディレクトリの構成と概要を提示
|
|
148
176
|
- 確認ポイントを明示(シナリオテストの網羅性、実施タイミングの妥当性など)
|
|
149
177
|
3. **ユーザー承認後、コミット&プッシュ**
|
|
150
|
-
- コミットメッセージ: `docs:
|
|
151
|
-
-
|
|
178
|
+
- コミットメッセージ: `docs: {機能名}のQAテスト仕様を追加`
|
|
179
|
+
- ブランチは `issue/{issue番号}` にプッシュ
|
|
152
180
|
4. **承認を得てから次のステップ(GitHub Issueへのタスク記述)に進む**
|
|
153
181
|
|
|
154
182
|
#### Phase 4: GitHub Issueへのタスク記述
|
|
155
|
-
|
|
183
|
+
|
|
184
|
+
##### 4.1 タスク生成・検証ループ
|
|
185
|
+
|
|
186
|
+
**重要**: タスク生成後は自動的にフォーマット検証を行い、違反があれば差し戻します。
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
【タスク生成・検証ループ】(最大3回)
|
|
190
|
+
│
|
|
191
|
+
├─ spec-tasks-generator 呼び出し
|
|
192
|
+
│ └─ タスク一覧を生成(またはエラーフィードバックを元に修正版を生成)
|
|
193
|
+
│
|
|
194
|
+
├─ spec-tasks-validator 呼び出し
|
|
195
|
+
│ └─ フォーマット検証
|
|
196
|
+
│
|
|
197
|
+
└─ 検証結果判定
|
|
198
|
+
├─ SUCCESS → ループ終了、ユーザー確認へ
|
|
199
|
+
└─ FAILURE → spec-tasks-generator に差し戻し
|
|
200
|
+
└─ エラーレポート付きで再呼び出し
|
|
201
|
+
└─ ループ再開(最大3回)
|
|
202
|
+
|
|
203
|
+
※ 3回失敗 → ユーザーに手動修正を依頼
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
1. **spec-tasks-generatorエージェントでタスク生成**
|
|
156
207
|
- エージェント内で実装の影響範囲を分析
|
|
157
208
|
- 実装タスクの分解と依存関係
|
|
158
209
|
- requirements.md、design.md、**qa-tests/scenarios.md**の内容を参照
|
|
159
210
|
- 各タスクに**シナリオテスト実施タイミング**を明記
|
|
160
211
|
- **GitHub Issueの説明文にタスク一覧を記述**
|
|
161
|
-
|
|
212
|
+
|
|
213
|
+
2. **spec-tasks-validatorエージェントでフォーマット検証**
|
|
214
|
+
- タスク階層(Phase/タスクグループ/タスク/サブタスク)の形式チェック
|
|
215
|
+
- メタデータ(要件・依存関係・完了条件・対応設計・シナリオテスト)の必須チェック
|
|
216
|
+
- 依存関係の書式・参照先の検証
|
|
217
|
+
- ATDD粒度チェック(Phase数、縦切り/横切り)
|
|
218
|
+
|
|
219
|
+
3. **検証結果の処理**
|
|
220
|
+
- **SUCCESS**: ユーザー確認フェーズへ進む
|
|
221
|
+
- **FAILURE(リトライ可能)**:
|
|
222
|
+
- エラーレポートを spec-tasks-generator に渡して再生成
|
|
223
|
+
- ループ再開(現在の試行回数をインクリメント)
|
|
224
|
+
- **MAX_RETRIES_EXCEEDED(3回失敗)**:
|
|
225
|
+
- ユーザーに手動修正を依頼
|
|
226
|
+
- エラー内容を提示し、修正後に続行できるよう案内
|
|
227
|
+
|
|
228
|
+
##### 4.2 ユーザー確認
|
|
229
|
+
|
|
230
|
+
4. **ユーザーに内容確認を依頼**
|
|
162
231
|
- 更新したGitHub IssueのURL(#{issue_number})と概要を提示
|
|
163
232
|
- 確認ポイントを明示(タスク分解の粒度、依存関係の妥当性など)
|
|
164
|
-
|
|
233
|
+
- **バリデーション合格済みであることを明記**
|
|
234
|
+
|
|
235
|
+
5. **ユーザー承認後、以下の処理を実行**
|
|
165
236
|
|
|
166
|
-
a. **Issue
|
|
237
|
+
a. **Issueブランチの存在確認(未作成時のみ作成)**
|
|
167
238
|
- `mcp__github__create_branch` を使用
|
|
168
239
|
- branch: `issue/{issue番号}`(例: `issue/42`)
|
|
169
240
|
- ⚠️ **機能名は含めない**(ディレクトリ名とは異なる。上記「命名規則」参照)
|
|
170
|
-
- from_branch:
|
|
241
|
+
- from_branch: IssueBranchBase(0.3で選択)
|
|
171
242
|
|
|
172
243
|
b. **仕様書ファイルをプッシュ(MCP)**
|
|
173
244
|
- `mcp__github__push_files` を使用
|
|
174
245
|
- branch: `issue/{issue番号}`
|
|
175
246
|
- files: requirements.md, design.md, qa-tests/(または分割された各ファイル)
|
|
176
|
-
- message: `docs:
|
|
247
|
+
- message: `docs: {機能名}の仕様書を追加 (Issue #{issue_number})`
|
|
177
248
|
|
|
178
249
|
c. **PR作成(MCP)**
|
|
179
250
|
- `mcp__github__create_pull_request` を使用
|
|
@@ -192,7 +263,7 @@ AskUserQuestion:
|
|
|
192
263
|
- QAテスト仕様へのリンク(qa-tests/scenarios.md)
|
|
193
264
|
- タスク一覧(Phase別チェックボックス形式、シナリオテスト実施タイミング明記)
|
|
194
265
|
|
|
195
|
-
|
|
266
|
+
6. **全ての仕様書作成が完了したことを報告**
|
|
196
267
|
- GitHub Issue URLを明記
|
|
197
268
|
- Spec PR URLを明記
|
|
198
269
|
|
|
@@ -145,7 +145,7 @@ interface Example {
|
|
|
145
145
|
|
|
146
146
|
### エラー内容
|
|
147
147
|
- **原因**: [不足ファイル一覧 or エラー詳細]
|
|
148
|
-
- **推奨アクション**: `/spec-create` を実行して仕様書を完成させてください
|
|
148
|
+
- **推奨アクション**: `/einja:spec-create` を実行して仕様書を完成させてください
|
|
149
149
|
```
|
|
150
150
|
|
|
151
151
|
---
|
|
@@ -155,9 +155,9 @@ interface Example {
|
|
|
155
155
|
| エラー種別 | 原因 | 対処 |
|
|
156
156
|
|-----------|------|------|
|
|
157
157
|
| spec ディレクトリ不在 | 指定パスが存在しない | パスを確認して再実行 |
|
|
158
|
-
| requirements.md 不在 | Phase 1 未完了 | `/spec-create` で Phase 1 を実行 |
|
|
159
|
-
| design.md 不在 | Phase 2 未完了 | `/spec-create` で Phase 2 を実行 |
|
|
160
|
-
| qa-tests/ 不在 | Phase 3 未完了 | `/spec-create` で Phase 3 を実行 |
|
|
158
|
+
| requirements.md 不在 | Phase 1 未完了 | `/einja:spec-create` で Phase 1 を実行 |
|
|
159
|
+
| design.md 不在 | Phase 2 未完了 | `/einja:spec-create` で Phase 2 を実行 |
|
|
160
|
+
| qa-tests/ 不在 | Phase 3 未完了 | `/einja:spec-create` で Phase 3 を実行 |
|
|
161
161
|
|
|
162
162
|
---
|
|
163
163
|
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
| 変数名 | 説明 | 用途 | GitHub Actions | Vercel |
|
|
31
31
|
|--------|------|------|:--------------:|:------:|
|
|
32
32
|
| `DOTENV_PRIVATE_KEY_CI` | CI環境用復号鍵 | CI/CD | ◯ | - |
|
|
33
|
+
| `DOTENV_PRIVATE_KEY_PREVIEW` | Preview環境用復号鍵 | Previewビルド | ◯ | - |
|
|
33
34
|
| `DOTENV_PRIVATE_KEY_PRODUCTION` | 本番環境用復号鍵 | ビルド | ◯ | ◯ |
|
|
34
35
|
| `TURBO_TOKEN` | Turborepo Remote Cacheトークン | ビルド高速化 | ◯ | - |
|
|
35
36
|
| `TURBO_TEAM` | VercelチームID | ビルド高速化 | ◯ | - |
|
|
@@ -38,9 +39,9 @@
|
|
|
38
39
|
|
|
39
40
|
| 変数名 | 説明 | 用途 | GitHub Actions | Vercel |
|
|
40
41
|
|--------|------|------|:--------------:|:------:|
|
|
41
|
-
| `VERCEL_TOKEN` | Vercelデプロイトークン |
|
|
42
|
-
| `VERCEL_ORG_ID` | Vercel組織ID |
|
|
43
|
-
| `
|
|
42
|
+
| `VERCEL_TOKEN` | Vercelデプロイトークン | Vercel CLIデプロイ | `.env.ci` に格納 | - |
|
|
43
|
+
| `VERCEL_ORG_ID` | Vercel組織ID | Vercel CLIデプロイ | `.env.ci` に格納 | - |
|
|
44
|
+
| `VERCEL_PROJECT_ID_WEB` | webプロジェクトID | Vercel CLIデプロイ | `.env.ci` に格納 | - |
|
|
44
45
|
| `RAILWAY_TOKEN` | Railway APIトークン | Railwayデプロイ | ◯ | - |
|
|
45
46
|
| `RAILWAY_SERVICE_ID` | RailwayサービスID | Railwayデプロイ | ◯ | - |
|
|
46
47
|
|
|
@@ -62,14 +63,54 @@
|
|
|
62
63
|
# 4. [YOUR-PASSWORD] を設定したパスワードに置換
|
|
63
64
|
```
|
|
64
65
|
|
|
65
|
-
### Neon
|
|
66
|
+
### Neon(Preview環境DBブランチ自動作成対応)
|
|
67
|
+
|
|
68
|
+
#### プロジェクト作成
|
|
66
69
|
|
|
67
70
|
```bash
|
|
68
71
|
# 1. https://neon.tech でアカウント作成
|
|
72
|
+
|
|
69
73
|
# 2. 「Create a project」でプロジェクト作成
|
|
74
|
+
# - Region: AWS ap-northeast-1 (Tokyo)
|
|
75
|
+
# - Postgres version: 16(推奨)
|
|
76
|
+
# - Project name: einja-management(任意)
|
|
77
|
+
|
|
70
78
|
# 3. Connection Details > Connection string をコピー
|
|
79
|
+
# 例: postgresql://user:pass@ep-xxx-xxx.ap-northeast-1.aws.neon.tech/main
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### Neon環境変数の設定
|
|
83
|
+
|
|
84
|
+
Neonの環境変数は `.env.preview` で管理します。GitHub Secretsへの登録は不要です。
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# pnpm env:update でNeon環境変数を追加
|
|
88
|
+
pnpm env:update
|
|
89
|
+
|
|
90
|
+
# 対話式ウィザードで以下を選択:
|
|
91
|
+
# 1. 「環境設定を変更」を選択
|
|
92
|
+
# 2. 「preview環境」を選択
|
|
93
|
+
# 3. NEON_API_KEY と NEON_PROJECT_ID を追加
|
|
94
|
+
|
|
95
|
+
# NEON_API_KEY: Neon Console > Account Settings > API Keys から取得
|
|
96
|
+
# NEON_PROJECT_ID: Neon Console > Project Settings > General > Project ID から取得
|
|
71
97
|
```
|
|
72
98
|
|
|
99
|
+
#### ブランチ命名規則
|
|
100
|
+
|
|
101
|
+
Preview環境用のDBブランチは以下のルールで自動作成されます:
|
|
102
|
+
|
|
103
|
+
| PRブランチ名 | 作成されるDBブランチ名 | 親ブランチ |
|
|
104
|
+
|------------|---------------------|----------|
|
|
105
|
+
| `feature/user-auth` | `preview/feature-user-auth` | `main` |
|
|
106
|
+
| `fix/login-bug` | `preview/fix-login-bug` | `main` |
|
|
107
|
+
| `feat/dashboard` | `preview/feat-dashboard` | `main` |
|
|
108
|
+
|
|
109
|
+
**重要**:
|
|
110
|
+
- DBブランチ名はGitブランチ名から自動変換(`/`→`-`、小文字化)
|
|
111
|
+
- プレフィックス `preview/` が自動付与
|
|
112
|
+
- PR作成時に自動作成、PRクローズ時に自動削除
|
|
113
|
+
|
|
73
114
|
### Vercel Postgres
|
|
74
115
|
|
|
75
116
|
```bash
|
|
@@ -126,6 +167,32 @@ vercel
|
|
|
126
167
|
vercel --prod
|
|
127
168
|
```
|
|
128
169
|
|
|
170
|
+
### GitHub Actions での Vercel CLI デプロイ
|
|
171
|
+
|
|
172
|
+
GitHub Actions では `.env.ci` に Vercel CLI の認証情報を保持します。
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
# .env.ci に追加(dotenvxで暗号化されます)
|
|
176
|
+
VERCEL_TOKEN=xxxxxxxxxxxxxxxxxxxx
|
|
177
|
+
VERCEL_ORG_ID=team_xxxxxxxxxxxxx
|
|
178
|
+
VERCEL_PROJECT_ID_WEB=prj_xxxxxxxxxxxxx
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
#### 取得方法
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# VERCEL_TOKEN: Vercel Dashboard > Account Settings > Tokens > Create Token
|
|
185
|
+
# VERCEL_ORG_ID: Vercel Dashboard > Team Settings > General > Team ID
|
|
186
|
+
# VERCEL_PROJECT_ID_WEB: Vercel Dashboard > Project Settings > General > Project ID
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
`.env.ci` を更新する場合は以下を使用してください:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
pnpm env:update
|
|
193
|
+
# → 「環境設定を変更」→「CI環境」
|
|
194
|
+
```
|
|
195
|
+
|
|
129
196
|
---
|
|
130
197
|
|
|
131
198
|
## 4. Turborepo Remote Cache設定
|
|
@@ -248,15 +315,16 @@ gh secret set RAILWAY_SERVICE_ID --body "サービスID"
|
|
|
248
315
|
# 1. GitHub リポジトリ > Settings > Secrets and variables > Actions
|
|
249
316
|
# 2. 「New repository secret」で以下を追加
|
|
250
317
|
|
|
251
|
-
# 必須
|
|
318
|
+
# 必須Secrets
|
|
252
319
|
gh secret set DOTENV_PRIVATE_KEY_CI --body "$(grep DOTENV_PRIVATE_KEY_CI .env.keys | cut -d= -f2)"
|
|
320
|
+
gh secret set DOTENV_PRIVATE_KEY_PREVIEW --body "$(grep DOTENV_PRIVATE_KEY_PREVIEW .env.keys | cut -d= -f2)"
|
|
253
321
|
gh secret set TURBO_TOKEN --body "取得したトークン"
|
|
254
322
|
gh secret set TURBO_TEAM --body "team_xxxxxxxxx"
|
|
255
323
|
|
|
256
324
|
# オプション(手動デプロイ用)
|
|
257
325
|
gh secret set VERCEL_TOKEN --body "取得したトークン"
|
|
258
326
|
gh secret set VERCEL_ORG_ID --body "team_xxxxxxxxx"
|
|
259
|
-
gh secret set
|
|
327
|
+
gh secret set VERCEL_PROJECT_ID_WEB --body "prj_xxxxxxxxx"
|
|
260
328
|
```
|
|
261
329
|
|
|
262
330
|
### 登録確認
|
|
@@ -136,8 +136,7 @@ dotenvx decrypt -f .env.production
|
|
|
136
136
|
{
|
|
137
137
|
"scripts": {
|
|
138
138
|
"build": "dotenvx run -f .env.production -- turbo run build",
|
|
139
|
-
"build:
|
|
140
|
-
"build:dev": "dotenvx run -f .env.development -- turbo run build",
|
|
139
|
+
"build:dev": "dotenvx run -f .env.develop -- turbo run build",
|
|
141
140
|
"build:local": "turbo run build"
|
|
142
141
|
}
|
|
143
142
|
}
|
|
@@ -154,8 +153,7 @@ dotenvx decrypt -f .env.production
|
|
|
154
153
|
├── .env.example # .envの参考テンプレート(Git追跡)
|
|
155
154
|
├── .env.personal.example # 個人用トークンのテンプレート(Git追跡)
|
|
156
155
|
├── .env.local # ローカル開発用(暗号化・Git追跡)★
|
|
157
|
-
├── .env.
|
|
158
|
-
├── .env.staging # ステージング用(暗号化・Git追跡)
|
|
156
|
+
├── .env.develop # dev検証サーバー用(暗号化・Git追跡)
|
|
159
157
|
├── .env.production # 本番環境用(暗号化・Git追跡)
|
|
160
158
|
├── .env.ci # CI/CD用(暗号化・Git追跡)
|
|
161
159
|
├── .env.keys # 秘密鍵(Git除外・1Password等で共有)
|
|
@@ -182,7 +180,7 @@ GITHUB_TOKEN=
|
|
|
182
180
|
|
|
183
181
|
```bash
|
|
184
182
|
# 開発サーバー用
|
|
185
|
-
cat > .env.
|
|
183
|
+
cat > .env.develop << 'EOF'
|
|
186
184
|
# Development Environment
|
|
187
185
|
DATABASE_URL="postgresql://user:pass@dev-db:5432/einja_dev"
|
|
188
186
|
NEXTAUTH_SECRET="dev-secret-key"
|
|
@@ -190,15 +188,6 @@ NEXTAUTH_URL="https://dev.example.com"
|
|
|
190
188
|
NODE_ENV="development"
|
|
191
189
|
EOF
|
|
192
190
|
|
|
193
|
-
# ステージング用
|
|
194
|
-
cat > .env.staging << 'EOF'
|
|
195
|
-
# Staging Environment
|
|
196
|
-
DATABASE_URL="postgresql://user:pass@staging-db:5432/einja_staging"
|
|
197
|
-
NEXTAUTH_SECRET="staging-secret-key"
|
|
198
|
-
NEXTAUTH_URL="https://staging.example.com"
|
|
199
|
-
NODE_ENV="staging"
|
|
200
|
-
EOF
|
|
201
|
-
|
|
202
191
|
# 本番環境用
|
|
203
192
|
cat > .env.production << 'EOF'
|
|
204
193
|
# Production Environment
|
|
@@ -226,8 +215,7 @@ EOF
|
|
|
226
215
|
|
|
227
216
|
```bash
|
|
228
217
|
# 各環境ファイルを暗号化
|
|
229
|
-
dotenvx encrypt -f .env.
|
|
230
|
-
dotenvx encrypt -f .env.staging
|
|
218
|
+
dotenvx encrypt -f .env.develop
|
|
231
219
|
dotenvx encrypt -f .env.production
|
|
232
220
|
dotenvx encrypt -f .env.ci
|
|
233
221
|
```
|
|
@@ -258,8 +246,9 @@ NODE_ENV=encrypted:BDqRRvYcNnJ5rYo4c8Zhu/lThghcW8b6+7u4+M...
|
|
|
258
246
|
cat .env.keys
|
|
259
247
|
|
|
260
248
|
# 出力例:
|
|
261
|
-
#
|
|
249
|
+
# DOTENV_PRIVATE_KEY_DEVELOP=8afef18fa6e433593a5116cc406c83a44c4385b3f4f7d4cc25750e39f2baa320
|
|
262
250
|
# DOTENV_PRIVATE_KEY_STAGING=548887285654af264275d8c58e87c82dd7958ac6e99760fb5aa5eca8e1efb35d
|
|
251
|
+
# DOTENV_PRIVATE_KEY_PREVIEW=bdb34e98e0312b3e06d10475901a841d9da69590993416d5e4141fd4d96b62ba
|
|
263
252
|
# DOTENV_PRIVATE_KEY_PRODUCTION=73890d5288241cb6738b7172d5ee1bf2dd4aac8319442d951e31d123304f180d
|
|
264
253
|
# DOTENV_PRIVATE_KEY_CI=4165a821b257a073b2b0a4b4e180b86accc76eec773ec53c6443626615c7d979
|
|
265
254
|
```
|
|
@@ -268,7 +257,7 @@ cat .env.keys
|
|
|
268
257
|
|
|
269
258
|
```bash
|
|
270
259
|
# 暗号化されたファイルをコミット
|
|
271
|
-
git add .env.
|
|
260
|
+
git add .env.develop .env.production .env.ci
|
|
272
261
|
git commit -m "chore: 環境変数ファイルを暗号化"
|
|
273
262
|
```
|
|
274
263
|
|
|
@@ -329,6 +318,9 @@ git push
|
|
|
329
318
|
# CI用秘密鍵を登録
|
|
330
319
|
gh secret set DOTENV_PRIVATE_KEY_CI --body "$(grep DOTENV_PRIVATE_KEY_CI .env.keys | cut -d= -f2)"
|
|
331
320
|
|
|
321
|
+
# Preview用秘密鍵を登録(Preview環境を使う場合)
|
|
322
|
+
gh secret set DOTENV_PRIVATE_KEY_PREVIEW --body "$(grep DOTENV_PRIVATE_KEY_PREVIEW .env.keys | cut -d= -f2)"
|
|
323
|
+
|
|
332
324
|
# 本番用秘密鍵を登録(必要に応じて)
|
|
333
325
|
gh secret set DOTENV_PRIVATE_KEY_PRODUCTION --body "$(grep DOTENV_PRIVATE_KEY_PRODUCTION .env.keys | cut -d= -f2)"
|
|
334
326
|
```
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
<!-- @einja:managed:start -->
|
|
2
2
|
# 開発ワークフロー
|
|
3
3
|
|
|
4
|
-
このドキュメントでは、`/spec-create`と`/task-exec`コマンドを使用したATDD(受け入れテスト駆動開発)に基づく開発ワークフローについて説明します。
|
|
4
|
+
このドキュメントでは、`/einja:spec-create`と`/einja:task-exec`コマンドを使用したATDD(受け入れテスト駆動開発)に基づく開発ワークフローについて説明します。
|
|
5
5
|
|
|
6
6
|
## 概要
|
|
7
7
|
|
|
8
8
|
開発プロセスは2つの主要なコマンドで構成されています:
|
|
9
9
|
|
|
10
|
-
1. **`/spec-create`**: 仕様書の作成(要件定義 → 設計 → GitHub Issueへのタスク記述)
|
|
11
|
-
2. **`/task-exec`**: タスクの実行(選定 → 実装 → レビュー → QA → 完了)
|
|
10
|
+
1. **`/einja:spec-create`**: 仕様書の作成(要件定義 → 設計 → GitHub Issueへのタスク記述)
|
|
11
|
+
2. **`/einja:task-exec`**: タスクの実行(選定 → 実装 → レビュー → QA → 完了)
|
|
12
12
|
|
|
13
13
|
## 全体フロー図
|
|
14
14
|
|
|
15
|
-
### フェーズ1: 仕様書作成 (`/spec-create`)
|
|
15
|
+
### フェーズ1: 仕様書作成 (`/einja:spec-create`)
|
|
16
16
|
|
|
17
17
|
```mermaid
|
|
18
18
|
graph TD
|
|
@@ -47,7 +47,7 @@ graph TD
|
|
|
47
47
|
style Q fill:#c8e6c9
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
### フェーズ2: タスク実行 (`/task-exec`)
|
|
50
|
+
### フェーズ2: タスク実行 (`/einja:task-exec`)
|
|
51
51
|
|
|
52
52
|
**注記**: 品質保証ループにより、レビュー/QA失敗時は自動的に実装フェーズに戻ります。複数タスク一括実行も可能です。
|
|
53
53
|
|
|
@@ -91,11 +91,11 @@ graph TD
|
|
|
91
91
|
|
|
92
92
|
```mermaid
|
|
93
93
|
graph LR
|
|
94
|
-
A[/spec-create] --> B[requirements.md]
|
|
94
|
+
A[/einja:spec-create] --> B[requirements.md]
|
|
95
95
|
A --> C[design.md]
|
|
96
96
|
A --> D[GitHub Issue]
|
|
97
97
|
|
|
98
|
-
D --> E[/task-exec]
|
|
98
|
+
D --> E[/einja:task-exec]
|
|
99
99
|
B --> E
|
|
100
100
|
C --> E
|
|
101
101
|
|
|
@@ -115,7 +115,7 @@ graph LR
|
|
|
115
115
|
|
|
116
116
|
## コマンド詳細
|
|
117
117
|
|
|
118
|
-
### 1. `/spec-create` コマンド
|
|
118
|
+
### 1. `/einja:spec-create` コマンド
|
|
119
119
|
|
|
120
120
|
**役割**: プロダクト開発のシニアテクニカルアーキテクト兼シニアプロダクトエンジニアとして、ATDD形式の仕様書を段階的に作成します。
|
|
121
121
|
|
|
@@ -123,13 +123,13 @@ graph LR
|
|
|
123
123
|
|
|
124
124
|
```bash
|
|
125
125
|
# Asanaタスクから仕様書作成
|
|
126
|
-
/spec-create https://app.asana.com/0/project/task-id
|
|
126
|
+
/einja:spec-create https://app.asana.com/0/project/task-id
|
|
127
127
|
|
|
128
128
|
# 機能説明から仕様書作成
|
|
129
|
-
/spec-create "ユーザー認証機能の実装:マジックリンク認証とセッション管理"
|
|
129
|
+
/einja:spec-create "ユーザー認証機能の実装:マジックリンク認証とセッション管理"
|
|
130
130
|
|
|
131
131
|
# 既存仕様書を修正
|
|
132
|
-
/spec-create "認証機能の改善" /docs/specs/issues/auth/20250111-auth-magic-link/
|
|
132
|
+
/einja:spec-create "認証機能の改善" /docs/specs/issues/auth/20250111-auth-magic-link/
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
#### 処理フロー詳細
|
|
@@ -207,7 +207,7 @@ Step 4: GitHub Issueにタスク一覧を記述
|
|
|
207
207
|
|
|
208
208
|
---
|
|
209
209
|
|
|
210
|
-
### 2. `/task-exec` コマンド
|
|
210
|
+
### 2. `/einja:task-exec` コマンド
|
|
211
211
|
|
|
212
212
|
**役割**: タスク実行マネージャーとして、タスクの選定から実装、レビュー、QA、完了までの一連のプロセスを管理します。
|
|
213
213
|
|
|
@@ -220,13 +220,13 @@ Step 4: GitHub Issueにタスク一覧を記述
|
|
|
220
220
|
|
|
221
221
|
```bash
|
|
222
222
|
# Issue番号を指定(自動選定)
|
|
223
|
-
/task-exec #123
|
|
223
|
+
/einja:task-exec #123
|
|
224
224
|
|
|
225
225
|
# 特定のタスクグループを指定
|
|
226
|
-
/task-exec #123 1.1
|
|
226
|
+
/einja:task-exec #123 1.1
|
|
227
227
|
|
|
228
228
|
# Issue番号のみ(#なし)
|
|
229
|
-
/task-exec 123
|
|
229
|
+
/einja:task-exec 123
|
|
230
230
|
```
|
|
231
231
|
|
|
232
232
|
#### 処理フロー詳細
|
|
@@ -323,11 +323,11 @@ Step 4: GitHub Issueにタスク一覧を記述
|
|
|
323
323
|
詳細については、専用ドキュメントを参照してください:
|
|
324
324
|
**📖 [Vibe-Kanban自動実行ガイド](./task-vibe-kanban-loop.md)**
|
|
325
325
|
|
|
326
|
-
#### `/task-exec`との使い分け
|
|
326
|
+
#### `/einja:task-exec`との使い分け
|
|
327
327
|
|
|
328
328
|
| コマンド | 用途 | 品質保証 | 推奨シーン |
|
|
329
329
|
|---------|------|---------|----------|
|
|
330
|
-
| **`/task-exec`** | 重要タスクの確実な完了 | ✅ 合格まで自動ループ | 複雑な実装、品質重視 |
|
|
330
|
+
| **`/einja:task-exec`** | 重要タスクの確実な完了 | ✅ 合格まで自動ループ | 複雑な実装、品質重視 |
|
|
331
331
|
| **`pnpm task:loop`** | 大量タスクの自動消化 | ❌ 各タスクは別プロセス | 定型作業、並行開発 |
|
|
332
332
|
|
|
333
333
|
**詳細な使い分け基準**: [task-vibe-kanban-loop.md](./task-vibe-kanban-loop.md#task-execとの使い分け)
|
|
@@ -342,10 +342,10 @@ Step 4: GitHub Issueにタスク一覧を記述
|
|
|
342
342
|
|
|
343
343
|
```bash
|
|
344
344
|
# Asanaタスクから仕様書を作成
|
|
345
|
-
/spec-create https://app.asana.com/0/project/auth-magic-link
|
|
345
|
+
/einja:spec-create https://app.asana.com/0/project/auth-magic-link
|
|
346
346
|
|
|
347
347
|
# または機能説明から作成
|
|
348
|
-
/spec-create "マジックリンク認証機能:
|
|
348
|
+
/einja:spec-create "マジックリンク認証機能:
|
|
349
349
|
- メールアドレスでログイン
|
|
350
350
|
- ワンタイムトークン生成
|
|
351
351
|
- メール送信
|
|
@@ -366,7 +366,7 @@ GitHub Issue #123 ← 実装タスク一覧(Phase 1〜3)
|
|
|
366
366
|
|
|
367
367
|
```bash
|
|
368
368
|
# Phase 1-1: トークン生成APIの実装
|
|
369
|
-
/task-exec #123
|
|
369
|
+
/einja:task-exec #123
|
|
370
370
|
|
|
371
371
|
# 実行内容:
|
|
372
372
|
# 1. task-executer: API実装、バリデーション追加
|
|
@@ -379,7 +379,7 @@ GitHub Issue #123 ← 実装タスク一覧(Phase 1〜3)
|
|
|
379
379
|
|
|
380
380
|
```bash
|
|
381
381
|
# Phase 1-2: メール送信機能の実装
|
|
382
|
-
/task-exec #123
|
|
382
|
+
/einja:task-exec #123
|
|
383
383
|
|
|
384
384
|
# 実行内容:
|
|
385
385
|
# 1. task-executer: メールサービス実装
|
|
@@ -392,8 +392,8 @@ GitHub Issue #123 ← 実装タスク一覧(Phase 1〜3)
|
|
|
392
392
|
|
|
393
393
|
```bash
|
|
394
394
|
# Phase 2, Phase 3 のタスクグループを順次実行
|
|
395
|
-
/task-exec #123
|
|
396
|
-
/task-exec #123
|
|
395
|
+
/einja:task-exec #123
|
|
396
|
+
/einja:task-exec #123
|
|
397
397
|
...
|
|
398
398
|
|
|
399
399
|
# 最終的にすべてのタスクグループが [x] 完了状態になる
|
|
@@ -451,7 +451,7 @@ GitHub Issue #123 ← 実装タスク一覧(Phase 1〜3)
|
|
|
451
451
|
stateDiagram-v2
|
|
452
452
|
[*] --> 未着手: タスク作成
|
|
453
453
|
|
|
454
|
-
未着手 --> 着手中_TaskExec: /task-exec実行
|
|
454
|
+
未着手 --> 着手中_TaskExec: /einja:task-exec実行
|
|
455
455
|
未着手 --> Vibe登録: /task-vibe-kanban-loop実行
|
|
456
456
|
|
|
457
457
|
着手中_TaskExec --> 実装中: 実装フェーズ
|
|
@@ -545,7 +545,7 @@ graph TD
|
|
|
545
545
|
# 原因: 依存関係が満たされていない
|
|
546
546
|
# 対処: 先行タスクグループを先に完了させる
|
|
547
547
|
|
|
548
|
-
/task-exec #123 1.1 # 先行タスクグループを指定して実行
|
|
548
|
+
/einja:task-exec #123 1.1 # 先行タスクグループを指定して実行
|
|
549
549
|
```
|
|
550
550
|
|
|
551
551
|
#### 2. レビューで差し戻される
|
|
@@ -575,8 +575,8 @@ graph TD
|
|
|
575
575
|
```mermaid
|
|
576
576
|
sequenceDiagram
|
|
577
577
|
participant User as ユーザー
|
|
578
|
-
participant SpecCreate as /spec-create
|
|
579
|
-
participant TaskExec as /task-exec
|
|
578
|
+
participant SpecCreate as /einja:spec-create
|
|
579
|
+
participant TaskExec as /einja:task-exec
|
|
580
580
|
participant Executer as task-executer
|
|
581
581
|
participant Reviewer as task-reviewer
|
|
582
582
|
participant QA as task-qa
|
|
@@ -628,15 +628,15 @@ sequenceDiagram
|
|
|
628
628
|
|
|
629
629
|
### 実行の流れ
|
|
630
630
|
|
|
631
|
-
1. **仕様書作成**: `/spec-create`で要件・設計を作成し、GitHub Issueにタスク一覧を記述
|
|
632
|
-
2. **タスク実行**: `/task-exec`でタスクグループを1つずつ実行
|
|
631
|
+
1. **仕様書作成**: `/einja:spec-create`で要件・設計を作成し、GitHub Issueにタスク一覧を記述
|
|
632
|
+
2. **タスク実行**: `/einja:task-exec`でタスクグループを1つずつ実行
|
|
633
633
|
- task-executerで実装
|
|
634
634
|
- task-reviewerでレビュー
|
|
635
635
|
- task-qaでQA
|
|
636
636
|
- 完了時にタスクグループを完了状態に更新
|
|
637
|
-
3. **繰り返し**: 全タスクグループが完了するまで`/task-exec`を繰り返す
|
|
637
|
+
3. **繰り返し**: 全タスクグループが完了するまで`/einja:task-exec`を繰り返す
|
|
638
638
|
|
|
639
|
-
開発を始める際は、まず`/spec-create`で仕様書を作成し、その後`/task-exec`でタスクグループを順次実行していきます。
|
|
639
|
+
開発を始める際は、まず`/einja:spec-create`で仕様書を作成し、その後`/einja:task-exec`でタスクグループを順次実行していきます。
|
|
640
640
|
<!-- @einja:managed:end -->
|
|
641
641
|
|
|
642
642
|
---
|
|
@@ -15,7 +15,7 @@ GitHub Issue からタスクを自動選定し、Vibe-Kanban に登録して連
|
|
|
15
15
|
|
|
16
16
|
```bash
|
|
17
17
|
# 1. 仕様書を作成(requirements.md, design.md, GitHub Issue へのタスク記述)
|
|
18
|
-
/spec-create <タスク内容の説明>
|
|
18
|
+
/einja:spec-create <タスク内容の説明>
|
|
19
19
|
|
|
20
20
|
# 一旦ここまで終わったらDiscordでスレッドを作りチームにレビュー依頼
|
|
21
21
|
|
|
@@ -444,11 +444,11 @@ sequenceDiagram
|
|
|
444
444
|
|
|
445
445
|
---
|
|
446
446
|
|
|
447
|
-
## `/task-exec` との使い分け
|
|
447
|
+
## `/einja:task-exec` との使い分け
|
|
448
448
|
|
|
449
449
|
| コマンド | 用途 | 品質保証 | 推奨シーン |
|
|
450
450
|
|---------|------|---------|----------|
|
|
451
|
-
| **`/task-exec`** | 重要タスクの確実な完了 | ✅ 合格まで自動ループ | 複雑な実装、品質重視 |
|
|
451
|
+
| **`/einja:task-exec`** | 重要タスクの確実な完了 | ✅ 合格まで自動ループ | 複雑な実装、品質重視 |
|
|
452
452
|
| **`pnpm task:loop`** | 大量タスクの自動消化 | 並列実行・監視 | 定型作業、並行開発 |
|
|
453
453
|
|
|
454
454
|
---
|
|
@@ -479,9 +479,9 @@ packages/cli/src/commands/task-loop/
|
|
|
479
479
|
|
|
480
480
|
## 関連ドキュメント
|
|
481
481
|
|
|
482
|
-
- [タスク実行ワークフロー](./task-execute.md)
|
|
482
|
+
- [タスク実行ワークフロー](./einja:task-execute.md)
|
|
483
483
|
- [タスク管理ガイドライン](../steering/task-management.md)
|
|
484
|
-
- [仕様書作成ワークフロー](./spec-create.md)
|
|
484
|
+
- [仕様書作成ワークフロー](./einja:spec-create.md)
|
|
485
485
|
- [ブランチ運用戦略](../steering/branch-strategy.md) - ブランチ命名規則、同期フロー、ワークフロー図
|
|
486
486
|
<!-- @einja:managed:end -->
|
|
487
487
|
|