@sk8metal/michi-cli 0.10.1 → 0.12.0

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 (139) hide show
  1. package/README.md +71 -848
  2. package/dist/scripts/constants/environments.d.ts +1 -1
  3. package/dist/scripts/constants/environments.d.ts.map +1 -1
  4. package/dist/scripts/constants/environments.js +0 -20
  5. package/dist/scripts/constants/environments.js.map +1 -1
  6. package/dist/scripts/phase-runner.js +1 -1
  7. package/dist/scripts/phase-runner.js.map +1 -1
  8. package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
  9. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  10. package/dist/scripts/utils/multi-repo-validator.js +42 -0
  11. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  12. package/dist/scripts/utils/tasks-format-validator.js +3 -3
  13. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  14. package/dist/scripts/utils/template-finder.d.ts +2 -2
  15. package/dist/scripts/utils/template-finder.d.ts.map +1 -1
  16. package/dist/scripts/utils/template-finder.js +3 -8
  17. package/dist/scripts/utils/template-finder.js.map +1 -1
  18. package/dist/src/cli.d.ts.map +1 -1
  19. package/dist/src/cli.js +0 -8
  20. package/dist/src/cli.js.map +1 -1
  21. package/dist/src/commands/init.d.ts +0 -4
  22. package/dist/src/commands/init.d.ts.map +1 -1
  23. package/dist/src/commands/init.js +6 -30
  24. package/dist/src/commands/init.js.map +1 -1
  25. package/dist/src/commands/setup-existing.d.ts +2 -6
  26. package/dist/src/commands/setup-existing.d.ts.map +1 -1
  27. package/dist/src/commands/setup-existing.js +8 -142
  28. package/dist/src/commands/setup-existing.js.map +1 -1
  29. package/docs/README.md +20 -83
  30. package/docs/getting-started/configuration.md +350 -0
  31. package/docs/getting-started/installation.md +59 -0
  32. package/docs/getting-started/quick-start.md +76 -0
  33. package/docs/guides/atlassian-integration.md +116 -0
  34. package/docs/guides/claude-code.md +155 -0
  35. package/docs/guides/multi-repo.md +117 -0
  36. package/docs/guides/workflow.md +382 -0
  37. package/docs/reference/ai-commands.md +92 -0
  38. package/docs/reference/cli.md +752 -0
  39. package/docs/reference/environment-variables.md +192 -0
  40. package/docs/troubleshooting.md +498 -0
  41. package/package.json +1 -3
  42. package/scripts/__tests__/create-project.test.ts +12 -12
  43. package/scripts/__tests__/setup-existing-project.test.ts +22 -22
  44. package/scripts/constants/__tests__/environments.test.ts +7 -50
  45. package/scripts/constants/environments.ts +1 -27
  46. package/scripts/phase-runner.ts +1 -1
  47. package/scripts/template/__tests__/renderer.test.ts +21 -21
  48. package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
  49. package/scripts/utils/multi-repo-validator.ts +50 -0
  50. package/scripts/utils/tasks-format-validator.ts +3 -3
  51. package/scripts/utils/template-finder.ts +5 -11
  52. package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
  53. package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
  54. package/templates/claude/commands/michi/e2e-plan.md +1 -1
  55. package/templates/claude/commands/michi/spec-design.md +2 -2
  56. package/templates/claude/commands/michi/spec-tasks.md +156 -0
  57. package/templates/claude/commands/michi/test-planning.md +1 -1
  58. package/templates/claude/commands/michi/validate-design.md +3 -3
  59. package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
  60. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
  61. package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
  62. package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
  63. package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
  64. package/templates/claude-agent/rules/code-size-monitor.md +26 -0
  65. package/templates/claude-agent/rules/code-size-rules.md +32 -0
  66. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
  67. package/docs/context.md +0 -59
  68. package/docs/michi-development/contributing/development.md +0 -341
  69. package/docs/michi-development/contributing/release.md +0 -365
  70. package/docs/michi-development/design/config-unification.md +0 -733
  71. package/docs/michi-development/design/design-config-current-state.md +0 -330
  72. package/docs/michi-development/design/design-config-implementation.md +0 -628
  73. package/docs/michi-development/design/design-config-migration.md +0 -952
  74. package/docs/michi-development/design/design-config-security.md +0 -771
  75. package/docs/michi-development/design/design-config-solution.md +0 -583
  76. package/docs/michi-development/design/design-config-testing.md +0 -892
  77. package/docs/michi-development/testing/manual-verification-flow.md +0 -871
  78. package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
  79. package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
  80. package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
  81. package/docs/michi-development/testing-strategy.md +0 -87
  82. package/docs/plan.md +0 -275
  83. package/docs/user-guide/getting-started/github-token-setup.md +0 -510
  84. package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
  85. package/docs/user-guide/getting-started/quick-start.md +0 -212
  86. package/docs/user-guide/getting-started/setup.md +0 -819
  87. package/docs/user-guide/guides/agent-skills-integration.md +0 -222
  88. package/docs/user-guide/guides/customization.md +0 -537
  89. package/docs/user-guide/guides/internationalization.md +0 -540
  90. package/docs/user-guide/guides/migration-guide.md +0 -138
  91. package/docs/user-guide/guides/multi-project.md +0 -368
  92. package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
  93. package/docs/user-guide/guides/phase-automation.md +0 -419
  94. package/docs/user-guide/guides/workflow.md +0 -574
  95. package/docs/user-guide/hands-on/README.md +0 -142
  96. package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
  97. package/docs/user-guide/hands-on/claude-setup.md +0 -452
  98. package/docs/user-guide/hands-on/cursor-setup.md +0 -353
  99. package/docs/user-guide/hands-on/troubleshooting.md +0 -964
  100. package/docs/user-guide/hands-on/verification-checklist.md +0 -439
  101. package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
  102. package/docs/user-guide/reference/config.md +0 -589
  103. package/docs/user-guide/reference/multi-repo-api.md +0 -771
  104. package/docs/user-guide/reference/quick-reference.md +0 -297
  105. package/docs/user-guide/reference/security-test-payloads.md +0 -50
  106. package/docs/user-guide/reference/tasks-template.md +0 -550
  107. package/docs/user-guide/release/ci-setup-java.md +0 -114
  108. package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
  109. package/docs/user-guide/release/ci-setup-php.md +0 -102
  110. package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
  111. package/docs/user-guide/release/ci-setup.md +0 -188
  112. package/docs/user-guide/release/release-flow.md +0 -476
  113. package/docs/user-guide/templates/test-specs/README.md +0 -173
  114. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
  115. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
  116. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
  117. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
  118. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
  119. package/docs/user-guide/testing/integration-tests.md +0 -312
  120. package/docs/user-guide/testing/tdd-cycle.md +0 -349
  121. package/docs/user-guide/testing/test-execution-flow.md +0 -396
  122. package/docs/user-guide/testing/test-failure-handling.md +0 -521
  123. package/docs/user-guide/testing/test-planning-flow.md +0 -185
  124. package/docs/user-guide/testing-strategy.md +0 -185
  125. package/docs/verification-guide.md +0 -518
  126. package/templates/cline/rules/atlassian-integration.md +0 -36
  127. package/templates/cline/rules/michi-core.md +0 -56
  128. package/templates/codex/AGENTS.override.md +0 -277
  129. package/templates/codex/prompts/confluence-sync.md +0 -177
  130. package/templates/codex/rules/README.md +0 -210
  131. package/templates/cursor/commands/kiro/kiro-spec-impl.md +0 -244
  132. package/templates/cursor/commands/kiro/kiro-spec-tasks.md +0 -354
  133. package/templates/cursor/commands/michi/confluence-sync.md +0 -76
  134. package/templates/cursor/commands/michi/project-switch.md +0 -69
  135. package/templates/cursor/rules/atlassian-mcp.mdc +0 -188
  136. package/templates/cursor/rules/github-ssot.mdc +0 -151
  137. package/templates/cursor/rules/multi-project.mdc +0 -81
  138. package/templates/gemini/commands/README.md +0 -41
  139. package/templates/gemini/rules/GEMINI.md +0 -80
@@ -1,1078 +0,0 @@
1
- # Michiワークフロー体験ガイド
2
-
3
- このガイドでは、サンプル機能(`health-check-endpoint`)を使って、Michiの全ワークフローを実際に体験します。
4
-
5
- ## 🎯 このガイドの目的
6
-
7
- - spec-init → requirements → design → tasks → 実装の流れを体験
8
- - Confluence/JIRA自動連携の動作を確認
9
- - phase:runコマンドの使い方を習得
10
- - 実際のプロジェクトで使えるスキルを身につける
11
-
12
- ## 📋 前提条件
13
-
14
- このガイドを開始する前に、環境別セットアップを完了してください:
15
-
16
- - [Cursor IDEセットアップ](./cursor-setup.md)
17
- - [Claude Codeセットアップ](./claude-setup.md)
18
- - [Claude Subagentsセットアップ](./claude-agent-setup.md)
19
-
20
- ## 🚀 サンプル機能: health-check-endpoint
21
-
22
- ### 機能概要
23
-
24
- アプリケーションの稼働状況を確認するHTTPエンドポイント
25
-
26
- **エンドポイント**: `GET /health`
27
-
28
- **レスポンス例**:
29
-
30
- ```json
31
- {
32
- "status": "ok",
33
- "timestamp": "2025-01-15T10:30:00Z",
34
- "version": "1.0.0"
35
- }
36
- ```
37
-
38
- ### なぜこの機能を選んだか
39
-
40
- - シンプルで理解しやすい
41
- - 実装が少ない(検証が容易)
42
- - 実際のプロジェクトでもよく使われる
43
- - すべての開発フェーズを体験できる
44
-
45
- ## 📖 ワークフロー全体像
46
-
47
- ```
48
- Phase 0.0: 初期化 (spec-init)
49
-
50
- Phase 0.1: 要件定義 (spec-requirements + phase:run)
51
- ↓ Confluence自動作成
52
-
53
- Phase 0.2: 設計 (spec-design + phase:run)
54
- ↓ Confluence自動作成
55
-
56
- Phase 0.3-0.4: テスト計画(テストタイプ選択 + テスト仕様書作成)
57
-
58
- Phase 0.5: タスク分割 (spec-tasks)
59
-
60
- Phase 0.6: タスクのJIRA同期 (phase:run tasks)
61
- ↓ JIRA Epic/Story自動作成
62
-
63
- Phase 1: 環境構築・基盤整備
64
- ↓ テスト環境セットアップ
65
-
66
- Phase 2: TDD実装 → Phase A (PR前テスト) → Phase 3 (追加QA) → Phase B (リリース前テスト) → Phase 4-5 (リリース準備・実行)
67
- ```
68
-
69
- **注意**: このワークフローガイドでは、体験の便宜上、Phase 0.3-0.4(テスト計画)とPhase 1(環境構築)はスキップします。
70
- 詳細なテスト計画については [テスト計画フロー](../testing/test-planning-flow.md) を参照してください。
71
-
72
- ## ステップバイステップガイド
73
-
74
- ### Step 0: 環境セットアップの確認
75
-
76
- このワークフローを開始する前に、Michiの環境セットアップが完了している必要があります。
77
-
78
- #### 0-1: セットアップ状態の確認
79
-
80
- ```bash
81
- # プロジェクトディレクトリに移動
82
- cd /path/to/your-project
83
-
84
- # .kiro/ディレクトリが存在するか確認
85
- ls -la .kiro/
86
- ```
87
-
88
- **✅ セットアップ完了済みの場合**:
89
-
90
- 以下のディレクトリ/ファイルが存在するはずです:
91
-
92
- ```
93
- drwxr-xr-x 4 user staff 128 Jan 15 10:00 .
94
- drwxr-xr-x 10 user staff 320 Jan 15 10:00 ..
95
- -rw-r--r-- 1 user staff 512 Jan 15 10:00 project.json
96
- drwxr-xr-x 3 user staff 96 Jan 15 10:00 settings
97
- drwxr-xr-x 2 user staff 64 Jan 15 10:00 specs
98
- ```
99
-
100
- 確認項目:
101
-
102
- - ✅ `.kiro/project.json` が存在
103
- - ✅ `.kiro/settings/templates/` が存在
104
- - ✅ `.kiro/specs/` が存在(空でもOK)
105
-
106
- **注意**: `.kiro/steering/` は `/kiro:steering` コマンドで必要に応じて作成します(セットアップ直後には存在しません)。
107
-
108
- → **すべて存在する場合、Step 1に進んでください**
109
-
110
- **❌ セットアップ未完了の場合**:
111
-
112
- 以下のエラーが表示されます:
113
-
114
- ```
115
- ls: .kiro/: No such file or directory
116
- ```
117
-
118
- または、一部のディレクトリ/ファイルが不足しています。
119
-
120
- → **以下の「0-2: セットアップ実行」を完了してください**
121
-
122
- #### 0-2: セットアップ実行(未完了の場合のみ)
123
-
124
- **重要**: セットアップを実行する前に、プロジェクトの基本構成を確認してください。
125
-
126
- ##### Git リポジトリの確認(推奨)
127
-
128
- Michiは Git リポジトリでの使用を推奨していますが、必須ではありません。
129
-
130
- ```bash
131
- # プロジェクトディレクトリに移動
132
- cd /path/to/your-project
133
-
134
- # Git リポジトリかどうか確認
135
- ls -la .git
136
-
137
- # .git ディレクトリがない場合は初期化(推奨)
138
- git init
139
- ```
140
-
141
- **注意**: Git リポジトリでない場合でも `setup-existing` は実行できますが、警告が表示されます。
142
-
143
- ##### セットアップの実行
144
-
145
- 環境別セットアップガイドに従ってセットアップを完了してください:
146
-
147
- > **📦 パッケージ公開状況について**:
148
- >
149
- > - **パッケージ公開後**: `npx @sk8metal/michi-cli` を使用
150
- > - **パッケージ公開前(ローカルテスト)**: 以下の方法を使用
151
- > - 方法1(推奨): `npm link` でグローバルリンクを作成後、`michi` コマンドを使用
152
- > - 方法2: `npx tsx /path/to/michi/src/cli.ts` で直接実行
153
-
154
- **Cursor IDEの場合**:
155
-
156
- ```bash
157
- # Step 1: cc-sdd導入
158
- npx cc-sdd@latest --cursor --lang ja
159
-
160
- # Step 2: Michi固有ファイル追加
161
-
162
- # パッケージ公開後:
163
- npx @sk8metal/michi-cli setup-existing --cursor --lang ja
164
-
165
- # パッケージ公開前(ローカルテスト)- 方法1(推奨):
166
- # 事前準備(一度だけ実行):
167
- # cd /Users/arigatatsuya/Work/git/michi
168
- # npm link
169
- # その後:
170
- michi setup-existing --cursor --lang ja
171
-
172
- # パッケージ公開前(ローカルテスト)- 方法2:
173
- npx tsx /Users/arigatatsuya/Work/git/michi/src/cli.ts setup-existing --cursor --lang ja
174
-
175
- # 対話的プロンプトで入力:
176
- # - 環境: 1 (Cursor IDE)
177
- # - プロジェクト名: サンプルプロジェクト(または任意の名前)
178
- # - JIRAプロジェクトキー: DEMO(または任意のキー)
179
-
180
- # Step 3: 環境変数設定
181
- vim .env
182
- # 最低限、以下を設定:
183
- # GITHUB_TOKEN=your-token
184
- # GITHUB_ORG=your-org
185
- ```
186
-
187
- > **Note (v0.5.0以降)**: `GITHUB_REPO` 環境変数は廃止されました。リポジトリ情報は `.kiro/project.json` の `repository` フィールドから自動的に取得されます。
188
-
189
- ```
190
-
191
- 詳細: [Cursor IDEセットアップガイド](./cursor-setup.md)
192
-
193
- **Claude Codeの場合**:
194
-
195
- ```bash
196
- # Step 1: cc-sdd導入
197
- npx cc-sdd@latest --claude --lang ja
198
-
199
- # Step 2: Michi固有ファイル追加
200
-
201
- # パッケージ公開後:
202
- npx @sk8metal/michi-cli setup-existing --claude --lang ja
203
-
204
- # パッケージ公開前(ローカルテスト):
205
- npx tsx /Users/arigatatsuya/Work/git/michi/src/cli.ts setup-existing --claude --lang ja
206
-
207
- # または npm link 使用時:
208
- michi setup-existing --claude --lang ja
209
-
210
- # Step 3: 環境変数設定
211
- vim .env
212
- ```
213
-
214
- 詳細: [Claude Codeセットアップガイド](./claude-setup.md)
215
-
216
- **Claude Subagentsの場合**:
217
-
218
- 詳細: [Claude Subagentsセットアップガイド](./claude-agent-setup.md)
219
-
220
- #### 0-3: セットアップ完了の確認
221
-
222
- セットアップが完了したら、再度確認してください:
223
-
224
- ```bash
225
- # .kiro/ディレクトリの確認
226
- ls -la .kiro/
227
-
228
- # 必要なファイルが存在することを確認
229
- ls -la .kiro/project.json
230
- ls -la .kiro/settings/templates/
231
- ls -la .kiro/steering/
232
- ```
233
-
234
- すべて存在することを確認したら、**Step 1**に進んでください。
235
-
236
- ### Step 1: 機能の初期化 (spec-init)
237
-
238
- #### Cursor IDE / VS Codeの場合
239
-
240
- Cursor/VS Codeで以下のコマンドを実行:
241
-
242
- ```
243
- /kiro:spec-init ヘルスチェックエンドポイント。GET /health で稼働状況を返すAPI。
244
- ```
245
-
246
- #### Claude Codeの場合
247
-
248
- Claude Codeで以下のスラッシュコマンドを実行:
249
-
250
- ```
251
- /kiro:spec-init ヘルスチェックエンドポイント。GET /health で稼働状況を返すAPI。
252
- ```
253
-
254
- #### 実行結果の確認
255
-
256
- ```bash
257
- # 生成されたディレクトリを確認
258
- ls -la .kiro/specs/health-check-endpoint/
259
-
260
- # 期待される結果:
261
- # drwxr-xr-x 2 user staff 64 Jan 15 10:00 .
262
- # drwxr-xr-x 3 user staff 96 Jan 15 10:00 ..
263
- # -rw-r--r-- 1 user staff 512 Jan 15 10:00 spec.json
264
- ```
265
-
266
- **spec.jsonの内容を確認**:
267
-
268
- ```bash
269
- cat .kiro/specs/health-check-endpoint/spec.json
270
- ```
271
-
272
- ```json
273
- {
274
- "feature": "health-check-endpoint",
275
- "status": "draft",
276
- "createdAt": "2025-01-15T10:00:00Z",
277
- "phases": {
278
- "requirements": "pending",
279
- "design": "pending",
280
- "tasks": "pending",
281
- "implementation": "pending"
282
- }
283
- }
284
- ```
285
-
286
- ### Step 2: 要件定義の作成 (spec-requirements)
287
-
288
- #### AIで requirements.md を生成
289
-
290
- **Cursor IDE / VS Codeの場合**:
291
-
292
- ```
293
- /kiro:spec-requirements health-check-endpoint
294
- ```
295
-
296
- **Claude Codeの場合**:
297
-
298
- ```
299
- /kiro:spec-requirements health-check-endpoint
300
- ```
301
-
302
- #### 生成されたファイルの確認
303
-
304
- ```bash
305
- # requirements.mdが生成されたか確認
306
- ls -la .kiro/specs/health-check-endpoint/
307
-
308
- cat .kiro/specs/health-check-endpoint/requirements.md
309
- ```
310
-
311
- **期待される内容(例)**:
312
-
313
- ```markdown
314
- # health-check-endpoint 要件定義
315
-
316
- ## ビジネス要件
317
-
318
- - アプリケーションの稼働状況を監視する
319
- - ヘルスチェックツールから定期的に呼び出される
320
- - 障害発生時の早期検知に使用
321
-
322
- ## 機能要件
323
-
324
- ### FR-1: ヘルスチェックエンドポイント
325
-
326
- - エンドポイント: GET /health
327
- - レスポンス形式: JSON
328
- - ステータスコード: 200 (正常), 503 (異常)
329
-
330
- ...
331
- ```
332
-
333
- #### Confluenceに同期(phase:run)
334
-
335
- **重要**: AIでファイルを生成しただけでは、Confluenceには同期されません。`phase:run`コマンドを実行する必要があります。
336
-
337
- ```bash
338
- # requirements フェーズを実行(Confluence作成 + バリデーション)
339
-
340
- # パッケージ公開後:
341
- npx @sk8metal/michi-cli phase:run health-check-endpoint requirements
342
-
343
- # パッケージ公開前(ローカルテスト):
344
- npx tsx /Users/arigatatsuya/Work/git/michi/src/cli.ts phase:run health-check-endpoint requirements
345
-
346
- # または npm link 使用時:
347
- michi phase:run health-check-endpoint requirements
348
- ```
349
-
350
- **実行結果**:
351
-
352
- ```
353
- 🚀 Phase Runner: requirements
354
- 📁 Feature: health-check-endpoint
355
-
356
- Step 1: Validating requirements.md exists...
357
- ✅ requirements.md found
358
-
359
- Step 2: Creating Confluence page...
360
- ✅ Confluence page created
361
- 📄 Page ID: 123456789
362
- 🔗 URL: https://your-domain.atlassian.net/wiki/spaces/PRD/pages/123456789
363
-
364
- Step 3: Updating spec.json...
365
- ✅ spec.json updated
366
- ✅ confluence.requirementsPageId: 123456789
367
-
368
- Step 4: Validation complete
369
- ✅ All checks passed
370
- ```
371
-
372
- #### 確認: Confluenceページを開く
373
-
374
- ブラウザでConfluenceページを開いて確認:
375
-
376
- ```bash
377
- # Confluenceページを開く
378
- open "https://your-domain.atlassian.net/wiki/spaces/PRD/pages/123456789"
379
- ```
380
-
381
- **期待される内容**:
382
-
383
- - タイトル: `[DEMO] health-check-endpoint - 要件定義`
384
- - ラベル: `project:xxx`, `feature:health-check-endpoint`, `phase:requirements`
385
- - 本文: requirements.mdの内容がConfluence形式で表示される
386
-
387
- ### Step 3: 設計書の作成 (spec-design)
388
-
389
- #### AIで design.md を生成
390
-
391
- **Cursor IDE / VS Codeの場合**:
392
-
393
- ```
394
- /kiro:spec-design health-check-endpoint
395
- ```
396
-
397
- **Claude Codeの場合**:
398
-
399
- ```
400
- /kiro:spec-design health-check-endpoint
401
- ```
402
-
403
- #### 生成されたファイルの確認
404
-
405
- ```bash
406
- cat .kiro/specs/health-check-endpoint/design.md
407
- ```
408
-
409
- **期待される内容(例)**:
410
-
411
- ```markdown
412
- # health-check-endpoint 設計書
413
-
414
- ## アーキテクチャ
415
-
416
- ### コンポーネント構成
417
- ```
418
-
419
- Client → API Gateway → Health Controller → Health Service
420
-
421
- ````
422
-
423
- ## API設計
424
-
425
- ### GET /health
426
-
427
- **リクエスト**: なし
428
-
429
- **レスポンス**:
430
- ```json
431
- {
432
- "status": "ok",
433
- "timestamp": "2025-01-15T10:30:00Z",
434
- "version": "1.0.0"
435
- }
436
- ````
437
-
438
- ...
439
-
440
- ````
441
-
442
- #### Confluenceに同期(phase:run)
443
-
444
- ```bash
445
- # design フェーズを実行(Confluence作成 + バリデーション)
446
-
447
- # パッケージ公開後:
448
- npx @sk8metal/michi-cli phase:run health-check-endpoint design
449
-
450
- # パッケージ公開前(ローカルテスト):
451
- npx tsx /Users/arigatatsuya/Work/git/michi/src/cli.ts phase:run health-check-endpoint design
452
-
453
- # または npm link 使用時:
454
- michi phase:run health-check-endpoint design
455
- ````
456
-
457
- **実行結果**:
458
-
459
- ```
460
- 🚀 Phase Runner: design
461
- 📁 Feature: health-check-endpoint
462
-
463
- Step 1: Validating design.md exists...
464
- ✅ design.md found
465
-
466
- Step 2: Creating Confluence page...
467
- ✅ Confluence page created
468
- 📄 Page ID: 123456790
469
- 🔗 URL: https://your-domain.atlassian.net/wiki/spaces/PRD/pages/123456790
470
-
471
- Step 3: Updating spec.json...
472
- ✅ spec.json updated
473
- ✅ confluence.designPageId: 123456790
474
-
475
- Step 4: Validation complete
476
- ✅ All checks passed
477
- ```
478
-
479
- ### Step 4: タスク分割 (spec-tasks)
480
-
481
- #### AIで tasks.md を生成(全6フェーズ)
482
-
483
- **重要**: tasks.mdは、要件定義からリリースまでの**全6フェーズ**を含む必要があります。
484
-
485
- **Cursor IDE / VS Codeの場合**:
486
-
487
- ```
488
- /kiro:spec-tasks health-check-endpoint
489
- ```
490
-
491
- **Claude Codeの場合**:
492
-
493
- ```
494
- /kiro:spec-tasks health-check-endpoint
495
- ```
496
-
497
- **重要**: 全6フェーズを含めるよう指示してください。
498
-
499
- #### 生成されたファイルの確認
500
-
501
- ```bash
502
- cat .kiro/specs/health-check-endpoint/tasks.md
503
- ```
504
-
505
- **期待される構造**:
506
-
507
- ```markdown
508
- # health-check-endpoint タスク分割
509
-
510
- ## Phase 0: 要件定義(Requirements)
511
-
512
- ### Story 0.1: 要件定義書作成
513
-
514
- - タスク: requirements.mdを作成
515
- - 見積もり: 2時間
516
- - 担当: PL
517
-
518
- ## Phase 1: 設計(Design)
519
-
520
- ### Story 1.1: 基本設計
521
-
522
- - タスク: design.mdを作成
523
- - 見積もり: 4時間
524
- - 担当: アーキテクト
525
-
526
- ## Phase 2: 実装(Implementation)
527
-
528
- ### Story 2.1: Health Controller実装
529
-
530
- - タスク: HealthController.javaを実装
531
- - 見積もり: 3時間
532
- - 担当: 開発者
533
-
534
- ### Story 2.2: Health Service実装
535
-
536
- - タスク: HealthService.javaを実装
537
- - 見積もり: 2時間
538
- - 担当: 開発者
539
-
540
- ## Phase 3: 試験(Testing)
541
-
542
- ### Story 3.1: 単体テスト
543
-
544
- - タスク: HealthControllerTest.javaを実装
545
- - 見積もり: 2時間
546
- - 担当: テスター
547
-
548
- ### Story 3.2: 結合テスト
549
-
550
- - タスク: Health APIの結合テスト
551
- - 見積もり: 3時間
552
- - 担当: テスター
553
-
554
- ## Phase 4: リリース準備(Release Preparation)
555
-
556
- ### Story 4.1: ドキュメント作成
557
-
558
- - タスク: API仕様書を作成
559
- - 見積もり: 1時間
560
- - 担当: 開発者
561
-
562
- ## Phase 5: リリース(Release)
563
-
564
- ### Story 5.1: ステージングデプロイ
565
-
566
- - タスク: ステージング環境にデプロイ
567
- - 見積もり: 1時間
568
- - 担当: SM
569
-
570
- ### Story 5.2: 本番リリース
571
-
572
- - タスク: 本番環境にリリース
573
- - 見積もり: 1時間
574
- - 担当: SM
575
- ```
576
-
577
- #### JIRAに同期(phase:run)
578
-
579
- **重要**: これが最も重要なステップです。全6フェーズのJIRA Epic/Storyが自動作成されます。
580
-
581
- ```bash
582
- # tasks フェーズを実行(JIRA Epic/Story作成 + バリデーション)
583
-
584
- # パッケージ公開後:
585
- npx @sk8metal/michi-cli phase:run health-check-endpoint tasks
586
-
587
- # パッケージ公開前(ローカルテスト):
588
- npx tsx /Users/arigatatsuya/Work/git/michi/src/cli.ts phase:run health-check-endpoint tasks
589
-
590
- # または npm link 使用時:
591
- michi phase:run health-check-endpoint tasks
592
- ```
593
-
594
- **実行結果**:
595
-
596
- ```
597
- 🚀 Phase Runner: tasks
598
- 📁 Feature: health-check-endpoint
599
-
600
- Step 1: Validating tasks.md exists...
601
- ✅ tasks.md found
602
-
603
- Step 2: Validating tasks.md structure...
604
- ✅ All 6 phases detected:
605
- - Phase 0: 要件定義(Requirements)
606
- - Phase 1: 設計(Design)
607
- - Phase 2: 実装(Implementation)
608
- - Phase 3: 試験(Testing)
609
- - Phase 4: リリース準備(Release Preparation)
610
- - Phase 5: リリース(Release)
611
-
612
- Step 3: Creating JIRA Epic...
613
- ✅ Epic created: DEMO-100
614
- 📋 Epic: [サンプルプロジェクト] health-check-endpoint
615
-
616
- Step 4: Creating JIRA Stories...
617
- ✅ Story created: DEMO-101 (Phase 0: Story 0.1)
618
- ✅ Story created: DEMO-102 (Phase 1: Story 1.1)
619
- ✅ Story created: DEMO-103 (Phase 2: Story 2.1)
620
- ✅ Story created: DEMO-104 (Phase 2: Story 2.2)
621
- ✅ Story created: DEMO-105 (Phase 3: Story 3.1)
622
- ✅ Story created: DEMO-106 (Phase 3: Story 3.2)
623
- ✅ Story created: DEMO-107 (Phase 4: Story 4.1)
624
- ✅ Story created: DEMO-108 (Phase 5: Story 5.1)
625
- ✅ Story created: DEMO-109 (Phase 5: Story 5.2)
626
-
627
- Step 5: Updating spec.json...
628
- ✅ spec.json updated
629
- ✅ jira.epicKey: DEMO-100
630
- ✅ jira.stories: [DEMO-101, ..., DEMO-109]
631
-
632
- Step 6: Validation complete
633
- ✅ All checks passed
634
- ```
635
-
636
- #### 確認: JIRAを開く
637
-
638
- ブラウザでJIRAを開いて確認:
639
-
640
- ```bash
641
- # JIRAのEpicを開く
642
- open "https://your-domain.atlassian.net/browse/DEMO-100"
643
- ```
644
-
645
- **期待される内容**:
646
-
647
- - Epic: `[サンプルプロジェクト] health-check-endpoint`
648
- - リンクされたStory: 9件(DEMO-101〜DEMO-109)
649
- - 各Storyにラベル自動付与:
650
- - `Requirements`
651
- - `Design`
652
- - `Implementation`
653
- - `Testing`
654
- - `Release-Preparation`
655
- - `Release`
656
-
657
- ### Step 5: 生成物の確認
658
-
659
- すべてのフェーズが完了したら、生成物を確認します。
660
-
661
- #### ローカルファイルの確認
662
-
663
- ```bash
664
- # 生成されたファイルを確認
665
- ls -la .kiro/specs/health-check-endpoint/
666
-
667
- # 期待される結果:
668
- # -rw-r--r-- 1 user staff 2048 Jan 15 10:00 spec.json
669
- # -rw-r--r-- 1 user staff 4096 Jan 15 10:10 requirements.md
670
- # -rw-r--r-- 1 user staff 6144 Jan 15 10:20 design.md
671
- # -rw-r--r-- 1 user staff 8192 Jan 15 10:30 tasks.md
672
- ```
673
-
674
- #### spec.jsonの確認
675
-
676
- ```bash
677
- cat .kiro/specs/health-check-endpoint/spec.json
678
- ```
679
-
680
- **期待される内容**:
681
-
682
- ```json
683
- {
684
- "feature": "health-check-endpoint",
685
- "status": "in_progress",
686
- "createdAt": "2025-01-15T10:00:00Z",
687
- "updatedAt": "2025-01-15T10:30:00Z",
688
- "phases": {
689
- "requirements": "completed",
690
- "design": "completed",
691
- "tasks": "completed",
692
- "implementation": "pending"
693
- },
694
- "confluence": {
695
- "requirementsPageId": "123456789",
696
- "designPageId": "123456790"
697
- },
698
- "jira": {
699
- "epicKey": "DEMO-100",
700
- "stories": [
701
- "DEMO-101",
702
- "DEMO-102",
703
- "DEMO-103",
704
- "DEMO-104",
705
- "DEMO-105",
706
- "DEMO-106",
707
- "DEMO-107",
708
- "DEMO-108",
709
- "DEMO-109"
710
- ]
711
- }
712
- }
713
- ```
714
-
715
- #### Confluenceページの確認
716
-
717
- ```bash
718
- # 要件定義ページを開く
719
- open "https://your-domain.atlassian.net/wiki/spaces/PRD/pages/123456789"
720
-
721
- # 設計書ページを開く
722
- open "https://your-domain.atlassian.net/wiki/spaces/PRD/pages/123456790"
723
- ```
724
-
725
- #### JIRAの確認
726
-
727
- ```bash
728
- # Epicを開く
729
- open "https://your-domain.atlassian.net/browse/DEMO-100"
730
-
731
- # 特定のStoryを開く
732
- open "https://your-domain.atlassian.net/browse/DEMO-103"
733
- ```
734
-
735
- ### Step 6: 実装(JIRA連携は自動)
736
-
737
- 実装フェーズを開始します。JIRA連携はAIコマンドが自動で行います。
738
-
739
- #### 実装タスクの確認
740
-
741
- ```bash
742
- # tasks.mdの実装フェーズを確認
743
- grep -A 10 "Phase 2: 実装" .kiro/specs/health-check-endpoint/tasks.md
744
- ```
745
-
746
- **期待される内容**:
747
-
748
- ```
749
- ## Phase 2: 実装(Implementation)
750
-
751
- ### Story 2.1: Health Controller実装
752
- - タスク: HealthController.javaを実装
753
- - 見積もり: 3時間
754
- - 担当: 開発者
755
- - JIRA: DEMO-103
756
- ```
757
-
758
- #### TDDで実装(JIRA連携付き)
759
-
760
- Michiは**TDD(テスト駆動開発)**を推奨しています:
761
-
762
- ```
763
- # Cursor/VS Code/Claude Code:
764
- /kiro:spec-impl health-check-endpoint
765
- ```
766
-
767
- **自動実行される処理**:
768
-
769
- - ✅ spec.json から JIRA 情報を自動取得
770
- - ✅ Epic + 最初の Story を「進行中」に移動
771
- - ✅ TDD で実装(テスト → コード → リファクタリング)
772
- - ✅ PR 作成
773
- - ✅ Epic + 最初の Story を「レビュー待ち」に移動
774
- - ✅ JIRA に PR リンクをコメント
775
-
776
- **注意**: JIRA キーの手動指定は不要です。`jira:sync` 実行時に spec.json に保存された情報が自動で使用されます。
777
-
778
- #### GitHubブランチの作成(手動の場合)
779
-
780
- ```bash
781
- # 新しい作業を開始
782
- jj new main
783
-
784
- # コミット
785
- jj commit -m "feat: health-check-endpoint の実装開始 [DEMO-103]"
786
- jj bookmark create michi/feature/health-check-endpoint -r '@-'
787
- ```
788
-
789
- #### 個別のJIRA操作(必要な場合のみ)
790
-
791
- ```bash
792
- # ステータス変更のみ
793
- michi jira:transition DEMO-103 "Ready for Review"
794
-
795
- # コメント追加のみ
796
- michi jira:comment DEMO-103 "PRを作成しました: https://github.com/..."
797
- ```
798
-
799
- ## ✅ 完了チェックリスト
800
-
801
- すべてのステップが正常に完了したか確認してください:
802
-
803
- ### Phase 0.0: 初期化
804
-
805
- - [ ] `.kiro/specs/health-check-endpoint/` ディレクトリが作成された
806
- - [ ] `spec.json` が生成された
807
-
808
- ### Phase 0.1: 要件定義
809
-
810
- - [ ] `requirements.md` が生成された
811
- - [ ] Confluenceページが作成された(要件定義)
812
- - [ ] `spec.json` に `confluence.requirementsPageId` が記録された
813
-
814
- ### Phase 0.2: 設計
815
-
816
- - [ ] `design.md` が生成された
817
- - [ ] Confluenceページが作成された(設計書)
818
- - [ ] `spec.json` に `confluence.designPageId` が記録された
819
-
820
- ### Phase 0.3-0.4: テスト計画
821
-
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
- - [ ] 各テストケースに目的・前提条件・実行手順・期待結果を記載した
994
-
995
- ### Phase 0.5-0.6: タスク分割とJIRA同期
996
-
997
- - [ ] `tasks.md` が生成された
998
- - [ ] JIRA Epicが作成された
999
- - [ ] JIRA Storyが作成された
1000
- - [ ] `spec.json` に `jira.epicKey` と `jira.stories` が記録された
1001
-
1002
- ### Phase 1: 環境構築(このガイドではスキップ)
1003
-
1004
- - このハンズオンでは省略していますが、実際のプロジェクトでは:
1005
- - [ ] テスト環境をセットアップ
1006
- - [ ] テストデータを準備
1007
-
1008
- ### Phase 2: 実装準備
1009
-
1010
- - [ ] GitHubブランチが作成された
1011
- - [ ] 実装タスクが明確になった
1012
-
1013
- ## 🎯 次のステップ
1014
-
1015
- ハンズオン体験が完了したら、以下を試してください:
1016
-
1017
- ### 1. 実際のプロジェクトで適用
1018
-
1019
- 学んだワークフローを実際のプロジェクトで適用してください:
1020
-
1021
- ```bash
1022
- # 実際の機能で試す
1023
- /kiro:spec-init あなたの機能の説明
1024
- ```
1025
-
1026
- ### 2. 検証チェックリスト
1027
-
1028
- 各ステップが正しく動作しているか確認:
1029
-
1030
- - [検証チェックリスト](./verification-checklist.md)
1031
-
1032
- ### 3. トラブルシューティング
1033
-
1034
- 問題が発生した場合:
1035
-
1036
- - [トラブルシューティングガイド](./troubleshooting.md)
1037
-
1038
- ### 4. 詳細なワークフローガイド
1039
-
1040
- さらに詳しく学びたい場合:
1041
-
1042
- - [ワークフローガイド](../guides/workflow.md)
1043
- - [フェーズ自動化ガイド](../guides/phase-automation.md)
1044
-
1045
- ## 🆘 よくある質問
1046
-
1047
- ### Q: phase:runはいつ実行すべきですか?
1048
-
1049
- A: AIでMarkdownファイル(requirements.md、design.md、tasks.md)を生成した**直後**に実行してください。phase:runを実行しないと、Confluence/JIRAに同期されません。
1050
-
1051
- ### Q: Confluence/JIRAがない環境でも体験できますか?
1052
-
1053
- A: はい。GitHubのみでもMichiの基本的なワークフローは体験できます。ただし、phase:runコマンドは実行できません。
1054
-
1055
- ### Q: tasks.mdに6フェーズすべて含める必要がありますか?
1056
-
1057
- A: はい。phase:run tasksコマンドは、全6フェーズ(要件定義〜リリース)を期待しています。フェーズが不足している場合、バリデーションエラーになります。
1058
-
1059
- ### Q: JIRAのStoryが作成されません
1060
-
1061
- A: 以下を確認してください:
1062
-
1063
- - `.env`ファイルのJIRA認証情報
1064
- - `JIRA_ISSUE_TYPE_STORY` と `JIRA_ISSUE_TYPE_SUBTASK` の設定
1065
- - tasks.mdのフォーマット(Phase X: フェーズ名(ラベル)形式)
1066
-
1067
- ### Q: 間違えてphase:runを実行してしまいました
1068
-
1069
- A: Confluence/JIRAページは更新されますが、削除はされません。手動で修正するか、再度phase:runを実行して上書きしてください。
1070
-
1071
- ## 📚 関連ドキュメント
1072
-
1073
- - [検証チェックリスト](./verification-checklist.md)
1074
- - [トラブルシューティング](./troubleshooting.md)
1075
- - [ワークフローガイド](../guides/workflow.md)
1076
- - [クイックリファレンス](../reference/quick-reference.md)
1077
-
1078
- おつかれさまでした! Michiの全ワークフローを体験していただきました。🎉