yodogawa 1.0.7 → 2.1.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 (115) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +61 -23
  3. package/bin/cli.js +18 -44
  4. package/package.json +6 -4
  5. package/skills/a-001-setup-doc-structure/SKILL.md +67 -0
  6. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +52 -0
  7. package/skills/a-002-initialize-project/SKILL.md +124 -0
  8. package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
  9. package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
  10. package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
  11. package/skills/a-003-create-scenarios/SKILL.md +99 -0
  12. package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
  13. package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
  14. package/skills/a-004-define-domain-model/SKILL.md +99 -0
  15. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
  16. package/skills/a-005-create-domain-diagram/SKILL.md +94 -0
  17. package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
  18. package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
  19. package/skills/a-006-review-requirements-domain/SKILL.md +85 -0
  20. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
  21. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
  22. package/skills/a-007-define-tech-stack/SKILL.md +102 -0
  23. package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
  24. package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
  25. package/skills/a-008-define-repository-structure/SKILL.md +99 -0
  26. package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
  27. package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
  28. package/skills/a-009-define-screen-design/SKILL.md +106 -0
  29. package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
  30. package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
  31. package/skills/a-010-define-design-system/SKILL.md +134 -0
  32. package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
  33. package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
  34. package/skills/a-011-define-data-model/SKILL.md +121 -0
  35. package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
  36. package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
  37. package/skills/a-012-define-api-spec/SKILL.md +108 -0
  38. package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
  39. package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
  40. package/skills/a-013-define-architecture/SKILL.md +101 -0
  41. package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
  42. package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
  43. package/skills/a-014-define-infrastructure/SKILL.md +113 -0
  44. package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
  45. package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
  46. package/skills/a-015-review-design/SKILL.md +88 -0
  47. package/skills/a-015-review-design/examples/review-report-template.md +59 -0
  48. package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
  49. package/skills/b-001-create-task-directory/SKILL.md +68 -0
  50. package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
  51. package/skills/b-002-create-task-definition/SKILL.md +115 -0
  52. package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
  53. package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
  54. package/skills/b-003-create-task-research/SKILL.md +130 -0
  55. package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
  56. package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
  57. package/skills/b-004-create-task-implementation/SKILL.md +97 -0
  58. package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
  59. package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
  60. package/skills/b-005-review-task/SKILL.md +117 -0
  61. package/skills/b-005-review-task/examples/review-report-template.md +62 -0
  62. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
  63. package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
  64. package/skills/c-001-implement-task/SKILL.md +186 -0
  65. package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
  66. package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
  67. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
  68. package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
  69. package/skills/c-002-update-documentation/SKILL.md +159 -0
  70. package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
  71. package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
  72. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
  73. package/{.windsurf/templates → templates}/tasks/task-template/a-definition.md +1 -1
  74. package/{.windsurf/templates → templates}/tasks/task-template/b-research.md +1 -1
  75. package/{.windsurf/templates → templates}/tasks/task-template/c-implementation.md +2 -2
  76. package/.windsurf/workflows/a-001-SetupDocStructure.md +0 -99
  77. package/.windsurf/workflows/a-002-InitializeProject.md +0 -283
  78. package/.windsurf/workflows/a-003-CreateScenarios.md +0 -140
  79. package/.windsurf/workflows/a-004-DefineDomainModel.md +0 -142
  80. package/.windsurf/workflows/a-005-CreateDomainDiagram.md +0 -119
  81. package/.windsurf/workflows/a-006-ReviewRequirementsDomain.md +0 -143
  82. package/.windsurf/workflows/a-007-DefineTechStack.md +0 -128
  83. package/.windsurf/workflows/a-008-DefineRepositoryStructure.md +0 -127
  84. package/.windsurf/workflows/a-009-DefineScreenDesign.md +0 -128
  85. package/.windsurf/workflows/a-010-DefineDesignSystem.md +0 -210
  86. package/.windsurf/workflows/a-011-DefineDataModel.md +0 -132
  87. package/.windsurf/workflows/a-012-DefineAPISpec.md +0 -130
  88. package/.windsurf/workflows/a-013-DefineArchitecture.md +0 -126
  89. package/.windsurf/workflows/a-014-DefineInfrastructure.md +0 -128
  90. package/.windsurf/workflows/a-015-ReviewDesign.md +0 -139
  91. package/.windsurf/workflows/b-001-CreateTaskDirectory.md +0 -77
  92. package/.windsurf/workflows/b-002-CreateTaskDefinition.md +0 -170
  93. package/.windsurf/workflows/b-003-CreateTaskResearch.md +0 -452
  94. package/.windsurf/workflows/b-004-CreateTaskImplementation.md +0 -98
  95. package/.windsurf/workflows/b-005-ReviewTask.md +0 -323
  96. package/.windsurf/workflows/c-001-ImplementTask.md +0 -520
  97. package/.windsurf/workflows/c-002-UpdateDocumentation.md +0 -852
  98. /package/{.windsurf/scripts → scripts}/setup-docs.sh +0 -0
  99. /package/{.windsurf/templates → templates}/documentation-rules.md +0 -0
  100. /package/{.windsurf/templates → templates}/project/01-requirements/01-system-overview.md +0 -0
  101. /package/{.windsurf/templates → templates}/project/01-requirements/02-features-implemented.md +0 -0
  102. /package/{.windsurf/templates → templates}/project/01-requirements/03-features-planned.md +0 -0
  103. /package/{.windsurf/templates → templates}/project/01-requirements/04-non-functional-requirements.md +0 -0
  104. /package/{.windsurf/templates → templates}/project/01-requirements/05-user-stories.md +0 -0
  105. /package/{.windsurf/templates → templates}/project/02-behavior/01-scenarios.md +0 -0
  106. /package/{.windsurf/templates → templates}/project/03-domain/01-domain-model.md +0 -0
  107. /package/{.windsurf/templates → templates}/project/03-domain/02-ubiquitous-language.md +0 -0
  108. /package/{.windsurf/templates → templates}/project/04-design/01-tech-stack.md +0 -0
  109. /package/{.windsurf/templates → templates}/project/04-design/02-repository-structure.md +0 -0
  110. /package/{.windsurf/templates → templates}/project/04-design/03-screen-design.md +0 -0
  111. /package/{.windsurf/templates → templates}/project/04-design/04-design-system.md +0 -0
  112. /package/{.windsurf/templates → templates}/project/04-design/05-data-model.md +0 -0
  113. /package/{.windsurf/templates → templates}/project/04-design/06-api-spec.md +0 -0
  114. /package/{.windsurf/templates → templates}/project/04-design/07-architecture.md +0 -0
  115. /package/{.windsurf/templates → templates}/project/04-design/08-infrastructure.md +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,45 @@
5
5
  フォーマットは [Keep a Changelog](https://keepachangelog.com/ja/1.0.0/) に基づいており、
6
6
  このプロジェクトは [Semantic Versioning](https://semver.org/lang/ja/spec/v2.0.0.html) に準拠しています。
7
7
 
8
+ ## [2.1.0] - 2026-04-16
9
+
10
+ ### 変更
11
+
12
+ - **CLI の配置先を 2 択に簡素化**: Cursor / Codex / Antigravity が Claude Code の SKILL.md 標準に収束したため、インストール先ディレクトリを `.claude/`(Claude Code 用)と `.agents/`(その他 3 IDE 共通)の 2 つに統合しました。
13
+ - 既存ユーザーへの影響: Cursor / Codex / Antigravity をお使いの場合、旧バージョンで作成された `.cursor/` / `.codex/` / `.agent/` は削除し、本バージョンで `.agents/` に再インストールしてください。
14
+ - **用語統一**: スキル本文で「ワークフロー」と「スキル」が混在していた箇所を「スキル」に統一しました(Phase 4)。
15
+ - **`c-001-implement-task` に検証ループを追加**: 各ステップ実行後に型チェック・Lint・ユニットテスト・ビルドを自動実行し、失敗時は最大 3 回まで原因分析と修正を繰り返す仕組みを明文化しました。
16
+
17
+ ### 追加
18
+
19
+ - **Claude Code Skill 高度機能の活用**: 全 22 スキルに以下のフロントマターフィールドを追加しました(Phase 5)。
20
+ - `allowed-tools`: 各スキルに必要な最小限のツール権限を明示
21
+ - `argument-hint`: タスク系スキルでコマンド引数(`[task-id]` 等)の使い方を明示
22
+ - `context: fork`: レビュー系スキル(`a-006` / `a-015` / `b-005`)でコンテキストを分離
23
+ - **`b-001-create-task-directory` で `$ARGUMENTS` をサポート**: `/b-001 auth-login` のように引数でスラッグを渡せるようになりました。
24
+ - **`c-001-implement-task` に検証ループの参考資料を追加**: `reference/validation-loop.md` として検証フロー・コマンド表・エスカレーション基準を整備しました。
25
+
26
+ ### 内部
27
+
28
+ - `.gitignore` に Yodogawa CLI のローカルインストール出力ディレクトリ(`.agents/` / `.agent/` / `.cursor/` / `.codex/`)を追加。
29
+
30
+ ## [2.0.0] - 2026-04-16
31
+
32
+ ### 破壊的変更
33
+
34
+ - **スキル形式への全面移行**: 旧 `workflows/*.md` 形式を廃止し、Claude Code の SKILL.md 標準(`skills/{name}/SKILL.md`)に全面移行しました。各スキルは YAML frontmatter(`name` / `description`)と 6 セクション構成(目的 / 前提 / 手順 / 完了条件 / エスカレーション / 参考)を持ちます。
35
+ - **Windsurf のサポートを終了**: Windsurf はアクティブメンテナンスが停止しているため、公式サポート対象から外しました。
36
+ - **Progressive disclosure パターンの採用**: 長文スキルを `SKILL.md` + `examples/` + `reference/` に分割し、12,000 文字のワークフロー上限に収まるよう最適化しました。
37
+
38
+ ### 追加
39
+
40
+ - **Codex のサポート**: OpenAI Codex (`.codex/`) を新たにサポート対象に追加しました。
41
+
42
+ ### 変更
43
+
44
+ - **README をスキルフォーマットに合わせて全面書き換え**。
45
+ - `bin` フィールドのパスを `npm pkg fix` で修正。
46
+
8
47
  ## [1.0.7] - 2026-01-27
9
48
 
10
49
  ### 追加
package/README.md CHANGED
@@ -1,28 +1,44 @@
1
1
  # Yodogawa
2
2
 
3
- > **🌟 AIネイティブIDE向けの仕様駆動開発ワークフロー集**
3
+ > **🌟 AIネイティブIDE向けの仕様駆動開発スキル集**
4
4
 
5
5
  ---
6
6
 
7
7
  ## 概要
8
8
 
9
- **Yodogawa**は、プロダクトマネージャーや開発者が**ステークホルダーと合意できる高品質なドキュメント**を作成・維持するための**仕様駆動開発ワークフロー集**です。
9
+ **Yodogawa**は、プロダクトマネージャーや開発者が**ステークホルダーと合意できる高品質なドキュメント**を作成・維持するための**仕様駆動開発スキル集**です。
10
10
 
11
11
  生成AIを使ったコーディングでは、**コンテキスト(文脈)がすべて**です。
12
12
  AIに「何を作りたいのか」を正確に伝えるには、チーム全体で合意された詳細なドキュメントが欠かせません。
13
13
 
14
14
  Yodogawaは、このドキュメント作成プロセスを標準化し、AIエージェントが理解しやすい形式で仕様・設計・タスクを管理できるようにします。
15
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
+
16
32
  ### 対応環境
17
33
 
18
- 以下のAIネイティブIDE・コードエディタで使用できます:
34
+ 以下のAIネイティブIDE・コードエディタで使用できます。すべて Claude Code が策定したSKILL.md標準に収束しているため、2つのディレクトリのいずれかに配置するだけで動作します:
19
35
 
20
- | IDE / エディタ | 使い方 |
21
- | :-------------- | :------------------------------------------------- |
22
- | **Windsurf** | `.windsurf/workflows` として自動認識 |
23
- | **Cursor** | `@filename.md` で参照、または `CLAUDE.md` に統合 |
24
- | **Antigravity** | `.agent/workflows` にコピーして参照 |
25
- | **Claude Code** | `CLAUDE.md` に統合、またはスラッシュコマンドで利用 |
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` などで呼び出し |
26
42
 
27
43
  ---
28
44
 
@@ -92,11 +108,11 @@ Why? ─── What? ─── How?
92
108
 
93
109
  ---
94
110
 
95
- ## ワークフロー
111
+ ## スキル一覧
96
112
 
97
113
  開発ライフサイクルに沿って、**3つのシリーズ**を提供しています。
98
114
 
99
- ### プロジェクト設計
115
+ ### A-Series:プロジェクト設計
100
116
 
101
117
  > プロジェクトの立ち上げや、大規模な設計変更時に使用
102
118
 
@@ -118,11 +134,11 @@ Why? ─── What? ─── How?
118
134
  | 14 | `/a-014` | **Define Infrastructure** | インフラ構成・非機能要件(RPO/RTO)を定義 |
119
135
  | 15 | `/a-015` | **Review Design** | ⚠️ **全体設計の一貫性をレビュー** |
120
136
 
121
- > ⚠️ マークのワークフローは**必ず実施**してください。
137
+ > ⚠️ マークのスキルは**必ず実施**してください。
122
138
 
123
139
  ---
124
140
 
125
- ### タスク管理
141
+ ### B-Series:タスク管理
126
142
 
127
143
  > 機能開発タスクを定義し、実装可能なレベルまで詳細化
128
144
 
@@ -136,7 +152,7 @@ Why? ─── What? ─── How?
136
152
 
137
153
  ---
138
154
 
139
- ### 実装
155
+ ### C-Series:実装
140
156
 
141
157
  > 承認された計画に基づき、コード実装・テスト・ドキュメント更新
142
158
 
@@ -154,25 +170,23 @@ Why? ─── What? ─── How?
154
170
  ```bash
155
171
  npm install -g yodogawa
156
172
  cd your-project-dir
157
- yodogawa init
173
+ yodogawa
158
174
  ```
159
175
 
160
- これにより `.windsurf/workflows` とテンプレートがプロジェクトに配置されます。
176
+ 対話形式でIDEを選択すると、`skills/`, `templates/`, `scripts/` がプロジェクトの IDE ディレクトリに配置されます。
161
177
 
162
178
  ### 方法2: 手動導入
163
179
 
164
- このリポジトリの `.windsurf/workflows` ディレクトリを、プロジェクトにコピーしてください:
180
+ このリポジトリの `skills/`, `templates/`, `scripts/` をプロジェクトの IDE ディレクトリにコピーしてください:
165
181
 
166
- - Windsurf: `.windsurf/workflows`
167
- - Cursor: `.cursor/rules` または `docs/workflows`
168
- - Antigravity: `.agent/workflows`
169
- - Claude Code: プロジェクトルート、または `CLAUDE.md` に統合
182
+ - **Claude Code**: `.claude/` 配下にコピー
183
+ - **Cursor / Codex / Antigravity**: `.agents/` 配下にコピー
170
184
 
171
185
  ---
172
186
 
173
187
  ## 使い方
174
188
 
175
- ### 1️⃣ プロジェクトの立ち上げ(A-Series
189
+ ### 1️⃣ プロジェクトの立ち上げ(A-Series スキル)
176
190
 
177
191
  新規プロジェクトや大規模機能の開発時に、**A-Series**を順番に実行します。
178
192
 
@@ -185,7 +199,7 @@ yodogawa init
185
199
 
186
200
  ---
187
201
 
188
- ### 2️⃣ 機能開発のループ(B & C Series
202
+ ### 2️⃣ 機能開発のループ(B & C Series スキル)
189
203
 
190
204
  個々のタスクは以下のサイクルで進めます:
191
205
 
@@ -200,3 +214,27 @@ yodogawa init
200
214
  | 7 | `/c-002` | ドキュメント更新 |
201
215
 
202
216
  > ⚠️ `/b-005` でRejectされた場合は `/b-002` に戻って修正
217
+
218
+ ---
219
+
220
+ ## スキルのフォーマット
221
+
222
+ 各 `SKILL.md` は以下の構造を持ちます:
223
+
224
+ ```markdown
225
+ ---
226
+ name: a-001-setup-doc-structure
227
+ description: プロジェクトのドキュメントディレクトリ構造を作成する軽量セットアップワークフロー
228
+ ---
229
+
230
+ # スキル名
231
+
232
+ ## 目的
233
+ ## 前提
234
+ ## 手順
235
+ ## 完了条件
236
+ ## エスカレーション
237
+ ```
238
+
239
+ - **`name`**: スキルの識別子(kebab-case)
240
+ - **`description`**: AIエージェントがスキルを呼び出すトリガーとなる説明文
package/bin/cli.js CHANGED
@@ -6,17 +6,15 @@ const prompts = require('prompts');
6
6
  const { bold, green, cyan, red } = require('kleur');
7
7
 
8
8
  async function main() {
9
- console.log(bold().cyan('\n🚀 Welcome to Yodogawa Slash Commands Installer!\n'));
9
+ console.log(bold().cyan('\n🚀 Welcome to Yodogawa Skills Installer!\n'));
10
10
 
11
11
  const response = await prompts({
12
12
  type: 'select',
13
13
  name: 'type',
14
14
  message: 'Which configuration would you like to install?',
15
15
  choices: [
16
- { title: 'Windsurf (.windsurf)', value: 'windsurf' },
17
- { title: 'Antigravity (.agent)', value: 'antigravity' },
18
- { title: 'Cursor (.cursor)', value: 'cursor' },
19
- { title: 'Claude Code (.claude)', value: 'claude' }
16
+ { title: 'Claude Code (.claude/skills/)', value: 'claude' },
17
+ { title: 'Other IDEs — Cursor / Codex / Antigravity (.agents/skills/)', value: 'agents' }
20
18
  ]
21
19
  });
22
20
 
@@ -25,29 +23,14 @@ async function main() {
25
23
  process.exit(0);
26
24
  }
27
25
 
28
- // Determine source directory (where the package is installed)
29
- const sourceDir = path.join(__dirname, '..', '.windsurf');
30
-
31
- // Determine target directory (current working directory of the user)
32
- let targetDirName;
33
- if (response.type === 'windsurf') {
34
- targetDirName = '.windsurf';
35
- } else if (response.type === 'antigravity') {
36
- targetDirName = '.agent';
37
- } else if (response.type === 'cursor') {
38
- targetDirName = '.cursor';
39
- } else {
40
- targetDirName = '.claude';
41
- }
42
-
26
+ const pkgRoot = path.join(__dirname, '..');
27
+ const dirMap = {
28
+ claude: '.claude',
29
+ agents: '.agents',
30
+ };
31
+ const targetDirName = dirMap[response.type];
43
32
  const targetDir = path.join(process.cwd(), targetDirName);
44
33
 
45
- if (!fs.existsSync(sourceDir)) {
46
- console.error(red(`✖ Error: Source directory not found at ${sourceDir}`));
47
- console.error(red(` Please ensure the package is installed correctly.`));
48
- process.exit(1);
49
- }
50
-
51
34
  try {
52
35
  if (fs.existsSync(targetDir)) {
53
36
  const confirm = await prompts({
@@ -56,34 +39,25 @@ async function main() {
56
39
  message: `Directory ${targetDirName} already exists. Overwrite?`,
57
40
  initial: false
58
41
  });
59
-
60
42
  if (!confirm.overwrite) {
61
43
  console.log(red('✖ Operation cancelled.'));
62
44
  process.exit(0);
63
45
  }
64
46
  }
65
47
 
66
- console.log(`\nCopying workflows to ${bold(targetDirName)}...`);
67
- await fs.copy(sourceDir, targetDir);
48
+ console.log(`\nInstalling Yodogawa skills to ${bold(targetDirName)}...`);
68
49
 
69
- // Special handling for Cursor and Claude Code: rename workflows to commands
70
- if (response.type === 'cursor' || response.type === 'claude') {
71
- const workflowsDir = path.join(targetDir, 'workflows');
72
- const commandsDir = path.join(targetDir, 'commands');
73
-
74
- if (fs.existsSync(workflowsDir)) {
75
- console.log(`Renaming workflows to commands for ${response.type}...`);
76
- await fs.move(workflowsDir, commandsDir, { overwrite: true });
77
- }
78
- }
79
-
80
- console.log(green(`\n✔ Successfully installed ${response.type} workflows!`));
50
+ await fs.copy(path.join(pkgRoot, 'skills'), path.join(targetDir, 'skills'));
51
+ await fs.copy(path.join(pkgRoot, 'templates'), path.join(targetDir, 'templates'));
52
+ await fs.copy(path.join(pkgRoot, 'scripts'), path.join(targetDir, 'scripts'));
53
+
54
+ console.log(green(`\n✔ Successfully installed Yodogawa skills for ${response.type}!`));
81
55
  console.log(`\nNext steps:`);
82
- console.log(`1. Open ${bold(targetDirName)} to explore the workflows.`);
56
+ console.log(`1. Open ${bold(targetDirName + '/skills/')} to explore the skills.`);
83
57
  console.log(`2. Start using them in your project!\n`);
84
-
58
+
85
59
  } catch (err) {
86
- console.error(red(`\n✖ Error copying files: ${err.message}`));
60
+ console.error(red(`\n✖ Error installing skills: ${err.message}`));
87
61
  process.exit(1);
88
62
  }
89
63
  }
package/package.json CHANGED
@@ -1,13 +1,15 @@
1
1
  {
2
2
  "name": "yodogawa",
3
- "version": "1.0.7",
3
+ "version": "2.1.0",
4
4
  "description": "CLI to install Yodogawa Slash Commands workflows",
5
5
  "bin": {
6
- "yodogawa": "./bin/cli.js"
6
+ "yodogawa": "bin/cli.js"
7
7
  },
8
8
  "files": [
9
9
  "bin",
10
- ".windsurf",
10
+ "skills",
11
+ "templates",
12
+ "scripts",
11
13
  "README.md",
12
14
  "CHANGELOG.md"
13
15
  ],
@@ -18,10 +20,10 @@
18
20
  "prepare": "husky"
19
21
  },
20
22
  "keywords": [
21
- "windsurf",
22
23
  "antigravity",
23
24
  "cursor",
24
25
  "claude-code",
26
+ "codex",
25
27
  "workflows",
26
28
  "slash-commands",
27
29
  "spec-driven-development",
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: a-001-setup-doc-structure
3
+ description: docs/ 配下にプロジェクト/タスク用のディレクトリ構造と README を作成する。新規リポジトリでドキュメント基盤を初期化する際に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Bash, Glob
6
+ ---
7
+
8
+ # SetupDocStructure (a-001)
9
+
10
+ ## 目的
11
+
12
+ - プロジェクトルートに標準化されたドキュメントディレクトリ構造を作成する。
13
+ - `docs/README.md` を作成し、ドキュメント構成と更新方針を明文化する。
14
+
15
+ ## 前提
16
+
17
+ - プロジェクトのルートディレクトリへの書き込み権限があること
18
+ - `docs/` ディレクトリが存在しない、または既存の構造を拡張したいこと
19
+
20
+ ## 手順
21
+
22
+ ### 1. スクリプトの実行
23
+
24
+ 環境に応じたスクリプトを実行。スクリプト本体とフォールバック実装は [reference/directory-structure.md](reference/directory-structure.md#スクリプト実行コマンド) を参照。
25
+
26
+ ```bash
27
+ SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
28
+ bash "$SCRIPT_DIR/scripts/setup-docs.sh"
29
+ ```
30
+
31
+ ### 2. 結果の確認
32
+
33
+ スクリプト実行結果にエラーがないこと、および期待した構造が生成されていることを確認。生成構造と各ディレクトリの用途は [reference/directory-structure.md](reference/directory-structure.md#生成されるディレクトリ構造) を参照。
34
+
35
+ ### 3. Git への追加(オプション)
36
+
37
+ ユーザーに確認し、「はい」なら:
38
+
39
+ ```bash
40
+ git add docs/
41
+ git status
42
+ ```
43
+
44
+ 推奨コミットメッセージは [reference/directory-structure.md](reference/directory-structure.md#git-追加時の推奨コミットメッセージ) を参照。
45
+
46
+ ### 4. 完了条件の確認
47
+
48
+ - [ ] スクリプトが正常に終了した
49
+ - [ ] `docs/` ディレクトリ構造が正しく作成されている
50
+
51
+ ## 完了条件
52
+
53
+ - プロジェクトルートに `docs/` ディレクトリが作成されている
54
+ - `docs/project/` 配下に `01-requirements/`, `02-behavior/`, `03-domain/`, `04-design/` が存在する
55
+ - `docs/tasks/` ディレクトリが存在する
56
+ - `docs/README.md` が作成されている
57
+ - ユーザーに作成結果が報告されている
58
+
59
+ ## エスカレーション
60
+
61
+ - **既存の `docs/` が存在し重要ファイルを含む**: 「既存のドキュメント構造が検出されました。上書きや削除のリスクがあるため、手動で確認してください。」と警告し処理を中断
62
+ - **権限エラー**: 「ディレクトリの作成に失敗しました。書き込み権限を確認してください。」
63
+ - **Git リポジトリでない**: 「このディレクトリは Git リポジトリではありません。必要なら `git init` を実行してください。」
64
+
65
+ ## 参考
66
+
67
+ - [reference/directory-structure.md](reference/directory-structure.md) — 生成構造、各ディレクトリの用途、スクリプト詳細、推奨コミットメッセージ
@@ -0,0 +1,52 @@
1
+ # docs ディレクトリ構造とコミットメッセージ
2
+
3
+ SKILL.md 手順2〜3で参照する生成構造とコミットメッセージテンプレート。
4
+
5
+ ## 生成されるディレクトリ構造
6
+
7
+ ```
8
+ docs/
9
+ ├── README.md
10
+ ├── project/
11
+ │ ├── 01-requirements/
12
+ │ ├── 02-behavior/
13
+ │ ├── 03-domain/
14
+ │ └── 04-design/
15
+ └── tasks/
16
+ ```
17
+
18
+ ### 各ディレクトリの用途
19
+
20
+ - `project/01-requirements/` — 要件定義(システム概要、機能要件、非機能要件、ユーザーストーリー)
21
+ - `project/02-behavior/` — 振る舞い定義(Gherkin シナリオ)
22
+ - `project/03-domain/` — ドメインモデル、ユビキタス言語
23
+ - `project/04-design/` — 画面設計、データモデル、API 仕様、アーキテクチャ等
24
+ - `tasks/` — 個別タスク(`task{ID}-{SLUG}/` 形式)
25
+
26
+ ## Git 追加時の推奨コミットメッセージ
27
+
28
+ ```
29
+ ドキュメント構造の初期化
30
+
31
+ - 標準的な構造を持つ docs/ ディレクトリを追加
32
+ - ドキュメント構成を説明する docs/README.md を追加
33
+ ```
34
+
35
+ ## スクリプト実行コマンド
36
+
37
+ ```bash
38
+ if [ -d ".agent" ]; then
39
+ SCRIPT_DIR=".agent"
40
+ elif [ -d ".cursor" ]; then
41
+ SCRIPT_DIR=".cursor"
42
+ elif [ -d ".claude" ]; then
43
+ SCRIPT_DIR=".claude"
44
+ elif [ -d ".codex" ]; then
45
+ SCRIPT_DIR=".codex"
46
+ else
47
+ echo "エラー: AI coding assistant ディレクトリが見つかりません"
48
+ exit 1
49
+ fi
50
+
51
+ bash "$SCRIPT_DIR/scripts/setup-docs.sh"
52
+ ```
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: a-002-initialize-project
3
+ description: プロジェクトの要件を対話形式で収集し、システム概要・機能要件・非機能要件・ユーザーストーリーのドキュメントを生成する。新規プロジェクト開始時、または要件が未整備の場合に使用。
4
+ disable-model-invocation: true
5
+ allowed-tools: Read, Write, Edit, Bash, Grep, Glob
6
+ ---
7
+
8
+ # InitializeProject (a-002)
9
+
10
+ ## 目的
11
+
12
+ - プロジェクトの目的・背景・機能要件を詳細にヒアリングし、具体的で実装可能なドキュメントを作成する。
13
+ - システム概要・実装済み機能・予定機能・非機能要件・ユーザーストーリーを網羅する。
14
+ - 抽象的・曖昧な表現を避け、対話を通じて具体的な数値・期限・制約・優先度を明確化する。
15
+
16
+ ## 前提
17
+
18
+ - `docs/project/requirements/` ディレクトリが存在すること(なければ先に `/a-001-setup-doc-structure` を実行)
19
+ - `docs/` に書き込み権限があること
20
+ - ユーザーがプロジェクト概要と主要機能の基本情報を提供できること
21
+
22
+ ## 手順
23
+
24
+ ### 1. ドキュメントディレクトリの確認
25
+
26
+ ```bash
27
+ ls -la docs/project/requirements/ 2>/dev/null || echo "ディレクトリが存在しません"
28
+ ```
29
+
30
+ 存在しない場合: 「`docs/project/requirements/` がありません。先に `/a-001-setup-doc-structure` を実行してください。」
31
+
32
+ ### 2. コードベースの自動分析と提案
33
+
34
+ **規模確認**:
35
+
36
+ ```bash
37
+ ls -F
38
+ ```
39
+
40
+ ファイルがほとんど無い/ソースコードが無い場合はスキップし、ユーザーへ通知。
41
+
42
+ **詳細調査**(コードがある場合):
43
+
44
+ ```bash
45
+ cat package.json 2>/dev/null
46
+ cat README.md 2>/dev/null
47
+ find src app lib -maxdepth 2 2>/dev/null
48
+ ```
49
+
50
+ 結果から以下を推測・提示: システム概要(目的・技術スタック)、実装済み機能(ファイル構造からの推測)、想定ユーザー像。
51
+
52
+ ### 3. システム概要の作成
53
+
54
+ 1. テンプレートをコピー:
55
+
56
+ ```bash
57
+ SCRIPT_DIR=$(for d in .agent .cursor .claude .codex; do [ -d "$d" ] && echo "$d" && break; done)
58
+ cp "$SCRIPT_DIR/templates/project/01-requirements/01-system-overview.md" \
59
+ "docs/project/requirements/01-system-overview.md"
60
+ ```
61
+
62
+ 2. 「背景」「目的」をヒアリングして記入。質問例は [reference/hearing-questions.md](reference/hearing-questions.md) を参照。
63
+
64
+ ### 4. 実装済み機能一覧
65
+
66
+ 1. `02-features-implemented.md` をテンプレートからコピー。
67
+ 2. コードベースを調査し、検出したディレクトリ/ファイル名から機能を提案。
68
+ 3. ヒアリング結果をテーブルに記入(Category 1/2、機能名、説明、機能 ID)。
69
+
70
+ コード調査コマンドとヒアリング項目は [reference/hearing-questions.md](reference/hearing-questions.md#手順4-実装済み機能一覧) を参照。
71
+
72
+ ### 5. 予定機能一覧
73
+
74
+ 1. `03-features-planned.md` をテンプレートからコピー。
75
+ 2. システム概要と実装済み機能のギャップを分析し、未実装機能を提案。
76
+ 3. ヒアリング結果をテーブルに記入(機能 ID・優先度は未確定のまま)。
77
+
78
+ ### 6. 非機能要件一覧
79
+
80
+ 1. `04-non-functional-requirements.md` をテンプレートからコピー。
81
+ 2. 詳細定義が必要か確認。不要なら標準ベースラインで仮置き([examples/nfr-baseline.md](examples/nfr-baseline.md))。
82
+ 3. パフォーマンス/セキュリティ/可用性/スケーラビリティ/ユーザビリティ・保守性の観点で**定量的な目標**をヒアリング。
83
+
84
+ ### 7. ユーザーストーリー
85
+
86
+ 1. `05-user-stories.md` をテンプレートからコピー。
87
+ 2. 作成済みドキュメントから主要ユーザージャーニーを抽出し、ストーリー案を提示。
88
+ 3. ヒアリング結果をテーブルに記入(優先度・受け入れ基準含む)。
89
+
90
+ ストーリーテンプレート: 「[役割]として、[〇〇機能]を使いたい、なぜなら[価値]だから」
91
+
92
+ ### 8. 全体レビュー
93
+
94
+ - 作成した全ドキュメントをユーザーに提示し、以下を確認:
95
+ - 「記載内容に誤りや漏れはありませんか?」
96
+ - 「抽象的すぎる記述や、解釈が分かれそうな表現はありますか?」
97
+ - 「テンプレートのコメントや不要な例示は適切に処理されていますか?」
98
+
99
+ ### 9. 完了条件と構造の確認
100
+
101
+ - ファイルの存在と主要セクション/テーブル構造を検証。
102
+ - 検証コマンド・チェックリスト・Git コミット手順は [reference/structure-check.md](reference/structure-check.md) を参照。
103
+
104
+ ### 10. Git への追加(オプション)
105
+
106
+ 詳細は [reference/structure-check.md](reference/structure-check.md#git-への追加オプション) を参照。
107
+
108
+ ## 完了条件
109
+
110
+ - `docs/project/requirements/` に 5 つの要件定義ドキュメントが作成されている
111
+ - すべてのドキュメントで抽象的表現が最小化され、具体的な数値・期限・制約が記載されている
112
+ - ユーザーがドキュメント内容を確認し、承認またはフィードバックを提供している
113
+
114
+ ## エスカレーション
115
+
116
+ - **ユーザーが重要な情報を提供できない**: 「この情報は後続の設計・実装で必須です。確認できる担当者や資料はありますか?」と確認し、TODO として記録。
117
+ - **競合する要件や矛盾**: 「以下の要件が競合しています: [詳細]。優先順位や調整方針を確認させてください。」と報告。
118
+ - **想定工数が非現実的に大きい**: 「現在の計画では実現が困難です。スコープ縮小や優先度調整を検討しませんか?」と提案。
119
+
120
+ ## 参考
121
+
122
+ - [reference/hearing-questions.md](reference/hearing-questions.md) — 手順3〜7のヒアリング質問集
123
+ - [reference/structure-check.md](reference/structure-check.md) — 手順9の構造チェックコマンドと Git コミット手順
124
+ - [examples/nfr-baseline.md](examples/nfr-baseline.md) — 非機能要件の標準ベースライン提案値
@@ -0,0 +1,38 @@
1
+ # 非機能要件の標準ベースライン
2
+
3
+ SKILL.md 手順6で「標準的な設定で仮置き」する際の提案値。
4
+
5
+ ## Web アプリケーションの一般的な目標値
6
+
7
+ ### パフォーマンス
8
+
9
+ - ページ読み込み: 3 秒以内
10
+ - API 応答: 500ms 以内
11
+
12
+ ### セキュリティ
13
+
14
+ - HTTPS 必須
15
+ - パスワードはハッシュ化(bcrypt 推奨)
16
+ - 認証方式: 基本認証 / OAuth
17
+
18
+ ### 可用性
19
+
20
+ - 稼働率: 99.5%(平日日中)
21
+ - 日次バックアップ
22
+
23
+ ### スケーラビリティ
24
+
25
+ - 想定同時接続数の 2 倍のバースト耐性
26
+ - 水平スケーリング可能なアーキテクチャ
27
+
28
+ ### ユーザビリティ
29
+
30
+ - WCAG 2.1 レベル AA 準拠(アクセシビリティ)
31
+ - 対応ブラウザ: 最新 2 バージョン(Chrome / Safari / Edge / Firefox)
32
+ - レスポンシブデザイン(PC / タブレット / モバイル)
33
+
34
+ ### 保守性
35
+
36
+ - 構造化ログ(JSON 形式)
37
+ - 監視: APM + アラート通知
38
+ - デプロイ: 日次 or オンデマンド