agentsclimarketplace

Review router

Skill rysk-tanaka/skills/skills/review-router

差分を分析して規模・観点に応じたレビューを自動振り分け (user)From its SKILL.md

Install
npx -y skills add rysk-tanaka/skills --skill review-router

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 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.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

5.7 KB, ~2.0k tokens by cl100k_base, as published. Nobody here has run it

レビュー・ルーター

ベースブランチとの差分を分析し、規模・触れた観点・リスクから tier を判定して、適切なレビューだけを自動起動する。「ローカルか PR か」は人が決め、深さと観点の選択はこのスキルに任せるのが狙い。

入力

$ARGUMENTS にベースブランチが渡される(省略可、デフォルト main)。

  • /review-router → main との差分
  • /review-router develop → develop との差分

1. 差分の分析

bash ${CLAUDE_SKILL_DIR}/analyze.sh "$ARGUMENTS" を実行し、出力 JSON を取得する($ARGUMENTS は必ずダブルクォートで囲み、ワード分割・glob を防ぐ)。

  • ベースブランチが見つからない等で非ゼロ終了した場合は、エラー内容を報告して終了する
  • 差分が空(files_changed が 0)の場合は、レビュー対象が無い旨を報告して終了する

JSON の構造。

{
  "base": "main",
  "files_changed": 12,
  "insertions": 340,
  "deletions": 50,
  "languages": ["py", "ts"],
  "dimensions": {
    "tests": true,
    "types": false,
    "error_handling": true,
    "comments_docs": false,
    "migrations": false,
    "security": false,
    "concurrency": false
  },
  "tier": "medium"
}

2. ルーティングの決定

tierdimensions から実行するレビューを決める。

tier自動実行提案のみ
lowcode-reviewer のみなし
mediumcode-reviewer + true の観点に対応するサブエージェント + agy CLI(並行)なし
highcode-reviewer + true の観点に対応するサブエージェント全部 + agy CLI(並行)codex / /code-review ultra

観点 → pr-review-toolkit サブエージェント対応。

  • 常時: pr-review-toolkit:code-reviewer
  • tests: pr-review-toolkit:pr-test-analyzer
  • types: pr-review-toolkit:type-design-analyzer
  • error_handling: pr-review-toolkit:silent-failure-hunter
  • comments_docs: pr-review-toolkit:comment-analyzer

migrations / security / concurrency には専用サブエージェントが無い。これらは tier 判定(true なら high)に効くが、専門レビューは常時起動の code-reviewer が一般観点としてカバーする。high tier では並行する agy CLI もこれらを拾う。専用エージェントが必要になったらこの表に追加する。

判定結果(tier・起動するレビュー一覧)を実行前にユーザーへ一行で示す。

3. レビューの実行

pr-review-toolkit サブエージェント

選んだサブエージェントを Task ツールで並行起動する(1 メッセージに複数 tool 呼び出し)。各エージェントへの指示。

  • レビュー対象は base(JSON の base)との差分のみ。git diff <base>...HEAD の範囲に限定する
  • confidence 80 以上の指摘だけ報告する
  • 各指摘に file:line と確信度を含める

該当プラグインが利用不可(サブエージェント type が存在しない)の場合は、その観点を skip し報告する。

agy CLI(medium tier 以上)

Antigravity CLI (agy) で Claude / Codex と系統の異なる Gemini による独立レビューを並行実行する(バックグラウンド起動可)。

bash ${CLAUDE_SKILL_DIR}/agy-review.sh "<base>" "<変更概要>"
  • コミット済みの変更のみレビューする(ラッパーが git diff <base>...HEAD を埋め込むため、未コミットの作業ツリーは巻き込まない)
  • <base> は JSON の base を使う(origin/main 等の remote-tracking ref に解決されている場合もそのまま渡す)
  • <変更概要> は差分から読み取った変更の目的・背景の 1〜2 文(省略可)。レビュー精度が上がるため原則渡す
  • agy CLI が無い・未サインイン、diff が上限超過、または非ゼロ終了した場合は skip し、その旨を報告する。失敗はフロー全体を止めない(導入は mise の aqua:google-antigravity/antigravity-cli

4. 結果の集約

全レビューの指摘をまとめ、重複を排除して以下に正規化する。

  • Must-Fix - マージ前に必ず直す(バグ・セキュリティ・データ損失)
  • Important - 直すべき(重要だが非ブロッカー)
  • Suggestion - 任意(軽微・スタイル)

報告の方針。

  • カテゴリごとにグループ化し、各指摘に file:line を付ける
  • agy CLI 単独の指摘(他レビュアーと重複しない指摘)は、コードを読んで裏取りできるまで Suggestion に留める(実行ごとのブレ・誤検出を出口で吸収する)
  • Must-Fix が無い場合はその旨を明記する
  • 停止条件を明示する。反復は「Must-Fix がゼロ」になったら打ち切る(指摘ゼロまで回さない)

5. 追加レビューの提案(high tier のみ)

high tier では、自動実行に加えて以下を「必要なら手動で走らせるべき」と提案する(自動実行しない)。

  • /codex:review <base> - Codex による独立レビュー
  • /code-review ultra - クラウドの深掘りマルチエージェントレビュー

6. 修正と再レビュー

Must-Fix と Important について修正方針を提示する。

  • ユーザーの承認を得てから修正する
  • 修正は指摘箇所のみ最小限に留める
  • 修正後は /review-router <base> での再レビューを提案する

What ships with it: 2 files

9.5 KB alongside SKILL.md, 2 of them executable

Keep looking

Skills are one crate of 326,144. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.