ワンクリックで
self-review
ローカルの変更差分(git diff)を3つのサブエージェントで並列レビューし、結果を統合して修正を適用する。PR作成前やタスク完了前のローカル品質チェックに使用する。ai-code-reviewと同一の6観点・重大度基準を適用する。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
ローカルの変更差分(git diff)を3つのサブエージェントで並列レビューし、結果を統合して修正を適用する。PR作成前やタスク完了前のローカル品質チェックに使用する。ai-code-reviewと同一の6観点・重大度基準を適用する。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Jules REST APIを使用してタスクを対話的に依頼・管理する。セッション作成・プラン承認・メッセージ送信・進捗監視をAPI経由で行い、Claudeと協調してタスクを完遂する。ベースブランチ指定とPR自動作成に対応。認証はJULES_API_KEY_OP_URI(1Passwordシークレット参照)またはJULES_API_KEYで行う。Do NOT use for 認証情報未設定の環境でのタスク実行(task-executingを使用すること)。
SDDワークフロー全体を統括するオーケストレーター。要件定義・設計・タスク計画・実装・逆順レビューの一連のフローを管理する。新規プロジェクトのSDD一括作成、複数フェーズにまたがるワークフロー管理、エラー・バグの体系的な分析と修正に使用する。Do NOT use for 個別フェーズのみの作業(requirements-defining、software-designing、task-planningを直接使用すること)。
設計書から実装タスクへの分解を行う。デフォルトで各タスクをGitHub Issueとして起票し(1タスク=1 Issue、詳細はIssue本文に集約、ラベルでフェーズ・ステータス管理)、ユーザーがファイル管理を明示した場合のみdocs/sdd/tasks/にファイル生成する。AIエージェント向けの具体的な実装指示やTDD手順を定義する。タスク計画フェーズのみを単独で実行する際に使用する。Do NOT use for SDDワークフロー全体の管理(sdd-documentationを使用すること)。
SDDドキュメントの整合性チェック、実装同期確認、アーカイブ(CLAUDE.md同期含む)、ファイル最適化を行う。ドキュメント間の矛盾検出、実装との乖離確認、完了タスクの整理と仕様のCLAUDE.md転記、肥大化ファイルの分割が必要な場合に使用する。Do NOT use for ドキュメントの新規作成(requirements-defining、software-designing、task-planningを使用すること)。
エラー・バグ・問題を体系的に分析し修正方針を策定する。テスト失敗、ビルドエラー、実行時エラー、動作不良、バグ報告に対応し、根本原因を分析してから修正を行う。Do NOT use for 根本原因分析が不要な軽微な修正(typo、設定値変更、フォーマット修正など)。
IPA非機能要求グレード2018(可用性・性能拡張性・運用保守性・移行性・セキュリティ・システム環境)の記入済み要件を入力として、運用設計書を生成する。非機能要件定義が完了しているプロジェクトの運用設計フェーズで使用する。Do NOT use for 非機能要件の定義自体(requirements-definingを使用すること)。Do NOT use for 業界調査やヒアリングから始める運用設計(operations-designを使用すること)。
| name | self-review |
| description | ローカルの変更差分(git diff)を3つのサブエージェントで並列レビューし、結果を統合して修正を適用する。PR作成前やタスク完了前のローカル品質チェックに使用する。ai-code-reviewと同一の6観点・重大度基準を適用する。 |
| metadata | {"version":"2.0.0"} |
ローカルの変更差分をサブエージェントで並列レビューし、PR作成前に品質問題を検出・修正するスキルです。ai-code-reviewと同一の6観点・重大度基準を使用しますが、GitHub API不要でローカル完結します。
レビュー開始前に、変更内容とコンテキストから情報を分類する:
+---------------------------------------------------------------+
| セルフレビューの鉄則 |
+---------------------------------------------------------------+
| 1. 推測でレビューしない - 必ずコードを読んで根拠を示す |
| 2. 6つの観点を漏れなくチェックする |
| 3. 指摘には必ず根拠(該当コード・行番号)を添える |
| 4. 数値・事実を根拠にする場合は必ずソースを確認する |
| 5. 重大度を正確に分類し、過剰な指摘を避ける |
| 6. critical/warningはユーザー承認なしに修正しない |
| 7. suggestion/nitpickも修正前にユーザーに提示する |
+---------------------------------------------------------------+
メインClaude(オーケストレーター)
|
+-- 1. 差分取得・ファイル分類(メインが実行)
|
+-- 2. 3サブエージェントを並列起動(Agent tool)
| |
| +-- エージェントA: セキュリティ + 既知脆弱性
| +-- エージェントB: 可読性・複雑度
| +-- エージェントC: ドキュメント乖離 + ライブラリ選定 + 変更説明の適切性
|
+-- 3. 結果の統合・重複排除(メインが実行)
|
+-- 4. ユーザーへの報告・承認確認(メインが実行)
|
+-- 5. 修正適用(メインが実行)
| # | 観点 | category値 | 担当エージェント |
|---|---|---|---|
| 1 | セキュリティ | security, iam-permissions | A |
| 2 | ドキュメントとの乖離 | docs-drift, internal-consistency | C |
| 3 | 可読性・複雑度 | readability | B |
| 4 | ライブラリ選定の妥当性 | library | C |
| 5 | 変更説明の適切性 1 | change-description | C |
| 6 | 既知脆弱性の検出 | known-vulnerability | A |
各観点の詳細レビュー基準: ../ai-code-review/references/review_guide_ja.md
重大度の定義:
| 重大度 | 意味 | 修正要否 |
|---|---|---|
| critical | セキュリティ脆弱性、データ損失の可能性、本番障害のリスク | 修正必須 |
| warning | バグの可能性、パフォーマンス問題、設計上の懸念 | 修正推奨 |
| suggestion | より良い実装方法の提案、リファクタリング案 | 任意 |
| nitpick | スタイル、命名、些細な改善 | 任意 |
レビュー対象の指定
|
1. 差分取得・ファイル分類(メイン)
|
2. サブエージェント並列起動(Agent tool × 3)
→ 各エージェントはJSON形式で結果を返す
|
3. 結果統合・重複排除・横断チェック(メイン)
|
4. ユーザーへ報告・承認確認(メイン)
|
5. 修正適用(メイン、Editツール)
|
6. 修正後の再チェック(必要な場合)
メインClaude自身が実行する。
# ベースブランチの自動判定
BASE=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's@^refs/remotes/origin/@@')
# フォールバック: main → master → エラー
if [ -z "$BASE" ]; then
if git show-ref --verify --quiet refs/remotes/origin/main; then
BASE="main"
elif git show-ref --verify --quiet refs/remotes/origin/master; then
BASE="master"
else
echo "ERROR: ベースブランチが見つかりません。明示的に指定してください。" >&2
exit 1
fi
fi
# 変更ファイル一覧
git diff ${BASE}...HEAD --name-only
# 変更統計
git diff ${BASE}...HEAD --stat
# 差分全体
git diff ${BASE}...HEAD
ユーザーが明示指定した場合はそれに従う(--cached、特定パス等)。
差分取得方法(レポートのmetadata.diff_method値):
| diff_method値 | 対応コマンド |
|---|---|
branch | git diff ${BASE}...HEAD(デフォルト) |
cached | git diff --cached |
head | git diff HEAD |
working | git diff |
path | git diff ${BASE}...HEAD -- <path> |
ファイル分類の優先度:
| 優先度 | カテゴリ | 例 |
|---|---|---|
| 高 | セキュリティ関連 | 認証、認可、暗号化、入力処理、Terraform IAM |
| 高 | API / データベース | エンドポイント、マイグレーション、スキーマ |
| 中 | ビジネスロジック | ドメインロジック、サービス層 |
| 中 | 設定・インフラ | CI/CD、Docker、依存関係 |
| 低 | UI/表示 | テンプレート、スタイルシート |
| 低 | テスト | テストコード(セキュリティテストは優先度高) |
| 低 | ドキュメント | README、コメント更新 |
3つのサブエージェントをAgent toolで同時に起動する。
各サブエージェントへのプロンプトには以下を含める:
ai-code-review/references/review_guide_ja.mdの該当セクション)サブエージェントへのプロンプトテンプレート: references/self_review_guide_ja.md
各サブエージェントは、レビュー結果を以下のJSON形式で返すこと。このフォーマット以外の出力は不要(説明文・マークダウン表等は不要)。
{
"agent": "A|B|C",
"perspectives": ["担当観点名"],
"findings": [
{
"id": "F-NNN",
"file": "src/example.ts",
"line": "42-45",
"severity": "critical|warning|suggestion|nitpick",
"category": "security|iam-permissions|docs-drift|internal-consistency|readability|library|change-description|known-vulnerability",
"title": "問題の端的な説明",
"reason": "なぜ問題なのか、根拠(該当コードの引用を含む)",
"fix": {
"old_text": "Editツールにそのまま渡せる置換対象テキスト",
"new_text": "置換後テキスト"
},
"fix_strategy": {
"approach": "推奨する修正アプローチ",
"alternatives": ["代替案(あれば)"],
"impact": "他ファイル・コンポーネントへの波及",
"effort": "small|medium|large"
},
"context": "該当行の前後3行程度のコード断片(位置特定用)",
"rule": "関連ルール名(例: OWASP-A03, SRP)",
"verification_hint": "修正後に確認すべきポイント"
}
],
"cross_checks": [
{
"pattern": "検出した問題パターン",
"files_checked": ["確認済みファイル一覧"],
"additional_occurrences": ["同一パターンが見つかった他のファイル:行番号"]
}
],
"summary": {
"critical": 0,
"warning": 0,
"suggestion": 0,
"nitpick": 0
}
}
fix.old_text/fix.new_text: メインClaudeがEditツールにそのまま渡せるcontext: 行番号ズレがあっても位置を特定できるcross_checks: 横断チェック結果をメインに返し、メインが統合判断するsummary: メインが各エージェントの結果を即座に集計できるscopeフィールド(PR対応範囲の判定)はローカルレビューでは不要なため省略。fix.description(ai-code-review側でも任意)もローカルでは省略注: レポート出力時にメインClaudeが
source_agent(検出エージェント)とresolution(修正状況、初期値null)を各findingに追加する。サブエージェントはこれらを出力しない。
メインClaudeが3エージェントの結果を統合する。
findingsを結合し、各findingにsource_agentを付与cross_checksの統合: エージェント間で同一パターンの横断結果をマージsummaryにtotalを算出して追加(サブエージェント出力にはtotalなし)files配列を生成: ステップ1のファイル分類結果(パス・変更行数・優先度・カテゴリ)を格納統合結果をユーザーに分かりやすく提示する。
出力形式(ユーザー向け):
## セルフレビュー結果
対象: {branch} vs {base} | ファイル: {N}件 | +{add}/-{del}行
| 重大度 | 件数 |
|--------|------|
| critical | X |
| warning | X |
| suggestion | X |
| nitpick | X |
### 指摘一覧
1. **[critical]** `src/auth.ts:42` セキュリティ: SQLインジェクションの可能性
修正: パラメータ化クエリに置換 (effort: small)
2. **[warning]** `src/utils.ts:15` 可読性: 循環的複雑度が高い(12)
修正: 条件分岐を早期リターンに分解 (effort: medium)
...
critical/warningがある場合はAskUserQuestionで修正方針を確認:
AskUserQuestion:
question: "指摘について、どのように対応しますか?"
options:
- label: "すべて修正する"
description: "critical/warningの指摘をすべて修正します"
- label: "選択して修正する"
description: "修正する指摘を個別に選択します"
- label: "レポートのみ出力"
description: "修正は行わず、レポートファイルに出力します"
- label: "対応しない"
description: "確認のみとし、修正は行いません"
承認された指摘のfix.old_text/fix.new_textをEditツールで適用する。
critical/warningの修正適用後、修正箇所を再読み込みしてリグレッションがないか確認する。
ユーザーが「レポートのみ出力」を選択した場合、統合済みJSONをファイルに出力する。
出力先: .self-review/review-YYYY-MM-DD-HHMMSS.json
レポートテンプレート: assets/templates/self_review_report_template_ja.md
前回のレポートファイル(.self-review/)が存在する場合、再レビューとして前回指摘の修正状況を確認できる。
.self-review/から最新のレポートファイルを読み込むfindingsの各指摘について修正状況を確認:| 状態 | 説明 |
|---|---|
| resolved | 修正済み |
| partially-resolved | 一部修正されたが不十分 |
| unresolved | 未修正 |
| wont-fix | 修正しない判断がされた |
| regressed | 修正により別の問題が発生 |
タスク実装完了
|
+-- 逆順レビュー(task-executing): ドキュメント整合性
| tasks/ → design/ → requirements/
|
+-- セルフレビュー(self-review): コード品質
3エージェント並列レビュー → 修正 → PR作成
SDDプロジェクトの場合、エージェントCの「ドキュメント乖離」観点でSDD文書(requirements/、design/、tasks/)との整合も確認する。逆順レビュー実施済みの場合はその結果をプロンプトに含め、重複指摘を避ける。
- 推測に基づくレビュー(コードを読まずに指摘する)
- 個人の好みだけを根拠にした指摘
- 裏取りなしに数値・事実を断定する指摘
- 変更範囲外のコードへの指摘(ただしセキュリティ問題と横断チェックで発見した同一パターンの問題は例外。横断チェックでは変更ファイルと関連する未変更ファイルも確認するが、指摘はパターンの共有と注意喚起に留め、修正対象は変更範囲内に限定する)
- 過剰な nitpick
- ユーザーの承認なしにcritical/warningの修正を適用すること
- レビュー結果を報告せず修正だけ行うこと(必ず先に結果を提示する)
- サブエージェントがJSON以外の形式で結果を返すこと
| リソース | 内容 |
|---|---|
| ../ai-code-review/references/review_guide_ja.md | 6観点の詳細レビューガイドライン(ai-code-reviewと共有) |
| references/self_review_guide_ja.md | サブエージェントプロンプト・差分取得・修正適用・SDD連携 |
| assets/templates/self_review_report_template_ja.md | レポート出力フォーマット |
ai-code-reviewの「PR説明の適切性」(category: pr-description)に対応。ローカルレビュー用に名称とcategory値を変更。 ↩