mcpField
O
orchestrate-paper

orchestrate-paper

github.com/shaishavmaisuria生产力5791 次安装4 天前更新
代码仓库

关于 orchestrate-paper

orchestrate-paper 协调研究论文各阶段的专业技能,从构思和实验推进到准备好投稿的材料。它维护可审查的工作区记录,并在每个阶段关口要求可衡量的验证和作者确认。

主要功能

  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 orchestrate-paper

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

包含的文件

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

references/
pipeline-map.md
verification-signals.md
scripts/
pipeline_state.py

详细介绍

统筹论文工作流

指挥者。作者带来一个技术构想、实验结果和目标会议,或者说“帮我选一个”。此技能设定目标(“在截止日期 D 前完成可提交至会议 X 的论文”),并在整个生命周期中运行目标 → 计划 → 执行 → 验证 → 反思循环:规划要运行哪些子技能以及运行顺序,调用它们,在每个阶段关卡都与作者确认,并使用外部、可衡量的信号——而非自行判断——确认每个阶段确实推动了论文进展,然后再继续。

它不会替作者写论文,也绝不会提交任何内容。它协调各个专长工具(每个专长工具本身都是一项技能),并在 paper-workspace/ 中保留持久、可供审阅的记录,让作者可以随时暂停、检查、否决并恢复。

此技能在每个检查点都遵循几条不可妥协的工作原则:明确假设,展示不同解读,指出权衡,遇到困惑时停下,核验实时信息,并让作者始终是作者。

适用场景

  • “把我的构想和结果整理成一篇可提交至 VENUE 的论文。”“运行整个流程。”“从构想到投稿,做我的副驾驶。”
  • “接下来有什么计划?”“哪些已完成、接下来做什么、有什么阻碍?”
  • 协调论文周期中的工作:“我刚收到评审意见——现在怎么办?”或“我们已被录用;推进终稿和研究制品准备。”
  • 作者有许多可用技能,希望通过一个入口按顺序调用它们,而不是手动运行约 20 项技能。

不适用场景

  • 单一、范围明确的任务(“润色这一段”“检查我的引用”)。直接调用对应的单项技能——编排带来的额外开销不值得。
  • 作者希望不经审阅就由他人代写文本。此技能不是用来做这件事的;它是副驾驶,而作者才是执笔人。

输入

  1. 构想 + 实验——论文的主张,以及作者已有的证据。编排器绝不会编造结果来填补空缺;缺少的实验会被指出为阻碍,而不会被捏造。
  2. 目标——会议 + 分会,或 help me pick(此时会先调用 select-venue)。无论哪种情况,都会重新核验最新的征稿启事,不会仅凭缓存的会议档案判断。
  3. 现有草稿——从空白构想,到接近最终版的 .tex。计划会根据当前状态调整(见下方的状态脚本)。
  4. .paper-memory/——定位(profile.yml)、积累的 lessons.md 和 decisions.md,遵循 paper-memory-convention.md 模式。开始时读取。

循环

完整的阶段 → 技能 → 退出标准 → 检查点问题表请参阅 references/pipeline-map.md。每个阶段的循环如下:

  1. GOAL。 用一句话说明目标和当前目标项 (会议+专题+截止日期)。如果尚未设置目标项,请运行 select-venue,将选择 记录到 .paper-memory/decisions.md,并在将其视为固定项之前与作者确认(原则 #1、#6)。

  2. PLAN。 根据流程图,结合草稿当前状态,提前制定一份可供审阅的计划——将运行 哪些子技能、按什么顺序运行,以及原因。先计划再执行,优于在此处被动地逐步推进:作者 可以先审阅路线图。请展示计划;不要默默开始执行多阶段计划。

  3. EXECUTE。 运行该阶段的子技能。每个子技能都会将产物写入相应的 paper-workspace/<stage>/ 文件夹,并追加到 INDEX.md。编排器不会重新实现专业工具;而是调用它。

  4. VERIFY——依据外部信号,而非自我判断。 使用可衡量的检查确认阶段达到 退出标准,因为模型的自我反思会验证自身的幻觉(参见 references/verification-signals.md)。 信号必须具体:latexmk/编译退出代码、页数是否符合会议当前限制、匿名化检查器、 经 verify-citations 验证可解析到真实 DOI 的 BibTeX 条目、经 verify-claims 验证可追溯到真实结果的论断、 经 verify-results 验证可从产物复现的报告数据、检查清单是否存在的 grep,以及脚本的通过/失败结果。如果某个步骤没有外部判定依据(属于主观判断),请说明这一点并升级给作者处理,而不是让模型给自己打分。

  5. REFLECT——是否取得了可衡量的改进? 根据阶段目标和可衡量目标项的前后变化,运行 reflect-and-improve。只有信号有所改善(或保持不变,同时另一项有所改善)时,才接受该阶段。绝不接受会降低可衡量分数的更改。遵守停止条件(见下文),避免循环无法停止。

  6. CHECKPOINT。 在阶段关卡处说明:完成了哪些工作、有哪些权衡、存在竞争性解读时有哪些不同解读,以及流程图中的一个检查点问题。等待作者签字确认后再进入下一阶段。 这是一个持久暂停点——状态已写入磁盘,因此作者可以离开后再继续。

随时运行状态脚本,查看当前进度:

python3 scripts/pipeline_state.py status --workspace paper-workspace

它会读取 paper-workspace/INDEX.md(以及可选的 pipeline-state.json),并打印已完成 / 下一步 / 阻塞原因,以及当前目标和待处理的检查点。其他子命令包括:init、set-goal、next、advance、block、checkpoint 和 signoff(作者清除已提出的检查点后,循环才能继续推进)。运行 python3 scripts/pipeline_state.py --help。

完整示例(一个循环,端到端)

作者:“把我的想法和结果整理成一篇可提交至 NeurIPS 2026 的论文。”

# GOAL — record the target and open the durable log
python3 scripts/pipeline_state.py init --workspace paper-workspace
python3 scripts/pipeline_state.py set-goal --workspace paper-workspace \
    --goal "submission-ready for NeurIPS 2026 main track" \
    --venue "NeurIPS 2026" --track main --deadline "2026-05-15 AoE"

先锁定要求(硬性停止点)。 规划之前,针对最新的 CFP 运行 parse-cfp,绝不要使用缓存的 venues/conferences/neurips-2026.yml。假设它返回 9 页的限制和双盲评审要求,且每项都附有来源 URL 和获取日期。提出检查点并等待:

python3 scripts/pipeline_state.py checkpoint --workspace paper-workspace \
    --stage parse-cfp \
    --question "9pp, double-blind, NeurIPS checklist required, AoE deadline — confirm before we build on these?"

作者确认后,开始规划:根据草稿的状态(.tex 文件只写了一半,尚无相关工作部分),展示根据流程图调整后的阶段列表,征得批准,然后执行一个阶段——例如 preflight-check。基于外部信号进行验证,而不是听模型自说自话:check_sections.py 以状态码 0 退出,且 PDF 为 9 页,符合最新 CFP 的 9 页限制。反思:桌拒次数从 2 降至 0,情况有所改善,因此予以接受。记录结果并提出下一个检查点:

python3 scripts/pipeline_state.py advance --workspace paper-workspace \
    --stage preflight-check --signal "check_sections.py exit 0; 9pp <= 9 live limit; anonymizer clean"
python3 scripts/pipeline_state.py status --workspace paper-workspace   # done / next / blocked

如果后续阶段发现了缺口——例如,simulate-reviewers 预测 R2 会要求作者并未完成的消融实验——那就是阻碍项,不能凭空捏造:运行 block --stage simulate-reviewers --on "missing ablation R2 will ask for",说明情况并让作者决定。提交永远不是编排器要执行的操作:它会交付一套准备就绪的材料,然后停止。

停止条件(防止循环无限运行)

条件可以配置,但必须始终存在——循环必须终止:

  • 达到阶段退出条件——满足流程图中的可衡量标准。
  • 收益递减——反思环节带来的指标提升低于较小的阈值(例如 prose-lint 的 delta < N);停止润色。
  • 迭代次数上限——每个阶段最多进行约 3 轮优化,然后升级处理。
  • 预算上限——达到 Token 或时间预算后停止并报告。
  • 升级交由作者处理——当未经验证的假设成为下一步的前提、请求存在多种解读,或模型确实感到困惑时(原则 #1、#2、#4)。升级是正式的处理结果,不代表失败。

必须进行实时验证

会议规则每个周期都会变化,模型对这些规则的记忆天然过时。在任何阶段依赖截止日期、页数限制、匿名评审级别、模板、清单或工件徽章规则之前,都要通过 parse-cfp 从最新 CFP 重新获取,并优先采用该结果,而不是任何缓存的 venues/conferences/*.yml 会议资料。编排器带入检查点的每项会议事实都必须保留其来源 URL 和获取日期,以便作者点击链接进行确认。获取信息后最容易过度自信,因此采取行动前要对照一手来源重新核查获取到的信息。绝不要在此技能中硬编码会议规则。

输出

  • paper-workspace/ 下持续更新的计划和各阶段产物,每项都记录在 INDEX.md 中——这是可持久保存、可供审查的记录。
  • 来自 pipeline_state.py 的实时已完成 / 下一步 / 阻碍项视图。
  • 每个检查点都附带简短说明:已完成的工作、权衡取舍,以及需要作者做出的决定。绝不要把草稿说成已完成并提交。

适配你的学科

流程图包含常见的会议和期刊流程。可对其进行分叉:针对期刊调整阶段顺序(采用修改后重投,而非答辩),替换引文规范,并调整适用于你所在领域的清单、伦理声明、数据政策或工件流程。保留阶段关卡;调整关卡内执行的内容。

守则

  • Copilot,绝不代办。 它负责规划和协调;绝不捏造结果或引文,绝不声称已获接收或预测决策,并且绝不代表作者向任何系统提交内容。
  • 依据外部信号验证,而非自我反思。 完成信号始终是编译/lint/DOI 解析/清单/人工签核,而不是模型为自己的输出打分(参见 references/verification-signals.md)。
  • 每个阶段关口都必须停下。 阶段之间必须由作者签核;高风险转换(将 CFP 卡片视为事实依据、发送 rebuttal、提交 camera-ready)必须强制暂停。
  • 持久化检查点。 每次推进前,持久化各阶段产物和 INDEX.md,确保暂停或重启时不会重新运行先前的技能(避免对免密搜索栈重复调用 API)。
  • 不要把截止日期合并计算。 将产物评估/camera-ready 流程作为单独的接收后截止日期跟踪,不要并入论文截止日期。
  • 单个文件少于 500 行;references/ 仅一层深;脚本仅使用标准库,支持 --help,并能在出错时以非零状态码干净退出。

记忆

使用共享的 .paper-memory/ 约定,详见 paper-memory-convention.md。

  • 开始时: 阅读 profile.yml(定位)、lessons.md(各阶段都要注意的反复出现的习惯)和 decisions.md(之前选择的投稿 venue/track),确保计划符合个人情况,并与先前决策保持一致。
  • 每个阶段结束时: 通过 reflect-and-improve/scripts/reflect_log.py 追加带日期的记录 — date · orchestrate-paper · stage advanced / blocked, on what signal — 并将任何 venue/track 决策记录到 decisions.md。
  • 按需创建 .paper-memory/;提供将其添加到 .gitignore 的选项;仅保存在本地,绝不上传。

评论

支持 Markdown