模式指南
五种投稿信模式的每种模式工作流程详细信息。单一命令 表面为scripts/cover_letter.py --mode <mode>;它接受的唯一标志 是 --mode、--manuscript、--letter、--journal(别名 --venue)、 --json 和 --dedup-length(仅用于 journal-fit 模式;参见模式 2 和模式 4)。 align-check 作为 generate 和 optimize 内部的默认功能运行。
模式1:generate
触发:用户有 main.tex 稿件,想要从头开始写一封投稿信。
输入:
--manuscript <main.tex>(必填;\input/\include骨架自动组装)--journal <venue-name>(以下之一:nature、science、cell、ieee-trans、acm、springer-lncs、neurips、icml、cvpr、generic)--json用于结构化输出(事实 blob + 确定性草稿支架)
工作流程步骤:
cover_letter.py --mode generate运行extract_manuscript_facts(标题、摘要、贡献、作者、通讯作者、章节锚)并发出确定性的草稿支架。- 请阅读
templates/<journal>.md了解层级策略和所需声明。 - 阅读
references/LETTER_STRUCTURE.md了解五段支架。 - 请阅读
references/JOURNAL_TIERS.md了解特定于层的成帧规则。 - 克劳德综合了这封信的散文,在每个部分都填充了事实和该层的风格指南。
- 默认对齐检查集成:如果合成的字母保存到文件中,则对其运行
--mode align-check;任何claim_accuracy与claim_strength: unsupported的问题必须在提交信件之前得到解决。 - 对最终字母和表面结果(声明、长度、陈词滥调、语气)运行
--mode presubmission。
通讯作者提取仅信任显式的 \corresponding{...} 或 \correspondingauthor{...} 命令。对于 IEEE \thanks{...} 和 acmart \authornote{...} 中的自由文本,会有意回退到首位解析出的作者:从自由文本猜测 可能把电子邮件本地部分误认作人名。使用这些模板特有形式时,请手动确认通讯作者。
输出:投稿信文本,加上 % PRESUBMISSION 和 % ALIGNCHECK 注释块,列出所有未解决的发现。
模式2:optimize
触发器:用户已有投稿信草稿并希望对其进行改进。
输入:
--letter <cover_letter.md|.tex>(现有草案)--manuscript <main.tex>(推荐;启用对齐检查通过)--journal <venue-name>(告知层级策略)--json用于结构化输出
工作流程步骤:
cover_letter.py --mode optimize运行presubmission_check和(当给出--manuscript时)align_check。- 阅读
templates/<journal>.md了解层级策略。 - 克劳德建议将章节级重写为 LaTeX 注释差异建议(绝不是源代码编辑),每个都锚定到原始信件中的一行。
- 任何引入新声明的重写都必须通过对齐检查(追踪论文稿件证据或标记为用户验证)。
- 对保存到文件的建议重写重新运行
--mode align-check,以确认没有回归。 - 如果本会话还运行了
journal-fit(可选;参见模式集成矩阵),请传入--dedup-length,避免两个检查重复报告同一个模板word_limit;optimize自带的presubmission已通过更细的两级L1检查报告长度。
输出:对原始信件的 LaTeX 评论审查,包括严重性/优先级/建议重写。
模式3:align-check
触发器:用户明确想要验证投稿信相对于论文稿件没有过度夸大。
输入:
--letter <cover_letter.md|.tex>--manuscript <main.tex>--json用于机器可读输出
工作流程步骤:
- 阅读这两个文件(论文稿件由
\input/\include组成)。 - 构建论文稿件锚定集 (
extract_manuscript_facts)。 - 从信件中提取声明候选者 (
build_letter_claim_map);当候选人数量超过详细上限时,声明地图会报告total_claim_sentences和truncated。 - 根据论文稿件 (
verify_letter_against_manuscript) 验证每个声明的引用:完全匹配、段落本地数字+度量共现或 4 克。 - 使用
claim_strength对每个声明进行分类,并使用简化的 ISSUE_SCHEMA 发出结果。 - 交叉检查信件和论文稿件之间AI 披露的一致性:如果一份文件披露了生成人工智能的使用(或不使用),而另一份文件保持沉默,或者两者在极性上相矛盾,则发出
moderatedisclosure_consistency结果。阅读这两个文档时,%注释已被删除,因此注释掉的声明不算在内。
输出:声明准确性结果,每个结果都带有字母引用、论文稿件锚点(或 none)和推荐的 allowed_wording;当两份文件在AI 披露问题上存在分歧时,最多加上一项 disclosure_consistency 调查结果。
模式4:journal-fit
触发器:用户想知道信件的框架是否适合目标地点。
输入:
--letter <cover_letter.md|.tex>--venue <venue-name>(--journal的别名)--json用于结构化输出--dedup-length(可选;默认关闭):当同一会话中的presubmission已通过更细的L1检查报告长度时,跳过本模式自身的字数子检查(参见模式 2 第 6 步和模式集成矩阵)。
工作流程步骤:
- 读这封信。
- 请阅读
templates/<venue>.md了解等级和场地期望。 - 阅读
references/JOURNAL_TIERS.md了解层级策略。 journal_fit_check分为四个子轴:scope_fit:这封信是否点明了目标期刊的范围维度?(顶刊层级只需匹配一个关键词即可为 HIGH,以适应约 350 词的紧张预算;其他层级需要两个。)novelty_framing:新奇的音高是否针对该层进行了校准?evidence_density:声明密度是否符合场地预期?format_compliance:字数(设置--dedup-length时跳过)、必需声明、禁止短语。
- 总体结论=最差子轴(任何地方都是低→低;如果有的话则为中;只有当所有四个都为高时才为高)。
- 如果活动模板的 frontmatter 没有
tier,响应会在warnings中报告(默认采用中档期刊评分)。
启发式限制(向用户披露):journal-fit 是 [Script] 启发式,而不是编辑判断。scope_fit 为每个目标期刊匹配一小组固定关键词,因此范围措辞不同但定位良好的信件仍可能得到 LOW;evidence_density 统计符合 LETTER_CLAIM_PATTERNS 的声明句(与 align-check 使用同一提取器,包括第一人称“we report/show/...”、“our work”、方向+数字、部署及类似声明样式),因此完全避开这些样式的信件仍可能被低估。应把结论视为检查框架的提示,而不是门禁。此模式下不读取稿件内容。
输出:每轴判决(高/中/低),以引号作为证据;总体判决;每轴建议。
模式5:presubmission
触发器:用户只需要声明、长度、陈词滥调和语气检查。
输入:
--letter <cover_letter.md|.tex>--journal <venue-name>(启用模板驱动的声明和长度检查)--json用于结构化输出
工作流程步骤:
- 读取该字母(
errors="replace",因此非 UTF-8 字母不会崩溃)。 - 加载活动模板的 frontmatter (无 PyYAML 依赖项)。
- 扫描:破折号 (
G1)、AI 音调频率 (AI*,2 = 小调 / 3+ = 大调)、多样化 AI 音调词汇 (AI-DIV)、平行段落开头 (S1)、统一句子长度 (S2)、开场陈词滥调 (L2*)、禁用短语(J1*)、通用短语 (J4*)、必需/可选声明 (D-*)、长度 (L1)、段落形状 (G2/G3)。 - 没有检测器的声明会发出信息
D-<kind>-unknown(必需)或被跳过(可选),而不是错误的“不存在”。
输出:演示/声明/语气调查结果列表。
模式积分矩阵
| 模式 | 呼叫 extract_manuscript_facts | 呼叫 align_check | 呼叫 presubmission_check | 呼叫 journal_fit_check |
|---|---|---|---|---|
generate | 始终 | 始终(合成后) | 始终(最终通过) | 可选 |
optimize | 如果提供 --manuscript | 如果提供 --manuscript | 始终 | 可选 |
align-check | 始终 | 始终 | 无 | 无 |
journal-fit | 否 | 否 | 否 | 始终 |
presubmission | 无 | 无 | 始终 | 无 |
generate 和 optimize 的“可选” journal_fit_check 调用始终与同一会话中必需的 presubmission_check 一起运行;应传入 --dedup-length 给该 journal-fit 调用,让长度只通过 presubmission 的 L1 报告一次,而不是重复两次。
路由规则
- 仅当未提供现有字母时才默认为
generate。 - 当同时提供信件和论文稿件且用户未指定模式时,默认为
optimize。 align-check和journal-fit是仅显式的 — 按名称调用它们。- 如果用户要求“查看我的投稿信”而不指定模式,则更喜欢
optimize(它已经运行对齐检查 + 预提交)。