Verify publication figures with a render-then-check QA pass — data-fidelity against every underlying row, axis/label floor-and-ceiling legibility, bounding-box collision detection for overlapping text/markers, and 300-dpi print-readiness. Use when proofing or auditing a finished figure for correctness and print quality, catching mislabeled or overlapping elements, or confirming a plot faithfully represents its data before submission. For CREATING the plot prefer alterlab-matplotlib (or alterl...
Scanned 9/6/2026
Install to Claude Code
npx -y skills add AlterLab-IEU/AlterLab-Academic-Skills --skill alterlab-figure-qa --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Alterlab Figure Qa?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/alterlab-ieu-alterlab-figure-qa)More formats (shields.io, HTML) on the badges page.
---
name: alterlab-figure-qa
description: Verify publication figures with a render-then-check QA pass — data-fidelity against every underlying row, axis/label floor-and-ceiling legibility, bounding-box collision detection for overlapping text/markers, and 300-dpi print-readiness. Use when proofing or auditing a finished figure for correctness and print quality, catching mislabeled or overlapping elements, or confirming a plot faithfully represents its data before submission. For CREATING the plot prefer alterlab-matplotlib (or alterlab-seaborn / alterlab-plotly); for multi-panel publication layout prefer alterlab-scientific-viz; for schematic diagrams prefer alterlab-scientific-schematics. Part of the AlterLab Academic Skills suite.
license: MIT
allowed-tools: Read Write Edit Bash(python:*) Bash(uv:*)
compatibility: "Runs under `uv run python` with the plotting stack already used to make the figure (Matplotlib and, for image/text-box checks, Pillow). No GPU, no account. Operates on a rendered figure plus the source data — it re-renders and inspects, it does not need network access."
metadata:
skill-author: AlterLab
version: "1.0.0"
---
# Figure QA (render-then-verify)
## Overview
A finished figure can look fine and still be wrong: a series plotted from the wrong column,
a legend covering a data point, tick labels clipped at the axis edge, or a 150-dpi export that
pixelates in print. This skill is a **render-then-verify** QA pass — it re-renders the figure
and checks it against a concrete, measurable checklist before submission. It **complements**
the plotting skills (which *make* figures); it does not create plots.
## When to Use This Skill
Use this skill when the user wants to:
- **Proof a finished figure** for correctness and print-readiness before submission.
- Confirm the plot **faithfully represents its data** (every row/series accounted for).
- Catch **overlapping or clipped** labels, legends, and markers.
- Verify **resolution / export** settings (e.g. 300 dpi, vector where required).
### Does NOT Trigger
| Scenario | Use instead |
|----------|-------------|
| Create/plot the figure in the first place | `alterlab-matplotlib` / `alterlab-seaborn` / `alterlab-plotly` |
| Lay out a multi-panel publication figure | `alterlab-scientific-viz` |
| Draw a schematic / diagram | `alterlab-scientific-schematics` |
| Build an infographic | `alterlab-infographics` |
## Core Capabilities
### 1. Data-fidelity check
Verify the rendered marks against **every row** of the source data: series count, point count
per series, min/max/range on each axis, and that categorical labels match the data's
categories. Flag any series plotted from the wrong column or a silently dropped subset.
### 2. Label floor-and-ceiling legibility
Check that tick labels, axis titles, and annotations are within legibility bounds — a **font
floor** (nothing below the journal's minimum pt at final size) and a **ceiling** (titles not
so large they crowd the panel) — and that nothing is clipped at the axis boundary.
### 3. Bounding-box collision detection
Compute the bounding boxes of text, legend, and markers and detect **overlaps/collisions**
(legend over data, colliding labels, out-of-axes text). Report each collision with its
location so it can be nudged.
### 4. Resolution and export QA
Confirm the export meets the target: **≥300 dpi** for raster, vector format where the venue
requires it, correct figure dimensions/column width, and embedded fonts. Fail the check if the
raster resolution is below the floor.
### 5. Report
Emit a pass/fail checklist per criterion with the specific offending element(s), so the fix is
actionable. See `references/figure_qa_checklist.md` for the full rubric and Matplotlib bbox
recipes.
## Resources
- `references/figure_qa_checklist.md` — the full QA rubric, Matplotlib renderer/bbox recipes
for collision detection, dpi/vector export checks, and journal legibility floors. Loaded on
demand.
Part of the AlterLab Academic Skills suite.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!