@sk8metal/michi-cli 0.10.1 → 0.11.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 +77 -847
- 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/docs/README.md +20 -83
- package/docs/getting-started/configuration.md +379 -0
- package/docs/getting-started/installation.md +59 -0
- package/docs/getting-started/quick-start.md +76 -0
- package/docs/guides/ai-tools.md +311 -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 +756 -0
- package/docs/reference/environment-variables.md +192 -0
- package/docs/troubleshooting.md +543 -0
- package/package.json +1 -1
- package/scripts/phase-runner.ts +1 -1
- 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/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/codex/AGENTS.override.md +1 -1
- package/templates/codex/rules/README.md +2 -2
- package/templates/cursor/commands/michi/spec-tasks.md +117 -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
|
@@ -1,476 +0,0 @@
|
|
|
1
|
-
# リリースフロー
|
|
2
|
-
|
|
3
|
-
このドキュメントでは、michiを使用したプロジェクトでのリリースフローについて説明します。
|
|
4
|
-
|
|
5
|
-
## リリースフロー全体図
|
|
6
|
-
|
|
7
|
-
```text
|
|
8
|
-
[開発完了]
|
|
9
|
-
↓
|
|
10
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
11
|
-
Phase A: PR前の確認(自動)
|
|
12
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
13
|
-
├─ 単体テスト実行(CI/CD)
|
|
14
|
-
├─ Lint実行(CI/CD)
|
|
15
|
-
├─ ビルド実行(CI/CD)
|
|
16
|
-
└─ ✅ すべて成功 → PR作成可能
|
|
17
|
-
↓
|
|
18
|
-
[PR作成・レビュー・マージ]
|
|
19
|
-
↓
|
|
20
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
21
|
-
Phase B: リリース準備(手動)
|
|
22
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
23
|
-
├─ 統合テスト実行(手動)
|
|
24
|
-
├─ E2Eテスト実行(手動)
|
|
25
|
-
├─ パフォーマンステスト実行(手動、必要に応じて)
|
|
26
|
-
├─ セキュリティテスト実行(手動、必要に応じて)
|
|
27
|
-
└─ ✅ すべて成功
|
|
28
|
-
↓
|
|
29
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
30
|
-
リリース準備ドキュメント作成
|
|
31
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
32
|
-
├─ Confluenceリリース手順書作成
|
|
33
|
-
└─ リリースJIRA起票
|
|
34
|
-
↓
|
|
35
|
-
[タグ作成(手動)]
|
|
36
|
-
↓
|
|
37
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
38
|
-
CI/CD実行(自動)
|
|
39
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
40
|
-
├─ 単体テスト実行(CI/CD)
|
|
41
|
-
├─ Lint実行(CI/CD)
|
|
42
|
-
├─ ビルド実行(CI/CD)
|
|
43
|
-
└─ ✅ すべて成功 → CI/CD完了
|
|
44
|
-
↓
|
|
45
|
-
[GitHub Release作成(手動)]
|
|
46
|
-
├─ リリースノート作成(手動)
|
|
47
|
-
├─ ビルド成果物生成(ローカル、手動)
|
|
48
|
-
└─ GitHub Releaseに添付
|
|
49
|
-
↓
|
|
50
|
-
[リリース完了]
|
|
51
|
-
↓
|
|
52
|
-
[リリースJIRAをクローズ]
|
|
53
|
-
|
|
54
|
-
※ パッケージpublish/deployはmichiの対象外
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Phase A: PR前の自動テスト
|
|
58
|
-
|
|
59
|
-
詳細は [テスト実行フロー - Phase A](../testing/test-execution-flow.md#phase-a-pr作成前の自動テスト) を参照してください。
|
|
60
|
-
|
|
61
|
-
### 実行内容
|
|
62
|
-
|
|
63
|
-
- 単体テスト
|
|
64
|
-
- Lint
|
|
65
|
-
- ビルド
|
|
66
|
-
|
|
67
|
-
### 実行方法
|
|
68
|
-
|
|
69
|
-
CI/CDが自動実行します(GitHub Actions / Screwdriver)。
|
|
70
|
-
|
|
71
|
-
## Phase B: リリース準備の手動テスト
|
|
72
|
-
|
|
73
|
-
詳細は [テスト実行フロー - Phase B](../testing/test-execution-flow.md#phase-b-リリース準備時の手動テスト) を参照してください。
|
|
74
|
-
|
|
75
|
-
### 実行内容
|
|
76
|
-
|
|
77
|
-
- 統合テスト(推奨)
|
|
78
|
-
- E2Eテスト(推奨)
|
|
79
|
-
- パフォーマンステスト(任意)
|
|
80
|
-
- セキュリティテスト(任意)
|
|
81
|
-
|
|
82
|
-
### 実行方法
|
|
83
|
-
|
|
84
|
-
手動で実行します。
|
|
85
|
-
|
|
86
|
-
## Confluenceリリース手順書作成
|
|
87
|
-
|
|
88
|
-
Phase B完了後、Confluenceにリリース手順書を作成します。
|
|
89
|
-
|
|
90
|
-
### リリース手順書の構成
|
|
91
|
-
|
|
92
|
-
```markdown
|
|
93
|
-
# [プロジェクト名] リリース手順書 v1.0.0
|
|
94
|
-
|
|
95
|
-
## 1. リリース概要
|
|
96
|
-
|
|
97
|
-
- **リリースバージョン**: v1.0.0
|
|
98
|
-
- **リリース予定日**: YYYY-MM-DD
|
|
99
|
-
- **リリース担当者**: [名前]
|
|
100
|
-
- **承認者**: [名前]
|
|
101
|
-
|
|
102
|
-
## 2. リリース内容
|
|
103
|
-
|
|
104
|
-
### 新機能
|
|
105
|
-
- [機能名]: 説明
|
|
106
|
-
|
|
107
|
-
### バグ修正
|
|
108
|
-
- [バグ名]: 説明
|
|
109
|
-
|
|
110
|
-
### 変更点
|
|
111
|
-
- [変更内容]: 説明
|
|
112
|
-
|
|
113
|
-
## 3. 影響範囲
|
|
114
|
-
|
|
115
|
-
- **影響を受けるシステム**: [システム名]
|
|
116
|
-
- **影響を受けるユーザー**: [ユーザー種別]
|
|
117
|
-
- **ダウンタイム**: あり/なし
|
|
118
|
-
|
|
119
|
-
## 4. リリース手順
|
|
120
|
-
|
|
121
|
-
### 4.1 事前準備
|
|
122
|
-
|
|
123
|
-
- [ ] Phase Bテスト完了確認
|
|
124
|
-
- [ ] リリースJIRA起票
|
|
125
|
-
- [ ] 関係者への通知
|
|
126
|
-
|
|
127
|
-
### 4.2 リリース作業
|
|
128
|
-
|
|
129
|
-
1. タグ作成
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
git tag -a v1.0.0 -m "Release version 1.0.0"
|
|
133
|
-
git push origin v1.0.0
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
2. CI/CD実行確認
|
|
137
|
-
- GitHub ActionsまたはScrewdriverのステータス確認
|
|
138
|
-
|
|
139
|
-
3. GitHub Release作成
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
gh release create v1.0.0 --title "Release v1.0.0" --notes-file release-notes.md
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### 4.3 リリース後確認
|
|
146
|
-
|
|
147
|
-
- [ ] アプリケーションが正常に起動
|
|
148
|
-
- [ ] 主要機能の動作確認
|
|
149
|
-
- [ ] エラーログの確認
|
|
150
|
-
|
|
151
|
-
## 5. ロールバック手順
|
|
152
|
-
|
|
153
|
-
問題が発生した場合の手順:
|
|
154
|
-
|
|
155
|
-
1. GitHub Releaseを削除
|
|
156
|
-
2. タグを削除
|
|
157
|
-
|
|
158
|
-
```bash
|
|
159
|
-
git tag -d v1.0.0
|
|
160
|
-
git push origin :refs/tags/v1.0.0
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
3. 前バージョンに戻す
|
|
164
|
-
|
|
165
|
-
## 6. 連絡先
|
|
166
|
-
|
|
167
|
-
- **リリース担当者**: [メールアドレス]
|
|
168
|
-
- **緊急連絡先**: [電話番号]
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
## リリースJIRA起票
|
|
172
|
-
|
|
173
|
-
Confluenceリリース手順書作成後、JIRAでリリースチケットを起票します。
|
|
174
|
-
|
|
175
|
-
### JIRAチケットの構成
|
|
176
|
-
|
|
177
|
-
| 項目 | 内容 |
|
|
178
|
-
|------|------|
|
|
179
|
-
| **プロジェクト** | [プロジェクト名] |
|
|
180
|
-
| **課題タイプ** | タスクまたはリリース |
|
|
181
|
-
| **要約** | Release v1.0.0 |
|
|
182
|
-
| **説明** | 下記参照 |
|
|
183
|
-
| **優先度** | 高 |
|
|
184
|
-
| **担当者** | [リリース担当者] |
|
|
185
|
-
| **期限** | [リリース予定日] |
|
|
186
|
-
|
|
187
|
-
### JIRAチケット説明文のテンプレート
|
|
188
|
-
|
|
189
|
-
```markdown
|
|
190
|
-
## リリース情報
|
|
191
|
-
|
|
192
|
-
- **バージョン**: v1.0.0
|
|
193
|
-
- **リリース予定日**: YYYY-MM-DD
|
|
194
|
-
- **Confluence手順書**: [リンク]
|
|
195
|
-
- **GitHub PR**: [リンク]
|
|
196
|
-
|
|
197
|
-
## リリース内容
|
|
198
|
-
|
|
199
|
-
### 新機能
|
|
200
|
-
- [機能名]: 説明
|
|
201
|
-
|
|
202
|
-
### バグ修正
|
|
203
|
-
- [バグ名]: 説明
|
|
204
|
-
|
|
205
|
-
## Phase B完了確認
|
|
206
|
-
|
|
207
|
-
- [x] 統合テスト
|
|
208
|
-
- [x] E2Eテスト
|
|
209
|
-
- [x] パフォーマンステスト(該当する場合)
|
|
210
|
-
- [x] セキュリティテスト(該当する場合)
|
|
211
|
-
|
|
212
|
-
## リリース作業チェックリスト
|
|
213
|
-
|
|
214
|
-
- [ ] タグ作成
|
|
215
|
-
- [ ] CI/CD成功確認
|
|
216
|
-
- [ ] GitHub Release作成
|
|
217
|
-
- [ ] 動作確認
|
|
218
|
-
- [ ] 関係者への完了報告
|
|
219
|
-
|
|
220
|
-
## 関連チケット
|
|
221
|
-
|
|
222
|
-
- [開発チケット一覧]
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
### JIRAチケット起票コマンド例
|
|
226
|
-
|
|
227
|
-
```bash
|
|
228
|
-
# JIRA CLIを使用する場合
|
|
229
|
-
jira create \
|
|
230
|
-
--project=PROJ \
|
|
231
|
-
--type=Task \
|
|
232
|
-
--summary="Release v1.0.0" \
|
|
233
|
-
--description="$(cat release-description.md)" \
|
|
234
|
-
--priority=High \
|
|
235
|
-
--assignee=username
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
## タグ作成
|
|
239
|
-
|
|
240
|
-
Phase Bのすべてのテストが成功し、リリース準備ドキュメントを作成したら、リリースタグを作成します。
|
|
241
|
-
|
|
242
|
-
### タグ命名規則
|
|
243
|
-
|
|
244
|
-
セマンティックバージョニングに従います:
|
|
245
|
-
|
|
246
|
-
```text
|
|
247
|
-
v<major>.<minor>.<patch>
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
例:
|
|
251
|
-
- `v1.0.0` - 初回リリース
|
|
252
|
-
- `v1.1.0` - 機能追加
|
|
253
|
-
- `v1.1.1` - バグ修正
|
|
254
|
-
|
|
255
|
-
### タグ作成コマンド
|
|
256
|
-
|
|
257
|
-
```bash
|
|
258
|
-
# タグ作成
|
|
259
|
-
git tag -a v1.0.0 -m "Release version 1.0.0"
|
|
260
|
-
|
|
261
|
-
# リモートにプッシュ
|
|
262
|
-
git push origin v1.0.0
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
## タグ作成後のCI/CD
|
|
266
|
-
|
|
267
|
-
タグがプッシュされると、CI/CDが自動的に実行されます:
|
|
268
|
-
|
|
269
|
-
1. 単体テスト
|
|
270
|
-
2. Lint
|
|
271
|
-
3. ビルド
|
|
272
|
-
|
|
273
|
-
すべて成功すると、CI/CD完了です。
|
|
274
|
-
|
|
275
|
-
## GitHub Release作成
|
|
276
|
-
|
|
277
|
-
CI/CD完了後、手動でGitHub Releaseを作成します。
|
|
278
|
-
|
|
279
|
-
### GitHub Release作成手順
|
|
280
|
-
|
|
281
|
-
#### 方法1: GitHub CLI(推奨)
|
|
282
|
-
|
|
283
|
-
```bash
|
|
284
|
-
# リリースノートを作成
|
|
285
|
-
cat > release-notes.md <<EOF
|
|
286
|
-
## 新機能
|
|
287
|
-
|
|
288
|
-
- ユーザー認証機能を追加
|
|
289
|
-
- ダッシュボード画面を実装
|
|
290
|
-
|
|
291
|
-
## バグ修正
|
|
292
|
-
|
|
293
|
-
- ログイン時のエラーハンドリングを改善
|
|
294
|
-
|
|
295
|
-
## 変更点
|
|
296
|
-
|
|
297
|
-
- データベーススキーマを更新
|
|
298
|
-
EOF
|
|
299
|
-
|
|
300
|
-
# GitHub Releaseを作成
|
|
301
|
-
gh release create v1.0.0 \
|
|
302
|
-
--title "Release v1.0.0" \
|
|
303
|
-
--notes-file release-notes.md
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
#### 方法2: GitHub Web UI
|
|
307
|
-
|
|
308
|
-
1. GitHubリポジトリページを開く
|
|
309
|
-
2. 「Releases」→「Draft a new release」をクリック
|
|
310
|
-
3. タグを選択: `v1.0.0`
|
|
311
|
-
4. リリースタイトルを入力: `Release v1.0.0`
|
|
312
|
-
5. リリースノートを記述
|
|
313
|
-
6. 「Publish release」をクリック
|
|
314
|
-
|
|
315
|
-
### リリースノートの書き方
|
|
316
|
-
|
|
317
|
-
```markdown
|
|
318
|
-
## 新機能
|
|
319
|
-
|
|
320
|
-
- [機能名]: 説明
|
|
321
|
-
|
|
322
|
-
## バグ修正
|
|
323
|
-
|
|
324
|
-
- [バグ名]: 説明
|
|
325
|
-
|
|
326
|
-
## 変更点
|
|
327
|
-
|
|
328
|
-
- [変更内容]: 説明
|
|
329
|
-
|
|
330
|
-
## 既知の問題
|
|
331
|
-
|
|
332
|
-
- [問題]: 説明(該当する場合)
|
|
333
|
-
```
|
|
334
|
-
|
|
335
|
-
## ビルド成果物の添付(任意)
|
|
336
|
-
|
|
337
|
-
必要に応じて、ビルド成果物をGitHub Releaseに添付します。
|
|
338
|
-
|
|
339
|
-
### ビルド成果物の生成例
|
|
340
|
-
|
|
341
|
-
```bash
|
|
342
|
-
# Node.js
|
|
343
|
-
npm run build
|
|
344
|
-
tar -czf dist.tar.gz dist/
|
|
345
|
-
|
|
346
|
-
# Java (Gradle)
|
|
347
|
-
./gradlew build
|
|
348
|
-
cp build/libs/app-1.0.0.jar ./
|
|
349
|
-
|
|
350
|
-
# PHP
|
|
351
|
-
composer install --no-dev
|
|
352
|
-
tar -czf vendor.tar.gz vendor/
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
### GitHub Releaseへの添付
|
|
356
|
-
|
|
357
|
-
```bash
|
|
358
|
-
# GitHub CLIで添付
|
|
359
|
-
gh release upload v1.0.0 dist.tar.gz
|
|
360
|
-
|
|
361
|
-
# または、Web UIでアップロード
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
## リリース完了後の作業
|
|
365
|
-
|
|
366
|
-
### リリースJIRAをクローズ
|
|
367
|
-
|
|
368
|
-
```bash
|
|
369
|
-
# JIRA CLIを使用する場合
|
|
370
|
-
jira close PROJ-123 \
|
|
371
|
-
--comment="Release v1.0.0 completed successfully"
|
|
372
|
-
```
|
|
373
|
-
|
|
374
|
-
または、JIRA Web UIで:
|
|
375
|
-
1. リリースチケットを開く
|
|
376
|
-
2. ステータスを「完了」に変更
|
|
377
|
-
3. 完了コメントを追加
|
|
378
|
-
|
|
379
|
-
### 関係者への報告
|
|
380
|
-
|
|
381
|
-
リリース完了を関係者に報告します:
|
|
382
|
-
|
|
383
|
-
- プロジェクトマネージャー
|
|
384
|
-
- QAチーム
|
|
385
|
-
- カスタマーサポート
|
|
386
|
-
- エンドユーザー(必要に応じて)
|
|
387
|
-
|
|
388
|
-
## パッケージpublish/deployについて
|
|
389
|
-
|
|
390
|
-
**michiの対象外**: リリースフローはGitHub Release作成まで。
|
|
391
|
-
|
|
392
|
-
その後の以下の操作は、利用者が別途実装してください:
|
|
393
|
-
|
|
394
|
-
- npm publish(Node.js)
|
|
395
|
-
- Docker push(Dockerイメージ)
|
|
396
|
-
- RPMパッケージ作成(Linux)
|
|
397
|
-
- デプロイ処理
|
|
398
|
-
|
|
399
|
-
## リリースチェックリスト
|
|
400
|
-
|
|
401
|
-
### Phase A完了確認
|
|
402
|
-
|
|
403
|
-
- [ ] すべての単体テストが成功
|
|
404
|
-
- [ ] Lintエラーがない
|
|
405
|
-
- [ ] ビルドが成功
|
|
406
|
-
- [ ] PRがマージ済み
|
|
407
|
-
|
|
408
|
-
### Phase B完了確認
|
|
409
|
-
|
|
410
|
-
- [ ] 統合テストが成功(該当する場合)
|
|
411
|
-
- [ ] E2Eテストが成功(該当する場合)
|
|
412
|
-
- [ ] パフォーマンステストが成功(該当する場合)
|
|
413
|
-
- [ ] セキュリティテストが成功(該当する場合)
|
|
414
|
-
|
|
415
|
-
### リリース準備ドキュメント作成
|
|
416
|
-
|
|
417
|
-
- [ ] Confluenceリリース手順書を作成
|
|
418
|
-
- [ ] リリースJIRAを起票
|
|
419
|
-
- [ ] 関係者にリリース予定を通知
|
|
420
|
-
|
|
421
|
-
### タグ作成前確認
|
|
422
|
-
|
|
423
|
-
- [ ] Phase Bのすべてのテストが成功
|
|
424
|
-
- [ ] Confluenceリリース手順書が承認済み
|
|
425
|
-
- [ ] リリースJIRAが起票済み
|
|
426
|
-
- [ ] 重大なバグが残っていない
|
|
427
|
-
- [ ] リリースノートを準備済み
|
|
428
|
-
|
|
429
|
-
### GitHub Release作成前確認
|
|
430
|
-
|
|
431
|
-
- [ ] タグ作成後のCI/CDが成功
|
|
432
|
-
- [ ] リリースノートが完成
|
|
433
|
-
- [ ] ビルド成果物を準備済み(該当する場合)
|
|
434
|
-
|
|
435
|
-
### リリース完了後
|
|
436
|
-
|
|
437
|
-
- [ ] GitHub Releaseを作成
|
|
438
|
-
- [ ] リリースJIRAをクローズ
|
|
439
|
-
- [ ] 関係者にリリース完了を報告
|
|
440
|
-
|
|
441
|
-
## トラブルシューティング
|
|
442
|
-
|
|
443
|
-
### タグ作成後のCI/CDが失敗した場合
|
|
444
|
-
|
|
445
|
-
1. **タグを削除**
|
|
446
|
-
|
|
447
|
-
```bash
|
|
448
|
-
# ローカルのタグを削除
|
|
449
|
-
git tag -d v1.0.0
|
|
450
|
-
|
|
451
|
-
# リモートのタグを削除
|
|
452
|
-
git push origin :refs/tags/v1.0.0
|
|
453
|
-
```
|
|
454
|
-
|
|
455
|
-
2. **問題を修正**
|
|
456
|
-
|
|
457
|
-
```bash
|
|
458
|
-
# バグ修正のPRを作成
|
|
459
|
-
# Phase A → マージ → Phase B
|
|
460
|
-
|
|
461
|
-
# Phase B完了後、タグを再作成
|
|
462
|
-
git tag -a v1.0.0 -m "Release version 1.0.0"
|
|
463
|
-
git push origin v1.0.0
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
### GitHub Release作成後に問題が見つかった場合
|
|
467
|
-
|
|
468
|
-
1. **GitHub Releaseを削除**(Web UIまたはCLI)
|
|
469
|
-
2. **タグを削除**(上記手順)
|
|
470
|
-
3. **問題を修正**
|
|
471
|
-
4. **Phase A → Phase B → Confluenceドキュメント更新 → タグ作成 → GitHub Release作成**
|
|
472
|
-
|
|
473
|
-
## 次のステップ
|
|
474
|
-
|
|
475
|
-
- [CI/CD設定](./ci-setup.md): GitHub Actions/Screwdriverの設定方法
|
|
476
|
-
- [テスト実行フロー](../testing/test-execution-flow.md): Phase A/Bの詳細
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
# Test Specification Templates
|
|
2
|
-
|
|
3
|
-
This directory contains test specification templates for different types of tests.
|
|
4
|
-
|
|
5
|
-
## Available Templates
|
|
6
|
-
|
|
7
|
-
| Template | Purpose | When to Use |
|
|
8
|
-
|----------|---------|-------------|
|
|
9
|
-
| [Unit Test](./unit-test-spec-template.md) | Unit test specifications | Testing individual functions/classes in isolation |
|
|
10
|
-
| [Integration Test](./integration-test-spec-template.md) | Integration test specifications | Testing interactions between components/modules |
|
|
11
|
-
| [E2E Test](./e2e-test-spec-template.md) | End-to-end test specifications | Testing complete user workflows |
|
|
12
|
-
| [Performance Test](./performance-test-spec-template.md) | Performance test specifications | Testing response time, throughput, resource usage |
|
|
13
|
-
| [Security Test](./security-test-spec-template.md) | Security test specifications | Testing vulnerabilities, authentication, authorization |
|
|
14
|
-
|
|
15
|
-
## How to Use
|
|
16
|
-
|
|
17
|
-
### Step 1: Choose the Right Template
|
|
18
|
-
|
|
19
|
-
Select the template based on the type of testing you need:
|
|
20
|
-
|
|
21
|
-
- **Unit Test**: For testing pure functions, business logic, utilities
|
|
22
|
-
- **Integration Test**: For testing API integrations, database operations, external services
|
|
23
|
-
- **E2E Test**: For testing user flows like login, checkout, data submission
|
|
24
|
-
- **Performance Test**: For testing API response times, load capacity, memory usage
|
|
25
|
-
- **Security Test**: For testing authentication flows, input validation, access control
|
|
26
|
-
|
|
27
|
-
### Step 2: Copy the Template
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
# Example: Creating a unit test specification for authentication module
|
|
31
|
-
cp docs/user-guide/templates/test-specs/unit-test-spec-template.md \
|
|
32
|
-
docs/testing/specs/auth-unit-test-spec.md
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### Step 3: Fill in the Template
|
|
36
|
-
|
|
37
|
-
Replace all placeholder text (`{{...}}`) with your project-specific information:
|
|
38
|
-
|
|
39
|
-
- `{{TEST_NAME}}`: Descriptive name for your test
|
|
40
|
-
- `{{AUTHOR}}`: Your name or team name
|
|
41
|
-
- `{{DATE}}`: Creation date
|
|
42
|
-
- `{{TOOL_NAME}}`: Testing tool/framework (e.g., Vitest, PHPUnit, JUnit)
|
|
43
|
-
- `{{FEATURE_NAME}}`: Feature being tested
|
|
44
|
-
|
|
45
|
-
### Step 4: Define Test Cases
|
|
46
|
-
|
|
47
|
-
For each test case, specify:
|
|
48
|
-
|
|
49
|
-
1. **ID**: Unique identifier (e.g., `UT-001`, `IT-001`)
|
|
50
|
-
2. **Test Name**: Clear, descriptive name
|
|
51
|
-
3. **Description**: What is being tested
|
|
52
|
-
4. **Preconditions**: Required setup
|
|
53
|
-
5. **Test Steps**: Detailed steps to execute
|
|
54
|
-
6. **Expected Results**: Expected behavior
|
|
55
|
-
7. **Actual Results**: (Fill during execution)
|
|
56
|
-
8. **Status**: Pass/Fail/Blocked
|
|
57
|
-
|
|
58
|
-
## Test Specification Workflow
|
|
59
|
-
|
|
60
|
-
```text
|
|
61
|
-
Phase 0.3: テストタイプの選択
|
|
62
|
-
↓ 必要なテストタイプを決定
|
|
63
|
-
↓
|
|
64
|
-
Phase 0.4: テスト仕様書の作成
|
|
65
|
-
↓ テンプレートを使用して仕様書を作成
|
|
66
|
-
↓ レビューと承認
|
|
67
|
-
↓
|
|
68
|
-
Phase 0.5-0.6: タスク分割とJIRA同期
|
|
69
|
-
↓ tasks.mdにテストタスクを含める
|
|
70
|
-
↓
|
|
71
|
-
Phase 1: 環境構築・基盤整備
|
|
72
|
-
↓ テスト環境のセットアップ
|
|
73
|
-
↓
|
|
74
|
-
Phase 2: TDD実装
|
|
75
|
-
↓ テストコードと実装コードを同時作成
|
|
76
|
-
↓
|
|
77
|
-
Phase A: PR前の自動テスト実行
|
|
78
|
-
├─ 単体テスト実行
|
|
79
|
-
├─ Lint実行
|
|
80
|
-
└─ ビルド実行
|
|
81
|
-
↓
|
|
82
|
-
Phase 3: 追加の品質保証
|
|
83
|
-
↓
|
|
84
|
-
Phase B: リリース準備時の手動テスト実行
|
|
85
|
-
├─ 統合テスト実行(推奨)
|
|
86
|
-
├─ E2Eテスト実行(推奨)
|
|
87
|
-
├─ パフォーマンステスト実行(任意)
|
|
88
|
-
└─ セキュリティテスト実行(任意)
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## Best Practices
|
|
92
|
-
|
|
93
|
-
### 1. Write Specifications Before Implementation
|
|
94
|
-
|
|
95
|
-
Test specifications should be created **before** writing test code. This ensures:
|
|
96
|
-
- Clear understanding of requirements
|
|
97
|
-
- Comprehensive test coverage
|
|
98
|
-
- Reviewable test plans
|
|
99
|
-
|
|
100
|
-
### 2. Be Specific and Measurable
|
|
101
|
-
|
|
102
|
-
- ❌ Bad: "System should be fast"
|
|
103
|
-
- ✅ Good: "API response time should be < 200ms for 95% of requests"
|
|
104
|
-
|
|
105
|
-
### 3. Include Edge Cases
|
|
106
|
-
|
|
107
|
-
Don't just test happy paths:
|
|
108
|
-
- Boundary conditions
|
|
109
|
-
- Invalid inputs
|
|
110
|
-
- Error scenarios
|
|
111
|
-
- Concurrent access
|
|
112
|
-
|
|
113
|
-
### 4. Keep Specifications Updated
|
|
114
|
-
|
|
115
|
-
When requirements change:
|
|
116
|
-
1. Update the test specification first
|
|
117
|
-
2. Review the changes
|
|
118
|
-
3. Update the test implementation
|
|
119
|
-
|
|
120
|
-
### 5. Use Clear Identifiers
|
|
121
|
-
|
|
122
|
-
Test IDs should follow a consistent pattern:
|
|
123
|
-
- Unit Tests: `UT-001`, `UT-002`
|
|
124
|
-
- Integration Tests: `IT-001`, `IT-002`
|
|
125
|
-
- E2E Tests: `E2E-001`, `E2E-002`
|
|
126
|
-
- Performance Tests: `PT-001`, `PT-002`
|
|
127
|
-
- Security Tests: `ST-001`, `ST-002`
|
|
128
|
-
|
|
129
|
-
## Example Directory Structure
|
|
130
|
-
|
|
131
|
-
```text
|
|
132
|
-
docs/testing/specs/
|
|
133
|
-
├── auth/
|
|
134
|
-
│ ├── auth-unit-test-spec.md
|
|
135
|
-
│ ├── auth-integration-test-spec.md
|
|
136
|
-
│ └── auth-security-test-spec.md
|
|
137
|
-
├── payment/
|
|
138
|
-
│ ├── payment-unit-test-spec.md
|
|
139
|
-
│ ├── payment-integration-test-spec.md
|
|
140
|
-
│ ├── payment-e2e-test-spec.md
|
|
141
|
-
│ └── payment-security-test-spec.md
|
|
142
|
-
└── reporting/
|
|
143
|
-
├── reporting-unit-test-spec.md
|
|
144
|
-
└── reporting-performance-test-spec.md
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## Test Tool References
|
|
148
|
-
|
|
149
|
-
### Node.js / TypeScript
|
|
150
|
-
- **Unit/Integration/E2E**: [Vitest](https://vitest.dev/)
|
|
151
|
-
- **E2E**: [Playwright](https://playwright.dev/)
|
|
152
|
-
- **Performance**: [Apache Bench](https://httpd.apache.org/docs/2.4/programs/ab.html), [k6](https://k6.io/)
|
|
153
|
-
|
|
154
|
-
### Java
|
|
155
|
-
- **Unit**: [JUnit 5](https://junit.org/junit5/)
|
|
156
|
-
- **Integration**: [Spring Boot Test](https://spring.io/guides/gs/testing-web/)
|
|
157
|
-
- **Performance**: [JMeter](https://jmeter.apache.org/)
|
|
158
|
-
|
|
159
|
-
### PHP
|
|
160
|
-
- **Unit/Integration**: [PHPUnit](https://phpunit.de/)
|
|
161
|
-
- **E2E**: [Behat](https://behat.org/)
|
|
162
|
-
- **Performance**: [Apache Bench](https://httpd.apache.org/docs/2.4/programs/ab.html)
|
|
163
|
-
|
|
164
|
-
## Related Documentation
|
|
165
|
-
|
|
166
|
-
- [Test Planning Flow](../../testing/test-planning-flow.md)
|
|
167
|
-
- [TDD Cycle](../../testing/tdd-cycle.md)
|
|
168
|
-
- [Test Execution Flow](../../testing/test-execution-flow.md)
|
|
169
|
-
- [Test Failure Handling](../../testing/test-failure-handling.md)
|
|
170
|
-
|
|
171
|
-
## Questions?
|
|
172
|
-
|
|
173
|
-
If you have questions about which template to use or how to fill it out, consult the [Testing Strategy](../../testing-strategy.md) document.
|