Skip to main content
skill CX Codex

publication-chart-skill — Claude Code skill: setup and workflow

Converts research data into publication-ready scientific figures and tables using pubfig and pubtab. Helps select chart types and exports clean LaTeX.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add Galaxy-Dawn/claude-scholar --skill publication-chart-skill -a claude-code
Open on GitHub

What publication-chart-skill does

This skill manages the publication visualization workflow from intent to runnable code. It relies on pubfig for scientific charts and pubtab for tables. Before generating code, it checks your active Python interpreter with scripts/ensure_publication_tooling.py or standard package managers, installing missing packages automatically when needed.

The workflow refuses to render finished charts if critical statistical context is missing. It checks your unit of analysis, missing data handling, and error-bar basis before plotting. If evidence boundaries remain vague, it produces an audit instead of a misleading figure.

What it helps with

  • convert Excel spreadsheets into publication-grade LaTeX tables
  • select the right visualization type for research benchmarks
  • generate paired summary figures and companion tables for papers
  • audit draft charts for unresolved error bars or missing units

Example prompts for the agent

  • Turn these benchmark results into a publication-ready figure and a companion table
  • Convert this Excel ablation spreadsheet into clean LaTeX using pubtab
  • Review this draft calibration plot and upgrade it to publication quality

How to install publication-chart-skill

1Skills CLI (Vercel)

npx skills add Galaxy-Dawn/claude-scholar --skill publication-chart-skill -a claude-code

2Manually: put the files in place

~/.claude/skills/publication-chart-skill/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/publication-chart-skill/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about publication-chart-skill

How do I install publication-chart-skill in Claude Code?

Run npx skills add Galaxy-Dawn/claude-scholar --skill publication-chart-skill -a claude-code in your terminal.

What tasks does this skill avoid?

It does not handle manuscript prose writing, raw exploratory analysis without deliverables, or early layout in Figma.

Which Python packages are required?

The workflow depends on pubfig for figures and pubtab for tables, which it can install in the active environment via uv or pip.

Source text

SKILL.md · MIT
---
name: publication-chart-skill
description: This skill should be used when the user asks for a publication-quality scientific figure or table, wants help choosing the right chart for results, needs a paper-ready pubfig or pubtab workflow, wants a figure + companion table for a results section, wants an Excel sheet turned into publication-ready LaTeX, or wants an existing scientific figure/table reviewed and upgraded.
version: 0.2.0
---

# Publication Chart Skill

## Goal

Use this skill to turn research results into **publication-grade figures and tables** with an end-to-end workflow.

Primary production stack:

- **`pubfig`** for figures
- **`pubtab`** for publication tables

This skill covers the full delivery chain:

1. understand the scientific communication goal,
2. choose the right artifact type,
3. map the task to `pubfig`, `pubtab`, or both,
4. generate concrete runnable instructions,
5. export paper-ready assets,
6. run publication QA,
7. propose targeted revisions.

## Use this skill when

Trigger this skill for requests like:

- “make a publication-quality figure”
- “choose the right chart for these results”
- “turn these results into a paper-ready figure”
- “make a benchmark / ablation / calibration / forest / heatmap / scatter / line / bar figure”
- “make a benchmark / appendix / ablation table from Excel”
- “convert this Excel table into publication-ready LaTeX”
- “prepare one summary figure plus one companion table for the results section”
- “review and improve this scientific figure/table”
- “I already have a weak chart / screenshot / draft plot — make it publication-ready”
- “export panels for a paper figure”

## Do not use this skill for

Do **not** use this skill when the task is mainly:

- manuscript prose writing,
- statistical testing without artifact design,
- raw exploratory analysis with no publication deliverable,
- Figma-first layout work before the figure/table content is solid.

For simple composite assembly after the figure content is already strong, use the optional secondary workflow in `references/composite-assembly.md`.

## Primary contract

### Inputs

Expect some combination of:

- the scientific communication goal,
- available data shape,
- venue or style constraints,
- whether the artifact is a figure, table, or mixed deliverable,
- optional existing assets such as code, spreadsheets, `.tex`, screenshots, or draft plots,
- whether the user needs a first draft, a publication-ready artifact, or a review/revision pass.

### Outputs

The minimum useful output is:

- the recommended figure/table form,
- the recommended `pubfig` / `pubtab` route,
- a minimal runnable code snippet or CLI command,
- explicit export filenames and formats,
- a publication QA summary,
- and, when needed, a revision plan.

## Default workflow

### 0. Probe the environment and artifact state

Before generating anything, identify:

- whether `pubfig` or `pubtab` is actually available,
- whether the user already has code / spreadsheets / `.tex` / screenshots,
- whether the deliverable is a fresh build or a revision,
- whether the result needs exact values, fast visual perception, or both.

Prefer the smallest environment check that helps execution. When the bundled helper script is available, use it first:

- `python3 scripts/ensure_publication_tooling.py --require pubfig --json`
- `python3 scripts/ensure_publication_tooling.py --require pubtab --json`

Equivalent manual checks are still acceptable when needed:

- `python -c "import pubfig; print(pubfig.__version__)"`
- `python -c "import pubtab; print(pubtab.__version__)"`
- `pubtab --help`

Report the result clearly as **available** or **missing**.

If a dependency is missing and the task requires runnable execution:

- **auto-install it by default**,
- prefer the user’s active environment instead of guessing a random global interpreter,
- use `python3 scripts/ensure_publication_tooling.py --require ...` as the default bundled route when the script is present,
- let that helper choose `uv` vs `python -m pip` against the active interpreter,
- re-run the availability probe after installation,
- and only then continue with the artifact workflow.

Equivalent concrete commands include:

- `python3 scripts/ensure_publication_tooling.py --require pubfig`
- `python3 scripts/ensure_publication_tooling.py --require pubtab`
- `uv pip install pubfig`
- `uv pip install pubtab`
- `python -m pip install pubfig`
- `python -m pip install pubtab`

If auto-install fails, report the exact failure and then degrade gracefully.

Do not block on a full environment audit.

### 1. Classify the task

Classify the request along these axes:

- **artifact type**: figure / table / mixed deliverable
- **maturity**: exploratory draft / publication-ready generation / revision of an existing artifact
- **structure**: single panel / multi-panel / figure-plus-table package
- **evidence mode**: pattern perception / exact value lookup / both

Do not jump into plotting code before the communication target is clear.

Before plotting research results, lock the evidence contract:
- primary scientific claim,
- unit of analysis,
- primary metric and metric direction,
- whether repeated rows are independent,
- missing cells or incomplete comparison blocks,
- error-bar basis: subject, subject-task, fold, seed, run, or bootstrap sample,
- whether exact values need a companion table,
- whether the current evidence allows a winner/significance claim.

If these are unclear, ask or produce an audit recommendation instead of a polished figure. Do not create a paper-ready plot while the unit of analysis, missing-cell handling, or error-bar basis is unresolved.

### 2. Choose the representation

Choose the representation based on the scientific claim, not novelty or visual flair.

Common families:

- **comparison** — grouped scatter, bar, line comparison, benchmark summary, companion table
- **ablation** — grouped comparison, dumbbell, paired comparison, compact table
- **distribution** — box, violin, raincloud, histogram, density, ECDF, QQ
- **relationship** — scatter, bubble, contour2d, hexbin
- **trend** — line, area
- **evaluation / diagnostic** — calibration, ROC, PR, Bland–Altman, forest plot, volcano
- **composition / hierarchy** — UpSet, stacked ratio, donut, radial hierarchy, circular grouped or stacked bars
- **table** — benchmark table, ablation table, dataset summary, appendix table, error breakdown

Avoid weak defaults:

- avoid pie/donut when exact comparison matters and a bar/table is clearer,
- avoid radar unless the comparison is genuinely profile-like and low-cardinality,
- avoid 3D, decorative gradients, and dense legends used only for style,
- avoid forcing every result into a figure when a publication table communicates the evidence better.

If the request is ambiguous, explicitly state what scientific claim the artifact is supposed to support.

### 3. Map to the toolchain

Default mapping:

- **Figures** → `pubfig`
- **Tables** → `pubtab`
- **Mixed deliverables** → use both, with each artifact carrying a distinct role

Tool roles:

- `pubfig` is the default figure engine for scientific plots and paper-ready export.
- `pubtab` is the default table engine for Excel ↔ LaTeX workflows, preview, and publication-ready table export.
- Figma/composite assembly is an **optional secondary branch** for multi-panel finishing.

Route selection rules:

- prefer **Python** for `pubfig` figure generation,
- prefer **CLI** for `pubtab` when the task is file-driven,
- prefer **Python** for `pubtab` when the task is already inside a notebook or scripted pipeline,
- keep the figure and table responsibilities separate in mixed requests.

### 4. Generate concrete artifact instructions

Prefer the smallest production-ready artifact first:

- minimal runnable Python for `pubfig`, or
- minimal CLI/Python for `pubtab`

Then add publication parameters only when justified:

- labels, caption, width, export format, backend, preview, panel packaging, or composite layout.

Keep filenames and suffixes explicit.

Good defaults:

- figures: one `pubfig` call + one `save_figure(...)`
- multiple figure outputs: `batch_export(...)`
- tables: one `pubtab xlsx2tex ...` or `pubtab.preview ...`
- mixed requests: one figure route + one table route, clearly separated

### 5. Define the delivery contract

For every response, make these explicit when possible:

- the claim the artifact supports,
- which part is handled by `pubfig` and which by `pubtab`,
- the output filenames,
- the output formats,
- whether the artifact is draft / final / revision,
- what still needs user-provided data or manuscript context.

### 6. Run publication QA

After generation, check:

- title and legend density,
- axis labels and units,
- category ordering and baseline clarity,
- color accessibility and grayscale robustness,
- font / line-weight consistency,
- caption readiness,
- figure/table readability after downscaling,
- panel consistency for multi-panel figures,
- venue-fit issues such as width, crowding, or over-annotation.

The QA output must be concrete. Do not say “looks better” without naming why.

### 7. Revise

If the result is weak, revise with specific changes such as:

- switch chart family,
- remove chartjunk,
- reorder categories,
- move exact values into a table,
- split a crowded panel,
- add or simplify the caption,
- change export width,
- or convert the deliverable from figure-first to table-first.

## Missing dependency behavior

If `pubfig` or `pubtab` is not available:

- do **not** fail immediately,
- first attempt automatic installation into the active environment,
- prefer `python3 scripts/ensure_publication_tooling.py --require ...` when the bundled script exists,
- explicitly state which dependency is missing,
- state which install command or helper route is being used,
- re-check availability after installation,
- if installation succeeds, continue with the runnable workflow,
- if installation fails, degrade to a design/specification workflow,
- provide pseudocode or draft commands,
- preserve the recommended figure/table structure,
- still provide QA and revision guidance.

## Composite assembly rule

Treat composite or Figma assembly as **secondary**:

- use it when the user explicitly wants a multi-panel paper figure,
- or when panel-level export and layout polishing are genuinely needed.

Do not escalate simple figure tasks into composite/Figma workflows by default.

## Output style rules

- Prefer direct, implementation-usable outputs.
- Explain the **why** of chart/table choice briefly, then give the runnable route.
- When execution matters, include a short environment status block such as `pubfig: available/missing`, `pubtab: available/missing`.
- If a dependency is missing, state the exact helper command or install command, perform the installation, and report the post-install status.
- When a table is stronger than a figure, say so explicitly.
- When a figure is stronger than a table, say so explicitly.
- When both are needed, assign them different communication roles.
- Keep revision guidance actionable and falsifiable.

## Recommended response shape

A strong response using this skill usually has 6 parts:

1. **Artifact decision** — figure / table / paired deliverable, and why
2. **Tool route** — `pubfig`, `pubtab`, or both
3. **Minimal implementation** — runnable code or CLI
4. **Export plan** — filenames, formats, width/backend/preview choices
5. **Publication QA** — what to verify before paper submission
6. **Revision plan** — what to change if the current artifact is weak

## Resources

Load these as needed:

- `references/workflow.md` — full end-to-end decision order and delivery contract
- `references/chart-selection.md` — task-to-chart mapping and anti-patterns
- `references/execution-and-verification.md` — environment probing, forced install behavior, and runnable verification
- `scripts/ensure_publication_tooling.py` — bundled probe + auto-install helper for `pubfig` / `pubtab`
- `references/pubfig-recipes.md` — shortest useful figure patterns and export routes
- `references/pubtab-recipes.md` — shortest useful table routes and backend guidance
- `references/source-guides/pubfig-architecture.md` — package layout and figure-generation boundaries from source
- `references/source-guides/pubfig-api-map.md` — stable public pubfig surface and chart-family map from `__init__.py`
- `references/source-guides/pubfig-export-flow.md` — figure export, publication sizing, and panel-export flow from source
- `references/source-guides/pubtab-architecture.md` — package layout and forward/reverse conversion architecture from source
- `references/source-guides/pubtab-cli-api-flow.md` — CLI-to-API control flow and batch/sheet behavior from source
- `references/source-guides/pubtab-backend-and-preview.md` — backend/theme split and real preview compile pipeline from source
- `references/publication-qa-checklist.md` — figure/table QA checklist
- `references/composite-assembly.md` — optional multi-panel and Figma branch

For prompt-shaped examples, see `examples/`.

© Galaxy-Dawn · MIT · Galaxy-Dawn/claude-scholar

Similar skills

Everything for Science and research →

From the same set29

results-report Turns a finished experiment into a structured report: what was tested, what holds up, what to do next. Runs after the results-analysis skill. CX Codex +1 490installs zotero-obsidian-bridge Moves Zotero-based literature notes into a project knowledge base with traceable evidence. Use it when paper notes, synthesis, and writing outputs need a fixed structure. CX Codex +1 473installs skill-quality-reviewer Audits local skills across description quality, structure, and writing style. Generates weighted letter grades and prioritized remediation plans before sharing. CX Codex +1 457installs ml-paper-writing Turns a research repo into a draft paper for NeurIPS, ICML, ICLR, ACL, AAAI or COLM. Citations get fetched and verified through APIs instead of written from memory. CX Codex +1 457installs daily-paper-generator A skill that searches arXiv and bioRxiv for recent papers on a topic and writes bilingual reviews of the ones it picks. CX Codex +1 410installs obsidian-literature-workflow Runs a project literature review inside an Obsidian vault: paper notes, synthesis, a related-work draft and a canvas of the links. CX Codex +1 408installs bug-detective A structured debugging workflow and error pattern guide for coding agents. It triggers on bug reports, failing tests, and broken scripts. CX Codex +1 404installs skill-improver Applies recommendations from skill review plans to Claude Code skill files. Backs up original files and checks YAML syntax. CX Codex +1 397installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor