@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
|
@@ -23,6 +23,20 @@ model: sonnet
|
|
|
23
23
|
color: yellow
|
|
24
24
|
---
|
|
25
25
|
|
|
26
|
+
## 使用するSkill
|
|
27
|
+
|
|
28
|
+
**[task-spec-generator Skill](../../skills/einja-task-spec-generator/SKILL.md)** を参照してタスクを生成。
|
|
29
|
+
|
|
30
|
+
## エラーフィードバック対応
|
|
31
|
+
|
|
32
|
+
`error_feedback` が渡された場合(バリデーション失敗からの差し戻し時):
|
|
33
|
+
1. エラーレポートを解析
|
|
34
|
+
2. 指摘された問題を特定(メタデータ不足、インデント不正、依存関係エラーなど)
|
|
35
|
+
3. 修正版のタスク一覧を生成
|
|
36
|
+
4. 同じエラーを繰り返さないよう注意
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
26
40
|
あなたはATDD(受け入れテスト駆動開発)メソドロジーに精通したタスク分解の専門家です。要件定義、設計ドキュメント、関連仕様を分析し、効率的な並列開発を可能にする包括的で適切に構造化されたタスク分解をGitHub Issueの説明文に記述します。
|
|
27
41
|
|
|
28
42
|
## あなたの中核的責務
|
|
@@ -34,6 +48,22 @@ TodoWriteツールを使用して詳細な進捗を可視化します:
|
|
|
34
48
|
- 完了したタスクは即座に「completed」状態に更新
|
|
35
49
|
- ユーザーが進捗を把握できるよう、各タスクには明確な説明を記載
|
|
36
50
|
|
|
51
|
+
## 差し戻し時の対応
|
|
52
|
+
|
|
53
|
+
spec-tasks-validator から差し戻された場合(error_feedback が渡された場合):
|
|
54
|
+
|
|
55
|
+
1. **エラーレポートの確認**
|
|
56
|
+
- エラー種別(missing_metadata, invalid_indent など)を確認
|
|
57
|
+
- 問題のあるタスクID/行番号を特定
|
|
58
|
+
|
|
59
|
+
2. **修正版の生成**
|
|
60
|
+
- 指摘された問題を全て修正
|
|
61
|
+
- 修正したことを明示的にコメント
|
|
62
|
+
|
|
63
|
+
3. **再検証への備え**
|
|
64
|
+
- 同じエラーが発生しないよう注意
|
|
65
|
+
- フォーマットルールを再確認
|
|
66
|
+
|
|
37
67
|
## 作業ワークフロー
|
|
38
68
|
|
|
39
69
|
### ステップ0: 依頼事項の解析と不明点の解消
|
|
@@ -196,42 +226,29 @@ spec-createコマンドから呼ばれた場合(Issue番号が渡される):
|
|
|
196
226
|
**記述完了の確認**:
|
|
197
227
|
- Issue URLを確認
|
|
198
228
|
- Issue番号を記録
|
|
199
|
-
-
|
|
229
|
+
- **重要**: タスク記述後、自動的に spec-tasks-validator が呼び出されてフォーマット検証が行われます
|
|
230
|
+
- 検証でエラーがあった場合、エラーレポートと共に差し戻されるので、修正版を生成してください
|
|
200
231
|
|
|
201
232
|
## タスク記述のルール
|
|
202
233
|
|
|
203
|
-
**🔴 重要:
|
|
204
|
-
- **[タスク管理ガイドライン](../../../docs/einja/steering/task-management.md)** - 「タスク階層一覧表」「粒度の判断基準」「アンチパターン」を必ず確認
|
|
234
|
+
**🔴 重要: タスク生成前に必ず [タスク管理ガイドライン](../../../docs/einja/steering/task-management.md) を参照すること**
|
|
205
235
|
|
|
206
|
-
|
|
236
|
+
以下の項目はガイドラインを参照:
|
|
237
|
+
- タスク階層一覧表(Phase / タスクグループ / タスク / サブタスク)
|
|
238
|
+
- ATDDタスクグループ設計原則(縦切り/横切り)
|
|
239
|
+
- アンチパターン(画面/レイヤー/クラス単位の分割禁止)
|
|
240
|
+
- 依存関係の記述形式(task:loop互換)
|
|
241
|
+
- Phase完了確認タスクグループの書き方
|
|
242
|
+
- メタデータの記述形式
|
|
243
|
+
|
|
244
|
+
### クイックリファレンス
|
|
207
245
|
|
|
208
246
|
| 階層 | 番号 | 書式 | メタデータ |
|
|
209
247
|
|------|------|------|------------|
|
|
210
248
|
| Phase | 1, 2, 3 | `### Phase 1: [名前]` | なし |
|
|
211
249
|
| タスクグループ | X.Y | `- [ ] 1.1 [名前]` | なし |
|
|
212
|
-
| タスク | X.Y.Z | ` - 1.1.1 [名前]`(2スペースインデント) |
|
|
213
|
-
| サブタスク | なし | ` - [内容]`(4スペースインデント) |
|
|
214
|
-
|
|
215
|
-
### Phase完了確認タスクグループ(必須)
|
|
216
|
-
|
|
217
|
-
各Phaseの最後には、**Phase完了確認**タスクグループを必ず配置:
|
|
218
|
-
|
|
219
|
-
```markdown
|
|
220
|
-
## Phase 1完了確認
|
|
221
|
-
|
|
222
|
-
- [ ] 1.X フェーズ1完了条件確認
|
|
223
|
-
|
|
224
|
-
- 1.X.1 フェーズ1全タスク完了確認
|
|
225
|
-
- タスクグループ1.1〜1.N の全タスク完了確認
|
|
226
|
-
- 全シナリオテストの成功確認
|
|
227
|
-
- コードレビュー完了確認
|
|
228
|
-
- デプロイ可能な状態であることを確認
|
|
229
|
-
- **要件**: Story 1, Story 2(該当する全Story)
|
|
230
|
-
- **依存関係**: 1.N.Z(Phase内の最後のタスク番号)
|
|
231
|
-
- **完了条件**: フェーズ1の全タスクグループが完了し、受け入れ基準**AC1.1〜AC1.N**を満たすことが確認できること
|
|
232
|
-
- **対応設計**: design.md 全セクション
|
|
233
|
-
- **シナリオテスト**: 全シナリオ(リグレッション確認)
|
|
234
|
-
```
|
|
250
|
+
| タスク | X.Y.Z | ` - 1.1.1 [名前]`(2スペースインデント) | **必須** |
|
|
251
|
+
| サブタスク | なし | ` - [内容]`(4スペースインデント) | **任意** |
|
|
235
252
|
|
|
236
253
|
### Phase 99: ドキュメント反映(必須・自動追加)
|
|
237
254
|
|
|
@@ -257,66 +274,7 @@ spec-createコマンドから呼ばれた場合(Issue番号が渡される):
|
|
|
257
274
|
- task-execで `99.*.*` 形式のタスクが検出されると、通常のtask-executer→task-reviewer→task-qaフローをスキップし、docs-updater エージェントを直接呼び出す
|
|
258
275
|
- 完了後は task-committer でドキュメント変更をコミット
|
|
259
276
|
|
|
260
|
-
###
|
|
261
|
-
|
|
262
|
-
**タスクグループ = ACを検証可能にする単位**
|
|
263
|
-
|
|
264
|
-
ATDDの本質は「受け入れ基準(AC)を中心にタスクを分解する」こと。
|
|
265
|
-
タスクグループ完了時に、対応するACがデプロイして検証可能な状態になっていなければならない。
|
|
266
|
-
|
|
267
|
-
| 数値目安 | 基準 |
|
|
268
|
-
|----------|------|
|
|
269
|
-
| **Phase数** | 2-3個(4個以上は❌) |
|
|
270
|
-
| **タスクグループ数** | 1 Phaseあたり2-4個程度(6個以上は❌) |
|
|
271
|
-
|
|
272
|
-
**原則: 縦切り(フルスタック)で分割、横切り(レイヤー/画面)は❌**
|
|
273
|
-
|
|
274
|
-
✅ **縦切り**(1機能をフルスタックで):
|
|
275
|
-
- Domain → Infrastructure → UseCase → API → UI を1タスクグループで
|
|
276
|
-
- 完了時にACが検証可能
|
|
277
|
-
|
|
278
|
-
❌ **横切り**(レイヤー/画面ごと):
|
|
279
|
-
- Domain層の実装 / Infra層の実装 / UseCase実装 / API実装 / UI実装
|
|
280
|
-
- 各層単体では検証不可能
|
|
281
|
-
|
|
282
|
-
### ❌ アンチパターン(絶対にやってはいけない分割)
|
|
283
|
-
|
|
284
|
-
**パターン1: 画面ごとの分割**
|
|
285
|
-
```
|
|
286
|
-
❌ NG例:
|
|
287
|
-
- 3.2 一覧画面の実装
|
|
288
|
-
- 3.3 詳細画面の実装
|
|
289
|
-
- 3.4 新規登録画面の実装
|
|
290
|
-
- 3.5 編集画面の実装
|
|
291
|
-
- 3.6 削除機能の実装
|
|
292
|
-
|
|
293
|
-
✅ OK例:
|
|
294
|
-
- 2.2 CRUD機能の実装(一覧・詳細・作成・編集・削除)
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
**パターン2: レイヤーごとの分割**
|
|
298
|
-
```
|
|
299
|
-
❌ NG例:
|
|
300
|
-
- 2.1 Domain層の実装(Entity, VO, Repository IF)
|
|
301
|
-
- 2.2 Infrastructure層の実装(Mapper, Repository)
|
|
302
|
-
- 2.3 Application層の実装(UseCase)
|
|
303
|
-
- 2.4 Presentation層の実装(API, UI)
|
|
304
|
-
|
|
305
|
-
✅ OK例:
|
|
306
|
-
- 2.1 招待・パスワード設定機能
|
|
307
|
-
- Domain〜UIまでフルスタックで実装
|
|
308
|
-
- AC3〜AC5を検証可能
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
**パターン3: クラスごとの分割**
|
|
312
|
-
```
|
|
313
|
-
❌ NG例(これらはタスクグループではなくタスクレベル(X.Y.Z)であるべき):
|
|
314
|
-
- 2.1 User Entityの実装
|
|
315
|
-
- 2.2 Invitation Entityの実装
|
|
316
|
-
- 2.3 HashedPassword VOの実装
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
### メタデータの記述(タスク単位に付与)
|
|
277
|
+
### メタデータの記述例(タスク単位に付与)
|
|
320
278
|
|
|
321
279
|
```markdown
|
|
322
280
|
- [ ] 1.1 タスクグループ名
|
|
@@ -338,22 +296,6 @@ ATDDの本質は「受け入れ基準(AC)を中心にタスクを分解す
|
|
|
338
296
|
- **シナリオテスト**: シナリオ1 Step 1-3(部分実行)
|
|
339
297
|
```
|
|
340
298
|
|
|
341
|
-
### 依存関係の記述形式(重要)
|
|
342
|
-
|
|
343
|
-
**🔴 task:loopスクリプトが認識できる形式のみ使用すること**
|
|
344
|
-
|
|
345
|
-
| 記述形式 | 意味 | 例 |
|
|
346
|
-
|---------|------|-----|
|
|
347
|
-
| `なし` | 依存関係なし | `**依存関係**: なし` |
|
|
348
|
-
| `X.Y` | タスクグループ依存 | `**依存関係**: 1.1` |
|
|
349
|
-
| `X.Y, X.Y` | 複数タスクグループ依存 | `**依存関係**: 1.2, 1.3` |
|
|
350
|
-
| `Phase X完了` | Phase依存 | `**依存関係**: Phase 1完了` |
|
|
351
|
-
|
|
352
|
-
**❌ 使用禁止の形式:**
|
|
353
|
-
- `1.1完了` → ❌ スクリプトが認識できない
|
|
354
|
-
- `タスク1.1` → ❌ スクリプトが認識できない
|
|
355
|
-
- `1.1、1.2` → ⚠️ 全角カンマは避ける(半角カンマ推奨)
|
|
356
|
-
|
|
357
299
|
### フェーズ構成の原則
|
|
358
300
|
- **2-3個程度**に抑える(4個以上は多すぎる)
|
|
359
301
|
- 全Phase完了で**全AC網羅**
|
|
@@ -440,6 +382,9 @@ scenarios.mdの「実施タイミング」を確認し、該当タスクグル
|
|
|
440
382
|
- 画面ごとの分割(一覧/詳細/編集/削除を別タスクグループ)→ ❌
|
|
441
383
|
- レイヤーごとの分割(Domain/Infra/UseCase/API/UI)→ ❌
|
|
442
384
|
- クラスごとの分割(Entity/Repository/Mapper)→ ❌
|
|
385
|
+
- **TDD構造が正しいか?**(コード実装タスクの場合)
|
|
386
|
+
- 1タスク内に「テスト作成(Red)」「実装(Green)」「リファクタリング」のサブタスクがあるか
|
|
387
|
+
- 3タスク分割(X.Y.1 テスト / X.Y.2 実装 / X.Y.3 リファクタ)になっていないか → ❌
|
|
443
388
|
- requirements.mdとdesign.mdとの整合性
|
|
444
389
|
- 依存関係の正確性と並列化の最適性
|
|
445
390
|
- 受け入れ基準番号の正確な引用
|
|
@@ -478,6 +423,11 @@ GitHub Issue作成前に以下を確認:
|
|
|
478
423
|
- [ ] **アンチパターン: 画面/レイヤー/クラス単位の「横切り」になっていないか?**
|
|
479
424
|
- [ ] **数値目安: 1 Phaseあたりタスクグループ2-4個程度か?**(6個以上は❌)
|
|
480
425
|
|
|
426
|
+
### 🔵 TDD構造チェック(コード実装タスク)
|
|
427
|
+
- [ ] **TDDタスク: 1タスク内に「テスト作成(Red)」「実装(Green)」「リファクタリング」のサブタスクがあるか?**
|
|
428
|
+
- [ ] **3タスク分割になっていないか?**(X.Y.1 テスト / X.Y.2 実装 / X.Y.3 リファクタ は❌)
|
|
429
|
+
- [ ] **設定系タスク(マイグレーション等)はTDD不適用になっているか?**
|
|
430
|
+
|
|
481
431
|
### タスク階層・形式(ガイドラインの表を参照)
|
|
482
432
|
- [ ] Phase: `### Phase X: [名前]` 形式
|
|
483
433
|
- [ ] タスクグループ: `- [ ] X.Y 名前` 形式
|
|
@@ -505,97 +455,104 @@ GitHub Issue作成前に以下を確認:
|
|
|
505
455
|
- ✅ `なし` / `X.Y` / `X.Y, X.Y` / `Phase X完了`
|
|
506
456
|
- ❌ `X.Y完了` は使用禁止
|
|
507
457
|
|
|
508
|
-
## TDD
|
|
458
|
+
## TDDタスク構造(デフォルト適用)
|
|
509
459
|
|
|
510
|
-
|
|
460
|
+
**原則**: ロジック・コード実装があるタスクは**TDDをデフォルトで適用**する。requirements.mdへの「TDD採用」明記は不要。
|
|
511
461
|
|
|
512
|
-
### TDD
|
|
462
|
+
### TDD適用対象
|
|
513
463
|
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
464
|
+
| 対象 | TDD適用 |
|
|
465
|
+
|------|---------|
|
|
466
|
+
| Domain/UseCase/Validator/Repository | **適用** |
|
|
467
|
+
| API実装、UI実装 | **適用** |
|
|
468
|
+
| 設定ファイル、マイグレーション、シードデータ | 不適用 |
|
|
518
469
|
|
|
519
|
-
### TDD
|
|
470
|
+
### TDDタスク構造テンプレート(1タスク内サブタスク)
|
|
520
471
|
|
|
521
|
-
TDD
|
|
472
|
+
TDDは**3タスク分割(X.Y.1 テスト / X.Y.2 実装 / X.Y.3 リファクタ)ではなく、1タスク内のサブタスクとしてRed→Green→Refactorを記載**する:
|
|
522
473
|
|
|
523
474
|
```markdown
|
|
524
|
-
- [ ] X.Y
|
|
525
|
-
|
|
526
|
-
- X.Y.
|
|
527
|
-
-
|
|
528
|
-
|
|
529
|
-
|
|
475
|
+
- [ ] X.Y 機能名
|
|
476
|
+
|
|
477
|
+
- X.Y.Z 機能名の実装(TDD)
|
|
478
|
+
- **テスト作成(Red)**:
|
|
479
|
+
- Given-When-Then形式でテストケースを作成
|
|
480
|
+
- 正常系・異常系・境界値のテストを網羅
|
|
481
|
+
- テストが失敗することを確認
|
|
482
|
+
- **実装(Green)**:
|
|
483
|
+
- テストを通すための最小限の実装
|
|
484
|
+
- 全テストがパスすることを確認
|
|
485
|
+
- **リファクタリング**:
|
|
486
|
+
- コード品質の改善(重複削除、命名改善、構造改善)
|
|
487
|
+
- テストがパスし続けることを確認
|
|
530
488
|
- **要件**: Story N
|
|
531
489
|
- **依存関係**: [前提タスク]
|
|
532
|
-
- **完了条件**:
|
|
533
|
-
- **対応設計**: design.md「[該当セクション]」
|
|
534
|
-
- **シナリオテスト**: なし(テスト作成フェーズ)
|
|
535
|
-
|
|
536
|
-
- X.Y.2 実装(Green)
|
|
537
|
-
- テストを通すための最小限の実装
|
|
538
|
-
- **全テストがパスすることを確認(Green状態)**
|
|
539
|
-
- **要件**: Story N
|
|
540
|
-
- **依存関係**: X.Y.1
|
|
541
|
-
- **完了条件**: X.Y.1で作成した全テストがパスすること(ACX.Nを満たす)
|
|
542
|
-
- **対応設計**: design.md「[該当セクション]」
|
|
543
|
-
- **シナリオテスト**: [該当シナリオ](実装完了後に実行)
|
|
544
|
-
|
|
545
|
-
- X.Y.3 リファクタリング(Green維持)
|
|
546
|
-
- コード品質の改善(重複削除、命名改善、構造改善)
|
|
547
|
-
- **テストがパスし続けることを確認(Green維持)**
|
|
548
|
-
- **要件**: Story N
|
|
549
|
-
- **依存関係**: X.Y.2
|
|
550
|
-
- **完了条件**: リファクタリング完了後も全テストがパスすること
|
|
490
|
+
- **完了条件**: 全テストがパスすること(ACX.Nを満たす)
|
|
551
491
|
- **対応設計**: design.md「[該当セクション]」
|
|
552
|
-
- **シナリオテスト**: [該当シナリオ]
|
|
492
|
+
- **シナリオテスト**: [該当シナリオ]
|
|
553
493
|
```
|
|
554
494
|
|
|
555
|
-
### TDD
|
|
495
|
+
### TDDタスク構造の適用例
|
|
556
496
|
|
|
557
497
|
```markdown
|
|
558
|
-
### Phase 2:
|
|
559
|
-
|
|
560
|
-
- [ ] 2.1
|
|
561
|
-
|
|
562
|
-
- 2.1.1
|
|
563
|
-
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
498
|
+
### Phase 2: ユーザー管理コア(CRUD)
|
|
499
|
+
|
|
500
|
+
- [ ] 2.1 ユーザー作成機能
|
|
501
|
+
|
|
502
|
+
- 2.1.1 ユーザー作成機能の実装(TDD)
|
|
503
|
+
- **テスト作成(Red)**:
|
|
504
|
+
- 重複メール検証、必須項目検証、権限検証のテスト
|
|
505
|
+
- Domain層(Entity, Validator)のユニットテスト
|
|
506
|
+
- Repository、UseCaseの統合テスト
|
|
507
|
+
- **実装(Green)**:
|
|
508
|
+
- User Entity、IUserRepository Interface
|
|
509
|
+
- UserMapper、UserRepository実装
|
|
510
|
+
- UserUseCases.create
|
|
511
|
+
- POST /api/rpc/users エンドポイント
|
|
512
|
+
- UserCreateForm(React Hook Form + Zod)
|
|
513
|
+
- **リファクタリング**:
|
|
514
|
+
- コード品質改善、重複削除
|
|
515
|
+
- **要件**: Story 1
|
|
567
516
|
- **依存関係**: 1.1
|
|
568
|
-
- **完了条件**:
|
|
569
|
-
- **対応設計**: design.md
|
|
570
|
-
- **シナリオテスト**:
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
-
|
|
584
|
-
|
|
585
|
-
-
|
|
586
|
-
-
|
|
587
|
-
-
|
|
588
|
-
-
|
|
517
|
+
- **完了条件**: ユーザー作成ができ、全テストがパス(AC1.1〜AC1.5を満たす)
|
|
518
|
+
- **対応設計**: design.md「4〜9」全セクション
|
|
519
|
+
- **シナリオテスト**: シナリオ1 Step 1-3(部分実行:作成まで)
|
|
520
|
+
|
|
521
|
+
- [ ] 2.2 ユーザー閲覧機能(一覧・詳細)
|
|
522
|
+
|
|
523
|
+
- 2.2.1 ユーザー閲覧機能の実装(TDD)
|
|
524
|
+
- **テスト作成(Red)**:
|
|
525
|
+
- 一覧取得、詳細取得、フィルター機能のテスト
|
|
526
|
+
- 空データ時の挙動テスト
|
|
527
|
+
- **実装(Green)**:
|
|
528
|
+
- UserUseCases.list, UserUseCases.getById
|
|
529
|
+
- GET /api/rpc/users, GET /api/rpc/users/:id
|
|
530
|
+
- ユーザー一覧ページ(Server Component)
|
|
531
|
+
- UserTable、UserDetailDrawer
|
|
532
|
+
- **リファクタリング**:
|
|
533
|
+
- コンポーネント分離、共通化
|
|
534
|
+
- **要件**: Story 2, 3
|
|
535
|
+
- **依存関係**: 2.1
|
|
536
|
+
- **完了条件**: 一覧・詳細が表示、全テストがパス(AC2.1〜AC3.3を満たす)
|
|
537
|
+
- **対応設計**: design.md「6〜9」セクション
|
|
538
|
+
- **シナリオテスト**: シナリオ2 全Step(フル実行)
|
|
589
539
|
```
|
|
590
540
|
|
|
591
|
-
### TDD
|
|
541
|
+
### TDD非適用タスクの例
|
|
592
542
|
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
543
|
+
設定系タスク(マイグレーション、シードデータ等)はTDD不適用:
|
|
544
|
+
|
|
545
|
+
```markdown
|
|
546
|
+
- [ ] 1.1 サンプルコード削除とDB基盤構築
|
|
547
|
+
|
|
548
|
+
- 1.1.1 既存サンプルコードの削除
|
|
549
|
+
- 既存のUser, Account等のサンプルコード削除
|
|
550
|
+
- **要件**: Story 1前提条件
|
|
551
|
+
- **依存関係**: なし
|
|
552
|
+
- **完了条件**: サンプルコードが削除され、ビルド可能な状態
|
|
553
|
+
- **対応設計**: design.md「2.3 ディレクトリ構造」
|
|
554
|
+
- **シナリオテスト**: なし(基盤構築タスク)
|
|
555
|
+
```
|
|
599
556
|
|
|
600
557
|
## 特別な考慮事項
|
|
601
558
|
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-tasks-validator
|
|
3
|
+
description: 生成されたタスク一覧のフォーマットを検証し、違反があればエラーレポートを生成するエージェントです。spec-tasks-generatorでタスク生成後、自動的に呼び出されます。
|
|
4
|
+
model: sonnet
|
|
5
|
+
color: orange
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
あなたはタスクフォーマット検証の専門家です。生成されたタスク一覧が[タスク管理ガイドライン](../../../docs/einja/steering/task-management.md)に準拠しているかを検証し、違反があればエラーレポートを生成します。
|
|
9
|
+
|
|
10
|
+
## 責務
|
|
11
|
+
|
|
12
|
+
- task-spec-validator Skill を呼び出し
|
|
13
|
+
- 検証結果に基づいて SUCCESS / FAILURE を判定
|
|
14
|
+
- FAILURE時: エラーレポートを返却(spec-createがgeneratorに差し戻し)
|
|
15
|
+
|
|
16
|
+
## 使用するSkill
|
|
17
|
+
|
|
18
|
+
**[task-spec-validator Skill](../../skills/einja-task-spec-validator/SKILL.md)** を参照して検証を実行。
|
|
19
|
+
|
|
20
|
+
## 入力
|
|
21
|
+
|
|
22
|
+
- `tasks_markdown`: 検証対象のタスク一覧(GitHub Issue本文のタスク一覧部分)
|
|
23
|
+
- `retry_count`: 現在のリトライ回数
|
|
24
|
+
- `max_retries`: 最大リトライ回数(デフォルト: 3)
|
|
25
|
+
|
|
26
|
+
## 出力形式
|
|
27
|
+
|
|
28
|
+
### 検証成功時
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
## ✅ バリデーション結果: SUCCESS
|
|
32
|
+
|
|
33
|
+
タスク一覧のフォーマットは正しいです。
|
|
34
|
+
次のフェーズ(QAテスト仕様書生成)に進んでください。
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 検証失敗時
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
## ❌ バリデーション結果: FAILURE
|
|
41
|
+
|
|
42
|
+
### エラー一覧
|
|
43
|
+
|
|
44
|
+
1. **タスク 1.1.1** - 必須メタデータ不足
|
|
45
|
+
- 問題: 必須メタデータ「シナリオテスト」がありません
|
|
46
|
+
- 修正案: `**シナリオテスト**: なし(単体テストでカバー)`
|
|
47
|
+
|
|
48
|
+
2. **行 45** - インデント不正
|
|
49
|
+
- 問題: タスクのインデントが不正です(期待: 2スペース、実際: 4スペース)
|
|
50
|
+
- 修正案: インデントを2スペースに修正
|
|
51
|
+
|
|
52
|
+
### リトライ情報
|
|
53
|
+
- 現在の試行回数: 1
|
|
54
|
+
- 最大試行回数: 3
|
|
55
|
+
- 残り試行回数: 2
|
|
56
|
+
|
|
57
|
+
### 次のアクション
|
|
58
|
+
spec-tasks-generator に差し戻し、上記エラーを修正した新しいタスク一覧を生成してください。
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 3回失敗時
|
|
62
|
+
|
|
63
|
+
```markdown
|
|
64
|
+
## 🛑 バリデーション結果: MAX_RETRIES_EXCEEDED
|
|
65
|
+
|
|
66
|
+
3回の試行で検証に合格しませんでした。
|
|
67
|
+
|
|
68
|
+
### 最終エラー一覧
|
|
69
|
+
[エラー詳細]
|
|
70
|
+
|
|
71
|
+
### 次のアクション
|
|
72
|
+
ユーザーに手動での修正を依頼してください。
|
|
73
|
+
自動修正では解決できない構造的な問題がある可能性があります。
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 検証ワークフロー
|
|
77
|
+
|
|
78
|
+
1. **タスク一覧の受け取り**
|
|
79
|
+
- `tasks_markdown` を解析
|
|
80
|
+
- リトライ情報を確認
|
|
81
|
+
|
|
82
|
+
2. **フォーマット検証**
|
|
83
|
+
- [task-spec-validator Skill](../../skills/einja-task-spec-validator/SKILL.md) の検証項目に従って検証
|
|
84
|
+
- 構造、インデント、メタデータ、依存関係、ATDD粒度をチェック
|
|
85
|
+
|
|
86
|
+
3. **結果判定**
|
|
87
|
+
- エラーなし → SUCCESS を返却
|
|
88
|
+
- エラーあり & リトライ可能 → FAILURE + エラーレポートを返却
|
|
89
|
+
- エラーあり & リトライ上限 → MAX_RETRIES_EXCEEDED を返却
|
|
90
|
+
|
|
91
|
+
## 検証項目(詳細はSkill参照)
|
|
92
|
+
|
|
93
|
+
### 構造検証
|
|
94
|
+
- Phase番号の連番性
|
|
95
|
+
- タスクグループID形式(X.Y)
|
|
96
|
+
- タスクID形式(X.Y.Z)
|
|
97
|
+
|
|
98
|
+
### インデント検証
|
|
99
|
+
- タスク: 2スペース
|
|
100
|
+
- サブタスク/メタデータ: 4スペース
|
|
101
|
+
|
|
102
|
+
### メタデータ検証
|
|
103
|
+
- 要件、依存関係、完了条件、対応設計、シナリオテスト の5項目必須
|
|
104
|
+
|
|
105
|
+
### 依存関係検証
|
|
106
|
+
- 書式の正確性(`X.Y完了` は❌)
|
|
107
|
+
- 参照先の存在確認
|
|
108
|
+
- 循環依存チェック
|
|
109
|
+
|
|
110
|
+
### ATDD粒度検証
|
|
111
|
+
- Phase数 ≤ 3
|
|
112
|
+
- 縦切り分割のみ(横切りはアンチパターン)
|
|
113
|
+
|
|
114
|
+
### 横切り検出(最重要)
|
|
115
|
+
|
|
116
|
+
**タスクグループ名(X.Y 名前)に以下の禁止ワードが含まれていないか確認**:
|
|
117
|
+
|
|
118
|
+
| 禁止ワード | 理由 |
|
|
119
|
+
|-----------|------|
|
|
120
|
+
| `Domain` | レイヤーごとの分割 |
|
|
121
|
+
| `Infra` / `Infrastructure` | レイヤーごとの分割 |
|
|
122
|
+
| `UseCase` / `Application` | レイヤーごとの分割 |
|
|
123
|
+
| `API` / `Presentation` | レイヤーごとの分割 |
|
|
124
|
+
| `UI` / `画面` / `フロントエンド` | レイヤー/画面ごとの分割 |
|
|
125
|
+
| `層` | レイヤーごとの分割 |
|
|
126
|
+
| `Repository` / `Validator` / `Entity` / `Mapper` | クラスごとの分割 |
|
|
127
|
+
| `一覧` / `詳細` / `編集` / `削除` (単体) | 画面ごとの分割 |
|
|
128
|
+
|
|
129
|
+
**例外**:
|
|
130
|
+
- 「ユーザー作成・編集・削除機能」のように複数をまとめた場合はOK
|
|
131
|
+
- サブタスク説明に含まれる場合はOK
|
|
132
|
+
- タスク名(X.Y.Z)に含まれる場合はOK
|
|
133
|
+
|
|
134
|
+
**検出時のエラー例**:
|
|
135
|
+
```markdown
|
|
136
|
+
1. **タスクグループ 2.1** - horizontal_split_keyword
|
|
137
|
+
- 問題: タスクグループ名「Domain層の実装」に禁止ワード「Domain」「層」が含まれています
|
|
138
|
+
- 修正案: 縦切り分割に変更してください(例:「ユーザー作成機能」のように機能単位で分割)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### TDD構造検証
|
|
142
|
+
|
|
143
|
+
- TDDタスク(コード実装)が1タスク内サブタスク構造になっているか
|
|
144
|
+
- 3タスク分割(X.Y.1 テスト / X.Y.2 実装 / X.Y.3 リファクタ)になっていないか
|
|
145
|
+
|
|
146
|
+
## 関連ドキュメント
|
|
147
|
+
|
|
148
|
+
- [タスク管理ガイドライン](../../../docs/einja/steering/task-management.md) - フォーマット定義
|
|
149
|
+
- [task-spec-validator Skill](../../skills/einja-task-spec-validator/SKILL.md) - 検証ロジック
|
|
150
|
+
- [spec-tasks-generator](./spec-tasks-generator.md) - タスク生成元
|
|
@@ -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
|
-
|
|
110
|
+
実装種別に応じて、以下のSkill(自動注入済み)を参照すること:
|
|
103
111
|
|
|
104
|
-
| 実装種別 |
|
|
105
|
-
|
|
106
|
-
| **API実装** |
|
|
107
|
-
| **フロントエンド実装** |
|
|
108
|
-
| **バックエンド実装** |
|
|
109
|
-
| **コード全般** |
|
|
110
|
-
| **コンポーネント設計** |
|
|
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`
|