@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
|
@@ -22,6 +22,7 @@ Multi-Repo機能は、1つのプロジェクトで複数のGitHubリポジトリ
|
|
|
22
22
|
3. **テスト実行**: プロジェクト単位でテストスクリプトを実行
|
|
23
23
|
4. **Confluence同期**: プロジェクトドキュメントをConfluenceに自動同期
|
|
24
24
|
5. **一覧表示**: プロジェクトとリポジトリの情報を一覧表示
|
|
25
|
+
6. **サブエージェント連携**: 各リポジトリで仕様展開・レビュー・実装を並行実行(NEW)
|
|
25
26
|
|
|
26
27
|
## セットアップ
|
|
27
28
|
|
|
@@ -71,6 +72,129 @@ ATLASSIAN_API_TOKEN=your_atlassian_api_token
|
|
|
71
72
|
3. トークン名を入力して作成
|
|
72
73
|
4. トークンをコピーして環境変数に設定
|
|
73
74
|
|
|
75
|
+
### カスタムコマンド(スキル)の配布
|
|
76
|
+
|
|
77
|
+
Multi-Repo AI支援コマンドを使用するには、プロジェクトに `.claude/commands/` を配布する必要があります。
|
|
78
|
+
|
|
79
|
+
#### 初回セットアップ時
|
|
80
|
+
|
|
81
|
+
プロジェクトで初めて Michi を使用する場合、使用する環境に応じて以下のコマンドを実行してください:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# Claude Code 環境の場合
|
|
85
|
+
michi init --claude
|
|
86
|
+
|
|
87
|
+
# Claude Code Subagents 環境の場合
|
|
88
|
+
michi init --claude-agent
|
|
89
|
+
|
|
90
|
+
# Cursor 環境の場合
|
|
91
|
+
michi init --cursor
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
#### 環境オプションの選択
|
|
95
|
+
|
|
96
|
+
| オプション | 環境 | ルールディレクトリ | 用途 |
|
|
97
|
+
|-----------|------|-------------------|------|
|
|
98
|
+
| `--claude` | Claude Code | `.claude/rules/` | 通常の Claude Code 使用 |
|
|
99
|
+
| `--claude-agent` | Claude Code Subagents | `.claude/agents/` | Claude Code Subagents 使用 |
|
|
100
|
+
| `--cursor` | Cursor IDE | `.cursor/rules/` | Cursor IDE 使用 |
|
|
101
|
+
|
|
102
|
+
**注意**: どの環境でも、コマンドディレクトリは `.claude/commands/` に統一されています(v0.8.7以降)。
|
|
103
|
+
|
|
104
|
+
#### ディレクトリ構造
|
|
105
|
+
|
|
106
|
+
**Claude Code (`--claude`) の場合**:
|
|
107
|
+
```
|
|
108
|
+
.claude/
|
|
109
|
+
├── rules/ # Michi のルールファイル
|
|
110
|
+
└── commands/ # カスタムコマンド(スキル)
|
|
111
|
+
├── kiro/ # kiro: 単一リポジトリ用コマンド
|
|
112
|
+
├── michi/ # michi: Michi拡張コマンド
|
|
113
|
+
└── michi-multi-repo/ # Multi-Repo AI支援コマンド
|
|
114
|
+
├── spec-init.md
|
|
115
|
+
├── spec-requirements.md
|
|
116
|
+
└── spec-design.md
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Claude Code Subagents (`--claude-agent`) の場合**:
|
|
120
|
+
```
|
|
121
|
+
.claude/
|
|
122
|
+
├── agents/ # Subagent 用ルールファイル
|
|
123
|
+
└── commands/ # カスタムコマンド(スキル)
|
|
124
|
+
├── kiro/
|
|
125
|
+
├── michi/
|
|
126
|
+
└── michi-multi-repo/
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Cursor IDE (`--cursor`) の場合**:
|
|
130
|
+
```
|
|
131
|
+
.cursor/
|
|
132
|
+
├── rules/ # Cursor 用ルールファイル
|
|
133
|
+
└── commands/ # カスタムコマンド(スキル)
|
|
134
|
+
├── kiro/
|
|
135
|
+
├── michi/
|
|
136
|
+
└── michi-multi-repo/
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
#### 既存プロジェクトへの追加
|
|
140
|
+
|
|
141
|
+
既に `.claude/` や `.cursor/` ディレクトリが存在するプロジェクトの場合も、`michi init` を再実行することで、不足しているコマンドが追加されます:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# 使用している環境に応じて選択
|
|
145
|
+
michi init --claude # Claude Code 環境
|
|
146
|
+
michi init --claude-agent # Claude Code Subagents 環境
|
|
147
|
+
michi init --cursor # Cursor 環境
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**注意**:
|
|
151
|
+
- 既存のファイルは上書きされます。カスタマイズしたファイルがある場合は、事前にバックアップを取ってください
|
|
152
|
+
- 環境オプション(`--claude`, `--claude-agent`, `--cursor`)は、初回セットアップ時と同じものを使用してください
|
|
153
|
+
|
|
154
|
+
#### コマンドが正しく配布されたか確認
|
|
155
|
+
|
|
156
|
+
以下のコマンドで、`.claude/commands/` の構造を確認できます:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
ls -la .claude/commands/
|
|
160
|
+
# 以下が表示されること:
|
|
161
|
+
# - kiro/
|
|
162
|
+
# - michi/
|
|
163
|
+
# - michi-multi-repo/
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
#### Multi-Repo AIコマンドの利用
|
|
167
|
+
|
|
168
|
+
配布後、Claude Code で以下のコマンドが利用可能になります:
|
|
169
|
+
|
|
170
|
+
| コマンド | 説明 |
|
|
171
|
+
|---------|------|
|
|
172
|
+
| `/michi-multi-repo:spec-init` | プロジェクト初期化(プロジェクト説明から自動生成) |
|
|
173
|
+
| `/michi-multi-repo:spec-requirements` | 要件定義書の自動生成 |
|
|
174
|
+
| `/michi-multi-repo:spec-design` | 設計書の自動生成 |
|
|
175
|
+
| `/michi-multi-repo:propagate-specs` | 各リポジトリへ仕様を展開(並行実行)(NEW) |
|
|
176
|
+
| `/michi-multi-repo:spec-review` | クロスリポジトリレビュー(NEW) |
|
|
177
|
+
| `/michi-multi-repo:impl-all` | 全リポジトリで実装を並行実行(NEW) |
|
|
178
|
+
|
|
179
|
+
**使用例**:
|
|
180
|
+
```bash
|
|
181
|
+
# Chirper プロジェクトを初期化
|
|
182
|
+
/michi-multi-repo:spec-init "Twitter風SNSアプリケーション Chirper をオニオンアーキテクチャで構築" --jira PC --confluence-space MICHI
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
#### トラブルシューティング
|
|
186
|
+
|
|
187
|
+
**Q: コマンドが認識されない**
|
|
188
|
+
|
|
189
|
+
A: 以下を確認してください:
|
|
190
|
+
1. `.claude/commands/michi-multi-repo/` ディレクトリが存在するか
|
|
191
|
+
2. `michi init --claude` を実行したか
|
|
192
|
+
3. Claude Code を再起動してみる
|
|
193
|
+
|
|
194
|
+
**Q: 古いコマンド名 (`/michi_multi_repo:*`) を使っていた**
|
|
195
|
+
|
|
196
|
+
A: v0.8.7 以降では `/michi-multi-repo:*` に変更されました。詳細は [migration-guide.md](migration-guide.md) を参照してください。
|
|
197
|
+
|
|
74
198
|
## 基本的な使い方
|
|
75
199
|
|
|
76
200
|
### 1. プロジェクトの初期化
|
|
@@ -857,6 +981,104 @@ mv .michi/config.json .michi/config.json.broken
|
|
|
857
981
|
michi config:validate
|
|
858
982
|
```
|
|
859
983
|
|
|
984
|
+
### 問題7: localPath未設定エラー(NEW)
|
|
985
|
+
|
|
986
|
+
**エラーメッセージ**:
|
|
987
|
+
```
|
|
988
|
+
⚠️ 警告: リポジトリ 'frontend' の localPath が未設定です。スキップします。
|
|
989
|
+
```
|
|
990
|
+
|
|
991
|
+
**原因**:
|
|
992
|
+
サブエージェント連携コマンド(`propagate-specs`, `spec-review`, `impl-all`)を使用しようとしたが、リポジトリに `localPath` が設定されていない。
|
|
993
|
+
|
|
994
|
+
**解決方法**:
|
|
995
|
+
|
|
996
|
+
1. リポジトリに `localPath` を設定する:
|
|
997
|
+
|
|
998
|
+
```bash
|
|
999
|
+
michi multi-repo:add-repo <project-name> \
|
|
1000
|
+
--name <repo-name> \
|
|
1001
|
+
--url <github-url> \
|
|
1002
|
+
--branch <branch> \
|
|
1003
|
+
--localPath <absolute-path>
|
|
1004
|
+
```
|
|
1005
|
+
|
|
1006
|
+
**例**:
|
|
1007
|
+
```bash
|
|
1008
|
+
michi multi-repo:add-repo my-microservices \
|
|
1009
|
+
--name frontend \
|
|
1010
|
+
--url https://github.com/myorg/frontend \
|
|
1011
|
+
--branch main \
|
|
1012
|
+
--localPath /Users/user/projects/frontend
|
|
1013
|
+
```
|
|
1014
|
+
|
|
1015
|
+
2. リポジトリがローカルにクローンされていることを確認:
|
|
1016
|
+
|
|
1017
|
+
```bash
|
|
1018
|
+
ls -la /Users/user/projects/frontend
|
|
1019
|
+
# .git ディレクトリが存在することを確認
|
|
1020
|
+
```
|
|
1021
|
+
|
|
1022
|
+
3. コマンドを再実行
|
|
1023
|
+
|
|
1024
|
+
### 問題8: 品質ゲート不合格エラー(NEW)
|
|
1025
|
+
|
|
1026
|
+
**エラーメッセージ**:
|
|
1027
|
+
```
|
|
1028
|
+
❌ エラー: 品質ゲート不合格
|
|
1029
|
+
|
|
1030
|
+
BLOCK問題が未解決です。実装を開始できません。
|
|
1031
|
+
|
|
1032
|
+
次のアクション:
|
|
1033
|
+
1. BLOCK問題を修正
|
|
1034
|
+
2. `/michi-multi-repo:spec-review my-project` を再実行
|
|
1035
|
+
3. 合格後に再度このコマンドを実行
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
**原因**:
|
|
1039
|
+
`/michi-multi-repo:spec-review` でBLOCK問題が検出され、品質ゲートが不合格になっている。
|
|
1040
|
+
|
|
1041
|
+
**解決方法**:
|
|
1042
|
+
|
|
1043
|
+
1. レビューレポートを確認:
|
|
1044
|
+
|
|
1045
|
+
```bash
|
|
1046
|
+
# 最新のレビューレポートを確認
|
|
1047
|
+
ls -lt docs/michi/<project>/reviews/
|
|
1048
|
+
cat docs/michi/<project>/reviews/cross-repo-review-*.md
|
|
1049
|
+
```
|
|
1050
|
+
|
|
1051
|
+
2. BLOCK問題を特定:
|
|
1052
|
+
|
|
1053
|
+
```markdown
|
|
1054
|
+
#### 🔴 BLOCK (修正必須)
|
|
1055
|
+
|
|
1056
|
+
##### Issue 1: [API-001] エンドポイント不整合
|
|
1057
|
+
- **発生箇所**: Frontend → Backend
|
|
1058
|
+
- **詳細**: `POST /api/v1/users` が Backend 設計書に未定義
|
|
1059
|
+
- **影響**: ユーザー作成フローが動作不可
|
|
1060
|
+
- **推奨アクション**: Backend の design.md にエンドポイント定義を追加
|
|
1061
|
+
```
|
|
1062
|
+
|
|
1063
|
+
3. 該当リポジトリの設計書を修正:
|
|
1064
|
+
|
|
1065
|
+
```bash
|
|
1066
|
+
cd /path/to/backend
|
|
1067
|
+
# design.md を編集してエンドポイント定義を追加
|
|
1068
|
+
```
|
|
1069
|
+
|
|
1070
|
+
4. レビューを再実行:
|
|
1071
|
+
|
|
1072
|
+
```bash
|
|
1073
|
+
/michi-multi-repo:spec-review my-project
|
|
1074
|
+
```
|
|
1075
|
+
|
|
1076
|
+
5. 合格後、実装コマンドを再実行:
|
|
1077
|
+
|
|
1078
|
+
```bash
|
|
1079
|
+
/michi-multi-repo:impl-all my-project
|
|
1080
|
+
```
|
|
1081
|
+
|
|
860
1082
|
## FAQ
|
|
861
1083
|
|
|
862
1084
|
### Q1: Multi-Repo機能はどのようなプロジェクトに適していますか?
|
|
@@ -912,7 +1134,7 @@ Multi-Repoプロジェクトでは、AI支援による要件定義・設計書
|
|
|
912
1134
|
|
|
913
1135
|
### 前提条件
|
|
914
1136
|
|
|
915
|
-
- プロジェクトが初期化されていること(`/
|
|
1137
|
+
- プロジェクトが初期化されていること(`/michi-multi-repo:spec-init` または `michi multi-repo:init`)
|
|
916
1138
|
- 1つ以上のリポジトリが登録されていること(`michi multi-repo:add-repo`)
|
|
917
1139
|
|
|
918
1140
|
### 6. AIプロジェクト初期化(NEW)
|
|
@@ -920,12 +1142,12 @@ Multi-Repoプロジェクトでは、AI支援による要件定義・設計書
|
|
|
920
1142
|
Multi-Repoプロジェクトを AI支援で初期化します。`michi multi-repo:init` の代替コマンドです。
|
|
921
1143
|
|
|
922
1144
|
```bash
|
|
923
|
-
/
|
|
1145
|
+
/michi-multi-repo:spec-init "<プロジェクト説明>" --jira <JIRA_KEY> --confluence-space <SPACE>
|
|
924
1146
|
```
|
|
925
1147
|
|
|
926
1148
|
**例**:
|
|
927
1149
|
```bash
|
|
928
|
-
/
|
|
1150
|
+
/michi-multi-repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
|
|
929
1151
|
```
|
|
930
1152
|
|
|
931
1153
|
**機能**:
|
|
@@ -951,12 +1173,12 @@ Multi-Repoプロジェクトを AI支援で初期化します。`michi multi-rep
|
|
|
951
1173
|
プロジェクトの要件定義書をAI支援で自動生成します。
|
|
952
1174
|
|
|
953
1175
|
```bash
|
|
954
|
-
/
|
|
1176
|
+
/michi-multi-repo:spec-requirements <project-name>
|
|
955
1177
|
```
|
|
956
1178
|
|
|
957
1179
|
**例**:
|
|
958
1180
|
```bash
|
|
959
|
-
/
|
|
1181
|
+
/michi-multi-repo:spec-requirements my-microservices
|
|
960
1182
|
```
|
|
961
1183
|
|
|
962
1184
|
**生成される内容**:
|
|
@@ -973,12 +1195,12 @@ Multi-Repoプロジェクトを AI支援で初期化します。`michi multi-rep
|
|
|
973
1195
|
プロジェクトの技術設計書をAI支援で自動生成します。
|
|
974
1196
|
|
|
975
1197
|
```bash
|
|
976
|
-
/
|
|
1198
|
+
/michi-multi-repo:spec-design <project-name> [-y]
|
|
977
1199
|
```
|
|
978
1200
|
|
|
979
1201
|
**例**:
|
|
980
1202
|
```bash
|
|
981
|
-
/
|
|
1203
|
+
/michi-multi-repo:spec-design my-microservices
|
|
982
1204
|
```
|
|
983
1205
|
|
|
984
1206
|
**生成される内容**:
|
|
@@ -998,7 +1220,7 @@ Multi-Repoプロジェクトを AI支援で初期化します。`michi multi-rep
|
|
|
998
1220
|
|
|
999
1221
|
```bash
|
|
1000
1222
|
# 1. AI初期化(NEW - michi multi-repo:init の代替)
|
|
1001
|
-
/
|
|
1223
|
+
/michi-multi-repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
|
|
1002
1224
|
|
|
1003
1225
|
# 2. リポジトリ登録
|
|
1004
1226
|
michi multi-repo:add-repo my-microservices --name frontend --url https://github.com/myorg/frontend --branch main
|
|
@@ -1006,10 +1228,10 @@ michi multi-repo:add-repo my-microservices --name backend --url https://github.c
|
|
|
1006
1228
|
michi multi-repo:add-repo my-microservices --name database --url https://github.com/myorg/db-schema --branch main
|
|
1007
1229
|
|
|
1008
1230
|
# 3. AI要件定義書生成(NEW)
|
|
1009
|
-
/
|
|
1231
|
+
/michi-multi-repo:spec-requirements my-microservices
|
|
1010
1232
|
|
|
1011
1233
|
# 4. AI設計書生成(NEW)
|
|
1012
|
-
/
|
|
1234
|
+
/michi-multi-repo:spec-design my-microservices
|
|
1013
1235
|
|
|
1014
1236
|
# 5. Confluence同期
|
|
1015
1237
|
michi multi-repo:confluence-sync my-microservices --doc-type requirements
|
|
@@ -1019,6 +1241,347 @@ michi multi-repo:confluence-sync my-microservices --doc-type architecture
|
|
|
1019
1241
|
michi multi-repo:ci-status my-microservices
|
|
1020
1242
|
```
|
|
1021
1243
|
|
|
1244
|
+
## サブエージェント連携による並行開発(NEW)
|
|
1245
|
+
|
|
1246
|
+
Multi-Repoプロジェクトでは、サブエージェント連携により各リポジトリで仕様展開・レビュー・実装を並行実行できます。
|
|
1247
|
+
|
|
1248
|
+
### 概要
|
|
1249
|
+
|
|
1250
|
+
サブエージェント連携は、親プロジェクトの設計書を基に、各リポジトリで自動的に仕様コマンドを実行する機能です。
|
|
1251
|
+
|
|
1252
|
+
**主な特徴**:
|
|
1253
|
+
- **並行実行**: 最大3リポジトリを同時に処理(効率化)
|
|
1254
|
+
- **整合性チェック**: API契約、データモデル、イベントスキーマの自動検証
|
|
1255
|
+
- **品質ゲート**: BLOCK/WARN/PASSによる品質判定
|
|
1256
|
+
- **チェックポイント**: 失敗時の再開をサポート
|
|
1257
|
+
|
|
1258
|
+
**対象ユーザー**:
|
|
1259
|
+
- マイクロサービスアーキテクチャで開発しているチーム
|
|
1260
|
+
- 複数リポジトリの仕様を統一的に管理したいチーム
|
|
1261
|
+
- クロスリポジトリの整合性を保ちたいチーム
|
|
1262
|
+
|
|
1263
|
+
### 前提条件
|
|
1264
|
+
|
|
1265
|
+
サブエージェント連携を使用するには、各リポジトリに **localPath** を設定する必要があります。
|
|
1266
|
+
|
|
1267
|
+
#### localPath設定方法
|
|
1268
|
+
|
|
1269
|
+
リポジトリ登録時に `--localPath` オプションを追加します:
|
|
1270
|
+
|
|
1271
|
+
```bash
|
|
1272
|
+
michi multi-repo:add-repo <project-name> \
|
|
1273
|
+
--name <repo-name> \
|
|
1274
|
+
--url <github-url> \
|
|
1275
|
+
--branch <branch> \
|
|
1276
|
+
--localPath <absolute-path>
|
|
1277
|
+
```
|
|
1278
|
+
|
|
1279
|
+
**例**:
|
|
1280
|
+
```bash
|
|
1281
|
+
michi multi-repo:add-repo my-microservices \
|
|
1282
|
+
--name frontend \
|
|
1283
|
+
--url https://github.com/myorg/frontend \
|
|
1284
|
+
--branch main \
|
|
1285
|
+
--localPath /Users/user/projects/frontend
|
|
1286
|
+
|
|
1287
|
+
michi multi-repo:add-repo my-microservices \
|
|
1288
|
+
--name backend \
|
|
1289
|
+
--url https://github.com/myorg/backend \
|
|
1290
|
+
--branch main \
|
|
1291
|
+
--localPath /Users/user/projects/backend
|
|
1292
|
+
```
|
|
1293
|
+
|
|
1294
|
+
**重要事項**:
|
|
1295
|
+
- localPathは**絶対パス**で指定してください
|
|
1296
|
+
- 各リポジトリは事前にローカルにクローンしておく必要があります
|
|
1297
|
+
- 指定したブランチにチェックアウトされていることを確認してください
|
|
1298
|
+
|
|
1299
|
+
### ワークフロー全体像
|
|
1300
|
+
|
|
1301
|
+
```
|
|
1302
|
+
親プロジェクト
|
|
1303
|
+
├── 1. spec-init, spec-requirements, spec-design(親プロジェクトで実行)
|
|
1304
|
+
│
|
|
1305
|
+
├── 2. propagate-specs(各リポジトリへ仕様を展開)
|
|
1306
|
+
│ ├── Repository A: /kiro:spec-init, spec-requirements, spec-design
|
|
1307
|
+
│ ├── Repository B: /kiro:spec-init, spec-requirements, spec-design
|
|
1308
|
+
│ └── Repository C: /kiro:spec-init, spec-requirements, spec-design
|
|
1309
|
+
│
|
|
1310
|
+
├── 3. spec-review(クロスリポジトリレビュー)
|
|
1311
|
+
│ ├── API契約整合性チェック
|
|
1312
|
+
│ ├── データモデル整合性チェック
|
|
1313
|
+
│ ├── イベントスキーマ整合性チェック
|
|
1314
|
+
│ └── 品質ゲート判定(BLOCK/WARN/PASS)
|
|
1315
|
+
│
|
|
1316
|
+
└── 4. impl-all(全リポジトリで実装)
|
|
1317
|
+
├── Repository A: /michi:spec-impl(TDD実装)
|
|
1318
|
+
├── Repository B: /michi:spec-impl(TDD実装)
|
|
1319
|
+
└── Repository C: /michi:spec-impl(TDD実装)
|
|
1320
|
+
```
|
|
1321
|
+
|
|
1322
|
+
### 9. 仕様の並行展開
|
|
1323
|
+
|
|
1324
|
+
各リポジトリに親プロジェクトの仕様を展開します。
|
|
1325
|
+
|
|
1326
|
+
```bash
|
|
1327
|
+
/michi-multi-repo:propagate-specs <project-name> [--operation <operation>]
|
|
1328
|
+
```
|
|
1329
|
+
|
|
1330
|
+
**オプション**:
|
|
1331
|
+
- `--operation`: 実行する操作(デフォルト: design)
|
|
1332
|
+
- `init`: michi init + /kiro:spec-init
|
|
1333
|
+
- `requirements`: /kiro:spec-requirements
|
|
1334
|
+
- `design`: /kiro:spec-design
|
|
1335
|
+
- `all`: init → requirements → design を順次実行
|
|
1336
|
+
|
|
1337
|
+
**実行例**:
|
|
1338
|
+
```bash
|
|
1339
|
+
# 各リポジトリで設計書を生成
|
|
1340
|
+
/michi-multi-repo:propagate-specs my-microservices --operation design
|
|
1341
|
+
```
|
|
1342
|
+
|
|
1343
|
+
**実行内容**:
|
|
1344
|
+
1. 各リポジトリのlocalPath検証
|
|
1345
|
+
2. repo-spec-executorサブエージェント起動(最大3並列)
|
|
1346
|
+
3. 各リポジトリで以下を実行:
|
|
1347
|
+
- 作業ディレクトリ移動(cd localPath)
|
|
1348
|
+
- michi init(未初期化の場合)
|
|
1349
|
+
- 指定されたoperationコマンド実行
|
|
1350
|
+
4. 結果集約とレポート
|
|
1351
|
+
|
|
1352
|
+
**出力例**:
|
|
1353
|
+
```
|
|
1354
|
+
🎉 全リポジトリで仕様展開が完了しました
|
|
1355
|
+
|
|
1356
|
+
### 次のステップ
|
|
1357
|
+
|
|
1358
|
+
1. クロスリポジトリレビューを実行:
|
|
1359
|
+
`/michi-multi-repo:spec-review my-microservices`
|
|
1360
|
+
|
|
1361
|
+
2. 合格後、各リポジトリでタスク生成:
|
|
1362
|
+
各リポジトリで `/kiro:spec-tasks {feature}` を実行
|
|
1363
|
+
|
|
1364
|
+
3. 実装を開始:
|
|
1365
|
+
`/michi-multi-repo:impl-all my-microservices`
|
|
1366
|
+
```
|
|
1367
|
+
|
|
1368
|
+
### 10. クロスリポジトリレビュー
|
|
1369
|
+
|
|
1370
|
+
複数リポジトリ間の仕様整合性を検証します。
|
|
1371
|
+
|
|
1372
|
+
```bash
|
|
1373
|
+
/michi-multi-repo:spec-review <project-name> [--focus <focus>]
|
|
1374
|
+
```
|
|
1375
|
+
|
|
1376
|
+
**オプション**:
|
|
1377
|
+
- `--focus`: レビュー観点(デフォルト: all)
|
|
1378
|
+
- `api`: API契約整合性のみ
|
|
1379
|
+
- `data`: データモデル整合性のみ
|
|
1380
|
+
- `event`: イベントスキーマ整合性のみ
|
|
1381
|
+
- `deps`: 依存関係整合性のみ
|
|
1382
|
+
- `test`: テスト仕様整合性のみ
|
|
1383
|
+
- `all`: 全観点
|
|
1384
|
+
|
|
1385
|
+
**実行例**:
|
|
1386
|
+
```bash
|
|
1387
|
+
# 全観点でレビュー
|
|
1388
|
+
/michi-multi-repo:spec-review my-microservices
|
|
1389
|
+
|
|
1390
|
+
# API契約のみレビュー
|
|
1391
|
+
/michi-multi-repo:spec-review my-microservices --focus api
|
|
1392
|
+
```
|
|
1393
|
+
|
|
1394
|
+
**レビュー観点**:
|
|
1395
|
+
|
|
1396
|
+
1. **API契約整合性**
|
|
1397
|
+
- エンドポイントパスの一致
|
|
1398
|
+
- HTTPメソッドの一致
|
|
1399
|
+
- リクエスト/レスポンススキーマの一致
|
|
1400
|
+
|
|
1401
|
+
2. **データモデル整合性**
|
|
1402
|
+
- エンティティ定義の一致
|
|
1403
|
+
- フィールド名・型の一致
|
|
1404
|
+
- 必須/オプショナル属性の一致
|
|
1405
|
+
|
|
1406
|
+
3. **イベントスキーマ整合性**
|
|
1407
|
+
- イベント名/トピック名の一致
|
|
1408
|
+
- ペイロード構造の一致
|
|
1409
|
+
- メタデータの一致
|
|
1410
|
+
|
|
1411
|
+
4. **依存関係整合性**
|
|
1412
|
+
- サービス間依存方向の妥当性
|
|
1413
|
+
- バージョン要件の整合性
|
|
1414
|
+
|
|
1415
|
+
5. **テスト仕様整合性**
|
|
1416
|
+
- 統合テスト境界の明確さ
|
|
1417
|
+
- E2Eシナリオの網羅性
|
|
1418
|
+
|
|
1419
|
+
**品質ゲート判定**:
|
|
1420
|
+
|
|
1421
|
+
- 🔴 **BLOCK(重大な不整合 - 即時修正必須)**:
|
|
1422
|
+
- API契約の不一致(エンドポイント、スキーマ)
|
|
1423
|
+
- 必須要件の欠落
|
|
1424
|
+
- セキュリティ設計の不整合
|
|
1425
|
+
|
|
1426
|
+
- 🟡 **WARN(軽微な不整合 - 修正推奨)**:
|
|
1427
|
+
- 命名規則の不統一
|
|
1428
|
+
- 推奨設計パターンからの逸脱
|
|
1429
|
+
- ドキュメント不足
|
|
1430
|
+
|
|
1431
|
+
- 🟢 **PASS(問題なし)**:
|
|
1432
|
+
- 全チェック項目が基準を満たす
|
|
1433
|
+
|
|
1434
|
+
**レビューレポート**:
|
|
1435
|
+
|
|
1436
|
+
レビュー結果は以下に保存されます:
|
|
1437
|
+
```
|
|
1438
|
+
docs/michi/{project}/reviews/cross-repo-review-{timestamp}.md
|
|
1439
|
+
```
|
|
1440
|
+
|
|
1441
|
+
**出力例**:
|
|
1442
|
+
```markdown
|
|
1443
|
+
## Multi-Repo Cross-Repository Review Report
|
|
1444
|
+
|
|
1445
|
+
**プロジェクト**: my-microservices
|
|
1446
|
+
**レビュー日時**: 2025-12-23T14:00:00Z
|
|
1447
|
+
**対象リポジトリ**: 3件
|
|
1448
|
+
|
|
1449
|
+
### サマリー
|
|
1450
|
+
|
|
1451
|
+
| カテゴリ | ステータス | 問題件数 |
|
|
1452
|
+
|---------|----------|---------|
|
|
1453
|
+
| API契約整合性 | ✅ | 0件 |
|
|
1454
|
+
| データモデル整合性 | ⚠️ | 1件 |
|
|
1455
|
+
| イベントスキーマ整合性 | ✅ | 0件 |
|
|
1456
|
+
|
|
1457
|
+
### 検出された問題
|
|
1458
|
+
|
|
1459
|
+
#### 🟡 WARN (修正推奨)
|
|
1460
|
+
|
|
1461
|
+
##### Issue 1: [DATA-001] フィールド名不一致
|
|
1462
|
+
- **発生箇所**: Frontend ↔ Backend
|
|
1463
|
+
- **詳細**: `userId` (Frontend) vs `user_id` (Backend)
|
|
1464
|
+
- **影響**: データマッピング時の不整合
|
|
1465
|
+
- **推奨アクション**: 命名規則を統一(camelCase推奨)
|
|
1466
|
+
|
|
1467
|
+
### 品質ゲート判定
|
|
1468
|
+
|
|
1469
|
+
**判定**: ⚠️ 条件付き合格
|
|
1470
|
+
|
|
1471
|
+
**理由**: WARN問題が1件検出されましたが、修正は任意です。
|
|
1472
|
+
```
|
|
1473
|
+
|
|
1474
|
+
### 11. 並行実装
|
|
1475
|
+
|
|
1476
|
+
spec-review合格後、全リポジトリで実装を並行実行します。
|
|
1477
|
+
|
|
1478
|
+
```bash
|
|
1479
|
+
/michi-multi-repo:impl-all <project-name> [--tasks <task-numbers>]
|
|
1480
|
+
```
|
|
1481
|
+
|
|
1482
|
+
**オプション**:
|
|
1483
|
+
- `--tasks`: 実行するタスク番号(例: 1,2,3)、省略時は全タスク
|
|
1484
|
+
|
|
1485
|
+
**実行例**:
|
|
1486
|
+
```bash
|
|
1487
|
+
# 全タスクを実装
|
|
1488
|
+
/michi-multi-repo:impl-all my-microservices
|
|
1489
|
+
|
|
1490
|
+
# タスク1-3のみ実装
|
|
1491
|
+
/michi-multi-repo:impl-all my-microservices --tasks 1,2,3
|
|
1492
|
+
```
|
|
1493
|
+
|
|
1494
|
+
**前提条件**:
|
|
1495
|
+
- spec-reviewが合格(BLOCK問題がないこと)
|
|
1496
|
+
- 各リポジトリでタスク生成済み(`/kiro:spec-tasks`)
|
|
1497
|
+
|
|
1498
|
+
**実行内容**:
|
|
1499
|
+
1. 品質ゲート判定確認(最新レビューレポート)
|
|
1500
|
+
2. 各リポジトリで`/michi:spec-impl`を並行実行(最大3並列)
|
|
1501
|
+
3. TDDサイクル(RED-GREEN-REFACTOR)準拠
|
|
1502
|
+
4. テストカバレッジ95%以上を維持
|
|
1503
|
+
5. 結果集約とレポート
|
|
1504
|
+
|
|
1505
|
+
**出力例**:
|
|
1506
|
+
```
|
|
1507
|
+
🎉 全リポジトリで実装が完了しました
|
|
1508
|
+
|
|
1509
|
+
### 実装サマリー
|
|
1510
|
+
|
|
1511
|
+
| 指標 | 結果 |
|
|
1512
|
+
|------|------|
|
|
1513
|
+
| 完了リポジトリ | 3/3 |
|
|
1514
|
+
| 全体カバレッジ | 96.3% |
|
|
1515
|
+
| Lint/Build | ✅ All Pass |
|
|
1516
|
+
|
|
1517
|
+
### 次のステップ
|
|
1518
|
+
|
|
1519
|
+
1. 各リポジトリでPR作成:
|
|
1520
|
+
各リポジトリで `/pr` コマンドを実行
|
|
1521
|
+
|
|
1522
|
+
2. CI結果を監視:
|
|
1523
|
+
`michi multi-repo:ci-status my-microservices`
|
|
1524
|
+
|
|
1525
|
+
3. PRマージ後、リリース準備:
|
|
1526
|
+
- Confluenceリリース手順書作成
|
|
1527
|
+
- JIRAリリースチケット起票
|
|
1528
|
+
```
|
|
1529
|
+
|
|
1530
|
+
### サブエージェント連携ワークフロー例
|
|
1531
|
+
|
|
1532
|
+
```bash
|
|
1533
|
+
# 1. 親プロジェクトの初期化と設計
|
|
1534
|
+
/michi-multi-repo:spec-init "マイクロサービスでECサイト構築" --jira EC --confluence-space EC
|
|
1535
|
+
/michi-multi-repo:spec-requirements ec-microservices
|
|
1536
|
+
/michi-multi-repo:spec-design ec-microservices
|
|
1537
|
+
|
|
1538
|
+
# 2. リポジトリ登録(localPath付き)
|
|
1539
|
+
michi multi-repo:add-repo ec-microservices \
|
|
1540
|
+
--name frontend \
|
|
1541
|
+
--url https://github.com/myorg/frontend \
|
|
1542
|
+
--branch main \
|
|
1543
|
+
--localPath /Users/user/projects/frontend
|
|
1544
|
+
|
|
1545
|
+
michi multi-repo:add-repo ec-microservices \
|
|
1546
|
+
--name backend \
|
|
1547
|
+
--url https://github.com/myorg/backend \
|
|
1548
|
+
--branch main \
|
|
1549
|
+
--localPath /Users/user/projects/backend
|
|
1550
|
+
|
|
1551
|
+
michi multi-repo:add-repo ec-microservices \
|
|
1552
|
+
--name payment-service \
|
|
1553
|
+
--url https://github.com/myorg/payment-service \
|
|
1554
|
+
--branch main \
|
|
1555
|
+
--localPath /Users/user/projects/payment-service
|
|
1556
|
+
|
|
1557
|
+
# 3. 各リポジトリに仕様を展開(NEW)
|
|
1558
|
+
/michi-multi-repo:propagate-specs ec-microservices --operation design
|
|
1559
|
+
|
|
1560
|
+
# 4. クロスリポジトリレビュー(NEW)
|
|
1561
|
+
/michi-multi-repo:spec-review ec-microservices
|
|
1562
|
+
|
|
1563
|
+
# 5. レビュー合格後、各リポジトリでタスク生成
|
|
1564
|
+
# (各リポジトリで個別に実行)
|
|
1565
|
+
cd /Users/user/projects/frontend
|
|
1566
|
+
/kiro:spec-tasks {feature}
|
|
1567
|
+
|
|
1568
|
+
cd /Users/user/projects/backend
|
|
1569
|
+
/kiro:spec-tasks {feature}
|
|
1570
|
+
|
|
1571
|
+
# 6. 全リポジトリで実装開始(NEW)
|
|
1572
|
+
/michi-multi-repo:impl-all ec-microservices
|
|
1573
|
+
|
|
1574
|
+
# 7. 各リポジトリでPR作成
|
|
1575
|
+
cd /Users/user/projects/frontend
|
|
1576
|
+
/pr
|
|
1577
|
+
|
|
1578
|
+
cd /Users/user/projects/backend
|
|
1579
|
+
/pr
|
|
1580
|
+
|
|
1581
|
+
# 8. CI結果確認
|
|
1582
|
+
michi multi-repo:ci-status ec-microservices
|
|
1583
|
+
```
|
|
1584
|
+
|
|
1022
1585
|
## 関連ドキュメント
|
|
1023
1586
|
|
|
1024
1587
|
- [ワークフローガイド](./workflow.md): Michiの全体的な開発ワークフロー
|
|
@@ -115,20 +115,10 @@ Cursorで実行:
|
|
|
115
115
|
|
|
116
116
|
```bash
|
|
117
117
|
# 凡例
|
|
118
|
-
/
|
|
118
|
+
/michi:confluence-sync <feature>
|
|
119
119
|
|
|
120
120
|
# 具体例
|
|
121
|
-
/
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
または:
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
# 凡例
|
|
128
|
-
michi confluence:sync <feature> requirements
|
|
129
|
-
|
|
130
|
-
# 具体例
|
|
131
|
-
michi confluence:sync user-auth requirements
|
|
121
|
+
/michi:confluence-sync user-auth
|
|
132
122
|
```
|
|
133
123
|
|
|
134
124
|
AIが自動的に:
|
|
@@ -185,10 +175,10 @@ jj git push
|
|
|
185
175
|
|
|
186
176
|
```bash
|
|
187
177
|
# 凡例
|
|
188
|
-
michi
|
|
178
|
+
/michi:confluence-sync <feature>
|
|
189
179
|
|
|
190
180
|
# 具体例
|
|
191
|
-
michi
|
|
181
|
+
/michi:confluence-sync user-auth
|
|
192
182
|
```
|
|
193
183
|
|
|
194
184
|
見積もりExcelファイルが `estimates/<feature>-estimate.xlsx` に出力されます。
|