yodogawa 2.1.0 → 2.1.3
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 +12 -0
- package/LICENSE +21 -0
- package/README.md +27 -4
- package/bin/cli.js +0 -1
- package/package.json +3 -4
- package/skills/a-001-setup-doc-structure/SKILL.md +68 -67
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +75 -52
- package/skills/a-002-initialize-project/SKILL.md +118 -124
- package/skills/a-002-initialize-project/reference/structure-check.md +7 -7
- package/skills/a-003-create-scenarios/SKILL.md +96 -99
- package/skills/a-003-create-scenarios/reference/structure-check.md +5 -5
- package/skills/a-004-define-domain-model/SKILL.md +98 -99
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +3 -3
- package/skills/a-005-create-domain-diagram/SKILL.md +7 -7
- package/skills/a-005-create-domain-diagram/reference/structure-check.md +4 -4
- package/skills/a-006-review-requirements-domain/SKILL.md +4 -4
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +5 -5
- package/skills/a-007-define-tech-stack/SKILL.md +99 -102
- package/skills/a-007-define-tech-stack/reference/structure-check.md +5 -5
- package/skills/a-008-define-repository-structure/SKILL.md +96 -99
- package/skills/a-008-define-repository-structure/reference/structure-check.md +5 -5
- package/skills/a-009-define-screen-design/SKILL.md +103 -106
- package/skills/a-009-define-screen-design/reference/structure-check.md +5 -5
- package/skills/a-010-define-design-system/SKILL.md +130 -134
- package/skills/a-011-define-data-model/SKILL.md +118 -121
- package/skills/a-011-define-data-model/reference/structure-check.md +5 -5
- package/skills/a-012-define-api-spec/SKILL.md +105 -108
- package/skills/a-012-define-api-spec/reference/structure-check.md +5 -5
- package/skills/a-013-define-architecture/SKILL.md +98 -101
- package/skills/a-013-define-architecture/reference/structure-check.md +5 -5
- package/skills/a-014-define-infrastructure/SKILL.md +110 -113
- package/skills/a-014-define-infrastructure/reference/structure-check.md +5 -5
- package/skills/a-015-review-design/SKILL.md +8 -8
- package/skills/a-015-review-design/reference/consistency-checks.md +2 -2
- package/skills/b-001-create-task-directory/SKILL.md +68 -68
- package/skills/b-002-create-task-definition/SKILL.md +114 -115
- package/skills/b-003-create-task-research/SKILL.md +128 -130
- package/skills/b-004-create-task-implementation/SKILL.md +98 -97
- 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/reference/doc-structure-and-checks.md +97 -100
- package/templates/tasks/task-template/a-definition.md +1 -1
- package/templates/tasks/task-template/b-research.md +1 -1
- package/templates/tasks/task-template/c-implementation.md +3 -3
- package/scripts/setup-docs.sh +0 -92
- package/templates/documentation-rules.md +0 -143
|
@@ -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
|
-
-
|
|
14
|
-
- タスク ID の採番ルール(`taskXXXXXX`)を統一し、管理しやすくする。
|
|
15
|
-
- **注意**: このスキルはディレクトリ作成のみ。タスク定義書などのドキュメント作成は後続のスキル(`/b-002-create-task-definition` など)で実施。
|
|
16
|
-
|
|
17
|
-
## 前提
|
|
18
|
-
|
|
19
|
-
- `docs/tasks/`
|
|
20
|
-
|
|
21
|
-
## 手順
|
|
22
|
-
|
|
23
|
-
### 1.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
### 2.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
###
|
|
52
|
-
|
|
53
|
-
-
|
|
54
|
-
- 「続いてタスク定義書を作成しますか?(`/b-002-create-task-definition`)」
|
|
55
|
-
|
|
56
|
-
## 完了条件
|
|
57
|
-
|
|
58
|
-
- `docs/tasks/task{ID}-{SLUG}/` ディレクトリが作成されている
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
## エスカレーション
|
|
62
|
-
|
|
63
|
-
- **`docs/tasks/` が見つからない**:
|
|
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,115 +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
|
-
- テンプレート:
|
|
21
|
-
- タスクの概要が関係者と共有済み
|
|
22
|
-
|
|
23
|
-
## 手順
|
|
24
|
-
|
|
25
|
-
`$ARGUMENTS` が指定されている場合は `task{ID}-{SLUG}`(例: `task000003-auth-login`)として使用する。未指定の場合はユーザーに対象タスクを確認する。
|
|
26
|
-
|
|
27
|
-
### 1. タスクディレクトリとテンプレートの確認
|
|
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
|
-
grep "##
|
|
70
|
-
&& grep "##
|
|
71
|
-
&& grep "##
|
|
72
|
-
&&
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
git
|
|
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
|
-
- [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) — 構造確認コマンド、チェックリスト、レビュー観点、セキュリティ観点
|
|
@@ -1,130 +1,128 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: b-003-create-task-research
|
|
3
|
-
description: タスク実装前に既存コード・ベストプラクティス・再利用候補・リスクを調査し b-research.md に記録する。タスク定義確定後、実装計画作成前に使用。
|
|
4
|
-
disable-model-invocation: true
|
|
5
|
-
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
-
argument-hint: "[task-id]"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# CreateTaskResearch (b-003)
|
|
10
|
-
|
|
11
|
-
## 目的
|
|
12
|
-
|
|
13
|
-
- 実装に着手する前に、最適なアプローチ・技術・注意点を整理する。
|
|
14
|
-
- 既存コードやコンポーネントを把握し、重複実装や手戻りを防止する。
|
|
15
|
-
- 技術選定・リスク・参考資料を記録し、実装計画 (b-004) の入力とする。
|
|
16
|
-
|
|
17
|
-
## 前提
|
|
18
|
-
|
|
19
|
-
- `CreateTaskDefinition (b-002)` が完了し、`a-definition.md` に目的・変更内容が記載されている。
|
|
20
|
-
- タスクディレクトリ: `docs/tasks/task{ID}-{SLUG}/`
|
|
21
|
-
- テンプレート:
|
|
22
|
-
|
|
23
|
-
## 手順
|
|
24
|
-
|
|
25
|
-
`$ARGUMENTS` が指定されている場合は `task{ID}-{SLUG}`(例: `task000003-auth-login`)として使用する。未指定の場合はユーザーに対象タスクを確認する。
|
|
26
|
-
|
|
27
|
-
### 1. ドキュメントとテンプレートの準備
|
|
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
|
-
grep "##
|
|
85
|
-
&& grep "##
|
|
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
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
- [reference/investigation-guide.md](reference/investigation-guide.md) — 調査観点・分析項目・リスクカテゴリの詳細
|
|
130
|
-
- [examples/research-tables.md](examples/research-tables.md) — 各セクションの表テンプレート例
|
|
1
|
+
---
|
|
2
|
+
name: b-003-create-task-research
|
|
3
|
+
description: タスク実装前に既存コード・ベストプラクティス・再利用候補・リスクを調査し b-research.md に記録する。タスク定義確定後、実装計画作成前に使用。
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
|
+
argument-hint: "[task-id]"
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# CreateTaskResearch (b-003)
|
|
10
|
+
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
13
|
+
- 実装に着手する前に、最適なアプローチ・技術・注意点を整理する。
|
|
14
|
+
- 既存コードやコンポーネントを把握し、重複実装や手戻りを防止する。
|
|
15
|
+
- 技術選定・リスク・参考資料を記録し、実装計画 (b-004) の入力とする。
|
|
16
|
+
|
|
17
|
+
## 前提
|
|
18
|
+
|
|
19
|
+
- `CreateTaskDefinition (b-002)` が完了し、`a-definition.md` に目的・変更内容が記載されている。
|
|
20
|
+
- タスクディレクトリ: `docs/tasks/task{ID}-{SLUG}/`
|
|
21
|
+
- テンプレート: `../../templates/tasks/task-template/b-research.md`(スキル配置ディレクトリ起点の相対参照)
|
|
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-003-create-task-research/`)を起点に、相対パス `../../templates/tasks/task-template/b-research.md` を Read で読み込み、`docs/tasks/task{ID}-{SLUG}/b-research.md` へ Write する。出力先が既に存在する場合は上書きせずスキップして報告する(冪等)。
|
|
36
|
+
|
|
37
|
+
### 2. 調査計画の立案
|
|
38
|
+
|
|
39
|
+
- `a-definition.md` を読み、変更対象・技術要件・制約を抽出。
|
|
40
|
+
- 調査する観点を整理:例)類似実装、利用ライブラリ、外部API仕様、セキュリティ要件。
|
|
41
|
+
- 調査メモを残しながら進めると、ドキュメント作成がスムーズ。
|
|
42
|
+
|
|
43
|
+
### 3. 既存実装と再利用候補の調査
|
|
44
|
+
|
|
45
|
+
- コードベースを検索し、類似ロジックやコンポーネントを洗い出す。
|
|
46
|
+
- 再利用できるファイル・モジュール・カスタムフック・APIクライアントをリスト化。
|
|
47
|
+
- 参考にできる実装パターン(バリデーション、エラーハンドリング等)と課題点を併記。
|
|
48
|
+
- 詳細な調査観点・分析項目は [reference/investigation-guide.md](reference/investigation-guide.md) を参照。
|
|
49
|
+
|
|
50
|
+
### 4. ベストプラクティス・外部情報の調査
|
|
51
|
+
|
|
52
|
+
- 公式ドキュメント、信頼できる記事、社内ナレッジを確認し、採用すべきパターン/アンチパターンを整理。
|
|
53
|
+
- 調査内容(タイトル、要点、URL)を記録。例)フォームバリデーション、非同期通信、セキュリティガイドライン。
|
|
54
|
+
|
|
55
|
+
### 5. 技術選定と比較(必要時)
|
|
56
|
+
|
|
57
|
+
- 新規導入・置き換え候補のライブラリ/サービスを比較。
|
|
58
|
+
- 比較観点: メンテ状況、TypeScript対応、バンドルサイズ、コスト、既存スタックとの親和性。
|
|
59
|
+
- 選定理由と却下理由を記録。チーム合意が必要な場合はその旨も記載。
|
|
60
|
+
- 詳細な比較観点は [reference/investigation-guide.md](reference/investigation-guide.md) を参照。
|
|
61
|
+
|
|
62
|
+
### 6. 技術的リスクと対策
|
|
63
|
+
|
|
64
|
+
- パフォーマンス、セキュリティ、スケーラビリティ、依存サービス等のリスクを洗い出す。
|
|
65
|
+
- 影響度と優先度(高/中/低)を付与し、軽減策やPoCの必要有無を記載。
|
|
66
|
+
- リスクカテゴリ一覧とセキュリティチェック項目は [reference/investigation-guide.md](reference/investigation-guide.md) を参照。
|
|
67
|
+
|
|
68
|
+
### 7. ドキュメントへの反映
|
|
69
|
+
|
|
70
|
+
1. `docs/tasks/task{ID}-{SLUG}/b-research.md` を編集し、以下を記入:
|
|
71
|
+
- ベストプラクティス / 参考リンク
|
|
72
|
+
- 既存コード・再利用コンポーネント
|
|
73
|
+
- 技術選定(比較表含む)
|
|
74
|
+
- 技術的リスク・制約
|
|
75
|
+
- メモ / 次に確認すべき事項
|
|
76
|
+
2. HTMLコメントはガイドとして残す。
|
|
77
|
+
3. 各セクションの表テンプレートは [examples/research-tables.md](examples/research-tables.md) を参照。
|
|
78
|
+
|
|
79
|
+
### 8. 構造チェック
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
grep "## ベストプラクティス" docs/tasks/task{ID}-{SLUG}/b-research.md \
|
|
83
|
+
&& grep "## 既存コード調査" docs/tasks/task{ID}-{SLUG}/b-research.md \
|
|
84
|
+
&& grep "## 技術選定" docs/tasks/task{ID}-{SLUG}/b-research.md \
|
|
85
|
+
&& grep "## 技術的リスク" docs/tasks/task{ID}-{SLUG}/b-research.md \
|
|
86
|
+
&& echo "OK" || echo "MISSING SECTION"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
チェックリスト:
|
|
90
|
+
|
|
91
|
+
- [ ] 参考リンク・出典が記載されている
|
|
92
|
+
- [ ] 再利用できるコード/コンポーネントが明確
|
|
93
|
+
- [ ] 技術選定理由と代替案が整理されている
|
|
94
|
+
- [ ] リスクに軽減策と優先度が付与されている
|
|
95
|
+
|
|
96
|
+
### 9. Git への追加(任意)
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
git add docs/tasks/task{ID}-{SLUG}/b-research.md
|
|
100
|
+
git commit -m "docs(task): 技術調査メモの作成 task{ID}"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 完了条件
|
|
104
|
+
|
|
105
|
+
- `b-research.md` に以下が網羅されている:
|
|
106
|
+
- ベストプラクティス/参考資料
|
|
107
|
+
- 既存コード・再利用コンポーネント
|
|
108
|
+
- 技術選定と比較(必要に応じて)
|
|
109
|
+
- 技術的リスクと対策
|
|
110
|
+
- 追加のメモ/未解決事項
|
|
111
|
+
- 実装計画 (b-004) に渡せるレベルで情報が整理されている。
|
|
112
|
+
- 関係者が内容を確認し、疑問があれば解消済み。
|
|
113
|
+
|
|
114
|
+
## エスカレーション
|
|
115
|
+
|
|
116
|
+
- **既存コードが見つからない**: 「コードベースを検索しても見つからない場合、他メンバーに確認し、再利用可否を判断してください。」
|
|
117
|
+
- **ライブラリ選定で決め手がない**: 「評価軸を追加(保守実績、サポート、コストなど)し、比較表を拡張してください。」
|
|
118
|
+
- **リスクが高い**: 「影響が重大なリスクは PoC や専門チーム相談を提案し、スケジュールに反映してください。」
|
|
119
|
+
- **外部サービス依存がある**: 「SLA・レート制限・コストを確認し、代替案やフォールバックを検討してください。」
|
|
120
|
+
- **ドキュメントが不足**: 「ベストプラクティスや参考資料の記載が不十分です。公式ドキュメントや社内ナレッジを追加してください。」
|
|
121
|
+
- **セキュリティリスクが見落とされている**: 「入力バリデーション/XSS/CSRF/SQLi/認証・認可/暗号化/レート制限の観点で再調査してください。」
|
|
122
|
+
- **パフォーマンスリスクが見落とされている**: 「大量データや高負荷時の動作を検討してください。」
|
|
123
|
+
- **新ライブラリ導入がチーム未合意**: 「チームリーダーやメンバーとレビュー・合意を取ってください。」
|
|
124
|
+
|
|
125
|
+
## 参考
|
|
126
|
+
|
|
127
|
+
- [reference/investigation-guide.md](reference/investigation-guide.md) — 調査観点・分析項目・リスクカテゴリの詳細
|
|
128
|
+
- [examples/research-tables.md](examples/research-tables.md) — 各セクションの表テンプレート例
|