@sk8metal/michi-cli 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +465 -0
  3. package/dist/scripts/config/config-schema.d.ts +707 -0
  4. package/dist/scripts/config/config-schema.d.ts.map +1 -0
  5. package/dist/scripts/config/config-schema.js +100 -0
  6. package/dist/scripts/config/config-schema.js.map +1 -0
  7. package/dist/scripts/config-interactive.d.ts +10 -0
  8. package/dist/scripts/config-interactive.d.ts.map +1 -0
  9. package/dist/scripts/config-interactive.js +357 -0
  10. package/dist/scripts/config-interactive.js.map +1 -0
  11. package/dist/scripts/confluence-sync.d.ts +54 -0
  12. package/dist/scripts/confluence-sync.d.ts.map +1 -0
  13. package/dist/scripts/confluence-sync.js +407 -0
  14. package/dist/scripts/confluence-sync.js.map +1 -0
  15. package/dist/scripts/create-project.d.ts +12 -0
  16. package/dist/scripts/create-project.d.ts.map +1 -0
  17. package/dist/scripts/create-project.js +244 -0
  18. package/dist/scripts/create-project.js.map +1 -0
  19. package/dist/scripts/jira-sync.d.ts +39 -0
  20. package/dist/scripts/jira-sync.d.ts.map +1 -0
  21. package/dist/scripts/jira-sync.js +549 -0
  22. package/dist/scripts/jira-sync.js.map +1 -0
  23. package/dist/scripts/list-projects.d.ts +7 -0
  24. package/dist/scripts/list-projects.d.ts.map +1 -0
  25. package/dist/scripts/list-projects.js +61 -0
  26. package/dist/scripts/list-projects.js.map +1 -0
  27. package/dist/scripts/markdown-to-confluence.d.ts +19 -0
  28. package/dist/scripts/markdown-to-confluence.d.ts.map +1 -0
  29. package/dist/scripts/markdown-to-confluence.js +121 -0
  30. package/dist/scripts/markdown-to-confluence.js.map +1 -0
  31. package/dist/scripts/multi-project-estimate.d.ts +27 -0
  32. package/dist/scripts/multi-project-estimate.d.ts.map +1 -0
  33. package/dist/scripts/multi-project-estimate.js +202 -0
  34. package/dist/scripts/multi-project-estimate.js.map +1 -0
  35. package/dist/scripts/phase-runner.d.ts +19 -0
  36. package/dist/scripts/phase-runner.d.ts.map +1 -0
  37. package/dist/scripts/phase-runner.js +260 -0
  38. package/dist/scripts/phase-runner.js.map +1 -0
  39. package/dist/scripts/pr-automation.d.ts +12 -0
  40. package/dist/scripts/pr-automation.d.ts.map +1 -0
  41. package/dist/scripts/pr-automation.js +45 -0
  42. package/dist/scripts/pr-automation.js.map +1 -0
  43. package/dist/scripts/pre-flight-check.d.ts +15 -0
  44. package/dist/scripts/pre-flight-check.d.ts.map +1 -0
  45. package/dist/scripts/pre-flight-check.js +244 -0
  46. package/dist/scripts/pre-flight-check.js.map +1 -0
  47. package/dist/scripts/resource-dashboard.d.ts +7 -0
  48. package/dist/scripts/resource-dashboard.d.ts.map +1 -0
  49. package/dist/scripts/resource-dashboard.js +100 -0
  50. package/dist/scripts/resource-dashboard.js.map +1 -0
  51. package/dist/scripts/setup-existing-project.d.ts +13 -0
  52. package/dist/scripts/setup-existing-project.d.ts.map +1 -0
  53. package/dist/scripts/setup-existing-project.js +334 -0
  54. package/dist/scripts/setup-existing-project.js.map +1 -0
  55. package/dist/scripts/utils/config-loader.d.ts +20 -0
  56. package/dist/scripts/utils/config-loader.d.ts.map +1 -0
  57. package/dist/scripts/utils/config-loader.js +291 -0
  58. package/dist/scripts/utils/config-loader.js.map +1 -0
  59. package/dist/scripts/utils/config-validator.d.ts +34 -0
  60. package/dist/scripts/utils/config-validator.d.ts.map +1 -0
  61. package/dist/scripts/utils/config-validator.js +286 -0
  62. package/dist/scripts/utils/config-validator.js.map +1 -0
  63. package/dist/scripts/utils/confluence-hierarchy.d.ts +47 -0
  64. package/dist/scripts/utils/confluence-hierarchy.d.ts.map +1 -0
  65. package/dist/scripts/utils/confluence-hierarchy.js +516 -0
  66. package/dist/scripts/utils/confluence-hierarchy.js.map +1 -0
  67. package/dist/scripts/utils/feature-name-validator.d.ts +25 -0
  68. package/dist/scripts/utils/feature-name-validator.d.ts.map +1 -0
  69. package/dist/scripts/utils/feature-name-validator.js +113 -0
  70. package/dist/scripts/utils/feature-name-validator.js.map +1 -0
  71. package/dist/scripts/utils/project-meta.d.ts +23 -0
  72. package/dist/scripts/utils/project-meta.d.ts.map +1 -0
  73. package/dist/scripts/utils/project-meta.js +50 -0
  74. package/dist/scripts/utils/project-meta.js.map +1 -0
  75. package/dist/scripts/validate-phase.d.ts +17 -0
  76. package/dist/scripts/validate-phase.d.ts.map +1 -0
  77. package/dist/scripts/validate-phase.js +234 -0
  78. package/dist/scripts/validate-phase.js.map +1 -0
  79. package/dist/scripts/workflow-orchestrator.d.ts +35 -0
  80. package/dist/scripts/workflow-orchestrator.d.ts.map +1 -0
  81. package/dist/scripts/workflow-orchestrator.js +130 -0
  82. package/dist/scripts/workflow-orchestrator.js.map +1 -0
  83. package/dist/src/cli.d.ts +11 -0
  84. package/dist/src/cli.d.ts.map +1 -0
  85. package/dist/src/cli.js +229 -0
  86. package/dist/src/cli.js.map +1 -0
  87. package/docs/config-reference.md +666 -0
  88. package/docs/customization-guide.md +432 -0
  89. package/docs/multi-project.md +233 -0
  90. package/docs/new-project-setup.md +576 -0
  91. package/docs/phase-automation.md +361 -0
  92. package/docs/quick-reference.md +291 -0
  93. package/docs/setup.md +404 -0
  94. package/docs/tasks-template.md +550 -0
  95. package/docs/testing.md +202 -0
  96. package/docs/workflow.md +342 -0
  97. package/env.example +44 -0
  98. package/mcp.json.example +14 -0
  99. package/package.json +97 -0
@@ -0,0 +1,432 @@
1
+ # カスタマイズ機能ガイド
2
+
3
+ > **凡例について**: `<feature>` などの記号の意味は [README.md#凡例の記号説明](../README.md#凡例の記号説明) を参照してください。
4
+
5
+ ## 概要
6
+
7
+ Michiでは、チームごとに異なる開発フローに対応するため、Confluence/JIRAの作成粒度やワークフロー設定をカスタマイズ可能にしています。
8
+
9
+ ## 設定ファイルの構造
10
+
11
+ ### デフォルト設定
12
+
13
+ `scripts/config/default-config.json` - Michiリポジトリに含まれるデフォルト設定
14
+
15
+ ### プロジェクト固有設定
16
+
17
+ `.kiro/config.json` - プロジェクトルートに配置(オプション)
18
+
19
+ **重要**: `.kiro/config.json`は`.gitignore`に追加することを推奨します(チーム固有設定のため)
20
+
21
+ ### 設定のマージ順序
22
+
23
+ 1. デフォルト設定を読み込み
24
+ 2. プロジェクト固有設定があればマージ(深いマージ)
25
+ 3. 環境変数で最終上書き(既存の動作を維持)
26
+
27
+ ### 設定値の詳細
28
+
29
+ すべての設定値の詳細は [設定値リファレンス](./config-reference.md) を参照してください。
30
+
31
+ ## Confluence階層構造のカスタマイズ
32
+
33
+ ### パターン1: フラット構造(デフォルト)
34
+
35
+ **設定**: 設定ファイル不要、または`pageCreationGranularity: "single"`
36
+
37
+ **動作**: 1ドキュメント = 1ページ(現在の動作を維持)
38
+
39
+ ```
40
+ Confluenceスペース
41
+ └── [Michi] health-check-endpoint 要件定義
42
+ └── [Michi] health-check-endpoint 設計
43
+ └── [Michi] health-check-endpoint タスク分割
44
+ ```
45
+
46
+ **設定例**:
47
+ ```json
48
+ {
49
+ "confluence": {
50
+ "pageCreationGranularity": "single"
51
+ }
52
+ }
53
+ ```
54
+
55
+ ### パターン2: 機能ごとの親ページ(simple階層)
56
+
57
+ **設定**: `pageCreationGranularity: "by-hierarchy"` + `hierarchy.mode: "simple"`
58
+
59
+ **動作**: 親ページを作成し、要件定義/設計/タスク分割を子ページとして配置
60
+
61
+ ```
62
+ Confluenceスペース
63
+ └── [Michi] health-check-endpoint(親ページ)
64
+ ├── 要件定義
65
+ ├── 設計
66
+ └── タスク分割
67
+ ```
68
+
69
+ **設定例**:
70
+ ```json
71
+ {
72
+ "confluence": {
73
+ "pageCreationGranularity": "by-hierarchy",
74
+ "hierarchy": {
75
+ "mode": "simple",
76
+ "parentPageTitle": "[{projectName}] {featureName}"
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ ### パターン3: セクション分割
83
+
84
+ **設定**: `pageCreationGranularity: "by-section"`
85
+
86
+ **動作**: Markdownの`##`セクションごとにページを作成(フラット)
87
+
88
+ ```
89
+ Confluenceスペース
90
+ └── [Michi] health-check-endpoint 要件定義 - 概要
91
+ └── [Michi] health-check-endpoint 要件定義 - 機能要件
92
+ └── [Michi] health-check-endpoint 要件定義 - 非機能要件
93
+ ```
94
+
95
+ **設定例**:
96
+ ```json
97
+ {
98
+ "confluence": {
99
+ "pageCreationGranularity": "by-section",
100
+ "pageTitleFormat": "[{projectName}] {featureName} {docTypeLabel} - {sectionTitle}"
101
+ }
102
+ }
103
+ ```
104
+
105
+ ### パターン4: 階層構造(nested階層)
106
+
107
+ **設定**: `pageCreationGranularity: "by-hierarchy"` + `hierarchy.mode: "nested"`
108
+
109
+ **動作**: 親ページ → ドキュメントタイプ親 → セクション子ページの3階層
110
+
111
+ ```
112
+ Confluenceスペース
113
+ └── [Michi] health-check-endpoint(親ページ)
114
+ ├── 要件定義(親)
115
+ │ ├── 概要
116
+ │ ├── 機能要件
117
+ │ └── 非機能要件
118
+ ├── 設計(親)
119
+ │ ├── アーキテクチャ
120
+ │ └── API仕様
121
+ └── タスク分割
122
+ ```
123
+
124
+ **設定例**:
125
+ ```json
126
+ {
127
+ "confluence": {
128
+ "pageCreationGranularity": "by-hierarchy",
129
+ "hierarchy": {
130
+ "mode": "nested",
131
+ "parentPageTitle": "[{projectName}] {featureName}",
132
+ "createDocTypeParents": true
133
+ }
134
+ }
135
+ }
136
+ ```
137
+
138
+ ### パターン5: 手動指定(manual)
139
+
140
+ **設定**: `pageCreationGranularity: "manual"` + `hierarchy.structure`で明示的に定義
141
+
142
+ **動作**: 設定ファイルで指定した通りにページを作成
143
+
144
+ ```
145
+ Confluenceスペース
146
+ └── [Michi] health-check-endpoint(親ページ)
147
+ ├── 要件定義 - 概要
148
+ ├── 要件定義 - 機能要件
149
+ ├── 要件定義 - 非機能要件
150
+ ├── 設計 - アーキテクチャ
151
+ └── 設計 - API仕様
152
+ ```
153
+
154
+ **設定例**:
155
+ ```json
156
+ {
157
+ "confluence": {
158
+ "pageCreationGranularity": "manual",
159
+ "hierarchy": {
160
+ "parentPageTitle": "[{projectName}] {featureName}",
161
+ "structure": {
162
+ "requirements": {
163
+ "pages": [
164
+ {
165
+ "title": "[{projectName}] {featureName} 要件定義 - 概要",
166
+ "sections": ["## 1. 概要", "## 1.1 背景"],
167
+ "labels": ["requirements", "overview"]
168
+ },
169
+ {
170
+ "title": "[{projectName}] {featureName} 要件定義 - 機能要件",
171
+ "sections": ["## 2. 機能要件", "## 2.1 ユーザー機能"],
172
+ "labels": ["requirements", "functional"]
173
+ }
174
+ ]
175
+ },
176
+ "design": {
177
+ "pages": [
178
+ {
179
+ "title": "[{projectName}] {featureName} 設計 - アーキテクチャ",
180
+ "sections": ["## 1. アーキテクチャ概要"],
181
+ "labels": ["design", "architecture"]
182
+ }
183
+ ]
184
+ }
185
+ }
186
+ }
187
+ }
188
+ }
189
+ ```
190
+
191
+ ## タイトル形式のカスタマイズ
192
+
193
+ `pageTitleFormat`でページタイトルの形式をカスタマイズできます。
194
+
195
+ **利用可能な変数**:
196
+ - `{projectName}` - プロジェクト名
197
+ - `{featureName}` - 機能名
198
+ - `{docTypeLabel}` - ドキュメントタイプ(要件定義、設計、タスク分割)
199
+ - `{sectionTitle}` - セクションタイトル(by-sectionの場合)
200
+
201
+ **設定例**:
202
+ ```json
203
+ {
204
+ "confluence": {
205
+ "pageTitleFormat": "{projectName} - {featureName} - {docTypeLabel}"
206
+ }
207
+ }
208
+ ```
209
+
210
+ ## ラベルのカスタマイズ
211
+
212
+ `autoLabels`で自動付与されるラベルをカスタマイズできます。
213
+
214
+ **利用可能な変数**:
215
+ - `{projectLabel}` - プロジェクトラベル(`.kiro/project.json`の`confluenceLabels[0]`)
216
+ - `{docType}` - ドキュメントタイプ(requirements, design, tasks)
217
+ - `{featureName}` - 機能名
218
+
219
+ **設定例**:
220
+ ```json
221
+ {
222
+ "confluence": {
223
+ "autoLabels": [
224
+ "{projectLabel}",
225
+ "{docType}",
226
+ "{featureName}",
227
+ "custom-label"
228
+ ]
229
+ }
230
+ }
231
+ ```
232
+
233
+ ## JIRA設定のカスタマイズ
234
+
235
+ ### Story作成粒度
236
+
237
+ **設定例1: 全Storyを作成(デフォルト)**
238
+ ```json
239
+ {
240
+ "jira": {
241
+ "storyCreationGranularity": "all"
242
+ }
243
+ }
244
+ ```
245
+
246
+ **設定例2: 指定フェーズのみ作成**
247
+ ```json
248
+ {
249
+ "jira": {
250
+ "storyCreationGranularity": "selected-phases",
251
+ "selectedPhases": ["implementation", "testing"]
252
+ }
253
+ }
254
+ ```
255
+
256
+ ### Epic作成の制御
257
+
258
+ **設定例: Epic作成をスキップ**
259
+ ```json
260
+ {
261
+ "jira": {
262
+ "createEpic": false
263
+ }
264
+ }
265
+ ```
266
+
267
+ ### Story Points設定
268
+
269
+ **設定例1: 自動抽出(デフォルト)**
270
+ ```json
271
+ {
272
+ "jira": {
273
+ "storyPoints": "auto"
274
+ }
275
+ }
276
+ ```
277
+
278
+ **設定例2: Story Pointsを設定しない**
279
+ ```json
280
+ {
281
+ "jira": {
282
+ "storyPoints": "disabled"
283
+ }
284
+ }
285
+ ```
286
+
287
+ ## ワークフロー設定のカスタマイズ
288
+
289
+ ### フェーズの有効化
290
+
291
+ **設定例: 設計フェーズをスキップ**
292
+ ```json
293
+ {
294
+ "workflow": {
295
+ "enabledPhases": ["requirements", "tasks"]
296
+ }
297
+ }
298
+ ```
299
+
300
+ ### 承認ゲートの設定
301
+
302
+ **設定例: 日本語ロール名を使用**
303
+ ```json
304
+ {
305
+ "workflow": {
306
+ "approvalGates": {
307
+ "requirements": ["企画", "部長"],
308
+ "design": ["アーキテクト", "部長"],
309
+ "release": ["SM", "部長"]
310
+ }
311
+ }
312
+ }
313
+ ```
314
+
315
+ ## 対話式設定ツール
316
+
317
+ `.kiro/config.json`を対話的に作成・更新できます:
318
+
319
+ ```bash
320
+ # 対話式設定ツールを実行
321
+ npx @michi/cli config:interactive
322
+
323
+ # または
324
+ npm run config:interactive
325
+ ```
326
+
327
+ ### 使い方
328
+
329
+ 1. **コマンド実行**: `npx @michi/cli config:interactive`
330
+ 2. **設定項目を選択**:
331
+ - Confluence設定のカスタマイズ
332
+ - JIRA設定のカスタマイズ
333
+ - ワークフロー設定のカスタマイズ
334
+ 3. **各設定を対話的に入力**: プロンプトに従って選択・入力
335
+ 4. **設定を確認**: 最終的な設定内容を確認
336
+ 5. **保存**: 設定ファイルを`.kiro/config.json`に保存
337
+
338
+ ### 設定項目
339
+
340
+ - **Confluence階層構造**: 5つのパターンから選択
341
+ - **ページタイトル形式**: カスタマイズ可能
342
+ - **JIRA Story作成粒度**: 全作成/フェーズごと/選択フェーズのみ
343
+ - **ワークフロー有効化フェーズ**: 要件定義/設計/タスク分割から選択
344
+ - **承認ゲート**: 各フェーズの承認者を設定
345
+
346
+ ## 設定ファイルのバリデーション
347
+
348
+ 設定ファイルの妥当性をチェックするには、以下のコマンドを実行します:
349
+
350
+ ```bash
351
+ # 設定ファイルのバリデーション
352
+ npx @michi/cli config:validate
353
+
354
+ # または
355
+ npm run config:validate
356
+ ```
357
+
358
+ ## 完全な設定例
359
+
360
+ ```json
361
+ {
362
+ "confluence": {
363
+ "pageCreationGranularity": "by-hierarchy",
364
+ "pageTitleFormat": "[{projectName}] {featureName} {docTypeLabel}",
365
+ "autoLabels": [
366
+ "{projectLabel}",
367
+ "{docType}",
368
+ "{featureName}",
369
+ "github-sync"
370
+ ],
371
+ "hierarchy": {
372
+ "mode": "simple",
373
+ "parentPageTitle": "[{projectName}] {featureName}"
374
+ }
375
+ },
376
+ "jira": {
377
+ "storyCreationGranularity": "all",
378
+ "createEpic": true,
379
+ "storyPoints": "auto",
380
+ "autoLabels": [
381
+ "{projectLabel}",
382
+ "{featureName}",
383
+ "{phaseLabel}"
384
+ ]
385
+ },
386
+ "workflow": {
387
+ "enabledPhases": [
388
+ "requirements",
389
+ "design",
390
+ "tasks"
391
+ ],
392
+ "approvalGates": {
393
+ "requirements": ["pm", "director"],
394
+ "design": ["architect", "director"],
395
+ "release": ["sm", "director"]
396
+ }
397
+ }
398
+ }
399
+ ```
400
+
401
+ ## 後方互換性
402
+
403
+ - 設定ファイルが存在しない場合はデフォルト設定を使用(既存動作を維持)
404
+ - 環境変数は引き続き優先(既存の`.env`設定が動作)
405
+ - 段階的な移行を可能にする
406
+
407
+ ## トラブルシューティング
408
+
409
+ ### 設定ファイルが読み込まれない
410
+
411
+ 1. `.kiro/config.json`がプロジェクトルートに存在するか確認
412
+ 2. JSONの構文エラーがないか確認
413
+ 3. 設定ファイルのパスが正しいか確認
414
+
415
+ ### 階層構造が作成されない
416
+
417
+ 1. `pageCreationGranularity`が正しく設定されているか確認
418
+ 2. `hierarchy`設定が適切に設定されているか確認
419
+ 3. Confluence APIの権限を確認
420
+
421
+ ### バリデーションエラー
422
+
423
+ 1. エラーメッセージを確認
424
+ 2. スキーマに準拠しているか確認
425
+ 3. 必須フィールドが設定されているか確認
426
+
427
+ ## 参考リンク
428
+
429
+ - [セットアップガイド](./setup.md)
430
+ - [ワークフローガイド](./workflow.md)
431
+ - [新規プロジェクトセットアップ](./new-project-setup.md)
432
+
@@ -0,0 +1,233 @@
1
+ # マルチプロジェクト管理ガイド
2
+
3
+ > **凡例について**: `<feature>` などの記号の意味は [README.md#凡例の記号説明](../README.md#凡例の記号説明) を参照してください。
4
+
5
+ ## 概要
6
+
7
+ Michiは、複数プロジェクト(3-5案件)を同時並行で管理できるように設計されています。
8
+
9
+ ## アーキテクチャ
10
+
11
+ ### マイクロサービス構成
12
+
13
+ ```
14
+ organization/
15
+ ├── customer-a-service-1/ ← A社 サービス1
16
+ │ └── .kiro/
17
+ │ ├── project.json
18
+ │ └── specs/
19
+ ├── customer-a-service-2/ ← A社 サービス2
20
+ │ └── .kiro/
21
+ ├── customer-b-api/ ← B社 API
22
+ │ └── .kiro/
23
+ └── michi/ ← 統合ハブ(本プロジェクト)
24
+ └── .kiro/
25
+ ```
26
+
27
+ ### 統合管理
28
+
29
+ **Confluence**: 共有スペース(PRD, QA, RELEASE)
30
+ - ラベルでプロジェクトを識別
31
+ - プロジェクト横断ダッシュボード
32
+
33
+ **JIRA**: プロジェクトキー別
34
+ - PRJA(A社案件)
35
+ - PRJB(B社案件)
36
+ - MICHI(統合ハブ)
37
+
38
+ ## プロジェクトのセットアップ
39
+
40
+ ### 新規プロジェクト追加
41
+
42
+ 詳細な手順は [新規プロジェクトセットアップガイド](./new-project-setup.md) を参照してください。
43
+
44
+ **クイックスタート**:
45
+ 1. 既存リポジトリに追加: `bash /path/to/michi/scripts/setup-existing.sh`
46
+ 2. 新規リポジトリ作成: `npm run create-project -- --name <id> --project-name <name> --jira-key <key>`
47
+
48
+ **マルチプロジェクト特有の注意点**:
49
+ - 各プロジェクトは独立したリポジトリで管理
50
+ - `.kiro/project.json`でプロジェクトを識別
51
+ - Confluenceラベルでプロジェクト横断検索が可能
52
+
53
+ ### 環境変数設定
54
+
55
+ 各プロジェクトで`.env`ファイルを設定します。詳細は [新規プロジェクトセットアップガイド](./new-project-setup.md#step-5-環境変数設定) を参照してください。
56
+
57
+ ### 動作確認
58
+
59
+ セットアップ完了後、プロジェクト情報を確認します:
60
+
61
+ ```bash
62
+ # プロジェクト情報を表示
63
+ cat .kiro/project.json
64
+
65
+ # テスト機能で確認(オプション)
66
+ /kiro:spec-init テスト機能
67
+ /kiro:spec-requirements test-feature
68
+ npx @michi/cli phase:run test-feature requirements
69
+ ```
70
+
71
+ ## プロジェクト切り替え
72
+
73
+ ### Cursorで切り替え
74
+
75
+ ```
76
+ /kiro:project-switch customer-a-service-1
77
+ ```
78
+
79
+ ### ターミナルで切り替え
80
+
81
+ ```bash
82
+ cd ~/work/projects/customer-a-service-1
83
+ cat .kiro/project.json
84
+ ```
85
+
86
+ ## プロジェクト横断操作
87
+
88
+ ### すべてのプロジェクトを一覧表示
89
+
90
+ ```bash
91
+ npm run project:list
92
+ ```
93
+
94
+ 出力例:
95
+ ```
96
+ 📋 プロジェクト一覧:
97
+
98
+ | プロジェクト | ID | ステータス | JIRA | チーム |
99
+ |------------|-------|----------|------|--------|
100
+ | Michi | michi | active | MICHI | @developer1 |
101
+ | A社 サービス1 | customer-a-service-1 | active | PRJA | @dev1, @dev2 |
102
+ | B社 API | customer-b-api | active | PRJB | @dev3 |
103
+
104
+ 合計: 3 プロジェクト
105
+ ```
106
+
107
+ ### リソースダッシュボード生成
108
+
109
+ ```bash
110
+ npm run project:dashboard
111
+ ```
112
+
113
+ Confluenceに「プロジェクトリソースダッシュボード」ページを作成します。
114
+
115
+ ### プロジェクト横断見積もり集計
116
+
117
+ ```bash
118
+ npm run multi-estimate
119
+ ```
120
+
121
+ すべてのプロジェクトの見積もりを集計し、Excelファイルに出力します。
122
+
123
+ ## Confluenceダッシュボード
124
+
125
+ ### プロジェクト一覧ページ
126
+
127
+ Confluenceで作成:
128
+
129
+ **ページタイトル**: プロジェクト一覧
130
+
131
+ **コンテンツ**:
132
+ ```
133
+ {report-table:space=PRD|label=requirements|columns=title,labels,status}
134
+ ```
135
+
136
+ **フィルタ例**:
137
+ - A社案件のみ: `label = "project:a"`
138
+ - レビュー待ち: `status = "レビュー待ち"`
139
+ - 設計フェーズ: `label = "design"`
140
+
141
+ ### JIRAダッシュボード
142
+
143
+ **フィルタ**:
144
+ ```
145
+ project IN (MICHI, PRJA, PRJB) AND status IN ("In Progress", "In Review")
146
+ ```
147
+
148
+ **グルーピング**: プロジェクトキー別
149
+
150
+ **集計**: ストーリーポイント合計
151
+
152
+ ## プロジェクト間の依存関係
153
+
154
+ プロジェクトは基本的に独立していますが、共通基盤がある場合:
155
+
156
+ ### 共通ライブラリプロジェクト
157
+
158
+ ```
159
+ shared-infrastructure/
160
+ └── .kiro/
161
+ └── project.json
162
+ {
163
+ "projectId": "shared-infra",
164
+ "projectName": "共通基盤",
165
+ "jiraProjectKey": "INFRA",
166
+ ...
167
+ }
168
+ ```
169
+
170
+ ### 依存関係の記述
171
+
172
+ 各プロジェクトの `.kiro/project.json` に追加:
173
+ ```json
174
+ {
175
+ "dependencies": ["shared-infra"],
176
+ "dependents": ["customer-a-service-1", "customer-b-api"]
177
+ }
178
+ ```
179
+
180
+ ## ベストプラクティス
181
+
182
+ ### 命名規則の統一
183
+
184
+ **プロジェクトID**: `customer-{id}-{service}`
185
+ - 例: `customer-a-service-1`, `customer-b-api`
186
+
187
+ **JIRA プロジェクトキー**: 3-4文字
188
+ - 例: `PRJA`, `PRJB`, `MICHI`
189
+
190
+ **Confluenceラベル**: `project:{projectId}, service:{service}`
191
+ - 例: `project:customer-a-service-1, service:s1`
192
+
193
+ **ラベル生成ロジック**: 詳細は [新規プロジェクトセットアップガイド](./new-project-setup.md#ラベル生成ロジック) を参照してください。
194
+ ### チーム構成の明確化
195
+
196
+ 各プロジェクトの `team` フィールドに担当者を記載:
197
+ ```json
198
+ {
199
+ "team": ["@tech-lead", "@frontend-dev", "@backend-dev"]
200
+ }
201
+ ```
202
+
203
+ ### ステータス管理
204
+
205
+ プロジェクトのステータスを適切に更新:
206
+ - `active`: 開発中
207
+ - `maintenance`: 保守フェーズ
208
+ - `completed`: 完了
209
+ - `inactive`: 休止中
210
+
211
+ ## トラブルシューティング
212
+
213
+ ### プロジェクトが一覧に表示されない
214
+
215
+ `.kiro/project.json` が正しく作成されているか確認:
216
+ ```bash
217
+ cat .kiro/project.json
218
+ ```
219
+
220
+ ### Confluenceで他のプロジェクトが見える
221
+
222
+ ラベルでフィルタリング:
223
+ ```
224
+ label = "project:michi"
225
+ ```
226
+
227
+ ### JIRA チケットが混在
228
+
229
+ プロジェクトキーでフィルタリング:
230
+ ```
231
+ project = MICHI
232
+ ```
233
+