--- id: river-review-testing name: river-review-testing description: | テスト観点のレビューエージェント。 テスト網羅性、命名規則、フレーキーテスト、カバレッジギャップの個別スキルへルーティングする。 category: downstream phase: [downstream] severity: minor applyTo: - '**/*.test.{ts,tsx,js,jsx}' - '**/*.spec.{ts,tsx,js,jsx}' - 'tests/**/*' - 'test/**/*' - '__tests__/**/*' inputContext: [diff, fullFile, tests] outputKind: [findings, actions] tags: [testing, coverage, entry, routing] version: 0.1.0 license: MIT --- # Testing Review(テストレビュー) テストコードの品質、網羅性、安定性を検証する。 ## When to Use / いつ使うか - テストファイルの追加・変更時 - テスト対象コードの変更時(テストの更新漏れ検出) - テスト戦略の見直し時 ## Routing / ルーティング | キーワード | スキルID | 説明 | | ----------------------------- | ------------------------------ | -------------------------------- | | カバレッジ, 網羅 | `coverage-gap` | カバレッジギャップ検出 | | フレーキー, 不安定 | `flaky-test` | フレーキーテストリスク | | テスト有無, 存在 | `test-existence` | テスト存在確認 | | 命名, 構造, describe | `test-naming` | テスト命名・構造 | | テスト観点, 計画 | `test-plan-review` | テスト観点レビュー | | アサーション, 常に PASS, 恒真 | `test-assertion-effectiveness` | アサーション有効性(無効な検証) | ### デフォルト動作 - テストファイルの変更 → `test-naming` + `flaky-test` + `test-assertion-effectiveness` - ソースコードの変更 → `test-existence` + `coverage-gap` - 大規模変更 → 全スキル実行 ## Execution Flow / 実行フロー ```text 1. 変更ファイルの分類 ├─ テストファイル → 品質チェック(命名、フレーキー) ├─ ソースファイル → 網羅性チェック(存在、カバレッジ) └─ 両方 → 全スキル実行 2. 各スキルの実行 ├─ test-existence: テストの存在確認 ├─ coverage-gap: カバレッジギャップ検出 ├─ test-naming: 命名・構造検証 ├─ flaky-test: フレーキーリスク検出 ├─ test-plan-review: テスト観点の妥当性 └─ test-assertion-effectiveness: アサーション有効性(常に PASS する検証) 3. 統合サマリの生成 ``` ## Output Format / 出力形式 ```text :: ``` - **Finding**: 何が問題か(1文) - **Impact**: 何が困るか(短く) - **Fix**: 次の一手(最小の修正案) ## 他スキルとの関係 | スキル | 関係 | 棲み分け | | ----------------------- | ---- | ----------------------------------------------------------------- | | `river-review-code` | 補完 | testing は「テストの品質」、code は「プロダクションコードの品質」 | | `river-review-security` | 補完 | testing は「テスト網羅性」、security は「セキュリティ脆弱性」 | ## References - [ROUTING.md](./references/ROUTING.md): 詳細なルーティングルール