Skip to content
Research
Skill

/figure-composer

Compose or improve a publication-grade multi-panel scientific figure from a claim, concrete data paths, or an existing image. Use for figure outlining, parallel panel rendering, exact-grid composition, visual inspection, and adversarial figure review. Use figure-style for one

BOOST
From plugin
wisp-science
1k27 skills
Install
$ npx -y skills add xuzhougeng/wisp-science --skill figure-composer --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/figure-composer

Context preview

The summary Claude sees to decide when to auto-load this skill.

Compose or improve a publication-grade multi-panel scientific figure from a claim, concrete data paths, or an existing image. Use for figure outlining, parallel panel rendering, exact-grid composition, visual inspection, and adversarial figure review. Use figure-style for one

SKILL.md

figure-composer.SKILL.md
name: figure-composer
description: Compose or improve a publication-grade multi-panel scientific figure from a claim, concrete data paths, or an existing image. Use for figure outlining, parallel panel rendering, exact-grid composition, visual inspection, and adversarial figure review. Use figure-style for one standalone plot and paper-narrative for whole-paper figure ordering.
license: Apache-2.0

Figure composer

Load `figure-style` with this skill. The sidecar provides pure geometry, composition, task-building, and review-schema helpers. It does not call models, delegate Agents, resolve artifacts, or inspect images from Python.

Inputs

Require a one-sentence claim, target width in millimetres, and concrete project-relative or absolute data paths. Never use artifact ids as paths. For an existing figure, inspect the real image with `view_image` and write the outline yourself; pixels cannot reveal the source data path.

Workflow

1. Build an outline matching `figure_outline_schema()`. Put real paths in `data_path`; use `null` for schematics. 2. Make panel `a` the conceptual hook and panel `b` the primary evidence. Use a 12-column grid and one row per sub-claim. 3. Build one instruction per panel with `panel_task(...)`. 4. If `delegate_tasks` is advertised, submit the independent panel tasks as one batch. Grant each task the minimum advertised capabilities needed, normally `visualization` plus `project_read`. Require a concrete PNG filename in each output schema. If delegation is unavailable, render the panels sequentially with `python`. 5. Compose returned paths with `compose_figure(...)`. Do not pass placeholder markers to the composer. 6. Save the `compose_crops(...)` boxes with figure-style's `save_panel_crops(composite_path, compose_crops(outline))`, then call `view_image` on the composite and every crop. Fix seams, clipped labels, aliases, empty space, and misplaced panel letters before review. The crops are inspection debris, not products: they live in `.cache/figure-style/`, never beside the composite or under the output figures directory, and get deleted once the composite passes. 7. Build one reviewer instruction with `composite_review_task(...)`. Delegate it with `image_inspection`, `project_read`, and `reasoning` when those capability ids are advertised; otherwise perform the review in the current Agent. 8. Apply outline revisions and regenerate only affected panels. Stop after three rounds or when there are no blockers and at most two major findings.

Outline example

{
  "claim": "Treatment restores the disease-associated trajectory.",
  "width_mm": 180,
  "ncol": 12,
  "row_heights_mm": [42, 60],
  "panels": [
    {
      "letter": "a",
      "role": "schematic",
      "row": 0,
      "col": 0,
      "colspan": 12,
      "chart_family": "study schematic",
      "message": "The experiment tests trajectory rescue.",
      "data_path": null,
      "ask": "Show cohorts, treatment, sampling, and comparison."
    },
    {
      "letter": "b",
      "role": "primary",
      "row": 1,
      "col": 0,
      "colspan": 12,
      "chart_family": "trajectory plot",
      "message": "Treatment moves cells toward the healthy trajectory.",
      "data_path": "results/trajectory.csv",
      "ask": "Plot disease, treated, and healthy cells with confidence bands."
    }
  ]
}

Boundaries

  • Use `delegate_tasks` only as an explicit Wisp tool; never call delegation from

`python`.

  • Use `view_image` only on a concrete local image file.
  • Keep data preparation in normal project files. Use `run_in_context` only when

a deterministic render or preprocessing job is long enough to require a persisted Run; Agent delegation itself is not a Run.

  • Save the accepted composite to a stable project path and report that path.
Read more
Ships withwisp-science

The open-source, local-first AI research workbench. WISP — Workspace for Intelligent Scientific Practice Search the literature, run Python and R, query ~80 scientific databases, and keep the trail — figures, runs, decisions, and drafts — in one project.

Get the whole plugin
Stats
1,042
Stars
106
Forks
Active
Maintenance
Rust
Language
AGPL-3.0
License
33m ago
Last commit
3mo ago
Created
5h ago
Added

Repo: xuzhougeng/wisp-science

Other skills on wisp-science.