@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,185 +0,0 @@
1
- # テスト戦略
2
-
3
- このドキュメントでは、michiを使用したプロジェクトでの総合的なテスト戦略について説明します。
4
-
5
- ## michiのテスト方針
6
-
7
- michiは、テスト駆動開発(TDD)と段階的なテスト実行(Phase A/B)を組み合わせたテスト戦略を採用しています。
8
-
9
- ### 基本原則
10
-
11
- 1. **テストファーストアプローチ**: コードを書く前にテストを書く(TDD)
12
- 2. **段階的テスト実行**: PR前(Phase A)とリリース前(Phase B)で異なるテストを実行
13
- 3. **自動化の推進**: Phase Aは完全自動化、Phase Bは計画的な手動実行
14
- 4. **マスタテスト管理**: テストは常に最新の仕様を反映
15
-
16
- ## テスト実行の2つのフェーズ
17
-
18
- | フェーズ | タイミング | 実行方式 | テストタイプ |
19
- |---------|----------|---------|------------|
20
- | **Phase A** | PR作成前 | CI/CD自動実行 | 単体テスト、Lint、ビルド |
21
- | **Phase B** | リリース準備時 | 手動実行 | 統合テスト、E2E、パフォーマンス、セキュリティ |
22
-
23
- 詳細は [テスト実行フロー](./testing/test-execution-flow.md) を参照してください。
24
-
25
- ## テスト計画から実行までの流れ
26
-
27
- ```text
28
- Phase 0.3: テストタイプ選択
29
-
30
- Phase 0.4: テスト仕様書の作成
31
-
32
- Phase 0.5: タスク分割 (spec-tasks)
33
-
34
- Phase 0.6: タスクのJIRA同期
35
-
36
- Phase 1: 環境構築・基盤整備
37
- ├─ テスト環境の準備
38
- ├─ テストデータの準備
39
- └─ テストディレクトリ構造の作成
40
-
41
- Phase 2: TDD実装(テストと実装を同時進行)
42
-
43
- Phase A: PR前の自動テスト(CI/CD)
44
- ├─ 単体テスト
45
- ├─ Lint
46
- └─ ビルド
47
-
48
- [PRマージ]
49
-
50
- Phase 3: 追加の品質保証(PRマージ後)
51
- ├─ 静的解析
52
- ├─ セキュリティスキャン
53
- └─ カバレッジ確認
54
-
55
- Phase B: リリース準備時の手動テスト
56
- ├─ 統合テスト(推奨)
57
- ├─ E2Eテスト(推奨)
58
- ├─ パフォーマンステスト(任意)
59
- └─ セキュリティテスト(任意)
60
-
61
- Phase 4-5: リリース準備・実行
62
- ```
63
-
64
- ### 各フェーズの詳細ドキュメント
65
-
66
- - **Phase 0.3〜Phase 1(テスト計画と環境整備)**: [テスト計画フロー](./testing/test-planning-flow.md)
67
- - **Phase 2(TDD実装)**: [TDDサイクル](./testing/tdd-cycle.md)
68
- - **Phase A/B実行**: [テスト実行フロー](./testing/test-execution-flow.md)
69
- - **Phase 3(追加QA)・テスト失敗時**: [テスト失敗時の対応](./testing/test-failure-handling.md)
70
-
71
- ## テストタイプと選択基準
72
-
73
- | テストタイプ | 必須/任意 | 実行フェーズ | 選択基準 |
74
- |------------|---------|------------|---------|
75
- | 単体テスト | **必須** | Phase A | すべてのプロジェクト |
76
- | 統合テスト | **推奨** | Phase B | 複数コンポーネントが連携 |
77
- | E2Eテスト | **推奨** | Phase B | UIを持つアプリケーション |
78
- | パフォーマンステスト | 任意 | Phase B | 高負荷・レスポンスタイム重要 |
79
- | セキュリティテスト | 任意 | Phase B | 機密データ・外部公開API |
80
-
81
- ### テスト仕様書テンプレート
82
-
83
- 各テストタイプの仕様書テンプレートを用意しています:
84
-
85
- - [単体テスト仕様書テンプレート](./templates/test-specs/unit-test-spec-template.md)
86
- - [統合テスト仕様書テンプレート](./templates/test-specs/integration-test-spec-template.md)
87
- - [E2Eテスト仕様書テンプレート](./templates/test-specs/e2e-test-spec-template.md)
88
- - [パフォーマンステスト仕様書テンプレート](./templates/test-specs/performance-test-spec-template.md)
89
- - [セキュリティテスト仕様書テンプレート](./templates/test-specs/security-test-spec-template.md)
90
-
91
- ## 対応言語とツール
92
-
93
- ### Node.js / TypeScript
94
- - テストフレームワーク: Vitest
95
- - Lint: ESLint
96
- - ビルド: tsc
97
-
98
- ### Java
99
- - テストフレームワーク: JUnit 5
100
- - ビルドツール: Gradle
101
- - Lint: Checkstyle
102
-
103
- ### PHP
104
- - テストフレームワーク: PHPUnit
105
- - Lint: PHPStan
106
- - パッケージ管理: Composer
107
-
108
- ## CI/CD連携
109
-
110
- Phase Aのテスト(単体テスト、Lint、ビルド)は、以下のCI/CDツールで自動実行されます:
111
-
112
- - GitHub Actions
113
- - Screwdriver
114
-
115
- 詳細は [CI/CD設定](./release/ci-setup.md) を参照してください。
116
-
117
- ## リリースフロー
118
-
119
- ```text
120
- [開発完了]
121
-
122
- Phase A: 単体テスト + Lint + ビルド(自動)
123
-
124
- [PR作成・レビュー・マージ]
125
-
126
- Phase B: 統合 + E2E + その他(手動)
127
-
128
- [リリースタグ作成]
129
-
130
- CI/CD実行(自動)
131
-
132
- [GitHub Release作成]
133
- ```
134
-
135
- 詳細は [リリースフロー](./release/release-flow.md) を参照してください。
136
-
137
- ## クイックスタートガイド
138
-
139
- ### 1. 新規プロジェクトでmichiを導入する場合
140
-
141
- 1. [テスト計画フロー](./testing/test-planning-flow.md) でテストタイプを選択
142
- 2. テスト仕様書テンプレートを使用してテスト計画を作成
143
- 3. [TDDサイクル](./testing/tdd-cycle.md) に従ってテストコードを実装
144
- 4. [CI/CD設定](./release/ci-setup.md) でPhase Aを自動化
145
- 5. [テスト実行フロー](./testing/test-execution-flow.md) に従って開発
146
-
147
- ### 2. 既存プロジェクトにmichiを導入する場合
148
-
149
- 1. 既存のテストをmichiのディレクトリ構造に移行
150
- 2. Phase A(単体テスト)から段階的に自動化
151
- 3. CI/CD設定を追加
152
- 4. Phase B(統合テスト等)を計画的に追加
153
-
154
- ## よくある質問
155
-
156
- ### Q1: Phase Bのテストは毎回実行する必要がありますか?
157
-
158
- A: Phase Bはリリース前のみ実行します。毎PRで実行する必要はありません。
159
-
160
- ### Q2: テストカバレッジの目標は?
161
-
162
- A: 単体テストで95%以上を推奨します。最低でも80%以上を目指してください。
163
-
164
- ### Q3: パフォーマンステストやセキュリティテストは必須ですか?
165
-
166
- A: 必須ではありません。プロジェクトの要件に応じて選択してください。
167
-
168
- ### Q4: Phase Bで問題が見つかったらどうすれば?
169
-
170
- A: バグ修正のPRを作成し、Phase Aを通過させてからマージ、Phase Bを再実行します。
171
-
172
- ## 関連ドキュメント
173
-
174
- ### テスト関連
175
- - [テスト計画フロー](./testing/test-planning-flow.md) - Phase 0.3〜Phase 1
176
- - [TDDサイクル](./testing/tdd-cycle.md) - Phase 2: RED-GREEN-REFACTOR
177
- - [テスト実行フロー](./testing/test-execution-flow.md) - Phase A/B/3
178
- - [テスト失敗時の対応](./testing/test-failure-handling.md) - トラブルシューティング
179
-
180
- ### リリース関連
181
- - [リリースフロー](./release/release-flow.md) - タグ作成からリリースまで
182
- - [CI/CD設定](./release/ci-setup.md) - GitHub Actions/Screwdriver
183
-
184
- ### テンプレート
185
- - [テスト仕様書テンプレート](./templates/test-specs/) - 各テストタイプ
@@ -1,518 +0,0 @@
1
- # 新規実装機能 動作確認手順書
2
-
3
- このドキュメントでは、新規実装した3つの機能の動作確認手順を説明します。
4
-
5
- ## 📋 目次
6
-
7
- 1. [事前準備](#事前準備)
8
- 2. [機能1: テスト実行とレポート生成](#機能1-テスト実行とレポート生成)
9
- 3. [機能2: リリースノート生成](#機能2-リリースノート生成)
10
- 4. [機能3: Confluence承認状態ポーリング](#機能3-confluence承認状態ポーリング)
11
- 5. [統合テスト: ワークフロー実行](#統合テスト-ワークフロー実行)
12
- 6. [トラブルシューティング](#トラブルシューティング)
13
-
14
- ---
15
-
16
- ## 事前準備
17
-
18
- ### 1. プロジェクトのビルド
19
-
20
- ```bash
21
- npm run build
22
- ```
23
-
24
- ### 2. 必要なファイルの確認
25
-
26
- 以下のファイルが存在することを確認してください:
27
-
28
- ```bash
29
- # プロジェクトメタデータ
30
- ls -la .kiro/project.json
31
-
32
- # テスト用の機能仕様(既存)
33
- ls -la .kiro/specs/health-check-endpoint/
34
- ```
35
-
36
- もし`.kiro/project.json`が存在しない場合は、以下のコマンドで作成できます:
37
-
38
- ```bash
39
- cat > .kiro/project.json << 'EOF'
40
- {
41
- "projectId": "michi",
42
- "projectName": "Michi",
43
- "jiraProjectKey": "MICHI",
44
- "confluenceLabels": ["michi", "ai-development", "claude-code"],
45
- "status": "active",
46
- "team": ["Development Team"],
47
- "stakeholders": ["Product Team", "Engineering Team"],
48
- "repository": "https://github.com/sk8metalme/michi",
49
- "description": "AI駆動開発を支援するプロジェクト管理・ドキュメント管理フレームワーク"
50
- }
51
- EOF
52
- ```
53
-
54
- ---
55
-
56
- ## 機能1: テスト実行とレポート生成
57
-
58
- ### 概要
59
-
60
- プロジェクトの言語を自動検出し、適切なテストコマンドを実行してレポートを生成します。
61
-
62
- ### 動作確認手順
63
-
64
- #### ステップ1: 単体テストを実行
65
-
66
- ```bash
67
- # テスト確認スクリプトを実行
68
- node dist/scripts/test-new-features.js
69
- ```
70
-
71
- #### ステップ2: 結果を確認
72
-
73
- コンソール出力で以下が表示されることを確認:
74
-
75
- ```
76
- 📋 Test 1: テスト実行とレポート生成
77
- ============================================================
78
-
79
- ✅ このプロジェクトでテストを実行します...
80
-
81
- 📊 テスト結果:
82
- ステータス: ✅ 成功
83
- 言語: Node.js/TypeScript
84
- コマンド: npm test
85
- 実行時間: X.XX秒
86
-
87
- 📝 レポート生成中...
88
- ```
89
-
90
- ### 期待される結果
91
-
92
- - ✅ テストが正常に実行される
93
- - ✅ テスト結果がMarkdown形式でフォーマットされる
94
- - ✅ 実行時間、タイムスタンプが記録される
95
-
96
- ### 個別テスト(オプション)
97
-
98
- 特定の言語でテストしたい場合:
99
-
100
- ```typescript
101
- // test-runner-example.ts を作成
102
- import { executeTests, generateTestReport } from './dist/scripts/utils/test-runner.js';
103
-
104
- async function test() {
105
- // Node.js/TypeScriptでテスト
106
- const result = await executeTests('Node.js/TypeScript', process.cwd());
107
- console.log('Result:', result);
108
-
109
- // レポート生成
110
- const report = generateTestReport(result, 'my-feature');
111
- console.log('Report:', report);
112
- }
113
-
114
- test();
115
- ```
116
-
117
- 実行:
118
- ```bash
119
- npx tsx test-runner-example.ts
120
- ```
121
-
122
- ---
123
-
124
- ## 機能2: リリースノート生成
125
-
126
- ### 概要
127
-
128
- git logからコミット履歴を取得し、Conventional Commits形式でリリースノートを自動生成します。
129
-
130
- ### 動作確認手順
131
-
132
- #### ステップ1: 単体テストを実行
133
-
134
- ```bash
135
- # テスト確認スクリプトを実行
136
- node dist/scripts/test-new-features.js
137
- ```
138
-
139
- #### ステップ2: 結果を確認
140
-
141
- コンソール出力で以下が表示されることを確認:
142
-
143
- ```
144
- 📋 Test 2: リリースノート生成
145
- ============================================================
146
-
147
- ✅ 最新10コミットを取得します...
148
-
149
- 📊 取得したコミット数: 10
150
-
151
- 最初の3コミット:
152
- 1. [feat] Claude Code/Claude AgentにkiroコードレビューとPR確認を追加
153
- 2. [feat] kiro:spec-implにコードレビューとPR作成確認を追加
154
- 3. [feat] Kiro spec-impl統合ワークフローと関連機能を追加
155
-
156
- 📝 リリースノート生成中...
157
- ```
158
-
159
- ### 期待される結果
160
-
161
- - ✅ コミット履歴が正常に取得される
162
- - ✅ Conventional Commits形式が正しく解析される
163
- - ✅ Features, Bug Fixes, Other Changesに分類される
164
- - ✅ Markdown形式でリリースノートが生成される
165
-
166
- ### 個別テスト(オプション)
167
-
168
- カスタムバージョンでリリースノートを生成:
169
-
170
- ```typescript
171
- // release-notes-example.ts を作成
172
- import { createReleaseNotes } from './dist/scripts/utils/release-notes-generator.js';
173
- import { writeFileSync } from 'fs';
174
-
175
- async function test() {
176
- // v2.0.0のリリースノートを生成
177
- const notes = await createReleaseNotes('v2.0.0', 'HEAD~20', process.cwd());
178
-
179
- // ファイルに保存
180
- writeFileSync('RELEASE_NOTES_v2.0.0.md', notes, 'utf-8');
181
- console.log('✅ リリースノート生成完了: RELEASE_NOTES_v2.0.0.md');
182
- console.log(notes);
183
- }
184
-
185
- test();
186
- ```
187
-
188
- 実行:
189
- ```bash
190
- npx tsx release-notes-example.ts
191
- ```
192
-
193
- ---
194
-
195
- ## 機能3: Confluence承認状態ポーリング
196
-
197
- ### 概要
198
-
199
- Confluence APIを使用してページの承認状態を確認します。
200
-
201
- ### 事前準備: 環境変数の設定
202
-
203
- Confluence APIを使用するため、以下の環境変数を設定してください:
204
-
205
- ```bash
206
- # .envファイルに追加
207
- cat >> .env << 'EOF'
208
-
209
- # Confluence承認状態テスト用
210
- ATLASSIAN_URL=https://your-domain.atlassian.net
211
- ATLASSIAN_EMAIL=your-email@example.com
212
- ATLASSIAN_API_TOKEN=your-api-token
213
- CONFLUENCE_TEST_PAGE_ID=123456
214
- EOF
215
- ```
216
-
217
- **API Token取得方法:**
218
- 1. Atlassianアカウントにログイン
219
- 2. https://id.atlassian.com/manage-profile/security/api-tokens にアクセス
220
- 3. 「Create API token」をクリック
221
- 4. トークンをコピーして`ATLASSIAN_API_TOKEN`に設定
222
-
223
- **ページIDの確認方法:**
224
- 1. Confluenceページを開く
225
- 2. URLから`pageId=XXXXXX`の部分を確認
226
- - 例: `https://your-domain.atlassian.net/wiki/spaces/SPACE/pages/123456/PageTitle`
227
- - この場合、ページIDは`123456`
228
-
229
- ### 動作確認手順
230
-
231
- #### ステップ1: 環境変数が設定されていることを確認
232
-
233
- ```bash
234
- echo "URL: $ATLASSIAN_URL"
235
- echo "Email: $ATLASSIAN_EMAIL"
236
- echo "Page ID: $CONFLUENCE_TEST_PAGE_ID"
237
- ```
238
-
239
- #### ステップ2: テストを実行
240
-
241
- ```bash
242
- node dist/scripts/test-new-features.js
243
- ```
244
-
245
- #### ステップ3: 結果を確認
246
-
247
- 環境変数が設定されている場合:
248
-
249
- ```
250
- 📋 Test 3: Confluence承認状態確認
251
- ============================================================
252
-
253
- ✅ Confluence承認状態を確認します...
254
-
255
- 📊 承認状態:
256
- ページID: 123456
257
- ページタイトル: Test Page
258
- 承認済み: ✅ はい / ❌ いいえ
259
- 承認者: user1, user2
260
- ```
261
-
262
- 環境変数が未設定の場合:
263
-
264
- ```
265
- ⚠️ Confluence認証情報が設定されていません
266
- 以下の環境変数を設定すると、実際のAPIテストが可能です:
267
- - ATLASSIAN_URL
268
- - ATLASSIAN_EMAIL
269
- - ATLASSIAN_API_TOKEN
270
- - CONFLUENCE_TEST_PAGE_ID (テスト用ページID)
271
- ```
272
-
273
- ### 期待される結果
274
-
275
- - ✅ Confluence APIに正常に接続できる
276
- - ✅ ページ情報が取得できる
277
- - ✅ 承認状態が正しく判定される
278
-
279
- ### 個別テスト(オプション)
280
-
281
- ```typescript
282
- // confluence-approval-example.ts を作成
283
- import { getApprovalStatus } from './dist/scripts/utils/confluence-approval.js';
284
-
285
- async function test() {
286
- const config = {
287
- url: process.env.ATLASSIAN_URL!,
288
- email: process.env.ATLASSIAN_EMAIL!,
289
- apiToken: process.env.ATLASSIAN_API_TOKEN!
290
- };
291
-
292
- const pageId = process.env.CONFLUENCE_TEST_PAGE_ID!;
293
-
294
- const status = await getApprovalStatus(pageId, config);
295
- console.log('承認状態:', status);
296
- }
297
-
298
- test();
299
- ```
300
-
301
- 実行:
302
- ```bash
303
- npx tsx confluence-approval-example.ts
304
- ```
305
-
306
- ---
307
-
308
- ## 統合テスト: ワークフロー実行
309
-
310
- ### 概要
311
-
312
- 全機能を統合したワークフローとして実行します。
313
-
314
- ### 動作確認手順
315
-
316
- #### ステップ1: testとreleaseステージのみを実行
317
-
318
- ```bash
319
- npx tsx scripts/test-workflow-stages.ts --feature health-check-endpoint
320
- ```
321
-
322
- #### ステップ2: 結果を確認
323
-
324
- ```
325
- 🧪 新規実装ステージのテスト
326
- Feature: health-check-endpoint
327
- Stages: test → release
328
-
329
- 🚀 Starting workflow for: health-check-endpoint
330
- Stages: test → release
331
- Project: Michi
332
-
333
- 📋 Stage: test
334
- Test phase - execute tests
335
- Detected language: Node.js/TypeScript (medium confidence)
336
- Running tests...
337
- ✅ Test report saved: .kiro/specs/health-check-endpoint/test-report.md
338
- ✅ Stage completed: test
339
-
340
- 📋 Stage: release
341
- Release preparation
342
- Generating release notes for v1.0.0...
343
- ✅ Release notes saved: .kiro/specs/health-check-endpoint/release-notes-v1.0.0.md
344
- ✅ Stage completed: release
345
-
346
- 🎉 Workflow completed successfully!
347
- ```
348
-
349
- #### ステップ3: 生成されたファイルを確認
350
-
351
- ```bash
352
- # テストレポートを表示
353
- cat .kiro/specs/health-check-endpoint/test-report.md
354
-
355
- # リリースノートを表示
356
- cat .kiro/specs/health-check-endpoint/release-notes-v1.0.0.md
357
- ```
358
-
359
- ### 期待される結果
360
-
361
- - ✅ testステージが正常に完了する
362
- - ✅ releaseステージが正常に完了する
363
- - ✅ テストレポートが生成される
364
- - ✅ リリースノートが生成される
365
-
366
- ### カスタムバージョンでテスト
367
-
368
- ```bash
369
- # バージョンを指定
370
- RELEASE_VERSION=v2.1.0 npx tsx scripts/test-workflow-stages.ts --feature health-check-endpoint
371
-
372
- # 生成されたファイルを確認
373
- cat .kiro/specs/health-check-endpoint/release-notes-v2.1.0.md
374
- ```
375
-
376
- ---
377
-
378
- ## トラブルシューティング
379
-
380
- ### Q1. テスト実行が失敗する
381
-
382
- **症状:**
383
- ```
384
- ❌ Test execution failed: Command failed: npm test
385
- ```
386
-
387
- **解決方法:**
388
- 1. 依存関係を再インストール
389
- ```bash
390
- npm clean-install
391
- ```
392
-
393
- 2. ビルドを実行
394
- ```bash
395
- npm run build
396
- ```
397
-
398
- 3. テストを直接実行して確認
399
- ```bash
400
- npm test
401
- ```
402
-
403
- ---
404
-
405
- ### Q2. リリースノート生成でコミットが見つからない
406
-
407
- **症状:**
408
- ```
409
- 📊 取得したコミット数: 0
410
- ⚠️ コミットが見つかりませんでした
411
- ```
412
-
413
- **解決方法:**
414
- 1. gitリポジトリであることを確認
415
- ```bash
416
- git status
417
- ```
418
-
419
- 2. コミット履歴を確認
420
- ```bash
421
- git log --oneline | head -10
422
- ```
423
-
424
- 3. 範囲を調整
425
- ```typescript
426
- // より広い範囲で取得
427
- const commits = await getCommits('HEAD~50', 'HEAD', process.cwd());
428
- ```
429
-
430
- ---
431
-
432
- ### Q3. Confluence API接続エラー
433
-
434
- **症状:**
435
- ```
436
- ❌ Confluence承認状態確認エラー: Request failed with status code 401
437
- ```
438
-
439
- **解決方法:**
440
- 1. 環境変数を確認
441
- ```bash
442
- cat .env | grep ATLASSIAN
443
- ```
444
-
445
- 2. API Tokenを再生成
446
- - https://id.atlassian.com/manage-profile/security/api-tokens
447
-
448
- 3. 接続テスト
449
- ```bash
450
- curl -u "$ATLASSIAN_EMAIL:$ATLASSIAN_API_TOKEN" \
451
- "$ATLASSIAN_URL/wiki/rest/api/content/$CONFLUENCE_TEST_PAGE_ID"
452
- ```
453
-
454
- ---
455
-
456
- ### Q4. ワークフローが途中で停止する
457
-
458
- **症状:**
459
- ```
460
- ❌ Stage failed: test Command failed: npm test
461
- ```
462
-
463
- **解決方法:**
464
- 1. ログを確認
465
- ```bash
466
- # 詳細ログを有効化
467
- DEBUG=* npx tsx scripts/test-workflow-stages.ts --feature health-check-endpoint
468
- ```
469
-
470
- 2. ステージごとに個別テスト
471
- ```bash
472
- # テストステージのみ
473
- node dist/scripts/test-new-features.js
474
- ```
475
-
476
- 3. エラーメッセージを確認して対処
477
-
478
- ---
479
-
480
- ## 📊 チェックリスト
481
-
482
- 動作確認完了の確認に使用してください:
483
-
484
- ### 基本動作
485
- - [ ] ビルドが成功する(`npm run build`)
486
- - [ ] 全テストがパスする(`npm test`)
487
- - [ ] `.kiro/project.json`が存在する
488
-
489
- ### 機能1: テスト実行とレポート生成
490
- - [ ] テストが正常に実行される
491
- - [ ] レポートがMarkdown形式で生成される
492
- - [ ] 実行時間が記録される
493
-
494
- ### 機能2: リリースノート生成
495
- - [ ] コミット履歴が取得できる
496
- - [ ] Conventional Commits形式が解析される
497
- - [ ] リリースノートが生成される
498
-
499
- ### 機能3: Confluence承認状態
500
- - [ ] 環境変数が設定されている(オプション)
501
- - [ ] Confluence APIに接続できる(オプション)
502
- - [ ] 承認状態が取得できる(オプション)
503
-
504
- ### 統合テスト
505
- - [ ] testステージが成功する
506
- - [ ] releaseステージが成功する
507
- - [ ] 生成ファイルが正しい場所に保存される
508
-
509
- ---
510
-
511
- ## 📝 まとめ
512
-
513
- すべてのチェック項目が完了したら、新規実装機能の動作確認は完了です。
514
-
515
- ご不明な点がありましたら、以下を確認してください:
516
- - 実装コード: `scripts/utils/test-runner.ts`, `release-notes-generator.ts`, `confluence-approval.ts`
517
- - テストコード: `scripts/utils/__tests__/test-runner.test.ts`
518
- - 統合スクリプト: `scripts/test-new-features.ts`, `scripts/test-workflow-stages.ts`