一键导入
diff-audit
PR diff全体を原則ベースでレビューする。4つの問いを軸に、チェックリスト外の問題も含めて拾う。既知パターンは各問いのヒントとして残す。Bash堅牢性・ドキュメント整合・セキュリティを統合カバー。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
PR diff全体を原則ベースでレビューする。4つの問いを軸に、チェックリスト外の問題も含めて拾う。既知パターンは各問いのヒントとして残す。Bash堅牢性・ドキュメント整合・セキュリティを統合カバー。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | diff-audit |
| description | PR diff全体を原則ベースでレビューする。4つの問いを軸に、チェックリスト外の問題も含めて拾う。既知パターンは各問いのヒントとして残す。Bash堅牢性・ドキュメント整合・セキュリティを統合カバー。 |
原則が主役、ヒントは床。 4つの問いが天井(チェックリスト外を拾う)、各問いの下のヒントが床(最低限の保証)。
gh pr diff を Bash で実行して diff 全体を取得する.sh / run: / ```bash ブロックが diff にある場合)と汎用ヒント(任意の言語のコードが diff にある場合)は常時スキャン。CDK/PHP/Python ヒントは --cdk/--php/--python フラグ指定時かつ対象ファイルが diff に含まれる場合のみスキャン(フラグなし = N/A)/security-review へ誘導するdiff が大きい場合(目安: 500行超)は分割してレビューする。
diff 内のすべてのコマンド・コード・設定値を読み、以下の軸で問う。
ヒント — .sh / run: ブロック / ```bash ブロックが diff に含まれる場合、以下を必ずスキャン:
set -euo pipefail 欠如 / unquoted $VAR /
for f in $FILES(スペース入りファイル名で壊れる → git diff --name-only -z + while IFS= read -r -d '' を使う) /
xargs cmd(xargs cmd -- にする) / echo "$var" | cmd(printf '%s\n' "$var" | cmd にする) /
printf "$var"(フォーマット文字列インジェクション → printf '%s' "$var") /
Bash特殊変数の上書き(SECONDS=0 等) / trap クォーティングバグ /
jq に -e なし / curl タイムアウト未指定 /
mktemp+mv cross-device rename(mktemp -p <dir> または直接パス形式で同一 FS に作成) /
exit code セマンティクスミス / || echo で失敗握りつぶし / read に -r なし /
aws ssm put-parameter --value "$SECRET"(ps でシークレット露出 → --value file://... にする) / $SHELL でシェル判定
ヒント — 任意の言語のコードが diff に含まれる場合、以下を必ずスキャン:
バリデーション抜け(空文字・空白・null・不正 IP) / .trim()/.strip() 漏れ /
trim 後の正規化を書き戻していない / 失敗時に exit せず後続へ進む /
タイムアウト・失敗を成功として扱う / except Exception/catch (\Throwable) で隠蔽 /
HTTPException を 500 に変換 / catch→別例外変換で previous/__cause__ なし
PR diff を横断して比較する。単一ファイルでは見えない問題。
diff 内の構造化テキスト(Markdown・YAML・JSON・設定ファイル)に対して問う。
\|・バッククォートのネスト・言語指定の有無)ここでは diff を読んで懸念が浮かんだら報告する水準。深掘りは /security-review に委ねる。
ヒント — --cdk 指定時、かつ cdk/ infra/ cdk.json template.yaml が diff に含まれる場合、以下をスキャン:
RemovalPolicy.RETAIN 漏れ(VPC・EIP・IAM Role・Route) / DependsOn 漏れ /
SSM/KMS ARN ハードコード(Stack.formatArn() 推奨) /
kms:ViaService に amazonaws.com ハードコード / InstanceType 変更の置換リスク /
StringParameter への placeholder 値 / CfnOutput.exportName 固定値
ヒント — --php 指定時、かつ *.php が diff に含まれる場合、以下をスキャン:
report($e) + Log::error($e) 併用(Sentry 二重送信) /
catch (\Throwable) → FooException 変換で 500 系が Sentry 未達 /
Repository interface の ?object 戻り値
ヒント — --python 指定時、かつ *.py が diff に含まれる場合、以下をスキャン:
os.environ.get(key) に .strip() なし / trim 後の正規化を書き戻していない /
if not value で空白のみが通る / StrictHostKeyChecking=accept-new /
in-memory レートリミット(マルチワーカー環境で無効)
深掘りが必要と判断した場合: → /security-review を推奨 と明示する。
## diff-audit 結果 CRITICAL N件 / WARNING N件 / SUGGESTION N件
### CRITICAL(マージ前に必ず対処)
- `file:line` — [問い1] 説明
### WARNING(対処推奨)
- `file:line` — [問い2] 説明
### SUGGESTION(任意対応)
- `file:line` — [問い3] 説明
### 深掘り推奨
- → /security-review: 理由
### 適用結果
- [問い1] OK(N件指摘)
- [問い2] OK(指摘なし)
- [問い3] N/A(Markdown/設定ファイルなし)
- [問い4] OK → /security-review 推奨なし
### 推奨アクション
verdict: 🚫 CRITICAL対応後マージ (または ⚠️ 修正推奨後マージ / ✅ マージ可)
自動修正(確認なしで適用):
- file:line — 説明
確認が必要(提示):
- file:line — 説明
Issue化推奨(今PRでは修正しない):
- (なし)
| 判定 | 条件 | 処理 |
|---|---|---|
| 自動修正 | 機械的修正可能(下記4条件を満たす) | 確認なしで Edit 適用 → 修正内容を報告 |
| 確認提示 | 選択肢が複数、または意図確認が必要 | 具体的な修正案を提示して判断を仰ぐ |
| Issue化推奨 | SUGGESTION全般 | 今PRでは修正しない。別Issue化 or 見送りを申し送り |
機械的修正可能の4条件(すべて満たす場合):
🚫 CRITICAL対応後マージ⚠️ 修正推奨後マージ(修正適用済みなら ✅ マージ可)⚠️ 修正推奨後マージ(確認待ち)✅ マージ可(SUGGESTION は Issue化申し送り)✅ マージ可file:line を必ず引用する/security-review へ委譲する。diff-audit は入口を担う親子 Claude Code セッション間の委譲操作を行う。delegate(子を起動してキック)、send(既存ペインへ1行/キックオフ送信・誤送信防止つき)、list(宛先確認)、report(子→親の申し送り)を自然言語の意図から判断して実行する。tmux 環境前提。
oe-* オーケストレーションツール群(engine 本体 / 親子委譲 / SO ゲート / 選択・観測)と駆動層規律の統合概観。複数エージェント委譲・設計SO/実装SO・read-only 観測・engine 1 サイクルを使うとき、ツール群の全体像をリポジトリ走査でなく一貫した形で把握したいときに使用する。
エラー/バグ調査で、入力→出力のコードパスに未読区間がある限り外部要因(インフラ差異等)の仮説に進まない。外部要因に飛ぼうとするとき、原因が再現しないと判断しそうなときに使用する。仮説を tmp/hypothesis-NNN.md に外部化し、コードパスの read-state を可視化する。
プランをKickoff Document形式に変換する。セカンドオピニオン投入・リポジトリアーカイブ・ピアレビュー共有時に使用する。命名規約・frontmatter・セクション構造をKickoff形式に整える。
設計判断を確定する前に、ゼロベースで未探索の代替案を最低1回引き出し、その証跡を確定前に残してから確定する。複数の選択肢を A/B 等で確定しかけたとき、ADR / Decision / kickoff の設計判断(DJ-N)を確定・記録するときに使用する。so-compare 選択肢拡張・探索木の外部化を含む。
so-compare.shでセカンドオピニオン(Codex/Claude/Cursor)を取得し、結果を比較する。ピアレビュー、修正方針の検証、設計判断の反証に使用する。**弱 SO**(1周可・partial=disclose・0はなし)。プロンプト設計原則、結果読み込み手順、合意判定基準を含む。