@sk8metal/michi-cli 0.10.1 → 0.12.0
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/README.md +71 -848
- package/dist/scripts/constants/environments.d.ts +1 -1
- package/dist/scripts/constants/environments.d.ts.map +1 -1
- package/dist/scripts/constants/environments.js +0 -20
- package/dist/scripts/constants/environments.js.map +1 -1
- package/dist/scripts/phase-runner.js +1 -1
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +42 -0
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.js +3 -3
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
- package/dist/scripts/utils/template-finder.d.ts +2 -2
- package/dist/scripts/utils/template-finder.d.ts.map +1 -1
- package/dist/scripts/utils/template-finder.js +3 -8
- package/dist/scripts/utils/template-finder.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +0 -8
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/init.d.ts +0 -4
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +6 -30
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/setup-existing.d.ts +2 -6
- package/dist/src/commands/setup-existing.d.ts.map +1 -1
- package/dist/src/commands/setup-existing.js +8 -142
- package/dist/src/commands/setup-existing.js.map +1 -1
- package/docs/README.md +20 -83
- package/docs/getting-started/configuration.md +350 -0
- package/docs/getting-started/installation.md +59 -0
- package/docs/getting-started/quick-start.md +76 -0
- package/docs/guides/atlassian-integration.md +116 -0
- package/docs/guides/claude-code.md +155 -0
- package/docs/guides/multi-repo.md +117 -0
- package/docs/guides/workflow.md +382 -0
- package/docs/reference/ai-commands.md +92 -0
- package/docs/reference/cli.md +752 -0
- package/docs/reference/environment-variables.md +192 -0
- package/docs/troubleshooting.md +498 -0
- package/package.json +1 -3
- package/scripts/__tests__/create-project.test.ts +12 -12
- package/scripts/__tests__/setup-existing-project.test.ts +22 -22
- package/scripts/constants/__tests__/environments.test.ts +7 -50
- package/scripts/constants/environments.ts +1 -27
- package/scripts/phase-runner.ts +1 -1
- package/scripts/template/__tests__/renderer.test.ts +21 -21
- package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
- package/scripts/utils/multi-repo-validator.ts +50 -0
- package/scripts/utils/tasks-format-validator.ts +3 -3
- package/scripts/utils/template-finder.ts +5 -11
- package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
- package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
- package/templates/claude/commands/michi/e2e-plan.md +1 -1
- package/templates/claude/commands/michi/spec-design.md +2 -2
- package/templates/claude/commands/michi/spec-tasks.md +156 -0
- package/templates/claude/commands/michi/test-planning.md +1 -1
- package/templates/claude/commands/michi/validate-design.md +3 -3
- package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
- package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
- package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
- package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
- package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
- package/templates/claude-agent/rules/code-size-monitor.md +26 -0
- package/templates/claude-agent/rules/code-size-rules.md +32 -0
- package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
- package/docs/context.md +0 -59
- package/docs/michi-development/contributing/development.md +0 -341
- package/docs/michi-development/contributing/release.md +0 -365
- package/docs/michi-development/design/config-unification.md +0 -733
- package/docs/michi-development/design/design-config-current-state.md +0 -330
- package/docs/michi-development/design/design-config-implementation.md +0 -628
- package/docs/michi-development/design/design-config-migration.md +0 -952
- package/docs/michi-development/design/design-config-security.md +0 -771
- package/docs/michi-development/design/design-config-solution.md +0 -583
- package/docs/michi-development/design/design-config-testing.md +0 -892
- package/docs/michi-development/testing/manual-verification-flow.md +0 -871
- package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
- package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
- package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
- package/docs/michi-development/testing-strategy.md +0 -87
- package/docs/plan.md +0 -275
- package/docs/user-guide/getting-started/github-token-setup.md +0 -510
- package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
- package/docs/user-guide/getting-started/quick-start.md +0 -212
- package/docs/user-guide/getting-started/setup.md +0 -819
- package/docs/user-guide/guides/agent-skills-integration.md +0 -222
- package/docs/user-guide/guides/customization.md +0 -537
- package/docs/user-guide/guides/internationalization.md +0 -540
- package/docs/user-guide/guides/migration-guide.md +0 -138
- package/docs/user-guide/guides/multi-project.md +0 -368
- package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
- package/docs/user-guide/guides/phase-automation.md +0 -419
- package/docs/user-guide/guides/workflow.md +0 -574
- package/docs/user-guide/hands-on/README.md +0 -142
- package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
- package/docs/user-guide/hands-on/claude-setup.md +0 -452
- package/docs/user-guide/hands-on/cursor-setup.md +0 -353
- package/docs/user-guide/hands-on/troubleshooting.md +0 -964
- package/docs/user-guide/hands-on/verification-checklist.md +0 -439
- package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
- package/docs/user-guide/reference/config.md +0 -589
- package/docs/user-guide/reference/multi-repo-api.md +0 -771
- package/docs/user-guide/reference/quick-reference.md +0 -297
- package/docs/user-guide/reference/security-test-payloads.md +0 -50
- package/docs/user-guide/reference/tasks-template.md +0 -550
- package/docs/user-guide/release/ci-setup-java.md +0 -114
- package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
- package/docs/user-guide/release/ci-setup-php.md +0 -102
- package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
- package/docs/user-guide/release/ci-setup.md +0 -188
- package/docs/user-guide/release/release-flow.md +0 -476
- package/docs/user-guide/templates/test-specs/README.md +0 -173
- package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
- package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
- package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
- package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
- package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
- package/docs/user-guide/testing/integration-tests.md +0 -312
- package/docs/user-guide/testing/tdd-cycle.md +0 -349
- package/docs/user-guide/testing/test-execution-flow.md +0 -396
- package/docs/user-guide/testing/test-failure-handling.md +0 -521
- package/docs/user-guide/testing/test-planning-flow.md +0 -185
- package/docs/user-guide/testing-strategy.md +0 -185
- package/docs/verification-guide.md +0 -518
- package/templates/cline/rules/atlassian-integration.md +0 -36
- package/templates/cline/rules/michi-core.md +0 -56
- package/templates/codex/AGENTS.override.md +0 -277
- package/templates/codex/prompts/confluence-sync.md +0 -177
- package/templates/codex/rules/README.md +0 -210
- package/templates/cursor/commands/kiro/kiro-spec-impl.md +0 -244
- package/templates/cursor/commands/kiro/kiro-spec-tasks.md +0 -354
- package/templates/cursor/commands/michi/confluence-sync.md +0 -76
- package/templates/cursor/commands/michi/project-switch.md +0 -69
- package/templates/cursor/rules/atlassian-mcp.mdc +0 -188
- package/templates/cursor/rules/github-ssot.mdc +0 -151
- package/templates/cursor/rules/multi-project.mdc +0 -81
- package/templates/gemini/commands/README.md +0 -41
- package/templates/gemini/rules/GEMINI.md +0 -80
|
@@ -1,1590 +0,0 @@
|
|
|
1
|
-
# Multi-Repo管理ガイド
|
|
2
|
-
|
|
3
|
-
> **凡例について**: `<feature>` などの記号の意味は [README.md#凡例の記号説明](../README.md#凡例の記号説明) を参照してください。
|
|
4
|
-
|
|
5
|
-
## 概要
|
|
6
|
-
|
|
7
|
-
### Multi-Repo機能とは
|
|
8
|
-
|
|
9
|
-
Multi-Repo機能は、1つのプロジェクトで複数のGitHubリポジトリを統合的に管理するための機能です。マイクロサービスアーキテクチャやモノレポ分割後のプロジェクトなど、複数リポジトリにまたがる開発を効率化します。
|
|
10
|
-
|
|
11
|
-
### 対象ユーザー
|
|
12
|
-
|
|
13
|
-
- マイクロサービスアーキテクチャで開発しているチーム
|
|
14
|
-
- フロントエンド・バックエンド・インフラを別リポジトリで管理しているチーム
|
|
15
|
-
- 複数リポジトリのCI/CD状態を一元管理したいチーム
|
|
16
|
-
- 複数リポジトリの統合ドキュメントをConfluenceで管理したいチーム
|
|
17
|
-
|
|
18
|
-
### 主要機能
|
|
19
|
-
|
|
20
|
-
1. **プロジェクト管理**: 複数リポジトリをグループ化してプロジェクトとして管理
|
|
21
|
-
2. **CI結果集約**: 複数リポジトリのGitHub Actions実行結果を一覧表示
|
|
22
|
-
3. **テスト実行**: プロジェクト単位でテストスクリプトを実行
|
|
23
|
-
4. **Confluence同期**: プロジェクトドキュメントをConfluenceに自動同期
|
|
24
|
-
5. **一覧表示**: プロジェクトとリポジトリの情報を一覧表示
|
|
25
|
-
6. **サブエージェント連携**: 各リポジトリで仕様展開・レビュー・実装を並行実行(NEW)
|
|
26
|
-
|
|
27
|
-
## セットアップ
|
|
28
|
-
|
|
29
|
-
### 前提条件
|
|
30
|
-
|
|
31
|
-
- Node.js 18以上
|
|
32
|
-
- GitHub Personal Access Token
|
|
33
|
-
- Atlassian (Confluence/JIRA) アカウント(Confluence同期を使用する場合)
|
|
34
|
-
|
|
35
|
-
### 依存関係のインストール
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
npm install
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
### 環境変数の設定
|
|
42
|
-
|
|
43
|
-
#### GitHub Token(必須)
|
|
44
|
-
|
|
45
|
-
GitHub Actions APIを使用してCI結果を取得するために必要です。
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
# .env ファイルに追加
|
|
49
|
-
GITHUB_TOKEN=ghp_your_github_personal_access_token
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**Token作成手順**:
|
|
53
|
-
1. GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
|
|
54
|
-
2. "Generate new token (classic)"をクリック
|
|
55
|
-
3. 必要なスコープを選択:
|
|
56
|
-
- `repo` (フル権限、private repositoriesへのアクセスに必要)
|
|
57
|
-
- `read:org` (organizationのリポジトリにアクセスする場合)
|
|
58
|
-
4. トークンをコピーして環境変数に設定
|
|
59
|
-
|
|
60
|
-
#### Atlassian認証情報(Confluence同期を使用する場合)
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
# .env ファイルに追加
|
|
64
|
-
ATLASSIAN_URL=https://your-domain.atlassian.net
|
|
65
|
-
ATLASSIAN_EMAIL=your-email@example.com
|
|
66
|
-
ATLASSIAN_API_TOKEN=your_atlassian_api_token
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
**API Token作成手順**:
|
|
70
|
-
1. Atlassian Account Settings → Security → API tokens
|
|
71
|
-
2. "Create API token"をクリック
|
|
72
|
-
3. トークン名を入力して作成
|
|
73
|
-
4. トークンをコピーして環境変数に設定
|
|
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
|
-
|
|
198
|
-
## 基本的な使い方
|
|
199
|
-
|
|
200
|
-
### 1. プロジェクトの初期化
|
|
201
|
-
|
|
202
|
-
新しいMulti-Repoプロジェクトを作成します。
|
|
203
|
-
|
|
204
|
-
```bash
|
|
205
|
-
michi multi-repo:init <project-name> --jira <JIRA-KEY> --confluence-space <SPACE>
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
**例**:
|
|
209
|
-
```bash
|
|
210
|
-
michi multi-repo:init my-microservices --jira MSV --confluence-space MSV
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
**生成されるファイル**:
|
|
214
|
-
- `docs/michi/<project-name>/`: プロジェクトドキュメント用ディレクトリ
|
|
215
|
-
- `overview/requirements.md`: 要件定義書(テンプレート)
|
|
216
|
-
- `overview/architecture.md`: アーキテクチャ設計書(テンプレート)
|
|
217
|
-
- `design/sequence.md`: シーケンス図(テンプレート)
|
|
218
|
-
- `test/strategy.md`: テスト戦略書(テンプレート)
|
|
219
|
-
- `.michi/config.json`: プロジェクト設定(multiRepoProjectsに追加)
|
|
220
|
-
|
|
221
|
-
### 2. リポジトリの登録
|
|
222
|
-
|
|
223
|
-
プロジェクトにGitHubリポジトリを追加します。
|
|
224
|
-
|
|
225
|
-
```bash
|
|
226
|
-
michi multi-repo:add-repo <project-name> --name <repo-name> --url <github-url> --branch <branch>
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
**例**:
|
|
230
|
-
```bash
|
|
231
|
-
# フロントエンドリポジトリを追加
|
|
232
|
-
michi multi-repo:add-repo my-microservices \
|
|
233
|
-
--name frontend \
|
|
234
|
-
--url https://github.com/myorg/frontend \
|
|
235
|
-
--branch main
|
|
236
|
-
|
|
237
|
-
# バックエンドリポジトリを追加
|
|
238
|
-
michi multi-repo:add-repo my-microservices \
|
|
239
|
-
--name backend \
|
|
240
|
-
--url https://github.com/myorg/backend \
|
|
241
|
-
--branch main
|
|
242
|
-
|
|
243
|
-
# インフラリポジトリを追加
|
|
244
|
-
michi multi-repo:add-repo my-microservices \
|
|
245
|
-
--name infrastructure \
|
|
246
|
-
--url https://github.com/myorg/infra \
|
|
247
|
-
--branch main
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
### 3. CI結果の集約
|
|
251
|
-
|
|
252
|
-
プロジェクト内の全リポジトリのGitHub Actions実行結果を一覧表示します。
|
|
253
|
-
|
|
254
|
-
```bash
|
|
255
|
-
michi multi-repo:ci-status <project-name>
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
**出力例**:
|
|
259
|
-
```
|
|
260
|
-
=== Multi-Repo CI Status ===
|
|
261
|
-
Project: my-microservices
|
|
262
|
-
Repositories: 3
|
|
263
|
-
|
|
264
|
-
Repository: frontend (main)
|
|
265
|
-
Latest Workflow Run: Build and Test
|
|
266
|
-
Status: ✅ success
|
|
267
|
-
Conclusion: success
|
|
268
|
-
Created: 2025-12-17T10:30:00Z
|
|
269
|
-
URL: https://github.com/myorg/frontend/actions/runs/12345
|
|
270
|
-
|
|
271
|
-
Repository: backend (main)
|
|
272
|
-
Latest Workflow Run: CI
|
|
273
|
-
Status: ✅ success
|
|
274
|
-
Conclusion: success
|
|
275
|
-
Created: 2025-12-17T10:25:00Z
|
|
276
|
-
URL: https://github.com/myorg/backend/actions/runs/12346
|
|
277
|
-
|
|
278
|
-
Repository: infrastructure (main)
|
|
279
|
-
Latest Workflow Run: Deploy
|
|
280
|
-
Status: ❌ failure
|
|
281
|
-
Conclusion: failure
|
|
282
|
-
Created: 2025-12-17T10:20:00Z
|
|
283
|
-
URL: https://github.com/myorg/infra/actions/runs/12347
|
|
284
|
-
|
|
285
|
-
CI結果の集約が完了しました
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
**キャッシング機能**:
|
|
289
|
-
- CI結果は `.ci-cache.json` にキャッシュされます(有効期限: 15分)
|
|
290
|
-
- キャッシュがある場合は高速に結果を表示します
|
|
291
|
-
|
|
292
|
-
### 4. テストスクリプトの実行
|
|
293
|
-
|
|
294
|
-
プロジェクトに登録されたテストスクリプトを実行します。
|
|
295
|
-
|
|
296
|
-
```bash
|
|
297
|
-
# Phase A テスト(PR時)
|
|
298
|
-
michi multi-repo:test <project-name> --phase A
|
|
299
|
-
|
|
300
|
-
# Phase B テスト(リリース前)
|
|
301
|
-
michi multi-repo:test <project-name> --phase B
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
**テストスクリプトの登録方法**:
|
|
305
|
-
|
|
306
|
-
`.michi/config.json` を編集:
|
|
307
|
-
```json
|
|
308
|
-
{
|
|
309
|
-
"multiRepoProjects": [
|
|
310
|
-
{
|
|
311
|
-
"name": "my-microservices",
|
|
312
|
-
"jiraKey": "MSV",
|
|
313
|
-
"confluenceSpace": "MSV",
|
|
314
|
-
"createdAt": "2025-12-17T00:00:00Z",
|
|
315
|
-
"repositories": [...],
|
|
316
|
-
"testScripts": {
|
|
317
|
-
"phaseA": [
|
|
318
|
-
"npm test:unit",
|
|
319
|
-
"npm run lint",
|
|
320
|
-
"npm run type-check"
|
|
321
|
-
],
|
|
322
|
-
"phaseB": [
|
|
323
|
-
"npm test:integration",
|
|
324
|
-
"npm test:e2e",
|
|
325
|
-
"npm test:performance"
|
|
326
|
-
]
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
]
|
|
330
|
-
}
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
### 5. Confluenceへの同期
|
|
334
|
-
|
|
335
|
-
プロジェクトドキュメントをConfluenceに同期します。
|
|
336
|
-
|
|
337
|
-
```bash
|
|
338
|
-
# 全ドキュメントを同期
|
|
339
|
-
michi multi-repo:confluence-sync <project-name>
|
|
340
|
-
|
|
341
|
-
# 特定のドキュメントタイプのみ同期
|
|
342
|
-
michi multi-repo:confluence-sync <project-name> --doc-type requirements
|
|
343
|
-
michi multi-repo:confluence-sync <project-name> --doc-type architecture
|
|
344
|
-
michi multi-repo:confluence-sync <project-name> --doc-type sequence
|
|
345
|
-
michi multi-repo:confluence-sync <project-name> --doc-type strategy
|
|
346
|
-
```
|
|
347
|
-
|
|
348
|
-
**同期されるドキュメント**:
|
|
349
|
-
- `requirements.md` → Confluence Requirements ページ
|
|
350
|
-
- `architecture.md` → Confluence Architecture ページ
|
|
351
|
-
- `sequence.md` → Confluence Sequence Diagrams ページ
|
|
352
|
-
- `strategy.md` → Confluence Test Strategy ページ
|
|
353
|
-
|
|
354
|
-
**Mermaidダイアグラムの変換**:
|
|
355
|
-
- Markdown内のMermaidダイアグラムは自動的にConfluence形式に変換されます
|
|
356
|
-
|
|
357
|
-
### 6. プロジェクト一覧の表示
|
|
358
|
-
|
|
359
|
-
登録されているプロジェクトとリポジトリの一覧を表示します。
|
|
360
|
-
|
|
361
|
-
```bash
|
|
362
|
-
michi multi-repo:list
|
|
363
|
-
```
|
|
364
|
-
|
|
365
|
-
**出力例**:
|
|
366
|
-
```
|
|
367
|
-
=== Multi-Repo Projects ===
|
|
368
|
-
|
|
369
|
-
Project: my-microservices
|
|
370
|
-
JIRA Key: MSV
|
|
371
|
-
Confluence Space: MSV
|
|
372
|
-
Created: 2025-12-17T00:00:00Z
|
|
373
|
-
|
|
374
|
-
Repositories (3):
|
|
375
|
-
1. frontend
|
|
376
|
-
URL: https://github.com/myorg/frontend
|
|
377
|
-
Branch: main
|
|
378
|
-
|
|
379
|
-
2. backend
|
|
380
|
-
URL: https://github.com/myorg/backend
|
|
381
|
-
Branch: main
|
|
382
|
-
|
|
383
|
-
3. infrastructure
|
|
384
|
-
URL: https://github.com/myorg/infra
|
|
385
|
-
Branch: main
|
|
386
|
-
|
|
387
|
-
Test Scripts:
|
|
388
|
-
Phase A: npm test:unit, npm run lint, npm run type-check
|
|
389
|
-
Phase B: npm test:integration, npm test:e2e, npm test:performance
|
|
390
|
-
|
|
391
|
-
Total Projects: 1
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
## コマンドリファレンス
|
|
395
|
-
|
|
396
|
-
### multi-repo:init
|
|
397
|
-
|
|
398
|
-
新しいMulti-Repoプロジェクトを初期化します。
|
|
399
|
-
|
|
400
|
-
**構文**:
|
|
401
|
-
```bash
|
|
402
|
-
michi multi-repo:init <project-name> --jira <JIRA-KEY> --confluence-space <SPACE>
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
**引数**:
|
|
406
|
-
- `<project-name>`: プロジェクト名(必須)
|
|
407
|
-
- 1-100文字
|
|
408
|
-
- パス区切り文字 (`/`, `\`)、相対パス (`.`, `..`)、制御文字は使用不可
|
|
409
|
-
|
|
410
|
-
**オプション**:
|
|
411
|
-
- `--jira <JIRA-KEY>`: JIRAプロジェクトキー(必須)
|
|
412
|
-
- 2-10文字の大文字英字のみ
|
|
413
|
-
- 例: `MSV`, `PROJ`, `MICROSVCS`
|
|
414
|
-
- `--confluence-space <SPACE>`: Confluenceスペースキー(必須)
|
|
415
|
-
- 空でない文字列
|
|
416
|
-
- 例: `MSV`, `PROJ`
|
|
417
|
-
|
|
418
|
-
**例**:
|
|
419
|
-
```bash
|
|
420
|
-
michi multi-repo:init my-microservices --jira MSV --confluence-space MSV
|
|
421
|
-
```
|
|
422
|
-
|
|
423
|
-
### multi-repo:add-repo
|
|
424
|
-
|
|
425
|
-
プロジェクトにリポジトリを追加します。
|
|
426
|
-
|
|
427
|
-
**構文**:
|
|
428
|
-
```bash
|
|
429
|
-
michi multi-repo:add-repo <project-name> --name <repo-name> --url <github-url> --branch <branch>
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
**引数**:
|
|
433
|
-
- `<project-name>`: プロジェクト名(必須)
|
|
434
|
-
|
|
435
|
-
**オプション**:
|
|
436
|
-
- `--name <repo-name>`: リポジトリ名(必須)
|
|
437
|
-
- 空でない文字列
|
|
438
|
-
- `--url <github-url>`: GitHub URL(必須)
|
|
439
|
-
- `https://github.com/{owner}/{repo}` 形式
|
|
440
|
-
- HTTPSプロトコル必須(HTTP、SSH不可)
|
|
441
|
-
- `.git` 拡張子は不要
|
|
442
|
-
- `--branch <branch>`: ブランチ名(必須)
|
|
443
|
-
- デフォルトブランチ(通常は `main` または `master`)
|
|
444
|
-
|
|
445
|
-
**例**:
|
|
446
|
-
```bash
|
|
447
|
-
michi multi-repo:add-repo my-microservices \
|
|
448
|
-
--name api-gateway \
|
|
449
|
-
--url https://github.com/myorg/api-gateway \
|
|
450
|
-
--branch main
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
### multi-repo:ci-status
|
|
454
|
-
|
|
455
|
-
プロジェクトのCI結果を集約して表示します。
|
|
456
|
-
|
|
457
|
-
**構文**:
|
|
458
|
-
```bash
|
|
459
|
-
michi multi-repo:ci-status <project-name>
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
**引数**:
|
|
463
|
-
- `<project-name>`: プロジェクト名(必須)
|
|
464
|
-
|
|
465
|
-
**動作**:
|
|
466
|
-
1. 各リポジトリの最新ワークフロー実行結果をGitHub APIから取得
|
|
467
|
-
2. キャッシュファイル (`.ci-cache.json`) に保存(有効期限: 15分)
|
|
468
|
-
3. 結果を一覧表示
|
|
469
|
-
|
|
470
|
-
**パフォーマンス**:
|
|
471
|
-
- 並列処理により高速化(10リポジトリで30秒以内)
|
|
472
|
-
- キャッシュヒット時は即座に表示
|
|
473
|
-
|
|
474
|
-
**例**:
|
|
475
|
-
```bash
|
|
476
|
-
michi multi-repo:ci-status my-microservices
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
### multi-repo:test
|
|
480
|
-
|
|
481
|
-
プロジェクトのテストスクリプトを実行します。
|
|
482
|
-
|
|
483
|
-
**構文**:
|
|
484
|
-
```bash
|
|
485
|
-
michi multi-repo:test <project-name> --phase <phase>
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
**引数**:
|
|
489
|
-
- `<project-name>`: プロジェクト名(必須)
|
|
490
|
-
|
|
491
|
-
**オプション**:
|
|
492
|
-
- `--phase <phase>`: テストフェーズ(必須)
|
|
493
|
-
- `A`: Phase A テスト(PR時: unit, lint, build)
|
|
494
|
-
- `B`: Phase B テスト(リリース前: integration, e2e, performance, security)
|
|
495
|
-
|
|
496
|
-
**例**:
|
|
497
|
-
```bash
|
|
498
|
-
# Phase A テスト
|
|
499
|
-
michi multi-repo:test my-microservices --phase A
|
|
500
|
-
|
|
501
|
-
# Phase B テスト
|
|
502
|
-
michi multi-repo:test my-microservices --phase B
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
### multi-repo:confluence-sync
|
|
506
|
-
|
|
507
|
-
プロジェクトドキュメントをConfluenceに同期します。
|
|
508
|
-
|
|
509
|
-
**構文**:
|
|
510
|
-
```bash
|
|
511
|
-
michi multi-repo:confluence-sync <project-name> [--doc-type <type>]
|
|
512
|
-
```
|
|
513
|
-
|
|
514
|
-
**引数**:
|
|
515
|
-
- `<project-name>`: プロジェクト名(必須)
|
|
516
|
-
|
|
517
|
-
**オプション**:
|
|
518
|
-
- `--doc-type <type>`: ドキュメントタイプ(オプション)
|
|
519
|
-
- `requirements`: 要件定義書のみ
|
|
520
|
-
- `architecture`: アーキテクチャ設計書のみ
|
|
521
|
-
- `sequence`: シーケンス図のみ
|
|
522
|
-
- `strategy`: テスト戦略書のみ
|
|
523
|
-
- 未指定: 全ドキュメントを同期
|
|
524
|
-
|
|
525
|
-
**動作**:
|
|
526
|
-
1. 親ページ(プロジェクト名)を作成または取得
|
|
527
|
-
2. 各ドキュメントを子ページとして作成または更新
|
|
528
|
-
3. Mermaidダイアグラムを自動変換
|
|
529
|
-
|
|
530
|
-
**例**:
|
|
531
|
-
```bash
|
|
532
|
-
# 全ドキュメントを同期
|
|
533
|
-
michi multi-repo:confluence-sync my-microservices
|
|
534
|
-
|
|
535
|
-
# 要件定義書のみ同期
|
|
536
|
-
michi multi-repo:confluence-sync my-microservices --doc-type requirements
|
|
537
|
-
```
|
|
538
|
-
|
|
539
|
-
### multi-repo:list
|
|
540
|
-
|
|
541
|
-
登録されているプロジェクトの一覧を表示します。
|
|
542
|
-
|
|
543
|
-
**構文**:
|
|
544
|
-
```bash
|
|
545
|
-
michi multi-repo:list
|
|
546
|
-
```
|
|
547
|
-
|
|
548
|
-
**引数**: なし
|
|
549
|
-
|
|
550
|
-
**動作**:
|
|
551
|
-
- `.michi/config.json` からプロジェクト情報を読み込み
|
|
552
|
-
- プロジェクト名、JIRA キー、Confluence スペース、リポジトリ一覧を表示
|
|
553
|
-
|
|
554
|
-
**例**:
|
|
555
|
-
```bash
|
|
556
|
-
michi multi-repo:list
|
|
557
|
-
```
|
|
558
|
-
|
|
559
|
-
## 既存ユーザーのためのマイグレーションガイド
|
|
560
|
-
|
|
561
|
-
このセクションは、既存のMichiユーザーがMulti-Repo機能を導入する際の手順を説明します。
|
|
562
|
-
|
|
563
|
-
### 概要
|
|
564
|
-
|
|
565
|
-
Multi-Repo機能はMichiに新しく追加された機能です。既存のMichi機能に影響を与えず、追加のコマンド群として提供されます。
|
|
566
|
-
|
|
567
|
-
**主な特徴**:
|
|
568
|
-
- **後方互換性**: 既存のMichiコマンドとワークフローに影響なし
|
|
569
|
-
- **オプトイン**: Multi-Repo機能を使用する場合のみ、設定を追加
|
|
570
|
-
- **自動マイグレーション**: 初回使用時に自動的に設定ファイルが拡張される
|
|
571
|
-
|
|
572
|
-
### 変更点(v0.5.0 → v1.0.0)
|
|
573
|
-
|
|
574
|
-
#### 1. config.jsonスキーマの拡張
|
|
575
|
-
|
|
576
|
-
`.michi/config.json` に新しいフィールド `multiRepoProjects` が追加されます。
|
|
577
|
-
|
|
578
|
-
**変更前(v0.5.0)**:
|
|
579
|
-
```json
|
|
580
|
-
{
|
|
581
|
-
"confluence": { ... },
|
|
582
|
-
"jira": { ... },
|
|
583
|
-
"workflow": { ... },
|
|
584
|
-
"validation": { ... },
|
|
585
|
-
"atlassian": { ... },
|
|
586
|
-
"project": { ... }
|
|
587
|
-
}
|
|
588
|
-
```
|
|
589
|
-
|
|
590
|
-
**変更後(v1.0.0)**:
|
|
591
|
-
```json
|
|
592
|
-
{
|
|
593
|
-
"confluence": { ... },
|
|
594
|
-
"jira": { ... },
|
|
595
|
-
"workflow": { ... },
|
|
596
|
-
"validation": { ... },
|
|
597
|
-
"atlassian": { ... },
|
|
598
|
-
"project": { ... },
|
|
599
|
-
"multiRepoProjects": []
|
|
600
|
-
}
|
|
601
|
-
```
|
|
602
|
-
|
|
603
|
-
重要: `multiRepoProjects` フィールドが存在しない場合、Michiは自動的に空配列 `[]` として扱います。手動で追加する必要はありません。
|
|
604
|
-
|
|
605
|
-
#### 2. 新規コマンドの追加
|
|
606
|
-
|
|
607
|
-
以下の6つのコマンドが追加されます:
|
|
608
|
-
|
|
609
|
-
| コマンド | Phase | 説明 |
|
|
610
|
-
|---------|-------|------|
|
|
611
|
-
| `michi multi-repo:init` | 1 (MVP) | プロジェクト初期化 |
|
|
612
|
-
| `michi multi-repo:add-repo` | 1 (MVP) | リポジトリ登録 |
|
|
613
|
-
| `michi multi-repo:list` | 1 (MVP) | プロジェクト一覧表示 |
|
|
614
|
-
| `michi multi-repo:ci-status` | 2 | CI結果集約 |
|
|
615
|
-
| `michi multi-repo:test` | 2 | テスト実行 |
|
|
616
|
-
| `michi multi-repo:confluence-sync` | 3 | Confluence同期 |
|
|
617
|
-
|
|
618
|
-
#### 3. 環境変数の追加(オプション)
|
|
619
|
-
|
|
620
|
-
**Phase 2機能を使用する場合**:
|
|
621
|
-
```bash
|
|
622
|
-
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
623
|
-
```
|
|
624
|
-
|
|
625
|
-
**Phase 3機能を使用する場合**:
|
|
626
|
-
```bash
|
|
627
|
-
export ATLASSIAN_URL="https://your-company.atlassian.net"
|
|
628
|
-
export ATLASSIAN_EMAIL="your-email@example.com"
|
|
629
|
-
export ATLASSIAN_API_TOKEN="your-api-token"
|
|
630
|
-
```
|
|
631
|
-
|
|
632
|
-
注意: 既存のMichiでConfluence機能を使用している場合、これらの環境変数は既に設定されているため、追加の設定は不要です。
|
|
633
|
-
|
|
634
|
-
### マイグレーション手順
|
|
635
|
-
|
|
636
|
-
#### ステップ1: Michiをv1.0.0にアップグレード
|
|
637
|
-
|
|
638
|
-
```bash
|
|
639
|
-
npm install -g @sk8metal/michi-cli@latest
|
|
640
|
-
```
|
|
641
|
-
|
|
642
|
-
アップグレード後、バージョンを確認します。
|
|
643
|
-
|
|
644
|
-
```bash
|
|
645
|
-
michi --version
|
|
646
|
-
# @sk8metal/michi-cli v1.0.0
|
|
647
|
-
```
|
|
648
|
-
|
|
649
|
-
#### ステップ2: 環境変数の設定(オプション)
|
|
650
|
-
|
|
651
|
-
**Phase 2機能を使用する場合**:
|
|
652
|
-
|
|
653
|
-
GitHub Personal Access Tokenを取得し、環境変数に設定します。
|
|
654
|
-
|
|
655
|
-
GitHub Personal Access Tokenの取得方法:
|
|
656
|
-
1. GitHubにログイン
|
|
657
|
-
2. Settings → Developer settings → Personal access tokens → Tokens (classic)
|
|
658
|
-
3. "Generate new token (classic)" をクリック
|
|
659
|
-
4. 必要なスコープを選択:
|
|
660
|
-
- `repo`: プライベートリポジトリへのアクセス(推奨)
|
|
661
|
-
- `public_repo`: パブリックリポジトリのみへのアクセス
|
|
662
|
-
- `workflow`: GitHub Actionsへのアクセス(必須)
|
|
663
|
-
5. トークンを生成してコピー
|
|
664
|
-
|
|
665
|
-
**環境変数の設定**:
|
|
666
|
-
```bash
|
|
667
|
-
# ~/.bashrc または ~/.zshrc に追加
|
|
668
|
-
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
669
|
-
|
|
670
|
-
# 変更を反映
|
|
671
|
-
source ~/.bashrc # または source ~/.zshrc
|
|
672
|
-
```
|
|
673
|
-
|
|
674
|
-
**Phase 3機能を使用する場合**:
|
|
675
|
-
|
|
676
|
-
既存のMichiでConfluence機能を使用している場合は、既に設定済みのため、この手順はスキップしてください。
|
|
677
|
-
|
|
678
|
-
新規にConfluence機能を使用する場合は、[Confluenceセットアップガイド](../getting-started/setup-guide.md#confluence設定)を参照してください。
|
|
679
|
-
|
|
680
|
-
#### ステップ3: Multi-Repoプロジェクトの初期化
|
|
681
|
-
|
|
682
|
-
初めてMulti-Repo機能を使用する際に、自動的に `.michi/config.json` が拡張されます。
|
|
683
|
-
|
|
684
|
-
```bash
|
|
685
|
-
# プロジェクト初期化
|
|
686
|
-
michi multi-repo:init my-multi-repo-project \
|
|
687
|
-
--jira MYPROJ \
|
|
688
|
-
--confluence-space MYSPACE
|
|
689
|
-
```
|
|
690
|
-
|
|
691
|
-
**実行結果**:
|
|
692
|
-
```
|
|
693
|
-
✅ Multi-Repoプロジェクトの初期化が完了しました
|
|
694
|
-
|
|
695
|
-
プロジェクト情報:
|
|
696
|
-
名前: my-multi-repo-project
|
|
697
|
-
JIRAキー: MYPROJ
|
|
698
|
-
Confluenceスペース: MYSPACE
|
|
699
|
-
|
|
700
|
-
作成されたディレクトリ:
|
|
701
|
-
docs/michi/my-multi-repo-project/
|
|
702
|
-
├── overview/
|
|
703
|
-
│ ├── requirements.md
|
|
704
|
-
│ ├── architecture.md
|
|
705
|
-
│ └── multi-repo.md
|
|
706
|
-
├── steering/
|
|
707
|
-
├── tests/
|
|
708
|
-
└── docs/
|
|
709
|
-
|
|
710
|
-
設定ファイルを更新しました: .michi/config.json
|
|
711
|
-
```
|
|
712
|
-
|
|
713
|
-
#### ステップ4: リポジトリの登録
|
|
714
|
-
|
|
715
|
-
Multi-Repoプロジェクトにリポジトリを登録します。
|
|
716
|
-
|
|
717
|
-
```bash
|
|
718
|
-
# リポジトリ登録
|
|
719
|
-
michi multi-repo:add-repo my-multi-repo-project \
|
|
720
|
-
--name backend \
|
|
721
|
-
--url https://github.com/your-org/backend \
|
|
722
|
-
--branch main
|
|
723
|
-
|
|
724
|
-
michi multi-repo:add-repo my-multi-repo-project \
|
|
725
|
-
--name frontend \
|
|
726
|
-
--url https://github.com/your-org/frontend \
|
|
727
|
-
--branch main
|
|
728
|
-
```
|
|
729
|
-
|
|
730
|
-
#### ステップ5: 動作確認
|
|
731
|
-
|
|
732
|
-
プロジェクト一覧を表示して、正常に登録されたことを確認します。
|
|
733
|
-
|
|
734
|
-
```bash
|
|
735
|
-
michi multi-repo:list
|
|
736
|
-
```
|
|
737
|
-
|
|
738
|
-
**実行結果**:
|
|
739
|
-
```
|
|
740
|
-
========================================
|
|
741
|
-
Multi-Repo プロジェクト一覧
|
|
742
|
-
========================================
|
|
743
|
-
|
|
744
|
-
プロジェクト: my-multi-repo-project
|
|
745
|
-
JIRAキー: MYPROJ
|
|
746
|
-
Confluenceスペース: MYSPACE
|
|
747
|
-
作成日時: 2025-12-17T10:00:00+09:00
|
|
748
|
-
リポジトリ数: 2
|
|
749
|
-
|
|
750
|
-
リポジトリ:
|
|
751
|
-
1. backend
|
|
752
|
-
URL: https://github.com/your-org/backend
|
|
753
|
-
ブランチ: main
|
|
754
|
-
|
|
755
|
-
2. frontend
|
|
756
|
-
URL: https://github.com/your-org/frontend
|
|
757
|
-
ブランチ: main
|
|
758
|
-
|
|
759
|
-
========================================
|
|
760
|
-
合計プロジェクト数: 1
|
|
761
|
-
========================================
|
|
762
|
-
```
|
|
763
|
-
|
|
764
|
-
### 既存機能への影響
|
|
765
|
-
|
|
766
|
-
#### 影響なし
|
|
767
|
-
|
|
768
|
-
以下の既存Michi機能は、Multi-Repo機能の追加によって**影響を受けません**。
|
|
769
|
-
|
|
770
|
-
**Spec-Driven Developmentワークフロー**:
|
|
771
|
-
```bash
|
|
772
|
-
# 既存のワークフローは変更なし
|
|
773
|
-
/kiro:spec-init "feature-name"
|
|
774
|
-
/kiro:spec-requirements feature-name
|
|
775
|
-
/kiro:spec-design feature-name
|
|
776
|
-
/kiro:spec-tasks feature-name
|
|
777
|
-
/kiro:spec-impl feature-name
|
|
778
|
-
```
|
|
779
|
-
|
|
780
|
-
**Confluence/JIRA統合**:
|
|
781
|
-
```bash
|
|
782
|
-
# 既存のConfluence/JIRAコマンドは変更なし
|
|
783
|
-
michi confluence:sync
|
|
784
|
-
michi jira:sync
|
|
785
|
-
```
|
|
786
|
-
|
|
787
|
-
**設定管理**:
|
|
788
|
-
```bash
|
|
789
|
-
# 既存の設定コマンドは変更なし
|
|
790
|
-
michi config:validate
|
|
791
|
-
michi migrate
|
|
792
|
-
```
|
|
793
|
-
|
|
794
|
-
既存の設定フィールド(`confluence`, `jira`, `workflow`, `validation`, `atlassian`, `project`)は変更されません。`multiRepoProjects` フィールドが追加されるのみです。
|
|
795
|
-
|
|
796
|
-
#### 注意事項
|
|
797
|
-
|
|
798
|
-
**ディレクトリ構造**:
|
|
799
|
-
|
|
800
|
-
Multi-Repo機能は `docs/michi/{project-name}/` ディレクトリを使用します。既存のMichi機能と同じディレクトリ構造ですが、プロジェクト名が異なる場合は別のディレクトリが作成されます。
|
|
801
|
-
|
|
802
|
-
```
|
|
803
|
-
docs/
|
|
804
|
-
├── michi/
|
|
805
|
-
│ ├── my-feature/ # 既存のSpec-Driven Development用
|
|
806
|
-
│ │ ├── overview/
|
|
807
|
-
│ │ ├── steering/
|
|
808
|
-
│ │ └── ...
|
|
809
|
-
│ └── my-multi-repo-project/ # Multi-Repo用(新規)
|
|
810
|
-
│ ├── overview/
|
|
811
|
-
│ ├── steering/
|
|
812
|
-
│ └── ...
|
|
813
|
-
```
|
|
814
|
-
|
|
815
|
-
**Confluence階層構造**:
|
|
816
|
-
|
|
817
|
-
Multi-Repo機能でConfluence同期を使用する場合、以下の階層構造が作成されます。
|
|
818
|
-
|
|
819
|
-
```
|
|
820
|
-
Confluenceスペース (例: MYSPACE)
|
|
821
|
-
└── my-multi-repo-project (親ページ)
|
|
822
|
-
├── my-multi-repo-project - Requirements
|
|
823
|
-
├── my-multi-repo-project - Architecture
|
|
824
|
-
├── my-multi-repo-project - Sequence Diagrams
|
|
825
|
-
└── my-multi-repo-project - Test Strategy
|
|
826
|
-
```
|
|
827
|
-
|
|
828
|
-
既存のConfluenceページとは別の階層構造となるため、影響はありません。
|
|
829
|
-
|
|
830
|
-
## トラブルシューティング
|
|
831
|
-
|
|
832
|
-
### 問題1: GITHUB_TOKEN が設定されていないエラー
|
|
833
|
-
|
|
834
|
-
**エラーメッセージ**:
|
|
835
|
-
```
|
|
836
|
-
Error: GITHUB_TOKEN environment variable is not set
|
|
837
|
-
```
|
|
838
|
-
|
|
839
|
-
**原因**:
|
|
840
|
-
`GITHUB_TOKEN` 環境変数が設定されていません。
|
|
841
|
-
|
|
842
|
-
**対処法**:
|
|
843
|
-
1. GitHub Personal Access Token を作成(上記「セットアップ」参照)
|
|
844
|
-
2. `.env` ファイルに追加:
|
|
845
|
-
```
|
|
846
|
-
GITHUB_TOKEN=ghp_your_token
|
|
847
|
-
```
|
|
848
|
-
3. コマンドを再実行
|
|
849
|
-
|
|
850
|
-
### 問題2: Confluence認証エラー
|
|
851
|
-
|
|
852
|
-
**エラーメッセージ**:
|
|
853
|
-
```
|
|
854
|
-
Error: Missing Confluence credentials in .env file
|
|
855
|
-
```
|
|
856
|
-
|
|
857
|
-
**原因**:
|
|
858
|
-
- Atlassian認証情報が正しく設定されていない
|
|
859
|
-
- API Tokenの有効期限が切れている
|
|
860
|
-
- URLが間違っている
|
|
861
|
-
|
|
862
|
-
**対処法**:
|
|
863
|
-
1. `.env` ファイルの設定を確認:
|
|
864
|
-
```
|
|
865
|
-
ATLASSIAN_URL=https://your-domain.atlassian.net
|
|
866
|
-
ATLASSIAN_EMAIL=your-email@example.com
|
|
867
|
-
ATLASSIAN_API_TOKEN=your_token
|
|
868
|
-
```
|
|
869
|
-
2. URLが正しい形式か確認(`https://` で始まり、`.atlassian.net` で終わる)
|
|
870
|
-
3. API Tokenを再作成して設定
|
|
871
|
-
|
|
872
|
-
### 問題3: プロジェクト名にパス区切り文字が含まれているエラー
|
|
873
|
-
|
|
874
|
-
**エラーメッセージ**:
|
|
875
|
-
```
|
|
876
|
-
Error: Project name must not contain path traversal characters (/, \), relative path components (., ..), or control characters
|
|
877
|
-
```
|
|
878
|
-
|
|
879
|
-
**原因**:
|
|
880
|
-
セキュリティ対策として、プロジェクト名にパス区切り文字(`/`, `\`)、相対パス(`.`, `..`)、制御文字が禁止されています。
|
|
881
|
-
|
|
882
|
-
**解決方法**:
|
|
883
|
-
|
|
884
|
-
プロジェクト名を変更して、以下の文字を含まないようにしてください。
|
|
885
|
-
|
|
886
|
-
- パス区切り文字: `/`, `\`
|
|
887
|
-
- 相対パス: `.`, `..`
|
|
888
|
-
- 制御文字: `\x00`-`\x1F`, `\x7F`
|
|
889
|
-
|
|
890
|
-
**例**:
|
|
891
|
-
```bash
|
|
892
|
-
# 不正な例
|
|
893
|
-
michi multi-repo:init my/project # スラッシュを含む
|
|
894
|
-
michi multi-repo:init ../project # 相対パスを含む
|
|
895
|
-
|
|
896
|
-
# 正しい例
|
|
897
|
-
michi multi-repo:init my-project
|
|
898
|
-
michi multi-repo:init my_project
|
|
899
|
-
michi multi-repo:init myproject
|
|
900
|
-
```
|
|
901
|
-
|
|
902
|
-
### 問題4: リポジトリURLが無効
|
|
903
|
-
|
|
904
|
-
**エラーメッセージ**:
|
|
905
|
-
```
|
|
906
|
-
Error: Repository URL must be in GitHub format: https://github.com/{owner}/{repo}
|
|
907
|
-
```
|
|
908
|
-
|
|
909
|
-
**原因**:
|
|
910
|
-
セキュリティ対策として、GitHub HTTPS URLのみが許可されています。
|
|
911
|
-
|
|
912
|
-
**解決方法**:
|
|
913
|
-
|
|
914
|
-
リポジトリURLを以下の形式に変更してください。
|
|
915
|
-
|
|
916
|
-
```
|
|
917
|
-
https://github.com/{owner}/{repo}
|
|
918
|
-
```
|
|
919
|
-
|
|
920
|
-
**例**:
|
|
921
|
-
```bash
|
|
922
|
-
# 不正な例
|
|
923
|
-
--url git@github.com:your-org/repo.git # SSH URL
|
|
924
|
-
--url https://github.com/your-org/repo.git # .git拡張子を含む
|
|
925
|
-
--url http://github.com/your-org/repo # HTTP (非セキュア)
|
|
926
|
-
|
|
927
|
-
# 正しい例
|
|
928
|
-
--url https://github.com/your-org/repo
|
|
929
|
-
```
|
|
930
|
-
|
|
931
|
-
### 問題5: GitHub API レート制限エラー
|
|
932
|
-
|
|
933
|
-
**エラーメッセージ**:
|
|
934
|
-
```
|
|
935
|
-
Warning: GitHub API rate limit exceeded. Retrying after X seconds...
|
|
936
|
-
```
|
|
937
|
-
|
|
938
|
-
**原因**:
|
|
939
|
-
GitHub API呼び出しがレート制限(5,000リクエスト/時間)に達した。
|
|
940
|
-
|
|
941
|
-
**解決方法**:
|
|
942
|
-
|
|
943
|
-
Michiは自動的にExponential Backoffで再試行します。以下の対策を検討してください。
|
|
944
|
-
|
|
945
|
-
1. **待機**: 自動再試行が完了するまで待つ(最大3回再試行)
|
|
946
|
-
2. **キャッシング活用**: CI結果は15分間キャッシュされるため、頻繁な実行を避ける
|
|
947
|
-
3. **GitHub Enterprise**: より高いレート制限が必要な場合は、GitHub Enterpriseの使用を検討
|
|
948
|
-
|
|
949
|
-
### 問題6: config.jsonが破損している
|
|
950
|
-
|
|
951
|
-
**エラーメッセージ**:
|
|
952
|
-
```
|
|
953
|
-
Error: Failed to parse config: Unexpected token } in JSON at position X
|
|
954
|
-
```
|
|
955
|
-
|
|
956
|
-
**原因**:
|
|
957
|
-
`.michi/config.json` が不正なJSON形式になっている。
|
|
958
|
-
|
|
959
|
-
**解決方法**:
|
|
960
|
-
|
|
961
|
-
1. バックアップが存在する場合、復元する
|
|
962
|
-
|
|
963
|
-
```bash
|
|
964
|
-
cp .michi/config.json.backup .michi/config.json
|
|
965
|
-
```
|
|
966
|
-
|
|
967
|
-
2. バックアップが存在しない場合、config.jsonを手動で修正する
|
|
968
|
-
|
|
969
|
-
```bash
|
|
970
|
-
# JSONリンターで構文エラーを確認
|
|
971
|
-
cat .michi/config.json | jq .
|
|
972
|
-
```
|
|
973
|
-
|
|
974
|
-
3. それでも解決しない場合、config.jsonを再生成する
|
|
975
|
-
|
|
976
|
-
```bash
|
|
977
|
-
# 既存のconfig.jsonをバックアップ
|
|
978
|
-
mv .michi/config.json .michi/config.json.broken
|
|
979
|
-
|
|
980
|
-
# 新しいconfig.jsonを生成(Multi-Repoプロジェクトは失われる)
|
|
981
|
-
michi config:validate
|
|
982
|
-
```
|
|
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
|
-
|
|
1082
|
-
## FAQ
|
|
1083
|
-
|
|
1084
|
-
### Q1: Multi-Repo機能はどのようなプロジェクトに適していますか?
|
|
1085
|
-
|
|
1086
|
-
**A**: 以下のようなプロジェクトに適しています:
|
|
1087
|
-
- マイクロサービスアーキテクチャ(複数の独立したサービスリポジトリ)
|
|
1088
|
-
- フロントエンド・バックエンド分離アーキテクチャ
|
|
1089
|
-
- モバイルアプリ + API + Webダッシュボード
|
|
1090
|
-
- インフラ as Code を別リポジトリで管理
|
|
1091
|
-
|
|
1092
|
-
### Q2: リポジトリの最大数に制限はありますか?
|
|
1093
|
-
|
|
1094
|
-
**A**: 技術的な制限はありませんが、以下の推奨事項があります:
|
|
1095
|
-
- 実用的には10-20リポジトリ程度を推奨
|
|
1096
|
-
- CI結果集約は並列処理により高速化(10リポジトリで30秒以内)
|
|
1097
|
-
- 100リポジトリまでテスト済み(5分以内)
|
|
1098
|
-
|
|
1099
|
-
### Q3: Private リポジトリは使用できますか?
|
|
1100
|
-
|
|
1101
|
-
**A**: はい、使用できます。GitHub Personal Access Token に `repo` スコープ(フル権限)を付与してください。
|
|
1102
|
-
|
|
1103
|
-
### Q4: GitHub Actions以外のCIツール(Jenkins、CircleCIなど)には対応していますか?
|
|
1104
|
-
|
|
1105
|
-
**A**: 現在はGitHub Actionsのみ対応しています。他のCIツールのサポートは将来のバージョンで検討中です。
|
|
1106
|
-
|
|
1107
|
-
### Q5: Mermaidダイアグラムの変換に対応していない記法はありますか?
|
|
1108
|
-
|
|
1109
|
-
**A**: 基本的な記法(graph, flowchart, sequenceDiagram, classDiagram)はサポートしています。複雑なカスタマイズや最新の実験的機能は未サポートの可能性があります。
|
|
1110
|
-
|
|
1111
|
-
### Q6: Confluenceの複数スペースに同期できますか?
|
|
1112
|
-
|
|
1113
|
-
**A**: 1プロジェクトにつき1つのConfluenceスペースに同期します。複数スペースに同期する場合は、プロジェクトを分けて管理してください。
|
|
1114
|
-
|
|
1115
|
-
### Q7: キャッシュファイル (`.ci-cache.json`) は削除しても大丈夫ですか?
|
|
1116
|
-
|
|
1117
|
-
**A**: はい、削除しても問題ありません。次回のCI結果集約時に自動的に再生成されます。ただし、キャッシュがない状態では初回取得に時間がかかります。
|
|
1118
|
-
|
|
1119
|
-
### Q8: テストスクリプトはどこで実行されますか?
|
|
1120
|
-
|
|
1121
|
-
**A**: プロジェクトルートディレクトリ(`.michi/config.json` が存在するディレクトリ)で実行されます。リポジトリごとに異なるディレクトリでスクリプトを実行することはできません。
|
|
1122
|
-
|
|
1123
|
-
### Q9: 既存のプロジェクトにMulti-Repo機能を追加できますか?
|
|
1124
|
-
|
|
1125
|
-
**A**: はい、可能です。`michi multi-repo:init` を実行すれば、既存の `.michi/config.json` に `multiRepoProjects` セクションが追加されます。
|
|
1126
|
-
|
|
1127
|
-
### Q10: プロジェクトを削除するにはどうすればいいですか?
|
|
1128
|
-
|
|
1129
|
-
**A**: 現在、削除用のコマンドはありません。`.michi/config.json` を直接編集して該当プロジェクトを削除してください。将来のバージョンで削除コマンドを追加予定です。
|
|
1130
|
-
|
|
1131
|
-
## AI支援要件定義・設計
|
|
1132
|
-
|
|
1133
|
-
Multi-Repoプロジェクトでは、AI支援による要件定義・設計書の自動生成が可能です。
|
|
1134
|
-
|
|
1135
|
-
### 前提条件
|
|
1136
|
-
|
|
1137
|
-
- プロジェクトが初期化されていること(`/michi-multi-repo:spec-init` または `michi multi-repo:init`)
|
|
1138
|
-
- 1つ以上のリポジトリが登録されていること(`michi multi-repo:add-repo`)
|
|
1139
|
-
|
|
1140
|
-
### 6. AIプロジェクト初期化(NEW)
|
|
1141
|
-
|
|
1142
|
-
Multi-Repoプロジェクトを AI支援で初期化します。`michi multi-repo:init` の代替コマンドです。
|
|
1143
|
-
|
|
1144
|
-
```bash
|
|
1145
|
-
/michi-multi-repo:spec-init "<プロジェクト説明>" --jira <JIRA_KEY> --confluence-space <SPACE>
|
|
1146
|
-
```
|
|
1147
|
-
|
|
1148
|
-
**例**:
|
|
1149
|
-
```bash
|
|
1150
|
-
/michi-multi-repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
|
|
1151
|
-
```
|
|
1152
|
-
|
|
1153
|
-
**機能**:
|
|
1154
|
-
- プロジェクト説明からプロジェクト名を自動生成
|
|
1155
|
-
- ディレクトリ構造を作成(`docs/michi/{project}/`)
|
|
1156
|
-
- メタデータファイル(`spec.json`)を作成
|
|
1157
|
-
- `.michi/config.json` の `multiRepoProjects` に登録
|
|
1158
|
-
- 初期テンプレートファイルを生成
|
|
1159
|
-
|
|
1160
|
-
**出力**:
|
|
1161
|
-
- `docs/michi/{project}/spec.json` - メタデータ(phase: initialized)
|
|
1162
|
-
- `docs/michi/{project}/overview/requirements.md` - 要件定義書(初期化済み)
|
|
1163
|
-
- `docs/michi/{project}/overview/architecture.md` - 設計書(テンプレート)
|
|
1164
|
-
- `.michi/config.json` - multiRepoProjects に追加
|
|
1165
|
-
|
|
1166
|
-
**`michi multi-repo:init` との違い**:
|
|
1167
|
-
- プロジェクト説明を入力して自動的にプロジェクト名を生成
|
|
1168
|
-
- spec.json でメタデータ管理(phase、承認状態等)
|
|
1169
|
-
- AIコマンドで一貫したワークフローを実現
|
|
1170
|
-
|
|
1171
|
-
### 7. AI要件定義書の生成
|
|
1172
|
-
|
|
1173
|
-
プロジェクトの要件定義書をAI支援で自動生成します。
|
|
1174
|
-
|
|
1175
|
-
```bash
|
|
1176
|
-
/michi-multi-repo:spec-requirements <project-name>
|
|
1177
|
-
```
|
|
1178
|
-
|
|
1179
|
-
**例**:
|
|
1180
|
-
```bash
|
|
1181
|
-
/michi-multi-repo:spec-requirements my-microservices
|
|
1182
|
-
```
|
|
1183
|
-
|
|
1184
|
-
**生成される内容**:
|
|
1185
|
-
- プロジェクト概要
|
|
1186
|
-
- サービス構成(登録リポジトリ一覧、依存関係図)
|
|
1187
|
-
- インターフェース要件(API契約、イベント契約)
|
|
1188
|
-
- 機能要件(EARS形式)
|
|
1189
|
-
- 非機能要件(パフォーマンス、セキュリティ等)
|
|
1190
|
-
|
|
1191
|
-
**出力先**: `docs/michi/{project}/overview/requirements.md`
|
|
1192
|
-
|
|
1193
|
-
### 8. AI設計書の生成
|
|
1194
|
-
|
|
1195
|
-
プロジェクトの技術設計書をAI支援で自動生成します。
|
|
1196
|
-
|
|
1197
|
-
```bash
|
|
1198
|
-
/michi-multi-repo:spec-design <project-name> [-y]
|
|
1199
|
-
```
|
|
1200
|
-
|
|
1201
|
-
**例**:
|
|
1202
|
-
```bash
|
|
1203
|
-
/michi-multi-repo:spec-design my-microservices
|
|
1204
|
-
```
|
|
1205
|
-
|
|
1206
|
-
**生成される内容**:
|
|
1207
|
-
- システム全体図(C4モデル)
|
|
1208
|
-
- サービス横断アーキテクチャ
|
|
1209
|
-
- サービス間通信設計
|
|
1210
|
-
- 共有コンポーネント
|
|
1211
|
-
- デプロイメントアーキテクチャ
|
|
1212
|
-
- データフロー図
|
|
1213
|
-
|
|
1214
|
-
**出力先**: `docs/michi/{project}/overview/architecture.md`
|
|
1215
|
-
|
|
1216
|
-
**オプション**:
|
|
1217
|
-
- `-y`: 既存ファイルの上書きを自動承認
|
|
1218
|
-
|
|
1219
|
-
### ワークフロー例(AIコマンド使用)
|
|
1220
|
-
|
|
1221
|
-
```bash
|
|
1222
|
-
# 1. AI初期化(NEW - michi multi-repo:init の代替)
|
|
1223
|
-
/michi-multi-repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
|
|
1224
|
-
|
|
1225
|
-
# 2. リポジトリ登録
|
|
1226
|
-
michi multi-repo:add-repo my-microservices --name frontend --url https://github.com/myorg/frontend --branch main
|
|
1227
|
-
michi multi-repo:add-repo my-microservices --name backend --url https://github.com/myorg/backend --branch main
|
|
1228
|
-
michi multi-repo:add-repo my-microservices --name database --url https://github.com/myorg/db-schema --branch main
|
|
1229
|
-
|
|
1230
|
-
# 3. AI要件定義書生成(NEW)
|
|
1231
|
-
/michi-multi-repo:spec-requirements my-microservices
|
|
1232
|
-
|
|
1233
|
-
# 4. AI設計書生成(NEW)
|
|
1234
|
-
/michi-multi-repo:spec-design my-microservices
|
|
1235
|
-
|
|
1236
|
-
# 5. Confluence同期
|
|
1237
|
-
michi multi-repo:confluence-sync my-microservices --doc-type requirements
|
|
1238
|
-
michi multi-repo:confluence-sync my-microservices --doc-type architecture
|
|
1239
|
-
|
|
1240
|
-
# 6. CI結果確認
|
|
1241
|
-
michi multi-repo:ci-status my-microservices
|
|
1242
|
-
```
|
|
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
|
-
|
|
1585
|
-
## 関連ドキュメント
|
|
1586
|
-
|
|
1587
|
-
- [ワークフローガイド](./workflow.md): Michiの全体的な開発ワークフロー
|
|
1588
|
-
- [Phase自動化ガイド](./phase-automation.md): テストフェーズの自動化について
|
|
1589
|
-
- [カスタマイズガイド](./customization.md): Michiのカスタマイズ方法
|
|
1590
|
-
- [Multi-Repo API仕様書](../reference/multi-repo-api.md): Multi-Repo機能のAPI仕様(作成予定)
|