Skills

Figure Composer

Compose one publication-grade multi-panel figure.

Install

npx skills add HughYau/AcademicForge --skill figure-composer -g -a claude-code -y
Repository
HughYau/AcademicForge2.6k
Category
Engineering
Updated
2mo ago
License
Apache-2.0
Context cost
Mediumabout 2,252 tokens
Runs scripts
Yes, review before use

What it does

Compose one publication-grade multi-panel figure. Entry from a one-line claim + data files, OR from an existing figure via `derive_outline_prompt` (you read the PNG). Runs a per-figure loop: outline (12-col grid, per-panel ask + label_budget) → render each panel with `panel_task` (loading `figure-style`), one at a time or parallelized → tile + stamp letters with `compose_figure` → adversarial composite self-review with two-tier feedback (Tier-1 outline_revisions / Tier-2 per-panel violations) → regen affected panels, ≤3 rounds. Helpers: panel_task / compose_figure / compose_crops / composite_review_task / derive_outline_prompt. For one standalone plot use `figure-style`; for whole-paper figure ordering use `paper-narrative`.

Figure Composer, narrative → panels → compose → adversarial loop

Compose ONE publication-grade multi-panel figure: turn a one-sentence claim plus data files into an outline, render each panel, tile them into a composite, and harden it through an adversarial self-review loop.

Setup (any agent, no API key)

This is a pure skill, kernel.py is deterministic Python (PIL geometry plus schema/prompt builders) and you (the base model) do all the reasoning: reverse-engineering an outline from a figure, rendering panels, and the adversarial composite review. There is no host runtime and no LLM API. Load the helpers once per session in a Python cell:

exec(open("figure-composer/kernel.py").read())

Nothing auto-loads it outside Claude Science. Then call the helpers (panel_task, compose_figure, compose_crops, composite_review_task, derive_outline_prompt, …) directly; if one raises NameError, you have not exec'd kernel.py. Dependencies: pip install pillow matplotlib.

Step 0. Load figure-style alongside this skill, that is the design rules (and apply_figure_style() + helpers). You need it in context to write the outline, render the panels, and review the composite. Each panel is rendered against those same rules, whether you draw it yourself or hand it to a sub-agent (see §2), the maker loads figure-style first.

Inputs

  • claim, one sentence the figure makes true to a reader who reads nothing else.
  • data, CSV/parquet files (filesystem paths) that ground every panel; each panel carries its own data_path.
  • width_mm, target venue's column width (common: 85, 89mm single, 174, 183mm double; check the venue guide).

0. Where this sits

Read the whole SKILL.md on GitHub

More in Engineering