From armory
Readability and rendering audit for figures and tables in academic manuscripts. Computes effective font/marker sizes at display scale, checks label collisions, color access, and table formatting.
How this skill is triggered — by the user, by Claude, or both
Slash command
/armory:figure-table-qualityThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Pipeline position:** Phase 2.5 (between Grounding/Polish and Submission).
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.
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.
For every \includegraphics in the .tex source:
\textwidth, 0.7\textwidth, 0.55\textwidth)figsize for each figurescale = display_width / figsize_widthAlso extract from the generation script or config:
For each figure, compute effective values at display scale and check:
effective_font = script_font × scale
| 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.
Check for overlapping text in:
For rotated labels: compute horizontal footprint as
len(label) × char_width × cos(rotation). If footprint > tick spacing, FAIL.
effective_marker = script_marker × scale
effective_linewidth = script_linewidth × scale
For grouped bar charts:
tight_layout() or equivalent handle margins?For each \begin{tabular} or \begin{table}:
\toprule, \midrule, \bottomrule)? No vertical rules?\resizebox or \small hacks.## Figure & Table Quality Report
### Display Scale Map
| Figure | figsize | display | scale | verdict |
|--------|---------|---------|-------|---------|
| fig1 | 7×4 | 6.27" | 90% | OK |
### Per-Figure Findings
#### Figure 1 (fig1_resolve_rates.pdf)
- [PASS] Font sizes: tick 8.1pt, legend 8.1pt
- [PASS] No label collisions
- [WARN] Bar width 3.2pt — borderline at print size
...
### Table Findings
#### Table 1 (table1_resolve.tex)
- [PASS] Booktabs rules
- [PASS] Caption above tabular
...
### Cross-Figure Consistency
- [PASS] Color scheme consistent
- [FAIL] Label mismatch: fig2 uses "cmd", other figures use "Yuj"
### Summary
- [count] FAIL (must fix)
- [count] WARN (should fix)
- [count] PASS
AUTO-FIX (apply directly):
tight_layout() callsHUMAN-REQUIRED (present and wait):
This skill reads:
.tex source (\includegraphics directives, \geometry settings).tex filesIt does NOT:
npx claudepluginhub mathews-tom/armory --plugin armoryAudits whether manuscript figures support their claims across 8 rhetorical dimensions: chart-type fit, axis design, visual hierarchy, data density, caption clarity, perceptual accuracy, and narrative arc.
Provides universal QA checklist for scientific plots: overlapping labels, clipped text, missing axes/legends, overcrowded data, plus resolution, format, and color accessibility guidance.
Critiques figure visual quality using an 18-rule rubric. Renders the figure, reads source (matplotlib, Typst, SVG), and prints a scorecard with severity-ranked findings and fixes. Report-only.