Agent skill

Nature-Style Scientific Figures

by Yuan1z0825 in Yuan1z0825/nature-skills

Creates, revises, audits and exports manuscript-ready scientific figures in Python or R, and routes AI-generated graphical abstracts to a separate workflow.

Apache-2.0Auto-check passedResearch & Science

Install Nature-Style Scientific Figures

skills CLI
$ npx skills add Yuan1z0825/nature-skills --skill nature-figure -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Yuan1z0825/nature-skills nature-figure --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
nature-figure
GitHub stars
47k
Token cost
~3.1k tokens
SKILL.md length
1,495 words
Files
157 (incl. scripts, references, assets)
Skills in repo
23
Repo updated
First seen
Licence
Apache-2.0

At a glance

Creates, revises, audits and exports manuscript-ready scientific figures in Python or R, and routes AI-generated graphical abstracts to a separate workflow.

  • Works in 6 steps: Check for graphical-abstract and… → Load the manifest and the core layer → Resolve the plotting backend → …
  • Making a multi-panel figure for a paper submission
  • Calls python
  • Revising or auditing an existing manuscript figure

What it does

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.

When your agent uses it

  • 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

Example prompts

  • “Turn results.csv into a two-panel figure for my manuscript, using Python, with panel labels.”
  • “Audit figure3.pdf against typical journal figure requirements and list what to fix.”
  • “Draft a graphical abstract for my paper on enzyme inhibition through OpenRouter, as a draft only.”

Requirements

  • Python or R for plotting
  • OpenRouter access for the AI-schematic route

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Check for graphical-abstract and AI-schematic routes
  2. Load the manifest and the core layer
  3. Resolve the plotting backend
  4. Load the matching backend fragment
  5. Build the figure using the loaded material
  6. Reach for references only when needed

What it can do on your machine

Read from SKILL.md and the folder at commit e605b35. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~76
When it runs · the whole SKILL.md, loaded when a task matches
~3.1k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~47k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from Yuan1z0825/nature-skills at commit e605b35, republished under its Apache-2.0 licence (© Yuan1z0825). 1,495 words, ~3,078 tokens.

Download SKILL.mdSave it as .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.
name
nature-figure
description
Create, revise, audit, and export manuscript scientific figures in Python or R. Use for 论文配图、科研绘图、多面板图 and submission-ready plots, or explicitly requested AI-generated graphical abstracts and mechanism schematics. Not for interactive dashboards, data cleaning, or statistics-only analysis.

Nature Figure Making — Router

Routing protocol

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.

0. Check for graphical-abstract and AI-schematic routes

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:

  1. Read manifest.yaml and the always_load files.
  2. Read references/ai-graphical-abstract-workflow.md.
  3. Read references/openrouter-image-generation.md.
  4. Use scripts/generate_openrouter_schematic.py when the user wants a real API call or a reproducible payload.
  5. Treat output as a draft schematic / graphical abstract, not as a quantitative data panel. Do not invent experimental values, author logos, institutional marks, or unsupported mechanisms. Keep internal usefulness separate from submission eligibility.

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.

1. Load the manifest and the core layer

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.

2. Resolve the plotting backend

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:

  1. If the current request explicitly chooses Python or R, use that backend and save it with scripts/nature_figure_backend.py set python or scripts/nature_figure_backend.py set r.
  2. If the request provides a clearly language-specific input file/workflow, use that backend and save it.
  3. Otherwise reuse a Python/R choice already established in this task. If none exists, run scripts/nature_figure_backend.py get and use a returned python or r preference.
  4. If neither a task choice nor a saved preference exists, ask exactly one concise question — Python or R? I will remember this as your default. — and pause only dependent plotting steps. After the user answers, save the answer before proceeding.
  • 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.

3. Load the matching backend fragment

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.

Show full SKILL.md (818 more words)Show less
4. Build the figure using the loaded material

Apply the loaded material in this order:

  1. Figure contract (core/contract.md) — write the core conclusion, map the evidence chain, classify the archetype, set the journal/export contract, before any code.
  2. Multi-panel evidence architecture — when planning, restructuring, or auditing a labelled multi-panel figure, load 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.
  3. Default stance (core/stance.md) — archetype-first composition, hero panel, restrained palette, statistics/integrity as part of the figure.
  4. Backend fragment — the exclusive Python or R quick-start and execution rule.
  5. Template adaptation — when reusing built-in original examples, licensed external material, or user-provided plotting code, load references/asset-adaptation.md before mapping data or changing the script.
  6. Rendered QA and delivery preflight — load 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:

bash
python skills/nature-figure/scripts/audit_figure_collisions.py figure.pdf \
  --json-out figure.collision-audit.json \
  --overlay-pdf figure.collision-audit.pdf
  • FIX 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.

5. Reach for references only when needed

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

Files

SKILL.md and 156 other files (scripts, references, assets) in skills/nature-figure of Yuan1z0825/nature-skills.

  • SKILL.md
  • .gitignore
  • README.md
  • README_EN.md
  • agents/openai.yaml
  • assets/chart-atlas/atlas-01-bar-charts.png
  • assets/chart-atlas/atlas-02-line-trends.png
  • assets/chart-atlas/atlas-03-heatmaps.png
  • assets/chart-atlas/atlas-04-scatter-bubble.png
  • assets/chart-atlas/atlas-05-radar-polar.png
  • assets/chart-atlas/atlas-06-distributions.png
  • assets/chart-atlas/atlas-07-forest-interval.png
  • assets/chart-atlas/atlas-08-area-stacked.png
  • assets/chart-atlas/atlas-09-image-plates.png
  • assets/chart-atlas/atlas-10-network-matrix.png
  • assets/figures4papers/THIRD_PARTY_NOTICES.md
  • assets/figures4papers/assets
  • … and 140 more

Open the folder on GitHubat commit e605b35

Compare with similar skills

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.

Nature-Style Scientific Figures compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Nature-Style Scientific Figures this skillYuan1z0825/nature-skills47k—~3.1kAutomated safety check: PassApache-2.0
Scientific Figure MakingChenLiu-1996/figures4papers8.3k—~557Automated safety check: PassCustom licence
LaTeX Research PostersK-Dense-AI/claude-scientific-writer2.4k12 repos~4.1kAutomated safety check: NotesMIT
Academic Figurejoshua-zyy/academic-paper-writer115—~816Automated safety check: PassMIT
CUMCM Math Modeling AgentRealSeaberry/AutoMCM-Pro257—~1.6kAutomated safety check: PassMIT
Modeling Code and Result Contractsyushui2022/MathModel-Skill454—~1.4kAutomated safety check: PassMIT

Similar skills

  • 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…

    8.3k GitHub stars~557 tokensUpdated yesterday
    Data & AnalyticsAuto-check passed
  • LaTeX Research Posters

    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.

    2.4k GitHub starsUsed in 12 repos~4.1k tokens
    Documents & OfficeAuto-check: notes
  • Academic Figure

    joshua-zyy/academic-paper-writer

    Create, revise, or audit academic data/result figures for CS/AI/ML papers.

    115 GitHub stars~816 tokensUpdated 6 days ago
    Data & AnalyticsAuto-check passed
  • CUMCM Math Modeling Agent

    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.

    257 GitHub stars~1.6k tokensUpdated 1 mo ago
    Research & ScienceAuto-check passed
  • Modeling Code and Result Contracts

    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.

    454 GitHub stars~1.4k tokensUpdated 4 days ago
    Research & ScienceAuto-check passed
  • deepTools NGS Toolkit

    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.

    33k GitHub starsUsed in 12 repos~4.5k tokens
    Research & ScienceAuto-check passed

More from Yuan1z0825/nature-skills

All 23 skills in this repo
  • Nature Paper Card

    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.

    47k GitHub starsUsed in 2 repos~2.1k tokens
    Auto-check passed
  • Paper to Chinese Patent Drafter

    Yuan1z0825/nature-skills

    Drafts Chinese invention patent applications and technical disclosures from research papers or inventor materials, tying each claim feature to source evidence.

    47k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Researchwrite Proposal Pipeline

    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.

    47k GitHub starsUsed in 1 repo~1.1k tokens
    Auto-check passed
  • Nature Literature Downloader

    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.

    47k GitHub starsUsed in 2 repos~6k tokens
    Auto-check passed
  • Image to Editable PPTX

    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.

    47k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Manuscript Statistics Audit

    Yuan1z0825/nature-skills

    Audits or rewrites the statistical reporting in a manuscript: experimental units, replication, tests, uncertainty and figure legends, without inventing missing details.

    47k GitHub starsUsed in 2 repos~2.1k tokens
    Auto-check passed

Questions about Nature-Style Scientific Figures

What does Nature-Style Scientific Figures do?

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.

When should I use Nature-Style Scientific Figures?

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.

How do I install Nature-Style Scientific Figures in Claude Code?

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.

How do I install Nature-Style Scientific Figures in Codex?

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.

Can I use Nature-Style Scientific Figures in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Nature-Style Scientific Figures need to run?

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.

Does Nature-Style Scientific Figures access the network?

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.

Is Nature-Style Scientific Figures safe to install?

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.

What licence does Nature-Style Scientific Figures use?

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.

How many tokens does Nature-Style Scientific Figures use?

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.

What are the alternatives to Nature-Style Scientific Figures?

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.

Who maintains Nature-Style Scientific Figures?

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.