- AI 技能
- AI 写作
- 人工智能
- 深度研究
- AI 应用
【免费下载链接】PaperSpine
PaperSpine5 — local-first, evidence-bound paper research, writing, figures, review and delivery. Download: https://wubing2023.github.io/PaperSpine/v5/
导读
本文讲解 PaperSpine5 中的 Publication Surface(发表表面)概念与配套检查工具publication_surface_check.py。它解决的是论文撰写、换版式、审阅和修订中最隐蔽的一类问题:把"内部工作过程"(如审阅状态、用户选图记录、审计标签、工作流文件名)误写进读者能看到的手稿正文。读完本文,你将掌握:判定什么内容属于"生产叙述"、什么属于"科学内容"的边界标准;运行命令行检查器并正确解读其输出;以及在 LaTeX / Markdown / DOCX / PDF 四种稿件表面上执行人工复核的完整方法。
什么是 Publication Surface:论文表面与生产过程的边界
PaperSpine5 的整个写作流程围绕"内部证据"展开——证据账本(evidence ledger)、审计标签、选图确认、门禁检查(gate)都是生产过程中的产物。但论文交付给读者的是科研成果本身,不是制作过程说明。
publication-surface.md 给出了这个核心判定:
Internal IDs, user-interface choices and audit artifacts describe how the paper was produced. They do not belong in the research article.
内部 ID、界面选择记录和审计产物描述的是"这篇论文是怎么做出来的",它们不属于研究论文。这条边界必须在以下每个环节强制执行:
- 起草(drafting)
- 换版式 / 重新排版(assembling another layout)
- 审阅修订(reviewing a revision)
且覆盖面包括:标题区(title area)、摘要(abstract)、页眉(running headers)、图注(captions)、表格、声明(declarations)、科学补充材料(scientific supplements)。换句话说,凡是读者会看到的文本表面(surface),都不得出现生产过程叙述。
工作流中的任务状态(task status)与续作说明(continuation note)同样禁止抄进模板的 author note、draft-status block 或摘要中。这些沟通内容应该留在交付说明(delivery notes)里,而不是论文里。
六类典型"污染"模式:什么必须被清除
根据文档与 publication_surface_check.py 中的正则规则(PATTERNS元组),生产叙述主要有六类可识别形态,下面逐一说明其特征与处理方式。
1. 状态性说明段落:Draft / Review / Delivery Status
不要在手稿中生成独立的"Draft status""Review status""Delivery status"等说明性段落,即使底层状态确实为真。这类沟通必须放到交付说明中。
文档特别强调了一个易被忽视的细节:
Removing the heading while leaving its production narration in ordinary prose does not fix it.
即:删掉"状态"标题、却把生产叙述改写为普通散文继续留在正文里,并不算修复。检查器对应的规则是draft status production block,会同时匹配英文标题(draft/review/delivery/production/manuscript production status)与中文标题(草稿状态/制稿状态/生产状态/审阅状态/交付状态等),即使没有冒号结尾也会命中。
2. 审计标签:[claim:...][evidence:...]等方括号标签
起草与审阅过程中,PaperSpine 的 evidence-grounding 流程会在句子旁标注[claim:C001]、[evidence:S001]、[numeric:N001]等内部引用标签(见 scientific-evidence-ledger.md 与src/skill/references/contracts/evidence-review.schema.json)。这些是证据链的内部指针,不是读者文本。
必须从面向读者的散文中移除:
- claim / evidence / source / numeric / method / outcome / result 方括号标签(规则
inline audit tag) - 审计标识符散文,如
evidence ID: S001(规则audit identifier prose) - 工作流文件名,如
writing_rationale_matrix.md、scientific_evidence_ledger.json(规则workflow artifact name) - 门禁脚本名,如
artifact_check.py、progress_check.py(规则internal gate narration)
对应的测试用例test_publication_surface_rejects_inline_evidence_tags位于 tests/test_readiness_gates.py,它构造了Result [claim:C001] [evidence:S001].的 TeX 稿件,断言校验结果失败且找到audit tag类发现。
3. 用户选图与采纳叙述:把"确认"当论文事实
用户选择了哪些图、是否保存、是否通过视觉检查、打包是否就绪——这些是任务笔记或本地工作包 README的内容,不是论文内容。以下典型叙述属于必须清除的生产叙述:
- "These figures reflect the user-confirmed selections"(规则
user selection production narrative) - "Figure 3 was adopted/approved by the user"(规则
user adoption production narrative) - "the figures use the versions selected in the web workspace"(规则
user selection web workspace narrative) - 行首独立的 "Confirmed user figure choices:"(规则
user selection status) - 中文形态如"图件反映用户已确认的选择"(规则
user selection production narrative (Chinese))
文档明确:用保存的选择去挑选实际图形,而不是在论文里叙述"用户确认了它们"。换版式时,即使新版式沿袭了上一稿的文本,也不能继承旧的"生产状态"段落——旧的制作状态叙述不是不可变的科学文本(这一点在 manuscript-format.md 中再次强调)。
值得注意的实现细节:检查器对user selection/user adoption类规则有一个研究数据豁免——如果同一句中出现participants、respondents、experimental task、clickstream、usability study(或中文受试者/参与者/交互日志/可用性实验)等被试语境,说明该叙述描述的是 HCI 研究中的受试者选择数据,属于科学内容,不会被命中(见 publication_surface_check.py 中_scan函数的上下文豁免逻辑)。但该豁免只针对同一句内的明确被试语境,绝不适用于整篇 HCI 文档。
4. 审阅与门禁状态:review pending、layout checked 等
以下叙述同样属于生产记录而非论文内容:
- "Review pending" 及其中文形态"独立审阅:待完成""待审阅"(规则
review pending production status) - "The layout has been visually checked" 及中文"已目视检查版式"(规则
layout check production narrative) - "the reviewer has now marked the current export complete"(规则
export review production narrative)
5. 投稿声明式叙述:No submission implied
- "No submission is implied" 及中文"不代表已经投稿或发表"(规则
submission disclaimer production narrative)。这是工作状态提示,不是论文内容。
6. 防御性审计语气:堆叠 hedge 与审计短语
除了上述可被正则识别的形态,Publication Surface 还包括一类更微妙的问题——防御性审计语气。最终论文不应反复出现:
- "within the supplied materials"
- "user-authoritative"
- "the evidence ledger shows"
- 在观测结果周围堆叠
may / might / potentially(如 "The supplied evidence appears to suggest that X may potentially improve...")
正确做法遵循 assertive-scientific-writing.md:直接陈述有依据的发现,只在推断性质发生改变的那一个点保留一次清晰的限定。例如把 "CARBON 在评测任务上提升了 Pearson 相关系数" 直接写出,而不是"提供的证据似乎表明 CARBON 可能潜在提升…"。
科学边界必须保留:清除生产叙述 ≠ 删除科学内容
Publication Surface 清理有一个重要的反向约束:不得因为某段内容"源自审计"就删掉真实的科学事实。以下内容必须原样保留:
- 真实的局限性(limitation)
- 作者输入要求(author-input requirement)
- 已披露的不确定性(disclosed uncertainty)
- 可复现性方法(reproducibility methods)
- HCI 研究中的被试选择(participant choices)
- 系统综述的筛选过程(systematic review's screening process)
这些即使提到用户、工作流或审阅,也属于科学内容。文档给出一个"按含义拆分混合段落"的示例:把"the user confirmed these figures"移到工作笔记,但保留一个"未解决的测量单位或研究场景限制"——因为它影响结果解读。
同时,不得编造作者、伦理或招募事实。需要时使用简洁的学术措辞或明确的作者占位符;本地草稿不等于自动具备投稿就绪状态。
PaperSpine 自身的硬性承诺
文档明确了一条产品级规则:
PaperSpine itself must never add an AI-use disclosure, model/tool name, AI-generated label or workflow provenance marker to any reader-facing paper output.
即 PaperSpine 绝不主动向任何读者可见的论文输出中添加 AI 使用披露、模型/工具名、AI 生成标签或工作流来源标记。如果外部投稿系统单独要求披露,该要求应记录在投稿元数据与作者说明中,而不是被静默写进稿件正文——这一职责由 submission-metadata.md 承接(其中ai_use_disclosure字段以provided/not_applicable/blinded三种状态显式管理)。
运行检查器:命令行用法与参数
文档给出的推荐命令(现行用法):
python scripts/publication_surface_check.py --source "<current-manuscript.tex>" --source "<current-manuscript.pdf>" --json要点如下:
--source可重复,必须传入当前实际稿件路径,支持.tex、.md、.docx、.pdf四种格式;如有 DOCX / Markdown 输出也应一并传入,不要依赖历史 output 目录的默认发现逻辑。--json输出结构化 JSON 结果;--markdown输出人类可读报告;--write把报告写入publication_surface_check.md(仅在显式指定时写文件,绝不改写稿件源)。- 退出码:
0表示无命中(仅代表提取成功且规则未命中),1表示存在命中或提取失败。
脚本还保留一个旧版兼容接口:publication_surface_check.py OUTPUT_DIR --markdown --write,它会扫描OUTPUT_DIR/final_paper/main.tex、final_paper/paper.md、output_dir/final_paper.md三个历史候选路径。当前主机推荐显式--source,因为显式路径会替换旧发现逻辑:任何缺失、不支持或不可读的输入都会显式失败,即使其他源是干净的(见validate()函数的文档注释)。
输出结构解读
SurfaceResult数据结构(publication_surface_check.py)包含:
files:实际读取的稿件文件列表ok:无命中且无错误时为Truematches:每条命中的结构化信息(path、行/段落/页号、rule 标签、excerpt 摘要、DOCX 时的 part)findings:人类可读的定位串,形如path:12: inline audit tag; inspect context (...)(PDF 为path: page 3,DOCX 为path: paragraph 5 (word/document.xml))errors:提取失败列表(损坏输入永远不会表现为"干净的论文")extractions:每种格式使用的提取器与文本单元数limitations:脚本自带的三条能力限制声明
四种格式的提取原理与能力边界
检查器对不同格式采用不同的"只读"提取器,理解其边界才能正确解读结果。
TeX:非执行式阅读器
TeX 分支由_Tex类实现(publication_surface_check.py)。它不执行任意 TeX,只支持:
- 字面
\input/\include(并正确解析\includeonly,且循环包含与超过 64 层深度会显式报错) - 简单的零参数宏(
\newcommand等,递归展开深度同样限制为 64) - 剥除注释、
~、转义字符、单字符命令 - 跳过
thebibliography、CSLReferences、filecontents、comment环境 - 对
\label/\ref/\cite/\href等非散文参数只消费参数、不展开,其中交叉引用以REF占位符参与匹配
它不读取.bib/.bbl/.sty/.cls,也不做任意 TeX 展开、类/包代码或条件执行。任何被识别的"字面包含"都必须是可解析的纯字面路径,否则抛错。
Markdown:UTF-8 全文
Markdown 分支读取 UTF-8(含 BOM)文本,仅剥离 HTML 注释(<!--...-->)后整篇扫描。
DOCX:正文段落 + 章节引用的页眉页脚
DOCX 分支用标准库zipfile+ElementTree读取word/document.xml正文段落,并通过sectPr的headerReference/footerReference关系加载被节引用的页眉页脚(会校验 relationship 类型与路径合法性,防止逃逸出包)。可见文本只取<w:t>、<w:tab>、<w:br>节点。位置定位到段落号而非渲染页。脚注/尾注、未被引用的包部件、注释/元数据、纯图片内文字均不扫描——所以 DOCX 必须另做渲染后人工检查。
PDF:文本层提取,不是 OCR
PDF 分支优先使用pypdf,缺失时回退到 PyMuPDF(pymupdf/fitz)。加密 PDF、无页 PDF 直接报错;空白页/纯图页(无可提取文本)会报错而不是 PASS。位置定位到页号。依赖不可用时会明确报"PDF extraction requires pypdf or PyMuPDF",而不是静默跳过。
检查结果的正确解读:PASS ≠ 科学审阅通过
文档与脚本反复强调同一个原则:检查器只是定位候选问题,不重写论文,也不能证明每个改写句都已消除。
脚本__doc__明确指出:
PASS/ok means only that extraction succeeded and these heuristic rules did not match. It is not semantic coverage, scientific review or submission readiness.
LIMITATIONS常量中的三条声明进一步划清了边界:
- 纯启发式规则:无命中 ≠ 语义覆盖、科学正确性或投稿就绪;保留人类科学审阅,改正前先看上下文;不删除、不修改任何手稿文本。
- TeX 提取是字面/简单宏级的,不是任意展开;PDF 提取不是 OCR 也不是视觉审阅;DOCX 定位是段落不是渲染页。
- DOCX 扫描范围有限(见上文)。
因此检查通过后的人工闭环必不可少,文档给出明确要求:
- 完整通读当前稿件全文;
- 独立检查所有渲染页面——包括文本提取器看不到的图形内文字(figure 内部的文字);
- 按"含义"解决每条发现,保留合法科学内容;
- 重新检查受影响的源与输出;
- 把工作笔记和审阅报告排除在本次仅限稿件(manuscript-only)的扫描之外。
在整条流水线中的位置:LaTeX 阶段与最终审计门禁
publication_surface_check.py不是孤立工具,它是 PaperSpine5 生产流水线的门禁成员。
LaTeX 渲染阶段
manuscript_export.py 在导出完成后,会对实际生成的 tex / docx / pdf(sources=[source, tex, docx, pdf])运行validate_surface,把publication_surface_check.md报告写入输出目录,并在 JSON 结果中给出三态状态:no_rule_matches/review_required/extraction_incomplete。非no_rule_matches时会向 stderr 提示"inspect ... and repair/retry the same manuscript"并以非零退出码返回(3为提取不完整,2为需人工复核)。
门禁检查(progress_check)
progress_check.py 在 LaTeX 阶段门禁中会运行publication_surface_check.py并要求退出码为 0(_run_script返回非零即 GATE FAILED,提示返回最终装配、重新渲染、检查并解决读者可见缺陷)。同时,progress_check.py的最终就绪矩阵artifact_portable要求final_paper/paper.pdf存在、latex_report.md通过、publication_surface_check.md通过且无错放工件。它还会检查报告文件是否包含 FAIL/BLOCKED 字样(_report_contains_fail_blocked)。
不过 audit.md 明确警告:不要仅凭已存在的报告文件就认定完成——报告只是证据,稿件本体与编辑器合成结果必须一致。
版本差异
旧版接口(OUTPUT_DIR --markdown --write)与paper_rewriting_output/历史目录仍被兼容读取(见 audit.md、latex.md),但当前主机要求:传入当前实际稿件路径(含请求的 DOCX/Markdown 输出),不依赖历史输出目录默认值——这正是文档命令行示例改用--source的原因。
与其他 skill 参考的联动
Publication Surface 是整个写作/审阅体系中的横切约束,文档明确要求与以下参考配合使用:
- assertive-scientific-writing.md:消除防御性语气、堆叠 hedge,直接陈述有依据的发现。
- manuscript-format.md:在把稿件内容放入模板前先应用 publication-surface 检查;title-page author note、draft-status 字段、页脚或补充页同样是读者可见文本。
- motivation-thread-writing.md:
A -> B -> C箭头链是内部规划记号,绝不可转录成读者句子;"本文为回应反馈而重组"这类生产叙述要移入工作笔记。 - audit.md:将
publication_surface_check.md列为必需审计产物之一,并纳入最终硬门禁顺序。 - submission-metadata.md:外部系统要求披露时走元数据通道,不写进稿件正文。
- SKILL.md:第 5 步"Render, assemble and inspect"与第 6 步"Independent review and repair"都显式要求阅读 publication-surface.md;第 6 步规定独立审阅者必须检查实际当前稿件、图形与渲染,且写作方自检不能替代独立审阅。
自查清单:一次完整的 Publication Surface 清理
- 全文通读:从头到尾读当前稿件(不是只读报告)。
- 标题与摘要:检查标题区、作者注、draft-status 块、摘要是否有状态叙述。
- 页眉页脚与图注:running headers、captions 是否混入"用户已确认"或"review pending"。
- 表格与声明:声明区是否只有真实科学内容,无工作状态提示。
- 科学补充:supplements 是否误放工程执行细节(应移入工作包)。
- 扫描所有渲染页:包括图内文字、DOCX 的 Word 实际渲染。
- 按含义修复:每条发现按语义拆分——生产叙述移入工作笔记,科学内容(局限、方法、披露要求)保留。
- 重新检查:修复源后重新生成受影响输出,重跑检查器确认;若使用了
--write,确认报告未覆盖稿件源。 - 不越权:审计-only 请求只允许定位与建议,不允许擅自替换用户论文("repair the source and regenerate only the outputs authorized by the current request")。
总结
Publication Surface 是 PaperSpine5 保证"论文表面干净"的关键约束:内部 ID、选图记录、审计标签、门禁与状态叙述只属于工作笔记与交付说明,绝不能进入读者可见的标题、摘要、页眉、图注、表格、声明或补充材料。publication_surface_check.py以只读方式扫描.tex/.md/.docx/.pdf四种表面,用启发式规则定位 6 大类生产叙述(含中英文),并在整条 LaTeX 渲染与最终审计流水线中作为硬门禁执行。但工具只是定位器:PASS 只代表规则未命中,最终论文质量仍依赖对全稿与全部渲染页的独立人工审阅,并严格守住"清除生产叙述、保留科学内容"的双向边界。
- AI 技能
- AI 写作
- 人工智能
- 深度研究
- AI 应用
【免费下载链接】PaperSpine
PaperSpine5 — local-first, evidence-bound paper research, writing, figures, review and delivery. Download: https://wubing2023.github.io/PaperSpine/v5/
相关推荐
PaperSpine5 出版面净化(Publication Surface Scrub):把制稿痕迹挡在研究论文正文之外
PaperSpine5 出版面净化(Publication Surface Scrub):把制稿痕迹挡在研究论文正文之外 导读:本文围绕 PaperSpine
AI 技能AI 写作人工智能深度研究AI 应用PaperSpine Publication Surface Scrub 指南:清除稿件中的生产痕迹与审核旁白
PaperSpine Publication Surface Scrub 指南:清除稿件中的生产痕迹与审核旁白 PaperSpine 的 Publication
AI 技能AI 写作人工智能深度研究AI 应用IntelliJ Platform Kotlin UI DSL v2 实战指南:用声明式 Kotlin 构建对话框、设置页与表单化工具窗口
IntelliJ Platform Kotlin UI DSL v2 实战指南:用声明式 Kotlin 构建对话框、设置页与表单化工具窗口 本指南以仓库内 .a
AI 技能AI 写作人工智能深度研究AI 应用
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考