@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.
Files changed (104) hide show
  1. package/README.md +77 -847
  2. package/dist/scripts/phase-runner.js +1 -1
  3. package/dist/scripts/phase-runner.js.map +1 -1
  4. package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
  5. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  6. package/dist/scripts/utils/multi-repo-validator.js +42 -0
  7. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  8. package/dist/scripts/utils/tasks-format-validator.js +3 -3
  9. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  10. package/docs/README.md +20 -83
  11. package/docs/getting-started/configuration.md +379 -0
  12. package/docs/getting-started/installation.md +59 -0
  13. package/docs/getting-started/quick-start.md +76 -0
  14. package/docs/guides/ai-tools.md +311 -0
  15. package/docs/guides/atlassian-integration.md +116 -0
  16. package/docs/guides/claude-code.md +155 -0
  17. package/docs/guides/multi-repo.md +117 -0
  18. package/docs/guides/workflow.md +382 -0
  19. package/docs/reference/ai-commands.md +92 -0
  20. package/docs/reference/cli.md +756 -0
  21. package/docs/reference/environment-variables.md +192 -0
  22. package/docs/troubleshooting.md +543 -0
  23. package/package.json +1 -1
  24. package/scripts/phase-runner.ts +1 -1
  25. package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
  26. package/scripts/utils/multi-repo-validator.ts +50 -0
  27. package/scripts/utils/tasks-format-validator.ts +3 -3
  28. package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
  29. package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
  30. package/templates/claude/commands/michi/e2e-plan.md +1 -1
  31. package/templates/claude/commands/michi/spec-design.md +2 -2
  32. package/templates/claude/commands/michi/spec-tasks.md +156 -0
  33. package/templates/claude/commands/michi/test-planning.md +1 -1
  34. package/templates/claude/commands/michi/validate-design.md +3 -3
  35. package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
  36. package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
  37. package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
  38. package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
  39. package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
  40. package/templates/claude-agent/rules/code-size-monitor.md +26 -0
  41. package/templates/claude-agent/rules/code-size-rules.md +32 -0
  42. package/templates/codex/AGENTS.override.md +1 -1
  43. package/templates/codex/rules/README.md +2 -2
  44. package/templates/cursor/commands/michi/spec-tasks.md +117 -0
  45. package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
  46. package/docs/context.md +0 -59
  47. package/docs/michi-development/contributing/development.md +0 -341
  48. package/docs/michi-development/contributing/release.md +0 -365
  49. package/docs/michi-development/design/config-unification.md +0 -733
  50. package/docs/michi-development/design/design-config-current-state.md +0 -330
  51. package/docs/michi-development/design/design-config-implementation.md +0 -628
  52. package/docs/michi-development/design/design-config-migration.md +0 -952
  53. package/docs/michi-development/design/design-config-security.md +0 -771
  54. package/docs/michi-development/design/design-config-solution.md +0 -583
  55. package/docs/michi-development/design/design-config-testing.md +0 -892
  56. package/docs/michi-development/testing/manual-verification-flow.md +0 -871
  57. package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
  58. package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
  59. package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
  60. package/docs/michi-development/testing-strategy.md +0 -87
  61. package/docs/plan.md +0 -275
  62. package/docs/user-guide/getting-started/github-token-setup.md +0 -510
  63. package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
  64. package/docs/user-guide/getting-started/quick-start.md +0 -212
  65. package/docs/user-guide/getting-started/setup.md +0 -819
  66. package/docs/user-guide/guides/agent-skills-integration.md +0 -222
  67. package/docs/user-guide/guides/customization.md +0 -537
  68. package/docs/user-guide/guides/internationalization.md +0 -540
  69. package/docs/user-guide/guides/migration-guide.md +0 -138
  70. package/docs/user-guide/guides/multi-project.md +0 -368
  71. package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
  72. package/docs/user-guide/guides/phase-automation.md +0 -419
  73. package/docs/user-guide/guides/workflow.md +0 -574
  74. package/docs/user-guide/hands-on/README.md +0 -142
  75. package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
  76. package/docs/user-guide/hands-on/claude-setup.md +0 -452
  77. package/docs/user-guide/hands-on/cursor-setup.md +0 -353
  78. package/docs/user-guide/hands-on/troubleshooting.md +0 -964
  79. package/docs/user-guide/hands-on/verification-checklist.md +0 -439
  80. package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
  81. package/docs/user-guide/reference/config.md +0 -589
  82. package/docs/user-guide/reference/multi-repo-api.md +0 -771
  83. package/docs/user-guide/reference/quick-reference.md +0 -297
  84. package/docs/user-guide/reference/security-test-payloads.md +0 -50
  85. package/docs/user-guide/reference/tasks-template.md +0 -550
  86. package/docs/user-guide/release/ci-setup-java.md +0 -114
  87. package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
  88. package/docs/user-guide/release/ci-setup-php.md +0 -102
  89. package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
  90. package/docs/user-guide/release/ci-setup.md +0 -188
  91. package/docs/user-guide/release/release-flow.md +0 -476
  92. package/docs/user-guide/templates/test-specs/README.md +0 -173
  93. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
  94. package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
  95. package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
  96. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
  97. package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
  98. package/docs/user-guide/testing/integration-tests.md +0 -312
  99. package/docs/user-guide/testing/tdd-cycle.md +0 -349
  100. package/docs/user-guide/testing/test-execution-flow.md +0 -396
  101. package/docs/user-guide/testing/test-failure-handling.md +0 -521
  102. package/docs/user-guide/testing/test-planning-flow.md +0 -185
  103. package/docs/user-guide/testing-strategy.md +0 -185
  104. package/docs/verification-guide.md +0 -518
@@ -1,396 +0,0 @@
1
- # テスト実行フロー
2
-
3
- このドキュメントでは、michiを使用したプロジェクトでのテスト実行フロー(Phase A/B)について説明します。
4
-
5
- ## テスト実行の2つのフェーズ
6
-
7
- michiでは、テストを2つのフェーズに分けて実行します:
8
-
9
- | フェーズ | タイミング | 実行方式 | テストタイプ |
10
- |---------|----------|---------|------------|
11
- | **Phase A** | PR作成前 | CI/CD自動実行 | 単体テスト、Lint、ビルド |
12
- | **Phase B** | リリース準備時 | 手動実行 | 統合テスト、E2E、パフォーマンス、セキュリティ |
13
-
14
- ## Phase A: PR作成前の自動テスト
15
-
16
- ### 目的
17
-
18
- コード品質の基本的なチェックを自動化し、レビュワーの負担を軽減します。
19
-
20
- ### 実行タイミング
21
-
22
- - **PRを作成する直前**
23
- - ローカルでの開発が完了した時点
24
- - CI/CDが自動的に実行
25
-
26
- ### 実行内容
27
-
28
- #### 1. 単体テスト(必須)
29
-
30
- ```bash
31
- # Node.js
32
- npm test
33
-
34
- # Java (Gradle)
35
- ./gradlew test
36
-
37
- # PHP
38
- composer test
39
- ```
40
-
41
- **合格基準**:
42
- - すべての単体テストが成功
43
- - カバレッジ95%以上(推奨)
44
-
45
- #### 2. Lint(必須)
46
-
47
- ```bash
48
- # Node.js
49
- npm run lint
50
-
51
- # Java (Gradle)
52
- ./gradlew checkstyleMain
53
-
54
- # PHP
55
- composer phpstan
56
- ```
57
-
58
- **合格基準**:
59
- - Lintエラー: 0件
60
- - Lint警告: できる限り0件
61
-
62
- #### 3. ビルド(必須)
63
-
64
- ```bash
65
- # Node.js
66
- npm run build
67
-
68
- # Java (Gradle)
69
- ./gradlew build
70
-
71
- # PHP
72
- composer install --no-dev
73
- ```
74
-
75
- **合格基準**:
76
- - ビルドエラー: 0件
77
-
78
- ### Phase A実行フローチャート
79
-
80
- ```text
81
- [開発完了]
82
-
83
- [ローカルでPhase Aを実行]
84
-
85
- 単体テストが失敗?
86
- YES → バグ修正 → 再実行
87
- NO → ↓
88
-
89
- Lintエラーがある?
90
- YES → コード修正 → 再実行
91
- NO → ↓
92
-
93
- ビルドが失敗?
94
- YES → エラー修正 → 再実行
95
- NO → ↓
96
-
97
- [PR作成]
98
-
99
- [CI/CDが自動実行]
100
-
101
- CI/CDが成功?
102
- YES → レビュー依頼
103
- NO → ローカルで修正 → 再プッシュ
104
- ```
105
-
106
- ### CI/CD設定
107
-
108
- Phase AはGitHub ActionsまたはScrewdriverで自動実行されます。
109
-
110
- 詳細は [ci-setup.md](../release/ci-setup.md) を参照してください。
111
-
112
- ### Phase A失敗時の対応
113
-
114
- #### ケース1: 単体テストが失敗
115
-
116
- ```bash
117
- # 失敗したテストを確認
118
- npm test -- --reporter=verbose
119
-
120
- # 該当するテストを実行
121
- npm test -- tests/unit/calculator.test.ts
122
-
123
- # バグを修正
124
- # テストを再実行して確認
125
- npm test
126
- ```
127
-
128
- #### ケース2: Lintエラー
129
-
130
- ```bash
131
- # 自動修正を試みる
132
- npm run lint:fix
133
-
134
- # 手動修正が必要な場合
135
- # エディタでエラー箇所を修正
136
-
137
- # 再実行して確認
138
- npm run lint
139
- ```
140
-
141
- #### ケース3: ビルドエラー
142
-
143
- ```bash
144
- # エラー詳細を確認
145
- npm run build
146
-
147
- # 型エラーの場合
148
- npm run type-check
149
-
150
- # エラーを修正
151
- # 再ビルドして確認
152
- npm run build
153
- ```
154
-
155
- ## Phase B: リリース準備時の手動テスト
156
-
157
- ### 目的
158
-
159
- 本番環境に近い状態で、システム全体の動作を検証します。
160
-
161
- ### 実行タイミング
162
-
163
- - **PRがmainブランチにマージされた後**
164
- - **リリースタグを作成する前**
165
- - 手動で実行
166
-
167
- ### 実行内容
168
-
169
- #### 1. 統合テスト(推奨)
170
-
171
- 複数コンポーネント間の連携を検証します。
172
-
173
- ```bash
174
- # Node.js
175
- npm run test:integration
176
-
177
- # Java (Gradle)
178
- ./gradlew integrationTest
179
-
180
- # PHP
181
- composer test:integration
182
- ```
183
-
184
- **確認項目**:
185
- - API層とデータベース層の連携
186
- - 外部サービスとの統合
187
- - トランザクション処理
188
-
189
- #### 2. E2Eテスト(推奨)
190
-
191
- ユーザー視点での完全なフローを検証します。
192
-
193
- ```bash
194
- # Playwright
195
- npx playwright test
196
-
197
- # Cypress
198
- npx cypress run
199
-
200
- # Selenium
201
- npm run test:e2e
202
- ```
203
-
204
- **確認項目**:
205
- - ユーザー登録フロー
206
- - 商品購入フロー
207
- - ログイン/ログアウト
208
- - エラー処理
209
-
210
- #### 3. パフォーマンステスト(任意)
211
-
212
- システムの性能を検証します。
213
-
214
- ```bash
215
- # 負荷テストツールを使用
216
- # 例: Apache JMeter, k6, Artillery
217
- ```
218
-
219
- **確認項目**:
220
- - レスポンスタイム
221
- - スループット
222
- - リソース使用率
223
-
224
- #### 4. セキュリティテスト(任意)
225
-
226
- セキュリティ脆弱性を検証します。
227
-
228
- ```bash
229
- # セキュリティスキャンツールを使用
230
- # 例: OWASP ZAP, Snyk
231
- ```
232
-
233
- **確認項目**:
234
- - 認証/認可
235
- - 入力値検証
236
- - SQL インジェクション
237
- - XSS
238
-
239
- ### Phase B実行フローチャート
240
-
241
- ```text
242
- [PRマージ完了]
243
-
244
- [Phase B開始]
245
-
246
- ━━━━━━━━━━━━━━━━
247
- 統合テスト(推奨)
248
- ━━━━━━━━━━━━━━━━
249
-
250
- 統合テストが失敗?
251
- YES → バグ修正 → PR作成 → マージ → Phase B再実行
252
- NO → ↓
253
-
254
- ━━━━━━━━━━━━━━━━
255
- E2Eテスト(推奨)
256
- ━━━━━━━━━━━━━━━━
257
-
258
- E2Eテストが失敗?
259
- YES → バグ修正 → PR作成 → マージ → Phase B再実行
260
- NO → ↓
261
-
262
- ━━━━━━━━━━━━━━━━━━━━━━━━
263
- パフォーマンステスト(任意)
264
- ━━━━━━━━━━━━━━━━━━━━━━━━
265
-
266
- 性能要件を満たす?
267
- YES → ↓
268
- NO → 最適化 → PR作成 → マージ → Phase B再実行
269
-
270
- ━━━━━━━━━━━━━━━━━━━
271
- セキュリティテスト(任意)
272
- ━━━━━━━━━━━━━━━━━━━
273
-
274
- 脆弱性が見つかった?
275
- YES → 修正 → PR作成 → マージ → Phase B再実行
276
- NO → ↓
277
-
278
- [Phase B完了]
279
-
280
- [リリースタグ作成]
281
- ```
282
-
283
- ### Phase B失敗時の対応
284
-
285
- Phase Bで問題が見つかった場合:
286
-
287
- 1. **バグ修正のPRを作成**
288
- 2. **Phase Aを通過させる**(CI/CD自動実行)
289
- 3. **PRをマージ**
290
- 4. **Phase Bを再実行**
291
-
292
- **重要**: Phase Bで見つかった問題は、必ずPR → Phase A → マージのフローを経て修正します。直接mainブランチにコミットしてはいけません。
293
-
294
- ## Phase A と Phase B の違い
295
-
296
- | 項目 | Phase A | Phase B |
297
- |------|---------|---------|
298
- | **実行タイミング** | PR作成前 | リリース準備時 |
299
- | **実行方式** | CI/CD自動 | 手動 |
300
- | **テストタイプ** | 単体テスト | 統合、E2E、パフォーマンス、セキュリティ |
301
- | **実行頻度** | 毎PR | リリース前のみ |
302
- | **実行時間** | 数分 | 数十分〜数時間 |
303
- | **目的** | 基本品質保証 | 本番環境準備 |
304
-
305
- ## テスト実行のベストプラクティス
306
-
307
- ### 1. Phase Aは必ず成功させてからPR作成
308
-
309
- ```bash
310
- # ローカルで事前確認
311
- npm test && npm run lint && npm run build
312
-
313
- # すべて成功したらPR作成
314
- gh pr create --head feature/xxx --base main
315
- ```
316
-
317
- ### 2. Phase Bは計画的に実行
318
-
319
- Phase Bは時間がかかるため、計画的に実行します:
320
-
321
- - **事前準備**: テスト環境、テストデータの準備
322
- - **時間確保**: 十分な時間を確保(数時間)
323
- - **チーム共有**: Phase B実行中であることをチームに共有
324
-
325
- ### 3. テスト失敗時は慌てずに対応
326
-
327
- ```text
328
- テスト失敗
329
-
330
- 1. エラーログを確認
331
- 2. 再現手順を特定
332
- 3. 原因を調査
333
- 4. 修正方法を検討
334
- 5. 修正を実装
335
- 6. テストで検証
336
- 7. PR作成
337
- ```
338
-
339
- ### 4. テストはマスタテストとして常に最新を保つ
340
-
341
- テストファイルは常に最新の仕様を反映した「マスタテスト」として管理します:
342
-
343
- ```text
344
- tests/
345
- ├── unit/
346
- │ ├── user-service.test.ts # 常に最新の仕様を反映
347
- │ └── calculator.test.ts
348
- ├── integration/
349
- │ ├── user-api.test.ts # 常に最新の仕様を反映
350
- │ └── payment.test.ts
351
- └── e2e/
352
- ├── user-registration.test.ts # 常に最新の仕様を反映
353
- └── checkout.test.ts
354
- ```
355
-
356
- **仕様変更・機能追加時の対応**:
357
-
358
- - **新機能追加**: 既存のテストファイルに新しいテストケースを追加
359
- - **仕様変更**: 既存のテストケースを更新(TDDの原則に従って)
360
- - **機能削除**: 不要になったテストケースを削除
361
-
362
- **メリット**:
363
- - テスト実行時間が一定に保たれる
364
- - テストが常に最新の仕様を反映
365
- - メンテナンスが容易
366
-
367
- **phase-0、phase-1のような履歴管理はしない**
368
-
369
- ## チェックリスト
370
-
371
- ### Phase A実行前
372
-
373
- - [ ] ローカルですべてのテストが成功している
374
- - [ ] Lintエラーがない
375
- - [ ] ビルドが成功している
376
- - [ ] 新規追加したコードのテストを書いた
377
-
378
- ### Phase B実行前
379
-
380
- - [ ] PRがmainブランチにマージ済み
381
- - [ ] テスト環境が準備されている
382
- - [ ] テストデータが準備されている
383
- - [ ] 十分な時間が確保されている
384
-
385
- ### リリースタグ作成前
386
-
387
- - [ ] Phase Bのすべてのテストが成功している
388
- - [ ] 重大なバグが残っていない
389
- - [ ] パフォーマンス要件を満たしている(該当する場合)
390
- - [ ] セキュリティチェックが完了している(該当する場合)
391
-
392
- ## 次のステップ
393
-
394
- - [リリースフロー](../release/release-flow.md): リリースタグ作成からGitHub Releaseまで
395
- - [テスト失敗時の対応](./test-failure-handling.md): テスト失敗時の詳細な対処方法
396
- - [CI/CD設定](../release/ci-setup.md): CI/CDの設定方法