








仓库地址:https://github.com/yuan1z0825/nature-skills
协议:Apache-2.0 | 语言:Markdown + YAML + Python + Node(JS) | 规模:18+ 可触发技能 + 1 共享包
解读日期:2026-08-02
| 项 | 内容 |
|---|---|
| 项目名称 | nature-skills(中文常称「Nature Skills 科研技能库」) |
| GitHub 路径 | Yuan1z0825/nature-skills |
| 开源协议 | Apache-2.0 |
| 维护组织 | 个人/小团队主导,社区驱动(含 52 位贡献者、175 PR 等开源协作模式) |
| 创始人 | 袁一哲(抖音/知识星球运营,提供 GPT/Claude 代充与成品号商业服务) |
| 核心开发者 | 马昕瑞(travisma2233@gmail.com)—— 核心开发、架构维护 |
| 主要贡献者 | 胡彬(mhoang12205@gmail.com)—— Agentic Agent 方向 |
作者介绍(来自 README 自述):
作用:nature-skills 是一组围绕 SKILL.md 组织的可复用科研技能包,覆盖从「读论文 → 精读 → 查文献 → 验证引用 → 做图 → 润色 → 写作 → 审稿模拟 → 回复审稿意见 → 转 PPT → 转专利 → 做实验记录 → 写 proposal」的完整科研生命周期。每个技能可被 AI 编码代理(Claude Code、Codex、OpenClaw、OpenCode、Hermes 等)触发,产出可直接使用的科研产物(.md、.svg、.pptx、.docx、.enw/.ris、.py 脚本等)。
背景与痛点:
所有技能遵守 5 条共享原则(README §7.1):
.svg、.pptx、.docx 或具体建议)。技能状态标签:Draft(规则已定义但未实战测试)→ Beta(示例测过但边界可能仍有问题)→ Stable(真实学术内容验证过、规则稳定)。
| 类别 | 要求 | 说明 |
|---|---|---|
| Node.js | ≥ 18(用 npx skills 安装方式) |
CLI 即拉即用,无需全局安装 |
| Python | 3.x(部分技能需 pip install) |
如 nature-paper-to-patent 需 Playwright chromium;nature-academic-search 的 MCP server 需依赖 |
| R | 可选 | nature-figure 的 R/ggplot2 后端可选 |
| Git | 推荐 | 用于 clone 与自动更新脚本(autoupdate-skills.sh/update-codex-skills.sh) |
| 宿主 Agent | 支持 Agent Skills 的代理 | Claude Code / Codex / OpenClaw / OpenCode / Hermes 等 |
| 外部服务/Key | 视技能而定 | OpenRouter GPT Image 2(示意图)、PubMed/Scopus/ScienceDirect(文献检索 MCP)、Crossref(免 key)、图书馆 CARSI(下载) |
| 硬件 | 普通桌面即可 | 主要是 LLM 推理在远端;本地仅跑脚本/浏览器 |
注意:
skills/目录本身是纯 Markdown + YAML + 脚本,可零运行时依赖「被加载」。但部分技能的可选脚本(Python/Node/Playwright)需按技能 README 单独装依赖。
npx skills(推荐,跨代理最省事)基于 vercel-labs/skills 的 CLI(本项目 README 直接复用该生态):
# 先查看仓库可安装的技能名
npx skills add Yuan1z0825/nature-skills --list
# 全量安装到 Codex(含 nature-shared 共享包)
npx skills add Yuan1z0825/nature-skills --global --agent codex --skill '*' --yes --copy
# 仅安装单个技能(如 nature-figure)
npx skills add Yuan1z0825/nature-skills --agent codex --skill nature-figure --yes --copy
# 安装阅读器时一并装共享包
npx skills add Yuan1z0825/nature-skills --global --agent codex \
--skill nature-reader --skill nature-shared --yes --copy
# 更新 / 检查
npx skills list --global --agent codex --json
npx skills update --global --yes
npx skills update nature-reader --global --yes
保留稳定 clone,再用 wrapper 指向真实 SKILL.md:
mkdir -p ~/ai-skills && cd ~/ai-skills
git clone https://github.com/Yuan1z0825/nature-skills.git
创建 subagent(推荐,示例 nature-reader):
mkdir -p ~/.claude/agents
cat > ~/.claude/agents/nature-reader.md <<'EOF'
---
name: nature-reader
description: Use for Chinese-English paper reading, figure-aware translation, and source-grounded paper notes.
---
When invoked, first read `~/ai-skills/nature-skills/skills/nature-reader/SKILL.md` and follow it as the governing workflow.
Read supporting files from `~/ai-skills/nature-skills/skills/nature-reader/` and `~/ai-skills/nature-skills/skills/nature-shared/` only when needed.
Do not replace this skill with a generic paper-reading response.
EOF
或 slash command(~/.claude/commands/nature-reader.md),会话内用 /nature-reader ... 触发。
自动更新(可选 SessionStart 钩子):用 scripts/autoupdate-skills.sh 配合 ~/.claude/settings.json 钩子,把技能直接复制进 ~/.claude/skills/。脚本自带 6 小时节流、断网自动跳过、HEAD 变化才同步、拒绝在有未提交改动的 clone 上前进等保护。
git clone https://github.com/Yuan1z0825/nature-skills.git
cd nature-skills
scripts/update-codex-skills.sh --pull # 同步到 ~/.codex/skills
scripts/update-codex-skills.sh --check # 校验是否一致
scripts/update-codex-skills.sh --pull --prune # 清理上游已删的旧技能
也可把仓库链接交给 Codex,让它自己 clone 后跑 scripts/update-codex-skills.sh --pull。脚本不会自动装 Python 依赖,需按需 pip install -r ...requirements.txt。
见 docs/open-source-agent-frameworks.md,核心是保留 clone + 创建轻量 wrapper 指向真实 SKILL.md,并保留 nature-shared/。
安装后直接向 Agent 描述任务即可,无需记技能名。README 给出可直接复制的提示词模板:
| 想做什么 | 直接这样说 |
|---|---|
| 读论文/中英文对照 | 把这篇 PDF 做成图文对应的中英文对照 Markdown reader。 |
| 文献汇报 PPT | 把这篇论文做成中文组会汇报 PPT,保留关键图件和来源标注。 |
| 润色翻译 | 把这段中文改写成 Nature 风格英文,保持学术含义不变。 |
| 写摘要/引言 | 根据这些结果和图件,帮我起草 Nature 风格的摘要和引言。 |
| 审稿模拟 | 从 Nature 审稿人视角评估这篇稿件,给出三份 reviewer reports。 |
| 回复审稿意见 | 根据这封返修邮件,帮我写逐点回复、cover letter,并标出修改稿需标红的位置。 |
| 查文献/他引 | 整理这篇文章的引用数、严格他引数、DOI,并看引用者里有没有院士/Fellow/大牛。 |
| 科研图/示意图 | 根据这段方法和结果,帮我生成投稿级科研图或论文示意图草稿。 |
若已知技能名,可在提示词中显式写「使用 nature-reader」等。
nature-skills 的核心架构创新是 「static/dynamic split(静态/动态分层)」的 router-style 技能。每个技能目录由以下组成:
skills/nature-<topic>/
├── SKILL.md # 路由器(dynamic layer):frontmatter + 路由协议
├── manifest.yaml # 声明式清单:axes 轴、always_load、on_demand 引用映射
├── static/ # 静态层:版本化、可复用的内容片段(fragments)
│ ├── core/ # 核心片段(合同/立场/原则/工作流)
│ └── fragments/ # 按轴拆分的可选片段(如 backend/python.md, backend/r.md)
├── references/ # 深度参考资料(按需加载,非默认)
│ └── workflows/ # 子工作流文档
├── scripts/ # 可选的 Python / Node 可执行脚本
├── templates/ # 可选:输出模板(LaTeX/Markdown)
├── assets/ # 可选:图片/示意图/示例数据
├── README.md # 面向人的中文说明(必须)
└── README_EN.md # 面向人的英文说明(必须)
设计意图:
以文本类技能(如 nature-polishing、nature-figure)为例,通用流程:
SKILL.md 的 description(含中英文触发词)。manifest.yaml(声明轴 axes、允许值、文件映射),并读取 always_load 列出的核心片段(如 core/principles.md、core/stance.md)。paper_type / section / language / journal,或 backend Python/R),用 manifest 的 detect: 提示 + 用户输入判定取值;必要时向用户问恰好一个问题并记住偏好(如 nature-figure 的 nature_figure_backend.py set python)。static/fragments/* 与 references/*,不读整个 static/。scripts/*.py / *.mjs,产出文件(.svg/.enw/.html 等)。references/qa-contract.md,运行校验脚本,按最终尺寸检查渲染产物。nature-citation 是「线性参数化工作流」,其步骤在 scripts/nature_citation.py 中实现:
手稿文本/claim/DOI
│
├─ segment_text() 段落/句子切分(去标题、≤700 字符)
├─ query_from_segment() 构造 Crossref 检索式 + fallback 查询
├─ fetch_crossref() 调 Crossref API(polite pool + 退避重试)
├─ in_scope() 仅保留 Nature/CNS 家族期刊(--scope cns/nature/science/cell/flagship)
├─ dedupe() 按 DOI/标题去重
├─ 导出 ENW / RIS / Zotero RDF(默认 .enw)
└─ --with-artifacts 额外生成 JSON / TSV / Markdown 报告 / 可筛选 HTML 浏览器
核心代码要点(节选):
# 期刊家族判定与范围过滤
NATURE_EXACT = {"Nature", "Nature Biotechnology", "Nature Cancer", ...}
FLAGSHIP = {"Nature", "Science", "Cell"}
def journal_family(journal: str) -> str | None:
if journal in NATURE_EXACT or journal.startswith("Nature ") or journal.startswith("npj "):
return "Nature Portfolio"
if journal in SCIENCE_EXACT: return "Science family"
if journal in CELL_EXACT or journal in CELL_TRENDS_EXACT: return "Cell Press"
return None
def in_scope(journal: str, scope: str) -> bool:
family = journal_family(journal)
if scope == "flagship": return journal in FLAGSHIP
if scope == "nature": return family == "Nature Portfolio"
...
导出函数:build_enw_record() / write_enw()、build_ris_record() / write_ris()、build_zotero_rdf_article() / write_zotero_rdf()。最后还会生成一个内置类 Google Scholar 的 HTML 浏览器(可按年份/关键词筛选、勾选、导出),交互逻辑用原生 JS 实现。
| 文件 | 类型 | 作用 |
|---|---|---|
README.md |
文档 | 中文主说明:创始人介绍、理念、快速开始、安装、18 技能索引、贡献规范、Star 历史 |
README_EN.md |
文档 | 英文镜像版(与中文严格一一对应) |
LICENSE |
许可 | Apache-2.0 |
index.html |
网页 | 项目在线网站(yuan1z0825.github.io/nature-skills/)入口 |
pr-body-readme-mirror.md |
文档 | PR 模板片段:README 镜像校验说明 |
pr-body-skill-index.md |
文档 | PR 模板片段:技能索引校验说明 |
pr-body-workflow.md |
文档 | PR 模板片段:CI 工作流校验说明 |
assets/ |
目录 | 仓库级图片:readme-banner-cn/en.png、代充服务图、Star history SVG、微信图等 |
scripts/ 安装与校验脚本| 文件 | 作用 |
|---|---|
update-codex-skills.sh |
把 skills/* 全量同步到 ~/.codex/skills/。支持 --pull(先 git pull --ff-only)、--check(仅校验 diff)、--prune(清上游已删的旧目录)、--dest、--force。用 rsync -a --delete 复制,只动本仓库管理的技能目录、不碰其他 Codex 技能;复制后写 .nature-skills-install.txt 清单并做 diff -qr 校验;打印可选的 Python 依赖安装提示(如 patent/学术搜索)。 |
autoupdate-skills.sh |
设计为 SessionStart 钩子,廉价地把已装技能与上游同步。安全特性:① 节流(--throttle 默认 21600s=6h,到点才联网);② 离线容忍(拉取失败 exit 0,绝不卡住会话);③ 非破坏性(只在专用 clone 上 fast-forward,拒绝有未提交改动或本地提交的 clone);④ 廉价(仅当上游 HEAD 变化才真正 sync);⑤ 可配置目标目录/频率;日志在 ~/.local/state/nature-skills/autoupdate.log。 |
validate-readme-mirror.py |
校验 README.md 与 README_EN.md 章节结构镜像一致。 |
validate-readmes.py |
校验每个技能都含中英文 README,且标题数量/顺序一致、[English]/[中文说明] 互链正确。 |
validate-repository.py |
仓库级一致性校验。 |
validate-skill-index.py |
校验根 README 技能索引表与实际技能目录一致。 |
validate-skill-metadata.py |
元数据门禁(见下)。 |
validate-workflows.py |
校验 .github/workflows 配置。 |
generate-star-history.py |
生成 Star History 图表数据。 |
validate-skill-metadata.py 核心逻辑(质量门禁):
REQUIRED_FILES = ("SKILL.md", "README.md", "README_EN.md", "manifest.yaml")
# 1) 每个技能目录必须含 4 个必需文件
# 2) SKILL.md frontmatter 的 name 必须与 manifest.yaml 的 name 一致
# 3) manifest.yaml 必须是合法 YAML
# 4) manifest 中声明的路由路径(always_load / on_demand / axes.values / script)
# 必须真实存在、必须是相对路径、除 ../nature-shared/ 外不得越出技能目录
# 5) 根 README 的 skills-N 徽章数必须等于可触发技能数
docs/ 文档| 文件 | 作用 |
|---|---|
open-source-agent-frameworks.md |
OpenClaw/OpenCode/Hermes 等开源代理的接入教程(中文) |
open-source-agent-frameworks_EN.md |
英文版 |
nature-paper-card-tutorial.md |
nature-paper-card 使用教程(中文) |
nature-paper-card-tutorial_EN.md |
英文版 |
skills/ 技能目录(19 个顶层目录)下表为 README §6 技能索引(18 个可触发 + nature-shared 共享包):
| 技能目录 | 状态 | 用途 | 代表触发词 |
|---|---|---|---|
nature-figure |
Stable | Nature 级 Python/R 科研图;含 figures4papers demo;OpenRouter GPT Image 2 示意图 | Nature figure, 投稿级图片, 论文示意图 |
nature-polishing |
Stable | 学术文本润色/重构/翻译为 Nature 风格英文(含 LaTeX 排版修复) | Nature style, 润色, 论文英文 |
nature-writing |
Draft | 起草 Nature 风格手稿章节、重建论证 | 写摘要, 写引言, manuscript draft |
nature-reviewer |
Draft | 模拟 Nature 审稿人,输出 3 份 reviewer reports + Major/Minor | 预投稿评审, reviewer report |
nature-citation |
Beta | 严格 Nature/CNS 范围支撑文献检索,导出 ENW/RIS/Zotero RDF | CNS citation, 支撑文献 |
nature-data |
Draft | Data Availability statement、仓储方案、FAIR 检查 | Data Availability, FAIR |
nature-statistics |
Draft | 统计报告审查/改写/起草(样本量、p 值、多重比较、效应量、CI…) | Nature statistics, 统计审查 |
nature-reader |
Beta | 带来源锚点、图文对应、公式渲染、中英文对照的全文 Markdown reader | 全文 Markdown, 原文对照 |
nature-paper-card |
Beta | 单篇精读生成 01–16 节 Paper Card(证据链/结论边界/批判分析) | Paper Card, 论文精读 |
nature-response |
Beta | 解析返修邮件,起草 cover letter/逐点回复/标红修改稿/LaTeX 模板 | response to reviewers, 返修信 |
nature-paper2ppt |
Beta | 论文转中文 PPTX 文献汇报 deck | paper PPT, journal club |
nature-paper-to-patent |
Beta | 论文/报告转中国发明专利草稿(专利点挖掘/查新/交底书) | paper to patent, 权利要求书 |
nature-ref-verifier |
Stable | 参考文献多源交叉验证(作者/标题/年份/卷期/页码逐字段) | verify refs, 文献验证 |
nature-academic-search |
Beta | 多源检索、引用核验、严格他引审计、引用者画像、MCP server | 查文献, 严格他引 |
nature-downloader |
Beta | 图书馆/CARSI/开放获取合法下载学术全文 | 图书馆下载, CARSI, PDF 下载 |
nature-literature-pipeline |
Stable | 自动化文献发现管线:多源检索→六维评分→精读推送→本地归档 | literature pipeline, 每日文献 |
nature-experiment-log |
Draft | 标准化记录实验图文音,生成 Obsidian 实验日志 | 实验日志, Obsidian vault |
nature-proposal-writer |
Beta | proposal-first 科研写作状态机(证据/论证/契约先于文本) | researchwrite, 开题报告 |
nature-shared |
— | 共享支持包(不计入索引),供其他技能 ../nature-shared/ 引用 |
— |
nature-shared/nature-shared 是其他技能共享的「底层库」,不单独触发:
| 文件/目录 | 作用 |
|---|---|
SKILL.md |
共享包说明(声明自身为共享、不计数) |
manifest.yaml |
共享清单(被其他技能 ../nature-shared/ 引用时的路由说明) |
core/ |
通用核心片段(写作立场、科研伦理、通用工作流等,被文本类技能复用) |
journal-formats/ |
各期刊格式规范片段(如 Nature/Nat Comm/通用模板) |
README.md / README_EN.md |
共享包说明文档 |
nature-figure(router 范式范本)SKILL.md 是一个双路由路由器:
manifest.yaml + references/openrouter-image-generation.md + 用 scripts/generate_openrouter_schematic.py 调 API,产物当「草稿」对待,禁止编造实验数值/作者 logo/机构标。nature_figure_backend.py get/set 记忆偏好,无偏好则问恰好一个问题并保存),加载对应 static/fragments/backend/python.md 或 r.md,再按「图件合同 → 默认立场 → 后端片段 → 模板适配 → 交付预检」顺序执行。其 manifest.yaml 声明 backend 轴与文件映射;assets/figures4papers/ 内含 CellSpliceNet、Cflows、Dispersion、FPGM、ImmunoStruct、RNAGenScape、VIGIL 等真实论文图的可复现 demo(含 plot_*.py 源脚本与 PNG/PDF 产物),assets/chart-atlas/ 提供 10 类图表速查图集。
nature-citation(静态/动态 + 脚本)manifest.yaml:声明为「线性参数化工作流」,无 content axis,只有 always_load(core/principles、core/chinese-mode、core/workflow)+ references.on_demand(脚本用法、检索策略、期刊范围、RIS/ENW/Zotero 导出、主脚本)。scripts/nature_citation.py:见 §3.3,约 600+ 行,实现切分→Crossref 检索→范围过滤→导出→HTML 浏览器。references/:journal-scope.md(CNS 家族边界)、search-strategy.md、ris-endnote.md、script-usage.md,以及示例 .bib/.nbib/.ris 文件。evals/evals.json:该技能有评估用例(说明有质量保障意识)。static/core/:principles.md、chinese-mode.md、workflow.md。nature-polishing(多轴路由范本)SKILL.md frontmatter 声明 4 个 axis:paper_type(research/methods/hypothesis/algorithmic/review)、section(abstract/intro/results/discussion/conclusion/title/methods)、language(en/zh-to-en)、journal(nature/nat-comms/generic)。路由器步骤:加载核心层 → 检测轴值(并向用户用一行声明检测结果,便于廉价纠正)→ 只加载匹配片段 → 按优先级润色 → 排版类请求绕过 prose 轴直接读 references/latex-layout.md。
nature-downloader(最「工程化」的技能)含完整的 Node(.mjs) + Python 实现与测试:
scripts/:batch_download.mjs、browser_pdf_downloader.mjs、cdp_open_url.mjs、configure_credentials.py、extract_pdf_text.py 等。scripts/lib/:20+ 模块——routing.mjs(来源路由)、provider-registry.mjs、publisher-providers.mjs、open-access.mjs、cnki.mjs、credentials.mjs、anti-bot.mjs、cdp-utils.mjs、status-codes.mjs、school-config.mjs 等。src/:Python 配置/校验/学校库加载(config.py、validators.py、schools_loader.py、wizard.py、health_check.py)。tests/:含 tests/python/ 与 tests/unit/*.test.mjs(覆盖路由、凭证、出版商、开放获取、状态码等)。data/:publishers.json、schools.yaml、school.schema.json;examples/:CARSI/出版商校验 TSV 模板;docs/:调研报告与 merge 计划。nature-academic-search(带 MCP server)mcp-server/:真实 MCP 服务 academic_search_server.py + sources/(arxiv、crossref、pubmed、sciencedirect、scopus、elsevier_common)+ utils/(config/errors/logging)+ tests/(含 test_elsevier_live.py 真实联调)。config/:mcp-snippet.json、settings-snippet.json、triggers-academic-search.toml(供宿主集成)。scripts/:academic_search.py、converters.py、format-converter.py、preflight.py。references/:citation-parser.md、dedup-engine.md、source-tiers.md、search-strategy.md、6 个子工作流(wf1~wf6)、示例 .bib/.nbib/.ris。nature-paper-to-patent(最重的写作技能)除 SKILL.md/README 外,含 scripts/(含 disclosure/ 子目录,国知局公布公告检索,需 Playwright chromium)、templates/、references/、requirements.txt + scripts/disclosure/requirements-cnipa.txt。
nature-writing、nature-reviewer、nature-data、nature-statistics、nature-reader、nature-paper-card、nature-response、nature-paper2ppt、nature-ref-verifier、nature-literature-pipeline、nature-experiment-log、nature-proposal-writer 均遵循 §4.4 表格所列用途,内部结构同「SKILL.md + manifest.yaml + static/ + references/(+ scripts/templates/assets)」范式,README.md/README_EN.md 一一镜像。
.svg/.pptx/.docx/.enw/.html/可执行脚本,且多带来源标注与边界说明。vercel-labs/skills 生态 + 自带 Codex/Claude 同步与自动更新脚本,安装路径清晰。Draft/Beta,仅 nature-figure/nature-polishing/nature-ref-verifier/nature-literature-pipeline 标 Stable,部分技能未经真实学术内容充分验证。nature-downloader 的「合法获取」边界依赖用户自身权限,存在合规与账号风险。references/static/scripts,保持中英文 README 镜像、manifest 路径一致、CI 全绿,维护成本随规模线性上升。axes → 文件映射 抽到 manifest.yaml,SKILL.md 只做路由决策,实现「按需加载、低成本、易扩展」——这是相比单体巨指令文件的显著工程进步。../nature-shared/ 共享包机制:通过 manifest 路径校验白名单(.. 仅允许指向 nature-shared/),在「自包含」与「复用」间取得平衡,且校验脚本防止越界路径逃逸。nature-citation 明确标注候选为 metadata-only;nature-figure 的 AI 示意图明确「草稿、不编造数值」;体现对 LLM 局限性的诚实设计。nature-academic-search 把技能做成真实 MCP 服务,nature-downloader 配完整测试套件,把「prompt 技能」推向「软件工程产物」。nature-citation 用原生 JS 生成可筛选/勾选/导出的引用浏览页,把「导出文件」升级为「可交互审查界面」。validate-skill-metadata.py 等把「必需文件、name 一致、路径存在、相对路径、不越界、徽章数」编码为自动门禁,保证 19 个技能的目录结构长期不腐化。autoupdate-skills.sh 的「节流 + 离线容忍 + 非破坏性 + 仅 HEAD 变化才同步」四原则,是「Agent 启动时静默自更新」的教科书级实现。nature-skills 是一套面向 Nature/CNS 级科研场景的、生产级组织的 Agent Skills 生态。它最大的价值不只是「18 个科研技能」,而是提供了一套可复用、可审计、可版本化、跨代理分发的技能工程方法论——以 SKILL.md 路由器 + manifest.yaml 声明式分包 + static/references/scripts 分层为核心,把顶级期刊的隐性行规转译为机器可读、可被 AI 直接执行的指令与脚本。
对中文科研用户而言,它降低了「用 AI 做规范科研」的门槛;对 Agent Skills 生态建设者而言,它是 vercel-labs/skills 规范下内容最厚重、工程化最完整的实例之一。其短板主要在于 LLM 固有不确定性、部分技能成熟度、以及文献/下载类技能的合规边界——这些作者在设计中已用「候选标注、草稿边界、CI 门禁」做了诚实的缓解,但是否「可放心直接用于投稿」仍需使用者保持人工把关。
本解读基于仓库 README、SKILL.md/manifest.yaml、安装/自动更新脚本、元数据校验脚本与 nature-citation 核心源码整理,未做删改概括,可对照原仓库核对。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。