Agent skill · Data & Analytics

scientific-figure

Use when the user has scientific data (or a prompt alluding to scientific data) and wants a publication-quality figure made from it. A generator drafts and renders a figure that lands a frozen communication goal; an adversarial critic critiques it hard and grades it 1-5 per axis against a fixed rubric (message, aesthetic, clarity, integrity, and a conditional domain-completeness axis), aggregates to 0-100, and decides pass; the generator revises against the critic's findings until the grade clears a threshold or the budget is hit. Both roles may consult the literature (Semantic Scholar + arXiv

gaashergithub.com/gaasherGitHub ↗
claude-codeMIT
Install
npx skills add gaasher/Agent-Loop-Skills --skill scientific-figure --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 6
SKILL.md size: 15 KB
Bundled scripts: none
Version: 0.1.0
Requires: Requires Python 3.9+
Path: loops/scientific-figure/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 146
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# Scientific Figure Loop The artifact is a **scientific figure** (the rendered image + the `plot.py` that produces it). Each iteration **generates → critiques+grades**: a **generator** authors a rendering script and renders the figure to land the frozen `<goals>` message; an adversarial **critic** grades it 0-100 against the fixed `rubrics/rubric.md` and decides `pass`; the generator then revises against the critic's concrete `findings`. The loop runs until the grade clears `<pass_threshold>` or the budget is hit. All work happens on copies inside a sandbox; the user's data is copied in read-only and never edited. The cast (all in this folder): - `roles/generator.md` — drafts/revises `plot.py`, renders `figure.png` by running `<render_cmd>`, optionally grounds domain content via `<lit>`; writes `generation_notes.md`. - `roles/critic.md` — the adversarial grader: re-derives each rubric axis independently, spot-checks the figure's numbers against the data, optionally lit-checks domain completeness, and emits `schemas/critique.schema.json` (the grade + `pass` + executable findings). - `rubrics/rubric.md` — the **fixed** grading rubric (the critic never edits it). - `schemas/critique.s

What's inside
Steps it walks through
  1. Why the critic grades itself (the honesty problem)
  2. When to use
  3. Setup
  4. The loop
  5. Ledger
  6. Constraints
  7. Stops
Ships with 5 files
  • examples/run.example.yaml
  • roles/critic.md
  • roles/generator.md
  • rubrics/rubric.md
  • schemas/critique.schema.json
More from Agent-Loop-Skills
All skills →
About this skill
What does the scientific-figure skill do?

Use when the user has scientific data (or a prompt alluding to scientific data) and wants a publication-quality figure made from it. A generator drafts and renders a figure that lands a frozen communication goal; an adversarial critic critiques it hard and grades it 1-5 per axis against a fixed rubric (message, aesthetic, clarity, integrity, and a conditional domain-completeness axis), aggregates to 0-100, and decides pass; the generator revises against the critic's findings until the grade clears a threshold or the budget is hit. Both roles may consult the literature (Semantic Scholar + arXiv

How do I install it?

Run `npx skills add gaasher/Agent-Loop-Skills --skill scientific-figure --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From gaasher/Agent-Loop-Skills, a repository with 146 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going