adversarial-review · v0.1.0 · 2026-06-17 · sha256 c5a4b2c755655130

adversarial-review v0.1.0A

Immutable. This exact content is served forever at /api/v1/blob/c5a4b2c755655130.

---
id: adversarial-review
name: adversarial-review
description: |
  敵対的分析手法を統合したレビューの entry skill。認知バイアス対策の3手法
  (Pre-mortem / War Game / Logic Torturing)と、宣言・主張と実態の乖離を突く
  claim-vs-actual 検出3パターン(Self-Contradiction / Refactor-Claim Audit /
  Cross-File Leakage)へルーティングし、通常のレビューでは見えない設計の盲点・
  防御の穴・論理の弱点・宣言と実装のズレを可視化する。
category: midstream
phase: [upstream, midstream]
severity: major
applyTo:
  - 'src/**/*.{ts,tsx,js,jsx,mjs}'
  - 'docs/**/*design*.md'
  - 'docs/adr/**/*'
  - 'pages/**/*design*.md'
inputContext: [diff, fullFile]
outputKind: [findings, questions, actions]
tags:
  [
    adversarial,
    pre-mortem,
    war-game,
    logic-torturing,
    self-contradiction,
    refactor-claim,
    cross-file-leakage,
    claim-vs-actual,
    cognitive-bias,
    entry,
    routing,
  ]
version: '0.1.0'
license: MIT
---

# Adversarial Review(敵対的レビュー)

通常のコードレビューは「正しさの確認」に集中する。
敵対的レビューは **「どう壊れるか」「どう攻撃されるか」「どこが論理的に弱いか」** に集中する。

## 背景 / Background

AIをレビューに使う最大の価値は、情報の整理ではなく **思考の死角を映す鏡** としての活用にある。
このスキルは、2系統の敵対的手法を体系化し、レビューの質を根本的に引き上げる。

### 認知バイアス対策(思考の死角)

| 手法            | 対策するバイアス           | 核心の問い                           |
| --------------- | -------------------------- | ------------------------------------ |
| Pre-mortem      | 生存バイアス・楽観バイアス | 「失敗した**として**、なぜ?」       |
| War Game        | 自己中心バイアス           | 「敵の立場**から**、どう攻撃する?」 |
| Logic Torturing | 確証バイアス               | 「この論理の穴を**潰して**」         |

### claim-vs-actual 検出(宣言・主張と実態の乖離)

| 手法                 | 対象とするズレ           | 核心の問い                                    |
| -------------------- | ------------------------ | --------------------------------------------- |
| Self-Contradiction   | 宣言と同一ファイルの実装 | 「規則 X を宣言した本人が**破って**いない?」 |
| Refactor-Claim Audit | 完了主張と残骸           | 「『全部やった』を grep で**反証**できる?」  |
| Cross-File Leakage   | 構造変更と caller 側     | 「直したのは変更元だけ、**参照元**は?」      |

## When to Use / いつ使うか

- 設計判断やアーキテクチャ変更を含むPRのレビュー時
- セキュリティに影響する変更のレビュー時
- 重要な技術選択の妥当性を検証したいとき
- 「本当にこれで大丈夫か?」という不安があるとき

## Routing / ルーティング

入力に応じて、適切な手法へルーティングする。複数手法の併用も可能。

| キーワード                                          | 手法                 | スキルID                                |
| --------------------------------------------------- | -------------------- | --------------------------------------- |
| 失敗, リスク, 負債, インシデント, pre-mortem        | Pre-mortem           | `rr-upstream-pre-mortem-001`            |
| 攻撃, セキュリティ, 悪用, 脆弱性, war-game          | War Game             | `rr-midstream-war-game-001`             |
| 論理, 判断, 根拠, なぜ, 代替案, logic               | Logic Torturing      | `rr-midstream-logic-torturing-001`      |
| 自己矛盾, contradiction, 宣言と実装, declared but   | Self-Contradiction   | `rr-midstream-self-contradiction-001`   |
| 削減, 完了, 全て置換, all replaced, -N%, リファクタ | Refactor-Claim Audit | `rr-midstream-refactor-claim-audit-001` |
| caller, 残骸, 参照漏れ, 再採番, leakage             | Cross-File Leakage   | `rr-midstream-cross-file-leakage-001`   |
| 敵対的, adversarial, 全部, フル                     | **全手法実行**       | 上記6つすべて                           |

### デフォルト動作

- キーワード指定なし → 変更内容から自動判定:
  - 設計ドキュメント/ADR → Pre-mortem + Logic Torturing
  - セキュリティ関連コード → War Game + Logic Torturing
  - 一般的なコード変更 → Logic Torturing
  - 宣言的フレーズ(「禁止」「必ず」「MUST」等)を含む変更 → Self-Contradiction
  - 完了主張(「全置換」「-N%」等)を含む commit/PR → Refactor-Claim Audit
  - 構造変更(再採番・シンボル改名・分割)を含む変更 → Cross-File Leakage
  - 大規模変更(ファイル数10以上or差分500行以上)→ 全手法実行

## Execution Flow / 実行フロー

```text
1. 変更内容の分類
   ├─ 設計/ADR → Pre-mortem を優先実行
   ├─ セキュリティ関連 → War Game を優先実行
   ├─ 判断を含む変更 → Logic Torturing を実行
   ├─ 宣言的フレーズ → Self-Contradiction を実行
   ├─ 完了主張 → Refactor-Claim Audit を実行
   └─ 構造変更 → Cross-File Leakage を実行

2. 各手法の実行(並列可能)
   ├─ Pre-mortem: 失敗シナリオ × 最大5件
   ├─ War Game: 攻撃シナリオ × 最大5件
   ├─ Logic Torturing: 論理検証 × 最大5件
   ├─ Self-Contradiction: 宣言と実装の乖離 × 最大5件
   ├─ Refactor-Claim Audit: 完了主張の反証 × 最大5件
   └─ Cross-File Leakage: caller 側残骸 × 最大5件

3. 統合サマリの生成
   ├─ 重複する指摘の統合
   ├─ 重大度による優先順位付け
   └─ Human Handoff 条件の判定
```

## Output Format / 出力形式

```markdown
## 🔍 Adversarial Review Summary

### 検出された盲点: N件

- Pre-mortem: X件 (失敗シナリオ)
- War Game: Y件 (攻撃シナリオ)
- Logic Torturing: Z件 (論理的な穴)
- Self-Contradiction: A件 (宣言と実装の乖離)
- Refactor-Claim Audit: B件 (完了主張の反証)
- Cross-File Leakage: C件 (caller 側残骸)

### 最も重大な発見

<最も致命的な1件の要約>

### 詳細

(各手法の出力を統合)
```

## 他スキルとの関係

| 既存スキル                                   | 関係 | 棲み分け                                                                                                          |
| -------------------------------------------- | ---- | ----------------------------------------------------------------------------------------------------------------- |
| `rr-upstream-architecture-risk-register-001` | 補完 | risk-register は「リスクが文書化されているか」を確認。Pre-mortem は「文書化されていないリスクを発見」する         |
| `rr-midstream-security-basic-001`            | 補完 | security-basic は既知パターン(SQLi, XSS等)を検出。War Game は「既知パターンに当てはまらない攻撃経路」を発見する |
| `rr-upstream-adr-decision-quality-001`       | 補完 | adr-decision は ADR の形式品質を確認。Logic Torturing は「記述された判断の論理的強度」を検証する                  |

## References

- [TECHNIQUES.md](./references/TECHNIQUES.md): 3手法の理論的背景と実践ガイド