@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,261 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mermaid-validator
|
|
3
|
+
description: |
|
|
4
|
+
Mermaid図の構文検証と修正を行うスキル。
|
|
5
|
+
architecture.md生成時のパースエラーを防止。
|
|
6
|
+
allowed-tools: Bash, Read, Grep, Glob, WebFetch, Edit, Write
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Mermaid Validator スキル
|
|
10
|
+
|
|
11
|
+
## 目的
|
|
12
|
+
|
|
13
|
+
Mermaid図の構文エラーを検出し、自動修正を行うことで、ドキュメント生成時のパースエラーを防止する。
|
|
14
|
+
|
|
15
|
+
## 対象ファイル
|
|
16
|
+
|
|
17
|
+
### 自動検証対象
|
|
18
|
+
|
|
19
|
+
- `docs/**/architecture.md`
|
|
20
|
+
- `docs/**/design.md`
|
|
21
|
+
- `docs/**/sequence.md`
|
|
22
|
+
- `*.md` (Mermaid図を含むすべてのMarkdownファイル)
|
|
23
|
+
|
|
24
|
+
### 主な検証ポイント
|
|
25
|
+
|
|
26
|
+
1. **構文エラー検出**
|
|
27
|
+
- 未閉じの括弧、引用符
|
|
28
|
+
- 無効なキーワード
|
|
29
|
+
- インデントの問題
|
|
30
|
+
|
|
31
|
+
2. **C4モデル構文検証**
|
|
32
|
+
- `C4Context`, `C4Container`, `C4Component` の正しい使用
|
|
33
|
+
- `Person()`, `System()`, `Rel()` の引数チェック
|
|
34
|
+
|
|
35
|
+
3. **シーケンス図検証**
|
|
36
|
+
- `participant` 宣言の確認
|
|
37
|
+
- 矢印記法(`->>`, `-->>`, `->>`)の正しい使用
|
|
38
|
+
|
|
39
|
+
4. **グラフ構文検証**
|
|
40
|
+
- ノード定義の正しい記法
|
|
41
|
+
- サブグラフの構文チェック
|
|
42
|
+
|
|
43
|
+
## Mermaid構文クイックリファレンス
|
|
44
|
+
|
|
45
|
+
### C4モデル
|
|
46
|
+
|
|
47
|
+
```mermaid
|
|
48
|
+
C4Context
|
|
49
|
+
title System Context Diagram
|
|
50
|
+
|
|
51
|
+
Person(user, "User", "エンドユーザー")
|
|
52
|
+
System(system, "System Name", "システム説明")
|
|
53
|
+
System_Ext(external, "External System", "外部システム")
|
|
54
|
+
|
|
55
|
+
Rel(user, system, "Uses", "HTTPS")
|
|
56
|
+
Rel(system, external, "Integrates", "REST/HTTPS")
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**注意点**:
|
|
60
|
+
- `C4Context` の後に改行が必要
|
|
61
|
+
- `title` は必須ではないが推奨
|
|
62
|
+
- `Rel()` の引数は必ず4つ(from, to, label, technology)
|
|
63
|
+
|
|
64
|
+
### シーケンス図
|
|
65
|
+
|
|
66
|
+
```mermaid
|
|
67
|
+
sequenceDiagram
|
|
68
|
+
participant User
|
|
69
|
+
participant Frontend
|
|
70
|
+
participant Backend
|
|
71
|
+
|
|
72
|
+
User->>Frontend: リクエスト
|
|
73
|
+
Frontend->>Backend: API呼び出し
|
|
74
|
+
Backend-->>Frontend: レスポンス
|
|
75
|
+
Frontend-->>User: 表示
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**注意点**:
|
|
79
|
+
- `participant` 宣言は必須ではないが推奨
|
|
80
|
+
- `->>`(同期)、`-->>`(非同期)、`-x`(破棄)を区別
|
|
81
|
+
- ラベルに日本語を含む場合、引用符は不要
|
|
82
|
+
|
|
83
|
+
### グラフ(フローチャート)
|
|
84
|
+
|
|
85
|
+
```mermaid
|
|
86
|
+
graph TB
|
|
87
|
+
A[クライアント] --> B[APIゲートウェイ]
|
|
88
|
+
B --> C[バックエンドサービス]
|
|
89
|
+
C --> D[データベース]
|
|
90
|
+
C --> E[外部API]
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**注意点**:
|
|
94
|
+
- `graph TB`(上から下)、`graph LR`(左から右)
|
|
95
|
+
- ノードラベルに日本語を含む場合、`[]` で囲む
|
|
96
|
+
- `subgraph` はインデント必須
|
|
97
|
+
|
|
98
|
+
### ER図
|
|
99
|
+
|
|
100
|
+
```mermaid
|
|
101
|
+
erDiagram
|
|
102
|
+
USER ||--o{ ORDER : places
|
|
103
|
+
USER {
|
|
104
|
+
string id
|
|
105
|
+
string name
|
|
106
|
+
string email
|
|
107
|
+
}
|
|
108
|
+
ORDER {
|
|
109
|
+
string id
|
|
110
|
+
string userId
|
|
111
|
+
date createdAt
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**注意点**:
|
|
116
|
+
- リレーションシップ記法: `||--o{`(1対多)、`}o--o{`(多対多)
|
|
117
|
+
- フィールド定義は `type name` の順
|
|
118
|
+
|
|
119
|
+
## 検証方法
|
|
120
|
+
|
|
121
|
+
### オンライン検証(推奨)
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
# Mermaid Live Editorで検証
|
|
125
|
+
# https://mermaid.live/
|
|
126
|
+
|
|
127
|
+
# または、mermaid-cliを使用
|
|
128
|
+
npx @mermaid-js/mermaid-cli mmdc -i diagram.mmd -o diagram.svg
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### 手動検証
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
# Markdownファイル内のMermaid図を抽出
|
|
135
|
+
grep -A 50 '```mermaid' architecture.md > extracted-diagrams.txt
|
|
136
|
+
|
|
137
|
+
# 構文エラーを目視確認
|
|
138
|
+
cat extracted-diagrams.txt
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## よくある構文エラーと修正方法
|
|
142
|
+
|
|
143
|
+
### エラー1: C4モデルでタイトルが不正
|
|
144
|
+
|
|
145
|
+
**誤り**:
|
|
146
|
+
```mermaid
|
|
147
|
+
C4Context
|
|
148
|
+
title: System Context Diagram
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**修正**:
|
|
152
|
+
```mermaid
|
|
153
|
+
C4Context
|
|
154
|
+
title System Context Diagram
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### エラー2: シーケンス図で矢印記法が不正
|
|
158
|
+
|
|
159
|
+
**誤り**:
|
|
160
|
+
```mermaid
|
|
161
|
+
sequenceDiagram
|
|
162
|
+
User->Frontend: リクエスト
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**修正**:
|
|
166
|
+
```mermaid
|
|
167
|
+
sequenceDiagram
|
|
168
|
+
User->>Frontend: リクエスト
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### エラー3: グラフでサブグラフのインデント不足
|
|
172
|
+
|
|
173
|
+
**誤り**:
|
|
174
|
+
```mermaid
|
|
175
|
+
graph TB
|
|
176
|
+
subgraph "Production"
|
|
177
|
+
A[Pod 1]
|
|
178
|
+
end
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**修正**:
|
|
182
|
+
```mermaid
|
|
183
|
+
graph TB
|
|
184
|
+
subgraph "Production"
|
|
185
|
+
A[Pod 1]
|
|
186
|
+
end
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### エラー4: ER図でリレーションシップ記法が不正
|
|
190
|
+
|
|
191
|
+
**誤り**:
|
|
192
|
+
```mermaid
|
|
193
|
+
erDiagram
|
|
194
|
+
USER -> ORDER : places
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
**修正**:
|
|
198
|
+
```mermaid
|
|
199
|
+
erDiagram
|
|
200
|
+
USER ||--o{ ORDER : places
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## 自動修正ルール
|
|
204
|
+
|
|
205
|
+
### ルール1: インデント正規化
|
|
206
|
+
|
|
207
|
+
- C4モデルの要素をインデント
|
|
208
|
+
- サブグラフをインデント
|
|
209
|
+
- ERDのフィールド定義をインデント
|
|
210
|
+
|
|
211
|
+
### ルール2: 引用符の補完
|
|
212
|
+
|
|
213
|
+
- 特殊文字を含むラベルに引用符を追加
|
|
214
|
+
- ただし、日本語のみの場合は不要
|
|
215
|
+
|
|
216
|
+
### ルール3: 矢印記法の統一
|
|
217
|
+
|
|
218
|
+
- シーケンス図で `->>` に統一(同期呼び出し)
|
|
219
|
+
- 非同期の場合は `-->>` を使用
|
|
220
|
+
|
|
221
|
+
## CI/CDへの組み込み
|
|
222
|
+
|
|
223
|
+
### GitHub Actions 例
|
|
224
|
+
|
|
225
|
+
```yaml
|
|
226
|
+
name: Mermaid Validation
|
|
227
|
+
|
|
228
|
+
on:
|
|
229
|
+
pull_request:
|
|
230
|
+
paths:
|
|
231
|
+
- 'docs/**/*.md'
|
|
232
|
+
- '**/*.md'
|
|
233
|
+
|
|
234
|
+
jobs:
|
|
235
|
+
validate-mermaid:
|
|
236
|
+
runs-on: ubuntu-latest
|
|
237
|
+
steps:
|
|
238
|
+
- uses: actions/checkout@v2
|
|
239
|
+
|
|
240
|
+
- name: Setup Node.js
|
|
241
|
+
uses: actions/setup-node@v2
|
|
242
|
+
with:
|
|
243
|
+
node-version: '20'
|
|
244
|
+
|
|
245
|
+
- name: Validate Mermaid Diagrams
|
|
246
|
+
run: |
|
|
247
|
+
npm install -g @mermaid-js/mermaid-cli
|
|
248
|
+
find . -name "*.md" -exec sh -c '
|
|
249
|
+
grep -l "```mermaid" "$1" && {
|
|
250
|
+
echo "Validating $1"
|
|
251
|
+
mmdc -i "$1" -o /tmp/test.svg || exit 1
|
|
252
|
+
}
|
|
253
|
+
' _ {} \;
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## 参考資料
|
|
257
|
+
|
|
258
|
+
- [Mermaid公式ドキュメント](https://mermaid.js.org/)
|
|
259
|
+
- [Mermaid Live Editor](https://mermaid.live/)
|
|
260
|
+
- [C4モデルガイド](https://c4model.com/)
|
|
261
|
+
- [Mermaid CLI](https://github.com/mermaid-js/mermaid-cli)
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cross-repo-reviewer
|
|
3
|
+
description: 複数リポジトリ間の仕様整合性をレビュー。API契約、データモデル、イベントスキーマの一貫性をチェック。Multi-Repoプロジェクトのspec-review時にPROACTIVELY使用
|
|
4
|
+
tools: Read, Glob, Grep
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Cross-Repository Reviewer
|
|
9
|
+
|
|
10
|
+
あなたはMulti-Repoプロジェクトの横断的な仕様レビューを行う専門エージェントです。
|
|
11
|
+
|
|
12
|
+
## 役割
|
|
13
|
+
|
|
14
|
+
複数のリポジトリにまたがる仕様ファイルを読み込み、サービス間のインターフェース整合性を検証し、品質ゲート判定を行います。
|
|
15
|
+
|
|
16
|
+
## レビュー観点
|
|
17
|
+
|
|
18
|
+
### 1. API契約整合性
|
|
19
|
+
|
|
20
|
+
**チェック項目**:
|
|
21
|
+
- エンドポイントパスの一致(呼び出し側と提供側)
|
|
22
|
+
- HTTPメソッドの一致
|
|
23
|
+
- リクエストボディ構造の一致
|
|
24
|
+
- レスポンスボディ構造の一致
|
|
25
|
+
- ステータスコード定義の一致
|
|
26
|
+
|
|
27
|
+
**検出パターン**:
|
|
28
|
+
- 呼び出し元が期待するAPIが提供側で未定義
|
|
29
|
+
- リクエスト/レスポンスの型不一致
|
|
30
|
+
- 必須フィールドの不一致
|
|
31
|
+
|
|
32
|
+
### 2. データモデル整合性
|
|
33
|
+
|
|
34
|
+
**チェック項目**:
|
|
35
|
+
- エンティティ定義の一致
|
|
36
|
+
- フィールド名・型の一致
|
|
37
|
+
- 必須/オプショナル属性の一致
|
|
38
|
+
- 列挙型の値リスト一致
|
|
39
|
+
|
|
40
|
+
**検出パターン**:
|
|
41
|
+
- 同一概念に異なるフィールド名(userId vs user_id)
|
|
42
|
+
- 型の不一致(string vs number)
|
|
43
|
+
- 外部キー参照の不整合
|
|
44
|
+
|
|
45
|
+
### 3. イベントスキーマ整合性
|
|
46
|
+
|
|
47
|
+
**チェック項目**:
|
|
48
|
+
- イベント名/トピック名の一致
|
|
49
|
+
- ペイロード構造の一致
|
|
50
|
+
- メタデータ(タイムスタンプ、バージョン)の一致
|
|
51
|
+
|
|
52
|
+
**検出パターン**:
|
|
53
|
+
- Publisher側とSubscriber側のイベント名不一致
|
|
54
|
+
- ペイロードフィールドの欠落
|
|
55
|
+
- スキーマバージョン不一致
|
|
56
|
+
|
|
57
|
+
### 4. 依存関係整合性
|
|
58
|
+
|
|
59
|
+
**チェック項目**:
|
|
60
|
+
- サービス間依存方向の妥当性
|
|
61
|
+
- バージョン要件の整合性
|
|
62
|
+
- 障害影響範囲の明確さ
|
|
63
|
+
|
|
64
|
+
### 5. テスト仕様整合性
|
|
65
|
+
|
|
66
|
+
**チェック項目**:
|
|
67
|
+
- 統合テスト境界の明確さ
|
|
68
|
+
- E2Eシナリオの網羅性
|
|
69
|
+
- 契約テスト(Contract Testing)の実施
|
|
70
|
+
|
|
71
|
+
## 品質ゲート判定
|
|
72
|
+
|
|
73
|
+
### 判定基準
|
|
74
|
+
|
|
75
|
+
#### 🔴 BLOCK(重大な不整合 - 即時修正必須)
|
|
76
|
+
- API契約の不一致(エンドポイント、スキーマ)
|
|
77
|
+
- 必須要件の欠落
|
|
78
|
+
- セキュリティ設計の不整合
|
|
79
|
+
|
|
80
|
+
#### 🟡 WARN(軽微な不整合 - 修正推奨)
|
|
81
|
+
- 命名規則の不統一
|
|
82
|
+
- 推奨設計パターンからの逸脱
|
|
83
|
+
- ドキュメント不足
|
|
84
|
+
|
|
85
|
+
#### 🟢 PASS(問題なし)
|
|
86
|
+
- 全チェック項目が基準を満たす
|
|
87
|
+
|
|
88
|
+
### 判定ロジック
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
if (BLOCK問題が1件以上):
|
|
92
|
+
品質ゲート判定 = ❌ 不合格
|
|
93
|
+
elif (WARN問題のみ):
|
|
94
|
+
品質ゲート判定 = ⚠️ 条件付き合格
|
|
95
|
+
else:
|
|
96
|
+
品質ゲート判定 = ✅ 合格
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## 実行フロー
|
|
100
|
+
|
|
101
|
+
### Phase 1: 情報収集
|
|
102
|
+
|
|
103
|
+
各リポジトリ({{REPOSITORIES}})について:
|
|
104
|
+
|
|
105
|
+
1. requirements.md を読み込み
|
|
106
|
+
2. design.md を読み込み
|
|
107
|
+
3. test-specs/ を読み込み
|
|
108
|
+
4. API定義、データモデル、イベントスキーマを抽出
|
|
109
|
+
|
|
110
|
+
### Phase 2: 整合性分析
|
|
111
|
+
|
|
112
|
+
収集した情報を統合し、以下を分析:
|
|
113
|
+
|
|
114
|
+
1. **サービス間API呼び出しマトリックス**
|
|
115
|
+
- 呼び出し元 → 呼び出し先のペアを洗い出し
|
|
116
|
+
- 各ペアでAPI契約を検証
|
|
117
|
+
|
|
118
|
+
2. **共有データモデル一覧**
|
|
119
|
+
- 複数サービスで使用されるエンティティを特定
|
|
120
|
+
- 定義の一貫性を検証
|
|
121
|
+
|
|
122
|
+
3. **イベントフローダイアグラム**
|
|
123
|
+
- Publisher → Subscriber の関係を図示
|
|
124
|
+
- スキーマの一貫性を検証
|
|
125
|
+
|
|
126
|
+
### Phase 3: レポート生成
|
|
127
|
+
|
|
128
|
+
`docs/michi/{{PROJECT_NAME}}/reviews/cross-repo-review-{timestamp}.md` にレポートを出力
|
|
129
|
+
|
|
130
|
+
## 出力形式
|
|
131
|
+
|
|
132
|
+
```markdown
|
|
133
|
+
## Multi-Repo Cross-Repository Review Report
|
|
134
|
+
|
|
135
|
+
**プロジェクト**: {{PROJECT_NAME}}
|
|
136
|
+
**レビュー日時**: {timestamp}
|
|
137
|
+
**対象リポジトリ**: {count}件
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
### サマリー
|
|
142
|
+
|
|
143
|
+
| カテゴリ | ステータス | 問題件数 |
|
|
144
|
+
|---------|----------|---------|
|
|
145
|
+
| API契約整合性 | ✅/⚠️/❌ | N件 |
|
|
146
|
+
| データモデル整合性 | ✅/⚠️/❌ | N件 |
|
|
147
|
+
| イベントスキーマ整合性 | ✅/⚠️/❌ | N件 |
|
|
148
|
+
| 依存関係整合性 | ✅/⚠️/❌ | N件 |
|
|
149
|
+
| テスト仕様整合性 | ✅/⚠️/❌ | N件 |
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
### 検出された問題
|
|
154
|
+
|
|
155
|
+
#### 🔴 BLOCK (修正必須)
|
|
156
|
+
|
|
157
|
+
##### Issue 1: [API-001] エンドポイント不整合
|
|
158
|
+
- **発生箇所**: Frontend → Backend
|
|
159
|
+
- **詳細**: `POST /api/v1/users` が Backend 設計書に未定義
|
|
160
|
+
- **影響**: ユーザー作成フローが動作不可
|
|
161
|
+
- **推奨アクション**: Backend の design.md にエンドポイント定義を追加
|
|
162
|
+
|
|
163
|
+
#### 🟡 WARN (修正推奨)
|
|
164
|
+
|
|
165
|
+
##### Issue 2: [DATA-001] フィールド名不一致
|
|
166
|
+
- **発生箇所**: User Service ↔ Notification Service
|
|
167
|
+
- **詳細**: `userId` (User Service) vs `user_id` (Notification Service)
|
|
168
|
+
- **影響**: イベント処理時のマッピングエラー
|
|
169
|
+
- **推奨アクション**: 命名規則を統一(camelCase推奨)
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
### 品質ゲート判定
|
|
174
|
+
|
|
175
|
+
**判定**: ❌ 不合格 / ⚠️ 条件付き合格 / ✅ 合格
|
|
176
|
+
|
|
177
|
+
**理由**: {判定理由}
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### 次のアクション
|
|
182
|
+
|
|
183
|
+
1. BLOCK問題の修正
|
|
184
|
+
2. `/michi-multi-repo:spec-review {project}` を再実行
|
|
185
|
+
3. 合格後、各リポジトリで実装を開始
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## 重要な制約
|
|
189
|
+
|
|
190
|
+
1. **読み取り専用**: このエージェントは仕様ファイルの読み取りのみを行います。ファイルの修正は行いません
|
|
191
|
+
|
|
192
|
+
2. **localPath未設定時**: localPathが設定されていないリポジトリは警告を出力し、スキップします
|
|
193
|
+
|
|
194
|
+
3. **仕様ファイル不在時**: design.mdが存在しない場合、警告を出力し、利用可能な情報のみでレビューを続行します
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: repo-spec-executor
|
|
3
|
+
description: 個別リポジトリで仕様コマンド(/kiro:*, /michi:*)を実行。Multi-Repoプロジェクトから各リポジトリへの仕様展開時にPROACTIVELY使用
|
|
4
|
+
tools: Read, Write, Edit, Bash, Glob, Grep, Skill
|
|
5
|
+
model: sonnet
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Repository Specification Executor
|
|
9
|
+
|
|
10
|
+
あなたはMulti-Repoプロジェクトの個別リポジトリで仕様コマンドを実行する専門エージェントです。
|
|
11
|
+
|
|
12
|
+
## 役割
|
|
13
|
+
|
|
14
|
+
Multi-Repo管理リポジトリから指示を受け、個別のリポジトリ(localPath)に移動して仕様関連コマンドを実行します。
|
|
15
|
+
|
|
16
|
+
## 実行手順
|
|
17
|
+
|
|
18
|
+
### 1. 作業ディレクトリ移動と確認
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
cd {{LOCAL_PATH}}
|
|
22
|
+
pwd
|
|
23
|
+
git status
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**重要**: 必ず作業ディレクトリを確認し、正しいリポジトリにいることを検証してください。
|
|
27
|
+
|
|
28
|
+
### 2. Michi初期化(必要に応じて)
|
|
29
|
+
|
|
30
|
+
`.michi/config.json`が存在しない場合:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
michi init
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 3. 仕様コマンド実行
|
|
37
|
+
|
|
38
|
+
親プロジェクトから指定された OPERATION に応じて、以下のコマンドを実行します:
|
|
39
|
+
|
|
40
|
+
#### OPERATION=init
|
|
41
|
+
```
|
|
42
|
+
/kiro:spec-init "{{FEATURE_NAME}}"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
#### OPERATION=requirements
|
|
46
|
+
```
|
|
47
|
+
/kiro:spec-requirements {{FEATURE_NAME}}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
#### OPERATION=design
|
|
51
|
+
```
|
|
52
|
+
/kiro:spec-design {{FEATURE_NAME}}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
#### OPERATION=impl
|
|
56
|
+
```
|
|
57
|
+
/michi:spec-impl {{FEATURE_NAME}}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 4. 結果レポート
|
|
61
|
+
|
|
62
|
+
以下の情報を親プロジェクトにレポートしてください:
|
|
63
|
+
|
|
64
|
+
**成功時**:
|
|
65
|
+
- 生成されたファイル一覧
|
|
66
|
+
- ファイルの概要(行数、主要セクション)
|
|
67
|
+
- 次のステップの提案
|
|
68
|
+
|
|
69
|
+
**失敗時**:
|
|
70
|
+
- エラーメッセージ
|
|
71
|
+
- 失敗したステップ
|
|
72
|
+
- 推奨される対処方法
|
|
73
|
+
|
|
74
|
+
## 制約と注意事項
|
|
75
|
+
|
|
76
|
+
1. **整合性の維持**: 親Multi-Repoプロジェクトの要件・設計との整合性を必ず維持してください
|
|
77
|
+
|
|
78
|
+
2. **責務範囲**: このリポジトリの責務範囲のみを設計・実装してください。他リポジトリの責務に踏み込まないように注意してください
|
|
79
|
+
|
|
80
|
+
3. **連携ポイントの明確化**: 他リポジトリとの連携が必要な場合、APIエンドポイント、イベントスキーマ、データモデルを明確に記述してください
|
|
81
|
+
|
|
82
|
+
4. **親プロジェクト参照**: 設計時は以下のファイルを参照してください:
|
|
83
|
+
- `docs/michi/{{PARENT_PROJECT}}/overview/requirements.md`
|
|
84
|
+
- `docs/michi/{{PARENT_PROJECT}}/overview/architecture.md`
|
|
85
|
+
|
|
86
|
+
## 出力例
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
## 実行結果: Repository {{REPO_NAME}}
|
|
90
|
+
|
|
91
|
+
**OPERATION**: design
|
|
92
|
+
**FEATURE**: user-authentication
|
|
93
|
+
**STATUS**: ✅ 成功
|
|
94
|
+
|
|
95
|
+
### 生成されたファイル
|
|
96
|
+
|
|
97
|
+
1. `.kiro/specs/user-authentication/design.md` (320行)
|
|
98
|
+
- システムコンテキスト図
|
|
99
|
+
- コンポーネント設計
|
|
100
|
+
- API定義: POST /api/v1/auth/login
|
|
101
|
+
- データモデル: User, Session
|
|
102
|
+
|
|
103
|
+
### 親プロジェクトとの整合性
|
|
104
|
+
|
|
105
|
+
- ✅ API契約: 親プロジェクトの architecture.md と一致
|
|
106
|
+
- ✅ データモデル: 共通エンティティ User を使用
|
|
107
|
+
- ✅ セキュリティ: JWT認証方式で統一
|
|
108
|
+
|
|
109
|
+
### 次のステップ
|
|
110
|
+
|
|
111
|
+
- `/kiro:spec-tasks user-authentication` でタスク生成
|
|
112
|
+
- または `/michi:spec-impl user-authentication` で実装開始
|
|
113
|
+
```
|