templates/claude/skills/plan-review-loop/SKILL.md
実装計画に対するレビュー→修正の自動ループ。問題0件まで繰り返す。「/plan-review-loop」「計画レビューして」で使用。
npx skillsauth add hirokimry/vibecorp plan-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
実装計画(~/.cache/vibecorp/plans/<repo-id>/ 配下)に対してレビュー→修正のループを実行する。
/plan-review-loop # 現在のブランチの計画を自動検出
/plan-review-loop <plan_file> # 計画ファイルを直接指定
/plan-review-loop --worktree <path> # worktree 内の計画を対象
--worktree <path> が指定された場合、全操作を指定パス内で実行する。
cd <path> && command で実行する<path>/ を基準とした絶対パスを使用する--worktree <path> を引き継ぐ引数未指定の場合、ブランチ名から計画ファイルを特定する。
source "$CLAUDE_PROJECT_DIR"/.claude/lib/common.sh
branch=$(git branch --show-current)
plan_file="$(vibecorp_plans_dir)/${branch}.md"
ファイルが存在しなければユーザーに報告して停止する。
既存の .claude/plans/<branch>.md に計画が残っているリポジトリでは、新パスが無く旧パスにファイルがある場合のみ旧パスを使う(#334 移行期間の救済):
if [ ! -f "$plan_file" ] && [ -f ".claude/plans/${branch}.md" ]; then
plan_file=".claude/plans/${branch}.md"
fi
vibecorp.yml の plan.review_agents を読み取り、有効な専門家エージェントを特定する。
# vibecorp.yml から plan.review_agents を読み取る
awk '
/^plan:/ { in_plan = 1; next }
in_plan && /^[^ #]/ { exit }
in_plan && /review_agents:/ { in_agents = 1; next }
in_agents && /^ - / { gsub(/^ - /, ""); print }
in_agents && !/^ / { exit }
' .claude/vibecorp.yml
| 設定名 | エージェントファイル | プリセット |
|--------|-------------------|-----------|
| architect | .claude/agents/plan-architect.md | 全プリセット |
| security | .claude/agents/plan-security.md | standard 以上 |
| testing | .claude/agents/plan-testing.md | standard 以上 |
| performance | .claude/agents/plan-performance.md | standard 以上(デフォルトは full で有効) |
| dx | .claude/agents/plan-dx.md | standard 以上(デフォルトは full で有効) |
| cost | .claude/agents/plan-cost.md | full 限定 |
| legal | .claude/agents/plan-legal.md | full 限定 |
install.sh が生成する vibecorp.yml の plan.review_agents デフォルト:
| プリセット | デフォルト値 |
|-----------|------------|
| minimal | [architect] |
| standard | [architect, security, testing] |
| full | [architect, security, testing, performance, dx, cost, legal] |
ユーザーは vibecorp.yml で個別に追加・削除可能。
以下の場合は従来の単一レビュー(後述の「レビュー観点」による直接レビュー)にフォールバックする:
vibecorp.yml が存在しないplan.review_agents が未設定または空.claude/agents/ に存在しない以下を問題が0件になるまで繰り返す。最大5回でループを打ち切る。上限到達時は未解決の指摘一覧を報告してユーザーに判断を委ねる。
plan.review_agents が設定されている場合)SubAgent 起動例:
Agent tool で以下を実行:
「.claude/agents/plan-architect.md の指示に従い、以下の計画をレビューしてください。
計画ファイル: {plan_content}
Issue 完了条件: {completion_criteria}」
計画ファイルを読み込み、以下のレビュー観点で評価する。
| 観点 | チェック内容 | |------|------------| | 網羅性 | Issue の完了条件が全て計画に反映されているか | | 実現可能性 | 参照しているファイル・関数が実在するか、変更内容が技術的に正しいか | | 独立性 | タスクが並行実行可能な粒度に分解されているか | | テスト | 各タスクにテスト項目が含まれているか | | 影響範囲 | 変更による副作用が考慮されているか | | 既存パターンとの整合 | プロジェクトの既存コード・規約と矛盾しないか |
各エージェントのレビュー結果を以下のルールで統合する(2 段階):
plan.review_agents に設定された専門家エージェント(plan-architect 等)の結果を統合する。
後述の「C*O メタレビュー層」セクションで条件起動された C*O エージェントが、平社員層統合結果をメタレビューする。
full プリセットでは、計画ファイルが管轄領域に触れる場合に該当 C*O を条件起動し、平社員層の指摘をメタレビューする。
vibecorp.yml の preset: full であること| 領域 | キーワードパターン(計画ファイル内で検出) | 起動 C*O | 平社員合議 |
|---|---|---|---|
| 課金影響 | API call, model:, claude -p, ANTHROPIC_API_KEY, rate limit, 従量, トークン消費 | CFO | accounting-analyst×3 |
| セキュリティ | auth, token, secret, encrypt, permission, credential, 暗号 | CISO | security-analyst×3 |
| 法務 | dependency, LICENSE, third-party, 規約, プライバシー, 第三者 | CLO | legal-analyst×3 |
| 組織運営 | agents/, hooks/, rules/, skills/ | SM | (単独) |
| 仕様 | MVV.md, specification.md, UX | CPO | (単独) |
| 技術選定 | architecture, 技術選定, 新規依存バージョン | CTO | (単独) |
計画ファイルをキーワードパターンで検査する:
grep -iE 'API call|model:|claude -p|ANTHROPIC_API_KEY|rate limit|従量|トークン消費' "$plan_file"
該当領域の C*O と平社員合議(accounting / security / legal analyst ×3)を並列起動する。
preset: full 以外(minimal / standard)では C*O メタレビュー層を起動しないawk '/^preset:/ { sub(/^preset:[[:space:]]*/, ""); print; exit }' .claude/vibecorp.yml## 計画レビュー結果
### 問題あり
1. [エージェント: architect / 観点: 構造設計] 問題の説明
2. [エージェント: security / 観点: 入力検証] 問題の説明
3. ...
### 問題なし
- architect: 責務分離は適切
- testing: テストカバレッジは十分
問題0件ならループ終了。
問題リストに対して修正方針を策定する。このステップでは計画ファイルの変更は行わない。
手順:
## 修正方針
### 1. [観点: 網羅性] 完了条件「○○」の対応タスク追加
- **修正内容**: Phase 2 にタスクを追加
- **根拠**: Issue の完了条件に明記されている
### 2. [観点: 実現可能性] 関数参照の修正
- **修正内容**: foo() → bar() に変更(bar() が同等機能を提供)
- **根拠**: grep で確認した実在する関数
修正方針に従って計画ファイルを更新する。
## 修正内容
1. Phase 2 にタスク「○○」を追加
2. タスク3 の関数参照を foo() → bar() に修正
全イテレーションの結果をまとめて報告する:
## plan-review-loop 結果
### レビューモード
- {専門家エージェント / 単一レビュー}
- 起動エージェント: {architect, security, testing}(専門家モード時のみ)
### 修正した問題
- [観点: 網羅性] 完了条件「○○」のタスク追加
- [観点: 実現可能性] 関数参照の修正
### サマリ
- ループ回数: {n}回
- 修正: {n}件
- 最終レビュー: 問題0件
- 計画ファイル: ~/.cache/vibecorp/plans/<repo-id>/{branch_name}.md
~/.cache/vibecorp/plans/<repo-id>/*.md)のみを変更対象とする(コードは変更しない)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 段階で挙動を壊さず適用する。自動マージ禁止。