Scientific Figure Making
ChenLiu-1996/figures4papers
Covers publication-ready matplotlib figures for academic papers, slides, and reports—bars, trends, scatter, heatmaps, and multi-panel layouts—with this…
Creates, revises, audits and exports manuscript-ready scientific figures in Python or R, and routes AI-generated graphical abstracts to a separate workflow.
$ npx skills add Yuan1z0825/nature-skills --skill nature-figure -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Yuan1z0825/nature-skills nature-figure --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Yuan1z0825/nature-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/nature-figure .claude/skills/nature-figure && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "nature-figure" agent skill from https://github.com/Yuan1z0825/nature-skills/tree/main/skills/nature-figure into .claude/skills/nature-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nature-figure", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Yuan1z0825/nature-skills/tree/main/skills/nature-figureType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Yuan1z0825/nature-skills --skill nature-figure -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Yuan1z0825/nature-skills nature-figure --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yuan1z0825/nature-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/nature-figure .agents/skills/nature-figure && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nature-figure" agent skill from https://github.com/Yuan1z0825/nature-skills/tree/main/skills/nature-figure into .agents/skills/nature-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nature-figure", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Yuan1z0825/nature-skills --skill nature-figure -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Yuan1z0825/nature-skills nature-figure --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yuan1z0825/nature-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/nature-figure .cursor/skills/nature-figure && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "nature-figure" agent skill from https://github.com/Yuan1z0825/nature-skills/tree/main/skills/nature-figure into .cursor/skills/nature-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nature-figure", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Yuan1z0825/nature-skills.git --path skills/nature-figure--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Yuan1z0825/nature-skills --skill nature-figure -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Yuan1z0825/nature-skills nature-figure --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yuan1z0825/nature-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/nature-figure .gemini/skills/nature-figure && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "nature-figure" agent skill from https://github.com/Yuan1z0825/nature-skills/tree/main/skills/nature-figure into .gemini/skills/nature-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nature-figure", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Yuan1z0825/nature-skills nature-figureInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Yuan1z0825/nature-skills --skill nature-figure -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Yuan1z0825/nature-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/nature-figure .github/skills/nature-figure && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "nature-figure" agent skill from https://github.com/Yuan1z0825/nature-skills/tree/main/skills/nature-figure into .github/skills/nature-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nature-figure", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Yuan1z0825/nature-skills --skill nature-figure -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Yuan1z0825/nature-skills nature-figure --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Yuan1z0825/nature-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/nature-figure .opencode/skills/nature-figure && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "nature-figure" agent skill from https://github.com/Yuan1z0825/nature-skills/tree/main/skills/nature-figure into .opencode/skills/nature-figure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nature-figure", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
nature-figureCreates, revises, audits and exports manuscript-ready scientific figures in Python or R, and routes AI-generated graphical abstracts to a separate workflow.
The skill works as a router. For a plotting task it reads a manifest.yaml that declares a Python or R backend axis, loads the core layer and the matching resources, and reuses guidance already loaded on follow-up requests. It covers multi-panel, submission-ready figures and is not for interactive dashboards, data cleaning or statistics-only analysis.
Graphical abstracts and mechanism schematics made with AI follow a different route. The agent first reads an AI graphical-abstract workflow reference covering the audience brief, composition and palette, a policy gate, human scientific review, disclosure and provenance, and it does not ask whether to use Python or R. For explicit OpenRouter or GPT Image 2 requests it also reads an image-generation reference and uses generate_openrouter_schematic.py for a real API call or a reproducible payload. The result is a draft schematic, not a quantitative panel, so it must not invent experimental values, logos or unsupported mechanisms, and the target journal's current policy decides eligibility.
The folder includes a chart atlas of example images covering bar charts, line trends, heatmaps, scatter and bubble plots, radar, distributions, forest plots, stacked areas, image plates and network matrices, plus an OpenAI agent config and a third-party notices file.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e605b35. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Nature-Style Scientific Figures loads about 3.1k tokens when it runs, and up to ~47k if it reads all its reference files. Until then it costs about 76 tokens; SKILL.md has 1,495 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from Yuan1z0825/nature-skills at commit e605b35, republished under its Apache-2.0 licence (© Yuan1z0825). 1,495 words, ~3,078 tokens.
.claude/skills/nature-figure/SKILL.md (or your agent's skills folder). This skill also uses 156 other files; get the full folder from GitHub.For a new task, load the core and matching resources below. Reuse already loaded guidance on follow-ups; load more only when the task needs it.
For every graphical-abstract planning, generation, revision, or audit task that uses AI, read references/ai-graphical-abstract-workflow.md first. It owns the message/audience brief, composition and palette workflow, policy gate, human scientific review, disclosure boundary, and provenance requirements. A Nature Careers article is practitioner advice, not submission clearance; verify the current official policy for the exact target journal.
If the request is planning or auditing only, do not ask for Python or R unless the user also asks to render or revise a data-driven figure.
If the user explicitly asks to generate a manuscript schematic, graphical abstract, mechanism diagram, concept illustration, or paper schematic with OpenRouter, GPT Image 2, an image-generation API, or similar wording, do not ask "Python or R?". This is a non-plotting AI-schematic route.
For this route:
always_load files.If the user wants a hand-built, editable vector schematic (architecture, pipeline, agent or model block diagram, or mechanism flow) rather than an AI-generated image, do not ask "Python or R?". Read references/vector-schematic-workflow.md and references/vector-schematic-style-rules.md, confirm the brief with the user before drawing, and run scripts/audit_svg_schematic.py on the SVG before delivery. This route never plots data.
Only continue to the Python/R backend gate for plotting, charting, data visualization, or manuscript figure assembly tasks that are not explicit OpenRouter AI image-generation requests.
Read manifest.yaml. It declares the backend axis, the allowed values, and the file paths each value maps to.
Also read every file listed under always_load (static/core/contract.md and static/core/stance.md). These hold the figure contract, the backend gate, the missing-runtime rule, the privacy rule, and the default operating stance that apply to every figure job.
Backend selection applies only to rendering or editing plotting code. Reuse a choice already established in the same task and its follow-ups; do not ask again merely because a new message omits the language. Read-only figure review and backend-independent data inspection may proceed without this choice. If the backend remains unresolved, retain the one-time Python/R question and pause only dependent plotting steps. Explicit approval requirements and backend exclusivity remain in force.
Resolve the plotting backend from the current task before consulting the saved default. Decide the backend value in this order:
scripts/nature_figure_backend.py set python or scripts/nature_figure_backend.py set r.scripts/nature_figure_backend.py get and use a returned python or r preference.python — matplotlib / seaborn.r — ggplot2 / patchwork / ComplexHeatmap.Do not guess or choose a backend by aesthetics alone. Only recommend a backend when the user explicitly asks you to choose; then use references/backend-selection.md, state the reason, save the selected backend, and proceed. Once selected, the backend is exclusive for all drawing, previewing, exporting, and visual QA (see core/contract.md). This gate does not apply to the explicit OpenRouter AI-schematic route above.
After the backend is resolved, Read the mapped fragment (static/fragments/backend/python.md or static/fragments/backend/r.md). It carries the backend-only execution rule and the publication quick-start (rcParams/theme and export helper). Do not load the other backend's fragment.
Apply the loaded material in this order:
core/contract.md) — write the core conclusion, map the evidence chain, classify the archetype, set the journal/export contract, before any code.references/multipanel-evidence-architecture.md. Make the figure answer one Results-level scientific question; assign panels different inferential roles, not merely different metrics. When figure order must follow the manuscript argument, also load ../nature-shared/core/nature-results-discussion.md.core/stance.md) — archetype-first composition, hero panel, restrained palette, statistics/integrity as part of the figure.references/asset-adaptation.md before mapping data or changing the script.references/qa-contract.md, run the render-time panel-alignment gate for every multi-panel figure, scripts/validate_figure.py on the plotting source, scripts/audit_pdf_text.py on the exported PDF, and scripts/audit_figure_collisions.py on the same final PDF. Then inspect every panel and the complete figure at final physical size. Automated checks do not replace the panel-by-panel uncertainty, salience, spacing, and ambiguity audit.For every figure containing two or more comparable panels, measure the final
rendered plot-area rectangles before export and preserve the alignment JSON.
Python figures must call require_matplotlib_panel_alignment() from
scripts/audit_panel_alignment.py after the final layout draw. R/patchwork
figures must source scripts/panel_alignment.R, write the patchwork layout
manifest at the final export dimensions, and run the same backend-neutral JSON
auditor. Use a default physical tolerance of 1.5 pt for shared edges, widths,
heights, panel-label anchors and repeated gutters. FIX BEFORE DELIVERY or exit
code 1 blocks export; NOT AUDITABLE or exit code 2 blocks any claim that
alignment passed. A horizontal row of three or four equal-grid-span panels must
have equal final plot-area widths as well as equal heights and gutters; an
intentional unequal-width design requires a recorded panel-width exemption.
Structured unequal-span grids—including two stacked panels
beside one panel spanning both rows, in either column—must be inferred from
shared grid start/stop boundaries and checked automatically. Nested grids,
free-positioned hero panels, insets and colorbars may be excluded only through
explicit comparable groups or a recorded exemption with a reason. Do not
weaken the global tolerance to hide one intentional exception.
After every generated or revised Python/R scientific figure, export the final PDF and run the collision audit again; this is mandatory after any change to data geometry, text, fonts, legends, annotations, axes, error bars, panel size or layout, not only at final submission. Use:
python skills/nature-figure/scripts/audit_figure_collisions.py figure.pdf \
--json-out figure.collision-audit.json \
--overlay-pdf figure.collision-audit.pdfFIX BEFORE DELIVERY or exit code 1: repair the figure, re-export with the
selected plotting backend, and rerun all rendered QA.REVIEW REQUIRED: inspect every WARN at final physical size; record why an
intentional overlay is acceptable. Use --strict when WARN must block.NOT AUDITABLE or exit code 2: report the dependency/PDF blocker and do not
claim collision validation. Install requirements.txt when PyMuPDF is absent.The collision audit reads PDF geometry for both Python and R output. It does not redraw the scientific figure or authorize cross-backend plotting. Its optional marked PDF is a QA-only diagnostic artifact and must never replace the selected backend's source or submission files.
When the target is the flagship journal Nature, also load
references/nature-article-requirements.md. It separates initial-review files
from accepted-in-principle main and Extended Data production contracts and owns
the flagship legend limit.
When the target is Nature Machine Intelligence, instead load
../nature-shared/journal-formats/nature-machine-intelligence.md. Apply its
combined six-item main display budget, ten-item Extended Data maximum,
initial-versus-production boundary, 300-dpi/180-mm production checks and source-
data contract. NMI's current live pages do not assign a standalone per-legend
number, but its official 2018 brief guide set a historical advisory ceiling of
fewer than 300 English words per complete figure legend. Count the whole legend,
not each panel; aim for 150–250 words and keep it below 300 unless the live
submission system or editor gives a newer instruction. Do not import flagship
Nature's limit.
The chart serves the scientific logic; aesthetic polish is subordinate to making the core conclusion clear, defensible, and reviewable.
The files under references/ are deep references, not defaults. Open them on demand per the references.on_demand table in the manifest — for example references/figure-contract.md to build the contract, references/multipanel-evidence-architecture.md to turn one Results-level question into complementary panel roles and a claim-escalating figure sequence, references/asset-adaptation.md to reuse a plotting template safely, references/template-catalog.md for validated Python CSV templates, references/api.md for the Python palette and numerical/layout safety helpers, references/r-workflow.md for R, references/design-theory.md for color/typography/export rationale, references/common-patterns.md and references/chart-types.md for layout/chart recipes, references/nature-2026-observations.md for real Nature page archetypes, references/qa-contract.md before final delivery, references/nature-article-requirements.md for exact flagship Nature stage and upload rules, ../nature-shared/journal-formats/nature-machine-intelligence.md for exact NMI figure rules, references/ai-graphical-abstract-workflow.md for AI-assisted graphical-abstract planning, policy gating, human verification, and provenance, and references/tutorials.md / references/demos.md for worked examples.
Do not infer flagship Nature or NMI requirements from a Nature Communications corpus or from the visual-style examples in this skill.
© Yuan1z0825, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 156 other files (scripts, references, assets) in skills/nature-figure of Yuan1z0825/nature-skills.
Open the folder on GitHubat commit e605b35
Nature-Style Scientific Figures next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Nature-Style Scientific Figures this skillYuan1z0825/nature-skills | 47k | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| Scientific Figure MakingChenLiu-1996/figures4papers | 8.3k | — | ~557 | Automated safety check: Pass | Custom licence | |
| LaTeX Research PostersK-Dense-AI/claude-scientific-writer | 2.4k | 12 repos | ~4.1k | Automated safety check: Notes | MIT | |
| Academic Figurejoshua-zyy/academic-paper-writer | 115 | — | ~816 | Automated safety check: Pass | MIT | |
| CUMCM Math Modeling AgentRealSeaberry/AutoMCM-Pro | 257 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Modeling Code and Result Contractsyushui2022/MathModel-Skill | 454 | — | ~1.4k | Automated safety check: Pass | MIT |
ChenLiu-1996/figures4papers
Covers publication-ready matplotlib figures for academic papers, slides, and reports—bars, trends, scatter, heatmaps, and multi-panel layouts—with this…
K-Dense-AI/claude-scientific-writer
Builds conference-size scientific posters in LaTeX with beamerposter, tikzposter or baposter, including figure preparation, compilation and print preflight checks.
joshua-zyy/academic-paper-writer
Create, revise, or audit academic data/result figures for CS/AI/ML papers.
RealSeaberry/AutoMCM-Pro
Drives an end-to-end workflow for the CUMCM math modeling contest: reads the problem and data, researches, codes and verifies models, then writes a LaTeX paper and PDF.
yushui2022/MathModel-Skill
Generates result-evidence contracts, tables and runnable q1 to q3 modeling code scaffolds for a math modeling paper from a model route, a data plan and cleaned data.
davila7/claude-code-templates
Guides use of deepTools on sequencing data: BAM to bigWig conversion, QC, sample correlation, and heatmaps or profiles around TSS and peaks for ChIP-seq, RNA-seq and ATAC-seq.
Yuan1z0825/nature-skills
Builds a structured deep-reading card for one scientific paper, covering methods, how experiments support claims, limitations and research ideas, with a script to prepare the source.
Yuan1z0825/nature-skills
Drafts Chinese invention patent applications and technical disclosures from research papers or inventor materials, tying each claim feature to source evidence.
Yuan1z0825/nature-skills
Composes, revises or audits research proposals and opening reports through an evidence-first state machine with argument maps, section contracts and dynamic expert reviewers.
Yuan1z0825/nature-skills
Routes literature requests to lawful full-text sources: open access, publisher APIs, CNKI and institutional browser access, with a supporting-information gate.
Yuan1z0825/nature-skills
Rebuilds slide images, screenshots, scanned PDFs or image-only PPTX files as PowerPoint with editable objects, using a local CLI with per-page manifests and QA.
Yuan1z0825/nature-skills
Audits or rewrites the statistical reporting in a manuscript: experimental units, replication, tests, uncertainty and figure legends, without inventing missing details.
Works with
Categories
Creates, revises, audits and exports manuscript-ready scientific figures in Python or R, and routes AI-generated graphical abstracts to a separate workflow. The skill works as a router.yaml that declares a Python or R backend axis, loads the core layer and the matching resources, and reuses guidance already loaded on follow-up requests.
Nature-Style Scientific Figures fits situations like: making a multi-panel figure for a paper submission; revising or auditing an existing manuscript figure; exporting figures from Python or R in publication-ready form; drafting a graphical abstract or mechanism schematic with an image model.
Run `npx skills add Yuan1z0825/nature-skills --skill nature-figure -a claude-code`. Or copy the skill folder (skills/nature-figure in Yuan1z0825/nature-skills) into .claude/skills/nature-figure in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Yuan1z0825/nature-skills --skill nature-figure -a codex`. Or copy the skill folder (skills/nature-figure in Yuan1z0825/nature-skills) into .agents/skills/nature-figure in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Yuan1z0825/nature-skills --skill nature-figure -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nature-figure, .gemini/skills/nature-figure, .github/skills/nature-figure and .opencode/skills/nature-figure in your project.
Going by SKILL.md and its folder, Nature-Style Scientific Figures needs the command-line tools its instructions call (python). Our summary lists: Python or R for plotting; OpenRouter access for the AI-schematic route.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Nature-Style Scientific Figures is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 44k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Nature-Style Scientific Figures: Scientific Figure Making (ChenLiu-1996/figures4papers, 8.3k stars), LaTeX Research Posters (K-Dense-AI/claude-scientific-writer, 2.4k stars), Academic Figure (joshua-zyy/academic-paper-writer, 115 stars) and CUMCM Math Modeling Agent (RealSeaberry/AutoMCM-Pro, 257 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Yuan1z0825 (a GitHub user) maintains it in Yuan1z0825/nature-skills, which has 47,222 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 11, 2026.
Source: Yuan1z0825/nature-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.