@sk8metal/michi-cli 0.8.3 → 0.8.5
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 +37 -0
- package/README.md +41 -0
- package/dist/src/commands/multi-repo-ci-status.js +1 -1
- package/dist/src/commands/multi-repo-ci-status.js.map +1 -1
- package/dist/src/commands/multi-repo-confluence-sync.js +1 -1
- package/dist/src/commands/multi-repo-confluence-sync.js.map +1 -1
- package/dist/src/commands/multi-repo-init.js +1 -1
- package/dist/src/commands/multi-repo-init.js.map +1 -1
- package/dist/src/commands/multi-repo-test.js +1 -1
- package/dist/src/commands/multi-repo-test.js.map +1 -1
- package/docs/README.md +1 -0
- package/docs/user-guide/guides/multi-repo-guide.md +113 -0
- package/package.json +1 -1
- package/templates/claude/commands/michi_multi_repo/spec-design.md +296 -0
- package/templates/claude/commands/michi_multi_repo/spec-init.md +228 -0
- package/templates/claude/commands/michi_multi_repo/spec-requirements.md +198 -0
- package/templates/multi-repo/overview/architecture.md +81 -0
- package/templates/multi-repo/overview/requirements.md +42 -0
- package/templates/multi-repo/spec.json +20 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.8.5] - 2025-12-22
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Multi-Repo AI支援コマンド**: AI駆動によるMulti-Repoプロジェクトの初期化・要件定義・設計書生成
|
|
15
|
+
- `/michi_multi_repo:spec-init`: プロジェクト説明から自動初期化、spec.jsonでメタデータ管理
|
|
16
|
+
- プロジェクト名の自動生成(feature-name形式)
|
|
17
|
+
- ディレクトリ構造の自動作成(`docs/michi/{project-name}/`)
|
|
18
|
+
- テンプレートファイルの自動展開
|
|
19
|
+
- `.michi/config.json`への自動登録
|
|
20
|
+
- `/michi_multi_repo:spec-requirements`: EARS形式の要件定義書自動生成
|
|
21
|
+
- 登録リポジトリ情報の自動反映
|
|
22
|
+
- サービス構成図(Mermaid)の作成
|
|
23
|
+
- インターフェース要件の定義
|
|
24
|
+
- サービス間依存関係の明記
|
|
25
|
+
- `/michi_multi_repo:spec-design`: C4モデルに基づいた設計書自動生成
|
|
26
|
+
- システム全体図の自動生成
|
|
27
|
+
- サービス横断アーキテクチャの設計
|
|
28
|
+
- デプロイメントアーキテクチャの可視化
|
|
29
|
+
- セキュリティ・データモデルの設計
|
|
30
|
+
- テンプレート拡張: Multi-Repo固有テンプレート
|
|
31
|
+
- `templates/multi-repo/spec.json`: メタデータ管理(phase、approvals状態)
|
|
32
|
+
- `templates/multi-repo/overview/{requirements,architecture,sequence}.md`
|
|
33
|
+
- `templates/multi-repo/steering/multi-repo.md`
|
|
34
|
+
- `templates/multi-repo/tests/strategy.md`
|
|
35
|
+
- `templates/multi-repo/docs/{ci-status,release-notes}.md`
|
|
36
|
+
- コマンド配布機構: `templates/claude/commands/michi_multi_repo/`でGit管理
|
|
37
|
+
|
|
38
|
+
## [0.8.4] - 2025-12-20
|
|
39
|
+
|
|
40
|
+
### Fixed
|
|
41
|
+
|
|
42
|
+
- **multi-repoコマンドにprojectRootパラメータを追加**
|
|
43
|
+
- マルチリポジトリ環境で正しいプロジェクトルートを参照できるように改善
|
|
44
|
+
- `findProject()`と`getConfig()`に`projectRoot`パラメータを渡すように修正
|
|
45
|
+
- 影響コマンド: `multi-repo-ci-status`, `multi-repo-confluence-sync`, `multi-repo-init`, `multi-repo-test`
|
|
46
|
+
|
|
10
47
|
## [0.8.3] - 2025-12-20
|
|
11
48
|
|
|
12
49
|
### Added
|
package/README.md
CHANGED
|
@@ -452,6 +452,47 @@ APPROVAL_GATES_RELEASE=SM,部長
|
|
|
452
452
|
|
|
453
453
|
## 他のリポジトリでプロジェクトを進める
|
|
454
454
|
|
|
455
|
+
### Multi-Repoプロジェクトの管理(NEW)
|
|
456
|
+
|
|
457
|
+
**新機能**: 複数のGitHubリポジトリを単一プロジェクトとして統合管理するMulti-Repo機能が追加されました。
|
|
458
|
+
|
|
459
|
+
**使用ケース**:
|
|
460
|
+
- マイクロサービスアーキテクチャで複数のサービスリポジトリを管理
|
|
461
|
+
- フロントエンド・バックエンド・インフラを別リポジトリで管理
|
|
462
|
+
- 複数リポジトリのCI/CD状態を一元管理
|
|
463
|
+
- 複数リポジトリの統合ドキュメントをConfluenceで管理
|
|
464
|
+
|
|
465
|
+
**AI支援による初期化・設計(推奨)**:
|
|
466
|
+
|
|
467
|
+
```bash
|
|
468
|
+
# 1. AIでプロジェクト初期化(プロジェクト説明から自動生成)
|
|
469
|
+
/michi_multi_repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
|
|
470
|
+
|
|
471
|
+
# 2. リポジトリ登録(CLIコマンド)
|
|
472
|
+
michi multi-repo:add-repo my-microservices --name frontend --url https://github.com/org/frontend --branch main
|
|
473
|
+
michi multi-repo:add-repo my-microservices --name backend --url https://github.com/org/backend --branch main
|
|
474
|
+
|
|
475
|
+
# 3. AIで要件定義書生成
|
|
476
|
+
/michi_multi_repo:spec-requirements my-microservices
|
|
477
|
+
|
|
478
|
+
# 4. AIで設計書生成(アーキテクチャ図含む)
|
|
479
|
+
/michi_multi_repo:spec-design my-microservices
|
|
480
|
+
|
|
481
|
+
# 5. Confluence同期
|
|
482
|
+
michi multi-repo:confluence-sync my-microservices
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
**従来のCLIコマンドでの初期化**:
|
|
486
|
+
|
|
487
|
+
```bash
|
|
488
|
+
# CLIコマンドのみで初期化
|
|
489
|
+
michi multi-repo:init my-microservices --jira MSV --confluence-space MSV
|
|
490
|
+
michi multi-repo:add-repo my-microservices --name frontend --url https://github.com/org/frontend --branch main
|
|
491
|
+
michi multi-repo:list # プロジェクト確認
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
詳細は [Multi-Repo管理ガイド](./docs/user-guide/guides/multi-repo-guide.md) を参照してください。
|
|
495
|
+
|
|
455
496
|
### 推奨ワークフロー(cc-sdd準拠)
|
|
456
497
|
|
|
457
498
|
既存リポジトリにMichiを導入する標準的な手順です:
|
|
@@ -177,7 +177,7 @@ export async function multiRepoCIStatus(projectName, options = {}, projectRoot =
|
|
|
177
177
|
throw new Error('GITHUB_TOKENが設定されていません。環境変数にGitHub Personal Access Tokenを設定してください。');
|
|
178
178
|
}
|
|
179
179
|
// 2. プロジェクト存在確認
|
|
180
|
-
const project = await findProject(projectName);
|
|
180
|
+
const project = await findProject(projectName, projectRoot);
|
|
181
181
|
if (!project) {
|
|
182
182
|
throw new Error(`プロジェクト「${projectName}」が見つかりません`);
|
|
183
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-repo-ci-status.js","sourceRoot":"","sources":["../../../src/commands/multi-repo-ci-status.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"multi-repo-ci-status.js","sourceRoot":"","sources":["../../../src/commands/multi-repo-ci-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ const DOC_TYPE_LABELS = {
|
|
|
39
39
|
export async function multiRepoConfluenceSync(projectName, options = {}) {
|
|
40
40
|
const { docType, projectRoot = process.cwd() } = options;
|
|
41
41
|
// 1. プロジェクト存在確認
|
|
42
|
-
const config = getConfig();
|
|
42
|
+
const config = getConfig(projectRoot);
|
|
43
43
|
const project = config.multiRepoProjects?.find(p => p.name === projectName);
|
|
44
44
|
if (!project) {
|
|
45
45
|
throw new Error(`Project not found: ${projectName}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-repo-confluence-sync.js","sourceRoot":"","sources":["../../../src/commands/multi-repo-confluence-sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AA4CtF;;GAEG;AACH,MAAM,cAAc,GAAiC;IACnD,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,0BAA0B;IACxC,QAAQ,EAAE,sBAAsB;IAChC,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,mBAAmB;IAChC,eAAe,EAAE,uBAAuB;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAiC;IACpD,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ,EAAE,eAAe;IACzB,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,eAAe;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,UAAuB,EAAE;IAEzB,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAEzD,gBAAgB;IAChB,MAAM,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"multi-repo-confluence-sync.js","sourceRoot":"","sources":["../../../src/commands/multi-repo-confluence-sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACzF,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AA4CtF;;GAEG;AACH,MAAM,cAAc,GAAiC;IACnD,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,0BAA0B;IACxC,QAAQ,EAAE,sBAAsB;IAChC,QAAQ,EAAE,mBAAmB;IAC7B,WAAW,EAAE,mBAAmB;IAChC,eAAe,EAAE,uBAAuB;CACzC,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAiC;IACpD,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,mBAAmB;IAC7B,QAAQ,EAAE,eAAe;IACzB,WAAW,EAAE,WAAW;IACxB,eAAe,EAAE,eAAe;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAmB,EACnB,UAAuB,EAAE;IAEzB,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAEzD,gBAAgB;IAChB,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAE5E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,kIAAkI,CAAC,CAAC;IACtJ,CAAC;IAED,uBAAuB;IACvB,MAAM,QAAQ,GAAmB,OAAO;QACtC,CAAC,CAAC,CAAC,OAAO,CAAC;QACX,CAAC,CAAC,CAAC,cAAc,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAE3F,mBAAmB;IACnB,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,kBAAkB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe,IAAI,gBAAgB,CAAC,KAAK,CAAC;IAEnE,gBAAgB;IAChB,MAAM,UAAU,GAAqB,EAAE,CAAC;IAExC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzF,iBAAiB;QACjB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,uBAAuB,OAAO,EAAE;aACxC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,CAAC;YACpD,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,mBAAmB;YACnB,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEhD,8CAA8C;YAC9C,MAAM,iBAAiB,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;YAEhE,YAAY;YACZ,MAAM,SAAS,GAAG,GAAG,WAAW,MAAM,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAE9D,4BAA4B;YAC5B,IAAI,UAAU,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAEhE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,kBAAkB;gBAClB,UAAU,GAAG,MAAM,MAAM,CAAC,UAAU,CAClC,QAAQ,EACR,WAAW,EACX,0BAA0B,WAAW,MAAM,EAC3C,CAAC,YAAY,EAAE,WAAW,CAAC,CAC5B,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,oBAAoB;YACpB,IAAI,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC;YAEvE,IAAI,IAAI,EAAE,CAAC;gBACT,WAAW;gBACX,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC;gBAC1C,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;gBAC/E,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,UAAU;gBACV,IAAI,GAAG,MAAM,MAAM,CAAC,qBAAqB,CACvC,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,EACjC,UAAU,CAAC,EAAE,CACd,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;YACzC,CAAC;YAED,WAAW;YACX,MAAM,OAAO,GAAG,GAAG,gBAAgB,CAAC,GAAG,gBAAgB,QAAQ,UAAU,IAAI,CAAC,EAAE,IAAI,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC;YAEpH,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,SAAS;gBACT,OAAO;gBACP,iBAAiB;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,UAAU,CAAC,IAAI,CAAC;gBACd,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,YAAY;aACpB,CAAC,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,KAAK,YAAY,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,UAAU;IACV,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;IAE9D,OAAO;QACL,WAAW;QACX,UAAU;QACV,YAAY;QACZ,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
@@ -32,7 +32,7 @@ export async function multiRepoInit(projectName, jiraKey, confluenceSpace, proje
|
|
|
32
32
|
throw new Error('Confluenceスペースキーが空です');
|
|
33
33
|
}
|
|
34
34
|
// 4. 既存プロジェクト重複チェック
|
|
35
|
-
const existingProject = await findProject(projectName);
|
|
35
|
+
const existingProject = await findProject(projectName, projectRoot);
|
|
36
36
|
if (existingProject) {
|
|
37
37
|
throw new Error(`プロジェクト「${projectName}」は既に存在します`);
|
|
38
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-repo-init.js","sourceRoot":"","sources":["../../../src/commands/multi-repo-init.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EACL,mBAAmB,EACnB,eAAe,GAChB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,WAAW,EACX,mBAAmB,GACpB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,8BAA8B,EAC9B,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAcvD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,OAAe,EACf,eAAuB,EACvB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,qBAAqB;IACrB,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC/D,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,iBAAiB,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3D,CAAC;IACJ,CAAC;IAED,oBAAoB;IACpB,MAAM,iBAAiB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CACb,gBAAgB,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtD,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,oBAAoB;IACpB,MAAM,eAAe,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-repo-init.js","sourceRoot":"","sources":["../../../src/commands/multi-repo-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ export async function multiRepoTest(projectName, testType, options = {}, project
|
|
|
30
30
|
throw new Error(`無効なテストタイプです: ${testType}。指定可能なテストタイプ: e2e, integration, performance`);
|
|
31
31
|
}
|
|
32
32
|
// 2. プロジェクト存在確認
|
|
33
|
-
const project = await findProject(projectName);
|
|
33
|
+
const project = await findProject(projectName, projectRoot);
|
|
34
34
|
if (!project) {
|
|
35
35
|
throw new Error(`プロジェクト「${projectName}」が見つかりません`);
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-repo-test.js","sourceRoot":"","sources":["../../../src/commands/multi-repo-test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAgDvE;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,QAAgB,EAChB,UAAuB,EAAE,EACzB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,oBAAoB;IACpB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,gBAAgB,QAAQ,6CAA6C,CACtE,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"multi-repo-test.js","sourceRoot":"","sources":["../../../src/commands/multi-repo-test.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAgDvE;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,QAAgB,EAChB,UAAuB,EAAE,EACzB,cAAsB,OAAO,CAAC,GAAG,EAAE;IAEnC,oBAAoB;IACpB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,gBAAgB,QAAQ,6CAA6C,CACtE,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,UAAU,WAAW,WAAW,CAAC,CAAC;IACpD,CAAC;IAED,kBAAkB;IAClB,MAAM,UAAU,GAAG,IAAI,CACrB,WAAW,EACX,MAAM,EACN,OAAO,EACP,WAAW,EACX,OAAO,EACP,SAAS,EACT,OAAO,QAAQ,KAAK,CACrB,CAAC;IAEF,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,qBAAqB,UAAU,qBAAqB,CACrD,CAAC;IACJ,CAAC;IAED,sBAAsB;IACtB,IAAI,kBAAsC,CAAC;IAC3C,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7B,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACpD,MAAM,iBAAiB,GAAG,MAAM,kBAAkB,CAAC,cAAc,CAC/D,WAAW,EACX,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YAC/B,mBAAmB;YACnB,MAAM,cAAc,GAAG,iBAAiB,CAAC,cAAc;iBACpD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;iBACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;iBACrD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,kBAAkB,GAAG,mBAAmB,cAAc,EAAE,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAChD,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAC1D,WAAW,EACX,QAAQ,EACR,WAAW,CACZ,CAAC;IAEF,WAAW;IACX,OAAO;QACL,OAAO,EAAE,eAAe,CAAC,OAAO;QAChC,WAAW;QACX,QAAQ;QACR,eAAe;QACf,kBAAkB;KACnB,CAAC;AACJ,CAAC"}
|
package/docs/README.md
CHANGED
|
@@ -25,6 +25,7 @@ Michiを使った開発の実践的なガイドです。
|
|
|
25
25
|
|------------|------|
|
|
26
26
|
| [ワークフローガイド](./guides/workflow.md) ⭐ | AI開発フローの詳細 |
|
|
27
27
|
| [フェーズ自動化ガイド](./guides/phase-automation.md) ⭐ | Confluence/JIRA自動作成 |
|
|
28
|
+
| [Multi-Repo管理ガイド](./guides/multi-repo-guide.md) | マイクロサービス等複数リポジトリの統合管理、AI支援初期化・要件定義・設計 |
|
|
28
29
|
| [マルチプロジェクト管理](./guides/multi-project.md) | 複数プロジェクトの同時管理 |
|
|
29
30
|
| [カスタマイズガイド](./guides/customization.md) | Confluence/JIRA階層構造のカスタマイズ |
|
|
30
31
|
|
|
@@ -906,6 +906,119 @@ michi config:validate
|
|
|
906
906
|
|
|
907
907
|
**A**: 現在、削除用のコマンドはありません。`.michi/config.json` を直接編集して該当プロジェクトを削除してください。将来のバージョンで削除コマンドを追加予定です。
|
|
908
908
|
|
|
909
|
+
## AI支援要件定義・設計
|
|
910
|
+
|
|
911
|
+
Multi-Repoプロジェクトでは、AI支援による要件定義・設計書の自動生成が可能です。
|
|
912
|
+
|
|
913
|
+
### 前提条件
|
|
914
|
+
|
|
915
|
+
- プロジェクトが初期化されていること(`/michi_multi_repo:spec-init` または `michi multi-repo:init`)
|
|
916
|
+
- 1つ以上のリポジトリが登録されていること(`michi multi-repo:add-repo`)
|
|
917
|
+
|
|
918
|
+
### 6. AIプロジェクト初期化(NEW)
|
|
919
|
+
|
|
920
|
+
Multi-Repoプロジェクトを AI支援で初期化します。`michi multi-repo:init` の代替コマンドです。
|
|
921
|
+
|
|
922
|
+
```bash
|
|
923
|
+
/michi_multi_repo:spec-init "<プロジェクト説明>" --jira <JIRA_KEY> --confluence-space <SPACE>
|
|
924
|
+
```
|
|
925
|
+
|
|
926
|
+
**例**:
|
|
927
|
+
```bash
|
|
928
|
+
/michi_multi_repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
|
|
929
|
+
```
|
|
930
|
+
|
|
931
|
+
**機能**:
|
|
932
|
+
- プロジェクト説明からプロジェクト名を自動生成
|
|
933
|
+
- ディレクトリ構造を作成(`docs/michi/{project}/`)
|
|
934
|
+
- メタデータファイル(`spec.json`)を作成
|
|
935
|
+
- `.michi/config.json` の `multiRepoProjects` に登録
|
|
936
|
+
- 初期テンプレートファイルを生成
|
|
937
|
+
|
|
938
|
+
**出力**:
|
|
939
|
+
- `docs/michi/{project}/spec.json` - メタデータ(phase: initialized)
|
|
940
|
+
- `docs/michi/{project}/overview/requirements.md` - 要件定義書(初期化済み)
|
|
941
|
+
- `docs/michi/{project}/overview/architecture.md` - 設計書(テンプレート)
|
|
942
|
+
- `.michi/config.json` - multiRepoProjects に追加
|
|
943
|
+
|
|
944
|
+
**`michi multi-repo:init` との違い**:
|
|
945
|
+
- プロジェクト説明を入力して自動的にプロジェクト名を生成
|
|
946
|
+
- spec.json でメタデータ管理(phase、承認状態等)
|
|
947
|
+
- AIコマンドで一貫したワークフローを実現
|
|
948
|
+
|
|
949
|
+
### 7. AI要件定義書の生成
|
|
950
|
+
|
|
951
|
+
プロジェクトの要件定義書をAI支援で自動生成します。
|
|
952
|
+
|
|
953
|
+
```bash
|
|
954
|
+
/michi_multi_repo:spec-requirements <project-name>
|
|
955
|
+
```
|
|
956
|
+
|
|
957
|
+
**例**:
|
|
958
|
+
```bash
|
|
959
|
+
/michi_multi_repo:spec-requirements my-microservices
|
|
960
|
+
```
|
|
961
|
+
|
|
962
|
+
**生成される内容**:
|
|
963
|
+
- プロジェクト概要
|
|
964
|
+
- サービス構成(登録リポジトリ一覧、依存関係図)
|
|
965
|
+
- インターフェース要件(API契約、イベント契約)
|
|
966
|
+
- 機能要件(EARS形式)
|
|
967
|
+
- 非機能要件(パフォーマンス、セキュリティ等)
|
|
968
|
+
|
|
969
|
+
**出力先**: `docs/michi/{project}/overview/requirements.md`
|
|
970
|
+
|
|
971
|
+
### 8. AI設計書の生成
|
|
972
|
+
|
|
973
|
+
プロジェクトの技術設計書をAI支援で自動生成します。
|
|
974
|
+
|
|
975
|
+
```bash
|
|
976
|
+
/michi_multi_repo:spec-design <project-name> [-y]
|
|
977
|
+
```
|
|
978
|
+
|
|
979
|
+
**例**:
|
|
980
|
+
```bash
|
|
981
|
+
/michi_multi_repo:spec-design my-microservices
|
|
982
|
+
```
|
|
983
|
+
|
|
984
|
+
**生成される内容**:
|
|
985
|
+
- システム全体図(C4モデル)
|
|
986
|
+
- サービス横断アーキテクチャ
|
|
987
|
+
- サービス間通信設計
|
|
988
|
+
- 共有コンポーネント
|
|
989
|
+
- デプロイメントアーキテクチャ
|
|
990
|
+
- データフロー図
|
|
991
|
+
|
|
992
|
+
**出力先**: `docs/michi/{project}/overview/architecture.md`
|
|
993
|
+
|
|
994
|
+
**オプション**:
|
|
995
|
+
- `-y`: 既存ファイルの上書きを自動承認
|
|
996
|
+
|
|
997
|
+
### ワークフロー例(AIコマンド使用)
|
|
998
|
+
|
|
999
|
+
```bash
|
|
1000
|
+
# 1. AI初期化(NEW - michi multi-repo:init の代替)
|
|
1001
|
+
/michi_multi_repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
|
|
1002
|
+
|
|
1003
|
+
# 2. リポジトリ登録
|
|
1004
|
+
michi multi-repo:add-repo my-microservices --name frontend --url https://github.com/myorg/frontend --branch main
|
|
1005
|
+
michi multi-repo:add-repo my-microservices --name backend --url https://github.com/myorg/backend --branch main
|
|
1006
|
+
michi multi-repo:add-repo my-microservices --name database --url https://github.com/myorg/db-schema --branch main
|
|
1007
|
+
|
|
1008
|
+
# 3. AI要件定義書生成(NEW)
|
|
1009
|
+
/michi_multi_repo:spec-requirements my-microservices
|
|
1010
|
+
|
|
1011
|
+
# 4. AI設計書生成(NEW)
|
|
1012
|
+
/michi_multi_repo:spec-design my-microservices
|
|
1013
|
+
|
|
1014
|
+
# 5. Confluence同期
|
|
1015
|
+
michi multi-repo:confluence-sync my-microservices --doc-type requirements
|
|
1016
|
+
michi multi-repo:confluence-sync my-microservices --doc-type architecture
|
|
1017
|
+
|
|
1018
|
+
# 6. CI結果確認
|
|
1019
|
+
michi multi-repo:ci-status my-microservices
|
|
1020
|
+
```
|
|
1021
|
+
|
|
909
1022
|
## 関連ドキュメント
|
|
910
1023
|
|
|
911
1024
|
- [ワークフローガイド](./workflow.md): Michiの全体的な開発ワークフロー
|
package/package.json
CHANGED
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Multi-Repoプロジェクトの設計書をAI支援で生成
|
|
3
|
+
allowed-tools: Bash, Glob, Grep, LS, Read, Write, Edit, MultiEdit, Update, WebSearch, WebFetch
|
|
4
|
+
argument-hint: <project-name> [-y]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Multi-Repo Design Generator
|
|
8
|
+
|
|
9
|
+
<background_information>
|
|
10
|
+
- **Mission**: Multi-Repoプロジェクトの包括的な技術設計書を生成
|
|
11
|
+
- **Success Criteria**:
|
|
12
|
+
- 全サービスのアーキテクチャを統合
|
|
13
|
+
- サービス間通信の設計を明確化
|
|
14
|
+
- 各サービスの技術スタックを反映
|
|
15
|
+
- C4モデルに基づいた視覚的な設計図を含む
|
|
16
|
+
</background_information>
|
|
17
|
+
|
|
18
|
+
<instructions>
|
|
19
|
+
## Core Task
|
|
20
|
+
Multi-Repoプロジェクト **$1** の技術設計書を生成します。
|
|
21
|
+
|
|
22
|
+
## Execution Steps
|
|
23
|
+
|
|
24
|
+
### Step 1: コンテキスト読み込み
|
|
25
|
+
1. `.michi/config.json` からプロジェクト情報取得
|
|
26
|
+
- プロジェクト名、JIRAキー、Confluenceスペース
|
|
27
|
+
- 登録リポジトリ一覧
|
|
28
|
+
2. `docs/michi/$1/overview/requirements.md` から要件読み込み
|
|
29
|
+
- 要件定義書が存在しない場合は、先に `/michi_multi_repo:spec-requirements $1` の実行を促す
|
|
30
|
+
3. `.kiro/settings/rules/design-principles.md` から設計原則取得(存在する場合)
|
|
31
|
+
4. `.kiro/settings/templates/specs/design.md` から構造参照(存在する場合)
|
|
32
|
+
|
|
33
|
+
### Step 2: Discovery & Analysis
|
|
34
|
+
|
|
35
|
+
**Multi-Repo固有の分析**:
|
|
36
|
+
|
|
37
|
+
1. **各リポジトリの技術スタック調査**
|
|
38
|
+
- package.json / build.gradle / composer.json / requirements.txt
|
|
39
|
+
- 使用フレームワーク、ライブラリバージョン
|
|
40
|
+
- 依存関係の分析
|
|
41
|
+
|
|
42
|
+
2. **サービス間通信パターンの特定**
|
|
43
|
+
- REST API / GraphQL / gRPC
|
|
44
|
+
- メッセージキュー / イベントバス(Kafka、RabbitMQ等)
|
|
45
|
+
- 同期通信 vs 非同期通信
|
|
46
|
+
|
|
47
|
+
3. **共有コンポーネントの識別**
|
|
48
|
+
- 共通ライブラリ
|
|
49
|
+
- 共有データモデル
|
|
50
|
+
- 共通インフラストラクチャ(ログ、監視、認証等)
|
|
51
|
+
|
|
52
|
+
4. **データフローの分析**
|
|
53
|
+
- サービス間のデータ連携
|
|
54
|
+
- データの永続化方式
|
|
55
|
+
- キャッシュ戦略
|
|
56
|
+
|
|
57
|
+
### Step 3: 設計書生成
|
|
58
|
+
|
|
59
|
+
以下のセクションを含む設計書を生成します:
|
|
60
|
+
|
|
61
|
+
1. **システム全体図**
|
|
62
|
+
- C4モデル - システムコンテキスト図(Mermaid)
|
|
63
|
+
- 全サービスの配置とフロー
|
|
64
|
+
- 外部システムとの連携
|
|
65
|
+
|
|
66
|
+
2. **サービス横断アーキテクチャ**
|
|
67
|
+
- マイクロサービス構成図(C4モデル推奨)
|
|
68
|
+
- サービス間API契約定義
|
|
69
|
+
- イベントスキーマ定義
|
|
70
|
+
- データフロー図
|
|
71
|
+
|
|
72
|
+
3. **各サービスの設計**
|
|
73
|
+
- コンポーネント図
|
|
74
|
+
- インターフェース定義
|
|
75
|
+
- データモデル
|
|
76
|
+
- 主要クラス/モジュール構造
|
|
77
|
+
|
|
78
|
+
4. **セキュリティ設計**
|
|
79
|
+
- 認証・認可の連携(OAuth2、JWT等)
|
|
80
|
+
- 通信暗号化(TLS、mTLS)
|
|
81
|
+
- シークレット管理
|
|
82
|
+
|
|
83
|
+
5. **デプロイメントアーキテクチャ**
|
|
84
|
+
- インフラストラクチャ構成(Kubernetes、Docker等)
|
|
85
|
+
- ネットワーク設計
|
|
86
|
+
- スケーリング戦略
|
|
87
|
+
|
|
88
|
+
6. **データモデル**
|
|
89
|
+
- サービス横断のデータフロー
|
|
90
|
+
- データベーススキーマ(サービスごと)
|
|
91
|
+
- データ整合性の保証方法
|
|
92
|
+
|
|
93
|
+
### Step 4: ファイル保存
|
|
94
|
+
- 出力先: `docs/michi/$1/overview/architecture.md`
|
|
95
|
+
- 既存ファイルがある場合は、上書き確認(`-y` フラグで自動承認)
|
|
96
|
+
|
|
97
|
+
### Step 5: メタデータ更新(spec.json)
|
|
98
|
+
- `docs/michi/$1/spec.json` を読み込み
|
|
99
|
+
- phase を `"design-generated"` に更新
|
|
100
|
+
- `approvals.design.generated` を `true` に更新
|
|
101
|
+
- `updated_at` を現在のISO 8601タイムスタンプに更新
|
|
102
|
+
- spec.json を保存
|
|
103
|
+
|
|
104
|
+
## Multi-Repo固有セクション
|
|
105
|
+
|
|
106
|
+
設計書に以下のセクションを必ず含めること:
|
|
107
|
+
|
|
108
|
+
```markdown
|
|
109
|
+
## サービス横断アーキテクチャ
|
|
110
|
+
|
|
111
|
+
### C4モデル - システムコンテキスト図
|
|
112
|
+
|
|
113
|
+
\`\`\`mermaid
|
|
114
|
+
C4Context
|
|
115
|
+
title System Context Diagram
|
|
116
|
+
|
|
117
|
+
Person(user, "User", "エンドユーザー")
|
|
118
|
+
System(frontend, "Frontend Service", "Webアプリケーション")
|
|
119
|
+
System(backend, "Backend Service", "APIサーバー")
|
|
120
|
+
System_Ext(external_api, "External API", "外部サービス")
|
|
121
|
+
|
|
122
|
+
Rel(user, frontend, "Uses", "HTTPS")
|
|
123
|
+
Rel(frontend, backend, "API calls", "REST/HTTPS")
|
|
124
|
+
Rel(backend, external_api, "Integrates", "REST/HTTPS")
|
|
125
|
+
\`\`\`
|
|
126
|
+
|
|
127
|
+
### サービス間通信
|
|
128
|
+
|
|
129
|
+
| 呼び出し元 | 呼び出し先 | 方式 | プロトコル | 用途 |
|
|
130
|
+
|-----------|-----------|------|-----------|------|
|
|
131
|
+
| Frontend | API Gateway | 同期 | REST/HTTPS | ユーザーリクエスト処理 |
|
|
132
|
+
| API Gateway | Auth Service | 同期 | gRPC | 認証・認可 |
|
|
133
|
+
| User Service | Notification Service | 非同期 | Kafka | ユーザー作成イベント通知 |
|
|
134
|
+
|
|
135
|
+
### 共有コンポーネント
|
|
136
|
+
|
|
137
|
+
**共通ライブラリ**:
|
|
138
|
+
- `@org/shared-types`: TypeScript型定義(全サービスで共有)
|
|
139
|
+
- `@org/logger`: 統一ログライブラリ
|
|
140
|
+
|
|
141
|
+
**共通インフラ**:
|
|
142
|
+
- Elasticsearch: ログ集約
|
|
143
|
+
- Prometheus + Grafana: メトリクス監視
|
|
144
|
+
- Keycloak: 統合認証基盤
|
|
145
|
+
|
|
146
|
+
### デプロイメントアーキテクチャ
|
|
147
|
+
|
|
148
|
+
\`\`\`mermaid
|
|
149
|
+
graph TB
|
|
150
|
+
subgraph "Production Kubernetes Cluster"
|
|
151
|
+
LB[Load Balancer]
|
|
152
|
+
FE1[Frontend Pod 1]
|
|
153
|
+
FE2[Frontend Pod 2]
|
|
154
|
+
BE1[Backend Pod 1]
|
|
155
|
+
BE2[Backend Pod 2]
|
|
156
|
+
DB[(PostgreSQL)]
|
|
157
|
+
|
|
158
|
+
LB --> FE1
|
|
159
|
+
LB --> FE2
|
|
160
|
+
FE1 --> BE1
|
|
161
|
+
FE2 --> BE2
|
|
162
|
+
BE1 --> DB
|
|
163
|
+
BE2 --> DB
|
|
164
|
+
end
|
|
165
|
+
\`\`\`
|
|
166
|
+
|
|
167
|
+
### データフロー
|
|
168
|
+
|
|
169
|
+
\`\`\`mermaid
|
|
170
|
+
sequenceDiagram
|
|
171
|
+
participant User
|
|
172
|
+
participant Frontend
|
|
173
|
+
participant API Gateway
|
|
174
|
+
participant Auth Service
|
|
175
|
+
participant User Service
|
|
176
|
+
participant Database
|
|
177
|
+
|
|
178
|
+
User->>Frontend: リクエスト
|
|
179
|
+
Frontend->>API Gateway: API呼び出し
|
|
180
|
+
API Gateway->>Auth Service: トークン検証
|
|
181
|
+
Auth Service-->>API Gateway: 検証成功
|
|
182
|
+
API Gateway->>User Service: ユーザー情報取得
|
|
183
|
+
User Service->>Database: クエリ実行
|
|
184
|
+
Database-->>User Service: データ返却
|
|
185
|
+
User Service-->>API Gateway: レスポンス
|
|
186
|
+
API Gateway-->>Frontend: レスポンス
|
|
187
|
+
Frontend-->>User: 表示
|
|
188
|
+
\`\`\`
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Important Constraints
|
|
192
|
+
- 実装詳細ではなく、アーキテクチャ設計に焦点を当てる
|
|
193
|
+
- サービス間の境界とインターフェースを明確にする
|
|
194
|
+
- 技術選定の理由を記述する
|
|
195
|
+
- スケーラビリティとパフォーマンスを考慮
|
|
196
|
+
- セキュリティ要件を設計に反映
|
|
197
|
+
|
|
198
|
+
</instructions>
|
|
199
|
+
|
|
200
|
+
## Tool Guidance
|
|
201
|
+
- **Read first**: プロジェクト設定、要件定義書、設計原則、テンプレートを読み込み
|
|
202
|
+
- **Glob/Grep**: 各リポジトリの技術スタック調査(ローカルクローンがある場合)
|
|
203
|
+
- **Write last**: 設計書を最後に保存
|
|
204
|
+
- **WebSearch/WebFetch**: 最新の設計パターンやベストプラクティスが必要な場合のみ使用
|
|
205
|
+
|
|
206
|
+
## Output Description
|
|
207
|
+
以下の情報を出力してください:
|
|
208
|
+
|
|
209
|
+
1. **生成された設計書のパス**: `docs/michi/{project}/overview/architecture.md`
|
|
210
|
+
2. **分析したリポジトリの一覧**: サービス名と技術スタックの要約
|
|
211
|
+
3. **次のステップ**:
|
|
212
|
+
- 設計書の確認
|
|
213
|
+
- Confluence同期
|
|
214
|
+
- 各リポジトリでの個別実装
|
|
215
|
+
|
|
216
|
+
**出力形式**:
|
|
217
|
+
```markdown
|
|
218
|
+
## 設計書生成完了
|
|
219
|
+
|
|
220
|
+
### 出力ファイル
|
|
221
|
+
`docs/michi/{project}/overview/architecture.md`
|
|
222
|
+
|
|
223
|
+
### 分析したサービス
|
|
224
|
+
- **Frontend**: React + TypeScript(3リポジトリ依存)
|
|
225
|
+
- **Backend**: Node.js + Express(2リポジトリ依存)
|
|
226
|
+
- **Auth Service**: Go + gRPC(独立)
|
|
227
|
+
|
|
228
|
+
### アーキテクチャ概要
|
|
229
|
+
- **通信方式**: REST API(同期)、Kafka(非同期イベント)
|
|
230
|
+
- **データベース**: PostgreSQL(サービスごとにDB分離)
|
|
231
|
+
- **デプロイ**: Kubernetes(Pod自動スケーリング)
|
|
232
|
+
|
|
233
|
+
### 次のステップ
|
|
234
|
+
1. 設計書を確認: `docs/michi/{project}/overview/architecture.md`
|
|
235
|
+
2. Confluenceに同期: `michi multi-repo:confluence-sync {project} --doc-type architecture`
|
|
236
|
+
3. 各リポジトリで実装を開始:
|
|
237
|
+
- `/kiro:spec-init` で個別仕様を作成
|
|
238
|
+
- または直接実装を開始
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## Safety & Fallback
|
|
242
|
+
|
|
243
|
+
### Error Scenarios
|
|
244
|
+
- **要件定義書未作成**:
|
|
245
|
+
```
|
|
246
|
+
エラー: 要件定義書が見つかりません: `docs/michi/{project}/overview/requirements.md`
|
|
247
|
+
|
|
248
|
+
先に要件定義書を生成してください:
|
|
249
|
+
/michi_multi_repo:spec-requirements {project}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
- **プロジェクト未登録**:
|
|
253
|
+
```
|
|
254
|
+
エラー: プロジェクト '{project}' が見つかりません。
|
|
255
|
+
|
|
256
|
+
次のコマンドでプロジェクトを初期化してください:
|
|
257
|
+
michi multi-repo:init {project} --jira {JIRA_KEY} --confluence-space {SPACE}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
- **リポジトリアクセス不可**:
|
|
261
|
+
```
|
|
262
|
+
警告: 一部のリポジトリのローカルクローンがありません。
|
|
263
|
+
|
|
264
|
+
設定情報(URL、ブランチ)から推測して設計書を生成します。
|
|
265
|
+
より詳細な設計が必要な場合は、リポジトリをクローンしてから再実行してください。
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
- **既存ファイル存在(`-y` フラグなし)**:
|
|
269
|
+
```
|
|
270
|
+
警告: 既存の設計書が存在します: `docs/michi/{project}/overview/architecture.md`
|
|
271
|
+
|
|
272
|
+
上書きしてもよろしいですか? (y/n)
|
|
273
|
+
または `-y` フラグを使用して自動承認できます。
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Fallback Strategy
|
|
277
|
+
- **設計原則ファイル不在**: 基本的な設計原則(SOLID、DRY等)を適用
|
|
278
|
+
- **技術スタック不明**: README や設定ファイルから推測、または "未指定" として記載
|
|
279
|
+
- **依存関係不明**: 基本的なクライアント-サーバー構成を仮定
|
|
280
|
+
- **テンプレート不在**: インラインで基本構造を使用
|
|
281
|
+
|
|
282
|
+
### Next Phase: Implementation
|
|
283
|
+
|
|
284
|
+
**設計書承認後**:
|
|
285
|
+
1. 設計書を確認: `docs/michi/{project}/overview/architecture.md`
|
|
286
|
+
2. Confluenceに同期: `michi multi-repo:confluence-sync {project} --doc-type architecture`
|
|
287
|
+
3. **各リポジトリで個別実装**:
|
|
288
|
+
- リポジトリごとに `/kiro:spec-init` で仕様作成
|
|
289
|
+
- または直接実装を開始
|
|
290
|
+
4. **CI/CD設定**: `michi multi-repo:ci-status {project}` でCI結果を監視
|
|
291
|
+
|
|
292
|
+
**修正が必要な場合**:
|
|
293
|
+
- フィードバックを提供し、`/michi_multi_repo:spec-design $1` を再実行
|
|
294
|
+
- `-y` フラグで自動上書き可能
|
|
295
|
+
|
|
296
|
+
think hard
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Multi-Repoプロジェクトを初期化し、プロジェクト説明とメタデータを設定
|
|
3
|
+
allowed-tools: Bash, Glob, Read, Write, Edit
|
|
4
|
+
argument-hint: "<project-description>" --jira <JIRA_KEY> --confluence-space <SPACE>
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Multi-Repo Specification Initialization
|
|
8
|
+
|
|
9
|
+
<background_information>
|
|
10
|
+
- **Mission**: Multi-Repoプロジェクトの初期化(`michi multi-repo:init` の代替)
|
|
11
|
+
- **Success Criteria**:
|
|
12
|
+
- プロジェクト説明からfeature-name形式のプロジェクト名を生成
|
|
13
|
+
- ディレクトリ構造を作成
|
|
14
|
+
- spec.jsonでメタデータ管理を開始
|
|
15
|
+
- `.michi/config.json` のmultiRepoProjectsに登録
|
|
16
|
+
- 次のステップ(リポジトリ登録、要件定義)への明確な誘導
|
|
17
|
+
</background_information>
|
|
18
|
+
|
|
19
|
+
<instructions>
|
|
20
|
+
## Core Task
|
|
21
|
+
プロジェクト説明 **$1** から Multi-Repoプロジェクトを初期化し、`michi multi-repo:init` と同等の機能をAIコマンドとして提供します。
|
|
22
|
+
|
|
23
|
+
## 引数解析
|
|
24
|
+
|
|
25
|
+
引数の形式:
|
|
26
|
+
```
|
|
27
|
+
/michi_multi_repo:spec-init "<プロジェクト説明>" --jira <JIRA_KEY> --confluence-space <SPACE>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
パラメータ:
|
|
31
|
+
- **$1**: プロジェクト説明(必須) - 例: "マイクロサービスアーキテクチャでECサイトを構築"
|
|
32
|
+
- **--jira**: JIRAプロジェクトキー(必須) - 例: MSV
|
|
33
|
+
- **--confluence-space**: Confluenceスペースキー(必須) - 例: MSV
|
|
34
|
+
|
|
35
|
+
## Execution Steps
|
|
36
|
+
|
|
37
|
+
### Step 1: 引数解析とバリデーション
|
|
38
|
+
|
|
39
|
+
1. **プロジェクト説明の取得**: $1 からプロジェクト説明を抽出
|
|
40
|
+
2. **JIRA/Confluenceキーの取得**:
|
|
41
|
+
- `--jira` オプションの値を取得(なければエラー)
|
|
42
|
+
- `--confluence-space` オプションの値を取得(なければエラー)
|
|
43
|
+
3. **バリデーション**:
|
|
44
|
+
- JIRAキー: 2-10文字の大文字英字のみ(正規表現: `^[A-Z]{2,10}$`)
|
|
45
|
+
- Confluenceスペースキー: 空でない文字列
|
|
46
|
+
|
|
47
|
+
### Step 2: プロジェクト名の生成
|
|
48
|
+
|
|
49
|
+
1. **feature-name形式に変換**:
|
|
50
|
+
- プロジェクト説明から簡潔なプロジェクト名を生成
|
|
51
|
+
- 形式: 小文字英数字とハイフン(例: `my-microservices`, `ec-platform`)
|
|
52
|
+
- 日本語説明の場合は英語に変換
|
|
53
|
+
|
|
54
|
+
2. **一意性チェック**:
|
|
55
|
+
- `.michi/config.json` の `multiRepoProjects` を確認
|
|
56
|
+
- 重複する場合は数値サフィックスを追加(例: `my-project-2`)
|
|
57
|
+
|
|
58
|
+
### Step 3: ディレクトリ構造の作成
|
|
59
|
+
|
|
60
|
+
以下のディレクトリとファイルを作成:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
docs/michi/{project-name}/
|
|
64
|
+
├── spec.json # メタデータファイル(NEW)
|
|
65
|
+
├── overview/
|
|
66
|
+
│ ├── requirements.md # 要件定義書(プロジェクト説明を含む)
|
|
67
|
+
│ ├── architecture.md # アーキテクチャ設計書(テンプレート)
|
|
68
|
+
│ └── sequence.md # シーケンス図(テンプレート)
|
|
69
|
+
├── steering/
|
|
70
|
+
│ └── multi-repo.md # ステアリングドキュメント(テンプレート)
|
|
71
|
+
├── tests/
|
|
72
|
+
│ ├── scripts/ # テストスクリプト配置用
|
|
73
|
+
│ ├── results/ # テスト結果保存用
|
|
74
|
+
│ ├── unit/
|
|
75
|
+
│ ├── integration/
|
|
76
|
+
│ ├── e2e/
|
|
77
|
+
│ └── performance/
|
|
78
|
+
└── docs/
|
|
79
|
+
├── ci-status.md # CI結果サマリー(テンプレート)
|
|
80
|
+
└── release-notes.md # リリースノート(テンプレート)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Step 4: メタデータ初期化
|
|
84
|
+
|
|
85
|
+
1. **spec.jsonの生成**:
|
|
86
|
+
- テンプレート: `templates/multi-repo/spec.json`
|
|
87
|
+
- プレースホルダー置換:
|
|
88
|
+
- `{{PROJECT_NAME}}` → 生成されたプロジェクト名
|
|
89
|
+
- `{{CREATED_AT}}` → 現在のISO 8601タイムスタンプ
|
|
90
|
+
- `{{JIRA_KEY}}` → JIRAキー
|
|
91
|
+
- `{{CONFLUENCE_SPACE}}` → Confluenceスペースキー
|
|
92
|
+
- 出力先: `docs/michi/{project-name}/spec.json`
|
|
93
|
+
|
|
94
|
+
2. **requirements.mdの初期化**:
|
|
95
|
+
- テンプレート: `templates/multi-repo/overview/requirements.md`
|
|
96
|
+
- 「概要」セクションにプロジェクト説明を記載
|
|
97
|
+
- プレースホルダー置換
|
|
98
|
+
- 出力先: `docs/michi/{project-name}/overview/requirements.md`
|
|
99
|
+
|
|
100
|
+
3. **その他テンプレートファイルのレンダリング**:
|
|
101
|
+
- `templates/multi-repo/overview/architecture.md` → `docs/michi/{project-name}/overview/architecture.md`
|
|
102
|
+
- `templates/multi-repo/overview/sequence.md` → `docs/michi/{project-name}/overview/sequence.md`
|
|
103
|
+
- `templates/multi-repo/steering/multi-repo.md` → `docs/michi/{project-name}/steering/multi-repo.md`
|
|
104
|
+
- `templates/multi-repo/tests/strategy.md` → `docs/michi/{project-name}/tests/strategy.md`
|
|
105
|
+
- `templates/multi-repo/docs/ci-status.md` → `docs/michi/{project-name}/docs/ci-status.md`
|
|
106
|
+
- `templates/multi-repo/docs/release-notes.md` → `docs/michi/{project-name}/docs/release-notes.md`
|
|
107
|
+
|
|
108
|
+
### Step 5: .michi/config.json の更新
|
|
109
|
+
|
|
110
|
+
1. **config.jsonの読み込み**: `.michi/config.json` を読み込む
|
|
111
|
+
2. **multiRepoProjects に追加**:
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"name": "{project-name}",
|
|
115
|
+
"jiraKey": "{JIRA_KEY}",
|
|
116
|
+
"confluenceSpace": "{CONFLUENCE_SPACE}",
|
|
117
|
+
"createdAt": "{ISO 8601 timestamp}",
|
|
118
|
+
"repositories": []
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
3. **保存**: `.michi/config.json` を保存
|
|
122
|
+
|
|
123
|
+
## Important Constraints
|
|
124
|
+
- プロジェクト名は1-100文字、パストラバーサル文字(`/`, `\`, `..`)、制御文字は禁止
|
|
125
|
+
- JIRAキーは2-10文字の大文字英字のみ
|
|
126
|
+
- Confluenceスペースキーは空でない文字列
|
|
127
|
+
- 既存プロジェクト名と重複する場合は数値サフィックスを自動追加
|
|
128
|
+
- DO NOT generate requirements/design at this stage(要件・設計は後続コマンドで生成)
|
|
129
|
+
|
|
130
|
+
</instructions>
|
|
131
|
+
|
|
132
|
+
## Tool Guidance
|
|
133
|
+
- **Glob**: `.michi/config.json` 存在確認、プロジェクト名の一意性チェック
|
|
134
|
+
- **Read**: テンプレートファイル読み込み、config.json 読み込み
|
|
135
|
+
- **Write**: spec.json、requirements.md、config.json、その他テンプレート出力
|
|
136
|
+
- **Edit**: config.json の multiRepoProjects 配列に追加(必要に応じて)
|
|
137
|
+
|
|
138
|
+
## Output Description
|
|
139
|
+
日本語で以下の情報を出力してください:
|
|
140
|
+
|
|
141
|
+
1. **生成されたプロジェクト名**: `{project-name}` 形式(1-2文で理由を説明)
|
|
142
|
+
2. **プロジェクト概要**: プロジェクト説明の要約(1文)
|
|
143
|
+
3. **作成されたファイル**: 箇条書きで主要ファイルのパス
|
|
144
|
+
4. **次のステップ**: 次に実行すべきコマンド(リポジトリ登録、要件定義)
|
|
145
|
+
|
|
146
|
+
**出力形式**:
|
|
147
|
+
```markdown
|
|
148
|
+
## Multi-Repoプロジェクト初期化完了
|
|
149
|
+
|
|
150
|
+
### プロジェクト名
|
|
151
|
+
`{project-name}`
|
|
152
|
+
|
|
153
|
+
プロジェクト説明「{description}」から生成しました。
|
|
154
|
+
|
|
155
|
+
### プロジェクト概要
|
|
156
|
+
{プロジェクト説明の要約}
|
|
157
|
+
|
|
158
|
+
### 作成されたファイル
|
|
159
|
+
- `docs/michi/{project}/spec.json` - メタデータ(phase: initialized)
|
|
160
|
+
- `docs/michi/{project}/overview/requirements.md` - 要件定義書(初期化済み)
|
|
161
|
+
- `docs/michi/{project}/overview/architecture.md` - 設計書(テンプレート)
|
|
162
|
+
- `.michi/config.json` - multiRepoProjects に登録
|
|
163
|
+
|
|
164
|
+
### 次のステップ
|
|
165
|
+
|
|
166
|
+
1. **リポジトリを登録**:
|
|
167
|
+
\`\`\`bash
|
|
168
|
+
michi multi-repo:add-repo {project} --name frontend --url https://github.com/org/frontend --branch main
|
|
169
|
+
michi multi-repo:add-repo {project} --name backend --url https://github.com/org/backend --branch main
|
|
170
|
+
\`\`\`
|
|
171
|
+
|
|
172
|
+
2. **AI要件定義書を生成**:
|
|
173
|
+
\`\`\`bash
|
|
174
|
+
/michi_multi_repo:spec-requirements {project}
|
|
175
|
+
\`\`\`
|
|
176
|
+
|
|
177
|
+
3. **AI設計書を生成**:
|
|
178
|
+
\`\`\`bash
|
|
179
|
+
/michi_multi_repo:spec-design {project}
|
|
180
|
+
\`\`\`
|
|
181
|
+
|
|
182
|
+
4. **Confluenceに同期**:
|
|
183
|
+
\`\`\`bash
|
|
184
|
+
michi multi-repo:confluence-sync {project}
|
|
185
|
+
\`\`\`
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Safety & Fallback
|
|
189
|
+
|
|
190
|
+
### Error Scenarios
|
|
191
|
+
|
|
192
|
+
- **引数不足**:
|
|
193
|
+
```
|
|
194
|
+
エラー: 必須パラメータが不足しています。
|
|
195
|
+
|
|
196
|
+
使用方法:
|
|
197
|
+
/michi_multi_repo:spec-init "<プロジェクト説明>" --jira <JIRA_KEY> --confluence-space <SPACE>
|
|
198
|
+
|
|
199
|
+
例:
|
|
200
|
+
/michi_multi_repo:spec-init "マイクロサービスでECサイト構築" --jira MSV --confluence-space MSV
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
- **JIRAキーが不正**:
|
|
204
|
+
```
|
|
205
|
+
エラー: JIRAキーは2-10文字の大文字英字のみです(例: MSV, PROJ)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
- **プロジェクト名重複**:
|
|
209
|
+
```
|
|
210
|
+
警告: プロジェクト名 '{project-name}' は既に存在します。
|
|
211
|
+
自動的に '{project-name-2}' として作成しました。
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
- **config.json が存在しない**:
|
|
215
|
+
```
|
|
216
|
+
エラー: .michi/config.json が見つかりません。
|
|
217
|
+
|
|
218
|
+
Michiプロジェクトのルートディレクトリで実行してください。
|
|
219
|
+
または、次のコマンドで初期設定を行ってください:
|
|
220
|
+
michi config:init
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### Fallback Strategy
|
|
224
|
+
- プロジェクト名生成が曖昧な場合: 2-3の候補を提示し、ユーザーに選択を求める
|
|
225
|
+
- テンプレートファイル不在: エラーメッセージと対処方法を表示
|
|
226
|
+
- ディレクトリ作成失敗: パーミッションまたはディスク容量の確認を促す
|
|
227
|
+
|
|
228
|
+
think hard
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Multi-Repoプロジェクトの要件定義書をAI支援で生成
|
|
3
|
+
allowed-tools: Bash, Glob, Grep, LS, Read, Write, Edit, MultiEdit, Update, WebSearch, WebFetch
|
|
4
|
+
argument-hint: <project-name>
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Multi-Repo Requirements Generation
|
|
8
|
+
|
|
9
|
+
<background_information>
|
|
10
|
+
- **Mission**: Multi-Repoプロジェクトの包括的な要件定義書をEARS形式で生成
|
|
11
|
+
- **Success Criteria**:
|
|
12
|
+
- 登録された全リポジトリの情報を反映
|
|
13
|
+
- リポジトリ間の依存関係とインターフェースを明記
|
|
14
|
+
- EARS形式の受入基準を含む
|
|
15
|
+
- サービス構成図(Mermaid)を含む
|
|
16
|
+
</background_information>
|
|
17
|
+
|
|
18
|
+
<instructions>
|
|
19
|
+
## Core Task
|
|
20
|
+
Multi-Repoプロジェクト **$1** の要件定義書を生成します。
|
|
21
|
+
|
|
22
|
+
## Execution Steps
|
|
23
|
+
|
|
24
|
+
### Step 1: プロジェクト情報の取得
|
|
25
|
+
1. `.michi/config.json` を読み込み、プロジェクト `$1` の情報を取得
|
|
26
|
+
2. プロジェクトが登録されていない場合は、`michi multi-repo:init` の実行を促す
|
|
27
|
+
3. 登録されたリポジトリ一覧を確認
|
|
28
|
+
4. リポジトリ数が0の場合は警告を出し、基本構造のみ生成
|
|
29
|
+
|
|
30
|
+
### Step 2: コンテキスト収集
|
|
31
|
+
1. **EARS形式ルール**: `.kiro/settings/rules/ears-format.md` を読み込み
|
|
32
|
+
- EARS形式(Event-Action-Response-System)の構文を理解
|
|
33
|
+
2. **既存要件テンプレート**: `templates/multi-repo/overview/requirements.md` を確認
|
|
34
|
+
3. **各リポジトリの情報収集**:
|
|
35
|
+
- リポジトリ名、URL、ブランチ
|
|
36
|
+
- 技術スタック(package.json、build.gradle、composer.json等から推測)
|
|
37
|
+
- 主要機能(README.mdから抽出)
|
|
38
|
+
- 注: ローカルクローンがない場合は、設定情報から推測
|
|
39
|
+
|
|
40
|
+
### Step 3: 要件定義書生成
|
|
41
|
+
以下のセクションを含む要件定義書を生成します:
|
|
42
|
+
|
|
43
|
+
1. **プロジェクト概要**
|
|
44
|
+
- プロジェクト名、JIRAキー、Confluenceスペース
|
|
45
|
+
- 複数リポジトリを統合したシステムの概要
|
|
46
|
+
- ビジネス価値
|
|
47
|
+
|
|
48
|
+
2. **サービス構成**
|
|
49
|
+
- 登録リポジトリ一覧(表形式)
|
|
50
|
+
- サービス間依存関係(Mermaidダイアグラム)
|
|
51
|
+
- 各サービスの役割説明
|
|
52
|
+
|
|
53
|
+
3. **インターフェース要件**
|
|
54
|
+
- サービス間API契約(エンドポイント一覧)
|
|
55
|
+
- イベント契約(Pub/Sub、メッセージキュー等)
|
|
56
|
+
- データフォーマット
|
|
57
|
+
|
|
58
|
+
4. **機能要件**
|
|
59
|
+
- 各サービスの機能要件をEARS形式で記述
|
|
60
|
+
- サービス横断的な機能要件(認証、ログ集約等)
|
|
61
|
+
|
|
62
|
+
5. **非機能要件**
|
|
63
|
+
- パフォーマンス要件(レスポンスタイム、スループット)
|
|
64
|
+
- セキュリティ要件(認証・認可、通信暗号化)
|
|
65
|
+
- 可用性要件(SLA、冗長化)
|
|
66
|
+
- 保守性要件(モニタリング、ログ)
|
|
67
|
+
|
|
68
|
+
### Step 4: ファイル保存
|
|
69
|
+
- 出力先: `docs/michi/$1/overview/requirements.md`
|
|
70
|
+
- 既存ファイルがある場合は、上書き確認を実施
|
|
71
|
+
- ファイル保存後、完了メッセージを表示
|
|
72
|
+
|
|
73
|
+
### Step 5: メタデータ更新(spec.json)
|
|
74
|
+
- `docs/michi/$1/spec.json` を読み込み
|
|
75
|
+
- phase を `"requirements-generated"` に更新
|
|
76
|
+
- `approvals.requirements.generated` を `true` に更新
|
|
77
|
+
- `updated_at` を現在のISO 8601タイムスタンプに更新
|
|
78
|
+
- spec.json を保存
|
|
79
|
+
|
|
80
|
+
## Multi-Repo固有セクション
|
|
81
|
+
要件定義書に以下のセクションを必ず含めること:
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
## サービス構成
|
|
85
|
+
|
|
86
|
+
### 登録リポジトリ一覧
|
|
87
|
+
|
|
88
|
+
| サービス名 | リポジトリURL | ブランチ | 役割 | 技術スタック |
|
|
89
|
+
|-----------|---------------|---------|------|-------------|
|
|
90
|
+
| frontend | https://github.com/org/frontend | main | ユーザーインターフェース | React, TypeScript |
|
|
91
|
+
| backend | https://github.com/org/backend | main | APIサーバー | Node.js, Express |
|
|
92
|
+
|
|
93
|
+
### サービス間依存関係
|
|
94
|
+
|
|
95
|
+
\`\`\`mermaid
|
|
96
|
+
graph TB
|
|
97
|
+
A[Frontend] -->|REST API| B[API Gateway]
|
|
98
|
+
B -->|HTTP| C[Auth Service]
|
|
99
|
+
B -->|HTTP| D[User Service]
|
|
100
|
+
C -->|gRPC| E[Database]
|
|
101
|
+
D -->|gRPC| E
|
|
102
|
+
\`\`\`
|
|
103
|
+
|
|
104
|
+
## インターフェース要件
|
|
105
|
+
|
|
106
|
+
### API契約
|
|
107
|
+
|
|
108
|
+
**Auth Service → User Service**
|
|
109
|
+
- エンドポイント: `POST /api/v1/auth/verify`
|
|
110
|
+
- プロトコル: HTTP/REST
|
|
111
|
+
- データ形式: JSON
|
|
112
|
+
|
|
113
|
+
### イベント契約
|
|
114
|
+
|
|
115
|
+
**User Service → Notification Service**
|
|
116
|
+
- イベント: `user.created`
|
|
117
|
+
- プロトコル: Kafka
|
|
118
|
+
- スキーマ: { userId, email, createdAt }
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Important Constraints
|
|
122
|
+
- EARS形式を厳守(When/If/While/Where/The system shall)
|
|
123
|
+
- サービス名を明確にする(例: The Frontend Service shall...)
|
|
124
|
+
- 要件はテスト可能であること
|
|
125
|
+
- 実装詳細は含めない(WHAT、not HOW)
|
|
126
|
+
|
|
127
|
+
</instructions>
|
|
128
|
+
|
|
129
|
+
## Tool Guidance
|
|
130
|
+
- **Read first**: プロジェクト設定、EARS形式ルール、テンプレートを読み込み
|
|
131
|
+
- **Write last**: 要件定義書を最後に保存
|
|
132
|
+
- **WebSearch/WebFetch**: 外部ドメイン知識が必要な場合のみ使用
|
|
133
|
+
|
|
134
|
+
## Output Description
|
|
135
|
+
以下の情報を出力してください:
|
|
136
|
+
|
|
137
|
+
1. **生成された要件定義書のパス**: `docs/michi/{project}/overview/requirements.md`
|
|
138
|
+
2. **含まれるリポジトリ/サービスの一覧**: サービス名と役割の要約
|
|
139
|
+
3. **次のステップ**:
|
|
140
|
+
- `/michi_multi_repo:spec-design $1` で設計書を生成
|
|
141
|
+
- `michi multi-repo:confluence-sync $1 --doc-type requirements` でConfluenceに同期
|
|
142
|
+
|
|
143
|
+
**出力形式**:
|
|
144
|
+
```markdown
|
|
145
|
+
## 要件定義書生成完了
|
|
146
|
+
|
|
147
|
+
### 出力ファイル
|
|
148
|
+
`docs/michi/{project}/overview/requirements.md`
|
|
149
|
+
|
|
150
|
+
### 含まれるサービス
|
|
151
|
+
- **Frontend**: ユーザーインターフェース(React)
|
|
152
|
+
- **Backend**: APIサーバー(Node.js)
|
|
153
|
+
- **Database**: データ永続化(PostgreSQL)
|
|
154
|
+
|
|
155
|
+
### 次のステップ
|
|
156
|
+
1. 要件定義書を確認: `docs/michi/{project}/overview/requirements.md`
|
|
157
|
+
2. 設計書を生成: `/michi_multi_repo:spec-design {project}`
|
|
158
|
+
3. Confluenceに同期: `michi multi-repo:confluence-sync {project} --doc-type requirements`
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
## Safety & Fallback
|
|
162
|
+
|
|
163
|
+
### Error Scenarios
|
|
164
|
+
- **プロジェクト未登録**:
|
|
165
|
+
```
|
|
166
|
+
エラー: プロジェクト '{project}' が見つかりません。
|
|
167
|
+
|
|
168
|
+
次のコマンドでプロジェクトを初期化してください:
|
|
169
|
+
michi multi-repo:init {project} --jira {JIRA_KEY} --confluence-space {SPACE}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
- **リポジトリ未登録**:
|
|
173
|
+
```
|
|
174
|
+
警告: プロジェクト '{project}' にリポジトリが登録されていません。
|
|
175
|
+
|
|
176
|
+
基本的な要件定義書の骨格を生成しますが、サービス固有の情報は含まれません。
|
|
177
|
+
|
|
178
|
+
次のコマンドでリポジトリを登録してください:
|
|
179
|
+
michi multi-repo:add-repo {project} --name {name} --url {url} --branch {branch}
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- **既存ファイル存在**:
|
|
183
|
+
```
|
|
184
|
+
警告: 既存の要件定義書が存在します: `docs/michi/{project}/overview/requirements.md`
|
|
185
|
+
|
|
186
|
+
上書きしてもよろしいですか? (y/n)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
- **EARS形式ルール未取得**:
|
|
190
|
+
- `.kiro/settings/rules/ears-format.md` が存在しない場合、基本的なEARS形式を使用
|
|
191
|
+
- 警告メッセージを表示
|
|
192
|
+
|
|
193
|
+
### Fallback Strategy
|
|
194
|
+
- ローカルクローンがないリポジトリ: 設定情報(名前、URL)のみから推測
|
|
195
|
+
- 技術スタック不明: "未指定" として記載
|
|
196
|
+
- 依存関係不明: 基本的なクライアント-サーバー構成を仮定
|
|
197
|
+
|
|
198
|
+
think hard
|
|
@@ -95,6 +95,87 @@ erDiagram
|
|
|
95
95
|
|
|
96
96
|
<!-- スケーラビリティ設計を記述してください -->
|
|
97
97
|
|
|
98
|
+
## サービス横断アーキテクチャ
|
|
99
|
+
|
|
100
|
+
<!-- AI生成コマンド(/michi_multi_repo:spec-design)を使用すると、自動的にサービス横断アーキテクチャが挿入されます -->
|
|
101
|
+
|
|
102
|
+
### C4モデル - システムコンテキスト図
|
|
103
|
+
|
|
104
|
+
```mermaid
|
|
105
|
+
C4Context
|
|
106
|
+
title System Context Diagram
|
|
107
|
+
|
|
108
|
+
Person(user, "User", "エンドユーザー")
|
|
109
|
+
System(system, "{{PROJECT_NAME}}", "マルチリポジトリシステム")
|
|
110
|
+
System_Ext(external, "External System", "外部システム")
|
|
111
|
+
|
|
112
|
+
Rel(user, system, "Uses", "HTTPS")
|
|
113
|
+
Rel(system, external, "Integrates", "REST/HTTPS")
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### サービス間通信
|
|
117
|
+
|
|
118
|
+
<!-- AI生成コマンドを使用すると、サービス間通信の詳細が自動生成されます -->
|
|
119
|
+
|
|
120
|
+
| 呼び出し元 | 呼び出し先 | 方式 | プロトコル | 用途 |
|
|
121
|
+
|-----------|-----------|------|-----------|------|
|
|
122
|
+
| Frontend | API Gateway | 同期 | REST/HTTPS | ユーザーリクエスト処理 |
|
|
123
|
+
| Service A | Service B | 同期 | gRPC | サービス間通信 |
|
|
124
|
+
| Service B | Service C | 非同期 | Kafka | イベント通知 |
|
|
125
|
+
|
|
126
|
+
### 共有コンポーネント
|
|
127
|
+
|
|
128
|
+
<!-- AI生成コマンドを使用すると、共有コンポーネントが自動的に抽出されます -->
|
|
129
|
+
|
|
130
|
+
**共通ライブラリ**:
|
|
131
|
+
- `@org/shared-types`: 型定義(全サービスで共有)
|
|
132
|
+
- `@org/logger`: 統一ログライブラリ
|
|
133
|
+
|
|
134
|
+
**共通インフラ**:
|
|
135
|
+
- Elasticsearch: ログ集約
|
|
136
|
+
- Prometheus + Grafana: メトリクス監視
|
|
137
|
+
- 認証基盤: 統合認証サービス
|
|
138
|
+
|
|
139
|
+
### デプロイメントアーキテクチャ
|
|
140
|
+
|
|
141
|
+
```mermaid
|
|
142
|
+
graph TB
|
|
143
|
+
subgraph "Production Environment"
|
|
144
|
+
LB[Load Balancer]
|
|
145
|
+
FE1[Frontend Pod 1]
|
|
146
|
+
FE2[Frontend Pod 2]
|
|
147
|
+
BE1[Backend Pod 1]
|
|
148
|
+
BE2[Backend Pod 2]
|
|
149
|
+
DB[(Database)]
|
|
150
|
+
|
|
151
|
+
LB --> FE1
|
|
152
|
+
LB --> FE2
|
|
153
|
+
FE1 --> BE1
|
|
154
|
+
FE2 --> BE2
|
|
155
|
+
BE1 --> DB
|
|
156
|
+
BE2 --> DB
|
|
157
|
+
end
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### データフロー
|
|
161
|
+
|
|
162
|
+
<!-- AI生成コマンドを使用すると、サービス間のデータフローシーケンス図が自動生成されます -->
|
|
163
|
+
|
|
164
|
+
```mermaid
|
|
165
|
+
sequenceDiagram
|
|
166
|
+
participant User
|
|
167
|
+
participant Frontend
|
|
168
|
+
participant Backend
|
|
169
|
+
participant Database
|
|
170
|
+
|
|
171
|
+
User->>Frontend: リクエスト
|
|
172
|
+
Frontend->>Backend: API呼び出し
|
|
173
|
+
Backend->>Database: クエリ実行
|
|
174
|
+
Database-->>Backend: データ返却
|
|
175
|
+
Backend-->>Frontend: レスポンス
|
|
176
|
+
Frontend-->>User: 表示
|
|
177
|
+
```
|
|
178
|
+
|
|
98
179
|
## 変更履歴
|
|
99
180
|
|
|
100
181
|
| 日付 | バージョン | 変更内容 | 担当者 |
|
|
@@ -61,6 +61,48 @@
|
|
|
61
61
|
|
|
62
62
|
<!-- リスクと制限事項を記述してください -->
|
|
63
63
|
|
|
64
|
+
## サービス構成
|
|
65
|
+
|
|
66
|
+
### 登録リポジトリ一覧
|
|
67
|
+
|
|
68
|
+
<!-- AI生成コマンド(/michi_multi_repo:spec-requirements)を使用すると、自動的に登録リポジトリ情報が挿入されます -->
|
|
69
|
+
|
|
70
|
+
| サービス名 | リポジトリURL | ブランチ | 役割 | 技術スタック |
|
|
71
|
+
|-----------|---------------|---------|------|-------------|
|
|
72
|
+
| <!-- 例: frontend --> | <!-- 例: https://github.com/org/frontend --> | <!-- 例: main --> | <!-- 例: ユーザーインターフェース --> | <!-- 例: React, TypeScript --> |
|
|
73
|
+
|
|
74
|
+
### サービス間依存関係
|
|
75
|
+
|
|
76
|
+
<!-- AI生成コマンドを使用すると、サービス間の依存関係図が自動生成されます -->
|
|
77
|
+
|
|
78
|
+
```mermaid
|
|
79
|
+
graph TB
|
|
80
|
+
A[Service A] -->|API| B[Service B]
|
|
81
|
+
B -->|gRPC| C[Service C]
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## インターフェース要件
|
|
85
|
+
|
|
86
|
+
### API契約
|
|
87
|
+
|
|
88
|
+
<!-- サービス間のAPI契約を記述してください -->
|
|
89
|
+
<!-- AI生成コマンドを使用すると、要件定義書から自動的にAPI契約が抽出されます -->
|
|
90
|
+
|
|
91
|
+
**サービスA → サービスB**
|
|
92
|
+
- エンドポイント: `POST /api/v1/resource`
|
|
93
|
+
- プロトコル: HTTP/REST
|
|
94
|
+
- データ形式: JSON
|
|
95
|
+
|
|
96
|
+
### イベント契約
|
|
97
|
+
|
|
98
|
+
<!-- Pub/Subイベントのスキーマを記述してください -->
|
|
99
|
+
<!-- AI生成コマンドを使用すると、イベント駆動設計のスキーマが自動生成されます -->
|
|
100
|
+
|
|
101
|
+
**サービスA → サービスB**
|
|
102
|
+
- イベント: `resource.created`
|
|
103
|
+
- プロトコル: Kafka / RabbitMQ
|
|
104
|
+
- スキーマ: { resourceId, name, createdAt }
|
|
105
|
+
|
|
64
106
|
## 変更履歴
|
|
65
107
|
|
|
66
108
|
| 日付 | バージョン | 変更内容 | 担当者 |
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"project_name": "{{PROJECT_NAME}}",
|
|
3
|
+
"created_at": "{{CREATED_AT}}",
|
|
4
|
+
"updated_at": "{{CREATED_AT}}",
|
|
5
|
+
"language": "ja",
|
|
6
|
+
"phase": "initialized",
|
|
7
|
+
"jira_key": "{{JIRA_KEY}}",
|
|
8
|
+
"confluence_space": "{{CONFLUENCE_SPACE}}",
|
|
9
|
+
"approvals": {
|
|
10
|
+
"requirements": {
|
|
11
|
+
"generated": false,
|
|
12
|
+
"approved": false
|
|
13
|
+
},
|
|
14
|
+
"design": {
|
|
15
|
+
"generated": false,
|
|
16
|
+
"approved": false
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"ready_for_implementation": false
|
|
20
|
+
}
|