claude ultrareview: CI/スクリプトから非インタラクティブにコードレビューを実行
原文(日本語に翻訳)
claude ultrareview [target] サブコマンドを追加しました。CI やスクリプトから非インタラクティブに /ultrareview を実行できます。結果は stdout に出力され(--json でJSON形式の生出力)、完了時に終了コード 0、失敗時に 1 で終了します。
原文(英語)
Added claude ultrareview [target] subcommand to run /ultrareview non-interactively from CI or scripts — prints findings to stdout (--json for raw output) and exits 0 on completion or 1 on failure
概要
Claude Code v2.1.120 では、claude ultrareview サブコマンドが追加されました。これにより、インタラクティブなセッションを起動せずに CI パイプラインやスクリプトから直接 /ultrareview のマルチエージェントコードレビューを実行できます。レビュー結果は標準出力に表示され、--json フラグで機械可読な JSON 形式での出力も可能です。終了コードでレビューの成否を判定できるため、CI の品質ゲートとして組み込めます。
基本的な使い方
bash
# カレントブランチをレビュー
claude ultrareview
# 特定のターゲット(PR番号やブランチ名)をレビュー
claude ultrareview 123 # PR #123 をレビュー
claude ultrareview main..HEAD # ブランチの差分をレビュー
# JSON 形式で出力
claude ultrareview --json
# 終了コードを利用した条件分岐
claude ultrareview && echo "Review passed" || echo "Review failed"実践例
GitHub Actions での品質ゲート
yaml
# .github/workflows/code-review.yml
name: Automated Code Review
on:
pull_request:
branches: [main]
jobs:
ultrareview:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Run ultrareview
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
npm install -g @anthropic-ai/claude-code
claude ultrareview ${{ github.event.pull_request.number }} \
--json > review-results.json
- name: Comment PR with review results
uses: actions/github-script@v7
with:
script: |
const results = require('./review-results.json');
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `## 自動コードレビュー結果\n${results.summary}`
});JSON 出力の解析
bash
# JSON 出力を jq で解析
claude ultrareview --json | jq '.findings[] | select(.severity == "critical")'
# 重大な問題がある場合にのみ失敗させる
REVIEW=$(claude ultrareview --json)
CRITICAL_COUNT=$(echo "$REVIEW" | jq '[.findings[] | select(.severity == "critical")] | length')
if [ "$CRITICAL_COUNT" -gt 0 ]; then
echo "Critical issues found: $CRITICAL_COUNT"
exit 1
fipre-commit フックとの連携
bash
#!/bin/bash
# .git/hooks/pre-push
echo "Running ultrareview before push..."
claude ultrareview
if [ $? -ne 0 ]; then
echo "Code review failed. Fix issues before pushing."
exit 1
fi
echo "Review passed. Proceeding with push."レポートの自動生成
bash
#!/bin/bash
# weekly-review.sh
DATE=$(date +%Y-%m-%d)
REPORT_FILE="reviews/report-$DATE.md"
# 今週のすべての変更をレビュー
claude ultrareview main..develop > "$REPORT_FILE"
# Slack に通知
curl -X POST -H 'Content-type: application/json' \
--data "{\"text\": \"週次コードレビュー完了: $REPORT_FILE\"}" \
"$SLACK_WEBHOOK_URL"注意点
claude ultrareviewは/ultrareviewスキルを使用するため、適切な API キーが必要です- CI 環境では
ANTHROPIC_API_KEY環境変数を設定してください - レビューにはコストが発生します。大規模な変更のレビューは特に注意してください
--jsonフラグの出力形式は今後変わる可能性があります- 終了コード 0 = 完了(問題なし)、1 = 失敗(エラーまたは重大な問題あり)