mcpField
C
code-review

code-review

github.com/odyssey4meテスト・品質1335 回インストール1 日前に更新
リポジトリ

code-review について

code-review は、GitHub の PR、GitLab の MR、Gerrit の変更を対象とするワークフロースキルです。ホスティング基盤を判別し、CI 状態やリポジトリ固有の情報を踏まえてレビューし、必要に応じてコメントを投稿します。

主な機能

  1. 01GitHub、GitLab、Gerrit を判別
  2. 02変更情報、CI 状態、差分を取得
  3. 03セキュリティ、保守性、設計を確認
  4. 04リポジトリ別のレビュー情報を保存
  5. 05レビューコメントを投稿可能

活用シーン

  1. 01PR、MR、Gerrit の変更をレビュー
  2. 02変更の評価前に CI 状態を確認
  3. 03後続レビューでリポジトリ規約を適用

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/odyssey4me/agent-skills --skill code-review

インストール後、Claude Code で/code-reviewを入力して読み込まれたか確認します。

同梱ファイルreferences/review-checklist.mdtile.json

詳細

コードレビュー

GitHub の PR、GitLab の MR、Gerrit の変更にわたるコードレビューを調整します。git のリモート設定からプラットフォームを自動検出し、セキュリティ、保守性、アーキテクチャとの適合性に焦点を当てたレビューのフィードバックを提供します。

これはワークフロースキルです。スクリプトは含まず、適切なプラットフォームスキルを使用して、複数ステップのレビュー手順をエージェントに案内します。

認証

このスキルでは、認証を基盤となるプラットフォームスキルに委任します。

  • GitHub:gh auth login が必要です(github スキルを参照)
  • GitLab:glab auth login が必要です(gitlab スキルを参照)
  • Gerrit:git-review の設定が必要です(gerrit スキルを参照)

code-review を使用する前に、該当するプラットフォームスキルが認証済みであることを確認してください。

コマンド

review

番号または URL で変更をレビューします。

使用方法:

Review PR #123
Review this MR: https://gitlab.com/org/repo/-/merge_requests/42
Review Gerrit change 456789

エージェントはワークフローの手順に従います。git のリモートまたは指定された URL からプラットフォームを検出し、変更のメタデータ、CI ステータス、差分を取得して、構造化されたレビューのフィードバックを提示します。レビューコメントを投稿することもできます。

remember

現在のリポジトリのレビュー用に追加のコンテキストを保存します。これにより、同じリポジトリの今後のレビューで考慮すべき情報が保持されます。

使用方法:

Remember that this repo follows the Google Python Style Guide
Remember: authentication changes must be reviewed by the security team
Remember https://internal-docs.example.com/api-conventions as a reference for API design
Remember that the data layer uses the Repository pattern, not Active Record

キーワード:メッセージの先頭にある remember という単語が、保存を開始するトリガーになります。コンテキストは、現在のリポジトリのリモート URL に対応付けて ~/.config/agent-skills/code-review.yaml に保存されます。

保存する内容:コーディング規約、アーキテクチャ上の決定事項、外部ドキュメントへのリンク、チームの慣習、レビューポリシー、または今後のレビューに反映すべきコンテキストを保存します。

forget

現在のリポジトリについて、以前に保存したコンテキストを削除します。

使用方法:

Forget the note about the Google Python Style Guide
Forget all saved context for this repo
show context

現在のリポジトリについて、保存済みのコンテキストをすべて表示します。

使用方法:

Show review context for this repo
check

必要なプラットフォームスキルが利用可能で、認証済みであることを確認します。

# For GitHub repos
skills/github/scripts/github.py check

# For GitLab repos
skills/gitlab/scripts/gitlab.py check

# For Gerrit repos
skills/gerrit/scripts/gerrit.py check

リポジトリのコンテキスト

リポジトリごとのコンテキストは、git remote get-url origin で取得したリモートのフェッチ URL をキーとして、~/.config/agent-skills/code-review.yaml に保存されます。このコンテキストは、すべてのレビューの開始時に読み込まれます(ワークフローのステップ 0 を参照)。

# ~/.config/agent-skills/code-review.yaml
repositories:
  "[email protected]:myorg/myrepo.git":
    references:
      - "https://internal-docs.example.com/api-conventions"
      - "https://google.github.io/styleguide/pyguide.html"
    standards:
      - "All API endpoints must validate input with Pydantic models"
      - "Authentication changes require security team review"
    notes:
      - "Data layer uses Repository pattern, not Active Record"
      - "Legacy modules in src/compat/ are exempt from new style rules"
  "https://gitlab.com/myorg/other-repo.git":
    references:
      - "https://docs.example.com/other-repo/architecture"
    standards: []
    notes:
      - "Migrating from REST to GraphQL -- new endpoints should use GraphQL"

レビュー中にユーザーがリポジトリ外のコンテキストを提供した場合は、remember コマンドを使って保存するよう提案してください。

ワークフロー

ステップ 0:リポジトリのコンテキストを読み込む

レビューを開始する前に、保存済みのコンテキストを確認します。

git remote get-url origin

~/.config/agent-skills/code-review.yaml を読み込み、リモート URL を検索します。コンテキストが存在する場合は読み込み、レビュー全体を通じて考慮します。

  • references:アーキテクチャ上の決定事項を評価する際に参照します
  • standards:各標準への準拠を積極的に確認します
  • notes:これらをレビューのフィードバックに反映します

コンテキストファイルがない場合、またはリポジトリのエントリがない場合は、追加のコンテキストなしで進めます。

ステップ 1:プラットフォームを検出する

リポジトリのコンテキストから、コードホスティングプラットフォームを特定します。

# Check git remotes
git remote -v
  • リモートに github.com が含まれる場合 -> github スキルを使用します
  • リモートに gitlab が含まれる場合 -> gitlab スキルを使用します
  • .gitreview ファイルがある場合 -> gerrit スキルを使用します
  • URL が指定されている場合は、URL のホスト名から検出します
ステップ 2:変更のメタデータと CI ステータスを取得する

GitHub:

skills/github/scripts/github.py prs view <number> --repo OWNER/REPO
skills/github/scripts/github.py prs checks <number> --repo OWNER/REPO

GitLab:

skills/gitlab/scripts/gitlab.py mrs view <number> --repo GROUP/REPO
skills/gitlab/scripts/gitlab.py pipelines list --repo GROUP/REPO

Gerrit:

skills/gerrit/scripts/gerrit.py changes view <change-number>
ステップ 3:CI/テストのステータスを評価する

レビューの前に、CI/テストが成功しているか確認します。

  • CI が成功している場合:全項目のレビューに進みます
  • CI が失敗している場合:失敗内容を記録し、テストで検出できる懸念点のレビューは省略して、テストでは検出できない問題(セキュリティ、アーキテクチャ、設計)に焦点を当てます
  • CI が保留中の場合:その旨を記録し、レビューを進めます
ステップ 4:差分を取得する

GitHub:

gh pr diff <number>

GitLab:

glab mr diff <number>

Gerrit:

git diff HEAD~1
ステップ 5:変更をレビューする

以下の領域を優先順位の高い順にレビューしてください。詳細なチェックリストについては、references/review-checklist.md を参照してください。

  1. セキュリティ上の懸念:インジェクションの脆弱性、認証/認可の不備、データ漏えい、安全でないデシリアライズ、ハードコードされたシークレット
  2. 保守性:過度な複雑さ、不適切な命名、関心の分離の欠如、可読性を損なうコードの重複
  3. 適切なコーディング慣行:エラーハンドリングの不備、リソースリーク、競合状態、システム境界での入力検証の欠如
  4. アーキテクチャとの適合性:既存のコードベースのパターンとの一貫性、適切な抽象化レベル、依存関係の方向

指摘しない項目:

  • スタイルやフォーマットの問題(リンターに任せてください)
  • 明確に可読性に影響しない、細かな命名の好み
  • テストカバレッジの不足(CI のカバレッジツールに任せてください)
  • 失敗した CI ですでに検出されている問題
ステップ 6:指摘事項を提示する

構造化されたレビューとして指摘事項を記載してください。

## Code Review: PR #<number> - <title>

### Summary
<1-2 sentence summary of the change and overall assessment>

### CI Status
<passing/failing/pending -- note any failures>

### Findings

#### Security
- [ ] <finding with file:line reference>

#### Maintainability
- [ ] <finding with file:line reference>

#### Coding Practices
- [ ] <finding with file:line reference>

#### Architecture
- [ ] <finding with file:line reference>

### Verdict
<APPROVE / REQUEST_CHANGES / COMMENT -- with brief rationale>

ユーザーから依頼があった場合は、プラットフォームのスキルを使用して、PR/MR にレビューコメントを投稿してください。

GitHub:

gh pr review <number> --comment --body "<review>"
# Or approve/request changes:
gh pr review <number> --approve --body "<review>"
gh pr review <number> --request-changes --body "<review>"

GitLab:

glab mr note <number> --message "<review>"
# Or approve:
glab mr approve <number>

例

GitHub PR をレビューする
Review PR #42

エージェントは git remote -v を実行して GitHub を検出し、skills/github/scripts/github.py prs view 42 で PR を取得し、skills/github/scripts/github.py prs checks 42 で CI を確認し、gh pr diff 42 で差分を取得して、構造化されたレビューのフィードバックを提示します。

URL を指定して GitLab MR をレビューする
Review https://gitlab.com/myorg/myrepo/-/merge_requests/15
コメントを投稿してレビューする
Review PR #42 and post your findings as a review comment
セキュリティのみに焦点を当ててレビューする
Review PR #42, focus only on security concerns
今後のレビューに向けてコンテキストを保存する
Remember that this repo uses the Twelve-Factor App methodology
Remember https://wiki.example.com/team/coding-standards as a reference
Remember: all database migrations must be backwards-compatible
保存したコンテキストを表示する
Show review context for this repo

モデルに関するガイダンス

このスキルは複数のサブスキルを連携させ、複数ステップにわたるワークフローについての推論を必要とします。最良の結果を得るには、より高性能なモデルを推奨します。

トラブルシューティング

プラットフォームが検出されない

リモートが設定された Git リポジトリ内で実行していることを確認してください。

git remote -v
認証エラー

基盤となるプラットフォームスキルが認証済みであることを確認してください。

# GitHub
gh auth status

# GitLab
glab auth status
差分を取得できない

PR/MR 番号が正しいこと、および変更が存在することを確認してください。

# GitHub
skills/github/scripts/github.py prs view <number>

# GitLab
skills/gitlab/scripts/gitlab.py mrs view <number>

コメント