@sk8metal/michi-cli 0.8.4 → 0.8.6

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.
@@ -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
+ }