fact-checker について
Fact Checkerは、1件ずつ事実主張を検証するワークフローとスクリプトです。研究者やエージェントが支持・反証の根拠を集め、情報源の独立性と新しさを評価し、引用付きの判定レポートを作成できます。
主な機能
- 01主張を検索クエリに構造化
- 02支持・反証する記述を収集
- 03情報源の独立性と新しさを評価
- 04引用付き検証レポートを生成
- 05段階的な確信度の判定
活用シーン
- 01公開前に統計を確認
- 02日付、引用、関係性を検証
- 03エージェント作成レポートの重要主張を確認
- 04引用元の独立性と新しさを監査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ moonlight-lupin/ agent-skills --skill fact-checkerインストール後、Claude Code で/fact-checkerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/confidence-rubric.mdsource-independence.mdscripts/verify.pytemplates/verification-report.mdtests/test_verify.py詳細
ファクトチェッカー
概要
ファクトチェッカーは、一度に1つの事実に関する主張を対象に検証するワークフローです。エージェントが、もっともらしく聞こえるものの、幻覚であったり、信頼性の低い情報源から引用されていたり、後のデータと矛盾していたり、新たな報道を受けて古くなっていたりする主張を生成することがあるため、これを使います。通常のリサーチでは有用な背景情報を集められても、次のような狭い問いに答えられないことがあります。この具体的な主張は、入手可能な情報源によって裏付けられているのか、矛盾しているのか、古くなっているのか、それとも検証できないのか?
このスキルを使うと、主張を構造化された検索クエリに変換し、複数の独立した情報源から裏付けと反証の文章を集め、情報源の独立性と新しさを評価したうえで、引用と確度を適切に調整した判定を含む簡潔な検証レポートを作成できます。
クイックスタート
このスキルのディレクトリから実行します。
python scripts/verify.py structure --claim "Singapore's GDP grew 4.1% in 2025"
または、互換性のためのショートカットを使います。
python scripts/verify.py --claim "Singapore's GDP grew 4.1% in 2025"
ウェブ検索ツールとウェブ抽出ツールで情報源の文章を集めたら、レポートを生成します。
python scripts/verify.py report \
--claim claim.json \
--sources sources.json \
--output verification-report.md
完了条件:レポートに判定が記載され、引用した情報源がすべて列挙され、矛盾があれば明示され、情報源の独立性に関する注記が含まれていること。
使用する場面
- 公開、送信、または依拠する前に、1つの事実に関する主張を検証します。
- 統計、出来事、関係性、引用、日付が情報源によって裏付けられているか確認します。
- エージェントが作成した段落のうち、影響が最も大きい主張を1つずつ検証して、内容を照合します。
- 引用された主張について、情報源の独立性と新しさを監査します。
使用しない場面
- 幅広いトピックのリサーチや文献レビュー → 詳細なリサーチのワークフローを使います。
- エンティティの詳細な背景資料 → エンティティリサーチのワークフローを使います。
- 引用データベースの管理 → 情報源追跡のワークフローを使います。
- プロパガンダ、バイアス、意図の分析 → このスキルは事実に関する裏付けのみを検証します。
- 市場、天気、緊急事態、法律、医療、規制に関するリアルタイムの判断 → 信頼できる最新のシステムを使い、人間による確認を行います。
5段階のパイプライン
1. 主張を解析する
主張を抽出し、構造化されたオブジェクトにします。
- 主張のテキスト — 検証する正確な文言。
- 主張の種類 — 統計、出来事、関係性、引用、または日付。
- キーワード — エンティティ、指標、値、年、日付、特徴的な名詞。
- 期間 — 明示されている場合は、年または日付の範囲。
- エンティティ/指標/値 — 検出可能な場合。
- 検索クエリ — 3~5件の絞り込んだ検索。
コマンド:
python scripts/verify.py structure --claim "Singapore's GDP grew 4.1% in 2025" > claim.json
完了条件:JSONに、記憶に頼らず主張を検索するのに十分な用語が含まれていること。
2. 検索する
異なる情報源の種類にわたって、絞り込んだ検索を3~5件実行します。次を組み合わせます。
- 一次/公式情報源のクエリ:規制当局、統計機関、企業の提出書類、裁判所の文書、政府発表。
- 独立したニュース/レポートのクエリ:信頼できる報道機関またはアナリストレポート。
- 反証のクエリ:
not、revised、correction、dispute、または別の値/日付などの語を追加します。 - 新しさを確認するクエリ:主張に期間がある場合は、
latest、現在の年、revised、updated、またはfinalを追加します。
同じプレスリリースの複数の転載を、別々の証拠として扱わないでください。
完了条件:検索セットに、裏付けのみでなく、反証やより新しいデータが見つかりそうなクエリが少なくとも1件含まれていること。
3. 抽出する
候補となる情報源ごとに、主張を直接裏付ける、反証する、または条件を付ける短い文章を抽出します。情報源をJSONとして保存します。
[
{
"url": "https://example.org/report",
"title": "Example Report",
"passage": "The economy grew 4.1% in 2025...",
"stance": "confirm",
"source_type": "official",
"accessed_at": "2026-07-06"
}
]
stanceには次の値を使います。
confirm— 主張を直接裏付けます。refute— 主張に直接反します。nuance— 部分的に裏付ける、条件を付ける、または適用範囲を変えます。
完了条件:各情報源にURL、タイトル、引用文、立場、情報源の種類、アクセス日が含まれていること。
4. 相互確認
判断する前に、次の4つの観点を評価します。
- 情報源の独立性 — ルートドメインが異なることは手がかりになりますが、それだけでは不十分です。情報源が同じ通信社の記事、プレスリリース、提出書類、データセットに依拠していないか確認します。
- 一致状況 — 裏付ける情報源、反証する情報源、異なる見解を示す情報源を、それぞれ別に数えます。
- 矛盾 — 信頼できる情報源の見解が異なる場合は、両方の立場を出典付きで提示します。
- 最新性 — 主張が特定の期間に関する場合は、その後の改訂、確定データ、修正再表示、更新された提出書類を確認します。
URL 評価ヘルパーを使用します。
python scripts/verify.py assess --urls "https://a.example/report,https://b.example/story,https://c.example/data"
完了基準:最終レポートで、証拠が実際に独立しており、最新であるかを説明します。
5. 判定
レポートを生成します。
python scripts/verify.py report --claim claim.json --sources sources.json --output report.md
判定は信頼度を示すラベルであり、真偽を判定する絶対的な基準ではありません。レポートでは、収集した証拠が何を裏付けているか、どこに矛盾があるか、何が未確認のままかを記載します。
信頼度の基準
| 判定 | 使用する状況 | 最低限必要な証拠 |
|---|---|---|
| ✅ 検証済み | 主張が、独立した複数の信頼できる情報源によって直接裏付けられており、信頼できる反証が見つかっていない場合。 | 独立した裏付け情報源が少なくとも2つあり、データが最新で、信頼できる反証がないこと。 |
| ⚠️ おそらく正しい | 主張が1つの権威ある情報源、または限られた裏付けによって支持されており、矛盾が見つかっていない場合。 | 公式情報源、学術情報源、レポートが1つある、または強力な情報源が1つと弱い裏付けがあること。 |
| ⚖️ 見解が分かれている | 信頼できる情報源の見解が主張について異なる場合。 | 主張を裏付ける情報源と反証する情報源が少なくとも1つずつあり、どちらも明らかに無関係ではないこと。 |
| ❓ 未検証 | 信頼できる情報源が主張を直接裏付けていない場合。 | 信頼できる情報源がない、弱い言及または無関係な言及しかない、あるいは情報源が主張に触れていないこと。 |
| 📅 古い情報 | 以前のデータ時点では正しかったように見えるものの、新しいデータによって否定または置き換えられている場合。 | 古い情報源による裏付けがあり、新しい情報源と矛盾する、または新しい情報源に改訂されていること。 |
幻覚を避けるルール
情報源が見つからない場合、判定は 未検証 とします。決して false としてはいけません。簡易検索で証拠が見つからなくても、主張が誤りであることの証明にはなりません。何を検索し、何が見つからなかったか、より確かな結論を出すには何が必要かを説明します。
古い情報の検出
主張が年、四半期、出来事の日付、提出対象期間、または特定のデータリリースに言及している場合:
revised、final、updated、restated、latest、および現在の年を検索します。- 古い速報報道よりも、新しい公式データの時点を優先します。
- 古い情報源が裏付けていても、新しい情報源がそれと矛盾する場合は、新しい情報源が古い情報源に取って代わるため、「見解が分かれている」ではなく「古い情報」を使用します。
矛盾の提示
情報源の見解が異なる場合は、両方の立場を提示します。期待される回答に合う側を、黙って選んではいけません。表現、範囲、単位、日付、データ時点の違いを説明します。
主張の種類
| 主張の種類 | 検出の手がかり | 検証方法 | 最適な情報源 |
|---|---|---|---|
| 統計 | 数値、割合、通貨、率、ランキング | 元のデータセットまたは発表を探し、単位、対象期間、地域、改訂情報を確認します。 | 統計機関、提出書類、公式データポータル、監査済みレポート。 |
| 出来事 | 買収した、開始した、発表した、辞任した、勝利した、提出した、承認された | 出来事の発生、日付、当事者、状況を確認します。発表と完了の違いを確認するため、続報も調べます。 | プレスリリース、提出書類、規制当局の通知、信頼できるニュース。 |
| 関係性 | is CEO of、belongs to、owned by、subsidiary of、partnered with | 現在の関係性と有効期間を確認し、関係性に変更がないか調べます。 | 企業ページ、提出書類、登記簿、公式プロフィール、信頼できる人物紹介。 |
| 引用 | 引用符、said、wrote、according to | 元の書き起こし、文書、音声を探し、正確な文言と発言者を確認します。 | 書き起こし、演説、インタビュー、一次資料。 |
| 日付 | 明示された年または日付、founded in、launched on、as of | 正確な日付と、それが開始、発表、完了、公開、または発効のどの日付なのかを確認します。 | 公式年表、提出書類、一次資料、出典を明記した百科事典的資料。 |
情報源の独立性に関するルール
情報源の数は、証拠の数を意味しません。すべてが同じプレスリリースを引用している3つの記事は、独立した確認が3件ではなく、情報源の起点が1つと数えます。
情報源は、異なる組織から発信され、その事実を独自に入手または検証したと思われる場合にのみ、独立しているとみなします。ルートドメインの比較は最初の確認方法として有効ですが、次の点も確認してください。
- 複数のサイトで同じ署名者または通信社が使われていないか。
- 文言と公開日時が同じではないか。
according to the company、according to a press release、reported by Reutersなどの明示的な表現がないか。- 他の媒体の記事を要約したアグリゲーターのページではないか。
- 多くの記事が再利用している公式データがないか。データセットが一次情報源です。
判断に迷う場合は、控えめに数え、制約について説明してください。
連携
- ディープリサーチのワークフロー — 長いレポートを公開する前に、重要な主張を検証します。最も重要な統計、日付、議論を呼ぶ可能性のある主張にこのスキルを実行してください。
- 情報源トラッカー — 検証レポートで使用したすべての情報源を、トピックタグとメモとともに記録し、引用を再利用できるようにします。
- エンティティ調査 — 所有権、経営陣、登録状況、ネガティブなメディア報道に関する主張、制裁リストへの該当を示す情報など、エンティティ固有の主張を資料に含める前に検証します。
よくある落とし穴
- 二次情報源を独立しているとみなす。 複数の記事が同じ情報源を繰り返し参照している場合があります。元の情報源までたどってください。
- 確証バイアス。 主張された値だけを含む検索クエリでは、裏付け情報が見つかりやすくなります。必ず、反証や改訂に関するクエリも少なくとも1つ実行してください。
- 証拠なしに
falseと断定する。 検索で見つからなかった場合、信頼できる情報源が主張を直接否定していない限り、未検証です。 - 情報の鮮度を無視する。 暫定データ、古いプロフィール、発表済みだが未完了の出来事は、古くなっていることがよくあります。
- 対象範囲の不一致。 情報源が似た主張を裏付けていても、国、対象期間、単位、分母、エンティティが異なる場合があります。
- 引用の孫引き。 引用をまとめた記事で引用を検証しないでください。元の書き起こし、動画、演説、文書を探してください。
- ドメイン数を過大評価する。 ドメインが異なっていても、同じ配信記事やプレスリリースを掲載している場合があります。
検証チェックリスト
- 主張が正確に引用され、単一の断定に限定されています。
- 可能な範囲で、主張の種類、重要な用語、期間、対象、指標、値が抽出されています。
- 公式・一次情報、独立した二次情報、反証情報、最新情報を対象に検索しています。
- 各情報源に URL、タイトル、該当箇所、立場、情報源の種類、アクセス日が記載されています。
- ルートドメイン以外の観点からも、情報源の独立性を確認しています。
- 主張を支持する情報源、反証する情報源、補足する情報源をそれぞれ別に集計しています。
- 矛盾する情報は、引用を添えて提示されています。
- 時間に依存する主張について、最新性とデータの時点を確認しています。
- 判定が信頼度の基準に沿っています。
- 根拠のない主張を、証拠の範囲を超えて格上げしていません。
このスキルに該当しないこと
- 一般的な調査エンジンではありません。
- プロパガンダ、バイアス、意図を検出するツールではありません。
- リアルタイムのデータフィードではありません。
- 公式データベース、専門家の判断、法律相談、医療相談、専門分野のエキスパートに代わるものではありません。
- 単独では権威ある情報源ではありません。人が確認するための、引用付き検証レポートを作成します。
ファイル
scripts/verify.py— ルールベースの主張の構造化、URLの独立性評価、Markdownレポートの生成を行います。references/confidence-rubric.md— 判定基準、特殊なケース、例を詳しく説明します。references/source-independence.md— 情報源の起点と転載に関するルールを説明します。templates/verification-report.md— CLI 出力で使用するレポートテンプレートです。tests/test_verify.py— 解析、レポート作成、独立性評価の pytest テストを収録しています。