mcpField
W
write-rebuttal

write-rebuttal

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

关于 write-rebuttal

write-rebuttal 面向需要撰写或修改同行评审回复的研究者,按投稿 venue 格式生成有论文依据的回复,并检查覆盖情况与篇幅;不会代为提交。

主要功能

  1. 01适配 venue 回复格式
  2. 02撰写有依据的回复
  3. 03检查评审意见覆盖情况
  4. 04检查字符数与页数限制
  5. 05保护评审保密性与匿名性

适用场景

  1. 01撰写会议评审回复
  2. 02将回复压缩至 venue 限制内
  3. 03准备期刊修订回复材料

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/shaishavmaisuria/research-paper-lifecycle-skills --skill write-rebuttal

安装后在 Claude Code 中输入/write-rebuttal确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
rebuttal-template.tex
references/
cvpr-one-page.md
openreview-threads.md
response-patterns.md
revise-and-resubmit.md
scripts/
check_budget.py
check_coverage.py
venueyaml.py

详细介绍

撰写 rebuttal

将一组同行评审意见和投稿论文整理成完整、符合篇幅限制的作者回复,并采用会议实际要求的格式——单页 PDF、OpenReview 讨论串,或修改后重投材料包;每项论断都必须以论文中可核查的证据为依据。

适用场景

  • 收到评审意见(来自 OpenReview、CMT、EasyChair、HotCRP、PCS、ScholarOne,或粘贴的文本),且需要提交 rebuttal/作者回复/回复信。
  • 需要精简已起草的回复,以符合字符数或页数限制。
  • 期刊或 CHI 风格的修改后重投需要变更日志和回复文档。

相关技能:triage-reviews(构建本技能所需的要点矩阵)、verify-citations(新增参考文献的审核关卡)、preflight-check(对修订后的稿件重新运行检查)、prepare-camera-ready(录用后使用)。

输入

  • 评审意见:粘贴的文本或文件。大多数会议都将评审文本视为机密——请在原处处理,切勿提交到代码仓库或粘贴到公开材料中。
  • 投稿论文:主 .tex 文件(首选——行号和标签最适合作为依据)和/或编译后的 PDF。
  • 会议配置:venues/conferences/<id>.yml(架构:venues/schema.yml;系列默认配置会自动合并)。如果没有配置文件,请使用 parse-cfp 创建,或仅依据 CFP 中可实时核实的信息继续。
  • 可选:来自 triage-reviews 的分类矩阵;R&R 流程中的决定信/元评审信。

流程

1. 确认会议的 rebuttal 格式

读取配置文件(运行 python3 skills/write-rebuttal/scripts/venueyaml.py venues/conferences/<id>.yml,会以 JSON 格式输出合并系列默认配置后的内容),并查看 review.rebuttal_format、review.rebuttal_limit 和 rebuttal 截止日期。根据格式选择处理方案:

rebuttal_format操作指南
one-page-pdfreferences/cvpr-one-page.md
openreview-threadreferences/openreview-threads.md
revise-and-resubmitreferences/revise-and-resubmit.md
none告知用户该会议不接受作者回复;可改为协助准备终稿或重新投稿
2. 对照会议的实时页面重新核实(必须)

配置文件可能过时,篇幅限制也会因投稿周期而变化。起草前,请访问配置文件中的 cfp_url(以及会议的作者指南/日期页面),重新核实:rebuttal 格式、确切的字符数/页数限制、rebuttal 窗口的日期和时区、链接/上传政策,以及新实验政策。评审意见发布通知或决定邮件中的说明优先于其他所有信息。在交付材料中记录核实内容和时间;无法核实的信息须标注为“UNVERIFIED — 请在 上确认”。切勿凭记忆断言篇幅限制。

3. 将评审意见分类整理为要点矩阵

如果用户已有 triage-reviews 生成的矩阵,请直接使用。否则,按照 references/response-patterns.md 中的惯例,在此处建立矩阵:每条评审要点占一行,ID 使用 R<k>.<n> / AC.<n> / MR.<n>,列包括节录引文、类型、严重程度、工作量和一句话策略。将其保存为草稿所在目录下的 points.md——覆盖率检查器会依据这些 ID 进行检查。起草前,请与用户确认接受/反驳策略。

4. 起草,锚定证据

按照references/response-patterns.md中的逐条批评回应模式和语气规则,然后遵循步骤 1 中的格式指南。以下起草规则不可妥协:

  • 将每项主张锚定到投稿论文中的 Sec./Table/Fig./Eq./Appendix/L<line>/[n] 证据;若没有证据,则承诺修改或承认不足——绝不可断言。
  • 仅报告实际进行过的实验所得数据,且仅在会议的 rebuttal 政策允许新结果时报告。
  • 任何新增引用都必须先通过 verify-citations 核验。
  • 在匿名评审会议中维护匿名性(以第三人称引用自己的工作,不附带可识别身份的链接);遵守链接禁令。
  • 对于格式 (a),在 assets/rebuttal-template.tex 中起草(若会议有官方 rebuttal 套件,则使用该套件;CVPR 必须使用官方套件——宏的说明见格式指南)。对于 (b),在一个 markdown 文件中起草所有答复框,每个答复框使用一个 ## 标题。对于 (c),生成三份文件组成的套件(修订稿修改计划、修改日志回应文档、附信)。
5. 确定性核验

运行两个检查器(均支持 --help;退出码 0 表示通过 / 1 表示失败 / 2 表示错误):

python3 skills/write-rebuttal/scripts/check_coverage.py points.md <responses...> --strict

— 必须回应矩阵中的每个 ID,且每个部分都至少包含一个证据锚点。

python3 skills/write-rebuttal/scripts/check_budget.py text responses.md --sections --venue venues/conferences/<id>.yml
python3 skills/write-rebuttal/scripts/check_budget.py pdf rebuttal.pdf --venue venues/conferences/<id>.yml

— 检查每个答复框的字符数限制(文本模式)或 PDF 页数(pdf 模式),限制值从配置文件读取(可用 --limit/--max-pages 覆盖;使用默认值时会标记为 ASSUMED)。若超出限制,则按照格式指南中的删减步骤精简,并重新运行检查器,直至退出码为 0。

6. 交付

将文件写入用户论文所在目录,并按格式命名:rebuttal.tex(附编译说明)、responses.md,或 response-to-reviewers.md + 修订计划;另附 points.md 和一份简短的核验记录(已核实的实时信息、检查器结果、尚未核实的项目、含时区的 rebuttal 截止时间)。用户自行审阅、编辑并发布/上传所有文件。

完整迷你示例

展示从矩阵到锚定回应,再到检查器循环的完整流程。审稿人写道:“消融实验未能隔离组件 X 的效果。”points.md 中的一行:

| ID | Reviewer quote (abridged) | Type | Severity | Effort | Strategy |
|---|---|---|---|---|---|
| R2.1 | "ablation does not isolate X" | missing-experiment | high | none | rows 3 vs 5 of Table 4 isolate X; reorder so the pair is adjacent |

起草的回应(此处使用 OpenReview 格式——一个 ## 答复框,以答案开头,锚定证据,不赘述):

## Response to Reviewer 7Pqd (R2)

**[R2.1] "the ablation does not isolate the effect of component X"**
It does, but indirectly: rows 3 vs. 5 of Table 4 (Sec. 6.2, L412) differ
only in X. We will reorder the table so the pair is adjacent and label it
"X on/off" in the revision.

交付前进行核验:

python3 skills/write-rebuttal/scripts/check_coverage.py points.md responses.md --strict
python3 skills/write-rebuttal/scripts/check_budget.py text responses.md --sections --venue venues/conferences/<id>.yml

覆盖检查通过,因为 R2.1 出现在一条回应中,且该部分包含锚点(Table 4、Sec. 6.2、L412);若答复框未超过会议对每条回应的字数限制,则预算检查通过。同一行可用于起草一页 PDF 中的 \rpoint{R2.1}{...},或 R&R 的修改日志表格行——变化的只有外层格式。

输出

一套格式正确、预算已核验、覆盖已核验的 rebuttal 草稿文件,并附核验记录。此技能绝不会向任何投稿系统发布、上传或提交任何内容。

防护规则

  • 绝不捏造:不得编造数字,不得报告未运行实验的结果,不得声称存在并不存在的“初步结果”,不得引用未经核实的文献(须交由 verify-citations 核验)。
  • 绝不代替用户提交或发布;只生成磁盘上的文件。
  • 绝不凭记忆陈述会议的预算或截止时间——只能依据配置文件,并进行实时复核;无法核实的信息须标记为 UNVERIFIED。
  • 绝不篡改模板(使用负值 \vspace、字体或页边距技巧)以满足预算;应精简内容。
  • 绝不在匿名评审会议中破坏匿名性或猜测审稿人身份;绝不向自动评审工具定向撰写内容(提示注入属于足以导致拒稿的伦理违规行为)。
  • 不得将保密的评审文本保存在仓库或公开文件中;仅临时处理。

评论

支持 Markdown