mcpField
C
citation-injector

citation-injector

github.com/willoscar文档处理51740 次安装4 周前更新
代码仓库

关于 citation-injector

citation-injector 根据引用预算报告,为论文草稿补充已有范围内的引用键,并生成修改报告。它面向需要增加引用覆盖、同时避免引入新事实的写作流程。

主要功能

  1. 01按预算补充引用键
  2. 02仅使用指定范围内的键
  3. 03直接更新草稿文件
  4. 04生成通过或失败报告
  5. 05验证全局引用目标

适用场景

  1. 01草稿引用总量低于目标时补充引用
  2. 02减少不同小节间重复使用相同引用

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/citation-injector确认已加载。

附带文件scripts/run.py

详细介绍

引用注入(确定性基线编辑;以预算为约束)

触发条件与路由

  • 触发条件:引用注入、应用引用预算、安全地添加引用、增加引用密度。

目的:当草稿出现以下情况时,让流水线收敛:

  • 局部引用密集,但全局引用不足(唯一键太少);或
  • 在许多小节中反复使用相同的引用。

此技能有意设计为保守且可脚本化:

  • 脚本使用预算报告作为约束,直接编辑 output/DRAFT.md
  • 注入内容不涉及证据(不引入新事实),且只使用每个 H3 已列出的适用范围内的键

输入

  • output/DRAFT.md
  • output/CITATION_BUDGET_REPORT.md(来自 citation-diversifier)
  • outline/outline.yml(H3 id/title 映射)
  • citations/ref.bib(必须包含每个注入的键)

输出

  • output/DRAFT.md(原地更新)
  • output/CITATION_INJECTION_REPORT.md(通过/失败及所做的更改)

不可妥协的要求(不引入新事实)

  • 只能注入预算报告中为该 H3 列出的键。
  • 不得引入新的数字、新的基准或优越性声明。
  • 不得添加诸如 This subsection discusses 或 Next, we examine 之类的叙述模板。
  • 不得在段落中只用 [@a; @b; @c] 作为引用堆砌。

论文语体的注入模式(安全的句式)

将以下内容用作句意参考(进行转述;不要照抄)。

  1. 以分析轴为核心的实例(优先)
  • Systems such as X [@a] and Y [@b] instantiate <axis/design point>, whereas Z [@c] explores a contrasting point under a different protocol.
  1. 括号内提供依据(简短、低风险)
  • The same design pressure appears in nearby systems (e.g., X [@a], Y [@b], Z [@c]).
  1. 指向类别并提示对比
  • Representative implementations span both <cluster A> (X [@a], Y [@b]) and <cluster B> (Z [@c]), suggesting that the trade-off hinges on <lens>.
  1. 指向决策视角
  • For builders choosing between <A> and <B>, prior systems provide concrete instantiations on both sides (X [@a]; Y [@b]; Z [@c]).
  1. 指向评估视角(仍不涉及证据)
  • Across commonly used agent evaluations, systems such as X [@a] and Y [@b] illustrate how <lens> is operationalized, while Z [@c] highlights a different constraint.
  1. 对比而非罗列
  • While many works operationalize <topic> via <mechanism> (X [@a]; Y [@b]), others treat it as <alternative> (Z [@c]), which changes the failure modes discussed later.

反模式(明显的“预算堆砌”语气)

避免使用以下句首(读起来像自动注入):

  • A few representative references include
  • Notable lines of work include
  • Concrete examples include

如果草稿中出现这些句首,应立即改写为上述模式(保持引用键不变)。

放置指导

  • 优先在小节已经陈述具体对比或决策视角的位置插入引用。
  • 如果必须添加新句子或小段落,应放在靠前位置(通常位于第 1 段之后),使其读起来像是定位说明,而非事后补充。
  • 注入内容应针对具体小节:提及小节视角(H3 标题 / contrast_hook),避免同一句话被复制粘贴到每个 H3 中。

工作流

  1. 阅读预算报告(output/CITATION_BUDGET_REPORT.md)
  • 将 Global target (policy; blocking) 视为流水线门禁的 PASS 标准线(根据 queries.md:citation_target 得出;A150++ 默认值:recommended)。
  • 如果 Gap: 0,则无需操作:撰写一份简短的 PASS 报告,然后继续。
  • 否则,对于每个包含建议键的 H3,选择足够的键以填补与目标值之间的差距:
    • 差距较小:每个 H3 添加 3-6 个键
    • A150++ 的差距:每个 H3 通常添加 6-12 个键 优先选择全局未使用的键,并避免在多个 H3 中重复使用相同的新键。
  1. 在正确的小节中注入
  • 使用 outline/outline.yml 确认 H3 的顺序,并确保注入的句子位于正确的 ### 小节中。
  1. 以论文的语气注入
  • 优先使用简短、围绕论述轴线的句子,而不是冗长的枚举句。
  • 注入内容应保持证据中立(不得引入新事实),并避免添加新数字。
  • 在提交注入的键之前,确认该键存在于 citations/ref.bib 中。
  1. 编写 output/CITATION_INJECTION_REPORT.md
  • 记录修改过的 H3 及添加的键。
  • 仅当达到全局目标时,标记 - Status: PASS。
  1. 验证
  • 重新运行验证脚本(如下),再次检查全局目标。
  • 然后运行 draft-polisher,润色残留的注入痕迹(引用键必须保持不变)。

完成标准

  • output/CITATION_INJECTION_REPORT.md 存在,且状态为 - Status: PASS。
  • pipeline-auditor 不再因“唯一引用数量不足”而 FAIL。

脚本(可选;确定性注入器 + 验证器)

通常无需手动运行此脚本;它用于让流水线运行器以确定性方式执行基线注入并验证目标。

快速开始
  • uv run python .codex/skills/citation-injector/scripts/run.py --workspace <workspace>
所有选项
  • --workspace <dir>
  • --unit-id <U###>(可选;用于日志)
  • --inputs <semicolon-separated>(极少需要覆盖;建议使用默认值)
  • --outputs <semicolon-separated>(极少需要覆盖;默认验证 output/CITATION_INJECTION_REPORT.md)
  • --checkpoint <C#>(可选)
示例
  • 生成预算报告后,若要让脚本执行基线注入:
    • uv run python .codex/skills/citation-injector/scripts/run.py --workspace <workspace>

评论

支持 Markdown