templates/claude/skills/review-loop/SKILL.md
レビュー→検証→修正の自動ループ。問題0件まで繰り返す。「/review-loop」「レビューして直して」で使用。
npx skillsauth add hirokimry/vibecorp review-loopInstall 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.
ultrathink 変更差分に対してレビュー→検証→計画→修正のループを実行する。
--worktree <path> が指定された場合、全操作を指定パス内で実行する。
cd <path> && command で実行する<path>/ を基準とした絶対パスを使用する--worktree <path> を引き継ぐ以下を問題が0件になるまで繰り返す。最大5回でループを打ち切る。上限到達時はコミットせず、未解決の指摘一覧を報告してユーザーに判断を委ねる。
/review を実行してレビュー結果を取得する(worktree モードでは --worktree <path> を引き継ぐ)。
.claude/vibecorp.yml の preset: full の場合、コード差分が特定領域に触れていれば、平社員合議制(×3 独立実行)+ C*O メタレビューを追加で実行する。
/review(CodeRabbit CLI を含む)の置き換えではなく追加レイヤーとして動作する。
/review: 汎用バグ検出・コード品質・ベストプラクティスSECURITY.md / POLICY.md / cost-analysis.md の MUST / MUST NOT)両者が同じ観点を指摘した場合、次ステップ「2. 妥当性検証」で .claude/rules/review-criteria.md に基づき重複排除する。
# preset 取得
preset=$(awk '/^preset:/ { sub(/^preset:[[:space:]]*/, ""); print; exit }' .claude/vibecorp.yml)
preset が full 以外(minimal / standard / 未定義)の場合、このステップ全体をスキップ(既存挙動を維持)preset: full の場合、以下の差分検出に進むgit diff main...HEAD -U0 の出力に対して以下のキーワードを case-insensitive で検索し、ヒットした領域のみ起動する(複数該当時は該当全 C*O を並列起動)。
| 領域 | diff 内キーワード | 起動 C*O | 平社員合議 |
|---|---|---|---|
| 課金影響 | API call, model:, claude -p, ANTHROPIC_API_KEY, rate limit, 従量, トークン消費, npx, bunx | CFO | accounting-analyst×3 |
| セキュリティ | auth, token, secret, encrypt, permission, credential, curl, wget, eval, exec | CISO | security-analyst×3 |
| 法務 | dependency, LICENSE, third-party, 規約, プライバシー, 第三者, package.json, requirements.txt, go.mod | CLO | legal-analyst×3 |
検出例:
git diff main...HEAD -U0 | grep -iE 'auth|token|secret|encrypt|permission|credential|curl|wget|eval|exec'
ヒットなしなら合議制はスキップ(既存挙動を維持)。
該当領域の analyst を Agent tool で 同一プロンプト・独立に 3 回 同時並列で起動する(必須)。
複数領域が該当した場合、各領域の analyst×3 と対応する C*O を同時並列で起動する(例: 課金 + セキュリティなら accounting-analyst×3 + CFO と security-analyst×3 + CISO を並列実行)。
.claude/agents/accounting-analyst.md を ×3.claude/agents/security-analyst.md を ×3.claude/agents/legal-analyst.md を ×3各 analyst に渡すプロンプト:
あなたは {領域} の分析員です。以下のコード差分をレビューしてください。
## 差分
{git diff main...HEAD の内容}
## レビュー観点
- プロジェクト固有ポリシー({SECURITY.md / POLICY.md / cost-analysis.md})への MUST / MUST NOT 違反
- {領域固有の観点: OWASP Top 10 / OSSライセンス / API 課金影響}
## 出力
- 発見した問題(重要度: Critical / Major / Minor / Trivial / Info)
- 問題なしならその旨
3 件の独立結果を対応 C*O がメタレビューする(1 回)。
.claude/agents/cfo.md.claude/agents/ciso.md.claude/agents/clo.mdメタレビュー観点:
CO メタレビューの結論が Major 以上 のとき、対応 CO が PR にコメント投稿する。
.claude/rules/review-criteria.md に準拠重複防止のため、マーカー [<C*O>-consensus-review](例: [CFO-consensus-review])で既存コメントを検索して upsert する。
# owner/repo を取得
repo=$(gh repo view --json nameWithOwner --jq '.nameWithOwner')
pr_num=$(gh pr view --json number --jq '.number')
marker="[CFO-consensus-review]" # C*O に応じて変える
existing_id=$(gh api "repos/${repo}/issues/${pr_num}/comments" --paginate \
--jq '.[] | select(.body | startswith("'"$marker"'")) | .id' | head -1)
if [ -n "$existing_id" ]; then
gh api --method PATCH "repos/${repo}/issues/comments/${existing_id}" \
-f body="${marker}"$'\n\n'"${summary}"
else
gh pr comment "${pr_num}" --body "${marker}"$'\n\n'"${summary}"
fi
.claude/rules/review-criteria.md の判定基準に従い、/review と合議制(full プリセット時)の両方の指摘を統合して分類する。
## 修正すべき指摘
1. [ファイルパス:行番号] 指摘内容の要約(出典: /review, CFO-consensus)
2. ...
## 却下した指摘
1. [指摘内容の要約] — 却下理由
2. ...
要修正0件ならループ終了。
要修正リストに対して、各指摘の具体的な修正計画を策定する。このステップではコードの変更は行わない。
手順:
## 修正計画
### 1. [ファイルパス:行番号] 指摘内容の要約
- **修正内容**: 何をどう変更するか
- **影響範囲**: 変更が影響する他のファイル・テスト
- **注意点**: 修正時に気をつけるべきこと
修正計画に従ってコードを修正する。
## 修正内容
1. [ファイルパス] 修正内容の要約
2. ...
## テスト結果
- {テスト名}: PASS/FAIL
ループが問題0件で正常終了した場合、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"
上限到達で打ち切った場合はスタンプを生成しない。
全イテレーションの結果をまとめて報告する:
## review-loop 結果
### レビューモード
- preset: {minimal/standard/full}
- 合議制: {起動/スキップ} (full プリセット時のみ判定)
- 起動 C*O: {CFO / CISO / CLO}(起動時のみ)
### 修正した指摘
- {ファイル:行番号}: {指摘内容} → {修正内容}(出典: /review / {C*O}-consensus)
### 却下した指摘
- {指摘内容} — 理由: {却下理由}
### サマリ
- ループ回数: {n}回
- 修正: {n}件
- 却下: {n}件
- 最終レビュー: 問題0件
--force、--hard、--no-verify は使用しないgit add / git commit / git push は実行しない(呼び出し元に委ねる)data-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 段階で挙動を壊さず適用する。自動マージ禁止。