mcpField
P
preflight-check

preflight-check

github.com/shaishavmaisuria文档处理57100 次安装4 天前更新
代码仓库

关于 preflight-check

preflight-check 是面向作者的 LaTeX 投稿预检技能,用于检查特定会议的拒稿风险。它会确定性地检查页数、模板、匿名信息和必需章节等问题,并生成供作者处理的报告。

主要功能

  1. 01检查模板和页数风险
  2. 02扫描匿名审稿信息泄露
  3. 03检查必需章节与摘要规则
  4. 04结合会议资料与最新征稿信息
  5. 05按严重程度和位置报告问题

适用场景

  1. 01投稿前检查论文
  2. 02检查双盲匿名处理
  3. 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.md
manual-checks.md
scripts/
check_abstract.py
check_anonymization.py
check_sections.py
check_template.py
run_preflight.py
texlib.py
venue_profile.py

详细介绍

投稿前检查

在作者点击“提交”前,对 LaTeX 投稿进行确定性的编辑初筛检查。会议明确规定,违反页数限制、篡改模板、匿名信息泄露以及缺少必需章节,都可能导致稿件未经评审直接被拒。这些问题都可以通过机器检查源文件发现。本技能可在仍有时间修正时帮你发现这些问题。

适用场景

  • “我的论文可以投稿到 NeurIPS / SIGSPATIAL / CHI / ... 了吗?”
  • “检查我的论文是否有可能被直接拒稿的风险” / “运行投稿前检查”
  • “我的匿名处理得当吗?” / “检查双盲匿名”
  • “我超出页数限制了吗?” / “我的模板符合要求吗?”
  • 紧接着运行 tailor-to-venue 后,以及任何实际投稿前。

输入

  1. 投稿的主 .tex 文件(包含 \documentclass 的文件)。 系统会自动跟进 \input/\include 文件。
  2. 会议配置文件:venues/conferences/<venue>-<year>.yml(架构定义见 venues/schema.yml)。如果该会议尚无配置文件,请先使用 parse-cfp 创建一个(或复制最接近的同类会议配置文件并补全)。
  3. 可选但强烈建议:在 .tex 文件旁放置已编译的 .log 或 .pdf 文件(文件名主体相同),以便运行页数风险检查。

流程

  1. 确定会议档案。 在 venues/conferences/ 下找到匹配的文件。确认年份与目标截止日期周期一致。询问用户投稿的分会场——不同分会场的页数限制不同(例如,SIGSPATIAL Research 为 10 页,不含参考文献;Demo 为 4 页,含参考文献)。使用以下命令检查合并后的档案是否合理: python3 scripts/venue_profile.py venues/conferences/<venue>.yml --track <name>

  2. 必须根据最新征稿启事重新核实关键信息。 档案仅供参考,绝非最终依据;过时的页数限制会导致本技能旨在避免的直接拒稿。获取档案中的 cfp_url 并确认:页数限制及其排除内容、匿名级别、模板调用方式、必需章节和截止日期。如果有任何差异,请先更新档案 YAML,并在报告中说明。

  3. 运行完整的预检:

    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、个人主页)与匿名镜像、自引中的第一人称、hyperref pdfauthorpython3 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,可在单盲会议中也进行扫描。

  4. 向用户解读严重级别。

    • ERROR — 该会议明确列出的直接拒稿理由。必须修复。
    • WARN — 需要自行判断(例如,一个负值 \vspace 很常见;八个则可能是在压缩篇幅)。与用户逐项讨论。
    • INFO — 确认信息和人工检查提示。不要在报告中堆砌这些内容;简要概述即可。 退出代码:0 = 无错误,1 = 发现错误(或使用 --strict 时发现警告),2 = 参数错误/缺少文件。
  5. 完成检查器无法执行的人工检查。 源码级检查无法查看已编译 PDF 的元数据、参考文献实际起始位置、补充文件或投稿表单字段(ICDE 的 COI 声明填写在 CMT 中,而非 PDF 中)。与用户一起逐项检查 references/manual-checks.md。

  6. 修复并重新运行,直到检查通过。 引用每项发现所在的 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。它仅保存在本地;绝不要上传,也不要复制到此仓库中。

评论

支持 Markdown