# Fallacy Check

> 議論・主張・討論ログのテキストから、誤謬パターン（ストローマン、人身攻撃、レッテル貼り、 loaded language、衆人・権威・新しさへの訴え、誤った二分法、連続性の虚偽、前件否定、 後件肯定など）を検出してフラグする。出典はニコニコ大百科「詭弁の特徴のガイドライン」と Wikipedia「詭弁」（references/rules.yaml）。「指摘して」「チェックして」「レビューして」のように 検出と報告だけを求められたときに使う（詭弁の指摘、論理の飛躍や主張の穴の点検、 説得文・ポリシー論・議論スレッドの論理面レビュー）。原稿そのものを直す・書き直す・ 並べ替える依頼は argument-gap-edit。 Use when reviewing an argument, essay, policy statement, or debate log for logical fallacies without editing the text itself.

- Skill: `hironow/fallacy-check` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add hironow/fallacy-check`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hironow/fallacy-check/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: hironow (https://skillmd.com/u/hironow)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/hironow/fallacy-check

---


# 誤謬パターン検出（詭弁チェック）

このスキルは、テキストに誤謬の**パターン**が現れているかを点検してフラグするために使う。
「これは詭弁だ」と**断定するためのものではない**。
断定を避けること自体が、このスキルの中心的な価値である。

なぜ断定しないのかは、出典自身が警告している。
「詭弁には特徴Xがある」から「Xがあれば詭弁だ」は導けない（後件肯定）。
チェッカーが何かを詭弁と断定した瞬間、検出対象の誤謬をチェッカー自身が犯す。
さらに詭弁の定義は「欺く意図を伴う誤謬」であり、意図はテキストから復元できない。
だから出力は「誤謬パターンの検出」までに留め、verdict は出さない。

## 大原則（出力の前に必ず読む）

- **DP-01 後件肯定の回避**：verdict（詭弁か非詭弁か）を出さない。flag と signal_strength と
  パターンID に留める。理由は上記のとおり、断定はチェッカー自身の後件肯定になる。
- **DP-02 詭弁と誤謬の区別**：ラベルは「誤謬パターン検出」止まりにする。「詭弁」と断定しない。
  詭弁は誤謬に欺く意図が加わったものだが、意図はテキストから判定できない。
- **DP-03 文脈依存パターンの扱い**：一部のパターンは文脈次第で正当な論法になる。
  議論の型を先に分類してから、そのパターンを適用する（後述の Stage 1）。
- **DP-04 欠落パターンの補完**：ガイドライン15条には最頻出の形式的誤謬「前件否定」が無い。
  補完として前件否定（S-01）と後件肯定（S-02）も点検する。

## 手順（多段 gate）

素朴な「signal に一致したらフラグ」を避け、段階的に絞る。
各 Stage は前の Stage の結果を受けて、誤検出を落とす gate として働く。

### Stage 0 入力の正規化と種別

- **mode を決める**：入力が単発テキストか（`single_text`）、話者と履歴のある対話ログか
  （`dialogue_log`）。`dialogue_log` でなければ、会話履歴を必要とするパターン
  （`requires_history: true` = 蒸し返し G-12、自分でずらして批難 G-18）は **N/A** として扱い、
  フラグしない。単発では検出できないものを検出したことにしない。
- **発話帰属を判定する（use-mention）**：各 span が「著者自身が主張しているもの」か、
  「引用、言及、仮想敵、steelman、批評対象として置かれているもの」かを見分ける。
  著者が誤謬を**引用したり解剖したりしている**文は、著者の誤謬としてフラグしない。
  これが最大の誤検出源である。例:「彼はいつも『お前だってやってる』と論点をずらす」は、
  著者が tu quoque を批評しているのであって、著者が犯しているのではない。

### Stage 1 議論の型と構造を分類（DP-03 の前提）

context_sensitive なパターンは、議論の型が分からないと正当な論法と誤謬を取り違える。
先に次の二軸を分類する。

- **主張の型**：全称命題（すべてのXはY）／傾向論（Xはたいていの場合Y、統計的主張）／
  定義論争（語の定義そのものが争点）／事実命題／価値命題。
- **論証の構造**：条件文（PならばQ）／因果主張／類推／連続量（境界の曖昧な量、砂山型）の有無。

この分類が Stage 2 の gate になる。

### Stage 2 パターン照合（frame で gate）

[references/rules.yaml](./references/rules.yaml) を読み、各パターンの `signal` に照合する。
`context_sensitive: true` のものは Stage 1 の分類で gate する。
該当する型でなければフラグしない、または低い signal_strength に context_note を付けて残す。
特に注意する分岐:

- **反例（G-02）は双方向**：全称命題への反例は正当な反証なのでフラグしない。
  傾向論・統計的主張に対して単一の例外を「反証」として提示している場合は候補になる。
- **条件文の構造照合（S-01 / S-02）**：本文から「PならばQ」を同定し、推論の向きを見る。
  「Pでない、ゆえにQでない」は前件否定（S-01）。「Qである、ゆえにP」は後件肯定（S-02）。
- **連続性の虚偽（W-04）**：境界が曖昧なこと「だけ」を理由に定義や合意を無効化しているかで
  gate する。連続性そのものの指摘（砂山のパラドックスの提示）は正当なので、それだけでは
  フラグしない。
- **対偶（W-01）**：論理的に妥当な対偶はフラグしない。誤りは無い。ミスリードのために対偶を
  修辞的に使い、包含関係を因果に見せている場合のみ、「誤謬」ではなく「ミスリード表現」の
  カテゴリで surface する。
- **異論あり（`disputed: true`）**：出典自身が「詭弁として成立しないという意見が多い」と記す
  パターン（まれな反例 G-02、ありえない解決策 G-10、連続性の虚偽 W-04 など）は、
  低い signal_strength にして context_note を必須にする。

### Stage 3 反証可能性チェック（後件肯定 S-02 の実効ガード）

これは語彙の掃除ではなく、推論のガードである。
各 flag について、「この span を誤謬たらしめている frame や文脈は何か」を一つ言葉にできるかを問う。
言葉にできないなら、それは flag ではない（表層が似ているだけである）。
残した flag には必ず context_note を付け、「表層形は存在するが、誤謬性や欺く意図は未確定」で
あることを明示する。

### Stage 4 出力

下記スキーマに従う。verdict は構造として持たない。

## 出力スキーマ

```yaml
mode: single_text | dialogue_log
argument_frame:            # Stage 1 の分類
  claim_type: 全称命題 | 傾向論 | 定義論争 | 事実命題 | 価値命題 | 不明
  structure: [条件文, 因果, 類推, 連続量]   # 該当するものだけ
flags:
  - pattern_id: G-17           # 例
    span: "該当箇所の引用"
    attribution: self | quoted | attributed | steelman   # 著者自身か引用か
    signal_strength: 0.0-1.0   # 表層シグナルの一致強度。frame で棄却されていないことを含む。
                               # 「詭弁である確率」ではない。
    context_note: "正当な用法の可能性、または未確定である点を必ず記載"
verdict: null                  # 断定は出力しない（DP-01）
disclaimer: "これは誤謬パターンの検出であり、詭弁の断定ではない。意図は判定していない。"
limitations: []                # 適用できなかった観点があれば列挙（下記 Limitations 参照）
```

flag が一つも残らないことは正常な結果である。無理にフラグを作らない。

## パターンカタログ

全パターンの定義と signal と各種フラグは [references/rules.yaml](./references/rules.yaml) にある。
詳細照合をするときにそれを読む。早見のグルーピングは次のとおり。

- **論点操作**：関係ない話 G-06、蒸し返し G-12、些末なミス指摘 G-14、極論化（ストローマン）G-17、ずらして批難 G-18
- **人身攻撃・ラベリング**：茶化し G-08、人格批判 G-09、レッテル貼り G-11、loaded language W-02
- **権威・多数・新しさ**：資料なき多数派 G-05、新しさへの訴え G-15、権威への訴え G-19
- **仮定・将来・陰謀**：事実への仮定 G-01、有利な将来像 G-03、陰謀の力説 G-07
- **二分法・境界**：全か無か G-16、連続性の虚偽 W-04
- **反例・例外**：まれな反例 G-02、決疑論 W-05
- **主観・願望**：主観で決め付け G-04、経験則の否定 W-03
- **形式的誤謬**：前件否定 S-01、後件肯定 S-02、対偶（誤りなし）W-01
- **勝利宣言・非現実的解決**：勝利宣言 G-13、ありえない解決策 G-10

## Examples（実例）

正しくフラグする例と、あえてフラグしない例を [references/examples.md](./references/examples.md) に置く。
特に context_sensitive のパターンと発話帰属の扱いは、そこの対比例で確認する。

## Limitations（既知の未対応）

silent に失敗させず、適用できなかった観点は出力の `limitations` に明記する。

- 皮肉や反語は、表層形と主張が逆になるため取り違えやすい。
- 入れ子や多層の論証では、どの主張に対する誤謬かを一意に取れないことがある。
- 単一テキスト内で言語が混在すると、日英どちらかの signal を取りこぼすことがある。
- 虐待や災害など、正当に激しい語を要する話題では loaded language（W-02）が過剰発火しやすい。
- 欺く意図は判定できない。これは原理的な限界であり、フラグは常に意図に対して中立である。

## 関連skill

- `../argument-gap-edit/SKILL.md`：論証のギャップを検出して編集で直す（本スキルは検出止まり）。
- `../verification-discipline/SKILL.md`：主張を検証してから断定する規律。
- `../decision-record-governance/SKILL.md`：決定記録どうしの矛盾検査。

