コードレビュー
Themisはプルリクエストをレビューできます。コードの変更を分析し、問題をチェックし、インラインコメント付きの構造化されたレビューを投稿します。人間のレビュアーがPRを確認する前に、よくある問題をキャッチする常時利用可能なファーストレビュアーとして機能します。
仕組み
- ThemisにPRのレビューを依頼します(リポジトリとPR番号を指定)
- ThemisがPRのdiff、既存のコメント、CIステータスを取得します
- プロジェクトのレビューガイドラインを使用して変更を分析します
- 判定、サマリー、インラインコメントを含む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ボットに直接レビューをリクエストできます。チームメイトにレビューをリクエストするのと同じ方法です。
- GitHub上でプルリクエストを開きます
- サイドバーの Reviewers をクリックします
- Themis(またはボットのGitHubアカウント)を選択します
- Themisがレビューリクエストのwebhookを受信し、レビューを開始します
チームのPRワークフローに自然に統合されます。CODEOWNERSファイルやデフォルトレビュアーにThemisを追加すると、すべてのPRで自動的にファーストパスレビューを受けられます。
オートメーションから
GitHub → PR opened や PR ready for review のイベントトリガーオートメーションでも、レビューを自動的にトリガーできます。
オートメーションプロンプトの例:
Review the pull request at #.
Focus on security issues, performance regressions, and Rails anti-patterns.
表示内容
リアルタイム進捗
チャットにプログレスバーが表示されます:
Queued → Fetching PR → Analyzing → Reviewing → Submitting
レビューの判定
完了すると、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 PR | PRのメタデータとファイル一覧の読み込み |
| Analyzing | 行ごとの注釈付きdiffの読み取り |
| Reviewing | エージェントがコードを分析しフィードバックを作成中 |
| Submitting | GitHubにレビューを投稿中 |
| Approved | レビュー投稿済み — コード承認 |
| Changes Requested | レビュー投稿済み — 変更が必要 |
| Commented | レビュー投稿済み — 観察事項のみ |
| Failed | エラーが発生 — エラーメッセージを確認してください |
| Dismissed | GitHub上でレビューが却下されました |