@sk8metal/michi-cli 0.8.7 → 0.10.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 (26) hide show
  1. package/CHANGELOG.md +70 -1
  2. package/README.md +1 -1
  3. package/dist/scripts/config/config-schema.d.ts +3 -0
  4. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  5. package/dist/scripts/config/config-schema.js +18 -0
  6. package/dist/scripts/config/config-schema.js.map +1 -1
  7. package/dist/scripts/utils/multi-repo-validator.d.ts +20 -1
  8. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  9. package/dist/scripts/utils/multi-repo-validator.js +124 -1
  10. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  11. package/docs/user-guide/guides/multi-repo-guide.md +443 -0
  12. package/docs/user-guide/guides/workflow.md +4 -14
  13. package/docs/user-guide/hands-on/workflow-walkthrough.md +173 -4
  14. package/package.json +1 -1
  15. package/scripts/__tests__/multi-repo-config-schema.test.ts +106 -0
  16. package/scripts/__tests__/multi-repo-validator.test.ts +229 -1
  17. package/scripts/config/config-schema.ts +20 -0
  18. package/scripts/utils/multi-repo-validator.ts +160 -1
  19. package/templates/claude/agents/mermaid-validator/AGENT.md +257 -0
  20. package/templates/claude/commands/michi-multi-repo/impl-all.md +264 -0
  21. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +271 -0
  22. package/templates/claude/commands/michi-multi-repo/spec-design.md +66 -3
  23. package/templates/claude/commands/michi-multi-repo/spec-review.md +247 -0
  24. package/templates/claude/skills/mermaid-validator/SKILL.md +261 -0
  25. package/templates/claude-agent/agents/cross-repo-reviewer.md +194 -0
  26. package/templates/claude-agent/agents/repo-spec-executor.md +113 -0
@@ -22,6 +22,7 @@ Multi-Repo機能は、1つのプロジェクトで複数のGitHubリポジトリ
22
22
  3. **テスト実行**: プロジェクト単位でテストスクリプトを実行
23
23
  4. **Confluence同期**: プロジェクトドキュメントをConfluenceに自動同期
24
24
  5. **一覧表示**: プロジェクトとリポジトリの情報を一覧表示
25
+ 6. **サブエージェント連携**: 各リポジトリで仕様展開・レビュー・実装を並行実行(NEW)
25
26
 
26
27
  ## セットアップ
27
28
 
@@ -171,6 +172,9 @@ ls -la .claude/commands/
171
172
  | `/michi-multi-repo:spec-init` | プロジェクト初期化(プロジェクト説明から自動生成) |
172
173
  | `/michi-multi-repo:spec-requirements` | 要件定義書の自動生成 |
173
174
  | `/michi-multi-repo:spec-design` | 設計書の自動生成 |
175
+ | `/michi-multi-repo:propagate-specs` | 各リポジトリへ仕様を展開(並行実行)(NEW) |
176
+ | `/michi-multi-repo:spec-review` | クロスリポジトリレビュー(NEW) |
177
+ | `/michi-multi-repo:impl-all` | 全リポジトリで実装を並行実行(NEW) |
174
178
 
175
179
  **使用例**:
176
180
  ```bash
@@ -977,6 +981,104 @@ mv .michi/config.json .michi/config.json.broken
977
981
  michi config:validate
978
982
  ```
979
983
 
984
+ ### 問題7: localPath未設定エラー(NEW)
985
+
986
+ **エラーメッセージ**:
987
+ ```
988
+ ⚠️ 警告: リポジトリ 'frontend' の localPath が未設定です。スキップします。
989
+ ```
990
+
991
+ **原因**:
992
+ サブエージェント連携コマンド(`propagate-specs`, `spec-review`, `impl-all`)を使用しようとしたが、リポジトリに `localPath` が設定されていない。
993
+
994
+ **解決方法**:
995
+
996
+ 1. リポジトリに `localPath` を設定する:
997
+
998
+ ```bash
999
+ michi multi-repo:add-repo <project-name> \
1000
+ --name <repo-name> \
1001
+ --url <github-url> \
1002
+ --branch <branch> \
1003
+ --localPath <absolute-path>
1004
+ ```
1005
+
1006
+ **例**:
1007
+ ```bash
1008
+ michi multi-repo:add-repo my-microservices \
1009
+ --name frontend \
1010
+ --url https://github.com/myorg/frontend \
1011
+ --branch main \
1012
+ --localPath /Users/user/projects/frontend
1013
+ ```
1014
+
1015
+ 2. リポジトリがローカルにクローンされていることを確認:
1016
+
1017
+ ```bash
1018
+ ls -la /Users/user/projects/frontend
1019
+ # .git ディレクトリが存在することを確認
1020
+ ```
1021
+
1022
+ 3. コマンドを再実行
1023
+
1024
+ ### 問題8: 品質ゲート不合格エラー(NEW)
1025
+
1026
+ **エラーメッセージ**:
1027
+ ```
1028
+ ❌ エラー: 品質ゲート不合格
1029
+
1030
+ BLOCK問題が未解決です。実装を開始できません。
1031
+
1032
+ 次のアクション:
1033
+ 1. BLOCK問題を修正
1034
+ 2. `/michi-multi-repo:spec-review my-project` を再実行
1035
+ 3. 合格後に再度このコマンドを実行
1036
+ ```
1037
+
1038
+ **原因**:
1039
+ `/michi-multi-repo:spec-review` でBLOCK問題が検出され、品質ゲートが不合格になっている。
1040
+
1041
+ **解決方法**:
1042
+
1043
+ 1. レビューレポートを確認:
1044
+
1045
+ ```bash
1046
+ # 最新のレビューレポートを確認
1047
+ ls -lt docs/michi/<project>/reviews/
1048
+ cat docs/michi/<project>/reviews/cross-repo-review-*.md
1049
+ ```
1050
+
1051
+ 2. BLOCK問題を特定:
1052
+
1053
+ ```markdown
1054
+ #### 🔴 BLOCK (修正必須)
1055
+
1056
+ ##### Issue 1: [API-001] エンドポイント不整合
1057
+ - **発生箇所**: Frontend → Backend
1058
+ - **詳細**: `POST /api/v1/users` が Backend 設計書に未定義
1059
+ - **影響**: ユーザー作成フローが動作不可
1060
+ - **推奨アクション**: Backend の design.md にエンドポイント定義を追加
1061
+ ```
1062
+
1063
+ 3. 該当リポジトリの設計書を修正:
1064
+
1065
+ ```bash
1066
+ cd /path/to/backend
1067
+ # design.md を編集してエンドポイント定義を追加
1068
+ ```
1069
+
1070
+ 4. レビューを再実行:
1071
+
1072
+ ```bash
1073
+ /michi-multi-repo:spec-review my-project
1074
+ ```
1075
+
1076
+ 5. 合格後、実装コマンドを再実行:
1077
+
1078
+ ```bash
1079
+ /michi-multi-repo:impl-all my-project
1080
+ ```
1081
+
980
1082
  ## FAQ
981
1083
 
982
1084
  ### Q1: Multi-Repo機能はどのようなプロジェクトに適していますか?
@@ -1139,6 +1241,347 @@ michi multi-repo:confluence-sync my-microservices --doc-type architecture
1139
1241
  michi multi-repo:ci-status my-microservices
1140
1242
  ```
1141
1243
 
1244
+ ## サブエージェント連携による並行開発(NEW)
1245
+
1246
+ Multi-Repoプロジェクトでは、サブエージェント連携により各リポジトリで仕様展開・レビュー・実装を並行実行できます。
1247
+
1248
+ ### 概要
1249
+
1250
+ サブエージェント連携は、親プロジェクトの設計書を基に、各リポジトリで自動的に仕様コマンドを実行する機能です。
1251
+
1252
+ **主な特徴**:
1253
+ - **並行実行**: 最大3リポジトリを同時に処理(効率化)
1254
+ - **整合性チェック**: API契約、データモデル、イベントスキーマの自動検証
1255
+ - **品質ゲート**: BLOCK/WARN/PASSによる品質判定
1256
+ - **チェックポイント**: 失敗時の再開をサポート
1257
+
1258
+ **対象ユーザー**:
1259
+ - マイクロサービスアーキテクチャで開発しているチーム
1260
+ - 複数リポジトリの仕様を統一的に管理したいチーム
1261
+ - クロスリポジトリの整合性を保ちたいチーム
1262
+
1263
+ ### 前提条件
1264
+
1265
+ サブエージェント連携を使用するには、各リポジトリに **localPath** を設定する必要があります。
1266
+
1267
+ #### localPath設定方法
1268
+
1269
+ リポジトリ登録時に `--localPath` オプションを追加します:
1270
+
1271
+ ```bash
1272
+ michi multi-repo:add-repo <project-name> \
1273
+ --name <repo-name> \
1274
+ --url <github-url> \
1275
+ --branch <branch> \
1276
+ --localPath <absolute-path>
1277
+ ```
1278
+
1279
+ **例**:
1280
+ ```bash
1281
+ michi multi-repo:add-repo my-microservices \
1282
+ --name frontend \
1283
+ --url https://github.com/myorg/frontend \
1284
+ --branch main \
1285
+ --localPath /Users/user/projects/frontend
1286
+
1287
+ michi multi-repo:add-repo my-microservices \
1288
+ --name backend \
1289
+ --url https://github.com/myorg/backend \
1290
+ --branch main \
1291
+ --localPath /Users/user/projects/backend
1292
+ ```
1293
+
1294
+ **重要事項**:
1295
+ - localPathは**絶対パス**で指定してください
1296
+ - 各リポジトリは事前にローカルにクローンしておく必要があります
1297
+ - 指定したブランチにチェックアウトされていることを確認してください
1298
+
1299
+ ### ワークフロー全体像
1300
+
1301
+ ```
1302
+ 親プロジェクト
1303
+ ├── 1. spec-init, spec-requirements, spec-design(親プロジェクトで実行)
1304
+
1305
+ ├── 2. propagate-specs(各リポジトリへ仕様を展開)
1306
+ │ ├── Repository A: /kiro:spec-init, spec-requirements, spec-design
1307
+ │ ├── Repository B: /kiro:spec-init, spec-requirements, spec-design
1308
+ │ └── Repository C: /kiro:spec-init, spec-requirements, spec-design
1309
+
1310
+ ├── 3. spec-review(クロスリポジトリレビュー)
1311
+ │ ├── API契約整合性チェック
1312
+ │ ├── データモデル整合性チェック
1313
+ │ ├── イベントスキーマ整合性チェック
1314
+ │ └── 品質ゲート判定(BLOCK/WARN/PASS)
1315
+
1316
+ └── 4. impl-all(全リポジトリで実装)
1317
+ ├── Repository A: /michi:spec-impl(TDD実装)
1318
+ ├── Repository B: /michi:spec-impl(TDD実装)
1319
+ └── Repository C: /michi:spec-impl(TDD実装)
1320
+ ```
1321
+
1322
+ ### 9. 仕様の並行展開
1323
+
1324
+ 各リポジトリに親プロジェクトの仕様を展開します。
1325
+
1326
+ ```bash
1327
+ /michi-multi-repo:propagate-specs <project-name> [--operation <operation>]
1328
+ ```
1329
+
1330
+ **オプション**:
1331
+ - `--operation`: 実行する操作(デフォルト: design)
1332
+ - `init`: michi init + /kiro:spec-init
1333
+ - `requirements`: /kiro:spec-requirements
1334
+ - `design`: /kiro:spec-design
1335
+ - `all`: init → requirements → design を順次実行
1336
+
1337
+ **実行例**:
1338
+ ```bash
1339
+ # 各リポジトリで設計書を生成
1340
+ /michi-multi-repo:propagate-specs my-microservices --operation design
1341
+ ```
1342
+
1343
+ **実行内容**:
1344
+ 1. 各リポジトリのlocalPath検証
1345
+ 2. repo-spec-executorサブエージェント起動(最大3並列)
1346
+ 3. 各リポジトリで以下を実行:
1347
+ - 作業ディレクトリ移動(cd localPath)
1348
+ - michi init(未初期化の場合)
1349
+ - 指定されたoperationコマンド実行
1350
+ 4. 結果集約とレポート
1351
+
1352
+ **出力例**:
1353
+ ```
1354
+ 🎉 全リポジトリで仕様展開が完了しました
1355
+
1356
+ ### 次のステップ
1357
+
1358
+ 1. クロスリポジトリレビューを実行:
1359
+ `/michi-multi-repo:spec-review my-microservices`
1360
+
1361
+ 2. 合格後、各リポジトリでタスク生成:
1362
+ 各リポジトリで `/kiro:spec-tasks {feature}` を実行
1363
+
1364
+ 3. 実装を開始:
1365
+ `/michi-multi-repo:impl-all my-microservices`
1366
+ ```
1367
+
1368
+ ### 10. クロスリポジトリレビュー
1369
+
1370
+ 複数リポジトリ間の仕様整合性を検証します。
1371
+
1372
+ ```bash
1373
+ /michi-multi-repo:spec-review <project-name> [--focus <focus>]
1374
+ ```
1375
+
1376
+ **オプション**:
1377
+ - `--focus`: レビュー観点(デフォルト: all)
1378
+ - `api`: API契約整合性のみ
1379
+ - `data`: データモデル整合性のみ
1380
+ - `event`: イベントスキーマ整合性のみ
1381
+ - `deps`: 依存関係整合性のみ
1382
+ - `test`: テスト仕様整合性のみ
1383
+ - `all`: 全観点
1384
+
1385
+ **実行例**:
1386
+ ```bash
1387
+ # 全観点でレビュー
1388
+ /michi-multi-repo:spec-review my-microservices
1389
+
1390
+ # API契約のみレビュー
1391
+ /michi-multi-repo:spec-review my-microservices --focus api
1392
+ ```
1393
+
1394
+ **レビュー観点**:
1395
+
1396
+ 1. **API契約整合性**
1397
+ - エンドポイントパスの一致
1398
+ - HTTPメソッドの一致
1399
+ - リクエスト/レスポンススキーマの一致
1400
+
1401
+ 2. **データモデル整合性**
1402
+ - エンティティ定義の一致
1403
+ - フィールド名・型の一致
1404
+ - 必須/オプショナル属性の一致
1405
+
1406
+ 3. **イベントスキーマ整合性**
1407
+ - イベント名/トピック名の一致
1408
+ - ペイロード構造の一致
1409
+ - メタデータの一致
1410
+
1411
+ 4. **依存関係整合性**
1412
+ - サービス間依存方向の妥当性
1413
+ - バージョン要件の整合性
1414
+
1415
+ 5. **テスト仕様整合性**
1416
+ - 統合テスト境界の明確さ
1417
+ - E2Eシナリオの網羅性
1418
+
1419
+ **品質ゲート判定**:
1420
+
1421
+ - 🔴 **BLOCK(重大な不整合 - 即時修正必須)**:
1422
+ - API契約の不一致(エンドポイント、スキーマ)
1423
+ - 必須要件の欠落
1424
+ - セキュリティ設計の不整合
1425
+
1426
+ - 🟡 **WARN(軽微な不整合 - 修正推奨)**:
1427
+ - 命名規則の不統一
1428
+ - 推奨設計パターンからの逸脱
1429
+ - ドキュメント不足
1430
+
1431
+ - 🟢 **PASS(問題なし)**:
1432
+ - 全チェック項目が基準を満たす
1433
+
1434
+ **レビューレポート**:
1435
+
1436
+ レビュー結果は以下に保存されます:
1437
+ ```
1438
+ docs/michi/{project}/reviews/cross-repo-review-{timestamp}.md
1439
+ ```
1440
+
1441
+ **出力例**:
1442
+ ```markdown
1443
+ ## Multi-Repo Cross-Repository Review Report
1444
+
1445
+ **プロジェクト**: my-microservices
1446
+ **レビュー日時**: 2025-12-23T14:00:00Z
1447
+ **対象リポジトリ**: 3件
1448
+
1449
+ ### サマリー
1450
+
1451
+ | カテゴリ | ステータス | 問題件数 |
1452
+ |---------|----------|---------|
1453
+ | API契約整合性 | ✅ | 0件 |
1454
+ | データモデル整合性 | ⚠️ | 1件 |
1455
+ | イベントスキーマ整合性 | ✅ | 0件 |
1456
+
1457
+ ### 検出された問題
1458
+
1459
+ #### 🟡 WARN (修正推奨)
1460
+
1461
+ ##### Issue 1: [DATA-001] フィールド名不一致
1462
+ - **発生箇所**: Frontend ↔ Backend
1463
+ - **詳細**: `userId` (Frontend) vs `user_id` (Backend)
1464
+ - **影響**: データマッピング時の不整合
1465
+ - **推奨アクション**: 命名規則を統一(camelCase推奨)
1466
+
1467
+ ### 品質ゲート判定
1468
+
1469
+ **判定**: ⚠️ 条件付き合格
1470
+
1471
+ **理由**: WARN問題が1件検出されましたが、修正は任意です。
1472
+ ```
1473
+
1474
+ ### 11. 並行実装
1475
+
1476
+ spec-review合格後、全リポジトリで実装を並行実行します。
1477
+
1478
+ ```bash
1479
+ /michi-multi-repo:impl-all <project-name> [--tasks <task-numbers>]
1480
+ ```
1481
+
1482
+ **オプション**:
1483
+ - `--tasks`: 実行するタスク番号(例: 1,2,3)、省略時は全タスク
1484
+
1485
+ **実行例**:
1486
+ ```bash
1487
+ # 全タスクを実装
1488
+ /michi-multi-repo:impl-all my-microservices
1489
+
1490
+ # タスク1-3のみ実装
1491
+ /michi-multi-repo:impl-all my-microservices --tasks 1,2,3
1492
+ ```
1493
+
1494
+ **前提条件**:
1495
+ - spec-reviewが合格(BLOCK問題がないこと)
1496
+ - 各リポジトリでタスク生成済み(`/kiro:spec-tasks`)
1497
+
1498
+ **実行内容**:
1499
+ 1. 品質ゲート判定確認(最新レビューレポート)
1500
+ 2. 各リポジトリで`/michi:spec-impl`を並行実行(最大3並列)
1501
+ 3. TDDサイクル(RED-GREEN-REFACTOR)準拠
1502
+ 4. テストカバレッジ95%以上を維持
1503
+ 5. 結果集約とレポート
1504
+
1505
+ **出力例**:
1506
+ ```
1507
+ 🎉 全リポジトリで実装が完了しました
1508
+
1509
+ ### 実装サマリー
1510
+
1511
+ | 指標 | 結果 |
1512
+ |------|------|
1513
+ | 完了リポジトリ | 3/3 |
1514
+ | 全体カバレッジ | 96.3% |
1515
+ | Lint/Build | ✅ All Pass |
1516
+
1517
+ ### 次のステップ
1518
+
1519
+ 1. 各リポジトリでPR作成:
1520
+ 各リポジトリで `/pr` コマンドを実行
1521
+
1522
+ 2. CI結果を監視:
1523
+ `michi multi-repo:ci-status my-microservices`
1524
+
1525
+ 3. PRマージ後、リリース準備:
1526
+ - Confluenceリリース手順書作成
1527
+ - JIRAリリースチケット起票
1528
+ ```
1529
+
1530
+ ### サブエージェント連携ワークフロー例
1531
+
1532
+ ```bash
1533
+ # 1. 親プロジェクトの初期化と設計
1534
+ /michi-multi-repo:spec-init "マイクロサービスでECサイト構築" --jira EC --confluence-space EC
1535
+ /michi-multi-repo:spec-requirements ec-microservices
1536
+ /michi-multi-repo:spec-design ec-microservices
1537
+
1538
+ # 2. リポジトリ登録(localPath付き)
1539
+ michi multi-repo:add-repo ec-microservices \
1540
+ --name frontend \
1541
+ --url https://github.com/myorg/frontend \
1542
+ --branch main \
1543
+ --localPath /Users/user/projects/frontend
1544
+
1545
+ michi multi-repo:add-repo ec-microservices \
1546
+ --name backend \
1547
+ --url https://github.com/myorg/backend \
1548
+ --branch main \
1549
+ --localPath /Users/user/projects/backend
1550
+
1551
+ michi multi-repo:add-repo ec-microservices \
1552
+ --name payment-service \
1553
+ --url https://github.com/myorg/payment-service \
1554
+ --branch main \
1555
+ --localPath /Users/user/projects/payment-service
1556
+
1557
+ # 3. 各リポジトリに仕様を展開(NEW)
1558
+ /michi-multi-repo:propagate-specs ec-microservices --operation design
1559
+
1560
+ # 4. クロスリポジトリレビュー(NEW)
1561
+ /michi-multi-repo:spec-review ec-microservices
1562
+
1563
+ # 5. レビュー合格後、各リポジトリでタスク生成
1564
+ # (各リポジトリで個別に実行)
1565
+ cd /Users/user/projects/frontend
1566
+ /kiro:spec-tasks {feature}
1567
+
1568
+ cd /Users/user/projects/backend
1569
+ /kiro:spec-tasks {feature}
1570
+
1571
+ # 6. 全リポジトリで実装開始(NEW)
1572
+ /michi-multi-repo:impl-all ec-microservices
1573
+
1574
+ # 7. 各リポジトリでPR作成
1575
+ cd /Users/user/projects/frontend
1576
+ /pr
1577
+
1578
+ cd /Users/user/projects/backend
1579
+ /pr
1580
+
1581
+ # 8. CI結果確認
1582
+ michi multi-repo:ci-status ec-microservices
1583
+ ```
1584
+
1142
1585
  ## 関連ドキュメント
1143
1586
 
1144
1587
  - [ワークフローガイド](./workflow.md): Michiの全体的な開発ワークフロー
@@ -115,20 +115,10 @@ Cursorで実行:
115
115
 
116
116
  ```bash
117
117
  # 凡例
118
- /kiro:confluence-sync <feature> requirements
118
+ /michi:confluence-sync <feature>
119
119
 
120
120
  # 具体例
121
- /kiro:confluence-sync user-auth requirements
122
- ```
123
-
124
- または:
125
-
126
- ```bash
127
- # 凡例
128
- michi confluence:sync <feature> requirements
129
-
130
- # 具体例
131
- michi confluence:sync user-auth requirements
121
+ /michi:confluence-sync user-auth
132
122
  ```
133
123
 
134
124
  AIが自動的に:
@@ -185,10 +175,10 @@ jj git push
185
175
 
186
176
  ```bash
187
177
  # 凡例
188
- michi confluence:sync <feature> design
178
+ /michi:confluence-sync <feature>
189
179
 
190
180
  # 具体例
191
- michi confluence:sync user-auth design
181
+ /michi:confluence-sync user-auth
192
182
  ```
193
183
 
194
184
  見積もりExcelファイルが `estimates/<feature>-estimate.xlsx` に出力されます。
@@ -817,11 +817,180 @@ michi jira:comment DEMO-103 "PRを作成しました: https://github.com/..."
817
817
  - [ ] Confluenceページが作成された(設計書)
818
818
  - [ ] `spec.json` に `confluence.designPageId` が記録された
819
819
 
820
- ### Phase 0.3-0.4: テスト計画(このガイドではスキップ)
820
+ ### Phase 0.3-0.4: テスト計画
821
821
 
822
- - このハンズオンでは省略していますが、実際のプロジェクトでは:
823
- - [ ] テストタイプを選択(Phase 0.3)
824
- - [ ] テスト仕様書を作成(Phase 0.4)
822
+ #### Phase 0.3: テストタイプの選択
823
+
824
+ health-check-endpointの場合、以下のテストタイプを選択します:
825
+
826
+ **判断基準**:
827
+
828
+ | テストタイプ | 必要性 | 判断理由 |
829
+ |-------------|--------|----------|
830
+ | **単体テスト** | ✅ 必須 | HealthControllerとHealthServiceのロジックを検証 |
831
+ | **統合テスト** | ✅ 推奨 | API全体の動作とレスポンス形式を検証 |
832
+ | E2Eテスト | ❌ 不要 | 単一エンドポイントのみで複雑なフローなし |
833
+ | パフォーマンステスト | ⚠️ 任意 | ヘルスチェックは高頻度で呼ばれるため検討可能 |
834
+ | セキュリティテスト | ❌ 不要 | 認証不要の公開エンドポイント |
835
+
836
+ **結論**: health-check-endpointでは**単体テスト**と**統合テスト**を実施します。
837
+
838
+ #### Phase 0.4: テスト仕様書の作成
839
+
840
+ テストタイプごとに仕様書を作成します。
841
+
842
+ ##### 単体テスト仕様書
843
+
844
+ **作成場所**: `tests/specs/unit-test-spec.md`
845
+
846
+ **期待される内容(例)**:
847
+
848
+ ```markdown
849
+ # health-check-endpoint 単体テスト仕様
850
+
851
+ ## テスト対象
852
+
853
+ - HealthController
854
+ - HealthService
855
+
856
+ ## HealthControllerTest
857
+
858
+ ### TC-U-001: 正常系 - ステータス取得
859
+
860
+ **目的**: HealthControllerが正常にヘルスチェック情報を返す
861
+
862
+ **前提条件**:
863
+ - HealthServiceがモック化されている
864
+ - HealthService.getStatus()が`{status: "ok", timestamp: "2025-01-15T10:00:00Z"}`を返す
865
+
866
+ **実行手順**:
867
+ 1. GET /health エンドポイントを呼び出す
868
+
869
+ **期待結果**:
870
+ - HTTPステータス: 200
871
+ - レスポンスボディ: `{"status": "ok", "timestamp": "2025-01-15T10:00:00Z"}`
872
+
873
+ ### TC-U-002: 異常系 - サービスエラー
874
+
875
+ **目的**: サービス層でエラーが発生した場合の処理
876
+
877
+ **前提条件**:
878
+ - HealthService.getStatus()が例外をスローする
879
+
880
+ **実行手順**:
881
+ 1. GET /health エンドポイントを呼び出す
882
+
883
+ **期待結果**:
884
+ - HTTPステータス: 503
885
+ - レスポンスボディ: `{"status": "error", "message": "..."}`
886
+
887
+ ## HealthServiceTest
888
+
889
+ ### TC-U-101: システムステータス正常
890
+
891
+ **目的**: HealthServiceがシステムの正常状態を正しく判定
892
+
893
+ **前提条件**:
894
+ - すべての依存サービスが正常
895
+
896
+ **実行手順**:
897
+ 1. HealthService.getStatus()を呼び出す
898
+
899
+ **期待結果**:
900
+ - status: "ok"
901
+ - timestamp: 現在時刻のISO 8601形式
902
+ ```
903
+
904
+ ##### 統合テスト仕様書
905
+
906
+ **作成場所**: `tests/specs/integration-test-spec.md`
907
+
908
+ **期待される内容(例)**:
909
+
910
+ ```markdown
911
+ # health-check-endpoint 統合テスト仕様
912
+
913
+ ## テスト対象
914
+
915
+ - Health API全体(Controller → Service → Repository)
916
+
917
+ ## TC-I-001: 正常系 - エンドツーエンド
918
+
919
+ **目的**: Health APIが期待通りに動作する
920
+
921
+ **前提条件**:
922
+ - テストサーバーが起動している
923
+ - データベース接続が有効
924
+
925
+ **実行手順**:
926
+ 1. GET http://localhost:8080/health をHTTPクライアントで呼び出す
927
+
928
+ **期待結果**:
929
+ - HTTPステータス: 200
930
+ - Content-Type: application/json
931
+ - レスポンスボディ:
932
+ ```json
933
+ {
934
+ "status": "ok",
935
+ "timestamp": "<ISO 8601形式>",
936
+ "version": "1.0.0"
937
+ }
938
+ ```
939
+
940
+ ## TC-I-002: 異常系 - データベース切断
941
+
942
+ **目的**: DB接続エラー時の503レスポンス
943
+
944
+ **前提条件**:
945
+ - テストサーバーが起動している
946
+ - データベースが停止している
947
+
948
+ **実行手順**:
949
+ 1. GET http://localhost:8080/health を呼び出す
950
+
951
+ **期待結果**:
952
+ - HTTPステータス: 503
953
+ - Content-Type: application/json
954
+ - レスポンスボディ:
955
+ ```json
956
+ {
957
+ "status": "error",
958
+ "message": "Database connection failed"
959
+ }
960
+ ```
961
+ ```
962
+
963
+ #### ディレクトリ構造の準備
964
+
965
+ テスト仕様書を配置するディレクトリを作成します:
966
+
967
+ ```bash
968
+ mkdir -p tests/specs
969
+ ```
970
+
971
+ **確認**:
972
+
973
+ ```bash
974
+ ls -la tests/specs/
975
+ ```
976
+
977
+ **期待されるファイル**:
978
+
979
+ ```
980
+ tests/specs/
981
+ ├── unit-test-spec.md
982
+ └── integration-test-spec.md
983
+ ```
984
+
985
+ #### 検証チェックリスト
986
+
987
+ テスト計画が完了したら、以下を確認してください:
988
+
989
+ - [ ] Phase 0.3: 必要なテストタイプを選択した(単体テスト + 統合テスト)
990
+ - [ ] Phase 0.4: 単体テスト仕様書を作成した(`tests/specs/unit-test-spec.md`)
991
+ - [ ] Phase 0.4: 統合テスト仕様書を作成した(`tests/specs/integration-test-spec.md`)
992
+ - [ ] テストケースにID(TC-U-XXX、TC-I-XXX)を付与した
993
+ - [ ] 各テストケースに目的・前提条件・実行手順・期待結果を記載した
825
994
 
826
995
  ### Phase 0.5-0.6: タスク分割とJIRA同期
827
996
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sk8metal/michi-cli",
3
- "version": "0.8.7",
3
+ "version": "0.10.1",
4
4
  "description": "Managed Intelligent Comprehensive Hub for Integration - AI-driven development workflow automation",
5
5
  "license": "MIT",
6
6
  "type": "module",