コードレビュー

Themisはプルリクエストをレビューできます。コードの変更を分析し、問題をチェックし、インラインコメント付きの構造化されたレビューを投稿します。人間のレビュアーがPRを確認する前に、よくある問題をキャッチする常時利用可能なファーストレビュアーとして機能します。

仕組み

  1. ThemisにPRのレビューを依頼します(リポジトリとPR番号を指定)
  2. ThemisがPRのdiff、既存のコメント、CIステータスを取得します
  3. プロジェクトのレビューガイドラインを使用して変更を分析します
  4. 判定、サマリー、インラインコメントを含むGitHubレビューを投稿します

レビューは通常のGitHubプルリクエストレビューとして表示されます。すべてのPR参加者が確認できます。

レビューのトリガー方法

チャットから

リポジトリとPR番号を指定してエージェントに依頼します:

「pipihosting/themis PR #302をレビューして」

「pipihosting/webの最新PRをレビューして」

TelegramまたはTeamsから

ボットにメンションします:

@themis review pipihosting/themis#298

@themis review pipihosting/web PR 45

GitHubから(レビューリクエスト)

GitHubのPRでThemisボットに直接レビューをリクエストできます。チームメイトにレビューをリクエストするのと同じ方法です。

  1. GitHub上でプルリクエストを開きます
  2. サイドバーの Reviewers をクリックします
  3. Themis(またはボットのGitHubアカウント)を選択します
  4. Themisがレビューリクエストのwebhookを受信し、レビューを開始します

チームのPRワークフローに自然に統合されます。CODEOWNERSファイルやデフォルトレビュアーにThemisを追加すると、すべてのPRで自動的にファーストパスレビューを受けられます。

オートメーションから

GitHub → PR openedPR ready for review のイベントトリガーオートメーションでも、レビューを自動的にトリガーできます。

オートメーションプロンプトの例:

Review the pull request at #.
Focus on security issues, performance regressions, and Rails anti-patterns.

表示内容

リアルタイム進捗

チャットにプログレスバーが表示されます:

QueuedFetching PRAnalyzingReviewingSubmitting

レビューの判定

完了すると、3つの結果のいずれかが表示されます:

判定アイコン意味
Approvedコードに問題なし、ブロッキングイシューなし
Changes Requested⚠️マージ前に対応すべき問題が見つかりました
Commented💬PRをブロックせずに観察事項を投稿

受信トレイ

レビューは受信トレイの Signals > Reviews に表示されます。各エントリには以下が含まれます:

  • PRタイトルとリポジトリ(owner/repo#number
  • 判定バッジ — Approved、Changes Requested、またはCommented
  • レビューサマリー — 主要な問題、良い点、推奨事項を含む構造化されたMarkdown
  • インラインコメント — ファイルと行ごとに整理されたコードレベルのフィードバック
  • 推論ログ — エージェントの分析プロセス
  • メタデータ — コストとステータス

GitHub上での表示

レビューは標準的なGitHubプルリクエストレビューとして投稿されます:

  • 構造化されたサマリー(主要な問題、良い点、推奨事項)を含むレビュー本文
  • diff内の特定の行に添付されたインラインコメント
  • Approve、Request Changes、またはCommentとして設定された判定

すべてのPR参加者が通常のGitHubワークフローでレビューを確認できます。

レビューガイドライン

プロジェクトに .claude/skills/reviewing-code/ スキルがある場合、Themisはレビュー時にそれを使用します。このスキルでは以下を定義できます:

  • 確認すべきセキュリティチェックリスト項目
  • フラグすべきプロジェクト固有のアンチパターン
  • コードスタイルの期待値
  • レビュー品質の基準

カスタムレビュースキルがない場合、Themisは検出された言語とフレームワークの一般的なベストプラクティスを使用します。

セルフレビュー検出

GitHubでは、PR作成者が自分のPRを承認したり変更をリクエストしたりすることはできません。ThemisのGitHubトークンがPR作成者のものである場合(自動化ワークフローでよくあるケース)、判定を自動的にCommentにダウングレードします。レビュー内容は同じままで、判定タイプのみが変更されます。

大規模なPR

大規模なプルリクエストの場合、Themisはdiffをページ単位で取得し、あらゆるPRサイズに対応します。各ページには注釈付きの行番号が含まれ、インラインコメントが正しい行に配置されます。

非常に大規模なPR(変更1000行以上)はレビューに時間がかかる場合があります。より迅速で徹底的なレビューのために、大きな変更はより小さく焦点を絞ったPRに分割することを検討してください。

ヒント

PR作成時のレビューを自動化すると、即座にフィードバックが得られます。開発者はPRを開いた数分以内に、営業時間外でもファーストパスレビューを受けられます。

人間のレビューと組み合わせましょう。 Themisが機械的な問題(セキュリティ、スタイル、N+1クエリ)をキャッチするので、人間のレビュアーはアーキテクチャや設計の判断に集中できます。

まずCIステータスを確認。 Themisはレビューの一部としてCIの結果を読み取ります。テストが失敗している場合、レビューでそれを指摘します。CIを通過しないコードをレビューする必要はありません。

ステータスリファレンス

ステータス意味
Pending処理待ちのキュー
Fetching PRPRのメタデータとファイル一覧の読み込み
Analyzing行ごとの注釈付きdiffの読み取り
Reviewingエージェントがコードを分析しフィードバックを作成中
SubmittingGitHubにレビューを投稿中
Approvedレビュー投稿済み — コード承認
Changes Requestedレビュー投稿済み — 変更が必要
Commentedレビュー投稿済み — 観察事項のみ
Failedエラーが発生 — エラーメッセージを確認してください
DismissedGitHub上でレビューが却下されました