Test existence
Check whether changed code paths have corresponding tests and suggest minimal coverage.From its SKILL.md
npx -y skills add s977043/river-review --skill test-existenceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.5 KB, as published. Nobody here has run it
既定 CI レビューでは発火しない / Not triggered on the default CI review path
このスキルは repo 全体の既存テスト木(変更されていないファイルを含む)を要するため、既定 runner の供給コンテキスト(RUNNER_SUPPLIED_CONTEXTS = ['diff', 'prDescription', 'fullFile']、scripts/validate-skills.mjs)では発火しない。RIVER_AVAILABLE_CONTEXTS を拡張して tests(repo-wide test tree)を供給する構成でのみ有効になる(GRANDFATHERED_UNSUPPLIED_CONTEXT に登録済み、#1606)。
Pattern declaration
Primary pattern: Reviewer Secondary patterns: Inversion Why: テスト存在チェックはチェックリスト型評価が主だが、実行パスへ影響するコード変更が差分にない場合は実行を止める必要がある。
Goal / 目的
- 差分で挙動が増えたのにテストが追従していないケースを拾い、最小のテスト観点を提案する。
Non-goals / 扱わないこと
- テストフレームワークの宗教論争(Jest/Vitest など)。
- 網羅的なテストケース列挙(提案は最大3点までに絞る)。
- テスト差分がすでにある場合の追加要求(原則として黙る)。
Pre-execution Gate / 実行前ゲート
このスキルは以下の条件がすべて満たされない限りNO_REVIEWを返す。
- 差分にソースコード(
src/**/*,lib/**/*)またはテストファイル(*.test.*,*.spec.*)の変更が含まれている - 実行パスへ影響する変更が差分に含まれている(挙動変更のシグナルが存在する)
- inputContextにdiffが含まれている
ゲート不成立時の出力: NO_REVIEW: test-existence — テスト存在チェックの対象となるコード変更が検出されない
False-positive guards / 抑制条件
- 差分にテストファイル(
*.test.*/*.spec.*)が含まれている場合。
Rule / ルール
- 変更されたコード(関数/メソッド/エンドポイント)に対して対応するテストが存在するか確認する。
- クリティカルパス(認証、課金、データ保存など)にテストが無い場合は優先して補う。
- テストファイルが存在しない/未更新なら、最小の正常系・異常系を提案する。
Heuristics / 判定の手がかり
- 変更ファイルに対する
*.test.*/*.spec.*が無い、または差分がゼロ。 - 変更された公開 API/handler に対応するリクエスト/レスポンス検証が無い。
- 例外パス(throw/reject/return error)が追加されたのに失敗系テストが無い。
Good / Bad Examples
- Good: 新規ハンドラに対して 200/4xx/5xx を分けたテストを追加。
- Bad: 大きなリファクタに対してテスト差分がゼロ。
- Good: coverage_report を確認し、変更ファイルのブランチカバレッジを補強。
Actions / 改善案
- 変更された関数/エンドポイントごとに「正常系 + 代表的な異常系(認可/バリデーション/例外)」のテストを追加する。
- 例外/エラー戻りのメッセージやステータスを検証する。
coverage_reportを参照し、変更ファイルのステートメント/ブランチカバレッジが上がる具体的なテストケースを提案する。
Output / 出力
Finding:/Evidence:/Impact:/Fix:/Severity:/Confidence:を含む短いメッセージにする。Fixは 1〜3 件のテスト観点に絞る(例: 新分岐、例外、境界)。
評価指標(Evaluation)
- 合格基準: 指摘が差分に紐づき、根拠と次アクションが説明されている。
- 不合格基準: 差分と無関係な指摘、根拠のない断定、抑制条件の無視。
人間に返す条件(Human Handoff)
- 仕様や意図が不明確で解釈が分かれる場合は質問として返す。
- 影響範囲が広い設計判断やトレードオフは人間レビューへ返す。