@einja/dev-cli 0.1.20 → 0.1.23

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 (49) hide show
  1. package/dist/commands/task-loop/lib/branch-manager.d.ts +2 -2
  2. package/dist/commands/task-loop/lib/branch-manager.d.ts.map +1 -1
  3. package/dist/commands/task-loop/lib/branch-manager.js +133 -28
  4. package/dist/commands/task-loop/lib/branch-manager.js.map +1 -1
  5. package/dist/commands/task-loop/lib/branch-manager.test.js +186 -161
  6. package/dist/commands/task-loop/lib/branch-manager.test.js.map +1 -1
  7. package/dist/commands/task-loop/lib/branch-selector.d.ts.map +1 -1
  8. package/dist/commands/task-loop/lib/branch-selector.js +28 -69
  9. package/dist/commands/task-loop/lib/branch-selector.js.map +1 -1
  10. package/dist/commands/task-loop/lib/horizontal-split-detector.d.ts +25 -0
  11. package/dist/commands/task-loop/lib/horizontal-split-detector.d.ts.map +1 -0
  12. package/dist/commands/task-loop/lib/horizontal-split-detector.js +72 -0
  13. package/dist/commands/task-loop/lib/horizontal-split-detector.js.map +1 -0
  14. package/dist/commands/task-loop/lib/horizontal-split-detector.test.d.ts +2 -0
  15. package/dist/commands/task-loop/lib/horizontal-split-detector.test.d.ts.map +1 -0
  16. package/dist/commands/task-loop/lib/horizontal-split-detector.test.js +177 -0
  17. package/dist/commands/task-loop/lib/horizontal-split-detector.test.js.map +1 -0
  18. package/dist/commands/task-loop/lib/issue-validator.d.ts +36 -0
  19. package/dist/commands/task-loop/lib/issue-validator.d.ts.map +1 -0
  20. package/dist/commands/task-loop/lib/issue-validator.js +400 -0
  21. package/dist/commands/task-loop/lib/issue-validator.js.map +1 -0
  22. package/dist/commands/task-loop/lib/pull-request-manager.d.ts +26 -0
  23. package/dist/commands/task-loop/lib/pull-request-manager.d.ts.map +1 -1
  24. package/dist/commands/task-loop/lib/pull-request-manager.js +121 -1
  25. package/dist/commands/task-loop/lib/pull-request-manager.js.map +1 -1
  26. package/package.json +1 -1
  27. package/presets/default/.claude/agents/einja/backend-architect.md +3 -1
  28. package/presets/default/.claude/agents/einja/design-engineer.md +3 -1
  29. package/presets/default/.claude/agents/einja/docs/docs-updater.md +1 -1
  30. package/presets/default/.claude/agents/einja/frontend-architect.md +3 -1
  31. package/presets/default/.claude/agents/einja/frontend-coder.md +3 -1
  32. package/presets/default/.claude/agents/einja/specs/spec-tasks-generator.md +172 -176
  33. package/presets/default/.claude/agents/einja/specs/spec-tasks-validator.md +150 -0
  34. package/presets/default/.claude/agents/einja/task/task-executer.md +19 -11
  35. package/presets/default/.claude/commands/einja/spec-create.md +85 -14
  36. package/presets/default/.claude/commands/einja/task-exec.md +7 -7
  37. package/presets/default/.claude/hooks/einja/biome-format.sh +2 -2
  38. package/presets/default/.claude/skills/einja-general-context-loader/SKILL.md +1 -1
  39. package/presets/default/.claude/skills/einja-spec-context-loader/SKILL.md +4 -4
  40. package/scaffolds/instructions/deployment-setup.md +43 -2
  41. package/scaffolds/instructions/environment-setup.md +6 -18
  42. package/scaffolds/instructions/task-execute.md +31 -31
  43. package/scaffolds/instructions/task-vibe-kanban-loop.md +5 -5
  44. package/scaffolds/steering/acceptance-criteria-and-qa-guide.md +1 -1
  45. package/scaffolds/steering/development-workflow.md +21 -21
  46. package/scaffolds/steering/infrastructure/deployment.md +18 -7
  47. package/scaffolds/steering/infrastructure/environment-variables.md +11 -8
  48. package/scaffolds/steering/task-management.md +131 -7
  49. package/presets/default/.claude/agents/einja/task/task-committer.md +0 -88
@@ -3,6 +3,14 @@ name: task-executer
3
3
  description: タスクグループの実装を実行する専用エージェント。task-execコマンド内から呼び出され、要件定義・設計書に基づいた高品質な実装を行います。
4
4
  model: sonnet
5
5
  color: blue
6
+ skills:
7
+ - spec-context-loader
8
+ - general-context-loader
9
+ - api-development
10
+ - frontend-development
11
+ - backend-architecture
12
+ - coding-standards
13
+ - component-design
6
14
  ---
7
15
 
8
16
  あなたはシニアソフトウェアエンジニアで、クリーンアーキテクチャ、TDD、ドメイン駆動設計に精通した実装のエキスパートです。Google、Amazon、Microsoftでの大規模システム開発経験があり、保守性の高いコードを書くことに定評があります。
@@ -45,7 +53,7 @@ color: blue
45
53
  spec が不完全です。以下のファイルが不足しています:
46
54
  - [不足ファイル一覧]
47
55
 
48
- `/spec-create [タスク内容]` を実行して spec を完成させてください。
56
+ `/einja:spec-create [タスク内容]` を実行して spec を完成させてください。
49
57
  ```
50
58
 
51
59
  #### 1.1 既存実装の分析
@@ -97,19 +105,19 @@ Skill: general-context-loader
97
105
 
98
106
  **重要**: general-context-loader が AskUserQuestion で確認を行った場合、その回答を要件として扱います。
99
107
 
100
- #### 1.3 実装種別に応じたSkill読み込み
108
+ #### 1.3 実装種別に応じたSkill参照
101
109
 
102
- **⚠️ 必須**: 実装を開始する前に、該当するSkillを読み込むこと。
110
+ 実装種別に応じて、以下のSkill(自動注入済み)を参照すること:
103
111
 
104
- | 実装種別 | 読み込むSkill |
105
- |---------|--------------|
106
- | **API実装** | `.claude/skills/einja-api-development/SKILL.md` |
107
- | **フロントエンド実装** | `.claude/skills/einja-frontend-development/SKILL.md` |
108
- | **バックエンド実装** | `.claude/skills/einja-backend-architecture/SKILL.md` |
109
- | **コード全般** | `.claude/skills/einja-coding-standards/SKILL.md` |
110
- | **コンポーネント設計** | `.claude/skills/einja-component-design/SKILL.md` |
112
+ | 実装種別 | 参照Skill |
113
+ |---------|----------|
114
+ | **API実装** | api-development |
115
+ | **フロントエンド実装** | frontend-development |
116
+ | **バックエンド実装** | backend-architecture |
117
+ | **コード全般** | coding-standards |
118
+ | **コンポーネント設計** | component-design |
111
119
 
112
- **詳細規約が必要な場合**:
120
+ **詳細規約が必要な場合**(Readツールで読み込み):
113
121
  - 命名規則: `.claude/skills/einja-coding-standards/reference/naming-conventions.md`
114
122
  - 禁止パターン: `.claude/skills/einja-coding-standards/reference/prohibited-patterns.md`
115
123
  - TypeScript規約: `.claude/skills/einja-coding-standards/reference/typescript-rules.md`
@@ -32,7 +32,7 @@ TodoWriteツールを使用して全体の進捗を可視化し、ユーザー
32
32
 
33
33
  ### 0. 前提確認フェーズ(ワークフロー開始時)
34
34
 
35
- **⚠️ 重要**: 仕様書作成開始前に、以下の2つの質問で前提を確認すること。
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: add requirements for {feature-name}`
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: add design for {feature-name}`
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: add qa-test specs for {feature-name}`
151
- - ブランチは現在のブランチにプッシュ
178
+ - コミットメッセージ: `docs: {機能名}のQAテスト仕様を追加`
179
+ - ブランチは `issue/{issue番号}` にプッシュ
152
180
  4. **承認を得てから次のステップ(GitHub Issueへのタスク記述)に進む**
153
181
 
154
182
  #### Phase 4: GitHub Issueへのタスク記述
155
- 1. spec-tasks-generatorエージェントで作成
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
- 2. **ユーザーに内容確認を依頼**
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
- 3. **ユーザー承認後、以下の処理を実行**
233
+ - **バリデーション合格済みであることを明記**
234
+
235
+ 5. **ユーザー承認後、以下の処理を実行**
165
236
 
166
- a. **Issueブランチ作成(MCP)**
237
+ a. **Issueブランチの存在確認(未作成時のみ作成)**
167
238
  - `mcp__github__create_branch` を使用
168
239
  - branch: `issue/{issue番号}`(例: `issue/42`)
169
240
  - ⚠️ **機能名は含めない**(ディレクトリ名とは異なる。上記「命名規則」参照)
170
- - from_branch: デフォルトブランチ(main/masterなど)
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: add specs for {feature-name} (Issue #{issue_number})`
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
- 4. **全ての仕様書作成が完了したことを報告**
266
+ 6. **全ての仕様書作成が完了したことを報告**
196
267
  - GitHub Issue URLを明記
197
268
  - Spec PR URLを明記
198
269
 
@@ -36,8 +36,8 @@ $ARGUMENTSから以下を解析:
36
36
 
37
37
  | Phase番号 | 判定 | 処理フロー |
38
38
  |-----------|------|-----------|
39
- | 1〜98 | 通常タスク | task-executer → task-reviewer → task-qa → task-committer |
40
- | 99 | ドキュメント反映タスク | docs-updater → task-committer |
39
+ | 1〜98 | 通常タスク | task-executer → task-reviewer → task-qa → einja-task-commit Skill |
40
+ | 99 | ドキュメント反映タスク | docs-updater → einja-task-commit Skill |
41
41
 
42
42
  ### 通常タスクのフロー(Phase 1〜98)
43
43
 
@@ -52,7 +52,7 @@ $ARGUMENTSから以下を解析:
52
52
  │ │
53
53
  │ QA合格後 ↓ │
54
54
  │ ┌─────────────────────────────────────────────┐ │
55
- │ │ task-committer(コミット・プッシュ) │ │
55
+ │ │ einja-task-commit Skill(コミット・プッシュ) │ │
56
56
  │ │ ※ 確認なしで自動実行 │ │
57
57
  │ └─────────────────────────────────────────────┘ │
58
58
  │ │
@@ -84,7 +84,7 @@ $ARGUMENTSから以下を解析:
84
84
  │ │ │
85
85
  │ ↓ 反映完了 │
86
86
  │ ┌─────────────────────────────────────────────┐ │
87
- │ │ task-committer(コミット・プッシュ) │ │
87
+ │ │ einja-task-commit Skill(コミット・プッシュ) │ │
88
88
  │ │ ※ 確認なしで自動実行 │ │
89
89
  │ └─────────────────────────────────────────────┘ │
90
90
  │ │
@@ -115,8 +115,8 @@ $ARGUMENTSから以下を解析:
115
115
  - テスト失敗 → 実装フェーズに戻る
116
116
  - 全テスト合格 → コミット・プッシュフェーズへ
117
117
 
118
- ### 4. コミット・プッシュフェーズ(task-committer
119
- - QA合格後、自動的にコミット・プッシュを実行
118
+ ### 4. コミット・プッシュフェーズ(einja-task-commit Skill
119
+ - QA合格後、Skill toolで `einja-task-commit` Skillを直接呼び出し
120
120
  - 変更がある場合のみ実行(変更なしの場合はスキップ)
121
121
  - コミット分割案の確認はスキップ(QA合格済みのため自動適用)
122
122
  - 品質チェック(lint/typecheck/test/build)はQAで実行済みのためスキップ
@@ -138,7 +138,7 @@ $ARGUMENTSから以下を解析:
138
138
  - 対象タスクspecのパス(全Phaseで完了したタスクspec)
139
139
 
140
140
  3. **コミット・プッシュ**
141
- - docs-updater 完了後、task-committer を呼び出し
141
+ - docs-updater 完了後、Skill toolで `einja-task-commit` Skillを呼び出し
142
142
  - ドキュメント変更をコミット・プッシュ
143
143
 
144
144
  4. **終了**
@@ -18,10 +18,10 @@ if [[ "$file_path" =~ \.(ts|tsx|js|jsx|json)$ ]]; then
18
18
  cd "$CLAUDE_PROJECT_DIR" 2>/dev/null || exit 0
19
19
 
20
20
  # biome check(format + lint)を実行、自動修正可能なものは修正
21
- npx biome check --write "$file_path" 2>/dev/null || true
21
+ pnpm exec biome check --write "$file_path" 2>/dev/null || true
22
22
 
23
23
  # 修正後に残っているlintエラーをチェック(any型など自動修正できないもの)
24
- lint_errors=$(npx biome lint "$file_path" 2>&1 | grep -E "lint/|noExplicitAny|error" | head -20)
24
+ lint_errors=$(pnpm exec biome lint "$file_path" 2>&1 | grep -E "lint/|noExplicitAny|error" | head -20)
25
25
 
26
26
  if [ -n "$lint_errors" ]; then
27
27
  echo "" >&2
@@ -203,7 +203,7 @@ interface Example {
203
203
 
204
204
  ### 推奨アクション
205
205
  1. ユーザーに追加情報を求める
206
- 2. または `/spec-create` で仕様書を作成する
206
+ 2. または `/einja:spec-create` で仕様書を作成する
207
207
  ```
208
208
 
209
209
  ---
@@ -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
 
@@ -63,14 +63,54 @@
63
63
  # 4. [YOUR-PASSWORD] を設定したパスワードに置換
64
64
  ```
65
65
 
66
- ### Neon
66
+ ### Neon(Preview環境DBブランチ自動作成対応)
67
+
68
+ #### プロジェクト作成
67
69
 
68
70
  ```bash
69
71
  # 1. https://neon.tech でアカウント作成
72
+
70
73
  # 2. 「Create a project」でプロジェクト作成
74
+ # - Region: AWS ap-northeast-1 (Tokyo)
75
+ # - Postgres version: 16(推奨)
76
+ # - Project name: einja-management(任意)
77
+
71
78
  # 3. Connection Details > Connection string をコピー
79
+ # 例: postgresql://user:pass@ep-xxx-xxx.ap-northeast-1.aws.neon.tech/main
72
80
  ```
73
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 から取得
97
+ ```
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
+
74
114
  ### Vercel Postgres
75
115
 
76
116
  ```bash
@@ -275,8 +315,9 @@ gh secret set RAILWAY_SERVICE_ID --body "サービスID"
275
315
  # 1. GitHub リポジトリ > Settings > Secrets and variables > Actions
276
316
  # 2. 「New repository secret」で以下を追加
277
317
 
278
- # 必須
318
+ # 必須Secrets
279
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)"
280
321
  gh secret set TURBO_TOKEN --body "取得したトークン"
281
322
  gh secret set TURBO_TEAM --body "team_xxxxxxxxx"
282
323
 
@@ -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:staging": "dotenvx run -f .env.staging -- turbo run 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.development # dev検証サーバー用(暗号化・Git追跡)
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.development << 'EOF'
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.development
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,7 +246,7 @@ NODE_ENV=encrypted:BDqRRvYcNnJ5rYo4c8Zhu/lThghcW8b6+7u4+M...
258
246
  cat .env.keys
259
247
 
260
248
  # 出力例:
261
- # DOTENV_PRIVATE_KEY_DEVELOPMENT=8afef18fa6e433593a5116cc406c83a44c4385b3f4f7d4cc25750e39f2baa320
249
+ # DOTENV_PRIVATE_KEY_DEVELOP=8afef18fa6e433593a5116cc406c83a44c4385b3f4f7d4cc25750e39f2baa320
262
250
  # DOTENV_PRIVATE_KEY_STAGING=548887285654af264275d8c58e87c82dd7958ac6e99760fb5aa5eca8e1efb35d
263
251
  # DOTENV_PRIVATE_KEY_PREVIEW=bdb34e98e0312b3e06d10475901a841d9da69590993416d5e4141fd4d96b62ba
264
252
  # DOTENV_PRIVATE_KEY_PRODUCTION=73890d5288241cb6738b7172d5ee1bf2dd4aac8319442d951e31d123304f180d
@@ -269,7 +257,7 @@ cat .env.keys
269
257
 
270
258
  ```bash
271
259
  # 暗号化されたファイルをコミット
272
- git add .env.development .env.staging .env.production .env.ci
260
+ git add .env.develop .env.production .env.ci
273
261
  git commit -m "chore: 環境変数ファイルを暗号化"
274
262
  ```
275
263
 
@@ -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
  ---