conflict-detector
複数のドキュメント間で矛盾を発見する自己完結型スキル。各ドキュメントは(パス/インラインテキスト/インラインJSONで)読み込まれ、その事実が抽出されます。クロスドキュメントルールエンジンが正規化されたキーでクレームをペアリングし、不一致をフラグ付けします。
必須ワークフロー
依存関係のブートストラップ(初回使用時)
初回実行前に、このスキルのランタイム依存関係を確認します。
- コア: 純粋な標準ライブラリ — インストール不要。
- オプション:
PyYAML(設定/入力が.yamlの場合のみ;JSON入力は標準ライブラリのみで動作します)。
PyYAML が不足しており、入力がYAMLの場合は、ユーザーに伝え pip install pyyaml するかどうかを尋ねてください。明示的な同意なしにグローバル環境にインストールしないでください。
-
YAML設定を読み込む(
config/examples/two_docs.yamlを参照)。 -
すべての
documents[].value/documents[].pathが到達可能であることを確認する。 -
python -m src.cli run --config <path> [--format json,csv,md]を実行する。 -
レベルごとの矛盾数を報告し、
./conflicts/conflicts_<run_id>.*をユーザーに示す。
使用タイミング
- 2つ以上のドキュメント、データセット、または抽出された事実テーブルを相互にチェックし、矛盾がないか確認する必要がある場合。
- ユーザーが「detect conflicts」「find contradictions」「cross-check claims」、または「do these documents agree」と尋ねた場合。
- 単一のクレーム(数値、ステータス、名前付き事実)が複数のソースに現れ、それらを比較する必要がある場合。
- ドキュメントから抽出された事実テーブルの内部的な整合性を監査する必要がある場合。
使用例
# 設定を実行前に検証する(高速、レポートは書き込まれない)。
python -m src.cli validate --config config/examples/two_docs.yaml
# 設定が解決するドキュメントソースを一覧表示する。
python -m src.cli list-docs --config config/examples/two_docs.yaml
# 検出を実行し、出力フォーマットを選択する(デフォルト: json)。
python -m src.cli run --config config/examples/two_docs.yaml --format json,csv,md
レポートは ./conflicts/conflicts_<run_id>.{json,csv,md} に書き込まれます。JSONは機械可読な契約です。
失敗時の処理
- 設定が無効(
validateが非ゼロで終了)— 報告されたフィールドを修正し、再検証してください。スキーマ違反を手動で編集して回避しないでください。 - ドキュメントソースに到達できない — 該当する
documents[]エントリを特定して実行が中断されます。パスまたはインライン値を確認し、再試行してください。 - 矛盾が見つからない — 有効で報告可能な結果(空のレポート)であり、エラーではありません。再実行する代わりに、その旨を明示的に伝えてください。
- 予期しない終了コード — メッセージをそのまま報告し、手動でドキュメントを比較するフォールバックは行わないでください。
検出レベル
| レベル | 種類 | 重大度 | 例 |
|---|---|---|---|
entity | numeric_mismatch, boolean | 高 | speed = 10 vs speed = 20 |
clause | categorical | 中 | status = "active" vs status = "archived" |
argument | categorical (テキスト) | 低 | 矛盾する自由形式のテキスト行 |
制限事項
- 抽出はキーと値に重点を置いています。自由形式の段落は
argumentレベル(行単位の比較)でのみ参加します。 - 単位の正規化はテーブル駆動(
unit_map)です。カスタムの単位ルールは設定を介して提供する必要があります。