figure-composer

figure-composer is a skill for Claude Code, Codex from aipoch/open-science. It costs 93 tokens per session (2,110 once invoked), scanned A, original, Apache-2.0.

A workflow for planning, creating, combining, and reviewing one publication-quality figure made of multiple panels.

In plain words
What is it for?
Use it to lay out panels on a 12-column grid, assign panel work, compose the final figure, inspect it, and run limited adversarial reviews.
Why use it?
It turns a research claim and fixed data references into a structured figure plan and includes review passes to catch problems.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

About the project

Open Science is a local-first, model-agnostic workbench for reproducible scientific research. Scientists use its AI agents, Python and R execution, data connectors, and traceable outputs for tasks such as literature review, analysis, simulation, and visualization across macOS, Windows, and Linux.

aipoch/open-science · 3,528 stars · on GitHub · aipoch.com

Install

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.

agentmods
npx agentmods add skills/aipoch/open-science/figure-composer
Any agent
npx skills add aipoch/open-science --skill figure-composer
Clone the repo
git clone --depth 1 https://github.com/aipoch/open-science

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for figure-composer

README.md
[![agentmods](https://agentmods.dev/badge/skills/aipoch/open-science/figure-composer.svg)](https://agentmods.dev/skills/aipoch/open-science/figure-composer)
Your own site
<a href="https://agentmods.dev/skills/aipoch/open-science/figure-composer"><img src="https://agentmods.dev/badge/skills/aipoch/open-science/figure-composer.svg" alt="Measured on agentmods" height="20"></a>
Per session 93 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,110 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What 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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00093 $0.02110
Opus 5 $0.00046 $0.01055
Sonnet 5 $0.00019 $0.00422
Haiku 4.5 $0.00009 $0.00211

Measured 6d ago against content hash b21232537807, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

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 6d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (kernel.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

resources/skills/figure-composer/SKILL.md · 212 lines

How it starts

The opening of the file, as written. The whole thing — 212 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Figure Composer — narrative → panels → compose → adversarial loop

figure-composer is the outer workflow for one multi-panel figure. Use the figure-style rules while planning and reviewing; every panel worker uses those rules independently. Run paper-narrative first when the paper-level figure sequence is still undecided.

Open Science Notebook call

Every notebook_execute request whose code uses a function named in this skill includes this skill ID:

{ "kernelSkillIds": ["figure-composer"], "code": "print(figure_outline_schema())" }

kernelSkillIds contains the skill ID; function calls belong in code. Call the named functions directly without an import or discovery step.

Inputs

  • claim: the one sentence the figure makes true without surrounding prose.
  • dataVersionIds: immutable Upload or Artifact Version identities grounding the panels.
  • width_mm: venue column width, commonly 85–89 mm single or 174–183 mm double.
  • rulesVersionId: immutable Artifact Version containing the design rules used by the composite reviewer.
  • delegatePrefix: short branch-unique prefix for panel and reviewer child names.

Run this workflow only in the Main/root agent. Delegated children cannot call host.delegate, so the whole composer cannot itself be delegated.

Entry points

  • From a claim: Main writes the outline in step 1 from the claim, data, and figure-style rules.
  • From an existing figure: inspect it with host.viewImage, then have Main draft and review the outline directly. Current host.llm calls do not accept images, so do not add a second hidden inference step. Pixels cannot supply Artifact Version identities; fill data_vid from the provided data.

1. Narrative → panel outline

Main produces a panel_outline matching figure_outline_schema():

{
  "claim": "…",
  "width_mm": 180,
  "ncol": 12,
  "row_heights_mm": [40, 60, 46, 52],
  "panels": [
    {
      "letter": "a",
      "role": "schematic",
      "row": 0,
      "col": 0,
      "colspan": 12,
      "chart_family": "schematic overview",
      "message": "…",
      "data_vid": null,
      "ask": "…"
    },
    {
      "letter": "b",
      "role": "primary",
      "row": 1,
      "col": 0,
      "colspan": 7,
      "chart_family": "scatter + trend",
      "message": "…",
      "data_vid": "…",
      "ask": "…"
    }
  ]
}

Read the full file on GitHub · 212 lines

Files

What ships with it

2 files 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.

Changes

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.

  1. 6d ago First seen · 212 lines · 93 tokens per session scan A b21232537807

Subscribe to this mod's changes

figure-composer is a skill published in the GitHub repository aipoch/open-science (3,528 stars, last pushed today), licensed Apache-2.0. It adds 93 tokens to every session and 2,110 once invoked, about $0.0005 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-30.

Related

Other skills, from other repositories

build-paper-pipeline

Build the pipeline stages a manuscript's TODO comments ask for.

calkit/calkit · 0 tokens

check-questions

Review a Calkit project's questions and answers against their evidence. Use when the user invokes /calkit:check-questions, asks whether the project's answers are still true, or after a pipeline run changes results that answers cite.

calkit/calkit · 51 tokens

clinical-case-report

Structured medical case presentation for clinical rounds, conferences, and documentation. Generates SOAP-format or narrative case reports with physiologically accurate vitals, labs, and evidence-based plans. Use when the brief mentions "case report", "case presentation", "SOAP note", "clinical case", "ward rounds"…

nexu-io/open-design · 73 tokens

proof-checker

Rigorous mathematical proof verification and fixing workflow. Reads a LaTeX proof, identifies gaps via cross-model review (external reviewer backend, ultra reasoning), fixes each gap with full derivations, re-reviews, and generates an audit report. Use when user says "检查证明", "verify proof", "proof check", "审证明"…

wanshuiyin/Auto-claude-code-research-in-sleep · 87 tokens

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.

wanshuiyin/Auto-claude-code-research-in-sleep · 67 tokens

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.

wanshuiyin/Auto-claude-code-research-in-sleep · 59 tokens