@sk8metal/michi-cli 0.8.5 → 0.8.7
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 +35 -0
- package/README.md +4 -3
- package/dist/scripts/constants/environments.js +3 -3
- package/dist/scripts/constants/environments.js.map +1 -1
- package/dist/templates/multi-repo/docs/ci-status.md +51 -0
- package/dist/templates/multi-repo/docs/release-notes.md +99 -0
- package/dist/templates/multi-repo/overview/architecture.md +183 -0
- package/dist/templates/multi-repo/overview/requirements.md +110 -0
- package/dist/templates/multi-repo/overview/sequence.md +79 -0
- package/dist/templates/multi-repo/spec.json +20 -0
- package/dist/templates/multi-repo/steering/multi-repo.md +74 -0
- package/dist/templates/multi-repo/tests/strategy.md +89 -0
- package/docs/michi-development/testing/manual-verification-other-tools.md +10 -8
- package/docs/user-guide/getting-started/new-repository-setup.md +4 -3
- package/docs/user-guide/guides/migration-guide.md +138 -0
- package/docs/user-guide/guides/multi-repo-guide.md +130 -10
- package/package.json +1 -1
- package/scripts/constants/__tests__/environments.test.ts +3 -3
- package/scripts/constants/environments.ts +3 -3
- package/scripts/copy-static-assets.js +61 -4
- package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-design.md +3 -3
- package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-init.md +6 -6
- package/templates/claude/commands/{michi_multi_repo → michi-multi-repo}/spec-requirements.md +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **Multi-Repo AIコマンド名変更**: `michi_multi_repo:*` → `michi-multi-repo:*`
|
|
13
|
+
- `/michi-multi-repo:spec-init`: プロジェクト初期化コマンド(旧: `/michi_multi_repo:spec-init`)
|
|
14
|
+
- `/michi-multi-repo:spec-requirements`: 要件定義書生成コマンド(旧: `/michi_multi_repo:spec-requirements`)
|
|
15
|
+
- `/michi-multi-repo:spec-design`: 設計書生成コマンド(旧: `/michi_multi_repo:spec-design`)
|
|
16
|
+
- **理由**: Claude Codeのスキル検出でアンダースコアが正しく処理されない問題に対応
|
|
17
|
+
- **`michi init` コマンドの配布先修正**
|
|
18
|
+
- `commandsDir` を `.claude/commands/kiro` から `.claude/commands` に変更
|
|
19
|
+
- これにより `kiro/`, `michi/`, `michi-multi-repo/` が正しい階層にコピーされるようになった
|
|
20
|
+
- **影響**: 既存の二重ネスト(`.claude/commands/kiro/kiro/`)問題を解決
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- **Multi-Repo AIコマンドがユーザープロジェクトにコピーされない問題を修正**
|
|
25
|
+
- `environments.ts` の設定により、`templates/claude/commands/` が `/kiro` サブディレクトリにコピーされていた
|
|
26
|
+
- 修正により、各コマンドディレクトリ(`kiro/`, `michi/`, `michi-multi-repo/`)が `.claude/commands/` 直下に正しく配置されるようになった
|
|
27
|
+
- **存在しない `michi config:init` コマンドの参照を修正**
|
|
28
|
+
- spec-init.md のエラーメッセージで参照されていた `michi config:init` を `michi init` に修正
|
|
29
|
+
- **注意**: `michi config:init` コマンドは実装されておらず、正しくは `michi init` を使用
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- **マイグレーションガイド**: v0.8.6 → v0.8.7 の移行手順を文書化(docs/user-guide/guides/migration-guide.md)
|
|
34
|
+
|
|
35
|
+
## [0.8.6] - 2025-12-22
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
- **Multi-Repo templates not copied to dist during build** (#118)
|
|
40
|
+
- Fixed `michi multi-repo:init` failing with "Multi-Repo template not found" error
|
|
41
|
+
- Added `copyDirectory()` function to `scripts/copy-static-assets.js` to recursively copy template directories
|
|
42
|
+
- `templates/multi-repo/` is now correctly copied to `dist/templates/multi-repo/` during build
|
|
43
|
+
- All Multi-Repo templates (requirements.md, architecture.md, sequence.md, etc.) are now properly included in npm package
|
|
44
|
+
|
|
10
45
|
## [0.8.5] - 2025-12-22
|
|
11
46
|
|
|
12
47
|
### Added
|
package/README.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
AI駆動開発ワークフロー自動化プラットフォーム
|
|
6
6
|
|
|
7
|
+
[](https://badge.fury.io/js/@sk8metal%2Fmichi-cli)
|
|
7
8
|
[](https://github.com/sk8metalme/michi/actions/workflows/ci.yml)
|
|
8
9
|
[](https://github.com/sk8metalme/michi/actions/workflows/test-setup.yml)
|
|
9
10
|
[](https://github.com/sk8metalme/michi/actions/workflows/security.yml)
|
|
@@ -466,17 +467,17 @@ APPROVAL_GATES_RELEASE=SM,部長
|
|
|
466
467
|
|
|
467
468
|
```bash
|
|
468
469
|
# 1. AIでプロジェクト初期化(プロジェクト説明から自動生成)
|
|
469
|
-
/
|
|
470
|
+
/michi-multi-repo:spec-init "マイクロサービスアーキテクチャでECサイトを構築" --jira MSV --confluence-space MSV
|
|
470
471
|
|
|
471
472
|
# 2. リポジトリ登録(CLIコマンド)
|
|
472
473
|
michi multi-repo:add-repo my-microservices --name frontend --url https://github.com/org/frontend --branch main
|
|
473
474
|
michi multi-repo:add-repo my-microservices --name backend --url https://github.com/org/backend --branch main
|
|
474
475
|
|
|
475
476
|
# 3. AIで要件定義書生成
|
|
476
|
-
/
|
|
477
|
+
/michi-multi-repo:spec-requirements my-microservices
|
|
477
478
|
|
|
478
479
|
# 4. AIで設計書生成(アーキテクチャ図含む)
|
|
479
|
-
/
|
|
480
|
+
/michi-multi-repo:spec-design my-microservices
|
|
480
481
|
|
|
481
482
|
# 5. Confluence同期
|
|
482
483
|
michi multi-repo:confluence-sync my-microservices
|
|
@@ -6,17 +6,17 @@
|
|
|
6
6
|
export const ENV_CONFIG = {
|
|
7
7
|
claude: {
|
|
8
8
|
rulesDir: '.claude/rules',
|
|
9
|
-
commandsDir: '.claude/commands
|
|
9
|
+
commandsDir: '.claude/commands',
|
|
10
10
|
templateSource: 'claude',
|
|
11
11
|
},
|
|
12
12
|
'claude-agent': {
|
|
13
13
|
rulesDir: '.claude/agents',
|
|
14
|
-
commandsDir: '.claude/commands
|
|
14
|
+
commandsDir: '.claude/commands',
|
|
15
15
|
templateSource: 'claude-agent',
|
|
16
16
|
},
|
|
17
17
|
cursor: {
|
|
18
18
|
rulesDir: '.cursor/rules',
|
|
19
|
-
commandsDir: '.cursor/commands
|
|
19
|
+
commandsDir: '.cursor/commands',
|
|
20
20
|
templateSource: 'cursor',
|
|
21
21
|
},
|
|
22
22
|
gemini: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../scripts/constants/environments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,MAAM,CAAC,MAAM,UAAU,GAA2C;IAChE,MAAM,EAAE;QACN,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"environments.js","sourceRoot":"","sources":["../../../scripts/constants/environments.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgBH,MAAM,CAAC,MAAM,UAAU,GAA2C;IAChE,MAAM,EAAE;QACN,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,kBAAkB;QAC/B,cAAc,EAAE,QAAQ;KACzB;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,gBAAgB;QAC1B,WAAW,EAAE,kBAAkB;QAC/B,cAAc,EAAE,cAAc;KAC/B;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,eAAe;QACzB,WAAW,EAAE,kBAAkB;QAC/B,cAAc,EAAE,QAAQ;KACzB;IACD,MAAM,EAAE;QACN,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,oBAAoB;QACjC,cAAc,EAAE,QAAQ;KACzB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,aAAa;QACvB,WAAW,EAAE,aAAa;QAC1B,cAAc,EAAE,OAAO;KACxB;IACD,KAAK,EAAE;QACL,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,sBAAsB;QACnC,cAAc,EAAE,OAAO;KACxB;CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAgB,EAAqB,EAAE;IAC1E,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAsB,EAAE;IACxE,OAAO,GAAG,IAAI,UAAU,CAAC;AAC3B,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAkB,EAAE;IAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAkB,CAAC;AAClD,CAAC,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# {{PROJECT_NAME}} - CI Status
|
|
2
|
+
|
|
3
|
+
## プロジェクト情報
|
|
4
|
+
|
|
5
|
+
- **プロジェクト名**: {{PROJECT_NAME}}
|
|
6
|
+
- **JIRAキー**: {{JIRA_KEY}}
|
|
7
|
+
- **Confluenceスペース**: {{CONFLUENCE_SPACE}}
|
|
8
|
+
- **最終更新**: {{CREATED_AT}}
|
|
9
|
+
|
|
10
|
+
## CI結果サマリー
|
|
11
|
+
|
|
12
|
+
| リポジトリ名 | ビルドステータス | テストステータス | カバレッジ | 最終実行日時 | 失敗詳細 |
|
|
13
|
+
|------------|---------------|---------------|----------|------------|----------|
|
|
14
|
+
| <!-- リポジトリ名 --> | <!-- ✅/❌/⏳/❓ --> | <!-- ✅/❌/⏳/❓ --> | <!-- XX% --> | <!-- YYYY-MM-DD HH:mm:ss --> | <!-- GitHub URL --> |
|
|
15
|
+
|
|
16
|
+
<!--
|
|
17
|
+
ステータスアイコン:
|
|
18
|
+
- ✅ success: ビルド・テスト成功
|
|
19
|
+
- ❌ failure: ビルド・テスト失敗
|
|
20
|
+
- ⏳ running: 実行中
|
|
21
|
+
- ❓ unknown: 不明・未実行
|
|
22
|
+
|
|
23
|
+
このファイルは `multi-repo:ci-status <project-name>` コマンドで自動更新されます。
|
|
24
|
+
-->
|
|
25
|
+
|
|
26
|
+
## 統計情報
|
|
27
|
+
|
|
28
|
+
- **総リポジトリ数**: 0
|
|
29
|
+
- **成功**: 0
|
|
30
|
+
- **失敗**: 0
|
|
31
|
+
- **実行中**: 0
|
|
32
|
+
- **不明**: 0
|
|
33
|
+
|
|
34
|
+
## 注意事項
|
|
35
|
+
|
|
36
|
+
このドキュメントは自動生成されます。手動で編集しないでください。
|
|
37
|
+
最新のCI結果を取得するには、以下のコマンドを実行してください:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm run michi multi-repo:ci-status {{PROJECT_NAME}}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
差分表示オプション:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm run michi multi-repo:ci-status {{PROJECT_NAME}} --diff
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 変更履歴
|
|
50
|
+
|
|
51
|
+
自動生成のため、変更履歴は記録されません。
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# {{PROJECT_NAME}} - リリースノート
|
|
2
|
+
|
|
3
|
+
## プロジェクト情報
|
|
4
|
+
|
|
5
|
+
- **プロジェクト名**: {{PROJECT_NAME}}
|
|
6
|
+
- **JIRAキー**: {{JIRA_KEY}}
|
|
7
|
+
- **Confluenceスペース**: {{CONFLUENCE_SPACE}}
|
|
8
|
+
- **作成日時**: {{CREATED_AT}}
|
|
9
|
+
|
|
10
|
+
## リリースノート一覧
|
|
11
|
+
|
|
12
|
+
### バージョン 1.0.0 (YYYY-MM-DD)
|
|
13
|
+
|
|
14
|
+
#### 新機能 (New Features)
|
|
15
|
+
|
|
16
|
+
- <!-- 新機能を記述してください -->
|
|
17
|
+
|
|
18
|
+
#### 改善 (Improvements)
|
|
19
|
+
|
|
20
|
+
- <!-- 改善内容を記述してください -->
|
|
21
|
+
|
|
22
|
+
#### バグ修正 (Bug Fixes)
|
|
23
|
+
|
|
24
|
+
- <!-- バグ修正を記述してください -->
|
|
25
|
+
|
|
26
|
+
#### Breaking Changes
|
|
27
|
+
|
|
28
|
+
- <!-- 破壊的変更を記述してください(ない場合は「なし」) -->
|
|
29
|
+
|
|
30
|
+
#### 既知の問題 (Known Issues)
|
|
31
|
+
|
|
32
|
+
- <!-- 既知の問題を記述してください -->
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## リリースノート作成ガイド
|
|
37
|
+
|
|
38
|
+
### 新機能 (New Features)
|
|
39
|
+
|
|
40
|
+
ユーザーに提供される新しい機能を記述します。
|
|
41
|
+
|
|
42
|
+
**フォーマット例**:
|
|
43
|
+
```
|
|
44
|
+
- [機能名] 簡潔な説明 (関連JIRA: {{JIRA_KEY}}-XXX)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 改善 (Improvements)
|
|
48
|
+
|
|
49
|
+
既存機能の改善、パフォーマンス向上、UX改善などを記述します。
|
|
50
|
+
|
|
51
|
+
**フォーマット例**:
|
|
52
|
+
```
|
|
53
|
+
- [改善内容] 詳細説明 (関連JIRA: {{JIRA_KEY}}-XXX)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### バグ修正 (Bug Fixes)
|
|
57
|
+
|
|
58
|
+
修正されたバグを記述します。
|
|
59
|
+
|
|
60
|
+
**フォーマット例**:
|
|
61
|
+
```
|
|
62
|
+
- [バグの内容] 修正内容 (関連JIRA: {{JIRA_KEY}}-XXX)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Breaking Changes
|
|
66
|
+
|
|
67
|
+
既存の動作を変更する破壊的変更を記述します。
|
|
68
|
+
マイグレーション手順を含めてください。
|
|
69
|
+
|
|
70
|
+
**フォーマット例**:
|
|
71
|
+
```
|
|
72
|
+
- [変更内容] 影響範囲とマイグレーション手順 (関連JIRA: {{JIRA_KEY}}-XXX)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 既知の問題 (Known Issues)
|
|
76
|
+
|
|
77
|
+
リリース時点で既知の問題を記述します。
|
|
78
|
+
回避策や対応予定を含めてください。
|
|
79
|
+
|
|
80
|
+
**フォーマット例**:
|
|
81
|
+
```
|
|
82
|
+
- [問題の内容] 回避策または対応予定 (関連JIRA: {{JIRA_KEY}}-XXX)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Confluence同期
|
|
88
|
+
|
|
89
|
+
このリリースノートをConfluenceに同期するには、以下のコマンドを実行してください:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
npm run michi multi-repo:sync {{PROJECT_NAME}} --doc release-notes
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## 変更履歴
|
|
96
|
+
|
|
97
|
+
| 日付 | バージョン | 変更内容 | 担当者 |
|
|
98
|
+
|------|-----------|---------|--------|
|
|
99
|
+
| {{CREATED_AT}} | 1.0.0 | 初版作成 | - |
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# {{PROJECT_NAME}} - アーキテクチャ設計書
|
|
2
|
+
|
|
3
|
+
## プロジェクト情報
|
|
4
|
+
|
|
5
|
+
- **プロジェクト名**: {{PROJECT_NAME}}
|
|
6
|
+
- **JIRAキー**: {{JIRA_KEY}}
|
|
7
|
+
- **Confluenceスペース**: {{CONFLUENCE_SPACE}}
|
|
8
|
+
- **作成日時**: {{CREATED_AT}}
|
|
9
|
+
|
|
10
|
+
## システム構成図
|
|
11
|
+
|
|
12
|
+
```mermaid
|
|
13
|
+
graph TB
|
|
14
|
+
A[クライアント] --> B[APIゲートウェイ]
|
|
15
|
+
B --> C[バックエンドサービス]
|
|
16
|
+
C --> D[データベース]
|
|
17
|
+
C --> E[外部API]
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
<!-- システム構成図を更新してください -->
|
|
21
|
+
|
|
22
|
+
## アーキテクチャパターン
|
|
23
|
+
|
|
24
|
+
<!-- 採用するアーキテクチャパターンを記述してください -->
|
|
25
|
+
<!-- 例: マイクロサービス、レイヤードアーキテクチャ、ヘキサゴナルアーキテクチャ -->
|
|
26
|
+
|
|
27
|
+
### レイヤー構成
|
|
28
|
+
|
|
29
|
+
<!-- レイヤー構成を記述してください -->
|
|
30
|
+
|
|
31
|
+
## コンポーネント図
|
|
32
|
+
|
|
33
|
+
```mermaid
|
|
34
|
+
graph LR
|
|
35
|
+
subgraph "プレゼンテーション層"
|
|
36
|
+
A[UI Component]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
subgraph "ビジネスロジック層"
|
|
40
|
+
B[Service Layer]
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
subgraph "データアクセス層"
|
|
44
|
+
C[Repository]
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
A --> B
|
|
48
|
+
B --> C
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
<!-- コンポーネント図を更新してください -->
|
|
52
|
+
|
|
53
|
+
## 技術スタック
|
|
54
|
+
|
|
55
|
+
### フロントエンド
|
|
56
|
+
|
|
57
|
+
<!-- フロントエンド技術スタックを記述してください -->
|
|
58
|
+
|
|
59
|
+
### バックエンド
|
|
60
|
+
|
|
61
|
+
<!-- バックエンド技術スタックを記述してください -->
|
|
62
|
+
|
|
63
|
+
### データベース
|
|
64
|
+
|
|
65
|
+
<!-- データベース技術スタックを記述してください -->
|
|
66
|
+
|
|
67
|
+
### インフラストラクチャ
|
|
68
|
+
|
|
69
|
+
<!-- インフラストラクチャを記述してください -->
|
|
70
|
+
|
|
71
|
+
## データモデル
|
|
72
|
+
|
|
73
|
+
<!-- データモデルを記述してください -->
|
|
74
|
+
|
|
75
|
+
```mermaid
|
|
76
|
+
erDiagram
|
|
77
|
+
USER ||--o{ ORDER : places
|
|
78
|
+
USER {
|
|
79
|
+
string id
|
|
80
|
+
string name
|
|
81
|
+
string email
|
|
82
|
+
}
|
|
83
|
+
ORDER {
|
|
84
|
+
string id
|
|
85
|
+
string userId
|
|
86
|
+
date createdAt
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## セキュリティアーキテクチャ
|
|
91
|
+
|
|
92
|
+
<!-- セキュリティアーキテクチャを記述してください -->
|
|
93
|
+
|
|
94
|
+
## スケーラビリティ設計
|
|
95
|
+
|
|
96
|
+
<!-- スケーラビリティ設計を記述してください -->
|
|
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
|
+
|
|
179
|
+
## 変更履歴
|
|
180
|
+
|
|
181
|
+
| 日付 | バージョン | 変更内容 | 担当者 |
|
|
182
|
+
|------|-----------|---------|--------|
|
|
183
|
+
| {{CREATED_AT}} | 1.0.0 | 初版作成 | - |
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# {{PROJECT_NAME}} - 要件定義書
|
|
2
|
+
|
|
3
|
+
## プロジェクト情報
|
|
4
|
+
|
|
5
|
+
- **プロジェクト名**: {{PROJECT_NAME}}
|
|
6
|
+
- **JIRAキー**: {{JIRA_KEY}}
|
|
7
|
+
- **Confluenceスペース**: {{CONFLUENCE_SPACE}}
|
|
8
|
+
- **作成日時**: {{CREATED_AT}}
|
|
9
|
+
|
|
10
|
+
## 概要
|
|
11
|
+
|
|
12
|
+
このドキュメントは、{{PROJECT_NAME}}プロジェクトの要件定義書です。
|
|
13
|
+
|
|
14
|
+
## ビジネス価値
|
|
15
|
+
|
|
16
|
+
<!-- プロジェクトのビジネス価値を記述してください -->
|
|
17
|
+
|
|
18
|
+
### 対象ユーザー
|
|
19
|
+
|
|
20
|
+
<!-- 対象ユーザーを記述してください -->
|
|
21
|
+
- プロジェクトリーダー
|
|
22
|
+
- アーキテクト
|
|
23
|
+
- 開発者
|
|
24
|
+
- QAエンジニア
|
|
25
|
+
|
|
26
|
+
### 主要機能
|
|
27
|
+
|
|
28
|
+
<!-- 主要機能を記述してください -->
|
|
29
|
+
|
|
30
|
+
## 受入基準(EARS形式)
|
|
31
|
+
|
|
32
|
+
### 必須要件
|
|
33
|
+
|
|
34
|
+
<!-- EARS形式(Event-Action-Response-System)で受入基準を記述してください -->
|
|
35
|
+
<!-- 例: -->
|
|
36
|
+
<!-- - WHEN ユーザーがプロジェクトを初期化する際、IF プロジェクト名が有効である場合、THEN システムはプロジェクトディレクトリを作成し、成功メッセージを表示する。 -->
|
|
37
|
+
|
|
38
|
+
### 任意要件
|
|
39
|
+
|
|
40
|
+
<!-- 任意要件を記述してください -->
|
|
41
|
+
|
|
42
|
+
## 技術的制約
|
|
43
|
+
|
|
44
|
+
<!-- 技術的制約を記述してください -->
|
|
45
|
+
|
|
46
|
+
## 非機能要件
|
|
47
|
+
|
|
48
|
+
### パフォーマンス要件
|
|
49
|
+
|
|
50
|
+
<!-- パフォーマンス要件を記述してください -->
|
|
51
|
+
|
|
52
|
+
### セキュリティ要件
|
|
53
|
+
|
|
54
|
+
<!-- セキュリティ要件を記述してください -->
|
|
55
|
+
|
|
56
|
+
### 保守性要件
|
|
57
|
+
|
|
58
|
+
<!-- 保守性要件を記述してください -->
|
|
59
|
+
|
|
60
|
+
## リスクと制限事項
|
|
61
|
+
|
|
62
|
+
<!-- リスクと制限事項を記述してください -->
|
|
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
|
+
|
|
106
|
+
## 変更履歴
|
|
107
|
+
|
|
108
|
+
| 日付 | バージョン | 変更内容 | 担当者 |
|
|
109
|
+
|------|-----------|---------|--------|
|
|
110
|
+
| {{CREATED_AT}} | 1.0.0 | 初版作成 | - |
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# {{PROJECT_NAME}} - シーケンス図
|
|
2
|
+
|
|
3
|
+
## プロジェクト情報
|
|
4
|
+
|
|
5
|
+
- **プロジェクト名**: {{PROJECT_NAME}}
|
|
6
|
+
- **JIRAキー**: {{JIRA_KEY}}
|
|
7
|
+
- **Confluenceスペース**: {{CONFLUENCE_SPACE}}
|
|
8
|
+
- **作成日時**: {{CREATED_AT}}
|
|
9
|
+
|
|
10
|
+
## 主要フローのシーケンス図
|
|
11
|
+
|
|
12
|
+
### ユーザー登録フロー
|
|
13
|
+
|
|
14
|
+
```mermaid
|
|
15
|
+
sequenceDiagram
|
|
16
|
+
participant U as ユーザー
|
|
17
|
+
participant F as フロントエンド
|
|
18
|
+
participant B as バックエンド
|
|
19
|
+
participant DB as データベース
|
|
20
|
+
|
|
21
|
+
U->>F: 登録情報を入力
|
|
22
|
+
F->>B: POST /api/users
|
|
23
|
+
B->>DB: ユーザー情報を保存
|
|
24
|
+
DB-->>B: 保存成功
|
|
25
|
+
B-->>F: ユーザーID返却
|
|
26
|
+
F-->>U: 登録完了メッセージ表示
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
<!-- ユーザー登録フローを更新してください -->
|
|
30
|
+
|
|
31
|
+
### データ取得フロー
|
|
32
|
+
|
|
33
|
+
```mermaid
|
|
34
|
+
sequenceDiagram
|
|
35
|
+
participant U as ユーザー
|
|
36
|
+
participant F as フロントエンド
|
|
37
|
+
participant B as バックエンド
|
|
38
|
+
participant DB as データベース
|
|
39
|
+
participant C as キャッシュ
|
|
40
|
+
|
|
41
|
+
U->>F: データリクエスト
|
|
42
|
+
F->>B: GET /api/data
|
|
43
|
+
B->>C: キャッシュ確認
|
|
44
|
+
alt キャッシュヒット
|
|
45
|
+
C-->>B: キャッシュデータ返却
|
|
46
|
+
else キャッシュミス
|
|
47
|
+
B->>DB: データクエリ
|
|
48
|
+
DB-->>B: データ返却
|
|
49
|
+
B->>C: キャッシュ保存
|
|
50
|
+
end
|
|
51
|
+
B-->>F: データ返却
|
|
52
|
+
F-->>U: データ表示
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
<!-- データ取得フローを更新してください -->
|
|
56
|
+
|
|
57
|
+
### エラーハンドリングフロー
|
|
58
|
+
|
|
59
|
+
```mermaid
|
|
60
|
+
sequenceDiagram
|
|
61
|
+
participant U as ユーザー
|
|
62
|
+
participant F as フロントエンド
|
|
63
|
+
participant B as バックエンド
|
|
64
|
+
participant L as ログサービス
|
|
65
|
+
|
|
66
|
+
U->>F: リクエスト送信
|
|
67
|
+
F->>B: API呼び出し
|
|
68
|
+
B-->>F: エラーレスポンス(500)
|
|
69
|
+
F->>L: エラーログ記録
|
|
70
|
+
F-->>U: エラーメッセージ表示
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
<!-- エラーハンドリングフローを更新してください -->
|
|
74
|
+
|
|
75
|
+
## 変更履歴
|
|
76
|
+
|
|
77
|
+
| 日付 | バージョン | 変更内容 | 担当者 |
|
|
78
|
+
|------|-----------|---------|--------|
|
|
79
|
+
| {{CREATED_AT}} | 1.0.0 | 初版作成 | - |
|
|
@@ -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
|
+
}
|