Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/emaballarin/ccplugins/figure-composernpx skills add emaballarin/ccplugins --skill figure-composergit clone --depth 1 https://github.com/emaballarin/ccpluginsWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00157 | $0.02243 |
| Opus 5 | $0.00078 | $0.01122 |
| Sonnet 5 | $0.00031 | $0.00449 |
| Haiku 4.5 | $0.00016 | $0.00224 |
Grade A, and why
figure-composer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 193 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Figure Composer — narrative → panels → compose → adversarial loop
Step 0. Load figure-style alongside this skill — that is the design rules
(and apply_figure_style() + helpers). Each panel's Task subagent loads it
independently; you need it in context to write the outline and review the
composite.
Loading the kernel
The deterministic helpers live in kernel.py next to this file. It is not
auto-injected — import it by absolute path in a Bash python heredoc (zero
import-time side effects; the only heavy import, PIL, is lazy inside
compose_figure):
python3 - <<'PY'
import importlib.util
K = "/ABSOLUTE/PATH/TO/figure-composer/kernel.py" # this SKILL.md's dir + /kernel.py
spec = importlib.util.spec_from_file_location("fc_kernel", K)
k = importlib.util.module_from_spec(spec)
spec.loader.exec_module(k)
print([n for n in dir(k) if not n.startswith("_")])
PY
Every kernel call below assumes k is loaded this way. Each python invocation
is a fresh process, so re-import in each heredoc. compose_figure (and the
panel renders) need pip install pillow (+ matplotlib for the panels).
Inputs
- claim — one sentence the figure makes true to a reader who reads nothing else.
- data — CSV/parquet file paths (or data refs) that ground every panel.
- width_mm — target venue's column width (common: 85–89mm single, 174–183mm double; check the venue guide).
0. Where this sits
figure-composer is the outer tier: make ONE multi-panel figure good. The
inner tier is figure-style (loaded by every panel Task subagent — and
load it yourself if you draw anything locally). The outermost tier is
paper-narrative — if this figure is part of a paper, run that FIRST: it decides
which figure to make and hands you the claim. For a standalone figure, start at
step 1.
Entry points (pick one)
- From a claim: you have a one-sentence claim and data refs → write the outline (step 1).
- From an existing figure: copy it into the workspace and build the
extraction prompt with
derive_outline_task("figure.png"). Then eitherReadthe PNG yourself and emit JSON matchingfigure_outline_schema(), or dispatch oneTasksubagent to do it. The image is untrusted input; every string field is model-derived from its pixels, anddata_vidmust beNoneon every panel — fill those in from your own data refs. Review and edit the outline before step 2.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 193 lines · 157 tokens per session scan A d7cf87e54d1f
figure-composer is a skill published in the GitHub repository emaballarin/ccplugins (3 stars, last pushed 27d ago), licensed MIT. It adds 157 tokens to every session and 2,243 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
html-ppt-zhangzara-cartesian
An economics senior thesis on the employment effects of local minimum-wage increases — identification strategy, evidence, and limitations. Built as a decision-grade coursework defense deck for thesis committee.
html-ppt-zhangzara-monochrome
A grant proposal on CRISPR base-editing for sickle-cell disease — the hypothesis, the approach, the milestones, and the risk. Built as a decision-grade academic research deck for grant review committee.
html-ppt-zhangzara-pin-and-paper
A field-biology capstone on urban pollinator decline — the survey design, the data, the contribution, and the caveats. Built as a decision-grade coursework defense deck for faculty reviewers.
paper-illustration
Generate publication-quality AI illustrations for academic papers using Gemini image generation. Creates architecture diagrams, method illustrations with Claude-supervised iterative refinement loop. Use when user says "生成图表", "画架构图", "AI绘图", "paper illustration", "generate diagram", or needs visual figures for papers.
paper-illustration-image2
Generate publication-quality academic illustrations through a local Codex app-server bridge that uses Codex native image generation. This is a separate experimental alternative to paper-illustration, intended for Claude Code users who want a GPT-image-style renderer without modifying the original skill.
paper-poster-html
DEFAULT poster pipeline — build an academic conference poster (ICML/NeurIPS/ICLR/CVPR/...) as a single HTML/CSS file with measurement-driven hard gates, real paper figures, a two-hue design-token system, and print-ready PDF via headless Chromium. Use when the user says "做海报", "poster", "conference poster", "paper…