关于 preflight-check
preflight-check 是面向作者的 LaTeX 投稿预检技能,用于检查特定会议的拒稿风险。它会确定性地检查页数、模板、匿名信息和必需章节等问题,并生成供作者处理的报告。
主要功能
- 01检查模板和页数风险
- 02扫描匿名审稿信息泄露
- 03检查必需章节与摘要规则
- 04结合会议资料与最新征稿信息
- 05按严重程度和位置报告问题
适用场景
- 01投稿前检查论文
- 02检查双盲匿名处理
- 03排查模板或页数问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ shaishavmaisuria/ research-paper-lifecycle-skills --skill preflight-check安装后在 Claude Code 中输入/preflight-check确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/desk-reject-triggers.mdmanual-checks.mdscripts/check_abstract.pycheck_anonymization.pycheck_sections.pycheck_template.pyrun_preflight.pytexlib.pyvenue_profile.py详细介绍
投稿前检查
在作者点击“提交”前,对 LaTeX 投稿进行确定性的编辑初筛检查。会议明确规定,违反页数限制、篡改模板、匿名信息泄露以及缺少必需章节,都可能导致稿件未经评审直接被拒。这些问题都可以通过机器检查源文件发现。本技能可在仍有时间修正时帮你发现这些问题。
适用场景
- “我的论文可以投稿到 NeurIPS / SIGSPATIAL / CHI / ... 了吗?”
- “检查我的论文是否有可能被直接拒稿的风险” / “运行投稿前检查”
- “我的匿名处理得当吗?” / “检查双盲匿名”
- “我超出页数限制了吗?” / “我的模板符合要求吗?”
- 紧接着运行
tailor-to-venue后,以及任何实际投稿前。
输入
- 投稿的主
.tex文件(包含\documentclass的文件)。 系统会自动跟进\input/\include文件。 - 会议配置文件:
venues/conferences/<venue>-<year>.yml(架构定义见venues/schema.yml)。如果该会议尚无配置文件,请先使用parse-cfp创建一个(或复制最接近的同类会议配置文件并补全)。 - 可选但强烈建议:在
.tex文件旁放置已编译的.log或.pdf文件(文件名主体相同),以便运行页数风险检查。
流程
-
确定会议档案。 在
venues/conferences/下找到匹配的文件。确认年份与目标截止日期周期一致。询问用户投稿的分会场——不同分会场的页数限制不同(例如,SIGSPATIAL Research 为 10 页,不含参考文献;Demo 为 4 页,含参考文献)。使用以下命令检查合并后的档案是否合理:python3 scripts/venue_profile.py venues/conferences/<venue>.yml --track <name> -
必须根据最新征稿启事重新核实关键信息。 档案仅供参考,绝非最终依据;过时的页数限制会导致本技能旨在避免的直接拒稿。获取档案中的
cfp_url并确认:页数限制及其排除内容、匿名级别、模板调用方式、必需章节和截止日期。如果有任何差异,请先更新档案 YAML,并在报告中说明。 -
运行完整的预检:
python3 scripts/run_preflight.py paper.tex \ --venue venues/conferences/<venue>-<year>.yml --track "<track>"如果用户只询问某个维度,也可以单独运行检查器:
脚本 检查内容 运行命令 scripts/check_template.pydocumentclass及选项是否符合档案、按年份区分的 .sty(NeurIPS/ICML/ICLR)、geometry/savetrees/fullpage、对布局尺寸使用\setlength、\linespread<1、负值\vspace模式、栏数、根据.log/.pdf判断的页数限制风险python3 scripts/check_template.py paper.tex --venue <yml> --track <t>scripts/check_anonymization.py\author/\affiliation/\email/\orcid/\thanks内容、致谢章节、资助/基金项目行、可识别链接(GitHub、个人主页)与匿名镜像、自引中的第一人称、hyperrefpdfauthorpython3 scripts/check_anonymization.py paper.tex --venue <yml>scripts/check_sections.py每个 format.required_sections标记:NeurIPS 检查清单、ICML 影响声明、AI 使用声明(ICDE)、COI 声明、CCS 概念和\keywords,以及标题/摘要/参考文献是否存在python3 scripts/check_sections.py paper.tex --venue <yml>scripts/check_abstract.py摘要字数是否符合会议范围(或 150–250 字的常规标准)、是否为单段、摘要中是否含引文/URL、关键词格式(ACM/IEEE Index Terms/LNCS 3–6 个) python3 scripts/check_abstract.py paper.tex --venue <yml>每个脚本都支持以下实用标志:
--json(机器可读)、--strict(警告也视为失败)、--track <substring>、--venues-dir <dir>(档案位于本仓库之外时使用)、--no-inputs。匿名检查器还支持--force,可在单盲会议中也进行扫描。 -
向用户解读严重级别。
ERROR— 该会议明确列出的直接拒稿理由。必须修复。WARN— 需要自行判断(例如,一个负值\vspace很常见;八个则可能是在压缩篇幅)。与用户逐项讨论。INFO— 确认信息和人工检查提示。不要在报告中堆砌这些内容;简要概述即可。 退出代码:0 = 无错误,1 = 发现错误(或使用--strict时发现警告),2 = 参数错误/缺少文件。
-
完成检查器无法执行的人工检查。 源码级检查无法查看已编译 PDF 的元数据、参考文献实际起始位置、补充文件或投稿表单字段(ICDE 的 COI 声明填写在 CMT 中,而非 PDF 中)。与用户一起逐项检查 references/manual-checks.md。
-
修复并重新运行,直到检查通过。 引用每项发现所在的
file:line,提出最小改动方案;如用户提出要求,则直接应用改动,并重新运行受影响的检查器。有关每项检查的依据(哪些会议会因何种问题直接拒稿,以及相关来源),请参阅 references/desk-reject-triggers.md。
输出
每个检查器生成一份发现报告(文本或 --json),也可通过
run_preflight.py 合并生成:严重程度、检查 ID、file:line、消息、摘要计数,
以及判定结果(如果存在任何 ERROR,则为 FAIL;如果只有 WARN,则为 PASS with warnings;否则为
PASS)。将报告以按严重程度排序的修复清单形式呈现给用户,然后提出逐项应用修复。
示例
一篇 NeurIPS 投稿仍保留着作者身份信息和去年的样式文件。运行组合检查器:
python3 scripts/run_preflight.py paper.tex \
--venue venues/conferences/neurips-2026.yml
=============================================================================
PREFLIGHT REPORT paper.tex
venue: neurips-2026 track: main
=============================================================================
-- template --------------------------------------------------------------
[ERROR] template/style-file-year paper.tex:1 — uses neurips_2025.sty; NeurIPS 2026 requires neurips_2026.sty
[WARN ] template/negative-vspace paper.tex:312 — negative \vspace before figure; isolated, likely fine
-- anonymization ---------------------------------------------------------
[ERROR] anonymization/pdf-metadata paper.tex:14 — \hypersetup{pdfauthor=...} leaks the author into PDF metadata
[WARN ] anonymization/author-block paper.tex:22 — \author populated; the .sty hides it at submission, but scrub the source
[WARN ] anonymization/self-citation paper.tex:88 — "our previous work [12]" — rewrite in third person
-- sections --------------------------------------------------------------
[ERROR] sections/missing:neurips-checklist paper.tex — no NeurIPS checklist found; a missing checklist is a desk reject
-- abstract --------------------------------------------------------------
clean.
=============================================================================
VERDICT: FAIL — fix ERRORs before submitting (3 error(s), 3 warning(s), 0 info)
Profiles can go stale: re-verify limits/policies at https://neurips.cc/Conferences/2026/CallForPapers
=============================================================================
呈现方式:先将三个 ERROR 列为编号修复清单
(neurips_2026.sty、移除 pdfauthor 泄露、添加清单),每项附上
对应的 file:line 和单行修改;然后逐项说明 WARN,作为需要自行判断的事项。
在用户依据判定结果采取行动之前,先通过 cfp_url 重新核实页数限制和清单要求,然后在每项修复后重新运行受影响的检查器。
适配你的学科
配置文件可以表示任何领域的会议、期刊和研讨会。添加符合你所在社区规则的 venue YAML 文件——检查器只读取配置文件,因此新增学科只需提供数据,无需编写代码。
防护措施
- 预检干净是必要条件,但并非充分条件——绝不要告诉用户论文“不会被编辑直接拒稿”;应说“未发现可通过机器检查的编辑直接拒稿触发项”。
- 在用户依据页数限制、截止日期或政策采取行动之前,始终通过最新的
cfp_url重新核实(步骤 2 不可省略)。 - 绝不要代表用户向任何系统提交内容;止步于报告。
- 绝不要在报告中粘贴用户论文的大段内容——引用内容最多限于被标记的行。
- 引用问题不在此处的处理范围内:请通过
verify-citations处理。
记忆
此技能采用用户论文目录中的共享 .paper-memory/ 约定,遵循 paper-memory-convention.md。
- 开始时: 读取
.paper-memory/lessons.md(以及profile.yml中的会议级别 / 约束)。不要重复标记已记录且已处理的问题;优先指出作者反复出现的编辑直接拒稿习惯(例如:“你往往会在接近页数限制时压缩版面”)。 - 结束时: 将每项值得记住的发现,按共享格式追加为一条带日期的条目:
- [YYYY-MM-DD] (preflight-check | <scope>) issue -> recommendation(使用reflect-and-improve的reflect_log.py append,它会去重并添加日期)。重复出现于多篇论文的习惯标记为recurring,仅出现一次的问题标记为this-paper。 - 如果
.paper-memory/不存在,则按需创建,并提出将其添加到项目的.gitignore。它仅保存在本地;绝不要上传,也不要复制到此仓库中。