yodogawa 2.0.0 → 2.1.1
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/LICENSE +21 -0
- package/README.md +66 -22
- package/bin/cli.js +3 -7
- package/package.json +2 -2
- package/scripts/create-task.sh +77 -0
- package/scripts/init-project-docs.sh +90 -0
- package/scripts/init-task-doc.sh +77 -0
- package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
- package/skills/a-001-setup-doc-structure/reference/directory-structure.md +48 -0
- package/skills/a-002-initialize-project/SKILL.md +125 -289
- 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 -142
- 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 -144
- package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
- package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
- 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 -144
- 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 -130
- 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 -129
- 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 -130
- 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 -212
- 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 -134
- 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 -132
- 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 -128
- 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 -130
- 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 -140
- 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 +62 -78
- package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
- package/skills/b-002-create-task-definition/SKILL.md +115 -172
- 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 +129 -454
- 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 +99 -100
- 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 -324
- 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 -521
- 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 -853
- 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/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 +2 -2
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/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 tkysi-mi
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
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
|
-
- Claude Code: `.claude/`
|
|
169
|
-
- Codex: `.codex/`
|
|
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,33 @@ 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エージェントがスキルを呼び出すトリガーとなる説明文
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## ライセンス
|
|
245
|
+
|
|
246
|
+
[MIT License](LICENSE) — Copyright (c) 2025 tkysi-mi
|
package/bin/cli.js
CHANGED
|
@@ -13,10 +13,8 @@ async function main() {
|
|
|
13
13
|
name: 'type',
|
|
14
14
|
message: 'Which configuration would you like to install?',
|
|
15
15
|
choices: [
|
|
16
|
-
{ title: '
|
|
17
|
-
{ title: 'Cursor (.
|
|
18
|
-
{ title: 'Claude Code (.claude)', value: 'claude' },
|
|
19
|
-
{ title: 'Codex (.codex)', value: 'codex' }
|
|
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
|
|
|
@@ -27,10 +25,8 @@ async function main() {
|
|
|
27
25
|
|
|
28
26
|
const pkgRoot = path.join(__dirname, '..');
|
|
29
27
|
const dirMap = {
|
|
30
|
-
antigravity: '.agent',
|
|
31
|
-
cursor: '.cursor',
|
|
32
28
|
claude: '.claude',
|
|
33
|
-
|
|
29
|
+
agents: '.agents',
|
|
34
30
|
};
|
|
35
31
|
const targetDirName = dirMap[response.type];
|
|
36
32
|
const targetDir = path.join(process.cwd(), targetDirName);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yodogawa",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "CLI to install Yodogawa Slash Commands workflows",
|
|
5
5
|
"bin": {
|
|
6
6
|
"yodogawa": "bin/cli.js"
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"claude"
|
|
44
44
|
],
|
|
45
45
|
"author": "",
|
|
46
|
-
"license": "
|
|
46
|
+
"license": "MIT",
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"fs-extra": "^11.2.0",
|
|
49
49
|
"kleur": "^4.1.5",
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# create-task.sh
|
|
4
|
+
# docs/tasks/ 配下に連番 ID 付きのタスクディレクトリを作成するスクリプト
|
|
5
|
+
# Usage: bash scripts/create-task.sh <slug>
|
|
6
|
+
# 例: bash scripts/create-task.sh user-profile-edit
|
|
7
|
+
|
|
8
|
+
set -e
|
|
9
|
+
|
|
10
|
+
TASKS_DIR="docs/tasks"
|
|
11
|
+
SLUG="$1"
|
|
12
|
+
|
|
13
|
+
echo "📂 タスクディレクトリの作成を開始します..."
|
|
14
|
+
|
|
15
|
+
# 1. 引数チェック
|
|
16
|
+
if [ -z "$SLUG" ]; then
|
|
17
|
+
echo "❌ スラッグが指定されていません。"
|
|
18
|
+
echo " 使い方: bash scripts/create-task.sh <slug>"
|
|
19
|
+
echo " 例: bash scripts/create-task.sh user-profile-edit"
|
|
20
|
+
exit 1
|
|
21
|
+
fi
|
|
22
|
+
|
|
23
|
+
# 2. スラッグの形式チェック(英小文字・数字・ハイフンのみ、連続ハイフン禁止)
|
|
24
|
+
if ! [[ "$SLUG" =~ ^[a-z0-9]+(-[a-z0-9]+)*$ ]]; then
|
|
25
|
+
echo "❌ スラッグは英小文字・数字・ハイフンのみ使用できます: '$SLUG'"
|
|
26
|
+
echo " 例: user-profile-edit"
|
|
27
|
+
exit 1
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
# 3. 単語数の警告(3〜5 語を推奨、範囲外は警告のみで続行)
|
|
31
|
+
WORD_COUNT=$(echo "$SLUG" | awk -F'-' '{print NF}')
|
|
32
|
+
if [ "$WORD_COUNT" -lt 3 ] || [ "$WORD_COUNT" -gt 5 ]; then
|
|
33
|
+
echo "⚠️ スラッグは 3〜5 語を推奨しています(現在: ${WORD_COUNT} 語)。"
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# 4. docs/tasks/ の存在確認
|
|
37
|
+
if [ ! -d "$TASKS_DIR" ]; then
|
|
38
|
+
echo "❌ '$TASKS_DIR' が存在しません。"
|
|
39
|
+
echo " 先に /a-001-setup-doc-structure を実行してください。"
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
42
|
+
|
|
43
|
+
# 5. 既存タスクから次の ID を採番
|
|
44
|
+
MAX_ID=0
|
|
45
|
+
for dir in "$TASKS_DIR"/task*; do
|
|
46
|
+
[ -d "$dir" ] || continue
|
|
47
|
+
BASENAME=$(basename "$dir")
|
|
48
|
+
# task000123-xxx から 000123 を抜き出す
|
|
49
|
+
if [[ "$BASENAME" =~ ^task([0-9]{6})- ]]; then
|
|
50
|
+
NUM=$((10#${BASH_REMATCH[1]}))
|
|
51
|
+
if [ "$NUM" -gt "$MAX_ID" ]; then
|
|
52
|
+
MAX_ID=$NUM
|
|
53
|
+
fi
|
|
54
|
+
fi
|
|
55
|
+
done
|
|
56
|
+
|
|
57
|
+
NEXT_ID=$((MAX_ID + 1))
|
|
58
|
+
TASK_ID=$(printf "task%06d" "$NEXT_ID")
|
|
59
|
+
TASK_DIR="$TASKS_DIR/${TASK_ID}-${SLUG}"
|
|
60
|
+
|
|
61
|
+
# 6. 同名ディレクトリの存在確認(理論上発生しないが保険)
|
|
62
|
+
if [ -d "$TASK_DIR" ]; then
|
|
63
|
+
echo "❌ '$TASK_DIR' は既に存在します。"
|
|
64
|
+
exit 1
|
|
65
|
+
fi
|
|
66
|
+
|
|
67
|
+
# 7. 作成
|
|
68
|
+
echo "🔨 ディレクトリを作成中: $TASK_DIR"
|
|
69
|
+
mkdir -p "$TASK_DIR"
|
|
70
|
+
|
|
71
|
+
# 8. 完了報告
|
|
72
|
+
echo ""
|
|
73
|
+
echo "✅ タスクディレクトリを作成しました。"
|
|
74
|
+
echo " パス: $TASK_DIR"
|
|
75
|
+
echo ""
|
|
76
|
+
echo "次のステップ:"
|
|
77
|
+
echo " - タスク定義書を作成する: /b-002-create-task-definition"
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# init-project-docs.sh
|
|
4
|
+
# templates/project/<category>/ 配下のテンプレートを
|
|
5
|
+
# docs/project/<category>/ へ一括コピーするスクリプト
|
|
6
|
+
# Usage: bash scripts/init-project-docs.sh <category>
|
|
7
|
+
# category: requirements | behavior | domain | design
|
|
8
|
+
# 例: bash scripts/init-project-docs.sh requirements
|
|
9
|
+
|
|
10
|
+
set -e
|
|
11
|
+
|
|
12
|
+
CATEGORY="$1"
|
|
13
|
+
|
|
14
|
+
# スクリプト自身の位置からテンプレートルートを解決(.claude/scripts -> .claude/templates)
|
|
15
|
+
SCRIPT_SELF_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
16
|
+
TEMPLATE_ROOT="$SCRIPT_SELF_DIR/../templates/project"
|
|
17
|
+
|
|
18
|
+
echo "📝 プロジェクトドキュメントの一括初期化を開始します..."
|
|
19
|
+
|
|
20
|
+
# 1. 引数チェック
|
|
21
|
+
if [ -z "$CATEGORY" ]; then
|
|
22
|
+
echo "❌ category 引数が指定されていません。"
|
|
23
|
+
echo " 使い方: bash scripts/init-project-docs.sh <category>"
|
|
24
|
+
echo " category: requirements | behavior | domain | design"
|
|
25
|
+
exit 1
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
# 2. category を番号付きディレクトリ名にマッピング
|
|
29
|
+
case "$CATEGORY" in
|
|
30
|
+
requirements)
|
|
31
|
+
SUBDIR="01-requirements"
|
|
32
|
+
;;
|
|
33
|
+
behavior)
|
|
34
|
+
SUBDIR="02-behavior"
|
|
35
|
+
;;
|
|
36
|
+
domain)
|
|
37
|
+
SUBDIR="03-domain"
|
|
38
|
+
;;
|
|
39
|
+
design)
|
|
40
|
+
SUBDIR="04-design"
|
|
41
|
+
;;
|
|
42
|
+
*)
|
|
43
|
+
echo "❌ 不明な category: '$CATEGORY'"
|
|
44
|
+
echo " 有効な category: requirements | behavior | domain | design"
|
|
45
|
+
exit 1
|
|
46
|
+
;;
|
|
47
|
+
esac
|
|
48
|
+
|
|
49
|
+
SRC_DIR="$TEMPLATE_ROOT/$SUBDIR"
|
|
50
|
+
DEST_DIR="docs/project/$SUBDIR"
|
|
51
|
+
|
|
52
|
+
# 3. テンプレートディレクトリの存在確認
|
|
53
|
+
if [ ! -d "$SRC_DIR" ]; then
|
|
54
|
+
echo "❌ テンプレートディレクトリが見つかりません: $SRC_DIR"
|
|
55
|
+
echo " yodogawa CLI での再インストールを検討してください。"
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
|
|
59
|
+
# 4. 出力先ディレクトリの存在確認
|
|
60
|
+
if [ ! -d "$DEST_DIR" ]; then
|
|
61
|
+
echo "❌ 出力先ディレクトリが存在しません: $DEST_DIR"
|
|
62
|
+
echo " 先に /a-001-setup-doc-structure を実行してください。"
|
|
63
|
+
exit 1
|
|
64
|
+
fi
|
|
65
|
+
|
|
66
|
+
# 5. テンプレートファイルを一括コピー(既存はスキップして冪等性を確保)
|
|
67
|
+
COPIED=0
|
|
68
|
+
SKIPPED=0
|
|
69
|
+
|
|
70
|
+
for SRC_PATH in "$SRC_DIR"/*.md; do
|
|
71
|
+
[ -f "$SRC_PATH" ] || continue
|
|
72
|
+
FILENAME=$(basename "$SRC_PATH")
|
|
73
|
+
DEST_PATH="$DEST_DIR/$FILENAME"
|
|
74
|
+
|
|
75
|
+
if [ -f "$DEST_PATH" ]; then
|
|
76
|
+
echo "ℹ️ 既に存在するためスキップ: $DEST_PATH"
|
|
77
|
+
SKIPPED=$((SKIPPED + 1))
|
|
78
|
+
else
|
|
79
|
+
echo "🔨 コピー中: $SRC_PATH → $DEST_PATH"
|
|
80
|
+
cp "$SRC_PATH" "$DEST_PATH"
|
|
81
|
+
COPIED=$((COPIED + 1))
|
|
82
|
+
fi
|
|
83
|
+
done
|
|
84
|
+
|
|
85
|
+
# 6. 完了報告
|
|
86
|
+
echo ""
|
|
87
|
+
echo "✅ プロジェクトドキュメントを初期化しました。"
|
|
88
|
+
echo " カテゴリ: $CATEGORY ($SUBDIR)"
|
|
89
|
+
echo " コピー: ${COPIED} ファイル / スキップ: ${SKIPPED} ファイル"
|
|
90
|
+
echo " パス: $DEST_DIR"
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# init-task-doc.sh
|
|
4
|
+
# タスクディレクトリにテンプレートから指定のドキュメントをコピーするスクリプト
|
|
5
|
+
# Usage: bash scripts/init-task-doc.sh <task-dir> <type>
|
|
6
|
+
# type: definition | research | implementation
|
|
7
|
+
# 例: bash scripts/init-task-doc.sh docs/tasks/task000001-user-profile-edit definition
|
|
8
|
+
|
|
9
|
+
set -e
|
|
10
|
+
|
|
11
|
+
TASK_DIR="$1"
|
|
12
|
+
DOC_TYPE="$2"
|
|
13
|
+
|
|
14
|
+
# スクリプト自身の位置からテンプレートルートを解決(.claude/scripts -> .claude/templates)
|
|
15
|
+
SCRIPT_SELF_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
16
|
+
TEMPLATE_ROOT="$SCRIPT_SELF_DIR/../templates/tasks/task-template"
|
|
17
|
+
|
|
18
|
+
echo "📝 タスクドキュメントの初期化を開始します..."
|
|
19
|
+
|
|
20
|
+
# 1. 引数チェック
|
|
21
|
+
if [ -z "$TASK_DIR" ] || [ -z "$DOC_TYPE" ]; then
|
|
22
|
+
echo "❌ 引数が不足しています。"
|
|
23
|
+
echo " 使い方: bash scripts/init-task-doc.sh <task-dir> <type>"
|
|
24
|
+
echo " type: definition | research | implementation"
|
|
25
|
+
echo " 例: bash scripts/init-task-doc.sh docs/tasks/task000001-login definition"
|
|
26
|
+
exit 1
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# 2. タスクディレクトリの存在確認
|
|
30
|
+
if [ ! -d "$TASK_DIR" ]; then
|
|
31
|
+
echo "❌ タスクディレクトリが存在しません: $TASK_DIR"
|
|
32
|
+
echo " 先に /b-001-create-task-directory を実行してください。"
|
|
33
|
+
exit 1
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# 3. type をファイル名にマッピング
|
|
37
|
+
case "$DOC_TYPE" in
|
|
38
|
+
definition)
|
|
39
|
+
SRC_FILE="a-definition.md"
|
|
40
|
+
;;
|
|
41
|
+
research)
|
|
42
|
+
SRC_FILE="b-research.md"
|
|
43
|
+
;;
|
|
44
|
+
implementation)
|
|
45
|
+
SRC_FILE="c-implementation.md"
|
|
46
|
+
;;
|
|
47
|
+
*)
|
|
48
|
+
echo "❌ 不明な type: '$DOC_TYPE'"
|
|
49
|
+
echo " 有効な type: definition | research | implementation"
|
|
50
|
+
exit 1
|
|
51
|
+
;;
|
|
52
|
+
esac
|
|
53
|
+
|
|
54
|
+
SRC_PATH="$TEMPLATE_ROOT/$SRC_FILE"
|
|
55
|
+
DEST_PATH="$TASK_DIR/$SRC_FILE"
|
|
56
|
+
|
|
57
|
+
# 4. テンプレートの存在確認
|
|
58
|
+
if [ ! -f "$SRC_PATH" ]; then
|
|
59
|
+
echo "❌ テンプレートが見つかりません: $SRC_PATH"
|
|
60
|
+
echo " yodogawa CLI での再インストールを検討してください。"
|
|
61
|
+
exit 1
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
# 5. 既存ファイルはスキップ(冪等性)
|
|
65
|
+
if [ -f "$DEST_PATH" ]; then
|
|
66
|
+
echo "ℹ️ 既に存在するためスキップ: $DEST_PATH"
|
|
67
|
+
exit 0
|
|
68
|
+
fi
|
|
69
|
+
|
|
70
|
+
# 6. コピー
|
|
71
|
+
echo "🔨 コピー中: $SRC_PATH → $DEST_PATH"
|
|
72
|
+
cp "$SRC_PATH" "$DEST_PATH"
|
|
73
|
+
|
|
74
|
+
# 7. 完了報告
|
|
75
|
+
echo ""
|
|
76
|
+
echo "✅ タスクドキュメントを初期化しました。"
|
|
77
|
+
echo " パス: $DEST_PATH"
|