yodogawa 2.1.3 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +134 -94
- package/LICENSE +1 -1
- package/README.md +351 -263
- package/bin/checks/id-trace.js +137 -0
- package/bin/checks/links.js +59 -0
- package/bin/checks/placeholder.js +132 -0
- package/bin/checks/structure.js +127 -0
- package/bin/cli.js +51 -67
- package/bin/commands/doctor.js +128 -0
- package/bin/commands/install.js +58 -0
- package/bin/commands/new-task.js +117 -0
- package/bin/lib/check-cli.js +19 -0
- package/bin/lib/findings.js +31 -0
- package/bin/lib/markdown.js +103 -0
- package/bin/lib/project-spec.js +138 -0
- package/bin/lib/walk-md.js +23 -0
- package/package.json +68 -55
- package/skills/a-001-setup-doc-structure/SKILL.md +68 -68
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +75 -75
- package/skills/a-002-initialize-project/SKILL.md +145 -118
- package/skills/a-002-initialize-project/reference/hearing-questions.md +91 -41
- package/skills/a-002-initialize-project/reference/structure-check.md +12 -22
- package/skills/a-002a-slice-mvp-scope/SKILL.md +105 -0
- package/skills/a-002b-define-user-stories/SKILL.md +80 -0
- package/skills/a-002b-define-user-stories/reference/user-stories-guide.md +78 -0
- package/skills/a-003-create-scenarios/SKILL.md +97 -96
- package/{templates/project/02-behavior/01-scenarios.md → skills/a-003-create-scenarios/reference/detailed-gherkin-template.md} +413 -406
- package/skills/a-003-create-scenarios/reference/structure-check.md +20 -17
- package/skills/a-004-define-domain-model/SKILL.md +107 -98
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +33 -7
- package/skills/a-004-define-domain-model/reference/ubiquitous-language-guide.md +49 -0
- package/skills/a-005-create-domain-diagram/SKILL.md +18 -17
- package/skills/a-006-review-requirements-domain/SKILL.md +59 -22
- package/skills/a-006-review-requirements-domain/examples/review-report-template.md +27 -7
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +53 -18
- package/skills/a-007-define-tech-stack/SKILL.md +99 -99
- package/skills/a-008-define-repository-structure/SKILL.md +96 -96
- package/skills/a-009-define-screen-design/SKILL.md +103 -103
- package/skills/a-010-define-design-system/SKILL.md +130 -130
- package/skills/a-011-define-data-model/SKILL.md +118 -118
- package/skills/a-012-define-api-spec/SKILL.md +105 -105
- package/skills/a-013-define-architecture/SKILL.md +98 -98
- package/skills/a-014-define-infrastructure/SKILL.md +118 -110
- package/skills/{a-002-initialize-project → a-014-define-infrastructure}/examples/nfr-baseline.md +2 -1
- package/{templates/project/01-requirements/04-non-functional-requirements.md → skills/a-014-define-infrastructure/examples/non-functional-requirements.md} +120 -115
- package/skills/a-015-review-design/reference/consistency-checks.md +1 -1
- package/skills/b-001-create-task-directory/SKILL.md +68 -68
- package/skills/b-002-create-task-definition/SKILL.md +114 -114
- package/skills/b-003-create-task-research/SKILL.md +128 -128
- package/skills/b-004-create-task-implementation/SKILL.md +98 -98
- package/skills/b-005-review-task/reference/assessment-criteria.md +79 -79
- package/skills/c-001-implement-task/SKILL.md +186 -186
- package/skills/c-001-implement-task/reference/implementation-loop.md +65 -65
- package/skills/c-002-update-documentation/SKILL.md +159 -159
- package/skills/c-002-update-documentation/examples/project-doc-updates.md +4 -4
- package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +99 -97
- package/templates/project/01-requirements/01-product-brief.md +186 -0
- package/templates/project/01-requirements/02-mvp-scope.md +64 -0
- package/templates/project/01-requirements/03-parking-lot.md +29 -0
- package/templates/project/01-requirements/05-user-stories.md +28 -124
- package/templates/project/01-requirements/{02-features-implemented.md → 06-features-implemented.md} +77 -73
- package/templates/project/02-behavior/01-core-scenarios.md +80 -0
- package/templates/project/03-domain/01-domain-model.md +120 -339
- package/templates/project/03-domain/01-domain-sketch.md +90 -0
- package/templates/project/03-domain/02-ubiquitous-language.md +32 -153
- package/templates/project/04-design/01-tech-stack.md +367 -367
- package/templates/project/04-design/02-repository-structure.md +391 -391
- package/templates/project/04-design/03-screen-design.md +596 -596
- package/templates/project/04-design/04-design-system.md +261 -261
- package/templates/project/04-design/05-data-model.md +211 -211
- package/templates/project/04-design/06-api-spec.md +226 -226
- package/templates/project/04-design/07-architecture.md +183 -183
- package/templates/project/04-design/08-infrastructure.md +180 -180
- package/templates/project/AI_CONTEXT.md +55 -0
- package/templates/project/STAKEHOLDER-SUMMARY.md +66 -0
- package/templates/tasks/task-template/a-definition.md +143 -143
- package/templates/tasks/task-template/b-research.md +185 -185
- package/templates/tasks/task-template/c-implementation.md +200 -200
- package/templates/project/01-requirements/01-system-overview.md +0 -49
- package/templates/project/01-requirements/03-features-planned.md +0 -75
|
@@ -1,115 +1,120 @@
|
|
|
1
|
-
# 非機能要件一覧
|
|
2
|
-
|
|
3
|
-
<!--
|
|
4
|
-
何を書くか: システムが「どう動くべきか」を定義する品質要件
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
|
110
|
-
|
|
111
|
-
|
|
|
112
|
-
|
|
|
113
|
-
|
|
|
114
|
-
|
|
|
115
|
-
|
|
|
1
|
+
# 非機能要件一覧
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
何を書くか: システムが「どう動くべきか」を定義する品質要件
|
|
5
|
+
|
|
6
|
+
位置づけ:
|
|
7
|
+
- これは設計フェーズ(/a-014-define-infrastructure)で必要時に展開する詳細 NFR テンプレート。
|
|
8
|
+
- 初期フェーズ(要件定義)では詳細 NFR を定量化しない。MVP の作り方を変えるほど重要な制約のみを
|
|
9
|
+
Product Brief の「クリティカル制約」に記載する。本テンプレートはその制約を起点に詳細化する。
|
|
10
|
+
|
|
11
|
+
目的:
|
|
12
|
+
- システムの性能基準、セキュリティレベル、信頼性を明確化
|
|
13
|
+
- アーキテクチャ設計・インフラ設計の指針を提供
|
|
14
|
+
- テスト計画の基準値を設定
|
|
15
|
+
- ステークホルダーとのSLA(サービスレベル合意)の根拠
|
|
16
|
+
|
|
17
|
+
特徴:
|
|
18
|
+
- 機能要件(何ができるか)に対し、非機能要件は「どれくらい良く動くか」を規定
|
|
19
|
+
- 測定可能で検証可能な基準を設定
|
|
20
|
+
- 設計フェーズで定義し、開発全体を通じて継続的に検証
|
|
21
|
+
|
|
22
|
+
記載のポイント:
|
|
23
|
+
- 具体的な数値目標を含める(「高速」ではなく「200ms以内」)
|
|
24
|
+
- 現実的で達成可能な基準を設定
|
|
25
|
+
- ビジネス要件と技術的実現可能性のバランスを取る
|
|
26
|
+
|
|
27
|
+
更新頻度:
|
|
28
|
+
- 設計フェーズで定義、要件変更時に見直し
|
|
29
|
+
- システム規模拡大時に再評価(ユーザー数増加など)
|
|
30
|
+
- 定期的な監視結果に基づいて調整
|
|
31
|
+
-->
|
|
32
|
+
|
|
33
|
+
<!--
|
|
34
|
+
テーブル構成:
|
|
35
|
+
|
|
36
|
+
【カテゴリ】
|
|
37
|
+
主要なカテゴリと内容:
|
|
38
|
+
|
|
39
|
+
性能(Performance)
|
|
40
|
+
- 応答時間: ユーザー操作からレスポンスまでの時間
|
|
41
|
+
- スループット: 単位時間あたりの処理件数
|
|
42
|
+
- リソース使用率: CPU、メモリ、ディスク、ネットワーク
|
|
43
|
+
- 同時接続数: 同時にアクセス可能なユーザー数
|
|
44
|
+
|
|
45
|
+
セキュリティ(Security)
|
|
46
|
+
- 認証・認可: ログイン方式、アクセス制御
|
|
47
|
+
- 暗号化: 通信・データの暗号化方式
|
|
48
|
+
- 監査: ログ記録、アクセス履歴
|
|
49
|
+
- 脆弱性対策: OWASP Top 10対応など
|
|
50
|
+
- データ保護: GDPR、個人情報保護法などのコンプライアンス
|
|
51
|
+
|
|
52
|
+
可用性(Availability)
|
|
53
|
+
- 稼働率: システムが利用可能な時間の割合(例: 99.9%)
|
|
54
|
+
- MTBF: 平均故障間隔
|
|
55
|
+
- MTTR: 平均復旧時間
|
|
56
|
+
- バックアップ: バックアップ頻度と保持期間
|
|
57
|
+
- 障害対応: 検知から復旧までの目標時間
|
|
58
|
+
|
|
59
|
+
スケーラビリティ(Scalability)
|
|
60
|
+
- ユーザー数: 対応可能な最大ユーザー数
|
|
61
|
+
- データ量: 保存可能なデータの上限
|
|
62
|
+
- 拡張性: 水平/垂直スケーリングの方式
|
|
63
|
+
- エラスティシティ: 負荷に応じた自動スケーリング
|
|
64
|
+
|
|
65
|
+
ユーザビリティ(Usability)
|
|
66
|
+
- アクセシビリティ: WCAG準拠レベル
|
|
67
|
+
- 学習容易性: 新規ユーザーが操作を習得する時間
|
|
68
|
+
- 多言語対応: サポートする言語
|
|
69
|
+
- モバイル対応: レスポンシブデザイン、PWA
|
|
70
|
+
|
|
71
|
+
保守性(Maintainability)
|
|
72
|
+
- コード品質: テストカバレッジ、静的解析基準
|
|
73
|
+
- デプロイ頻度: リリースサイクル
|
|
74
|
+
- ロールバック時間: 問題発生時の巻き戻し時間
|
|
75
|
+
|
|
76
|
+
互換性(Compatibility)
|
|
77
|
+
- ブラウザ対応: サポートするブラウザとバージョン
|
|
78
|
+
- デバイス対応: PC、タブレット、スマートフォン
|
|
79
|
+
- API互換性: 後方互換性の保証期間
|
|
80
|
+
|
|
81
|
+
【要件】
|
|
82
|
+
- カテゴリ内の具体的な要件項目名
|
|
83
|
+
- 簡潔で明確な名称(2-5単語程度)
|
|
84
|
+
- 例: 「応答時間」「認証方式」「稼働率」
|
|
85
|
+
|
|
86
|
+
【説明】
|
|
87
|
+
- 要件の具体的な基準値や条件を記述
|
|
88
|
+
- 測定可能な数値を含める(必須)
|
|
89
|
+
- 測定条件や前提条件も必要に応じて記載
|
|
90
|
+
- 例: 「API応答は95パーセンタイルで200ms以内(通常負荷時)」
|
|
91
|
+
|
|
92
|
+
ベストプラクティス:
|
|
93
|
+
- 「速い」「安全」など曖昧な表現を避け、具体的な数値や基準を使う
|
|
94
|
+
- テスト可能な要件にする(どう検証するか明確にする)
|
|
95
|
+
- 優先度の高い要件から記載(すべてを満たす必要はない場合もある)
|
|
96
|
+
- ビジネス影響を考慮した現実的な基準を設定(過度に厳しい基準は開発コストを増大させる)
|
|
97
|
+
- 競合他社や業界標準を参考にする
|
|
98
|
+
- システムの成長に応じて要件を見直す(初期は緩く、成熟に伴い厳格化も可)
|
|
99
|
+
-->
|
|
100
|
+
|
|
101
|
+
| カテゴリ | 要件 | 説明 |
|
|
102
|
+
|----------|------|------|
|
|
103
|
+
| <!-- カテゴリ名 --> | <!-- 要件名 --> | <!-- 要件の詳細 --> |
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
**例:**
|
|
108
|
+
|
|
109
|
+
| カテゴリ | 要件 | 説明 |
|
|
110
|
+
|----------|------|------|
|
|
111
|
+
| 性能 | 応答時間 | API応答は200ms以内 |
|
|
112
|
+
| 性能 | 処理能力 | 同時接続1000ユーザーまで対応 |
|
|
113
|
+
| セキュリティ | 認証 | OAuth 2.0 + JWT認証 |
|
|
114
|
+
| セキュリティ | 暗号化 | TLS 1.3による通信暗号化 |
|
|
115
|
+
| セキュリティ | 監査 | 全API呼び出しのログ記録 |
|
|
116
|
+
| 可用性 | 稼働率 | 99.9%の稼働率を維持 |
|
|
117
|
+
| 可用性 | 障害対応 | 検知から復旧まで4時間以内 |
|
|
118
|
+
| スケーラビリティ | ユーザー数 | 10万ユーザーまで対応可能 |
|
|
119
|
+
| スケーラビリティ | データ量 | 1TBまでのデータ保存 |
|
|
120
|
+
| ユーザビリティ | アクセシビリティ | WCAG 2.1 AA準拠 |
|
|
@@ -15,7 +15,7 @@ grep -oE "PostgreSQL|Redis|NestJS|Next.js" docs/project/04-design/07-architectur
|
|
|
15
15
|
|
|
16
16
|
## 2.2 データモデル ↔ ドメインモデル
|
|
17
17
|
|
|
18
|
-
- **カバレッジ**:
|
|
18
|
+
- **カバレッジ**: ドメインの中核エンティティ(`01-domain-sketch.md`、Full DDD 採用時は `01-domain-model.md` の Aggregate)がデータモデル(`05-data-model.md`)のエンティティとして定義されているか。
|
|
19
19
|
- **用語統一**: テーブル名・カラム名がユビキタス言語と一致しているか。
|
|
20
20
|
|
|
21
21
|
## 2.3 API 仕様 ↔ データモデル
|
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: b-001-create-task-directory
|
|
3
|
-
description: docs/tasks/ 配下に連番タスク ID 付きディレクトリを作成する。新しい実装タスクに着手する最初の手順として使用。
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
argument-hint: "[slug]"
|
|
6
|
-
allowed-tools: Read, Write, Bash, Glob
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# CreateTaskDirectory (b-001)
|
|
10
|
-
|
|
11
|
-
## 目的
|
|
12
|
-
|
|
13
|
-
- 新しいタスク専用のディレクトリを作成する(ID は自動採番)。
|
|
14
|
-
- タスク ID の採番ルール(`taskXXXXXX`)を統一し、管理しやすくする。
|
|
15
|
-
- **注意**: このスキルはディレクトリ作成のみ。タスク定義書などのドキュメント作成は後続のスキル(`/b-002-create-task-definition` など)で実施。
|
|
16
|
-
|
|
17
|
-
## 前提
|
|
18
|
-
|
|
19
|
-
- `docs/tasks/` ディレクトリが存在すること(未作成なら `/a-001-setup-doc-structure` を先に実行)
|
|
20
|
-
|
|
21
|
-
## 手順
|
|
22
|
-
|
|
23
|
-
### 1. スラッグの決定
|
|
24
|
-
|
|
25
|
-
`$ARGUMENTS` が指定されている場合はそれをスラッグとして使用する。未指定の場合のみユーザーに質問:
|
|
26
|
-
|
|
27
|
-
- 「タスクの内容を 3〜5 語の英数字とハイフンで表現してください(例: `user-profile-edit`)。」
|
|
28
|
-
|
|
29
|
-
命名規則の詳細は [examples/naming-convention.md](examples/naming-convention.md) を参照。
|
|
30
|
-
|
|
31
|
-
### 2. タスク ID の採番とディレクトリ作成
|
|
32
|
-
|
|
33
|
-
決定したスラッグについて、次を順に行う。
|
|
34
|
-
|
|
35
|
-
1. **形式チェック**: スラッグが正規表現 `^[a-z0-9]+(-[a-z0-9]+)*$`(英小文字・数字・ハイフンのみ、連続ハイフン禁止)に一致するか確認。3〜5 語を推奨(範囲外は警告のみで続行)。違反時はエスカレーション参照。
|
|
36
|
-
2. **ID の採番**: `docs/tasks/` 配下の `task{6桁数字}-*` ディレクトリから最大 ID を求め、+1 を 6 桁ゼロ詰めした `task{ID}`(例: `task000003`)とする。タスクが無ければ `task000001`。
|
|
37
|
-
3. **ディレクトリ作成**: `docs/tasks/task{ID}-{SLUG}` を作成する。
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# 既存タスクを確認して最大 ID を把握
|
|
41
|
-
ls -d docs/tasks/task* 2>/dev/null
|
|
42
|
-
|
|
43
|
-
# 採番した ID とスラッグでディレクトリを作成({ID}/{SLUG} は実値に置換)
|
|
44
|
-
mkdir -p "docs/tasks/task{ID}-{SLUG}"
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### 3. 結果の確認
|
|
48
|
-
|
|
49
|
-
作成パス(`docs/tasks/task{ID}-{SLUG}`)が生成されたことを確認。
|
|
50
|
-
|
|
51
|
-
### 4. 次のステップの案内
|
|
52
|
-
|
|
53
|
-
- 「タスクディレクトリ `docs/tasks/task{ID}-{SLUG}` を作成しました。」
|
|
54
|
-
- 「続いてタスク定義書を作成しますか?(`/b-002-create-task-definition`)」
|
|
55
|
-
|
|
56
|
-
## 完了条件
|
|
57
|
-
|
|
58
|
-
- `docs/tasks/task{ID}-{SLUG}/` ディレクトリが作成されている
|
|
59
|
-
- ユーザーに作成されたディレクトリパスが報告されている
|
|
60
|
-
|
|
61
|
-
## エスカレーション
|
|
62
|
-
|
|
63
|
-
- **`docs/tasks/` が見つからない**: ディレクトリが無い場合は `/a-001-setup-doc-structure` の実行を促す
|
|
64
|
-
- **スラッグ形式違反**: 英小文字・数字・ハイフンのみ(連続ハイフン禁止)で再入力を求める
|
|
65
|
-
|
|
66
|
-
## 参考
|
|
67
|
-
|
|
68
|
-
- [examples/naming-convention.md](examples/naming-convention.md) — タスク ID の採番ルールとスラッグ命名規則
|
|
1
|
+
---
|
|
2
|
+
name: b-001-create-task-directory
|
|
3
|
+
description: docs/tasks/ 配下に連番タスク ID 付きディレクトリを作成する。新しい実装タスクに着手する最初の手順として使用。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
argument-hint: "[slug]"
|
|
6
|
+
allowed-tools: Read, Write, Bash, Glob
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# CreateTaskDirectory (b-001)
|
|
10
|
+
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
13
|
+
- 新しいタスク専用のディレクトリを作成する(ID は自動採番)。
|
|
14
|
+
- タスク ID の採番ルール(`taskXXXXXX`)を統一し、管理しやすくする。
|
|
15
|
+
- **注意**: このスキルはディレクトリ作成のみ。タスク定義書などのドキュメント作成は後続のスキル(`/b-002-create-task-definition` など)で実施。
|
|
16
|
+
|
|
17
|
+
## 前提
|
|
18
|
+
|
|
19
|
+
- `docs/tasks/` ディレクトリが存在すること(未作成なら `/a-001-setup-doc-structure` を先に実行)
|
|
20
|
+
|
|
21
|
+
## 手順
|
|
22
|
+
|
|
23
|
+
### 1. スラッグの決定
|
|
24
|
+
|
|
25
|
+
`$ARGUMENTS` が指定されている場合はそれをスラッグとして使用する。未指定の場合のみユーザーに質問:
|
|
26
|
+
|
|
27
|
+
- 「タスクの内容を 3〜5 語の英数字とハイフンで表現してください(例: `user-profile-edit`)。」
|
|
28
|
+
|
|
29
|
+
命名規則の詳細は [examples/naming-convention.md](examples/naming-convention.md) を参照。
|
|
30
|
+
|
|
31
|
+
### 2. タスク ID の採番とディレクトリ作成
|
|
32
|
+
|
|
33
|
+
決定したスラッグについて、次を順に行う。
|
|
34
|
+
|
|
35
|
+
1. **形式チェック**: スラッグが正規表現 `^[a-z0-9]+(-[a-z0-9]+)*$`(英小文字・数字・ハイフンのみ、連続ハイフン禁止)に一致するか確認。3〜5 語を推奨(範囲外は警告のみで続行)。違反時はエスカレーション参照。
|
|
36
|
+
2. **ID の採番**: `docs/tasks/` 配下の `task{6桁数字}-*` ディレクトリから最大 ID を求め、+1 を 6 桁ゼロ詰めした `task{ID}`(例: `task000003`)とする。タスクが無ければ `task000001`。
|
|
37
|
+
3. **ディレクトリ作成**: `docs/tasks/task{ID}-{SLUG}` を作成する。
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# 既存タスクを確認して最大 ID を把握
|
|
41
|
+
ls -d docs/tasks/task* 2>/dev/null
|
|
42
|
+
|
|
43
|
+
# 採番した ID とスラッグでディレクトリを作成({ID}/{SLUG} は実値に置換)
|
|
44
|
+
mkdir -p "docs/tasks/task{ID}-{SLUG}"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 3. 結果の確認
|
|
48
|
+
|
|
49
|
+
作成パス(`docs/tasks/task{ID}-{SLUG}`)が生成されたことを確認。
|
|
50
|
+
|
|
51
|
+
### 4. 次のステップの案内
|
|
52
|
+
|
|
53
|
+
- 「タスクディレクトリ `docs/tasks/task{ID}-{SLUG}` を作成しました。」
|
|
54
|
+
- 「続いてタスク定義書を作成しますか?(`/b-002-create-task-definition`)」
|
|
55
|
+
|
|
56
|
+
## 完了条件
|
|
57
|
+
|
|
58
|
+
- `docs/tasks/task{ID}-{SLUG}/` ディレクトリが作成されている
|
|
59
|
+
- ユーザーに作成されたディレクトリパスが報告されている
|
|
60
|
+
|
|
61
|
+
## エスカレーション
|
|
62
|
+
|
|
63
|
+
- **`docs/tasks/` が見つからない**: ディレクトリが無い場合は `/a-001-setup-doc-structure` の実行を促す
|
|
64
|
+
- **スラッグ形式違反**: 英小文字・数字・ハイフンのみ(連続ハイフン禁止)で再入力を求める
|
|
65
|
+
|
|
66
|
+
## 参考
|
|
67
|
+
|
|
68
|
+
- [examples/naming-convention.md](examples/naming-convention.md) — タスク ID の採番ルールとスラッグ命名規則
|
|
@@ -1,114 +1,114 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: b-002-create-task-definition
|
|
3
|
-
description: 対話を通じてタスク定義(目的・変更内容・受け入れ基準)を a-definition.md に記録する。タスクディレクトリ作成後、仕様を確定する際に使用。
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
argument-hint: "[task-id]"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# CreateTaskDefinition (b-002)
|
|
10
|
-
|
|
11
|
-
## 目的
|
|
12
|
-
|
|
13
|
-
- 新しいタスクの背景・目的・スコープを明確化する。
|
|
14
|
-
- ユーザーストーリーと変更内容を整理し、後続のリサーチ・実装計画に渡す。
|
|
15
|
-
- 測定可能な受け入れ基準を定義し、完了条件を共有する。
|
|
16
|
-
|
|
17
|
-
## 前提
|
|
18
|
-
|
|
19
|
-
- `docs/tasks/task{ID}-{SLUG}/` が `/b-001-create-task-directory` で作成済み
|
|
20
|
-
- テンプレート: `../../templates/tasks/task-template/a-definition.md`(スキル配置ディレクトリ起点の相対参照)
|
|
21
|
-
- タスクの概要が関係者と共有済み
|
|
22
|
-
|
|
23
|
-
## 手順
|
|
24
|
-
|
|
25
|
-
`$ARGUMENTS` が指定されている場合は `task{ID}-{SLUG}`(例: `task000003-auth-login`)として使用する。未指定の場合はユーザーに対象タスクを確認する。
|
|
26
|
-
|
|
27
|
-
### 1. タスクディレクトリとテンプレートの確認
|
|
28
|
-
|
|
29
|
-
対象タスクディレクトリを確認する。
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
ls -d docs/tasks/task*
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
このスキルの配置ディレクトリ(`skills/b-002-create-task-definition/`)を起点に、相対パス `../../templates/tasks/task-template/a-definition.md` を Read で読み込み、`docs/tasks/task{ID}-{SLUG}/a-definition.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。
|
|
36
|
-
|
|
37
|
-
### 2. 目的・背景のヒアリング
|
|
38
|
-
|
|
39
|
-
現状の課題、困っている人、完了後の価値/KPI を具体的に確認。質問例は [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md#目的背景のヒアリング) を参照。
|
|
40
|
-
|
|
41
|
-
### 3. ユーザーストーリーの整理
|
|
42
|
-
|
|
43
|
-
形式「[役割]として、[目的]がしたい。なぜなら[理由]だから」で作成。優先度と関連 ID(US-001 等)を付与。詳細は [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md#ユーザーストーリー) を参照。
|
|
44
|
-
|
|
45
|
-
### 4. 変更内容の洗い出し
|
|
46
|
-
|
|
47
|
-
カテゴリ別(画面/UI、API/サービス、データモデル/DB、その他)に列挙。ファイル名・エンドポイント・テーブル名を具体的に記載。カテゴリ詳細: [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md#変更内容のカテゴリ)
|
|
48
|
-
|
|
49
|
-
### 5. 受け入れ基準の策定
|
|
50
|
-
|
|
51
|
-
観点: 正常系、異常系・エラー表示、性能・セキュリティ、テスト要件。具体例は [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md#受け入れ基準の観点) を参照。
|
|
52
|
-
|
|
53
|
-
### 6. ドキュメントへの反映
|
|
54
|
-
|
|
55
|
-
`docs/tasks/task{ID}-{SLUG}/a-definition.md` に以下を順に埋める:
|
|
56
|
-
|
|
57
|
-
- 目的・背景
|
|
58
|
-
- ユーザーストーリー一覧
|
|
59
|
-
- 変更内容一覧
|
|
60
|
-
- 受け入れ基準
|
|
61
|
-
- メモ/補足情報(関連 Issue・制約等)
|
|
62
|
-
|
|
63
|
-
HTML コメントは削除せず、テンプレートのガイドとして残す。
|
|
64
|
-
|
|
65
|
-
### 7. 構造チェック
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
grep "## 目的" docs/tasks/task{ID}-{SLUG}/a-definition.md \
|
|
69
|
-
&& grep "## ユーザーストーリー" docs/tasks/task{ID}-{SLUG}/a-definition.md \
|
|
70
|
-
&& grep "## 変更内容" docs/tasks/task{ID}-{SLUG}/a-definition.md \
|
|
71
|
-
&& grep "## 受け入れ基準" docs/tasks/task{ID}-{SLUG}/a-definition.md \
|
|
72
|
-
&& echo "OK" || echo "MISSING SECTION"
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
|
|
76
|
-
|
|
77
|
-
### 8. レビューと確認
|
|
78
|
-
|
|
79
|
-
完成したドキュメントをユーザーに提示し、目的の明確さ・変更内容の網羅性・受け入れ基準の測定可能性を確認。質問例は [reference/structure-check.md](reference/structure-check.md#レビュー確認質問) を参照。
|
|
80
|
-
|
|
81
|
-
### 9. Git への追加(任意)と次のステップ
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
git add docs/tasks/task{ID}-{SLUG}/a-definition.md
|
|
85
|
-
git commit -m "docs(task): タスク定義書の作成 task{ID}"
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
次は `/b-003-create-task-research` でリサーチドキュメント作成を提案。
|
|
89
|
-
|
|
90
|
-
## 完了条件
|
|
91
|
-
|
|
92
|
-
- `docs/tasks/task{ID}-{SLUG}/a-definition.md` が作成されている
|
|
93
|
-
- 以下のセクションがすべて記載:
|
|
94
|
-
- 目的(解決する問題、提供する価値)
|
|
95
|
-
- ユーザーストーリー一覧(最低1個以上)
|
|
96
|
-
- 変更内容一覧(該当カテゴリがすべて含まれる)
|
|
97
|
-
- 受け入れ基準(正常系、異常系、テスト要件)
|
|
98
|
-
- 目的が具体的で測定可能、ストーリーは役割/目的/理由形式
|
|
99
|
-
- 変更内容が具体的なファイル名・コンポーネント名を含む
|
|
100
|
-
- ユーザーが内容を確認し承認している
|
|
101
|
-
|
|
102
|
-
## エスカレーション
|
|
103
|
-
|
|
104
|
-
- **タスクの目的が曖昧**: 「具体的な問題と解決後の状態を明確にしてください。」
|
|
105
|
-
- **変更内容が不明確**: 「具体的なファイル名・コンポーネント名・カラム名を含めてください。」
|
|
106
|
-
- **受け入れ基準が曖昧**: 「テスト可能な基準を定義してください。」(例: 「使いやすい」→「登録完了まで3クリック以内」)
|
|
107
|
-
- **ユーザーストーリーが技術的すぎる**: ユーザー視点の価値を記載(例: 「React Hook Form を使用したい」→「入力エラーを即座に確認したい」)
|
|
108
|
-
- **スコープが大きすぎる**: 複数タスクへの分割を推奨(1タスクは1〜5日で完了できる粒度が理想)
|
|
109
|
-
- **セキュリティ要件が欠けている**: [reference/structure-check.md](reference/structure-check.md#セキュリティ要件の確認観点) の観点を提示
|
|
110
|
-
|
|
111
|
-
## 参考
|
|
112
|
-
|
|
113
|
-
- [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md) — ヒアリング質問、ユーザーストーリー形式、変更内容カテゴリ、受け入れ基準例
|
|
114
|
-
- [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー観点、セキュリティ観点
|
|
1
|
+
---
|
|
2
|
+
name: b-002-create-task-definition
|
|
3
|
+
description: 対話を通じてタスク定義(目的・変更内容・受け入れ基準)を a-definition.md に記録する。タスクディレクトリ作成後、仕様を確定する際に使用。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
+
argument-hint: "[task-id]"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# CreateTaskDefinition (b-002)
|
|
10
|
+
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
13
|
+
- 新しいタスクの背景・目的・スコープを明確化する。
|
|
14
|
+
- ユーザーストーリーと変更内容を整理し、後続のリサーチ・実装計画に渡す。
|
|
15
|
+
- 測定可能な受け入れ基準を定義し、完了条件を共有する。
|
|
16
|
+
|
|
17
|
+
## 前提
|
|
18
|
+
|
|
19
|
+
- `docs/tasks/task{ID}-{SLUG}/` が `/b-001-create-task-directory` で作成済み
|
|
20
|
+
- テンプレート: `../../templates/tasks/task-template/a-definition.md`(スキル配置ディレクトリ起点の相対参照)
|
|
21
|
+
- タスクの概要が関係者と共有済み
|
|
22
|
+
|
|
23
|
+
## 手順
|
|
24
|
+
|
|
25
|
+
`$ARGUMENTS` が指定されている場合は `task{ID}-{SLUG}`(例: `task000003-auth-login`)として使用する。未指定の場合はユーザーに対象タスクを確認する。
|
|
26
|
+
|
|
27
|
+
### 1. タスクディレクトリとテンプレートの確認
|
|
28
|
+
|
|
29
|
+
対象タスクディレクトリを確認する。
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
ls -d docs/tasks/task*
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
このスキルの配置ディレクトリ(`skills/b-002-create-task-definition/`)を起点に、相対パス `../../templates/tasks/task-template/a-definition.md` を Read で読み込み、`docs/tasks/task{ID}-{SLUG}/a-definition.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。
|
|
36
|
+
|
|
37
|
+
### 2. 目的・背景のヒアリング
|
|
38
|
+
|
|
39
|
+
現状の課題、困っている人、完了後の価値/KPI を具体的に確認。質問例は [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md#目的背景のヒアリング) を参照。
|
|
40
|
+
|
|
41
|
+
### 3. ユーザーストーリーの整理
|
|
42
|
+
|
|
43
|
+
形式「[役割]として、[目的]がしたい。なぜなら[理由]だから」で作成。優先度と関連 ID(US-001 等)を付与。詳細は [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md#ユーザーストーリー) を参照。
|
|
44
|
+
|
|
45
|
+
### 4. 変更内容の洗い出し
|
|
46
|
+
|
|
47
|
+
カテゴリ別(画面/UI、API/サービス、データモデル/DB、その他)に列挙。ファイル名・エンドポイント・テーブル名を具体的に記載。カテゴリ詳細: [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md#変更内容のカテゴリ)
|
|
48
|
+
|
|
49
|
+
### 5. 受け入れ基準の策定
|
|
50
|
+
|
|
51
|
+
観点: 正常系、異常系・エラー表示、性能・セキュリティ、テスト要件。具体例は [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md#受け入れ基準の観点) を参照。
|
|
52
|
+
|
|
53
|
+
### 6. ドキュメントへの反映
|
|
54
|
+
|
|
55
|
+
`docs/tasks/task{ID}-{SLUG}/a-definition.md` に以下を順に埋める:
|
|
56
|
+
|
|
57
|
+
- 目的・背景
|
|
58
|
+
- ユーザーストーリー一覧
|
|
59
|
+
- 変更内容一覧
|
|
60
|
+
- 受け入れ基準
|
|
61
|
+
- メモ/補足情報(関連 Issue・制約等)
|
|
62
|
+
|
|
63
|
+
HTML コメントは削除せず、テンプレートのガイドとして残す。
|
|
64
|
+
|
|
65
|
+
### 7. 構造チェック
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
grep "## 目的" docs/tasks/task{ID}-{SLUG}/a-definition.md \
|
|
69
|
+
&& grep "## ユーザーストーリー" docs/tasks/task{ID}-{SLUG}/a-definition.md \
|
|
70
|
+
&& grep "## 変更内容" docs/tasks/task{ID}-{SLUG}/a-definition.md \
|
|
71
|
+
&& grep "## 受け入れ基準" docs/tasks/task{ID}-{SLUG}/a-definition.md \
|
|
72
|
+
&& echo "OK" || echo "MISSING SECTION"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
詳細チェックリストは [reference/structure-check.md](reference/structure-check.md#チェックリスト) を参照。
|
|
76
|
+
|
|
77
|
+
### 8. レビューと確認
|
|
78
|
+
|
|
79
|
+
完成したドキュメントをユーザーに提示し、目的の明確さ・変更内容の網羅性・受け入れ基準の測定可能性を確認。質問例は [reference/structure-check.md](reference/structure-check.md#レビュー確認質問) を参照。
|
|
80
|
+
|
|
81
|
+
### 9. Git への追加(任意)と次のステップ
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
git add docs/tasks/task{ID}-{SLUG}/a-definition.md
|
|
85
|
+
git commit -m "docs(task): タスク定義書の作成 task{ID}"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
次は `/b-003-create-task-research` でリサーチドキュメント作成を提案。
|
|
89
|
+
|
|
90
|
+
## 完了条件
|
|
91
|
+
|
|
92
|
+
- `docs/tasks/task{ID}-{SLUG}/a-definition.md` が作成されている
|
|
93
|
+
- 以下のセクションがすべて記載:
|
|
94
|
+
- 目的(解決する問題、提供する価値)
|
|
95
|
+
- ユーザーストーリー一覧(最低1個以上)
|
|
96
|
+
- 変更内容一覧(該当カテゴリがすべて含まれる)
|
|
97
|
+
- 受け入れ基準(正常系、異常系、テスト要件)
|
|
98
|
+
- 目的が具体的で測定可能、ストーリーは役割/目的/理由形式
|
|
99
|
+
- 変更内容が具体的なファイル名・コンポーネント名を含む
|
|
100
|
+
- ユーザーが内容を確認し承認している
|
|
101
|
+
|
|
102
|
+
## エスカレーション
|
|
103
|
+
|
|
104
|
+
- **タスクの目的が曖昧**: 「具体的な問題と解決後の状態を明確にしてください。」
|
|
105
|
+
- **変更内容が不明確**: 「具体的なファイル名・コンポーネント名・カラム名を含めてください。」
|
|
106
|
+
- **受け入れ基準が曖昧**: 「テスト可能な基準を定義してください。」(例: 「使いやすい」→「登録完了まで3クリック以内」)
|
|
107
|
+
- **ユーザーストーリーが技術的すぎる**: ユーザー視点の価値を記載(例: 「React Hook Form を使用したい」→「入力エラーを即座に確認したい」)
|
|
108
|
+
- **スコープが大きすぎる**: 複数タスクへの分割を推奨(1タスクは1〜5日で完了できる粒度が理想)
|
|
109
|
+
- **セキュリティ要件が欠けている**: [reference/structure-check.md](reference/structure-check.md#セキュリティ要件の確認観点) の観点を提示
|
|
110
|
+
|
|
111
|
+
## 参考
|
|
112
|
+
|
|
113
|
+
- [examples/hearing-and-criteria.md](examples/hearing-and-criteria.md) — ヒアリング質問、ユーザーストーリー形式、変更内容カテゴリ、受け入れ基準例
|
|
114
|
+
- [reference/structure-check.md](reference/structure-check.md) — 構造確認コマンド、チェックリスト、レビュー観点、セキュリティ観点
|