mathews-tom/armory/figure-table-quality
Claude Code and agent skill by mathews-tom/armory
- community
Checking that the SKILL.md file is still in the repository.
Readability and rendering audit for figures and tables in academic manuscripts. Computes effective font/marker sizes at display scale from generation scripts, checks label collisions, color/hatch accessibility, axis-range efficiency, table formatting, and cross-figure consistency. Triggers on: "check figure quality", "audit plots", "readability check", "figure rendering", "are my figures readable", "table formatting check". Companion to figure-rhetoric (visual argument) and manuscript-typography (typesetting).
Install
npx vskill@latest install mathews-tom/armory/figure-table-qualitySKILL.md
Figure & Table Quality Audit
Pipeline position: Phase 2.5 (between Grounding/Polish and Submission). Runs after figure-rhetoric (content) and before arxiv-preflight (compliance). See /manuscript-pipeline for full execution order.
Purpose
Verify that every figure and table in a manuscript renders at readable size in the compiled PDF. figure-rhetoric checks whether figures communicate the right message. This skill checks whether the reader can physically read them.
Execution
Step 1 — Build the display-scale map
For every \includegraphics in the .tex source:
- Extract the display width (e.g.,
\textwidth,0.7\textwidth,0.55\textwidth) - Compute the effective display width in inches using the document geometry
- Read the figure generation script to find the
figsizefor each figure - Compute:
scale = display_width / figsize_width
Also extract from the generation script or config:
- Base font sizes: title, label, tick, legend, annotation
- Marker sizes, line widths
- Bar widths (for grouped bar charts)
Step 2 — Per-figure audit (all 9 checks)
For each figure, compute effective values at display scale and check:
2a. Font size at render
| Element | Minimum | Warning | |
|---|---|---|---|
| Axis title | 7pt | 8pt | |
| Tick labels | 6pt | 7pt | |
| Legend text | 6pt | 7pt | |
| Annotations | 6pt | 7pt | |
| Panel titles | 7pt | 8pt |
FAIL if any element falls below minimum. WARN if any element falls below warning threshold.
2b. Label collision
Check for overlapping text in:
- X-axis tick labels (especially with rotation < 45° and > 3 labels)
- Y-axis tick labels (long text strings)
- Data annotations near each other
- Legend entries overlapping data
For rotated labels: compute horizontal footprint as len(label) × char_width × cos(rotation). If footprint > tick spacing, FAIL.
2c. Marker and line visibility
- Markers below 4pt effective: WARN
- Line widths below 0.5pt effective: WARN
2d. Bar chart readability
For grouped bar charts:
- Compute effective bar width in inches
- Check if bars are distinguishable (minimum 3pt effective width)
- Check if hatch patterns render at effective size
- Check for bar-label alignment
2e. Color and hatch accessibility
- Are all series distinguishable in grayscale?
- Do hatch patterns provide redundant encoding for color?
- Are there more than 5 colors without hatching? WARN
- Are similar colors used for unrelated series?
2f. Axis range efficiency
- Compute data range vs axis range
- If less than 40% of axis range contains data: WARN (wasted space)
- If data touches axis boundary: WARN (clipped data)
2g. Annotation readability
- Do any data annotations overlap each other?
- Are annotations positioned to avoid occluding data?
- Do annotations use consistent formatting (fontsize, weight)?
2h. Legend placement
- Does the legend overlap any data points or bars?
- Is the legend in a consistent position across similar figures?
- For multi-panel figures: is the legend in the first panel only (not repeated)?
2i. Whitespace and margins
- Does
tight_layout()or equivalent handle margins? - Are panel titles cut off?
- Is there excessive whitespace (> 30% of figure area empty)?
Step 3 — Table audit
For each \begin{tabular} or \begin{table}:
- Column alignment — Are numeric columns right-aligned? Text left-aligned?
- Rule style — Uses booktabs (
\toprule,\midrule,\bottomrule)? No vertical rules? - Caption position — Table captions above, figure captions below?
- Width — Does the table overflow margins? Check for
\resizeboxor\smallhacks. - Number formatting — Consistent decimal places? Aligned decimal points?
- Header clarity — Are column headers unambiguous?
Step 4 — Cross-figure consistency
- Shared elements — Do figures that share axes use the same scale?
- Color scheme — Is the same color used for the same condition across all figures?
- Label vocabulary — Are condition/model labels identical across all figures?
- Font family — Same font across all figures?
Output format
Auto-Fix Rules
AUTO-FIX (apply directly):
- Rotation increase for overlapping x-labels (20°/15° → 45°)
- figsize reduction to match display context (eliminate >25% downscaling)
- Missing
tight_layout()calls - Inconsistent label text across figures (align to config/source of truth)
HUMAN-REQUIRED (present and wait):
- Figure redesign (different layout, panel arrangement)
- Axis range changes
- Color scheme changes
- Font size increases that affect layout
- Table restructuring
Integration
This skill reads:
.texsource (\includegraphicsdirectives,\geometrysettings)- Figure generation scripts (figsize, font sizes, rotations, annotations)
- Figure config files (shared settings)
- Generated figure files (visual spot-check if PDF readable)
- Table
.texfiles
It does NOT:
- Evaluate whether figures communicate the right message (that's figure-rhetoric)
- Check arXiv format compliance (that's arxiv-preflight)
- Audit prose or claims (that's manuscript-review)
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/figure-table-quality/SKILL.md
Popularity
- Repository stars
- 251
- Repository forks
- 37
- 7-day trend score
- 28
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mathews-tom/armory/figure-table-quality)