用途
Evidence Self-loop(证据自循环,C3/C4 修复 → 重新绑定 → 重写草稿)用于让证据优先的流水线收敛,而不是靠填充性文字凑出内容。它读取中间证据产物(简报、绑定、证据包),产出一份可执行的 TODO 列表,回答三个问题:
- 哪些小节支撑不足?
- 问题出在映射/覆盖(C2)、证据抽取(C3)还是绑定/规划(C4)?
- 为了解决高质量写作的阻塞,应该重跑哪些技能、按什么顺序重跑?
主要能力
- 读取并分析简报、证据绑定、证据草稿等中间工件,并可选读取绑定报告、锚点表、论文笔记、全文索引与查询文件。
- 输出
output/EVIDENCE_SELFLOOP_TODO.md(report 类,始终写入)。 - 提供自循环契约:优先修复上游证据,而非绕过缺口写作。
- 将
blocking_missing视为 STOP 信号:先强化笔记/全文/映射,再重新生成证据包。 - 将绑定中的
binding_gaps视为 ROUTING 信号:或补充已映射论文的证据库、或扩大映射覆盖、或调整required_evidence_fields。 - 提供状态语义:PASS(无 blocking_missing 且无 binding_gaps,可进入 C5 写作)、OK(无 blocking_missing 但有 binding_gaps,可起草但具体性偏弱,建议先修缺口)、FAIL(缺少输入或存在 blocking_missing,不应写填充文字,须修复上游并重跑 C3/C4)。
- 提供路由矩阵(症状 → 根因 → 先检查什么 → 最小上游修复链),目标是修复最早出问题的中间工件。
触发与路由
触发词:evidence self-loop、evidence loop、evidence gaps、binding gaps、blocking_missing、证据自循环、证据缺口回路。
使用方式
分析型工作流(只读分析):
- 读取
queries.md(如存在),仅作为软配置提示(evidence_mode / draft_profile),不覆盖工件契约。 - 读取
outline/subsection_briefs.jsonl,记录每个 sub_id 的轴与required_evidence_fields。 - 读取
outline/evidence_bindings.jsonl,呈现binding_rationale与binding_gaps。 - 可选读取
outline/evidence_binding_report.md,作为绑定的可读视图,不视为独立事实源。 - 读取
outline/evidence_drafts.jsonl,呈现blocking_missing(STOP 信号),检查是否缺少 comparisons / eval protocol / limitations。 - 可选读取
outline/anchor_sheet.jsonl,检查每个小节是否有若干带引用的锚点(数字/评测/局限)。 - 可选读取
papers/paper_notes.jsonl与papers/fulltext_index.jsonl,用于路由修复方向。
输入
- outline/subsection_briefs.jsonl
- outline/evidence_bindings.jsonl(期望含 binding_gaps / binding_rationale)
- outline/evidence_drafts.jsonl(期望含 blocking_missing、comparisons、eval protocol、limitations)
- 可选(改善路由):outline/evidence_binding_report.md、outline/anchor_sheet.jsonl、papers/paper_notes.jsonl、papers/fulltext_index.jsonl、queries.md
输出
- output/EVIDENCE_SELFLOOP_TODO.md(report 类;始终写入)
推荐重跑链(最小)
- 若 C3 证据单薄:pdf-text-extractor → paper-notes → evidence-binder → evidence-draft → anchor-sheet → writer-context-pack
- 若 C2 覆盖薄弱:section-mapper → outline-refiner →(然后重跑 C3/C4 证据技能)
报告内容
- 汇总计数:存在 blocking_missing 的小节数、存在 binding_gaps 的小节数,以及常见失败原因。
- 每小节 TODO:使该小节可写的最小上游修复路径(技能 + 工件)。
路由矩阵要点
- blocking_missing:无可引用 citation key → 检查论文笔记 bibkey 与 ref.bib → C3 paper-notes(确保 bibkey)→ C4 citation-verifier → 重跑 evidence-binder → evidence-draft。
- blocking_missing:仅有标题级证据 → 检查 abstracts 与 evidence_level → C1 literature-engineer 或 C3 pdf-text-extractor → 重跑 paper-notes。
- blocking_missing:无法抽取证据片段 → 检查 evidence_bank 计数与笔记 → C3 paper-notes(更丰富抽取)→ 重跑 C4 packs。
- blocking_missing:缺少具体评测 token → 检查 metrics/benchmarks 字段与 anchor_sheet → C3 paper-notes(抽取评测锚点)→ 重跑 anchor-sheet + evidence-draft。
- 证据包 comparisons 稀疏 → 检查简报 clusters 与 mapping → C2 section-mapper 或 C3 subsection-briefs → 重跑 evidence-draft。
- binding_gaps 提到 benchmarks/metrics/protocol → 检查 binding report 的 tag 分布与 evidence_bank 标签 → C3 paper-notes 或 C2 扩大映射 → 重跑 evidence-binder。
- binding_gaps 提到 security/threat model/attacks → 检查 mapping 与笔记 → C2 扩大映射(必要时 C1 queries)或 C3 丰富笔记 → 重跑 binder/packs。
- 绑定报告在各 H3 上机械一致、tag 方差低 → 收紧 required_evidence_fields、改进 evidence bank 标签,再重跑 binder。
与 writer self-loop 的接口
若 writer-selfloop 因缺少锚点/comparisons 而 FAIL,且对应 writer pack 存在 pack_warnings,应停止并运行本证据自循环:这说明该 pack 不可写。优先一次性修复上游证据缺口,而不是用通用填充修补每个 H3。
脚本与命令
快速开始:
uv run python .codex/skills/evidence-selfloop/scripts/run.py --workspace <workspace>
全部选项:
--workspace <dir>--unit-id <U###>(可选)--inputs <semicolon-separated>(可选覆盖)--outputs <semicolon-separated>(可选覆盖;默认写入 output/EVIDENCE_SELFLOOP_TODO.md)--checkpoint <C#>(可选)
示例(在 C4 packs 生成后生成证据 TODO 列表):
uv run python .codex/skills/evidence-selfloop/scripts/run.py --workspace <workspace>
适用场景
适用于证据优先的调研与撰写流水线,在正式写作前评估证据是否充分,定位缺口来源,并规划最小的上游修复与重跑顺序。
限制
- 不编辑
papers/*、outline/*或sections/*。 - 不虚构新事实或引用。
- 不通过更改阈值来“放松”质量;而是路由到最早需要修复的工件。
- 关于收费、价格、平台支持等信息暂未提供。