@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.
- package/README.md +71 -848
- package/dist/scripts/constants/environments.d.ts +1 -1
- package/dist/scripts/constants/environments.d.ts.map +1 -1
- package/dist/scripts/constants/environments.js +0 -20
- package/dist/scripts/constants/environments.js.map +1 -1
- package/dist/scripts/phase-runner.js +1 -1
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +42 -0
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.js +3 -3
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
- package/dist/scripts/utils/template-finder.d.ts +2 -2
- package/dist/scripts/utils/template-finder.d.ts.map +1 -1
- package/dist/scripts/utils/template-finder.js +3 -8
- package/dist/scripts/utils/template-finder.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +0 -8
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/init.d.ts +0 -4
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +6 -30
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/setup-existing.d.ts +2 -6
- package/dist/src/commands/setup-existing.d.ts.map +1 -1
- package/dist/src/commands/setup-existing.js +8 -142
- package/dist/src/commands/setup-existing.js.map +1 -1
- package/docs/README.md +20 -83
- package/docs/getting-started/configuration.md +350 -0
- package/docs/getting-started/installation.md +59 -0
- package/docs/getting-started/quick-start.md +76 -0
- package/docs/guides/atlassian-integration.md +116 -0
- package/docs/guides/claude-code.md +155 -0
- package/docs/guides/multi-repo.md +117 -0
- package/docs/guides/workflow.md +382 -0
- package/docs/reference/ai-commands.md +92 -0
- package/docs/reference/cli.md +752 -0
- package/docs/reference/environment-variables.md +192 -0
- package/docs/troubleshooting.md +498 -0
- package/package.json +1 -3
- package/scripts/__tests__/create-project.test.ts +12 -12
- package/scripts/__tests__/setup-existing-project.test.ts +22 -22
- package/scripts/constants/__tests__/environments.test.ts +7 -50
- package/scripts/constants/environments.ts +1 -27
- package/scripts/phase-runner.ts +1 -1
- package/scripts/template/__tests__/renderer.test.ts +21 -21
- package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
- package/scripts/utils/multi-repo-validator.ts +50 -0
- package/scripts/utils/tasks-format-validator.ts +3 -3
- package/scripts/utils/template-finder.ts +5 -11
- package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
- package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
- package/templates/claude/commands/michi/e2e-plan.md +1 -1
- package/templates/claude/commands/michi/spec-design.md +2 -2
- package/templates/claude/commands/michi/spec-tasks.md +156 -0
- package/templates/claude/commands/michi/test-planning.md +1 -1
- package/templates/claude/commands/michi/validate-design.md +3 -3
- package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
- package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
- package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
- package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
- package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
- package/templates/claude-agent/rules/code-size-monitor.md +26 -0
- package/templates/claude-agent/rules/code-size-rules.md +32 -0
- package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
- package/docs/context.md +0 -59
- package/docs/michi-development/contributing/development.md +0 -341
- package/docs/michi-development/contributing/release.md +0 -365
- package/docs/michi-development/design/config-unification.md +0 -733
- package/docs/michi-development/design/design-config-current-state.md +0 -330
- package/docs/michi-development/design/design-config-implementation.md +0 -628
- package/docs/michi-development/design/design-config-migration.md +0 -952
- package/docs/michi-development/design/design-config-security.md +0 -771
- package/docs/michi-development/design/design-config-solution.md +0 -583
- package/docs/michi-development/design/design-config-testing.md +0 -892
- package/docs/michi-development/testing/manual-verification-flow.md +0 -871
- package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
- package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
- package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
- package/docs/michi-development/testing-strategy.md +0 -87
- package/docs/plan.md +0 -275
- package/docs/user-guide/getting-started/github-token-setup.md +0 -510
- package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
- package/docs/user-guide/getting-started/quick-start.md +0 -212
- package/docs/user-guide/getting-started/setup.md +0 -819
- package/docs/user-guide/guides/agent-skills-integration.md +0 -222
- package/docs/user-guide/guides/customization.md +0 -537
- package/docs/user-guide/guides/internationalization.md +0 -540
- package/docs/user-guide/guides/migration-guide.md +0 -138
- package/docs/user-guide/guides/multi-project.md +0 -368
- package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
- package/docs/user-guide/guides/phase-automation.md +0 -419
- package/docs/user-guide/guides/workflow.md +0 -574
- package/docs/user-guide/hands-on/README.md +0 -142
- package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
- package/docs/user-guide/hands-on/claude-setup.md +0 -452
- package/docs/user-guide/hands-on/cursor-setup.md +0 -353
- package/docs/user-guide/hands-on/troubleshooting.md +0 -964
- package/docs/user-guide/hands-on/verification-checklist.md +0 -439
- package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
- package/docs/user-guide/reference/config.md +0 -589
- package/docs/user-guide/reference/multi-repo-api.md +0 -771
- package/docs/user-guide/reference/quick-reference.md +0 -297
- package/docs/user-guide/reference/security-test-payloads.md +0 -50
- package/docs/user-guide/reference/tasks-template.md +0 -550
- package/docs/user-guide/release/ci-setup-java.md +0 -114
- package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
- package/docs/user-guide/release/ci-setup-php.md +0 -102
- package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
- package/docs/user-guide/release/ci-setup.md +0 -188
- package/docs/user-guide/release/release-flow.md +0 -476
- package/docs/user-guide/templates/test-specs/README.md +0 -173
- package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
- package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
- package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
- package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
- package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
- package/docs/user-guide/testing/integration-tests.md +0 -312
- package/docs/user-guide/testing/tdd-cycle.md +0 -349
- package/docs/user-guide/testing/test-execution-flow.md +0 -396
- package/docs/user-guide/testing/test-failure-handling.md +0 -521
- package/docs/user-guide/testing/test-planning-flow.md +0 -185
- package/docs/user-guide/testing-strategy.md +0 -185
- package/docs/verification-guide.md +0 -518
- package/templates/cline/rules/atlassian-integration.md +0 -36
- package/templates/cline/rules/michi-core.md +0 -56
- package/templates/codex/AGENTS.override.md +0 -277
- package/templates/codex/prompts/confluence-sync.md +0 -177
- package/templates/codex/rules/README.md +0 -210
- package/templates/cursor/commands/kiro/kiro-spec-impl.md +0 -244
- package/templates/cursor/commands/kiro/kiro-spec-tasks.md +0 -354
- package/templates/cursor/commands/michi/confluence-sync.md +0 -76
- package/templates/cursor/commands/michi/project-switch.md +0 -69
- package/templates/cursor/rules/atlassian-mcp.mdc +0 -188
- package/templates/cursor/rules/github-ssot.mdc +0 -151
- package/templates/cursor/rules/multi-project.mdc +0 -81
- package/templates/gemini/commands/README.md +0 -41
- 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の全ワークフローを体験していただきました。🎉
|