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.
Files changed (79) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/LICENSE +21 -0
  3. package/README.md +66 -22
  4. package/bin/cli.js +3 -7
  5. package/package.json +2 -2
  6. package/scripts/create-task.sh +77 -0
  7. package/scripts/init-project-docs.sh +90 -0
  8. package/scripts/init-task-doc.sh +77 -0
  9. package/skills/a-001-setup-doc-structure/SKILL.md +67 -100
  10. package/skills/a-001-setup-doc-structure/reference/directory-structure.md +48 -0
  11. package/skills/a-002-initialize-project/SKILL.md +125 -289
  12. package/skills/a-002-initialize-project/examples/nfr-baseline.md +38 -0
  13. package/skills/a-002-initialize-project/reference/hearing-questions.md +92 -0
  14. package/skills/a-002-initialize-project/reference/structure-check.md +48 -0
  15. package/skills/a-003-create-scenarios/SKILL.md +99 -142
  16. package/skills/a-003-create-scenarios/examples/gherkin-templates.md +71 -0
  17. package/skills/a-003-create-scenarios/reference/structure-check.md +46 -0
  18. package/skills/a-004-define-domain-model/SKILL.md +99 -144
  19. package/skills/a-004-define-domain-model/reference/event-storming-guide.md +71 -0
  20. package/skills/a-005-create-domain-diagram/SKILL.md +94 -120
  21. package/skills/a-005-create-domain-diagram/examples/mermaid-templates.md +73 -0
  22. package/skills/a-005-create-domain-diagram/reference/structure-check.md +43 -0
  23. package/skills/a-006-review-requirements-domain/SKILL.md +85 -144
  24. package/skills/a-006-review-requirements-domain/examples/review-report-template.md +58 -0
  25. package/skills/a-006-review-requirements-domain/reference/consistency-checks.md +60 -0
  26. package/skills/a-007-define-tech-stack/SKILL.md +102 -130
  27. package/skills/a-007-define-tech-stack/examples/stack-interview.md +83 -0
  28. package/skills/a-007-define-tech-stack/reference/structure-check.md +51 -0
  29. package/skills/a-008-define-repository-structure/SKILL.md +99 -129
  30. package/skills/a-008-define-repository-structure/examples/structure-templates.md +108 -0
  31. package/skills/a-008-define-repository-structure/reference/structure-check.md +55 -0
  32. package/skills/a-009-define-screen-design/SKILL.md +106 -130
  33. package/skills/a-009-define-screen-design/examples/screen-templates.md +66 -0
  34. package/skills/a-009-define-screen-design/reference/structure-check.md +47 -0
  35. package/skills/a-010-define-design-system/SKILL.md +134 -212
  36. package/skills/a-010-define-design-system/examples/css-tokens.md +71 -0
  37. package/skills/a-010-define-design-system/reference/component-catalog.md +44 -0
  38. package/skills/a-011-define-data-model/SKILL.md +121 -134
  39. package/skills/a-011-define-data-model/examples/erd-templates.md +108 -0
  40. package/skills/a-011-define-data-model/reference/structure-check.md +56 -0
  41. package/skills/a-012-define-api-spec/SKILL.md +108 -132
  42. package/skills/a-012-define-api-spec/examples/api-templates.md +117 -0
  43. package/skills/a-012-define-api-spec/reference/structure-check.md +49 -0
  44. package/skills/a-013-define-architecture/SKILL.md +101 -128
  45. package/skills/a-013-define-architecture/examples/architecture-templates.md +98 -0
  46. package/skills/a-013-define-architecture/reference/structure-check.md +53 -0
  47. package/skills/a-014-define-infrastructure/SKILL.md +113 -130
  48. package/skills/a-014-define-infrastructure/examples/infrastructure-templates.md +97 -0
  49. package/skills/a-014-define-infrastructure/reference/structure-check.md +63 -0
  50. package/skills/a-015-review-design/SKILL.md +88 -140
  51. package/skills/a-015-review-design/examples/review-report-template.md +59 -0
  52. package/skills/a-015-review-design/reference/consistency-checks.md +47 -0
  53. package/skills/b-001-create-task-directory/SKILL.md +62 -78
  54. package/skills/b-001-create-task-directory/examples/naming-convention.md +39 -0
  55. package/skills/b-002-create-task-definition/SKILL.md +115 -172
  56. package/skills/b-002-create-task-definition/examples/hearing-and-criteria.md +49 -0
  57. package/skills/b-002-create-task-definition/reference/structure-check.md +42 -0
  58. package/skills/b-003-create-task-research/SKILL.md +129 -454
  59. package/skills/b-003-create-task-research/examples/research-tables.md +63 -0
  60. package/skills/b-003-create-task-research/reference/investigation-guide.md +106 -0
  61. package/skills/b-004-create-task-implementation/SKILL.md +99 -100
  62. package/skills/b-004-create-task-implementation/examples/phase-step-template.md +57 -0
  63. package/skills/b-004-create-task-implementation/reference/structure-check.md +34 -0
  64. package/skills/b-005-review-task/SKILL.md +117 -324
  65. package/skills/b-005-review-task/examples/review-report-template.md +62 -0
  66. package/skills/b-005-review-task/reference/assessment-criteria.md +79 -0
  67. package/skills/b-005-review-task/reference/consistency-checks.md +69 -0
  68. package/skills/c-001-implement-task/SKILL.md +186 -521
  69. package/skills/c-001-implement-task/examples/commit-and-pr.md +92 -0
  70. package/skills/c-001-implement-task/examples/task-list-format.md +50 -0
  71. package/skills/c-001-implement-task/reference/implementation-loop.md +65 -0
  72. package/skills/c-001-implement-task/reference/validation-loop.md +66 -0
  73. package/skills/c-002-update-documentation/SKILL.md +159 -853
  74. package/skills/c-002-update-documentation/examples/project-doc-updates.md +190 -0
  75. package/skills/c-002-update-documentation/examples/task-doc-updates.md +102 -0
  76. package/skills/c-002-update-documentation/reference/doc-structure-and-checks.md +100 -0
  77. package/templates/tasks/task-template/a-definition.md +1 -1
  78. package/templates/tasks/task-template/b-research.md +1 -1
  79. 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
- | **Antigravity** | `.agent/skills/{name}/SKILL.md` にコピーして参照 |
23
- | **Cursor** | `.cursor/skills/{name}/SKILL.md` として認識 |
24
- | **Claude Code** | `.claude/skills/{name}/SKILL.md` として認識 |
25
- | **Codex** | `.codex/skills/{name}/SKILL.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
- これにより各IDE向けのスキルがプロジェクトに配置されます。
176
+ 対話形式でIDEを選択すると、`skills/`, `templates/`, `scripts/` がプロジェクトの IDE ディレクトリに配置されます。
161
177
 
162
178
  ### 方法2: 手動導入
163
179
 
164
180
  このリポジトリの `skills/`, `templates/`, `scripts/` をプロジェクトの IDE ディレクトリにコピーしてください:
165
181
 
166
- - Antigravity: `.agent/`
167
- - Cursor: `.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: 'Antigravity (.agent)', value: 'antigravity' },
17
- { title: 'Cursor (.cursor)', value: '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
- codex: '.codex',
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.0.0",
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": "ISC",
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"