skills/review/SKILL.md
実装レビューを実行する。Claude Code CLI 直接呼び出しとカスタムレビュアーを並列で呼び出す。ユーザーが「/review」「レビューして」と言った時に使用。
npx skillsauth add hirokimry/vibecorp reviewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
[!IMPORTANT] このスキルは変更差分に対し ローカル Claude Code CLI と カスタムレビュアー を並列で実行する。 認証経路は Claude Max OAuth 個人クォータ であり、
ANTHROPIC_API_KEYが設定されていると fail-fast する。 レビュー完了時はreview-okスタンプを生成し、PR 作成の前提を満たす。
変更差分をレビューする。以下の手順で実行する。
--worktree <path> が指定された場合、全操作を指定パス内で実行する。
cd <path> && command で実行する。<path>/ を基準とした絶対パスを使用する。--worktree <path> を引き継ぐ。$CLAUDE_PROJECT_DIR: worktree モードでは <path> に置き換える。各コマンドは個別に実行する。&& で連結しない。
git diff --name-only HEAD
git diff --name-only --cached
ローカルレビューは Claude Code CLI(claude -p)を直接呼び出して REVIEW.md をプロンプトとして渡す。Issue #499(親エピック #455 コメント 8)で確定した経路。CodeRabbit CLI(cr review --plain)の Free 枠 3 reviews/hour 制約から外れ、制約の種類が Claude Max OAuth 個人クォータに切り替わる(docs/cost-analysis.md の個人 Max クォータ枯渇リスク参照、無制限ではない点に注意)。
コスト経路と認証経路の詳細は docs/cost-analysis.md(「/vibecorp:review ローカル経路のコスト経路シフト」「/vibecorp:review の ANTHROPIC_API_KEY 混在 fail-fast」)と docs/ai-review-auth.md(OAuth トークン)を参照する。
coderabbit.enabled フラグとの関係: ローカル Claude Code CLI 経路は coderabbit.enabled フラグの 影響を受けない(常に実行)。coderabbit.enabled は .coderabbit.yaml 配布制御 + CodeRabbit Bot(CI 側)制御専用であり、ローカル経路には作用しない(docs/ai-review-dependency.md の意味論変更を参照)。
ANTHROPIC_API_KEY 混在 fail-fastclaude -p の非対話モードは ANTHROPIC_API_KEY があると OAuth より優先して API 従量課金経路に自動切替するため、起動前にチェックして fail-fast する。
if [[ -n "${ANTHROPIC_API_KEY:-}" ]]; then
echo "[ERROR] ANTHROPIC_API_KEY が設定されています。" >&2
echo " 非対話モード -p で API 従量課金にフォールバックする恐れがあるため、ローカルレビューを中止します。" >&2
echo " 対処: 'unset ANTHROPIC_API_KEY' で解除するか、docs/ai-review-auth.md を参照して 'claude setup-token' で OAuth 経路に切り替えてください。" >&2
exit 1
fi
REVIEW.md が存在する場合のみ claude -p を呼ぶ。不在時は警告を出してローカルレビューをスキップする(後続のカスタムレビュアー / 結果報告は継続する)。worktree モードでは <path>/REVIEW.md を参照する($CLAUDE_PROJECT_DIR を <path> に置換)。
REVIEW.md 末尾にローカル出力指示を heredoc で連結し、stdin から claude -p に渡す。claude コマンド未導入環境と REVIEW.md 不在の両ケースで安全にスキップする。
if ! command -v claude >/dev/null 2>&1; then
echo "[WARN] claude コマンドが利用できません。ローカルレビューをスキップします。" >&2
# 後続セクション(カスタムレビュアー / 結果報告)へ進む
elif [[ ! -f "$CLAUDE_PROJECT_DIR/REVIEW.md" ]]; then
echo "[WARN] REVIEW.md が存在しません。ローカルレビューをスキップします。" >&2
# 後続セクション(カスタムレビュアー / 結果報告)へ進む
else
{
cat "$CLAUDE_PROJECT_DIR/REVIEW.md"
cat <<'TAIL'
## ローカルレビュー出力指示
stdout に severity マーカー(🔴🟠🟡🔵⚪)付きで指摘を列挙してください:
- 各指摘に「ファイル:行番号」と「修正提案」を含める
- 末尾にサマリ(指摘総数 / severity 別件数)を出力
- GitHub には投稿しない(CI 側 claude-code-action の責務)
TAIL
} | claude -p --allowed-tools "Bash,Read,Grep,Glob"
fi
設計上の注意:
--bare フラグは絶対に使わない: --bare は OAuth を読まず ANTHROPIC_API_KEY 必須になる。Claude Max 定額運用が崩れる。--allowed-tools の範囲: ローカル経路は stdout 出力で完結するため、読取系のみ許可(Bash,Read,Grep,Glob)。Write,Edit,mcp__github_inline_comment__create_inline_comment 等の書き込み系・GitHub 投稿系は不許可(GitHub 投稿は CI 側 claude-code-action の責務)。--prompt-file フラグは使わない: Claude Code CLI のバージョン依存があるため、Unix 標準の stdin パイプ方式を採用する。CLAUDE_CODE_OAUTH_TOKEN を明示: 既存 templates/.github/workflows/ai-review.yml で claude-code-action@v1 経由で実装済み(本スキルではローカル経路のみを扱う)。claude 未導入 / REVIEW.md 不在 のいずれもローカルレビューを安全にスキップして後続セクションへ進む。レポートにスキップ理由を記載する。.claude/vibecorp.yml の review.custom_commands を確認する。定義がある場合、各コマンドを並列で実行する。
review:
custom_commands:
- name: shellcheck
command: "shellcheck **/*.sh"
各カスタムコマンドを実行し、結果を収集する。
レビューが完了したら、PR 作成を許可するスタンプを生成する。スタンプは ~/.cache/vibecorp/state/<repo-id>/ 配下に作成される(.claude/ 配下への書込確認プロンプトを回避)。
. "$CLAUDE_PROJECT_DIR/.claude/lib/common.sh"
STAMP_DIR="$(vibecorp_stamp_mkdir)"
touch "${STAMP_DIR}/review-ok"
worktree モードの場合:
. "<path>/.claude/lib/common.sh"
STAMP_DIR="$(vibecorp_stamp_mkdir)"
touch "${STAMP_DIR}/review-ok"
全レビュー結果を統合して報告する。
## レビュー結果
### ローカルレビュー(Claude Code CLI)
- {severity マーカー(🔴🟠🟡🔵⚪)付き指摘サマリ}
### {カスタムレビュアー名}
- {指摘サマリ}
### サマリ
- 指摘総数: {件数}
- 🔴 Critical: {件数}
- 🟠 Major: {件数}
- 🟡 Minor: {件数}
- 🔵 Trivial: {件数}
- ⚪ Info: {件数}
.claude/rules/review-observations.md.claude/rules/review-handling.md.claude/rules/severity/coderabbit.md.claude/rules/severity/claude-action.md.claude/rules/prompt-writing.md.claude/rules/markdown.md.claude/rules/shell.mddata-ai
skills/**/SKILL.md 内に embed された 5 行以上のエージェント呼出プロンプトテンプレ・長文ブロックを .claude/rules/notification-prompt-extraction.md 基準で skills/<skill>/prompts/<name>.md に切り出す migration skill。「/prompts-extract-all」「プロンプト切り出し」「プロンプト extract」「SKILL.md プロンプト migration」と言った時に使用。検出は awk でフェンスコードブロックを抽出して行数カウント、要否判定は LLM が閾値・用途軸・命名規約と照合。diff 提案 → CEO 承認 → 書換の 2 段階で挙動を壊さず適用する。自動マージ禁止、自律ループ対象外。
documentation
.github/workflows/**/*.{yml,yaml} の --body 通知文と hooks/**/*.sh の長文 echo/printf/heredoc を .claude/rules/notification-prompt-extraction.md 基準で個別 .md ファイルに切り出す migration skill。「/notifications-extract-all」「通知文切り出し」「通知文 extract」「workflow 通知 migration」と言った時に使用。検出は grep で機械絞り込み、要否判定は LLM が閾値・命名規約と照合。diff 提案 → CEO 承認 → 書換の 2 段階で挙動を壊さず適用する。自動マージ禁止、自律ループ対象外。
development
`**/*.sh` / `**/*.js` / `**/*.ts` / `**/*.py` / `**/*.rb` / `**/*.go` / 設定ファイル等のコード内コメントを一括棚卸しし、 `.claude/rules/code-comments.md` と機械的に照合する。 diff 提案 → CEO 承認 → 書換の 2 段階で自動マージを禁じる。 生成コード・`node_modules`・`vendor`・`dist`・`build` 等は除外する。 「/vibecorp:comments-rewrite-all」「コメント全書き直し」「コード内コメント棚卸し」 と言った時に使用。
development
skills/**/SKILL.md・agents/*.md・.claude/rules/*.md を .claude/rules/prompt-writing.md 基準で一括書き直し提案するスキル。「/prompts-rewrite-all」「プロンプト書き直し」「スキル一括書き直し」「エージェント書き直し」と言った時に使用。claude-code-guide サブエージェントで Claude Code 公式仕様(docs.claude.com)を確認し、prompt-writing.md の指針 MUST / 禁止パターンと照合する。diff 提案 → CEO 承認 → 書き換えの 2 段階で挙動を壊さず適用する。自動マージ禁止。