Skip to content

Repository files navigation

research-to-paper

English中文

研究稿件的产出,横跨若干彼此独立、又各自容易出错的环节:确定切入角度、检索并核验文献的引用完整性、依证据强度恰当地起草、经独立审稿剔除过度声称、控制行文的可读性与可检测的 AI 痕迹,直至排版成投稿格式。这些环节通常由彼此割裂的单一用途工具或纯人工完成,而环节之间的衔接处最易出错——一处指向错误文献的 DOI、一句超出证据支持的断言、一段节奏均匀而显机械的文字,任一处都可能在评审阶段削弱整篇稿件的可信度。

research-to-paper 将这条链整合为一套完全自包含的技能(skill),以单一插件的形式,将一个研究想法系统地贯穿上述全部环节,且全程将用户置于决策回路之中。其设计遵循三条原则:严谨——每篇文献的 DOI 经 CrossRef 逐条核验,行文措辞与证据强度严格匹配(模型与基因层面只作 predict,整体实测方可 confirm),并由多个相互独立的审稿主体对抗式复核;自包含——检索、核验、审稿、写作、去 AI、排版均内置于本技能,不依赖任何外部 skill,安装本插件即获完整流水线;可审计——每一处写作判断与每一处去 AI 改动都留有可追溯的记录矩阵,而非黑箱产出。

整条流水线为:研究想法 → 确定方向(含目标期刊及其投稿要求)→ 建立经核验的文献库 → 起草 → 多轮对抗审稿 → 去 AI(含长短句调节)→ 输出 LaTeX / Word / PDF;各环节亦可单独调用。

适用于 Claude CodeCodex


安装

还没装 Claude Code?**Windows 用户(尤其国内网络慢)**先看 在 Windows 上安装 Claude Code(含国内镜像)

Claude Code

方式一 · 插件市场(推荐)

/plugin marketplace add https://github.com/Jason-0409-G/scriptorium.git
/plugin install research-to-paper@scriptorium
/reload-plugins

方式二 · 脚本(克隆后本地安装)

git clone https://github.com/Jason-0409-G/scriptorium.git
cd scriptorium
bash install.sh claude          # macOS / Linux
# Windows PowerShell:  .\install.ps1 -Target claude

安装后重启 Claude Code,直接请其"按 research-to-paper 的流程执行"即可。

Codex

git clone https://github.com/Jason-0409-G/scriptorium.git
cd scriptorium
bash install.sh codex           # macOS / Linux
# Windows PowerShell:  .\install.ps1 -Target codex

脚本会将 7 个 skill 复制至 ~/.codex/skills/(Claude 则为 ~/.claude/skills/)。重启 Codex 后即可使用;bash install.sh all 可一次安装两者。


更新

本插件用语义化版本号(.claude-plugin/plugin.jsonversion)。只有版本号 bump 时,用户才会收到更新;每版改了什么见根目录 CHANGELOG.md。已安装的版本这样更新到最新:

插件市场安装

/plugin marketplace update scriptorium          # 拉取最新目录
/plugin update research-to-paper@scriptorium    # 装上新版本
/reload-plugins                                 # 本会话立即生效(或重启)

也可在 /plugin → Marketplaces 里给 scriptoriumauto-update 自动更新。

脚本安装

cd scriptorium   # 之前 clone 的目录
git pull
bash install.sh all    # claude / codex / all

然后重启 Claude Code / Codex


七个子 skill 的职能

子 skill 职能
research-to-paper 主编排。识别当前所处环节,按需将请求导入 确定方向 → 建库 → 写作 → 排版,各环节均可独立调用。
research-to-paper-scope 确定方向。先检索权威文献以厘清领域脉络,再以逐项确认的方式依次定下:切入角度 / 研究问题 → 范围 → 目标期刊篇幅字数 → 核心子主题;目标期刊一经确定,即联网查询该刊投稿要求(收录范围、文章类型、篇幅、结构、引用格式)。产出 scope_brief.md
research-to-paper-curate 建立文献库 + 资源检索。五源文献检索(OpenAlex / Europe PMC / PubMed / Semantic Scholar / Crossref)→ 逐篇经 CrossRef 核验 DOI(可识别"能够解析但指向错误文献"的情形并找回正确 DOI)→ 多 agent 对抗审查,剔除伪造与错误归属的条目 → 配置了 Zotero API 即按分类直接导入,否则导出 RIS(Zotero/EndNote 通用)+ BibTeX + 一张「每篇配中文重点」的着色 Excel(分类 / DOI 核验状态 / 中文重点 / 创新评分 / 影响因子 / 引用数;跨搜索累积去重,只有 verified 的 DOI 才作可信 DOI 导出)。DOI 核验并行跑 CrossRef(8 线程,可缓存/离线)。另可检索生物资源库:任意 NCBI Entrez 库(蛋白 / 核酸 / 基因 / 物种 / 组装 / 结构 / SRA …)+ UniProt / RCSB PDB / AlphaFold / Europe PMC。
research-to-paper-write 写作。先理解内容、复述核心论点并与用户确认 → 列逐单元 rationale 矩阵(不套用固定 IMRaD 模板)→ 按证据对冲原则起草(模型 / 基因层面仅作 predict、整体实测方可 confirm);并编排后续审稿与去 AI 环节。覆盖五种场景:期刊论文 / 会议论文 / 报告 / 综述 / 竞赛。
research-to-paper-audit 多轮对抗审稿。调度 3 个相互独立的审稿 agent(claim 支撑 / 逻辑结构 / 引用证据)与主编综合,循环审至一轮无新问题为止;重点检出过度声称、缺乏依据的 claim、结果区混入解读、改动流于表面、引用无法支撑其所在句等问题。可单独调用("审阅这篇草稿")。
research-to-paper-humanize 降低 AI 痕迹。沿五个维度改写:D1 句长(长短句结合)、D2 段落结构变化、D3 信息密度起伏、D4 连接词控制(删除"首先 / 其次 / 此外 / 值得注意的是"等)、D5 术语表述变体;分 light / medium / heavy 三档,每处改动登记入 humanize_matrix.md,再以 humanize_check.py量化校验。可单独调用("降低这段文字的 AI 痕迹")。
research-to-paper-build 输出格式。以 pandoc 将定稿渲染为 LaTeX(.tex)/ Word(.docx)/ PDF,并依据 library.bib[@key] 引用解析为参考文献表。

各环节均可单独触发:"核验这些 DOI""降低这段文字的 AI 痕迹""审阅这份草稿""导出为 Word"等指令都会直接命中对应 skill。


文档

GitHub 顶部标签栏(README / MIT license)只认一组固定的标准文件,无法挂任意说明文档。这里给出全部说明的一键入口:

参考文档

各子 skill 说明


工作模式、场景与深度

  • 两种入口:改写已有稿(Rewrite Existing —— 在你的草稿上提升论证 / 结构 / 对冲,不降级为表面润色)或从素材构建(Build From Materials —— 用笔记、数据、图、PDF、部分初稿从零起草)。
  • 目标场景:journal 期刊论文 · conference 会议论文 · report 报告 · review 综述 · competition 竞赛论文 / 报告(各自结构不同)。
  • 研究深度:flash(3 篇场景样例 + 3 篇近期同领域 + 官方要求)或 pro(6 + 6)。
  • 输出语言:EnglishChinese(去 AI 检查按 --lang 匹配)。

这些由 research-to-paper-scope 一问一确认地定下,写入 scope_brief.md,后续各阶段照此执行。


公共数据检索接口

research-to-paper-curate 内置接入下列公共 API,检索/读取一律免 key(key 仅提速;唯 Zotero 直接写入需 key)。文献用 search_papers.py 五源合并去重,生物资源用 bio_search.py

  • 文献:OpenAlex、Europe PMC、PubMed、Semantic Scholar、Crossref。
  • 生物资源:任意 NCBI Entrez 库(protein / nucleotide / gene / taxonomy / genome / assembly / structure / sra / bioproject / biosample …)、UniProtRCSB PDBAlphaFold DBEurope PMC
接口 读取要 key? 没 key 有 key
OpenAlex / Crossref / Europe PMC 免费(邮箱进 polite 池更快)
NCBI Entrez(全库) 3 次/秒 NCBI_API_KEY → 10 次/秒
Semantic Scholar 共享池(可能限速) S2_API_KEY 专属限额
UniProt / RCSB PDB / AlphaFold 完全免 key
Zotero 直接导入 要(写入) 回退 .ris 文件 按分类直推进库
python bio_search.py protein "class IIa bacteriocin" --retmax 10
python bio_search.py uniprot "pediocin"        # → P29430 Bacteriocin pediocin PA-1
python bio_search.py pdb "bacteriocin"         # → 1O82 / 5UKZ …
python bio_search.py alphafold P29430          # 查询参数 = UniProt 登录号
python bio_search.py --list                    # 列出全部接口

逐接口的 key 获取方式与速率见 skills/research-to-paper-curate/references/bio-sources.md


工作产物(可审计轨迹)

一次完整运行不只产出最终稿,而是在统一工作区留下可追溯的写作轨迹(new_workspace.py 脚手架,各阶段写入):

manuscript_workspace/
├── scope_brief.md              # scope:方向契约(角度 / 目标期刊及要求 / 字数 / 主题)
├── library/
│   ├── library.ris             # curate:Zotero / EndNote 通用
│   ├── library.bib             # curate:pandoc / LaTeX
│   └── library.xlsx            # curate:每篇配中文重点 + 核验状态着色 + 跨搜索累积去重(缺 openpyxl 退 .csv)
├── writing_rationale_matrix.md # write:逐单元写作理据(claim / 证据 / 对冲档 / 来源)
├── draft.md                    # write:工作草稿(含 [@key] 引用)
├── audit_report.md             # audit:三审 + 主编综合,逐轮直至无新问题
├── humanize_matrix.md          # humanize:逐处去 AI 改动(按 D1–D5 标注)
├── final/                      # build:main.tex / manuscript.docx / manuscript.pdf
└── artifact_manifest.md        # 由 artifact_check.py 生成的产物索引

最核心的两个推理产物是 writing_rationale_matrix.md(逐单元解释为什么这样写)与 audit_report.md(独立评审查到什么、如何解决)。若产出漂亮的 draft.md 却空着理据矩阵,即视为未完成。完整规范见 skills/research-to-paper/references/artifacts.md


检查命令

每个检查都是纯标准库脚本(下方为仓库内路径;安装后脚本位于 ~/.claude/skills/~/.codex/skills/ 下):

# 文献 DOI 真实且匹配(curate;并行 8 线程,--cache 复用 / --no-api 离线;有 mismatch/dead 时退出码非 0)
python skills/research-to-paper-curate/scripts/verify_doi.py <papers.json> <verified.json>

# 正文 [@key] / \cite 能在 library.bib 解析(write → build)
python skills/research-to-paper/scripts/cite_check.py manuscript_workspace/draft.md manuscript_workspace/library/library.bib

# 去 AI 痕迹达标(humanize;--tier light/medium/heavy)
python skills/research-to-paper-humanize/scripts/humanize_check.py manuscript_workspace/draft.md --lang zh --tier medium

# 产物轨迹完整,并刷新 manifest(orchestrator)
python skills/research-to-paper/scripts/artifact_check.py manuscript_workspace --write

# 检查脚本的单元测试
python -m unittest discover -s tests

依赖

除下列可选工具外,其余均为 Python 标准库(缺失时将优雅降级或给出提示):

  • openpyxl(Python)— 用于生成着色 .xlsx;缺失时 curate 改为输出 .csv,RIS / BibTeX 不受影响。
  • pandocresearch-to-paper-build 输出 LaTeX / Word 所必需(brew install pandoc / apt install pandoc / Windows 用 winget 或 choco)。
  • TeX 引擎(xelatex / pdflatex)— 仅 PDF 需要;缺失时仍会输出 .tex,可另行编译。
  • API 凭据(全部可选) — 复制 .env.example.env(或 ~/.config/research-to-paper/keys.env)填入:CROSSREF_MAILTO / NCBI_EMAIL 进更快的 polite 池;NCBI_API_KEY / S2_API_KEY 提升限速;ZOTERO_API_KEY + ZOTERO_USER_ID 则把文献直接按分类导入 Zotero(EndNote 无公开写入 API,仍走 .ris 文件导入)。.env 已被 gitignore,不入仓库;无任何 key 也能用。

在 DeepSeek 后端运行

本技能可经 Anthropic 兼容代理由 DeepSeek 驱动(把 Claude Code 的 ANTHROPIC_BASE_URL 指向 https://api.deepseek.com/anthropic,模型用 deepseek-v4-pro[1m](含 [1m] 后缀,即 100 万上下文版本,以 DeepSeek 官方文档为准;配置模板见 templates/settings.json)。设计上对弱模型友好:一切事实核查由确定性脚本完成,模型不做 DOI 解析——verify_doi.py 在脚本里并行核验 + 标题比对,弱模型无法「假装」某个 DOI 已核实;需要模型填的只剩很 轻的活(分类、一句中文重点),且脚本容忍代码围栏 / 字段别名 / 缺字段而优雅降级。注意 DeepSeek 下子代理跑在更弱的 deepseek-v4-flash——curate 的对抗审查门与 audit 的多审,弱后端下应以 verify_doi.py 的确定性闸门 (mismatch / dead 即阻断)为主防线。完整清单见 DeepSeek 兼容说明


DOI 核验性能(并行)

逐条核 CrossRef 原本串行,是 curate 的耗时瓶颈;改并行后(实测 12 个 DOI,本机):

模式 12 个 DOI 耗时
串行(--workers 1) 45.1 s
并行(--workers 8,默认) 7.0 s(约 6.4× 快)
并行 + 缓存复用(--cache) 0.9 s(约 50×)

一个 50–100 篇的文献库,核验从「几分钟」降到「几秒」。核验逻辑全在脚本里(并行 + 标题比对 + 判别词闸,确认 supplied DOI 严格 0.85),模型不参与 DOI 解析——换 DeepSeek 等弱后端,速度与正确性都不受影响。


用法举例

直接陈述需求即可,例如:

  • "我有一个研究方向但尚未定题——请先确定方向与切入点,检索权威文献、核验 DOI,再撰写为综述。"
  • "核验这批参考文献的 DOI,剔除无法核实的条目,导出为可导入 EndNote 的文献库。"
  • "降低这段文字的 AI 痕迹,注意长短句结合。" / "审阅这篇草稿是否存在过度声称。"
  • "将这份稿件导出为 LaTeX 与 Word。"

主编排仅执行所需环节,并在进入下一环节前说明每一步的产出。


校验(改完插件后)

claude plugin validate .

About

Self-contained Claude Code / Codex skill that takes a research idea to a submission-ready manuscript: a DOI-verified literature library (with NCBI/UniProt/PDB/AlphaFold resource search), evidence-matched drafting, multi-agent adversarial review, de-AI, and LaTeX/Word/PDF output. Depends on no other skill.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages