@sk8metal/michi-cli 0.8.6 → 0.10.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 +95 -1
- package/README.md +4 -4
- package/dist/scripts/config/config-schema.d.ts +3 -0
- package/dist/scripts/config/config-schema.d.ts.map +1 -1
- package/dist/scripts/config/config-schema.js +18 -0
- package/dist/scripts/config/config-schema.js.map +1 -1
- package/dist/scripts/constants/environments.js +3 -3
- package/dist/scripts/constants/environments.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +20 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +124 -1
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/docs/michi-development/testing/manual-verification-other-tools.md +10 -8
- package/docs/user-guide/getting-started/new-repository-setup.md +4 -3
- package/docs/user-guide/guides/migration-guide.md +138 -0
- package/docs/user-guide/guides/multi-repo-guide.md +573 -10
- package/docs/user-guide/guides/workflow.md +4 -14
- package/docs/user-guide/hands-on/workflow-walkthrough.md +173 -4
- package/package.json +1 -1
- package/scripts/__tests__/multi-repo-config-schema.test.ts +106 -0
- package/scripts/__tests__/multi-repo-validator.test.ts +229 -1
- package/scripts/config/config-schema.ts +20 -0
- package/scripts/constants/__tests__/environments.test.ts +3 -3
- package/scripts/constants/environments.ts +3 -3
- package/scripts/utils/multi-repo-validator.ts +160 -1
- package/templates/claude/agents/mermaid-validator/AGENT.md +257 -0
- package/templates/claude/commands/michi-multi-repo/impl-all.md +264 -0
- package/templates/claude/commands/michi-multi-repo/propagate-specs.md +271 -0
- package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-design.md +69 -6
- package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-init.md +6 -6
- package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-requirements.md +2 -2
- package/templates/claude/commands/michi-multi-repo/spec-review.md +247 -0
- package/templates/claude/skills/mermaid-validator/SKILL.md +261 -0
- package/templates/claude-agent/agents/cross-repo-reviewer.md +194 -0
- package/templates/claude-agent/agents/repo-spec-executor.md +113 -0
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Multi-Repoプロジェクトから各リポジトリへ仕様を展開(並行実行)
|
|
3
|
+
allowed-tools: Task, Bash, Read, Write, Glob, Grep, AskUserQuestion
|
|
4
|
+
argument-hint: <project-name> [--operation init|requirements|design|all]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Multi-Repo Spec Propagation
|
|
8
|
+
|
|
9
|
+
<background_information>
|
|
10
|
+
- **Mission**: Multi-Repoプロジェクトの仕様を各リポジトリに展開
|
|
11
|
+
- **Success Criteria**:
|
|
12
|
+
- 全リポジトリで指定されたOPERATIONが完了
|
|
13
|
+
- 各リポジトリの仕様が親プロジェクトと整合性を保つ
|
|
14
|
+
- エラーハンドリングとチェックポイント保存
|
|
15
|
+
</background_information>
|
|
16
|
+
|
|
17
|
+
<instructions>
|
|
18
|
+
## Core Task
|
|
19
|
+
Multi-Repoプロジェクト **$1** の全リポジトリに対して、仕様コマンドを並行実行します。
|
|
20
|
+
|
|
21
|
+
## 引数解析
|
|
22
|
+
|
|
23
|
+
引数の形式:
|
|
24
|
+
```
|
|
25
|
+
/michi-multi-repo:propagate-specs <project-name> [--operation <operation>]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
パラメータ:
|
|
29
|
+
- **$1**: プロジェクト名(必須)
|
|
30
|
+
- **--operation**: 実行する操作(オプション、デフォルト: all)
|
|
31
|
+
- `init`: /michi:spec-init
|
|
32
|
+
- `requirements`: /kiro:spec-requirements
|
|
33
|
+
- `design`: /michi:spec-design
|
|
34
|
+
- `all`: /michi:spec-init → /kiro:spec-requirements → /michi:spec-design を順次実行
|
|
35
|
+
|
|
36
|
+
## Execution Steps
|
|
37
|
+
|
|
38
|
+
### Step 1: コンテキスト読み込み
|
|
39
|
+
|
|
40
|
+
1. `.michi/config.json` からプロジェクト情報取得
|
|
41
|
+
```bash
|
|
42
|
+
cat .michi/config.json | grep -A 20 '"name": "$1"'
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
2. 登録リポジトリの一覧を取得
|
|
46
|
+
|
|
47
|
+
3. 各リポジトリの `localPath` を取得
|
|
48
|
+
|
|
49
|
+
4. 親プロジェクトの仕様ファイルを確認
|
|
50
|
+
- `docs/michi/$1/overview/requirements.md` (OPERATION=design以降で必要)
|
|
51
|
+
- `docs/michi/$1/overview/architecture.md` (OPERATION=design以降で必要)
|
|
52
|
+
|
|
53
|
+
### Step 2: localPath 検証
|
|
54
|
+
|
|
55
|
+
各リポジトリについて以下を確認:
|
|
56
|
+
|
|
57
|
+
- ✅ localPathが設定されているか
|
|
58
|
+
- ✅ ディレクトリが存在するか
|
|
59
|
+
- ✅ Gitリポジトリか (`.git/`ディレクトリ確認)
|
|
60
|
+
- ⚠️ 設定されたブランチと現在のブランチが一致するか
|
|
61
|
+
- ⚠️ 未コミット変更がないか
|
|
62
|
+
|
|
63
|
+
**検証失敗時の対応**:
|
|
64
|
+
- localPath未設定: 警告を出力し、該当リポジトリをスキップ
|
|
65
|
+
- ディレクトリ不存在: エラーを出力し、該当リポジトリをスキップ
|
|
66
|
+
- ブランチ不一致: 警告を出力(続行可能)
|
|
67
|
+
- 未コミット変更: 警告を出力(続行可能)
|
|
68
|
+
|
|
69
|
+
### Step 3: チェックポイント確認
|
|
70
|
+
|
|
71
|
+
`docs/michi/$1/.checkpoint.json` の存在を確認
|
|
72
|
+
|
|
73
|
+
存在する場合:
|
|
74
|
+
```text
|
|
75
|
+
⚠️ チェックポイントファイルが見つかりました: docs/michi/$1/.checkpoint.json
|
|
76
|
+
|
|
77
|
+
前回の実行が中断された可能性があります。
|
|
78
|
+
|
|
79
|
+
次のアクション:
|
|
80
|
+
A) チェックポイントから再開(未完了リポジトリのみ処理)
|
|
81
|
+
B) 最初から実行(チェックポイント削除)
|
|
82
|
+
C) キャンセル
|
|
83
|
+
|
|
84
|
+
選択 (A/B/C): _
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Step 3.5: 実行確認
|
|
88
|
+
|
|
89
|
+
以下のリポジトリで仕様生成を自動実行します:
|
|
90
|
+
|
|
91
|
+
| リポジトリ | localPath | 実行コマンド |
|
|
92
|
+
|-----------|----------|-------------|
|
|
93
|
+
{各リポジトリの情報を表示}
|
|
94
|
+
|
|
95
|
+
**AskUserQuestionツールで確認:**
|
|
96
|
+
```
|
|
97
|
+
この内容で仕様生成を自動実行しますか?
|
|
98
|
+
|
|
99
|
+
実行されるコマンド:
|
|
100
|
+
- /michi:spec-init "{project description}"
|
|
101
|
+
- /kiro:spec-requirements {feature}
|
|
102
|
+
- /michi:spec-design {feature}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
選択肢:
|
|
106
|
+
- はい、実行する(推奨)
|
|
107
|
+
- いいえ、キャンセル
|
|
108
|
+
|
|
109
|
+
### Step 4: 並行実行
|
|
110
|
+
|
|
111
|
+
**並行実行数**: 最大3並列
|
|
112
|
+
|
|
113
|
+
**重要**: general-purposeエージェントを使用して、以下のリポジトリで仕様コマンドを並行実行してください:
|
|
114
|
+
|
|
115
|
+
各リポジトリに対してTaskツール(subagent_type: general-purpose)を起動:
|
|
116
|
+
|
|
117
|
+
**Repository**: {repo.name}
|
|
118
|
+
- 作業ディレクトリ: {repo.localPath}
|
|
119
|
+
- 親プロジェクト参照:
|
|
120
|
+
- requirements.md: {親プロジェクトパス}/docs/michi/$1/overview/requirements.md
|
|
121
|
+
- architecture.md: {親プロジェクトパス}/docs/michi/$1/overview/architecture.md
|
|
122
|
+
|
|
123
|
+
実行コマンド(順次):
|
|
124
|
+
1. `/michi:spec-init "{project description}"`
|
|
125
|
+
2. `/kiro:spec-requirements {feature}`
|
|
126
|
+
3. `/michi:spec-design {feature}`
|
|
127
|
+
|
|
128
|
+
親プロジェクトの設計との整合性を維持し、このリポジトリの責務範囲のみを設計してください。
|
|
129
|
+
|
|
130
|
+
**重要**: 全リポジトリのエージェント完了を待ち、結果を集約してください。
|
|
131
|
+
|
|
132
|
+
### Step 5: 結果集約とレポート
|
|
133
|
+
|
|
134
|
+
各リポジトリの実行結果を集約:
|
|
135
|
+
|
|
136
|
+
| リポジトリ | OPERATION | ステータス | 詳細 |
|
|
137
|
+
|-----------|----------|----------|------|
|
|
138
|
+
| frontend | design | ✅ 成功 | design.md生成完了 |
|
|
139
|
+
| backend | design | ✅ 成功 | design.md生成完了 |
|
|
140
|
+
| shared | design | ❌ 失敗 | localPath未設定 |
|
|
141
|
+
|
|
142
|
+
**成功件数**: 2/3
|
|
143
|
+
**失敗件数**: 1/3
|
|
144
|
+
|
|
145
|
+
### Step 6: チェックポイント保存(失敗時)
|
|
146
|
+
|
|
147
|
+
失敗したリポジトリがある場合、チェックポイントを保存:
|
|
148
|
+
|
|
149
|
+
```json
|
|
150
|
+
{
|
|
151
|
+
"projectName": "$1",
|
|
152
|
+
"operation": "{operation}",
|
|
153
|
+
"repositories": {
|
|
154
|
+
"frontend": {
|
|
155
|
+
"status": "completed",
|
|
156
|
+
"completedAt": "2025-12-23T10:30:00Z"
|
|
157
|
+
},
|
|
158
|
+
"backend": {
|
|
159
|
+
"status": "completed",
|
|
160
|
+
"completedAt": "2025-12-23T10:31:00Z"
|
|
161
|
+
},
|
|
162
|
+
"shared": {
|
|
163
|
+
"status": "failed",
|
|
164
|
+
"error": "localPath未設定"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"savedAt": "2025-12-23T10:32:00Z"
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
保存先: `docs/michi/$1/.checkpoint.json`
|
|
172
|
+
|
|
173
|
+
### Step 7: 次のアクション案内
|
|
174
|
+
|
|
175
|
+
**全成功時**:
|
|
176
|
+
```markdown
|
|
177
|
+
🎉 全リポジトリで仕様展開が完了しました
|
|
178
|
+
|
|
179
|
+
### 次のステップ
|
|
180
|
+
|
|
181
|
+
1. クロスリポジトリレビューを実行:
|
|
182
|
+
`/michi-multi-repo:spec-review $1`
|
|
183
|
+
|
|
184
|
+
2. 合格後、各リポジトリでタスク生成:
|
|
185
|
+
各リポジトリで `/kiro:spec-tasks {feature}` を実行
|
|
186
|
+
|
|
187
|
+
3. 実装を開始:
|
|
188
|
+
`/michi-multi-repo:impl-all $1`
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**一部失敗時**:
|
|
192
|
+
```markdown
|
|
193
|
+
⚠️ 一部のリポジトリで失敗しました
|
|
194
|
+
|
|
195
|
+
### 失敗したリポジトリ
|
|
196
|
+
- shared: localPath未設定
|
|
197
|
+
|
|
198
|
+
### 対処方法
|
|
199
|
+
1. localPathを設定:
|
|
200
|
+
`michi multi-repo:add-repo $1 --name shared --localPath /path/to/repo`
|
|
201
|
+
|
|
202
|
+
2. チェックポイントから再開:
|
|
203
|
+
`/michi-multi-repo:propagate-specs $1 --operation {operation}`
|
|
204
|
+
(失敗したリポジトリのみ処理されます)
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Important Constraints
|
|
208
|
+
- 並行実行は最大3リポジトリ
|
|
209
|
+
- 各リポジトリは独立して処理(依存関係なし)
|
|
210
|
+
- localPath未設定のリポジトリはスキップ
|
|
211
|
+
- エラー発生時もチェックポイントを保存し、再開可能にする
|
|
212
|
+
|
|
213
|
+
</instructions>
|
|
214
|
+
|
|
215
|
+
## Tool Guidance
|
|
216
|
+
- **Task**: repo-spec-executorサブエージェント起動に使用
|
|
217
|
+
- **Read**: config.json、親プロジェクト仕様の読み込み
|
|
218
|
+
- **Write**: チェックポイント保存
|
|
219
|
+
- **Bash**: localPath検証、Git操作
|
|
220
|
+
|
|
221
|
+
## Output Description
|
|
222
|
+
|
|
223
|
+
日本語で以下の情報を出力してください:
|
|
224
|
+
|
|
225
|
+
1. **処理対象リポジトリ一覧**: 各リポジトリのlocalPathと検証結果
|
|
226
|
+
2. **実行結果サマリー**: 成功/失敗件数
|
|
227
|
+
3. **各リポジトリの詳細結果**: 生成されたファイル、エラー内容
|
|
228
|
+
4. **次のアクション**: 成功時/失敗時の推奨ステップ
|
|
229
|
+
|
|
230
|
+
## Safety & Fallback
|
|
231
|
+
|
|
232
|
+
### Error Scenarios
|
|
233
|
+
|
|
234
|
+
- **プロジェクト未登録**:
|
|
235
|
+
```
|
|
236
|
+
エラー: プロジェクト '$1' が見つかりません。
|
|
237
|
+
|
|
238
|
+
次のコマンドでプロジェクトを初期化してください:
|
|
239
|
+
michi multi-repo:init $1 --jira {JIRA_KEY} --confluence-space {SPACE}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
- **リポジトリ未登録**:
|
|
243
|
+
```
|
|
244
|
+
警告: プロジェクト '$1' にリポジトリが登録されていません。
|
|
245
|
+
|
|
246
|
+
次のコマンドでリポジトリを登録してください:
|
|
247
|
+
michi multi-repo:add-repo $1 --name {name} --url {url} --localPath {path}
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
- **localPath未設定**:
|
|
251
|
+
```
|
|
252
|
+
警告: リポジトリ '{name}' の localPath が未設定です。スキップします。
|
|
253
|
+
|
|
254
|
+
localPathを設定するには:
|
|
255
|
+
michi multi-repo:add-repo $1 --name {name} --localPath /path/to/repo
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
- **親プロジェクト仕様未作成(OPERATION=design以降)**:
|
|
259
|
+
```
|
|
260
|
+
エラー: 親プロジェクトの設計書が見つかりません: docs/michi/$1/overview/architecture.md
|
|
261
|
+
|
|
262
|
+
先に親プロジェクトの設計を作成してください:
|
|
263
|
+
/michi-multi-repo:spec-design $1
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Fallback Strategy
|
|
267
|
+
- localPath未設定: 該当リポジトリをスキップし、他のリポジトリで処理続行
|
|
268
|
+
- サブエージェント失敗: チェックポイント保存し、リトライ可能にする
|
|
269
|
+
- 全リポジトリ失敗: エラーレポート出力し、ユーザーに対処方法を案内
|
|
270
|
+
|
|
271
|
+
think hard
|
|
@@ -26,7 +26,7 @@ Multi-Repoプロジェクト **$1** の技術設計書を生成します。
|
|
|
26
26
|
- プロジェクト名、JIRAキー、Confluenceスペース
|
|
27
27
|
- 登録リポジトリ一覧
|
|
28
28
|
2. `docs/michi/$1/overview/requirements.md` から要件読み込み
|
|
29
|
-
- 要件定義書が存在しない場合は、先に `/
|
|
29
|
+
- 要件定義書が存在しない場合は、先に `/michi-multi-repo:spec-requirements $1` の実行を促す
|
|
30
30
|
3. `.kiro/settings/rules/design-principles.md` から設計原則取得(存在する場合)
|
|
31
31
|
4. `.kiro/settings/templates/specs/design.md` から構造参照(存在する場合)
|
|
32
32
|
|
|
@@ -94,6 +94,49 @@ Multi-Repoプロジェクト **$1** の技術設計書を生成します。
|
|
|
94
94
|
- 出力先: `docs/michi/$1/overview/architecture.md`
|
|
95
95
|
- 既存ファイルがある場合は、上書き確認(`-y` フラグで自動承認)
|
|
96
96
|
|
|
97
|
+
### Step 4.5: 品質検証(PROACTIVE)
|
|
98
|
+
|
|
99
|
+
**architecture.md生成後、以下の検証を自動実行**:
|
|
100
|
+
|
|
101
|
+
#### 4.5.1 Mermaid図の構文検証
|
|
102
|
+
|
|
103
|
+
`mermaid-validator` エージェントを使用してMermaid図を検証:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
IMPORTANT: architecture.mdにMermaid図が含まれる場合、mermaid-validatorエージェントを自動実行してください。
|
|
107
|
+
- 検出: Mermaid図を含むかどうかを確認
|
|
108
|
+
- 検証: 構文エラーを検出
|
|
109
|
+
- 修正: 自動修正可能なエラーを修正
|
|
110
|
+
- 報告: 修正内容をユーザーに通知
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**実行タイミング**: architecture.md保存直後
|
|
114
|
+
|
|
115
|
+
**エージェント呼び出し**:
|
|
116
|
+
```
|
|
117
|
+
Task(subagent_type='mermaid-validator', prompt='docs/michi/$1/overview/architecture.md のMermaid図を検証し、構文エラーを自動修正してください')
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
#### 4.5.2 技術スタックバージョン監査
|
|
121
|
+
|
|
122
|
+
`stable-version-auditor` エージェントを使用して技術スタックを監査:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
IMPORTANT: architecture.mdに技術スタック(Node.js、Java、Python、PHP等)が記載されている場合、
|
|
126
|
+
stable-version-auditorエージェントを自動実行してください。
|
|
127
|
+
- 検出: バージョン指定を抽出
|
|
128
|
+
- 監査: EOLリスクを評価
|
|
129
|
+
- 推奨: 最新LTS/安定版を提案
|
|
130
|
+
- 報告: アップグレード推奨をユーザーに通知
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**実行タイミング**: architecture.md保存直後
|
|
134
|
+
|
|
135
|
+
**エージェント呼び出し**:
|
|
136
|
+
```
|
|
137
|
+
Task(subagent_type='stable-version-auditor', prompt='docs/michi/$1/overview/architecture.md に記載された技術スタックのバージョンを監査し、EOLリスクを評価してください')
|
|
138
|
+
```
|
|
139
|
+
|
|
97
140
|
### Step 5: メタデータ更新(spec.json)
|
|
98
141
|
- `docs/michi/$1/spec.json` を読み込み
|
|
99
142
|
- phase を `"design-generated"` に更新
|
|
@@ -208,7 +251,10 @@ sequenceDiagram
|
|
|
208
251
|
|
|
209
252
|
1. **生成された設計書のパス**: `docs/michi/{project}/overview/architecture.md`
|
|
210
253
|
2. **分析したリポジトリの一覧**: サービス名と技術スタックの要約
|
|
211
|
-
3.
|
|
254
|
+
3. **品質検証結果**:
|
|
255
|
+
- Mermaid図の検証結果
|
|
256
|
+
- 技術スタックバージョン監査結果
|
|
257
|
+
4. **次のステップ**:
|
|
212
258
|
- 設計書の確認
|
|
213
259
|
- Confluence同期
|
|
214
260
|
- 各リポジトリでの個別実装
|
|
@@ -230,10 +276,27 @@ sequenceDiagram
|
|
|
230
276
|
- **データベース**: PostgreSQL(サービスごとにDB分離)
|
|
231
277
|
- **デプロイ**: Kubernetes(Pod自動スケーリング)
|
|
232
278
|
|
|
279
|
+
### 品質検証結果
|
|
280
|
+
|
|
281
|
+
#### Mermaid図検証
|
|
282
|
+
✅ 検証完了 - 構文エラーなし
|
|
283
|
+
または
|
|
284
|
+
⚠️ 2件の構文エラーを自動修正しました:
|
|
285
|
+
- L15: C4モデルのタイトル記法エラー → 修正済み
|
|
286
|
+
- L45: シーケンス図の矢印記法エラー → 修正済み
|
|
287
|
+
|
|
288
|
+
#### 技術スタックバージョン監査
|
|
289
|
+
✅ すべて最新LTS/安定版を使用
|
|
290
|
+
または
|
|
291
|
+
⚠️ バージョン更新を推奨:
|
|
292
|
+
- Node.js 16.x → 20.x (LTS) - EOL: 2023-09-11(EOL済み)
|
|
293
|
+
- Python 3.9 → 3.11 - EOL 6ヶ月以内
|
|
294
|
+
|
|
233
295
|
### 次のステップ
|
|
234
296
|
1. 設計書を確認: `docs/michi/{project}/overview/architecture.md`
|
|
235
|
-
2.
|
|
236
|
-
3.
|
|
297
|
+
2. 技術スタック更新(必要に応じて)
|
|
298
|
+
3. Confluenceに同期: `michi multi-repo:confluence-sync {project} --doc-type architecture`
|
|
299
|
+
4. 各リポジトリで実装を開始:
|
|
237
300
|
- `/kiro:spec-init` で個別仕様を作成
|
|
238
301
|
- または直接実装を開始
|
|
239
302
|
```
|
|
@@ -246,7 +309,7 @@ sequenceDiagram
|
|
|
246
309
|
エラー: 要件定義書が見つかりません: `docs/michi/{project}/overview/requirements.md`
|
|
247
310
|
|
|
248
311
|
先に要件定義書を生成してください:
|
|
249
|
-
/
|
|
312
|
+
/michi-multi-repo:spec-requirements {project}
|
|
250
313
|
```
|
|
251
314
|
|
|
252
315
|
- **プロジェクト未登録**:
|
|
@@ -290,7 +353,7 @@ sequenceDiagram
|
|
|
290
353
|
4. **CI/CD設定**: `michi multi-repo:ci-status {project}` でCI結果を監視
|
|
291
354
|
|
|
292
355
|
**修正が必要な場合**:
|
|
293
|
-
- フィードバックを提供し、`/
|
|
356
|
+
- フィードバックを提供し、`/michi-multi-repo:spec-design $1` を再実行
|
|
294
357
|
- `-y` フラグで自動上書き可能
|
|
295
358
|
|
|
296
359
|
think hard
|
|
@@ -24,7 +24,7 @@ argument-hint: "<project-description>" --jira <JIRA_KEY> --confluence-space <SPA
|
|
|
24
24
|
|
|
25
25
|
引数の形式:
|
|
26
26
|
```
|
|
27
|
-
/
|
|
27
|
+
/michi-multi-repo:spec-init "<プロジェクト説明>" --jira <JIRA_KEY> --confluence-space <SPACE>
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
パラメータ:
|
|
@@ -171,12 +171,12 @@ docs/michi/{project-name}/
|
|
|
171
171
|
|
|
172
172
|
2. **AI要件定義書を生成**:
|
|
173
173
|
\`\`\`bash
|
|
174
|
-
/
|
|
174
|
+
/michi-multi-repo:spec-requirements {project}
|
|
175
175
|
\`\`\`
|
|
176
176
|
|
|
177
177
|
3. **AI設計書を生成**:
|
|
178
178
|
\`\`\`bash
|
|
179
|
-
/
|
|
179
|
+
/michi-multi-repo:spec-design {project}
|
|
180
180
|
\`\`\`
|
|
181
181
|
|
|
182
182
|
4. **Confluenceに同期**:
|
|
@@ -194,10 +194,10 @@ docs/michi/{project-name}/
|
|
|
194
194
|
エラー: 必須パラメータが不足しています。
|
|
195
195
|
|
|
196
196
|
使用方法:
|
|
197
|
-
/
|
|
197
|
+
/michi-multi-repo:spec-init "<プロジェクト説明>" --jira <JIRA_KEY> --confluence-space <SPACE>
|
|
198
198
|
|
|
199
199
|
例:
|
|
200
|
-
/
|
|
200
|
+
/michi-multi-repo:spec-init "マイクロサービスでECサイト構築" --jira MSV --confluence-space MSV
|
|
201
201
|
```
|
|
202
202
|
|
|
203
203
|
- **JIRAキーが不正**:
|
|
@@ -217,7 +217,7 @@ docs/michi/{project-name}/
|
|
|
217
217
|
|
|
218
218
|
Michiプロジェクトのルートディレクトリで実行してください。
|
|
219
219
|
または、次のコマンドで初期設定を行ってください:
|
|
220
|
-
michi
|
|
220
|
+
michi init
|
|
221
221
|
```
|
|
222
222
|
|
|
223
223
|
### Fallback Strategy
|
package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-requirements.md
RENAMED
|
@@ -137,7 +137,7 @@ graph TB
|
|
|
137
137
|
1. **生成された要件定義書のパス**: `docs/michi/{project}/overview/requirements.md`
|
|
138
138
|
2. **含まれるリポジトリ/サービスの一覧**: サービス名と役割の要約
|
|
139
139
|
3. **次のステップ**:
|
|
140
|
-
- `/
|
|
140
|
+
- `/michi-multi-repo:spec-design $1` で設計書を生成
|
|
141
141
|
- `michi multi-repo:confluence-sync $1 --doc-type requirements` でConfluenceに同期
|
|
142
142
|
|
|
143
143
|
**出力形式**:
|
|
@@ -154,7 +154,7 @@ graph TB
|
|
|
154
154
|
|
|
155
155
|
### 次のステップ
|
|
156
156
|
1. 要件定義書を確認: `docs/michi/{project}/overview/requirements.md`
|
|
157
|
-
2. 設計書を生成: `/
|
|
157
|
+
2. 設計書を生成: `/michi-multi-repo:spec-design {project}`
|
|
158
158
|
3. Confluenceに同期: `michi multi-repo:confluence-sync {project} --doc-type requirements`
|
|
159
159
|
```
|
|
160
160
|
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Multi-Repoプロジェクトのクロスリポジトリ仕様レビューを実行
|
|
3
|
+
allowed-tools: Task, Bash, Read, Write, Edit, Glob, Grep
|
|
4
|
+
argument-hint: <project-name> [--focus api|data|event|deps|test|all]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Multi-Repo Cross-Repository Review
|
|
8
|
+
|
|
9
|
+
<background_information>
|
|
10
|
+
- **Mission**: 複数リポジトリにまたがる仕様の整合性を検証
|
|
11
|
+
- **Success Criteria**:
|
|
12
|
+
- 全リポジトリの仕様を収集・分析
|
|
13
|
+
- API契約、データモデル、イベントスキーマの整合性を検証
|
|
14
|
+
- 品質ゲート判定を実行
|
|
15
|
+
- 修正が必要な箇所を明確に報告
|
|
16
|
+
</background_information>
|
|
17
|
+
|
|
18
|
+
<instructions>
|
|
19
|
+
## Core Task
|
|
20
|
+
Multi-Repoプロジェクト **$1** の全リポジトリを対象に、クロスリポジトリレビューを実行します。
|
|
21
|
+
|
|
22
|
+
## 引数解析
|
|
23
|
+
|
|
24
|
+
引数の形式:
|
|
25
|
+
```
|
|
26
|
+
/michi-multi-repo:spec-review <project-name> [--focus <focus>]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
パラメータ:
|
|
30
|
+
- **$1**: プロジェクト名(必須)
|
|
31
|
+
- **--focus**: レビュー観点(オプション、デフォルト: all)
|
|
32
|
+
- `api`: API契約整合性のみ
|
|
33
|
+
- `data`: データモデル整合性のみ
|
|
34
|
+
- `event`: イベントスキーマ整合性のみ
|
|
35
|
+
- `deps`: 依存関係整合性のみ
|
|
36
|
+
- `test`: テスト仕様整合性のみ
|
|
37
|
+
- `all`: 全観点(デフォルト)
|
|
38
|
+
|
|
39
|
+
## Execution Steps
|
|
40
|
+
|
|
41
|
+
### Step 1: コンテキスト読み込み
|
|
42
|
+
|
|
43
|
+
1. `.michi/config.json` からプロジェクト情報取得
|
|
44
|
+
- プロジェクト名
|
|
45
|
+
- 登録リポジトリ一覧
|
|
46
|
+
|
|
47
|
+
2. 各リポジトリの `localPath` を取得
|
|
48
|
+
|
|
49
|
+
3. 親プロジェクトの仕様を読み込み
|
|
50
|
+
- `docs/michi/$1/overview/requirements.md`
|
|
51
|
+
- `docs/michi/$1/overview/architecture.md`
|
|
52
|
+
|
|
53
|
+
### Step 2: localPath 検証
|
|
54
|
+
|
|
55
|
+
各リポジトリについて以下を確認:
|
|
56
|
+
- ディレクトリが存在するか
|
|
57
|
+
- Gitリポジトリか
|
|
58
|
+
- 仕様ファイルが存在するか
|
|
59
|
+
|
|
60
|
+
**検証失敗時の対応**:
|
|
61
|
+
- localPath未設定: 警告を出力し、スキップ
|
|
62
|
+
- ディレクトリ不存在: エラーを出力し、スキップ
|
|
63
|
+
- 仕様ファイル不存在: 警告を出力し、利用可能情報でレビュー続行
|
|
64
|
+
|
|
65
|
+
### Step 3: サブエージェント起動
|
|
66
|
+
|
|
67
|
+
cross-repo-reviewerサブエージェントを使用して、以下のプロジェクトをレビューしてください:
|
|
68
|
+
|
|
69
|
+
- PROJECT_NAME: $1
|
|
70
|
+
- REPOSITORIES:
|
|
71
|
+
- {repo1.name}: {repo1.localPath}
|
|
72
|
+
- {repo2.name}: {repo2.localPath}
|
|
73
|
+
- ...
|
|
74
|
+
- REVIEW_FOCUS: {指定されたfocus}
|
|
75
|
+
|
|
76
|
+
品質ゲート判定結果をレポートしてください。
|
|
77
|
+
|
|
78
|
+
### Step 4: レビューレポート出力
|
|
79
|
+
|
|
80
|
+
出力先: `docs/michi/$1/reviews/cross-repo-review-{timestamp}.md`
|
|
81
|
+
|
|
82
|
+
レポート形式:
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
## Multi-Repo Cross-Repository Review Report
|
|
86
|
+
|
|
87
|
+
**プロジェクト**: $1
|
|
88
|
+
**レビュー日時**: {timestamp}
|
|
89
|
+
**対象リポジトリ**: {count}件
|
|
90
|
+
**レビュー観点**: {focus}
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### サマリー
|
|
95
|
+
|
|
96
|
+
| カテゴリ | ステータス | 問題件数 |
|
|
97
|
+
|---------|----------|---------|
|
|
98
|
+
| API契約整合性 | ✅/⚠️/❌ | N件 |
|
|
99
|
+
| データモデル整合性 | ✅/⚠️/❌ | N件 |
|
|
100
|
+
| イベントスキーマ整合性 | ✅/⚠️/❌ | N件 |
|
|
101
|
+
| 依存関係整合性 | ✅/⚠️/❌ | N件 |
|
|
102
|
+
| テスト仕様整合性 | ✅/⚠️/❌ | N件 |
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### 検出された問題
|
|
107
|
+
|
|
108
|
+
#### 🔴 BLOCK (修正必須)
|
|
109
|
+
|
|
110
|
+
(cross-repo-reviewerが検出した重大な不整合)
|
|
111
|
+
|
|
112
|
+
#### 🟡 WARN (修正推奨)
|
|
113
|
+
|
|
114
|
+
(cross-repo-reviewerが検出した軽微な不整合)
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### 品質ゲート判定
|
|
119
|
+
|
|
120
|
+
**判定**: ❌ 不合格 / ⚠️ 条件付き合格 / ✅ 合格
|
|
121
|
+
|
|
122
|
+
**理由**: {判定理由}
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
### 次のアクション
|
|
127
|
+
|
|
128
|
+
1. BLOCK問題の修正
|
|
129
|
+
2. `/michi-multi-repo:spec-review $1` を再実行
|
|
130
|
+
3. 合格後、各リポジトリで実装を開始
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Step 5: 判定結果の表示
|
|
134
|
+
|
|
135
|
+
**合格時(✅ PASS)**:
|
|
136
|
+
```markdown
|
|
137
|
+
🎉 品質ゲート合格
|
|
138
|
+
|
|
139
|
+
全リポジトリの仕様が整合性基準を満たしています。
|
|
140
|
+
|
|
141
|
+
### 次のステップ
|
|
142
|
+
|
|
143
|
+
1. 各リポジトリでタスク生成:
|
|
144
|
+
各リポジトリで `/kiro:spec-tasks {feature}` を実行
|
|
145
|
+
|
|
146
|
+
2. 全リポジトリで実装を開始:
|
|
147
|
+
`/michi-multi-repo:impl-all $1`
|
|
148
|
+
|
|
149
|
+
3. CI/CD設定:
|
|
150
|
+
`michi multi-repo:ci-status $1` でCI結果を監視
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
**条件付き合格時(⚠️ WARN)**:
|
|
154
|
+
```markdown
|
|
155
|
+
⚠️ 品質ゲート条件付き合格
|
|
156
|
+
|
|
157
|
+
WARN問題が検出されましたが、修正は任意です。
|
|
158
|
+
|
|
159
|
+
### 検出された問題
|
|
160
|
+
- {WARN問題のリスト}
|
|
161
|
+
|
|
162
|
+
### 次のステップ(選択可能)
|
|
163
|
+
|
|
164
|
+
A) WARN問題を修正してから実装開始(推奨)
|
|
165
|
+
- 各リポジトリのdesign.mdを修正
|
|
166
|
+
- `/michi-multi-repo:spec-review $1` を再実行
|
|
167
|
+
|
|
168
|
+
B) そのまま実装開始
|
|
169
|
+
- `/michi-multi-repo:impl-all $1`
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
**不合格時(❌ BLOCK)**:
|
|
173
|
+
```markdown
|
|
174
|
+
❌ 品質ゲート不合格
|
|
175
|
+
|
|
176
|
+
BLOCK問題が検出されました。修正が必須です。
|
|
177
|
+
|
|
178
|
+
### BLOCK問題
|
|
179
|
+
- {BLOCK問題のリスト}
|
|
180
|
+
|
|
181
|
+
### 対処方法
|
|
182
|
+
|
|
183
|
+
1. 該当リポジトリのdesign.mdを修正
|
|
184
|
+
2. `/michi-multi-repo:spec-review $1` を再実行
|
|
185
|
+
3. 合格後に実装を開始
|
|
186
|
+
|
|
187
|
+
**注意**: BLOCK問題を未解決のまま実装を開始すると、サービス間通信が失敗する可能性があります。
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Important Constraints
|
|
191
|
+
- 読み取り操作のみ(各リポジトリへの書き込みは行わない)
|
|
192
|
+
- localPath未設定のリポジトリはスキップ(警告を出力)
|
|
193
|
+
- 大規模リポジトリの場合は主要ファイルのみ分析
|
|
194
|
+
|
|
195
|
+
</instructions>
|
|
196
|
+
|
|
197
|
+
## Tool Guidance
|
|
198
|
+
- **Task**: cross-repo-reviewerサブエージェント起動に使用
|
|
199
|
+
- **Read**: プロジェクト仕様、各リポジトリ仕様の読み込み
|
|
200
|
+
- **Write**: レビューレポートの出力
|
|
201
|
+
- **Glob/Grep**: 仕様ファイルの検索
|
|
202
|
+
|
|
203
|
+
## Output Description
|
|
204
|
+
|
|
205
|
+
日本語で以下の情報を出力してください:
|
|
206
|
+
|
|
207
|
+
1. **レビュー対象リポジトリ一覧**: 各リポジトリのlocalPathと仕様状態
|
|
208
|
+
2. **検出された問題**: BLOCK/WARN分類と詳細
|
|
209
|
+
3. **品質ゲート判定結果**: 合格/不合格と理由
|
|
210
|
+
4. **次のアクション**: 修正が必要な場合の具体的な手順
|
|
211
|
+
|
|
212
|
+
## Safety & Fallback
|
|
213
|
+
|
|
214
|
+
### Error Scenarios
|
|
215
|
+
|
|
216
|
+
- **プロジェクト未登録**:
|
|
217
|
+
```
|
|
218
|
+
エラー: プロジェクト '$1' が見つかりません。
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
- **親プロジェクト仕様未作成**:
|
|
222
|
+
```
|
|
223
|
+
エラー: 親プロジェクトの設計書が見つかりません: docs/michi/$1/overview/architecture.md
|
|
224
|
+
|
|
225
|
+
先に親プロジェクトの設計を作成してください:
|
|
226
|
+
/michi-multi-repo:spec-design $1
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
- **localPath未設定**:
|
|
230
|
+
```
|
|
231
|
+
警告: リポジトリ '{name}' の localPath が未設定です。スキップします。
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
- **仕様ファイル不存在**:
|
|
235
|
+
```
|
|
236
|
+
警告: リポジトリ '{name}' に仕様ファイルがありません。
|
|
237
|
+
|
|
238
|
+
仕様を展開してください:
|
|
239
|
+
/michi-multi-repo:propagate-specs $1
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Fallback Strategy
|
|
243
|
+
- localPath未設定: 該当リポジトリをスキップし、他のリポジトリでレビュー続行
|
|
244
|
+
- 仕様ファイル不存在: 警告を出力し、利用可能な情報でレビュー
|
|
245
|
+
- 通信エラー: リトライ後、該当リポジトリをスキップ
|
|
246
|
+
|
|
247
|
+
think hard
|