mcpField
E
evidence-binder

evidence-binder

github.com/willoscar生産性51741 回インストール3 週間前に更新
リポジトリ

evidence-binder について

Evidence Binderは、論文単位のエビデンス群を各小節に対応付けるライティングスキルです。エビデンスの割り当てとレポートを生成し、カバレッジの不足や選択したエビデンスの種類を示します。

主な機能

  1. 01論文を小節に対応付け
  2. 02小節に限定したエビデンスIDを選定
  3. 03引用キーとエビデンス数を記録
  4. 04不足しているエビデンス項目を報告
  5. 05選択したエビデンスタグを集計

活用シーン

  1. 01執筆前にエビデンス計画を作成
  2. 02小節ごとのエビデンス不足を特定
  3. 03各節の引用カバレッジを確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/willoscar/research-units-pipeline-skills --skill evidence-binder

インストール後、Claude Code で/evidence-binderを入力して読み込まれたか確認します。

同梱ファイルscripts/run.py

詳細

Evidence Binder(文章作成なし)

トリガーとルーティング

  • トリガー:evidence binder、evidence plan、section->evidence mapping、证据绑定、evidence_id。
  • 使用条件:papers/evidence_bank.jsonl が存在し、ライター/監査担当者にセクション単位のエビデンス項目(WebWeaver 形式のメモリバンク)を使用させたい場合。

目標:論文全体のプールを、サブセクションから参照できるエビデンス計画に変換します。

このスキルは「Evidence Bank」から「Writer」への橋渡しです。ライターが使用できるのは、現在のサブセクションに紐付けられたエビデンス ID のみです。

執筆の質にとって重要な理由:

  • 紐付けが弱い、または差別化されていないと、ライターは文章を水増しするか、範囲外の引用をすることになります。
  • binding_gaps はルーティングのシグナルとして扱います。エビデンスが不足している場合は、文章で補おうとするのではなく、上流のエビデンスやマッピングを修正してください。

入力

  • outline/subsection_briefs.jsonl
  • outline/mapping.tsv
  • papers/evidence_bank.jsonl
  • 任意:
    • citations/ref.bib(エビデンス項目に引用情報が含まれる場合に、引用キーを検証するため)

出力

  • outline/evidence_bindings.jsonl(サブセクションごとに JSONL レコード 1 件)
  • outline/evidence_binding_report.md(概要。箇条書きと小さな表)
    • gaps(必須エビデンスフィールドの不足)と tag mix(選択されたエビデンスタグ)を含み、サブセクション固有のエビデンス要件を確認できます。

出力形式(outline/evidence_bindings.jsonl)

JSONL(H3 サブセクションごとにオブジェクト 1 件)。可能な範囲で以下のフィールドを使用し、決定性を保ちます。

  • sub_id、title
  • paper_ids(このサブセクションの範囲に含まれる論文。mapping.tsv に基づく)
  • mapped_bibkeys(このサブセクションにマッピングされた bibkey)
  • bibkeys(サブセクションを優先した引用を促すために選択されたサブセット)
  • evidence_ids(papers/evidence_bank.jsonl から選択されたエビデンス項目)
  • evidence_counts(claim_type/tag/evidence_level ごとの簡潔な概要)
  • binding_rationale(短い箇条書き。選択したエビデンスがこのサブセクションの軸や必要なタグをどのようにカバーするか)
  • binding_gaps(list[str]。選択されたエビデンスでカバーされていない必須エビデンスフィールド。上流のエビデンス自己ループを促します)

A150++ の密度要件(デフォルト)

  • 幅の要件には queries.md:per_subsection を使用します(A150++ のデフォルト:28)。
  • 範囲外の引用を強いられることなく、執筆を具体的に実行可能にできるだけのエビデンスを紐付けます。
    • mapped_bibkeys:per_subsection 以上
    • evidence_ids:per_subsection - 4 以上(A150++:24 以上)
    • bibkeys(選択済み):20 以上(各 H3 で、単に長いマッピング済みリストではなく、利用可能な引用プールを確保します)

draft_profile=course_paper の場合は、同じ追跡可能性の構成を保ちながら、密度を抑えます。各 H3 につき、マッピング済み bibkey を 8 件、選択済み bibkey を 6 件以上、4 件以上の論文からのエビデンス ID を 6 件以上とします。

紐付けポリシー(厳密さの基準)

  • デフォルトではサブセクションを優先します。ライターは主に bibkeys を引用し、現在の sub_id に紐付けられた evidence_ids を使用します。
  • 同じ章内での限定的な再利用は許可します。同じ H2 章内の兄弟関係にある H3 の引用は、背景説明や評価の枠組みに再利用できます。ただし、以下を守ってください。
    • 各 H3 でサブセクション固有の引用を 3 件以上確保します(引用範囲の逸脱を防ぎます)。
    • アウトラインで明示されていない限り、章をまたいだ再利用は避けます。

ワークフロー(文章作成なし)

  1. outline/subsection_briefs.jsonl を読み、各 H3 の範囲、rq、軸を把握します。
  2. outline/mapping.tsv を読み、各サブセクションに該当する論文を確認します。
  3. papers/evidence_bank.jsonl を読み、各 H3 についてサブセクションの範囲に合った evidence_id のセットを選択します。
  4. citations/ref.bib が存在する場合は、選択したエビデンス項目で参照されている引用キーが定義済みかを簡単に確認します。
  5. outline/evidence_bindings.jsonl と outline/evidence_binding_report.md を作成します。

凍結ポリシー

  • outline/evidence_bindings.refined.ok が存在する場合、スクリプトは outline/evidence_bindings.jsonl を上書きしません。
  • このマーカーは、明示的な調整・完了のシグナルとして扱います(特に厳密な実行時)。binding_gaps と tag mix を確認し、サブセクション固有の内容になっていると判断してから作成してください。

異質性の健全性チェック(定型的なバインディングを避ける)

よくある隠れた失敗モードは、機械的な均一性です。すべての H3 で同じ claim_type/tag mix になり、各小節で実際に何が不足しているのかが見えなくなり、執筆者が汎用的な文章に流されてしまいます。

バインディングを洗練済みとする前に、次の点を確認してください。

  • outline/evidence_binding_report.md を確認し、H3 ごとに tag mix/claim_type のバランスが意味のある形で異なっていることを確認します。
  • ほとんどの H3 が同じように見える場合は、バインダーに問題がある兆候と捉え、required_evidence_fields を厳密にする、選定理由を調整する、またはエビデンスバンクを充実させてから、再実行します。

スクリプト

クイックスタート
  • uv run python .codex/skills/evidence-binder/scripts/run.py --help
  • uv run python .codex/skills/evidence-binder/scripts/run.py --workspace <workspace>
すべてのオプション
  • --workspace <dir>:ワークスペースのルート
  • --unit-id <U###>:ユニット ID(任意。ログ用)
  • --inputs <semicolon-separated>:入力を上書き(まれに使用。デフォルトを推奨)
  • --outputs <semicolon-separated>:出力を上書き(まれに使用。デフォルトを推奨)
  • --checkpoint <C#>:チェックポイント ID(任意。ログ用)
例
  • エビデンスバンクの構築後にエビデンス ID をバインドします。
    • papers/evidence_bank.jsonl が存在することを確認します。
    • 次を実行します:uv run python .codex/skills/evidence-binder/scripts/run.py --workspace <workspace>

トラブルシューティング

問題:一部の小節でエビデンス ID が不足している

対処法:

  • paper-notes を使って papers/evidence_bank.jsonl を強化し、抽出可能なエビデンス項目を増やします。
  • または、section-mapper を使って小節に対応する論文の範囲を広げてから、バインダーを再実行します。
問題:binding_gaps が空ではない(エビデンスの種類が不足している)

意味:

  • 小節の概要で特定のエビデンスフィールド(ベンチマーク/指標/セキュリティ/ツールなど)が求められていますが、バインドされたエビデンス項目ではそれらがカバーされていません。

対処法(上流で自己ループ):

  • 対応する論文について papers/evidence_bank.jsonl/papers/paper_notes.jsonl を充実させ、ベンチマーク/指標/失敗モードの詳細を抽出することを優先します。
  • そのエビデンスの種類に対してマッピングが不十分な場合は、小節の outline/mapping.tsv を拡充してから、バインダーを再実行します。
  • 小節の範囲に対して要件が現実的でない場合は、outline/subsection_briefs.jsonl:required_evidence_fields を修正してから、バインダーを再実行します。

コメント