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.
- package/CHANGELOG.md +39 -0
- package/README.md +61 -23
- package/bin/cli.js +18 -44
- package/package.json +6 -4
- package/skills/a-001-setup-doc-structure/SKILL.md +67 -0
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +52 -0
- package/skills/a-002-initialize-project/SKILL.md +124 -0
- package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
- package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
- package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
- package/skills/a-003-create-scenarios/SKILL.md +99 -0
- package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
- package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
- package/skills/a-004-define-domain-model/SKILL.md +99 -0
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
- package/skills/a-005-create-domain-diagram/SKILL.md +94 -0
- package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
- package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
- package/skills/a-006-review-requirements-domain/SKILL.md +85 -0
- package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
- package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
- package/skills/a-007-define-tech-stack/SKILL.md +102 -0
- package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
- package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
- package/skills/a-008-define-repository-structure/SKILL.md +99 -0
- package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
- package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
- package/skills/a-009-define-screen-design/SKILL.md +106 -0
- package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
- package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
- package/skills/a-010-define-design-system/SKILL.md +134 -0
- package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
- package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
- package/skills/a-011-define-data-model/SKILL.md +121 -0
- package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
- package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
- package/skills/a-012-define-api-spec/SKILL.md +108 -0
- package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
- package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
- package/skills/a-013-define-architecture/SKILL.md +101 -0
- package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
- package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
- package/skills/a-014-define-infrastructure/SKILL.md +113 -0
- package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
- package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
- package/skills/a-015-review-design/SKILL.md +88 -0
- package/skills/a-015-review-design/examples/review-report-template.md +59 -0
- package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
- package/skills/b-001-create-task-directory/SKILL.md +68 -0
- package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
- package/skills/b-002-create-task-definition/SKILL.md +115 -0
- package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
- package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
- package/skills/b-003-create-task-research/SKILL.md +130 -0
- package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
- package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
- package/skills/b-004-create-task-implementation/SKILL.md +97 -0
- package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
- package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
- package/skills/b-005-review-task/SKILL.md +117 -0
- package/skills/b-005-review-task/examples/review-report-template.md +62 -0
- package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
- package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
- package/skills/c-001-implement-task/SKILL.md +186 -0
- package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
- package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
- package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
- package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
- package/skills/c-002-update-documentation/SKILL.md +159 -0
- package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
- package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
- package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
- package/{.windsurf/templates → templates}/tasks/task-template/a-definition.md +1 -1
- package/{.windsurf/templates → templates}/tasks/task-template/b-research.md +1 -1
- package/{.windsurf/templates → templates}/tasks/task-template/c-implementation.md +2 -2
- package/.windsurf/workflows/a-001-SetupDocStructure.md +0 -99
- package/.windsurf/workflows/a-002-InitializeProject.md +0 -283
- package/.windsurf/workflows/a-003-CreateScenarios.md +0 -140
- package/.windsurf/workflows/a-004-DefineDomainModel.md +0 -142
- package/.windsurf/workflows/a-005-CreateDomainDiagram.md +0 -119
- package/.windsurf/workflows/a-006-ReviewRequirementsDomain.md +0 -143
- package/.windsurf/workflows/a-007-DefineTechStack.md +0 -128
- package/.windsurf/workflows/a-008-DefineRepositoryStructure.md +0 -127
- package/.windsurf/workflows/a-009-DefineScreenDesign.md +0 -128
- package/.windsurf/workflows/a-010-DefineDesignSystem.md +0 -210
- package/.windsurf/workflows/a-011-DefineDataModel.md +0 -132
- package/.windsurf/workflows/a-012-DefineAPISpec.md +0 -130
- package/.windsurf/workflows/a-013-DefineArchitecture.md +0 -126
- package/.windsurf/workflows/a-014-DefineInfrastructure.md +0 -128
- package/.windsurf/workflows/a-015-ReviewDesign.md +0 -139
- package/.windsurf/workflows/b-001-CreateTaskDirectory.md +0 -77
- package/.windsurf/workflows/b-002-CreateTaskDefinition.md +0 -170
- package/.windsurf/workflows/b-003-CreateTaskResearch.md +0 -452
- package/.windsurf/workflows/b-004-CreateTaskImplementation.md +0 -98
- package/.windsurf/workflows/b-005-ReviewTask.md +0 -323
- package/.windsurf/workflows/c-001-ImplementTask.md +0 -520
- package/.windsurf/workflows/c-002-UpdateDocumentation.md +0 -852
- /package/{.windsurf/scripts → scripts}/setup-docs.sh +0 -0
- /package/{.windsurf/templates → templates}/documentation-rules.md +0 -0
- /package/{.windsurf/templates → templates}/project/01-requirements/01-system-overview.md +0 -0
- /package/{.windsurf/templates → templates}/project/01-requirements/02-features-implemented.md +0 -0
- /package/{.windsurf/templates → templates}/project/01-requirements/03-features-planned.md +0 -0
- /package/{.windsurf/templates → templates}/project/01-requirements/04-non-functional-requirements.md +0 -0
- /package/{.windsurf/templates → templates}/project/01-requirements/05-user-stories.md +0 -0
- /package/{.windsurf/templates → templates}/project/02-behavior/01-scenarios.md +0 -0
- /package/{.windsurf/templates → templates}/project/03-domain/01-domain-model.md +0 -0
- /package/{.windsurf/templates → templates}/project/03-domain/02-ubiquitous-language.md +0 -0
- /package/{.windsurf/templates → templates}/project/04-design/01-tech-stack.md +0 -0
- /package/{.windsurf/templates → templates}/project/04-design/02-repository-structure.md +0 -0
- /package/{.windsurf/templates → templates}/project/04-design/03-screen-design.md +0 -0
- /package/{.windsurf/templates → templates}/project/04-design/04-design-system.md +0 -0
- /package/{.windsurf/templates → templates}/project/04-design/05-data-model.md +0 -0
- /package/{.windsurf/templates → templates}/project/04-design/06-api-spec.md +0 -0
- /package/{.windsurf/templates → templates}/project/04-design/07-architecture.md +0 -0
- /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
|
-
| **
|
|
23
|
-
| **Cursor** |
|
|
24
|
-
| **
|
|
25
|
-
| **
|
|
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
|
|
173
|
+
yodogawa
|
|
158
174
|
```
|
|
159
175
|
|
|
160
|
-
|
|
176
|
+
対話形式でIDEを選択すると、`skills/`, `templates/`, `scripts/` がプロジェクトの IDE ディレクトリに配置されます。
|
|
161
177
|
|
|
162
178
|
### 方法2: 手動導入
|
|
163
179
|
|
|
164
|
-
このリポジトリの
|
|
180
|
+
このリポジトリの `skills/`, `templates/`, `scripts/` をプロジェクトの IDE ディレクトリにコピーしてください:
|
|
165
181
|
|
|
166
|
-
-
|
|
167
|
-
- Cursor
|
|
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
|
|
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: '
|
|
17
|
-
{ title: '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
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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(`\
|
|
67
|
-
await fs.copy(sourceDir, targetDir);
|
|
48
|
+
console.log(`\nInstalling Yodogawa skills to ${bold(targetDirName)}...`);
|
|
68
49
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
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
|
|
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
|
|
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
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "CLI to install Yodogawa Slash Commands workflows",
|
|
5
5
|
"bin": {
|
|
6
|
-
"yodogawa": "
|
|
6
|
+
"yodogawa": "bin/cli.js"
|
|
7
7
|
},
|
|
8
8
|
"files": [
|
|
9
9
|
"bin",
|
|
10
|
-
"
|
|
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 オンデマンド
|