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.
Files changed (80) hide show
  1. package/CHANGELOG.md +134 -94
  2. package/LICENSE +1 -1
  3. package/README.md +351 -263
  4. package/bin/checks/id-trace.js +137 -0
  5. package/bin/checks/links.js +59 -0
  6. package/bin/checks/placeholder.js +132 -0
  7. package/bin/checks/structure.js +127 -0
  8. package/bin/cli.js +51 -67
  9. package/bin/commands/doctor.js +128 -0
  10. package/bin/commands/install.js +58 -0
  11. package/bin/commands/new-task.js +117 -0
  12. package/bin/lib/check-cli.js +19 -0
  13. package/bin/lib/findings.js +31 -0
  14. package/bin/lib/markdown.js +103 -0
  15. package/bin/lib/project-spec.js +138 -0
  16. package/bin/lib/walk-md.js +23 -0
  17. package/package.json +68 -55
  18. package/skills/a-001-setup-doc-structure/SKILL.md +68 -68
  19. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +75 -75
  20. package/skills/a-002-initialize-project/SKILL.md +145 -118
  21. package/skills/a-002-initialize-project/reference/hearing-questions.md +91 -41
  22. package/skills/a-002-initialize-project/reference/structure-check.md +12 -22
  23. package/skills/a-002a-slice-mvp-scope/SKILL.md +105 -0
  24. package/skills/a-002b-define-user-stories/SKILL.md +80 -0
  25. package/skills/a-002b-define-user-stories/reference/user-stories-guide.md +78 -0
  26. package/skills/a-003-create-scenarios/SKILL.md +97 -96
  27. package/{templates/project/02-behavior/01-scenarios.md → skills/a-003-create-scenarios/reference/detailed-gherkin-template.md} +413 -406
  28. package/skills/a-003-create-scenarios/reference/structure-check.md +20 -17
  29. package/skills/a-004-define-domain-model/SKILL.md +107 -98
  30. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +33 -7
  31. package/skills/a-004-define-domain-model/reference/ubiquitous-language-guide.md +49 -0
  32. package/skills/a-005-create-domain-diagram/SKILL.md +18 -17
  33. package/skills/a-006-review-requirements-domain/SKILL.md +59 -22
  34. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +27 -7
  35. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +53 -18
  36. package/skills/a-007-define-tech-stack/SKILL.md +99 -99
  37. package/skills/a-008-define-repository-structure/SKILL.md +96 -96
  38. package/skills/a-009-define-screen-design/SKILL.md +103 -103
  39. package/skills/a-010-define-design-system/SKILL.md +130 -130
  40. package/skills/a-011-define-data-model/SKILL.md +118 -118
  41. package/skills/a-012-define-api-spec/SKILL.md +105 -105
  42. package/skills/a-013-define-architecture/SKILL.md +98 -98
  43. package/skills/a-014-define-infrastructure/SKILL.md +118 -110
  44. package/skills/{a-002-initialize-project → a-014-define-infrastructure}/examples/nfr-baseline.md +2 -1
  45. package/{templates/project/01-requirements/04-non-functional-requirements.md → skills/a-014-define-infrastructure/examples/non-functional-requirements.md} +120 -115
  46. package/skills/a-015-review-design/reference/consistency-checks.md +1 -1
  47. package/skills/b-001-create-task-directory/SKILL.md +68 -68
  48. package/skills/b-002-create-task-definition/SKILL.md +114 -114
  49. package/skills/b-003-create-task-research/SKILL.md +128 -128
  50. package/skills/b-004-create-task-implementation/SKILL.md +98 -98
  51. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -79
  52. package/skills/c-001-implement-task/SKILL.md +186 -186
  53. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -65
  54. package/skills/c-002-update-documentation/SKILL.md +159 -159
  55. package/skills/c-002-update-documentation/examples/project-doc-updates.md +4 -4
  56. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +99 -97
  57. package/templates/project/01-requirements/01-product-brief.md +186 -0
  58. package/templates/project/01-requirements/02-mvp-scope.md +64 -0
  59. package/templates/project/01-requirements/03-parking-lot.md +29 -0
  60. package/templates/project/01-requirements/05-user-stories.md +28 -124
  61. package/templates/project/01-requirements/{02-features-implemented.md → 06-features-implemented.md} +77 -73
  62. package/templates/project/02-behavior/01-core-scenarios.md +80 -0
  63. package/templates/project/03-domain/01-domain-model.md +120 -339
  64. package/templates/project/03-domain/01-domain-sketch.md +90 -0
  65. package/templates/project/03-domain/02-ubiquitous-language.md +32 -153
  66. package/templates/project/04-design/01-tech-stack.md +367 -367
  67. package/templates/project/04-design/02-repository-structure.md +391 -391
  68. package/templates/project/04-design/03-screen-design.md +596 -596
  69. package/templates/project/04-design/04-design-system.md +261 -261
  70. package/templates/project/04-design/05-data-model.md +211 -211
  71. package/templates/project/04-design/06-api-spec.md +226 -226
  72. package/templates/project/04-design/07-architecture.md +183 -183
  73. package/templates/project/04-design/08-infrastructure.md +180 -180
  74. package/templates/project/AI_CONTEXT.md +55 -0
  75. package/templates/project/STAKEHOLDER-SUMMARY.md +66 -0
  76. package/templates/tasks/task-template/a-definition.md +143 -143
  77. package/templates/tasks/task-template/b-research.md +185 -185
  78. package/templates/tasks/task-template/c-implementation.md +200 -200
  79. package/templates/project/01-requirements/01-system-overview.md +0 -49
  80. package/templates/project/01-requirements/03-features-planned.md +0 -75
package/README.md CHANGED
@@ -1,263 +1,351 @@
1
- # Yodogawa
2
-
3
- > **🌟 AIネイティブIDE向けの仕様駆動開発スキル集**
4
-
5
- ---
6
-
7
- ## 概要
8
-
9
- **Yodogawa**は、プロダクトマネージャーや開発者が**ステークホルダーと合意できる高品質なドキュメント**を作成・維持するための**仕様駆動開発スキル集**です。
10
-
11
- 生成AIを使ったコーディングでは、**コンテキスト(文脈)がすべて**です。
12
- AIに「何を作りたいのか」を正確に伝えるには、チーム全体で合意された詳細なドキュメントが欠かせません。
13
-
14
- Yodogawaは、このドキュメント作成プロセスを標準化し、AIエージェントが理解しやすい形式で仕様・設計・タスクを管理できるようにします。
15
-
16
- ### スキルの仕組み
17
-
18
- 各スキルは `skills/{name}/SKILL.md` という形式で定義されています。
19
- `SKILL.md` はYAML frontmatterに `name`(識別子)と `description`(AIが呼び出すトリガー)を持ち、手順・完了条件・エスカレーション指針を記述したMarkdownドキュメントです。
20
-
21
- ```
22
- skills/
23
- ├── a-001-setup-doc-structure/
24
- │ └── SKILL.md
25
- ├── a-002-initialize-project/
26
- │ └── SKILL.md
27
- └── ...
28
- ```
29
-
30
- インストール後、各IDEはスキルを自動的に認識し、AIエージェントが呼び出せるようになります。
31
-
32
- ### 対応環境
33
-
34
- 以下のAIネイティブIDE・コードエディタで使用できます。すべて Claude Code が策定したSKILL.md標準に収束しているため、2つのディレクトリのいずれかに配置するだけで動作します:
35
-
36
- | IDE / エディタ | スキルの場所 | 呼び出し方 |
37
- | :-------------- | :-------------------------------------------------- | :---------------------- |
38
- | **Claude Code** | `.claude/skills/{name}/SKILL.md` | `/a-001` などで呼び出し |
39
- | **Cursor** | `.agents/skills/{name}/SKILL.md` | `/a-001` などで呼び出し |
40
- | **Codex** | `.agents/skills/{name}/SKILL.md` | `/a-001` などで呼び出し |
41
- | **Antigravity** | `.agents/skills/{name}/SKILL.md` | `/a-001` などで呼び出し |
42
-
43
- ---
44
-
45
- ## 背景
46
-
47
- ### 生成AI時代の開発課題
48
-
49
- Copilot、Claude、GPTなど、生成AIを使ってコードを書く時代になりました。
50
- しかし、**AIは万能ではありません**。良いコードを生成するには、**良いコンテキスト**が必要です。
51
-
52
- > 🎯 **「何を作りたいのか」が曖昧だと、AIも曖昧な答えしか返せない。**
53
-
54
- チーム開発では、以下のポイントが重要になります:
55
-
56
- - 📝 **非開発者(PM、デザイナー)と開発者**が同じドキュメントを見て合意できること
57
- - 🔗 **ドキュメントがリポジトリ内にある**こと → AIがコンテキストとして参照できる
58
- - 🔄 **ドキュメントとコードが同期している**こと → 陳腐化しない
59
-
60
- ### 既存ツールの課題
61
-
62
- 多くのSpec Driven Developmentツールが存在しますが、それぞれに課題があります:
63
-
64
- | 課題 | 詳細 |
65
- | :--------------------------- | :------------------------------------------------- |
66
- | **タスク単位でバラバラ** | タスクごとにドキュメントが分散し、全体像が見えない |
67
- | **ドキュメントが薄い・曖昧** | API仕様やDBスキーマまで踏み込んでいない |
68
- | **リポジトリ外で管理** | Notion、Confluenceなどに分散し、AIが参照できない |
69
-
70
- ### Yodogawaのアプローチ
71
-
72
- Yodogawaは、**「なぜ作るのか?」から「どう作るか?」まで**を一貫して文書化します:
73
-
74
- ```
75
- Why? ─── What? ─── How?
76
- │ │ │
77
- ▼ ▼ ▼
78
- 目的 ユーザー API仕様
79
- 課題 ストーリー DBスキーマ
80
- スコープ シナリオ アーキテクチャ
81
- ```
82
-
83
- **メリット:**
84
-
85
- - ✅ すべてリポジトリ内で管理 → AIのコンテキストとして最適
86
- - ✅ 非開発者と開発者が同じドキュメントを参照できる
87
- - ✅ 設計から実装まで一貫性を保てる
88
-
89
- **デメリット:**
90
-
91
- - ⚠️ 他のツールより**ドキュメント作成に時間がかかる**
92
- - ⚠️ 小規模・短期プロジェクトにはオーバースペックな場合がある
93
-
94
- > 💡 **Yodogawaは「急がば回れ」の思想です。**
95
- > 最初に時間をかけて仕様を固めることで、後工程のやり直しを減らせます。
96
-
97
- ---
98
-
99
- ## 解決できる課題
100
-
101
- | 課題 | Yodogawaの解決策 |
102
- | :---------------------------------- | :-------------------------------------------------- |
103
- | 📝 仕様が曖昧なまま実装が始まる | A-Seriesで要件・設計を事前に文書化 |
104
- | 🔄 人によって成果物の品質がバラつく | 構造化されたワークフローで標準化 |
105
- | 📚 ドキュメントがすぐ陳腐化する | C-002で実装後にドキュメントを自動更新 |
106
- | 🐛 設計と実装が乖離する | B-005レビュー & A-014設計レビューで整合性をチェック |
107
- | 🤖 AIに何を頼めばいいか分からない | 事前定義されたワークフローに従うだけ |
108
-
109
- ---
110
-
111
- ## スキル一覧
112
-
113
- 開発ライフサイクルに沿って、**3つのシリーズ**を提供しています。
114
-
115
- ### A-Series:プロジェクト設計
116
-
117
- > プロジェクトの立ち上げや、大規模な設計変更時に使用
118
-
119
- | # | コマンド | 名前 | 説明 |
120
- | :-: | :------- | :------------------------ | :------------------------------------------------- |
121
- | 1 | `/a-001` | **Setup Doc Structure** | ドキュメント構造をセットアップ |
122
- | 2 | `/a-002` | **Initialize Project** | プロジェクトの目的・課題・スコープを定義 |
123
- | 3 | `/a-003` | **Create Scenarios** | ユーザーストーリーをBDD(Gherkin)シナリオに変換 |
124
- | 4 | `/a-004` | **Define Domain Model** | Event Stormingでドメインモデルを定義 |
125
- | 5 | `/a-005` | **Create Domain Diagram** | ドメインモデルを図解(コンテキスト境界・集約) |
126
- | 6 | `/a-006` | **Review Req & Domain** | ⚠️ **要件とドメインモデルの整合性をレビュー** |
127
- | 7 | `/a-007` | **Define Tech Stack** | 技術スタック(言語・FW・DB)を選定 |
128
- | 8 | `/a-008` | **Define Repo Structure** | リポジトリのディレクトリ構成を定義 |
129
- | 9 | `/a-009` | **Define Screen Design** | 画面遷移・UIコンポーネント・Empty Stateを設計 |
130
- | 10 | `/a-010` | **Define Design System** | デザインシステム(カラー、タイポグラフィ等)を定義 |
131
- | 11 | `/a-011` | **Define Data Model** | データベーススキーマ・ER図を設計 |
132
- | 12 | `/a-012` | **Define API Spec** | APIエンドポイント・リクエスト/レスポンスを定義 |
133
- | 13 | `/a-013` | **Define Architecture** | アーキテクチャ決定記録(ADR)を作成 |
134
- | 14 | `/a-014` | **Define Infrastructure** | インフラ構成・非機能要件(RPO/RTO)を定義 |
135
- | 15 | `/a-015` | **Review Design** | ⚠️ **全体設計の一貫性をレビュー** |
136
-
137
- > ⚠️ マークのスキルは**必ず実施**してください。
138
-
139
- ---
140
-
141
- ### B-Series:タスク管理
142
-
143
- > 機能開発タスクを定義し、実装可能なレベルまで詳細化
144
-
145
- | # | コマンド | 名前 | 説明 |
146
- | :-: | :------- | :---------------------- | :------------------------------------------------------------- |
147
- | 1 | `/b-001` | **Create Task Dir** | `docs/tasks/taskNNN` ディレクトリを作成し、テンプレートを配置 |
148
- | 2 | `/b-002` | **Task Definition** | タスクの目的・ユーザーストーリー・受け入れ基準を定義 |
149
- | 3 | `/b-003` | **Task Research** | 実装に必要な調査(既存コード・ライブラリ・ベストプラクティス) |
150
- | 4 | `/b-004` | **Implementation Plan** | タスクを詳細な実装ステップ(1ステップ数時間)に分解 |
151
- | 5 | `/b-005` | **Review Task** | ⚠️ **実装計画の品質と漏れをレビュー、Go/No-Go判断** |
152
-
153
- ---
154
-
155
- ### C-Series:実装
156
-
157
- > 承認された計画に基づき、コード実装・テスト・ドキュメント更新
158
-
159
- | # | コマンド | 名前 | 説明 |
160
- | :-: | :------- | :----------------- | :----------------------------------------------- |
161
- | 1 | `/c-001` | **Implement Task** | 計画されたステップに従って実装・テストを反復実行 |
162
- | 2 | `/c-002` | **Update Docs** | 実装完了後、プロジェクト全体のドキュメントを更新 |
163
-
164
- ---
165
-
166
- ## 導入
167
-
168
- ### 方法1: NPMパッケージ(推奨/全IDE対応)
169
-
170
- ```bash
171
- npm install -g yodogawa
172
- cd your-project-dir
173
- yodogawa
174
- ```
175
-
176
- 対話形式でIDEを選択すると、`skills/`, `templates/` がプロジェクトの IDE ディレクトリに配置されます。
177
-
178
- ### 方法2: Claude Code Plugin(Claude Code 限定)
179
-
180
- Claude Code から直接マーケットプレイスを追加してインストールできます。リポジトリにファイルをコピーせず、`.claude/settings.json` に参照エントリのみ追加されます。
181
-
182
- ```bash
183
- # Claude Code 内で以下を実行
184
- /plugin marketplace add tkysi-mi/Yodogawa
185
- /plugin install yodogawa@yodogawa
186
- /reload-plugins
187
- ```
188
-
189
- スキルは `/yodogawa:a-001` のようにプラグイン名のプレフィックス付きで呼び出されます。
190
-
191
- > ℹ️ Plugin 機能は Claude Code 固有です。Cursor / Codex / Antigravity を使う場合は方法1または方法3を選んでください。
192
- >
193
- > ℹ️ スキルが参照するテンプレート(`templates/`)は、各スキルの配置ディレクトリを起点に相対参照で解決されるため、Plugin 導入でもプラグインキャッシュ上のテンプレートが利用されます。実行環境の差異で解決できない場合は、確実な方法1(NPM)または方法3(手動)を利用してください。
194
-
195
- ### 方法3: 手動導入
196
-
197
- このリポジトリの `skills/`, `templates/` をプロジェクトの IDE ディレクトリにコピーしてください:
198
-
199
- - **Claude Code**: `.claude/` 配下にコピー
200
- - **Cursor / Codex / Antigravity**: `.agents/` 配下にコピー
201
-
202
- ---
203
-
204
- ## 使い方
205
-
206
- ### 1️⃣ プロジェクトの立ち上げ(A-Series スキル)
207
-
208
- 新規プロジェクトや大規模機能の開発時に、**A-Series**を順番に実行します。
209
-
210
- | ステップ | コマンド | 内容 |
211
- | :------: | :------------------ | :------------------------------------------------------------------------ |
212
- | 1 | `/a-001` → `/a-005` | ドキュメント構造、プロジェクト定義、シナリオ、ドメインモデル |
213
- | 2 | `/a-006` | ⚠️ **要件・ドメインレビュー(必須)** |
214
- | 3 | `/a-007` `/a-013` | 技術スタック、リポジトリ構成、画面設計、DB、API、アーキテクチャ、インフラ |
215
- | 4 | `/a-014` | ⚠️ **全体設計レビュー(必須)** |
216
-
217
- ---
218
-
219
- ### 2️⃣ 機能開発のループ(B & C Series スキル)
220
-
221
- 個々のタスクは以下のサイクルで進めます:
222
-
223
- | ステップ | コマンド | 内容 |
224
- | :------: | :------- | :--------------------------------------------------- |
225
- | 1 | `/b-001` | タスクディレクトリ作成 |
226
- | 2 | `/b-002` | タスク定義(目的・ユーザーストーリー・受け入れ基準) |
227
- | 3 | `/b-003` | 実装調査(既存コード・ライブラリ調査) |
228
- | 4 | `/b-004` | 実装計画(詳細ステップに分解) |
229
- | 5 | `/b-005` | ⚠️ **レビュー・Go/No-Go判断** |
230
- | 6 | `/c-001` | 実装・テスト(計画に沿って反復) |
231
- | 7 | `/c-002` | ドキュメント更新 |
232
-
233
- > ⚠️ `/b-005` でRejectされた場合は `/b-002` に戻って修正
234
-
235
- ---
236
-
237
- ## スキルのフォーマット
238
-
239
- `SKILL.md` は以下の構造を持ちます:
240
-
241
- ```markdown
242
- ---
243
- name: a-001-setup-doc-structure
244
- description: プロジェクトのドキュメントディレクトリ構造を作成する軽量セットアップワークフロー
245
- ---
246
-
247
- # スキル名
248
-
249
- ## 目的
250
- ## 前提
251
- ## 手順
252
- ## 完了条件
253
- ## エスカレーション
254
- ```
255
-
256
- - **`name`**: スキルの識別子(kebab-case)
257
- - **`description`**: AIエージェントがスキルを呼び出すトリガーとなる説明文
258
-
259
- ---
260
-
261
- ## ライセンス
262
-
263
- [MIT License](LICENSE) Copyright (c) 2025 tkysi-mi
1
+ # Yodogawa
2
+
3
+ > **🌟 AIネイティブIDE向けの仕様駆動開発スキル集**
4
+
5
+ ---
6
+
7
+ ## 概要
8
+
9
+ **Yodogawa**は、プロダクトマネージャーや開発者が**ステークホルダーと合意できる高品質なドキュメント**を作成・維持するための**仕様駆動開発スキル集**です。
10
+
11
+ 生成AIを使ったコーディングでは、**コンテキスト(文脈)がすべて**です。
12
+ AIに「何を作りたいのか」を正確に伝えるには、チーム全体で合意された詳細なドキュメントが欠かせません。
13
+
14
+ Yodogawaは、このドキュメント作成プロセスを標準化し、AIエージェントが理解しやすい形式で仕様・設計・タスクを管理できるようにします。
15
+
16
+ ### スキルの仕組み
17
+
18
+ 各スキルは `skills/{name}/SKILL.md` という形式で定義されています。
19
+ `SKILL.md` はYAML frontmatterに `name`(識別子)と `description`(スキルの役割を表す説明文)を持ち、手順・完了条件・エスカレーション指針を記述したMarkdownドキュメントです。
20
+
21
+ ```
22
+ skills/
23
+ ├── a-001-setup-doc-structure/
24
+ │ └── SKILL.md
25
+ ├── a-002-initialize-project/
26
+ │ └── SKILL.md
27
+ └── ...
28
+ ```
29
+
30
+ インストール後、各IDEがスキルを認識し、ユーザーがスラッシュコマンド(例 `/a-001-setup-doc-structure`)で明示的に呼び出せるようになります。
31
+
32
+ ### 対応環境
33
+
34
+ 以下のAIネイティブIDE・コードエディタに導入できます。本ツールは各 IDE のスキルディレクトリ(Claude Code は `.claude/`、その他は `.agents/`)へ `skills/` / `templates/` をコピーします。スキルは `name` / `description` を持つ YAML frontmatter と Markdown 本文で構成されます。各 IDE での認識・呼び出し挙動はそれぞれの仕様に依存します:
35
+
36
+ | IDE / エディタ | スキルの場所 | 呼び出し方 |
37
+ | :-------------- | :-------------------------------------------------- | :---------------------- |
38
+ | **Claude Code** | `.claude/skills/{name}/SKILL.md` | `/a-001` などで呼び出し |
39
+ | **Cursor** | `.agents/skills/{name}/SKILL.md` | `/a-001` などで呼び出し |
40
+ | **Codex** | `.agents/skills/{name}/SKILL.md` | `/a-001` などで呼び出し |
41
+ | **Antigravity** | `.agents/skills/{name}/SKILL.md` | `/a-001` などで呼び出し |
42
+
43
+ > ℹ️ 表中の `/a-001` 等は短縮表記です。実際の呼び出しはフルのスキル名(例 `/a-001-setup-doc-structure`)を使います。Plugin 導入時は `/yodogawa:a-001-setup-doc-structure` のようにプレフィックスが付きます。
44
+ >
45
+ > ℹ️ frontmatter には Claude Code 向けの拡張フィールドが含まれます(`disable-model-invocation` は全スキル、`allowed-tools` / `argument-hint` / `context: fork` は一部スキルに設定)。これらの他 IDE での扱いは各 IDE の仕様に依存し、本プロジェクトでは検証していません。詳細は下記「設計上の決定」を参照。
46
+ >
47
+ > ℹ️ 一部のスキルは手順内でエージェントが `ls` / `cat` / `find` / `grep` などの POSIX シェルコマンドを実行します(大半のスキルが `allowed-tools` に `Bash` を含みます)。Windows ネイティブ環境では bash 互換シェル(Git Bash / WSL 等)が利用できる状態を推奨します。各 IDE での実行可否は IDE の仕様に依存します。
48
+
49
+ ---
50
+
51
+ ## 背景
52
+
53
+ ### 生成AI時代の開発課題
54
+
55
+ Copilot、Claude、GPTなど、生成AIを使ってコードを書く時代になりました。
56
+ しかし、**AIは万能ではありません**。良いコードを生成するには、**良いコンテキスト**が必要です。
57
+
58
+ > 🎯 **「何を作りたいのか」が曖昧だと、AIも曖昧な答えしか返せない。**
59
+
60
+ チーム開発では、以下のポイントが重要になります:
61
+
62
+ - 📝 **非開発者(PM、デザイナー)と開発者**が同じドキュメントを見て合意できること
63
+ - 🔗 **ドキュメントがリポジトリ内にある**こと → AIがコンテキストとして参照できる
64
+ - 🔄 **ドキュメントとコードが同期している**こと → 陳腐化しない
65
+
66
+ ### 既存ツールの課題
67
+
68
+ 多くのSpec Driven Developmentツールが存在しますが、それぞれに課題があります:
69
+
70
+ | 課題 | 詳細 |
71
+ | :--------------------------- | :------------------------------------------------- |
72
+ | **タスク単位でバラバラ** | タスクごとにドキュメントが分散し、全体像が見えない |
73
+ | **ドキュメントが薄い・曖昧** | API仕様やDBスキーマまで踏み込んでいない |
74
+ | **リポジトリ外で管理** | Notion、Confluenceなどに分散し、AIが参照できない |
75
+
76
+ ### Yodogawaのアプローチ
77
+
78
+ Yodogawaは、**「なぜ作るのか?」から「どう作るか?」まで**を一貫して文書化します:
79
+
80
+ ```
81
+ Why? ─── What? ─── How?
82
+ │ │ │
83
+ ▼ ▼ ▼
84
+ 目的 ユーザー API仕様
85
+ 課題 ストーリー DBスキーマ
86
+ スコープ シナリオ アーキテクチャ
87
+ ```
88
+
89
+ **メリット:**
90
+
91
+ - すべてリポジトリ内で管理 → AIのコンテキストとして最適
92
+ - 非開発者と開発者が同じドキュメントを参照できる
93
+ - ✅ 設計から実装まで一貫性を保てる
94
+
95
+ **デメリット:**
96
+
97
+ - ⚠️ 他のツールより**ドキュメント作成に時間がかかる**
98
+ - ⚠️ 小規模・短期プロジェクトにはオーバースペックな場合がある
99
+
100
+ > 💡 **Yodogawaは「急がば回れ」の思想です。**
101
+ > 最初に時間をかけて仕様を固めることで、後工程のやり直しを減らせます。
102
+
103
+ ---
104
+
105
+ ## 解決できる課題
106
+
107
+ | 課題 | Yodogawaの解決策 |
108
+ | :---------------------------------- | :-------------------------------------------------- |
109
+ | 📝 仕様が曖昧なまま実装が始まる | A-Seriesで要件・設計を事前に文書化 |
110
+ | 🔄 人によって成果物の品質がバラつく | 構造化されたワークフローで標準化 |
111
+ | 📚 ドキュメントがすぐ陳腐化する | C-002で実装後にドキュメントを自動更新 |
112
+ | 🐛 設計と実装が乖離する | B-005レビュー & A-015設計レビューで整合性をチェック |
113
+ | 🤖 AIに何を頼めばいいか分からない | 事前定義されたワークフローに従うだけ |
114
+
115
+ ---
116
+
117
+ ## スキル一覧
118
+
119
+ 開発ライフサイクルに沿って、**3つのシリーズ**を提供しています。
120
+
121
+ ### A-Series:プロジェクト設計
122
+
123
+ > プロジェクトの立ち上げや、大規模な設計変更時に使用
124
+
125
+ | # | コマンド | 名前 | 説明 |
126
+ | :-: | :------- | :------------------------ | :------------------------------------------------- |
127
+ | 1 | `/a-001` | **Setup Doc Structure** | ドキュメント構造をセットアップ(a-002 が自動実行するため任意) |
128
+ | 2 | `/a-002` | **Initialize Project** | 問題定義(Why) を Product Brief(課題・ユーザー・価値・成功指標)として作成(新規/既存モード対応) |
129
+ | 2a | `/a-002a`| **Slice MVP Scope** | Parking Lot(アイデア backlog)を生成し、MVP を Must/Not Now/Won't に切り分け、やらないこと(Out of Scope)を明示 |
130
+ | 2b | `/a-002b`| **Define User Stories** | Must 機能を起点にユーザーストーリー(役割・目的・価値・受け入れ基準)を作成 |
131
+ | 3 | `/a-003` | **Create Core Scenarios** | MVP の主要行動(Day 1 Happy Path・Critical Failure)を定義(詳細 Gherkin は任意) |
132
+ | 4 | `/a-004` | **Define Domain Sketch** | 軽量ドメイン(主要用語・境界・中核エンティティ・重要ルール)を定義 |
133
+ | 5 | `/a-005` | **Create Domain Diagram** | (任意/Advanced)Full DDD・Context Map を図解(複雑ドメインのみ) |
134
+ | 6 | `/a-006` | **Review & PM Gate** | ⚠️ **整合性レビュー+PM Gate(Go/No-Go)、STAKEHOLDER-SUMMARY・AI_CONTEXT を生成** |
135
+ | 7 | `/a-007` | **Define Tech Stack** | 技術スタック(言語・FW・DB)を選定 |
136
+ | 8 | `/a-008` | **Define Repo Structure** | リポジトリのディレクトリ構成を定義 |
137
+ | 9 | `/a-009` | **Define Screen Design** | 画面遷移・UIコンポーネント・Empty Stateを設計 |
138
+ | 10 | `/a-010` | **Define Design System** | デザインシステム(カラー、タイポグラフィ等)を定義 |
139
+ | 11 | `/a-011` | **Define Data Model** | データベーススキーマ・ER図を設計 |
140
+ | 12 | `/a-012` | **Define API Spec** | APIエンドポイント・リクエスト/レスポンスを定義 |
141
+ | 13 | `/a-013` | **Define Architecture** | アーキテクチャ決定記録(ADR)を作成 |
142
+ | 14 | `/a-014` | **Define Infrastructure** | インフラ構成・**詳細な非機能要件(性能/可用性/RPO/RTO)を所有** |
143
+ | 15 | `/a-015` | **Review Design** | ⚠️ **全体設計の一貫性をレビュー** |
144
+
145
+ > ⚠️ マークのスキルは**必ず実施**してください。
146
+ >
147
+ > ℹ️ **非機能要件(NFR)の扱い**: 初期フェーズ(a-002)では、MVP の作り方を変えるほど重要な制約のみを Product Brief の「クリティカル制約」に集約します。応答時間・稼働率・スケーラビリティ等の**詳細な定量 NFR は設計フェーズ(a-014)が所有**します(責務分離)。そのため `01-requirements/` の採番は `04` を欠番とし、`01`(Product Brief) / `02`(MVP Scope) / `03`(Parking Lot) / `05`(User Stories) / `06`(Features Implemented, existing のみ) になります。
148
+ >
149
+ > ℹ️ **スキルの採番方針**: 番号プレフィックス(`a-002` 等)はフェーズ標識として安定維持し、**振り直しません**。フェーズ間に新スキルを挿入する場合は**英字 suffix**(`a-002a` = MVP Scope、`a-002b` = User Stories)を用います。これにより既存の相互参照・推奨フローへの影響を最小化します。
150
+
151
+ ---
152
+
153
+ ### B-Series:タスク管理
154
+
155
+ > 機能開発タスクを定義し、実装可能なレベルまで詳細化
156
+
157
+ | # | コマンド | 名前 | 説明 |
158
+ | :-: | :------- | :---------------------- | :------------------------------------------------------------- |
159
+ | 1 | `/b-001` | **Create Task Dir** | `docs/tasks/taskNNN` ディレクトリを作成し、テンプレートを配置 |
160
+ | 2 | `/b-002` | **Task Definition** | タスクの目的・ユーザーストーリー・受け入れ基準を定義 |
161
+ | 3 | `/b-003` | **Task Research** | 実装に必要な調査(既存コード・ライブラリ・ベストプラクティス) |
162
+ | 4 | `/b-004` | **Implementation Plan** | タスクを詳細な実装ステップ(1ステップ数時間)に分解 |
163
+ | 5 | `/b-005` | **Review Task** | ⚠️ **実装計画の品質と漏れをレビュー、Go/No-Go判断** |
164
+
165
+ ---
166
+
167
+ ### C-Series:実装
168
+
169
+ > 承認された計画に基づき、コード実装・テスト・ドキュメント更新
170
+
171
+ | # | コマンド | 名前 | 説明 |
172
+ | :-: | :------- | :----------------- | :----------------------------------------------- |
173
+ | 1 | `/c-001` | **Implement Task** | 計画されたステップに従って実装・テストを反復実行 |
174
+ | 2 | `/c-002` | **Update Docs** | 実装完了後、プロジェクト全体のドキュメントを更新 |
175
+
176
+ ---
177
+
178
+ ## 導入
179
+
180
+ > ℹ️ 再インストールは既存の `skills/` / `templates/`(方法1・方法3)にマージされます(同名ファイルは上書き、不足ファイルは追加)。スキルの**リネーム・削除を反映するには**、再実行前に対象の `.claude/skills/`・`.claude/templates/`(その他 IDE は `.agents/...`)を手動で削除してください。方法2(Plugin)はファイルをコピーしないため対象外です。
181
+
182
+ ### 方法1: NPMパッケージ(推奨/全IDE対応)
183
+
184
+ ```bash
185
+ npm install -g yodogawa
186
+ cd your-project-dir
187
+ yodogawa
188
+ ```
189
+
190
+ 対話形式でIDEを選択すると、`skills/`, `templates/` がプロジェクトの IDE ディレクトリに配置されます。
191
+
192
+ ### 方法2: Claude Code Plugin(Claude Code 限定)
193
+
194
+ Claude Code から直接マーケットプレイスを追加してインストールできます。リポジトリにファイルをコピーせず、`.claude/settings.json` に参照エントリのみ追加されます。
195
+
196
+ ```bash
197
+ # Claude Code 内で以下を実行
198
+ /plugin marketplace add tkysi-mi/Yodogawa
199
+ /plugin install yodogawa@yodogawa
200
+ /reload-plugins
201
+ ```
202
+
203
+ スキルは `/yodogawa:a-001` のようにプラグイン名のプレフィックス付きで呼び出されます。
204
+
205
+ > ℹ️ Plugin 機能は Claude Code 固有です。Cursor / Codex / Antigravity を使う場合は方法1または方法3を選んでください。
206
+ >
207
+ > ℹ️ スキルが参照するテンプレート(`templates/`)は、各スキルの配置ディレクトリを起点に相対参照で解決されるため、Plugin 導入でもプラグインキャッシュ上のテンプレートが利用されます。実行環境の差異で解決できない場合は、確実な方法1(NPM)または方法3(手動)を利用してください。
208
+
209
+ ### 方法3: 手動導入
210
+
211
+ このリポジトリの `skills/`, `templates/` をプロジェクトの IDE ディレクトリにコピーしてください:
212
+
213
+ - **Claude Code**: `.claude/` 配下にコピー
214
+ - **Cursor / Codex / Antigravity**: `.agents/` 配下にコピー
215
+
216
+ ---
217
+
218
+ ## CLI コマンド
219
+
220
+ インストーラに加えて、決定的に判定できる検査・操作を CLI サブコマンドとして同梱しています(`npx -y yodogawa <command>` でインストール不要でも実行可能)。
221
+
222
+ ### `yodogawa doctor` — ドキュメントの健全性検査
223
+
224
+ `docs/project/` のトレーサビリティと構造をスクリプトで決定的に検査します。レビュー系スキル(`/a-006` / `/a-015` / `/b-005`)が自然言語で指示していた grep 照合の置き換えです。
225
+
226
+ ```bash
227
+ yodogawa doctor # カレントディレクトリを検査(人間可読)
228
+ yodogawa doctor --json # 機械可読な JSON を出力
229
+ yodogawa doctor --dir path/to/project
230
+ ```
231
+
232
+ | チェック | 内容 |
233
+ |:--|:--|
234
+ | `structure` | 必須ファイル・必須見出し・テーブル骨格の存在(フェーズ進行に応じて未着手分は対象外) |
235
+ | `id-trace` | `P-XXX` / `US-XXX` / `FN-XXX` / `CS-XXX` / `CF-XXX` の参照整合(trace 切れ = Error、孤児 ID = Warning) |
236
+ | `placeholder` | テンプレート未記入(コメントのみのセル・プレースホルダ・`**例:**`・空セクション)の残置 |
237
+ | `links` | `docs/` 内の相対リンク切れ |
238
+
239
+ Exit code は `0` = Error なし(Warning のみ含む)、`1` = Error あり、`2` = 使い方の誤り。各チェックは単体でも実行できます(例: `node bin/checks/id-trace.js <dir>`)。
240
+
241
+ ### `yodogawa new-task <slug>` — タスクディレクトリの採番作成
242
+
243
+ `/b-001-create-task-directory` の採番規則(`task{6桁連番}-{スラッグ}`)で `docs/tasks/` にディレクトリを作成します。
244
+
245
+ ```bash
246
+ yodogawa new-task user-profile-edit # docs/tasks/task000001-user-profile-edit
247
+ yodogawa new-task user-profile-edit --json # {"id":"task000001", "slug":"...", "path":"..."}
248
+ ```
249
+
250
+ ---
251
+
252
+ ## 使い方
253
+
254
+ ### 1️⃣ プロジェクトの立ち上げ(A-Series スキル)
255
+
256
+ 新規プロジェクトや大規模機能の開発時に、**A-Series**を順番に実行します。
257
+
258
+ | ステップ | コマンド | 内容 |
259
+ | :------: | :------------------ | :------------------------------------------------------------------------ |
260
+ | 1 | `/a-002` → `/a-002a` → `/a-002b` → `/a-003` → `/a-004` | Product Brief、MVP スコープ、User Stories、Core Scenarios、Domain Sketch(a-002 がドキュメント構造を自動初期化。`/a-005` は複雑ドメイン向けの任意 Advanced) |
261
+ | 2 | `/a-006` | ⚠️ **PM Gate(整合性レビュー+Go/No-Go、AI_CONTEXT 生成)(必須)** |
262
+ | 3 | `/a-007` → `/a-014` | 技術スタック、リポジトリ構成、画面設計、DB、API、アーキテクチャ、インフラ |
263
+ | 4 | `/a-015` | ⚠️ **全体設計レビュー(必須)** |
264
+
265
+ #### プロダクト性質別の推奨フロー
266
+
267
+ プロダクトの性質に応じて、A-Series 前半の進め方を2つ用意しています。
268
+
269
+ - **新規プロダクト向け(greenfield)**: Product Brief → MVP Scope → User Stories → Core Scenarios → Domain Sketch → PM Gate
270
+ - **既存プロダクト向け(existing / brownfield)**: Codebase Inventory → Product Brief 補完 → Scope 再定義
271
+
272
+ > ℹ️ 上記のフェーズ名は A-Series 再構成後の呼称です。現状、**Product Brief** は `/a-002`(Initialize Project)が `01-product-brief.md` として、**MVP Scope** は `/a-002a`(Slice MVP Scope)が `02-mvp-scope.md`(Must/Not Now/Won't + Out of Scope)と `03-parking-lot.md` として、**User Stories** は `/a-002b`(Define User Stories)が `05-user-stories.md` として、**PM Gate** は `/a-006` が整合性レビュー+ Go/Go with caveats/No-Go 判定として実行し、`STAKEHOLDER-SUMMARY.md`(合意用1枚)と `AI_CONTEXT.md`(AI 実装用コンテキスト)を生成します。a-002 は **greenfield / existing の2モード**に分岐し、新規プロダクトでは実装済み機能の棚卸し(`06-features-implemented.md`)をスキップ、既存プロダクトではコードベース分析と棚卸しを実行します(モード未指定時の既定は greenfield)。**Core Scenarios** は `/a-003`(Create Core Scenarios)が `01-core-scenarios.md`(Day 1 Happy Path・Critical Failure・Not Covered in MVP)として実行します。詳細な Gherkin は任意(`skills/a-003-create-scenarios/reference/detailed-gherkin-template.md`)です。**Domain Sketch** は `/a-004`(Define Domain Sketch)が `01-domain-sketch.md`(主要用語・境界・中核エンティティ・重要ルール・MVP で作らない範囲・簡易図)として実行します。**標準は Domain Sketch、複雑なドメインのみ Full DDD(`/a-005` で Bounded Context・Aggregate・Context Map を `01-domain-model.md` に展開)** という分担で、`/a-005` は標準フローには含まれない任意 Advanced です。
273
+ >
274
+ > 🤖 `a-006` 完了後、Go / Go with caveats なら `docs/project/AI_CONTEXT.md` を実装エージェント(Vibe coding / AI 実装)へ渡すと、スコープ境界(作る/作らないもの)を保ったまま実装に入れます。
275
+
276
+ ---
277
+
278
+ ### 2️⃣ 機能開発のループ(B & C Series スキル)
279
+
280
+ 個々のタスクは以下のサイクルで進めます:
281
+
282
+ | ステップ | コマンド | 内容 |
283
+ | :------: | :------- | :--------------------------------------------------- |
284
+ | 1 | `/b-001` | タスクディレクトリ作成 |
285
+ | 2 | `/b-002` | タスク定義(目的・ユーザーストーリー・受け入れ基準) |
286
+ | 3 | `/b-003` | 実装調査(既存コード・ライブラリ調査) |
287
+ | 4 | `/b-004` | 実装計画(詳細ステップに分解) |
288
+ | 5 | `/b-005` | ⚠️ **レビュー・Go/No-Go判断** |
289
+ | 6 | `/c-001` | 実装・テスト(計画に沿って反復) |
290
+ | 7 | `/c-002` | ドキュメント更新 |
291
+
292
+ > ⚠️ `/b-005` でRejectされた場合は `/b-002` に戻って修正
293
+
294
+ ---
295
+
296
+ ## スキルのフォーマット
297
+
298
+ 各 `SKILL.md` は以下の構造を持ちます:
299
+
300
+ ```markdown
301
+ ---
302
+ name: a-001-setup-doc-structure
303
+ description: プロジェクトのドキュメントディレクトリ構造を作成する軽量セットアップワークフロー
304
+ ---
305
+
306
+ # スキル名
307
+
308
+ ## 目的
309
+ ## 前提
310
+ ## 手順
311
+ ## 完了条件
312
+ ## エスカレーション
313
+ ```
314
+
315
+ - **`name`**: スキルの識別子(kebab-case)
316
+ - **`description`**: スキルの役割を説明する文(スキル一覧での識別に使われる)
317
+
318
+ ---
319
+
320
+ ## 設計上の決定(Design Decisions)
321
+
322
+ ### スキルは「ユーザーが明示的に呼び出す」設計
323
+
324
+ 全スキルの frontmatter には `disable-model-invocation: true` を設定しています。これは **AIエージェントによる自動呼び出しを無効化し、ユーザーがスラッシュコマンドで明示的に呼び出す**ことを意味します。
325
+
326
+ 仕様駆動開発では、各フェーズ(要件定義 → 設計 → タスク → 実装)を**正しい順序で・適切なタイミングで**実行することが品質を左右します。AIが文脈から自動でスキルを起動すると、順序の飛ばしや意図しない実行が起きやすくなります。そこで Yodogawaは、ユーザーが `/a-001-setup-doc-structure` のように明示的に呼び出す設計を採用し、段階的で制御可能なワークフローを保証しています。
327
+
328
+ このため frontmatter の `description` は「AIが呼び出すトリガー」ではなく、**スキル一覧での識別・説明用のメタ情報**として機能します。
329
+
330
+ ### frontmatter フィールドと IDE 互換性
331
+
332
+ スキルの中核は `name` / `description` と Markdown 本文ですが、各スキルの frontmatter には Claude Code 向けの拡張フィールドも含まれます。これらは Claude Code で機能し、他 IDE(Cursor / Codex / Antigravity)での扱いは各 IDE の仕様に依存します(本プロジェクトでは未検証)。
333
+
334
+ - **`disable-model-invocation`**: AIエージェントによる自動呼び出しを無効化(前述)。全 22 スキルに設定。
335
+ - **`allowed-tools`**: スキルに必要な最小限のツール権限を明示。22 スキル中 21(`c-001-implement-task` のみ未指定)。
336
+ - **`argument-hint`**: コマンド引数のヒント(例 `[task-id]`)。引数を取る B/C 系の 7 スキルに設定。
337
+ - **`context: fork`**: Claude Code でレビュー系スキル(`a-006` / `a-015` / `b-005`)を別コンテキストで実行させる指定。メインの作業文脈を汚さずに整合性チェックを行うために採用。
338
+
339
+ ### テンプレートは記入欄中心、詳細は reference
340
+
341
+ `templates/` のテンプレートは**記入欄+簡潔なヒント+例**を中心に構成し、長大な HTML コメント解説は持たせません。生成される docs はステークホルダーと AI coding が読む成果物であり、大量の解説コメントが残ると合意・実装の両方でノイズになるためです。
342
+
343
+ 原則・理論・ベストプラクティス・用語定義などの詳しい解説は、各スキルの `reference/`(例: `a-002` の `hearing-questions.md`、`a-002b` の `user-stories-guide.md`、`a-004` の `event-storming-guide.md` / `ubiquitous-language-guide.md`)に置き、テンプレートのコメントからはパスで参照します。テンプレートを記入するときに必要なら参照すればよく、生成 docs はクリーンに保たれます。
344
+
345
+ > 設計フェーズ(`04-design/` 配下、`a-007`〜`a-014` が生成)の一部テンプレートは、まだ解説コメントが厚い状態です。これらの圧縮は今後のフォローアップ対象です。
346
+
347
+ ---
348
+
349
+ ## ライセンス
350
+
351
+ [MIT License](LICENSE) — Copyright (c) 2025-2026 tkysi-mi