论文协作引擎 Paper Copilot
0 定位与边界(先读本节,再执行任何阶段)
0.1 三条不可协商的原则
- AI 是副驾驶,不是机长(AI is your copilot, not the pilot)。本技能的价值在于让作者在有想法、有实验、有初稿的前提下把论文改得更严谨、更一致、更符合学术共同体标准,不是替作者自动生产论文。
- 引用零幻觉是红线(一票否决)。任何未通过
scripts/verify_citations.py校验的文献,一律不得进入正文,只能以[占位: Author, Year, Venue]形式标注并列入文末「待核实清单」。此规则的依据:GPT-4o 在被要求引用近期文献时,78%–90% 的情况下会编造不存在的参考文献;arXiv 已对使用幻觉参考文献的作者实施禁令。 - 作者保留决定权。修订阶段必须输出「原文 / 修改稿 / 修改理由」三元对照(diff 视图),由作者逐段裁决。禁止静默整篇覆盖。
0.2 本技能是编排层,不是实现层
本技能不重复实现文献检索、成稿、润色、排版等已有能力,而是在正确的阶段把它们编排进流水线。所有具体能力一律按 §5 能力路由表分发。
0.3 三条明确不做的事
- 不代替作者做研究判断(研究问题、贡献声明、结论强度由作者拍板)。
- 不生成未经检索的事实、数据与文献。
- 不把模拟评审意见当作真实评审意见输出给用户。
0.4 适用对象(含明确排除项)
本技能面向 研究生(硕士 / 博士)及青年研究者,覆盖两类产出:学位论文 与 期刊 / 会议投稿。
不面向本科毕业论文、高职毕业论文、继续教育 / 自考论文。理由是问题结构不同:
上述场景的质量评价以规范性、完整性、工作量为主,而非创新性、可复现性与可辩护性;
而本技能的四道闸门——尤其 G1 引用闸门与 S7 的论文级评分表——是为
"要发表、要经得起同行评审"的场景设计的。套用到前者会造成量规错配。
> 本技能实测过同型错配:academic-paper-writing 的质量门禁把综述按实证论文量规判为
> 72/100 不合格(见 references/routing-verification.md §6.1)。体裁与人群不匹配,闸门就会产生假 FAIL。
若确需用于被排除的场景,须显式声明"量规已替换",并改用该场景对应的评价要素;
不得默认沿用 S7 的论文级量表。
1 运行协议(先于一切流程)
| 协议 | 内容 |
|---|---|
| 协议一 · 引用红线 | 任何引用必须携带 DOI、arXiv ID 或可校验 URL(三者至少其一),并通过 scripts/verify_citations.py 校验;未通过者不得写入正文 |
| 协议二 · 闸门后交付 | 未经 §4 四道闸门检验的稿件,不得作为最终交付物 |
| 协议三 · 人工在场 | S6 修订、S7 评审环节必须暂停等待作者裁决;不得跳过作者直接进入下一阶段 |
| 协议四 · 落盘留痕 | 每一阶段的产出物写入独立 .md 文件,修订过程保留 diff 记录,禁止只贴在对话里 |
| 协议五 · 不确定即标注 | 凡无法确认的信息(作者单位、模型版本、数据时效),一律显式标注「需核对」,禁止推断补全 |
| 协议六 · 联网透明 | 联网不可用时降级为模型内部知识,并在产出物头部显式声明「本稿未联网校验」 |
| 协议七 · 交付即附作者待办 | 每一轮产出物交付时,末尾必须附「下一步:需要作者做的工作」,按阻塞程度 P0 / P1 / P2 排序,且每条绑定一个可验收标准。只报告"AI 做了什么"而不告知"作者该做什么",视为交付不完整。依据:作者是 HAC 闭环者,若不知道自己的下一步,流水线即停摆 |
2 阶段管线 S0–S8
九阶段缺一不可。允许跳过阶段的前提是:作者明确指示,且跳过理由写入交付物末尾的「流程说明」。
入口模式:若作者交来的是已有初稿,管线自 S3 进入——S0–S2 无法回放(选题与检索过程已发生且未留痕,事后补齐 RQ/贡献即为伪造)。此时实际可用范围是 S3–S8,须在交付物中显式声明该范围。
结构检查的体裁选择(check_structure.py --type):journal / conference / thesis 需 8 项必需章节(含方法、实验与评估);综述、调研报告用 review(必需 6 项,不含方法与实验——综述没有实证方法学章节,其主干是自定义分类章节)。体裁选错会造成假 FAIL。
| 阶段 | 目标 | 关键动作 | 产出物 | 对应闸门 |
|---|---|---|---|---|
| S0 选题与可行性 | 明确研究问题与贡献 | 提炼 RQ 一句话表述;列 ≤3 条贡献声明;判断是否已有素材(数据/实验/初稿) | S0-选题卡.md(RQ + 贡献 + 素材盘点) |
— |
| S1 文献检索 | 建立可追溯证据库 | 构造 3–6 组关键词;检索近 5 年代表作与经典;每条记录作者/年份/期刊/核心结论 + DOI、arXiv ID 或 URL(至少其一) | S1-文献库.md |
G1 |
| S2 综述合成 | 形成有引用锚定的综述 | 按主题聚类而非按时间罗列;每个论断必须在句尾锚定具体文献;标注争议点与空白 | S2-综述.md |
G1 + G2 |
| S3 大纲与结构 | 防止"局部流畅、全局断裂" | 产出三级标题大纲 + 逻辑依赖表(引言问题 ↔ 方法 ↔ 结果 ↔ 结论的对应关系);模板见 assets/outline-template.md,填完先跑 scripts/check_structure.py |
S3-大纲.md |
G2 |
| S4 分章起草 | 分章写作并保持跨章一致 | 写作顺序 Methods → Results → Discussion → Introduction → Abstract → Conclusion;每章执行"论点—论据—论证—小结";每章结束跑 scripts/check_structure.py 拦截编号断裂 |
S4-正文.md |
G2 + G3 |
| S5 图表与公式 | 多模态内容生成与核验 | 图表标注用「[图1:xxx]」形式;核对图与正文结论一致;公式符号表统一 | 并入 S4-正文.md |
G3 |
| S6 修订与润色 | 标准引导的可控修订 | 严格使用 §3 的(全文 T + 目标段落 p + 指令 q)三元组;按 references/scoring-rubric.md 四维自评,未达标就地重做;通过后输出 diff 等作者裁决 |
S6-修订记录.md + 修订后正文 |
G3 |
| S7 模拟评审 | 自评与反谄媚审查 | 以审稿人视角逐条提问;按 references/paper-review-rubric.md 的论文级评分表打分(先取目标 venue 官方审稿表;取不到才用通用兜底);作者反驳时必须先给出 1–5 分理由评分再让步;结论:硬伤清单 + 修改清单(禁止用 scoring-rubric.md 顶替——那是"单次修订对"的评分细则) |
S7-自评报告.md |
G2 |
| S8 合规与定稿 | 引用审计、声明、格式输出 | 引用逐条终审;生成 AI 使用声明;按目标 venue 规范排版输出;把 S3/S6/S7/S8 的全部检出合并成唯一一份《作者行动清单》(模板见 assets/author-action-list-template.md)——散落在多份报告里的问题会被漏读 |
S8-定稿.md + AI使用声明.md + S8-作者行动清单.md |
G4 |
3 人机协作接口(S6 专用)
> 可填写实例:assets/revision-request-template.md(基于 XtraGPT p31 ReviseQA 提示词,含四区块标记与中英对照)。
修订请求必须采用以下三元组结构,缺一不可(缺全文则上下文不一致,缺指令则修改方向不可控):
【全文 T】 (当前完整稿件,用于保证修改与全文一致)
【目标段落 p】(待修改的原文段落)
【修改指令 q】(自然语言指令,例:"把这段的动机陈述改成从领域缺口切入")
返回格式固定为三元对照:
| 项 | 内容 |
|---|---|
| 原文 | 原段落 |
| 修改稿 | 修改后段落 |
| 修改理由 | 对应哪条写作标准 / 解决了什么论证问题 |
| 影响面 | 本修改是否需要同步调整其他章节(如有,指出具体位置) |
3.1 提交前的四维自检(强制)
生成修订稿后先自评再交作者,依据 references/scoring-rubric.md(XtraGPT 图 15 / p39):
| 维度 | 判定 |
|---|---|
| Instruction Following | 是否遵循指令 |
| Criteria Following | 是否按 20 条标准真正改进 |
| In-Context Ability | 是否只用段落内信息、未夹带外部内容(反幻觉锚点) |
| Agree Revision | 是否值得作者采纳 |
规则:任一维 < 3 分就地重做,第 4 维 < 4 分不提交作者(合格但无价值的修订只会消耗作者的裁决时间)。
3.2 轮次纪律
一轮一裁决。论文 §2.5 明确作者是 HAC 协议中的闭环者,且连续多轮不经人工介入的串联近似于全自动化,与其设计前提相悖。禁止在没有作者介入的情况下自动迭代。
4 四道质量闸门
> 执行细则见 references/quality-gates.md(G2/G3/G4 逐条检查表、G1 四状态与错配三档速查、放行矩阵、教学场景默认档)。本节只给判定原则。
G1 引用闸门(强制、可执行)
- 运行:
python scripts/verify_citations.py --file <稿件路径> --retries 3 --delay 5 --out 引用审计报告.md - 校验优先级:DOI(Crossref → OpenAlex)> arXiv ID > URL(HTTP 探测,拦截虚构仓库/页面)。
- 四种状态必须分开处理,混淆会造成两类事故:
| 状态 | 含义 | 允许的动作 | 禁止的动作 |
|---|---|---|---|
PASS |
已解析并回显真实标题/年份 | 可写入正文 | 不得据此认为"引用恰当" |
NOT_FOUND |
有证据表明不存在(DOI 双 404 / arXiv 200+0 entry / URL 404、410) | 移出正文,改用 [占位: Author, Year, Venue] |
— |
THROTTLED / ERROR |
没有证据——限流或超时,未取得任何存在性信息 | 重跑脚本(加大 --retries / --delay) |
不得据此删改稿件;不得据此指控引用为伪造 |
SKIP |
无 DOI / arXiv ID / URL | 人工核对后补标识符 | 默认视为通过 |
- 铁律:真实文献绝不能被判为
NOT_FOUND。 这是本闸门最严重的失效模式。实测依据:arXiv 限流曾使一篇真实存在的论文(2406.10252,AutoSurvey)被判为NOT_FOUND——若作者照做即误删真实引用。故只有拿到确定性证据才允许判NOT_FOUND;限流与超时一律判THROTTLED。 - 设计原则:误报的代价高于漏报。 误报(真实文献被判不存在)会导致误删且难以察觉;漏报(造假项因超时未被拦截)只须重跑即可补救。因此任何"拿不准"的情形一律判
THROTTLED,绝不降格为NOT_FOUND。 - 疑似论文号错配(
PASS之上的附加提示):脚本在PASS后计算回显标题与条目文字的英文实词重合度(已剔除通用学术词),低于TITLE_OVERLAP_MIN(0.34)时打标并列入「D. 疑似论文号错配 / 标题变更」小节。用于捕捉"论文号写错、指向了另一篇论文"——这种错误存在性校验必然抓不到(该号确实指向一篇真实论文)。实测案例:某稿把 arXiv:2502.14776 引作 "AutoSurvey2: …"(该号真实标题为 SurveyX),重合度 0.00。 - 为何必须剔除通用学术词:实测另一条 [24] 的标题其实已完全改写,但仅因共享 "compounding errors / literature review" 等泛词,未过滤时重合度 0.40 高于阈值而被漏检;剔除后降至 0.20 正确命中。纯词面重合会被泛词刷高。
- 三档处置,强度不同,不得混为一谈:
| 档 | 触发条件 | 含义 | 动作 |
|---|---|---|---|
| D1 强疑错配 | 标题不合 + 条目首作者与回显首作者明确不同 | ① 论文号指向另一篇;或 ② 稿件把非首作者写成首作者(署名/作者序错误) | 必须核对;不得只断言"引用造假" |
| D2 疑似标题变更 | 标题不合 + 首作者吻合 | 同一篇论文改过标题 / 用了简称旧名 | 不得指控造假;人工确认是否同一工作 |
| D3 无从判断 | 标题不合 + 条目未写作者 | 缺少判定依据 | 这是"没有证据",不是"证据表明不同";人工核对 | - 判据是"条目里有没有作者证据",不是"作者重合度阈值"——这与 G1 的整体原则一致:没有证据不等于证明不存在。
- 红线:该标记绝不改变
PASS状态,只提示人工比对。D1 亦可能是作者序错误而非错配(实测 [31]:条目写第 3 作者Chen, N.为首作者,回显首作者为Junyi Hou,而标题PaperDebugger实为吻合)。机器给出的是线索,不是判决。 --offline不等于通过:该模式只抽取标识符,退出码为1,不得据此判定引用可靠。- 局限:
PASS只证明"存在且可访问",不证明引用恰当。语义匹配仍需作者核对。 - 依赖:CrossRef / OpenAlex / arXiv / 目标站点(需联网)。断网降级:改用人工核对清单,并在交付物头部声明「本稿未联网校验」。
- 修改脚本后必须跑回归,两个测试都要跑:
- 离线(秒级、确定性):
python scripts/selftest-mismatch.py,期望 8 项全通过、退出码0。覆盖标题错配三档判定与条目作者抽取。 - 联网:
python scripts/verify_citations.py --file scripts/selftest-references.md --timeout 15 --delay 5 --retries 3,期望NOT_FOUND=3 PASS=3 SKIP=1、退出码1。核心不变量:序号 1、2(真实文献)出现NOT_FOUND即为回归。 - URL 分支不可复现(实测,2026-09-16):同一输入连续两轮得到
PASS 26 / THROTTLED 5与PASS 25 / THROTTLED 6;
6 条THROTTLED全为代理隧道 502,其中 4 条主机在数分钟后隔离探测返回200。
故 URL 类结论一律按"最保守轮次"记账(任一轮THROTTLED即记THROTTLED),
绝不因某轮PASS而回收,且任何THROTTLED都不得作为删改稿件的依据。
若某主机连续两轮 502(如eric.ed.gov),重跑无效,须转人工直连核对。详见references/routing-verification.md§13。
G2 声明-证据闸门
对正文中每一条结论性陈述回答两个问题:
1. 它锚定到本文的哪一份数据、图表或实验?
2. 若依赖外部文献,该文献是否已通过 G1?
无法锚定的陈述 → 降级为推测性表述,或直接删除。注意:审查方与生成方应尽量使用不同模型或不同会话,避免自我确认偏误。
G3 标准-风格闸门
- 依据:
references/writing-standards.md—— XtraGPT 的 20 条分节写作标准(中英对照,含原文评判设问与页码出处,覆盖 Title / Abstract / Introduction / Background / Evaluation / Conclusion 六部分)。 - 执行方式:先判定待检段落属于哪一部分,再从该分组选出 1–3 条相关标准,逐条走原文设问;结论只允许两类——通过 / 不通过 + 具体不通过的设问句。禁止输出"整体不错"等无锚定结论。
- S6 配套自评:
references/scoring-rubric.md提供四维 1–5 分评分细则(来源为 XtraGPT 图 15),用于修订稿的自检,见 §3.1。 - 禁止事项:不得增删标准条目、改写标准含义,或用"我的理解"替代原文设问。这 20 条的价值在于预先固定、不随模型即兴发挥。
- 术语中英对照一致;同一概念全文只用一个译名(对应标准第 15 条)。
- 检查跨章节一致性:引言的问题定义、方法部分、结果、结论必须互相收束。
G4 合规闸门
- AI 使用声明(按目标 venue 模板,Nature / ACL / NeurIPS 要求各异)。
- 生成:
python scripts/gen_ai_disclosure.py --venue "<venue>" --template conference --lang both --out AI使用声明.md - 强制政策核对:声明模板中的措辞随 venue 政策变化,必须填入
--policy-ref与--policy-date并人工确认;加--strict-policy可让缺项直接返回退出码1。 - 此脚本只生成声明结构模板,不逐字复制任何 venue 的政策原文——政策原文须由作者从目标 venue 官网取得。
- 数据可得性声明、利益冲突声明、伦理审查声明(如适用)。
- 反 AI 检测式改写必须标注:如果为通过检测而改写风格,须在流程说明中记录,不得隐去。
5 能力路由表(核心,细则见 references/tool-routing-table.md)
| 环节 | 首选 | 备选 | 依赖条件 |
|---|---|---|---|
| 深度文献调研 | deep-research 系列技能 |
WebSearch + WebFetch | 需联网 |
| 引用真实性与格式 | scripts/verify_citations.py + citation-manager |
ref-format |
需联网(校验) |
| 论文成稿 | academic-paper-writing |
本技能 S4 手工推进 | — |
| 结构诊断与润色 | 本技能 §3 三元组 + G3 | academic-paper-writing 模式 C(诊断改写) |
— |
| 去 AI 味 | qu-aiwei-zh / ai-text-humanizer |
— | — |
| 中文期刊排版输出 | zh-md-to-docx(须预装依赖) |
cn-journal-docx-submission(专用实例,仅限其内置稿件) |
依赖须装入解释器环境 |
| 参考文献格式转换 | ref-format |
citation-manager |
— |
| 理解参照文献 | paper-quick-reader |
— | — |
重要:调用上述技能时,G1/G2 闸门不因能力外包而豁免——外包的是执行,不是责任。
实测状态(2026-09-16,详见 references/routing-verification.md)
- 静态:路由表与本节引用的 10 个技能名全部可解析(
python scripts/check_routing.py)。
但可解析 ≠ 可用——ref-format就是反例。 - 动态实测 9/9(2026-09-16,四轮累计):
| 技能 | 实测结论 |
|---|---|
|qu-aiwei-zh| ✅ 可用(摘要实测 100/100) |
|deep-research| ✅/researchStep 1–5 走通;⚠️/research-deep、/research-report未跑;agent 有 P0 移植缺陷 DR-1(硬编码~/.claude/agents/) |
|academic-paper-writing| ⚠️ 脚本可用,但门禁体裁盲区:方法/结果/讨论为无条件强制项,综述被误判 72/100;**摘要**粗体标签不被识别 → 结论须按体裁重解读 |
|ref-format| ⚠️ 能跑通但输出损坏(arXiv:2406.10252→arXiv:2406, 1025: 2)→ 降级为"仅供参考,须逐条核对" |
|citation-manager| ⚠️ CLI 曾入口即崩(SyntaxError,嵌套 f-string 转义);已本地热修,市场更新可能覆盖 → 保持备选 |
|cn-journal-docx-submission| ❌ 非通用技能:无argparse,硬编码单一稿件路径;任何调用都按默认路径写盘 → 降级为专用实例 |
|zh-md-to-docx| ✅ 通用可用(产出 37,917 B docx);须预装依赖——-h通过但真跑曾rc=1|
|paper-quick-reader| ✅ 可用(41 页 PDF → 126 KB JSON);⚠️ Provenance 串联用法未测 |
|ai-text-humanizer| ✅ 零脚本(纯提示词技能)→ 无脚本风险,但也无法做脚本层校验 | - 环境前置:本机 shell 默认完全没有 coreutils(
date/ls/sed/tr/head/dirname/grep全缺),
已实际影响ref-format(依赖sed)与deep-research的 agent(要求date)。
调用含 shell 步骤的技能前须:export PATH="/c/Program Files/Git/usr/bin:$PATH" - 顺序约束:格式转换必须在 G1 之前;若在 G1 之后转换,转换后必须重跑 G1——
否则被破坏的标识符不会被任何闸门拦住。 - 通用判据:
ok:true/warnings:[]/ 退出码0/ 脚本自检 PASS 都不代表结果可用。
凡"通过/成功"信号,都必须叠加一次针对输出本身的检查,且要问
"这个结论适用于我的场景吗",而不只是"它有没有报错"。 - 规则 4 · 先读入口脚本,再决定能否路由:调用任何外部技能前,必须先读其入口脚本的默认路径与参数。
凡脚本不含argparse或含绝对路径常量,一律视为专用实例,不得当通用后端用;
且调用前必须确认其写盘目标——实测cn-journal-docx-submission的一次探测就直接改写了作者真实投稿目录中的文件
(经核对为幂等重生成、源.md未被改动,非数据丢失,但风险真实存在)。 - 预装依赖的技能不可默认可用:
zh-md-to-docx的-h返回rc=0,真跑却因缺依赖rc=1。
凡声明了requirements.txt的技能,路由前先确认解释器环境已装齐依赖。 - 不再有"未实测项"——9 个已路由技能均已至少完成一次真实调用;
但"实测过" ≠ "可信":上表中 4 项带 ⚠️ / ❌,须按其结论限定用法(详见references/routing-verification.md§12)。
6 反模式清单(禁止项)
- 禁止生成未经检索验证的参考文献。
- 禁止把"局部流畅但全局断裂"的段落直接纳入稿件——局部有引用锚定不代表全稿有效。
- 禁止将模拟评审意见当作真实评审意见。
- 禁止无披露使用 AI 生成内容(尤其注意幻觉参考文献已被 arXiv 明确禁止)。
- 禁止静默整篇覆盖作者的原文。
- 禁止在信息缺失处用"看起来很合理"的内容填充(含作者单位、模型版本、统计数值)。
7 本技能目录资源
paper-copilot/
├── SKILL.md (本文件:协议、管线、闸门、路由、前置条件、限制声明)
├── CHANGELOG.md (版本变更记录)
├── _icon.png (技能图标,512×512 PNG;SkillHub 上架材料)
├── references/
│ ├── tool-routing-table.md (S0–S8 逐阶段的工具/技能路由与选择依据)
│ ├── writing-standards.md (G3 依据:XtraGPT 20 条分节写作标准,中英对照 + 页码出处)
│ ├── scoring-rubric.md (S6 自检:XtraGPT 四维 1–5 分评分细则 + 原论文用例)
│ ├── paper-review-rubric.md (S7 依据:**论文级**评分表,来源为 ACL ARR 审稿表 + NeurIPS 审稿指南)
│ ├── quality-gates.md (G2/G3/G4 可操作检查表 + G1 四状态/错配三档速查 + 放行矩阵)
│ ├── routing-verification.md (路由实测记录 §1–§13:静态 10/10 可解析、动态 9/9、G1 不可复现性)
│ └── pilot-run-log.md (真实稿件 S0–S8 试跑记录:发现、脚本修复、计时与人工介入)
├── scripts/ (全部仅用 Python 标准库,零第三方依赖)
│ ├── verify_citations.py (G1 引用闸门:DOI / arXiv / URL 三级校验 + 错配三档提示)
│ ├── selftest-mismatch.py (错配判定离线单元测试,纯函数、秒级、确定性)
│ ├── check_routing.py (§5 路由可验证性:解析引用的技能名,报告缺失/改名/已隔离)
│ ├── check_structure.py (S3/S4 结构闭合性检查:CHK-01…CHK-10)
│ ├── gen_ai_disclosure.py (G4 合规闸门:按 venue 模板生成 AI 使用声明)
│ ├── selftest-references.md (G1 联网回归夹具,含期望结果)
│ ├── selftest-structure.md (结构检查回归夹具,故意留缺陷)
│ │ ── 以下 3 项为**自测产物**(非运行必需,保留作证据):
│ ├── .selftest-disclosure.md (gen_ai_disclosure.py 自测输出)
│ ├── .selftest-structure-report.md (check_structure.py 自测输出)
│ └── selftest-references-引用审计报告.md (verify_citations.py 对夹具的输出)
└── assets/
├── outline-template.md (S3 大纲模板:RQ/贡献编号 + 证据映射 + 逻辑依赖表)
├── revision-request-template.md(S6 修订请求模板:XtraGPT p31 ReviseQA 四区块格式)
└── author-action-list-template.md(交付模板:把 S3/S6/S7/S8 检出合并成**唯一**交给作者的待办清单)
已验证情况
G1 引用闸门
- verify_citations.py 已在真实综述稿件上跑通:39 条参考文献全部抽取成功,可校验标识符覆盖率 92.3%(36/39);无法校验的 3 条为 EMNLP 会议论文与无 URL 的综述,正确判为 SKIP。
- 回归自测(scripts/selftest-references.md)实测结果:NOT_FOUND=3 / PASS=3 / SKIP=1,退出码 1——虚构 DOI、虚构 arXiv ID、虚构 GitHub 仓库三类造假均被拦截。
- 真实稿件试跑暴露并修复了 P0 缺陷:arXiv 限流(HTTP 429)曾被误判为 NOT_FOUND,使一篇真实存在的论文被判为伪造。首轮 39 条中 18 条"未通过"没有一条真的不存在。已引入 THROTTLED 状态 + 退避重试修复;修复后同一夹具由 NOT_FOUND=2 … THROTTLED=1(既误判真实文献、又漏掉造假项)回到 NOT_FOUND=3 / PASS=3 / SKIP=1。详见 references/pilot-run-log.md。
- 标题错配检查已升级为三档判定(2026-09-16 第三轮)。首版只比标题,无法区分"论文号错配"与"改名/简称",且会被通用学术词刷高而漏检(实测 [24] 未过滤 0.40 漏过、剔除泛词后 0.20 命中)。现叠加首作者证据分为 D1 强疑错配 / D2 疑似标题变更 / D3 无从判断三档,并用 scripts/selftest-mismatch.py 以 4 条真实数据离线锁定(8 项断言全通过)。过程中修正了一个错误结论:先前据标题把 [31] 判为"假阳性",加入作者比对后发现其回显首作者与条目不符(成因是作者序错误,非错配),据此收紧了 D1 的措辞。
- 真实稿件第三轮实测(同稿 39 条):PASS 33 / SKIP 3 / THROTTLED 3;D 节 4 条 = D1 两条([21] 确证错配、[31] 作者序错误)+ D2 一条([24] 改过标题)+ D3 一条([32] 条目无作者)。3 条 THROTTLED 均为 GitHub 链接经代理失败(Tunnel connection failed: 502),属环境问题而非稿件问题,须重跑,不得删除。
S3/S4 结构检查
- check_structure.py 回归自测(scripts/selftest-structure.md,故意留缺陷)实测:FAIL=6 / WARN=3 / INFO=2,退出码 1。
- 关键约定已实测验证:图/表/公式标题必须独占行首。测试稿把「图1」写在句中("如图1所示"),脚本正确判为引用未定义编号并 FAIL;写成行首 图1:说明 才计入定义。
- CHK-10 漏检已修补:原实现只在「引言有贡献编号」时才比对,导致"摘要与结论有 C1、引言完全没有"这一结构不一致被放过。现补 WARN 分支,修补后回归计数不变(仍 FAIL=6 / WARN=3)。
- 真实稿件试跑又暴露三项缺陷并已修复:① 未映射章节被静默并入上一章节,使一篇综述的 CHK-08 虚报 引言 90%(实际 8%)——现改为独立 _extra:: 桶;② 缺 review 体裁,导致综述因无"方法/实验"被误报 FAIL;③ **摘要** … 粗体标签形式不被识别,误报"缺少摘要"。
- 跨实现交叉验证(2026-09-16):另一独立实现 academic-paper-writing/scripts/paper_check.py 犯了与上述 ②③ 完全同型的两个错误——它把"方法/结果/讨论"设为无条件强制项(综述必然被扣 22 分且无体裁参数可调),且 **摘要** 不匹配其摘要正则(误扣 6 分)。这反证本技能那两处修复不是过度设计:两个独立实现落在同一个坑里,说明这是该类检查器的普遍失效模式。
真实稿件试跑(2026-09-16,详见 references/pilot-run-log.md)
- 稿件:《大模型与智能体辅助学术论文撰写:2026年研究综述》,288 行 / 16,811 非空白字符 / 39 条参考文献;入口模式为已有初稿(S3–S8,S0–S2 不可回放)。
- 共 14 项发现:8 项属脚本缺陷(已修)、6 项属稿件真实缺陷(待作者处理)。第 8 项为标题错配检查的漏检(见上),在第三轮才暴露。
- 最终判定:结构检查 FAIL 2 / WARN 1(2 项均为稿件真实缺陷:图1 声称存在但全文无图、表1 标题不规范);S6 修订 1 轮四维自评 5/5/5/5 待作者裁决;S7 产出 7 项硬伤 + 9 项修改;G4 条件通过。
- 核心教训:全部 8 项脚本缺陷在既有回归夹具上均为绿,一上真实稿件立刻暴露——"回归通过"只证明没退化,不证明能用。
G4 合规闸门
- gen_ai_disclosure.py 已冒烟验证:--help 与会议论文中英双语用例均正常,退出码 0;--strict-policy 在政策出处或核对日期缺失时返回 1。
TODO(骨架待补,按优先级)
- [x] ~~获取 XtraGPT 原文~~ —— 已完成 2026-09-16。原始 PDF:
<作者本地资料目录>/XtraGPT-arXiv-2505.11336v4.pdf(41 页,v4,已校验为真实版本);可检索全文:同目录XtraGPT-2505.11336-fulltext.txt - [x] ~~
references/writing-standards.md~~ —— 已完成 2026-09-16。20 条标准全量中英对照,含原文评判设问与页码出处(p5 Table 2 为总表,pp.34–38 附录 F 图 9–14 为逐条细则)。Conclusion 第 2 条原文仅一句,已目视核对非提取遗漏 - [x] ~~
references/scoring-rubric.md~~ —— 已完成 2026-09-16。四维 1–5 分评分细则(XtraGPT 图 15 / p39)+ 原论文用例(图 17 / p40),已逐字校验(定义 4/4、锚点 20/20、用例 3/3)。定位已纠正:该细则评的是"单次修订对",归 S6/G3,不归 S7;S7 的论文级评分表仍无可靠来源 - [x] ~~
references/paper-review-rubric.md~~ —— 已完成 2026-09-16。论文级评分表,来源为两个目标 venue 官方文档(抓取日期均为 2026-09-16):① ACL Rolling Review Review Formhttps://aclrollingreview.org/reviewform;② NeurIPS 2025 Reviewer Guidelineshttps://nips.cc/Conferences/2025/ReviewerGuidelines。含表 A(ARR:Soundness / Excitement / Overall Assessment 九档 / Confidence / Reproducibility)、表 B(NeurIPS:Quality / Clarity / Significance / Originality 1–4 + Overall 1–6)、两表维度对照、填写规则与 S7 报告模板。已显式声明与scoring-rubric.md的分工,并注明 NeurIPS 维度逐年变动、不得跨年份混用档位 - [x] ~~
references/quality-gates.md~~ —— 已完成 2026-09-16。G2/G3/G4 逐条可操作检查表(含触发词表、三类判定与动作、输出模板)+ G1 四状态与错配三档速查 + 放行矩阵(交付判定的唯一依据)+ 教学场景默认档 - [x] ~~
scripts/check_structure.py~~ —— 已完成 2026-09-16。S3/S4 结构闭合性检查 CHK-01…CHK-10(标准库实现,无第三方依赖)+scripts/selftest-structure.md回归夹具,实测FAIL=6 / WARN=3、退出码1。附带修补 CHK-10 漏检分支 - [x] ~~
scripts/gen_ai_disclosure.py~~ —— 已完成 2026-09-16。按 venue 生成 AI 使用声明(五种模板 + 中/英/双语),含强制政策核对块;--strict-policy缺政策出处或日期时返回1。注意:只输出声明结构模板,不逐字复制各 venue 政策原文 - [x] ~~
assets/outline-template.md~~ —— 已完成 2026-09-16。含 RQ/贡献编号约定、三级标题大纲、逻辑依赖表(引言问题 ↔ 方法 ↔ 结果 ↔ 结论闭合)、图表公式清单与占位引用清单;编号约定与check_structure.py逐项对齐,填完大纲即可先跑一次结构检查 - [x] ~~
assets/revision-request-template.md~~ —— 已完成 2026-09-16。基于 XtraGPT p31 Figure 5(Prompts for Generating ReviseQA)逐字提取,保留四区块标记(BEFORE IMPROVEMENT / QUESTIONS / AFTER IMPROVEMENT / EXPLANATION)+ 中英对照。新增模式 A 基准 / 模式 B 作者区分:原提示词刻意要求 QUESTIONS 不点明标准(为测量模型的自主对齐能力),此设计不适合实际投稿修订,故 S6 默认走模式 B - [x] ~~用一份真实稿件跑通 S0–S8 闭环~~ —— 已完成 2026-09-16。稿件为《大模型与智能体辅助学术论文撰写:2026年研究综述》,入口模式为已有初稿(S3–S8)。记录见
references/pilot-run-log.md:13 项发现(7 项脚本缺陷已修、6 项稿件缺陷待处理)、逐阶段计时、人工介入统计。未覆盖:S0–S2(需一次全新选题试跑)、协作技能路由 - [x] ~~§5 协作技能路由实测~~ —— 2026-09-16 完成静态 + 4 个动态实测。静态 10/10 可解析(新增
scripts/check_routing.py);动态:qu-aiwei-zh可用、deep-research本地层可用、academic-paper-writing脚本可用但门禁体裁盲区、ref-format输出损坏。详见references/routing-verification.md。暴露 4 类此前未知的问题:① 本机 shell 无 coreutils,含 shell 步骤的技能直接失败;② 格式转换会破坏标识符 → 必须在 G1 之前或重跑 G1;③ok:true/退出码 0 不代表输出正确;④ 外部技能的结论可能与你的稿件体裁不匹配(paper_check.py把综述误判 72/100) - [x] ~~S0–S2 用全新选题跑通~~ —— 2026-09-16 完成。选题「AI 使用规范与质量闸门」(作者裁决),入口模式为全新选题——此前唯一一次试跑为"已有初稿"入口,S0–S2 不可回放,本次是该缺口第一次被真正关闭。产物目录:
s0-s2-pilot-2026-09-16/(S0-选题卡.md、S1-文献库.md、S1-引用审计报告.md、S2-综述.md、ai-gate-framework/{outline,fields}.yaml)。S1 的 22 条来源过 G1:PASS19 /ERROR1 /THROTTLED2 /NOT_FOUND0(累计 61 条次,NOT_FOUND始终为 0)。顺带关闭两项缺口:deep-research的/research全流程(Step 1–5 走通)与Task/Agent等效性核对。记录见references/routing-verification.md§10–§11 - [ ] 剩余已知短板:
- [x] ~~路由动态实测 4/10~~ —— 已完成 2026-09-16(第四轮):路由表内 9/9 活跃技能全部至少完成一次真实调用(另 1 个
academic-paper-optimizer已显式隔离,不计入)。净修正 4 项:①cn-journal-docx-submission被证伪为非通用技能(无argparse、硬编码单一稿件路径)→ 降级为专用实例;②zh-md-to-docx升级为通用可用(须预装依赖,-h通过但真跑曾rc=1);③citation-manager的 CLI 曾入口即崩(嵌套 f-stringSyntaxError)→ 已本地热修,市场更新可能覆盖,保持备选;④paper-quick-reader可用、ai-text-humanizer为零脚本提示词技能。详见references/routing-verification.md§12 - [ ] ①
deep-research的/research-deep与/research-report未跑(/research已走通);其 agent 存在 P0 移植缺陷 DR-1——硬编码安装根~/.claude/agents/web-search-modules/,本机不存在,调用前必须做安装根路径适配,否则其自述"强制不可跳过"的模块加载环节会静默失效 - [ ] ② G1 尚有 2 条 GitHub 类引用(
[12][33])受代理隧道间歇故障影响未结清,待网络恢复后重跑(只重跑,不得删改) - [ ] ③ S1 的两个质量缺口(多数条目缺作者/期刊名、G 组教学文献缺口)已写入
outline.yaml的gaps段
8 限制声明(交付时需一并告知作者)
- 技能无法弥补基座模型的推理缺陷。实证研究显示,基础语言模型而非智能体框架贡献了 41.4% 的性能方差,且智能体在 68% 的推理轨迹中忽视了可用证据,仅 26% 会根据反面发现修正信念。本技能管流程与校验,不管能力增强。
- 外部 API 依赖,且限流会影响结论完整性。G1 依赖第三方服务,实测 arXiv 会限流(429)与超时。此时脚本判为
THROTTLED而非NOT_FOUND,结论不完整,必须重跑——不得据此删改稿件。需保留人工复核路径。 - 已有初稿只能从 S3 进入。若作者未在 S0–S2 留痕,选题、检索与综述合成过程无法回放,RQ 与贡献的事后补齐等同于伪造。交付时须显式声明本次实际覆盖的阶段范围。
- 全局有效性不可保证。本技能能把引用锚定到局部证据,但一个段落有据可依,不意味着整篇稿件被底层研究过程充分支撑。
- S7 的评分依赖外部量表,且必须回源核对。
paper-review-rubric.md提供的是通用兜底:目标 venue 若有自己的审稿表,一律优先用它。量表档位随 venue 政策逐年变动(如 NeurIPS 2024 与 2025 的维度名与总分刻度均不同),不得跨年份混用。且模拟评审不得给出录用概率——那不属于本技能能提供的信息。 - 教学 / 培养场景默认档。面向研究生等学生使用者(或由导师 / 培养单位代为运行时),G1、G2 设为强制且不可关闭,并保留修订留痕,以便评阅过程本身。若用于被排除的场景(本科 / 高职 / 自考),须先按 §0.4 声明"量规已替换"。
9 安装与前置条件
9.1 本技能自身:零第三方依赖
scripts/ 下全部脚本仅用 Python 标准库(urllib / json / re / argparse / difflib 等),
可在任意 Python ≥ 3.9 直接运行,无需 pip 安装。实测解释器:Python 3.13.12。
9.2 运行 G1 需要联网
verify_citations.py 依赖 Crossref / OpenAlex / arXiv / 目标站点。
断网时降级为人工核对清单,并在交付物头部声明「本稿未联网校验」(协议六)。
另见 §4 G1 的 URL 分支不可复现说明——THROTTLED 属环境性波动,不得作为删改依据。
9.3 被路由技能的依赖(非本技能依赖,但决定路由是否可用)
| 技能 | 依赖情况 | 实测状态 |
|---|---|---|
zh-md-to-docx |
requirements.txt:markdown-it-py / python-docx / lxml / Pillow / PyYAML / jsonschema |
✅ 已装入隔离 venv …\binaries\python\envs\default;须用该解释器运行 |
citation-manager |
其自身声明 requests 等 |
⚠️ 已本地热修 1 处 SyntaxError(市场更新可能覆盖) |
cn-journal-docx-submission |
无声明依赖(标准库) | ❌ 非通用:硬编码单一稿件路径、无 argparse,仅限其内置稿件 |
paper-quick-reader |
其自身 requirements.txt |
✅ parse_pdf.py 实测可跑 |
deep-research |
其 agent 要求 date 等 coreutils |
⚠️ 本机 shell 无 coreutils,调用前须补 PATH(见 9.4) |
ai-text-humanizer |
零脚本(纯提示词技能) | ✅ 无依赖,也无脚本层校验 |
9.4 环境前置(本机实测结论,属全局约束)
本机默认 shell 完全没有 coreutils(date / ls / sed / tr / head / dirname / grep 全缺)。
调用含 shell 步骤的外部技能前须先补:
export PATH="/c/Program Files/Git/usr/bin:$PATH"
9.5 发布卫生与上线自检
- 本技能包不含
__pycache__/.pyc/.pyo/.tmp/.bak;
目录层级 ≤ 2(SKILL.md;references/*;scripts/*;assets/*)。 - 上线前自检 —— 两道都要跑,缺一不可:
skill-publishability-audit的静态审计(A1–A7:frontmatter 是否合法 YAML、内部引用死链、
包卫生、目录层级、脚本语法):
bash python "<skills>/skill-publishability-audit/scripts/audit_skill.py" "<paper-copilot 路径或 zip>" # 期望:结果:通过(passed),退出码 0- marketplace 官方包校验器(目录深度与发布卫生):
bash python "<zh-md-to-docx>/scripts/check_package.py" "<paper-copilot 路径或 zip>" # 期望输出:{"status": "passed", "errors": []}
-
回归自检(每次改动
scripts/后必跑,见 §4):
bash python scripts/selftest-mismatch.py # 离线,期望 8 项全通过、rc=0 python scripts/check_routing.py # 路由可解析性,期望 rc=0 -
发布前脱敏(1.0.1 新增,改动文档后必做):
check_structure.py等自检脚本会把
--file传入的路径原样写进报告。因此跑自检时一律用相对路径(--file scripts/…),
不要用绝对路径调用;否则报告头会带上作者本机路径,随包发布即泄露。
另注意自检默认输出名为<输入名>-结构检查报告.md,会落在包内——跑完需确认没留下临时报告。
脱敏检查(正则扫描,先剥离 URL 再匹配盘符路径与用户名;把 PAT 换成自己的
用户名 / 工作目录名 / 机构缩写等关键词):
bash
python - <<'PY'
import io, os, re
SK = "." # 包根目录
PAT = "<用户名>|<工作目录名>|<机构缩写>" # 换成自己的关键词
URL = re.compile(r"[A-Za-z][A-Za-z0-9+.\-]*://\S+")
LEAK = re.compile(PAT + r"|[A-Za-z]:[\\/]")
for dp, dn, fn in os.walk(SK):
dn[:] = [d for d in dn if d != "__pycache__"]
for f in fn:
p = os.path.join(dp, f)
for i, l in enumerate(io.open(p, encoding="utf-8", errors="ignore").read().splitlines(), 1):
if LEAK.search(URL.sub("", l)):
print(f"{p}:{i} {l.strip()[:100]}")
PY
# 期望:除 frontmatter 的 `author:` 署名外,无任何输出
> 注意:本文件(SKILL.md)自身不得写入真实用户名 / 工作目录名——包括在示例代码里。
> 1.0.1 修订时踩过这个坑:脱敏示例中直接写了真实关键词,导致示例本身成为新的泄漏源。