关于 citation-injector
citation-injector 根据引用预算报告,为论文草稿补充已有范围内的引用键,并生成修改报告。它面向需要增加引用覆盖、同时避免引入新事实的写作流程。
主要功能
- 01按预算补充引用键
- 02仅使用指定范围内的键
- 03直接更新草稿文件
- 04生成通过或失败报告
- 05验证全局引用目标
适用场景
- 01草稿引用总量低于目标时补充引用
- 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.mdoutput/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]作为引用堆砌。
论文语体的注入模式(安全的句式)
将以下内容用作句意参考(进行转述;不要照抄)。
- 以分析轴为核心的实例(优先)
Systems such as X [@a] and Y [@b] instantiate <axis/design point>, whereas Z [@c] explores a contrasting point under a different protocol.
- 括号内提供依据(简短、低风险)
The same design pressure appears in nearby systems (e.g., X [@a], Y [@b], Z [@c]).
- 指向类别并提示对比
Representative implementations span both <cluster A> (X [@a], Y [@b]) and <cluster B> (Z [@c]), suggesting that the trade-off hinges on <lens>.
- 指向决策视角
For builders choosing between <A> and <B>, prior systems provide concrete instantiations on both sides (X [@a]; Y [@b]; Z [@c]).
- 指向评估视角(仍不涉及证据)
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.
- 对比而非罗列
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 includeNotable lines of work includeConcrete examples include
如果草稿中出现这些句首,应立即改写为上述模式(保持引用键不变)。
放置指导
- 优先在小节已经陈述具体对比或决策视角的位置插入引用。
- 如果必须添加新句子或小段落,应放在靠前位置(通常位于第 1 段之后),使其读起来像是定位说明,而非事后补充。
- 注入内容应针对具体小节:提及小节视角(H3 标题 /
contrast_hook),避免同一句话被复制粘贴到每个 H3 中。
工作流
- 阅读预算报告(
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 中重复使用相同的新键。
- 在正确的小节中注入
- 使用
outline/outline.yml确认 H3 的顺序,并确保注入的句子位于正确的###小节中。
- 以论文的语气注入
- 优先使用简短、围绕论述轴线的句子,而不是冗长的枚举句。
- 注入内容应保持证据中立(不得引入新事实),并避免添加新数字。
- 在提交注入的键之前,确认该键存在于
citations/ref.bib中。
- 编写
output/CITATION_INJECTION_REPORT.md
- 记录修改过的 H3 及添加的键。
- 仅当达到全局目标时,标记
- Status: PASS。
- 验证
- 重新运行验证脚本(如下),再次检查全局目标。
- 然后运行
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