figure-review · git:20260712.f1a3b00 · 2026-07-12 · sha256 5bed40d446cf6f13

figure-review git:20260712.f1a3b00A

Immutable. This exact content is served forever at /api/v1/blob/5bed40d446cf6f13.

---
name: figure-review
description: Review every paper figure from the compiled document at print-realistic 150 DPI. Verify figure/caption/data consistency, required labels, units, references, readability, accessibility, float placement, and cross-figure visual coherence. Report SCIPAPER_STANDARD typed findings: objective figure/build contradictions as integrity blockers and aesthetic or borderline readability concerns as advisories, never a universal PASS/WARN paper verdict. Use after figure changes or before submission.
---

# figure-review — compiled-page evidence and typed feedback

> **Normative authority:** `docs/SCIPAPER_STANDARD.md`.
> This skill reviews rendered evidence. Project palettes and journal conventions are
> contextual references, not independent blocker policy.

## 0. Core rules

1. **Review the compiled document, not only raw vectors.** Render every page containing a
   figure at 150 DPI and inspect the rasterized page at normal size. Vector extraction may
   assist diagnosis but cannot replace the human-scale view.
2. **Read every actual figure.** A caption alone cannot verify curves, points, error bars,
   panels, labels or visual hierarchy.
3. **Trace scientific content.** Figure values, sample definitions, symbols and caption
   claims must agree with the generating data/script and manuscript.
4. **Type consequences correctly.**
   - missing/broken required figure, unreadable required scientific label, wrong unit,
     caption/figure contradiction, data mismatch, missing panel, broken reference or failed
     required build → `integrity_blocker`;
   - borderline font size, whitespace, palette preference, visual balance or nonessential
     polish → `advisory`;
   - any textual L0 occurrence follows the shared L0 policy.
5. **No figure PASS verdict.** Report what was measured, what was not, and the disposition
   of each finding.
6. **Do not invent visual thresholds.** Journal rules and intended print size determine
   applicability. Reference sizes below are review aids, not automatic blocker boundaries.

## 1. Compile and render

Use the paper's authoritative build command. A simple LaTeX fallback is:

```bash
pdflatex -interaction=nonstopmode main.tex
pdflatex -interaction=nonstopmode main.tex
```

Render every page at 150 DPI:

```python
import pymupdf as fitz

doc = fitz.open("main.pdf")
for index in range(len(doc)):
    pix = doc[index].get_pixmap(matrix=fitz.Matrix(150 / 72, 150 / 72))
    pix.save(f"review_p{index + 1:02d}.png")
```

Record:

- build command and result;
- compiled PDF path and timestamp/hash when available;
- page-to-figure mapping;
- pages or assets that could not be rendered;
- measurement state for rendering and source tracing.

A build or render failure is an execution failure; if it prevents a required figure from
appearing, also emit an `integrity_blocker`.

## 2. Per-figure scientific checks

For each figure, inspect the 150-DPI page and the source asset where useful.

### 2.1 Required content

- all referenced panels exist and panel labels match the caption;
- axes, units, legends, color bars and symbol definitions needed to interpret the result
  are present;
- figure numbering and `\ref{}` target the correct object;
- caption describes the plotted quantity, sample, statistic and uncertainty correctly;
- stated scales, cuts, normalization, sign convention and color mapping match the data;
- no clipping, accidental crop, overlap or rendering corruption hides scientific content.

Failures that change or prevent scientific interpretation are `integrity_blocker`.

### 2.2 Readability at intended size

Inspect without zooming:

- axis and tick labels;
- legend and annotation text;
- panel labels;
- line and contour separation;
- marker visibility;
- error bars;
- color-bar ticks and labels;
- dense table-like cells inside figures.

Reference ranges for a conventional two-column paper are approximately 8 pt for axis labels,
7 pt for ticks/legend, 9 pt for panel labels and 6.5 pt for nonessential annotations. Use the
journal template and actual final width where available. A slightly smaller but clearly
readable annotation is an advisory, not an automatic blocker. An unreadable label required to
identify a quantity, sample or panel is a blocker.

### 2.3 Accessibility and encoding

- important distinctions survive grayscale when the venue requires print accessibility;
- color is not the sole carrier of class, sign or model identity when readers need the
  distinction;
- palettes are perceptually appropriate for sequential/diverging/categorical data;
- identical physical quantities use consistent range and mapping unless the difference is
  explicitly signaled;
- line styles, markers or labels provide redundant encoding where needed.

Accessibility that blocks interpretation is a blocker; stronger redundancy or palette polish
is advisory.

### 2.4 Geometry and placement

- aspect ratio does not distort coordinates or images;
- square physical maps remain square when required;
- subpanels align and use consistent margins;
- whitespace does not bury the data or create accidental emphasis;
- the float appears near its first substantive reference;
- single/double-column choice matches the information density.

Wrong geometry that changes scientific interpretation is a blocker. Placement, whitespace and
balance are normally advisories.

## 3. Source and manuscript cross-check

For every figure:

1. identify the live generator and upstream data;
2. verify the figure asset was produced from the current source rather than a stale copy;
3. compare caption and manuscript numerical claims with plotted data/output;
4. verify all samples, cuts, units, uncertainty definitions and color conventions;
5. inspect any figure-derived values quoted in abstract, results or conclusion;
6. record file/line or data-cell provenance.

Do not rerun a heavy multi-minute pipeline locally when project rules require cloud execution.
Use current verified artifacts or the authorized compute environment.

## 4. Cross-figure consistency

Compare all figures for:

- font family and math typography;
- notation and terminology;
- palette semantics;
- line/marker identity for recurring methods or samples;
- axis-label grammar and unit formatting;
- panel-label sequence;
- color-bar placement and scale behavior;
- relative visual weight for comparable data density.

Inconsistency that maps the same visual encoding to conflicting scientific meanings is a
blocker. Pure styling variation is advisory.

Project-specific conventions may be loaded from the manuscript repository, figure scripts or
style guide. Verify them from current files rather than relying on values copied into this skill.

## 5. Fix and re-review

For authorized edits:

1. rank findings by the unified standard;
2. repair scientific blockers at the generating source when possible, not by covering them in
   LaTeX or caption text;
3. apply the minimum visual change for readability/advisory findings;
4. regenerate the asset using the live script;
5. rebuild the paper;
6. re-render the affected full page at 150 DPI;
7. re-inspect the figure, caption, references and dependent manuscript claims;
8. report residual advisories and unavailable measurements.

Do not upscale a raster to simulate real resolution, edit a stale exported asset while leaving
the generator wrong, or change data limits solely to make the plot look cleaner.

## 6. Report contract

```markdown
# Figure Review — Typed Feedback Report
Target: <main file> | Compiled PDF: <path>
Workflow state: DISPOSITION_COMPLETE | REVIEW_ONLY | EXECUTION_FAILURE

## Measurement state
| axis | status | provenance / limitation |

## Figure inventory
| figure | page | asset | generator/data provenance | rendered |

## Ranked findings
| id | kind | rule | figure/page | evidence | source trace | action | disposition |

## Per-figure observations
### Figure N
- scientific content and caption agreement
- readability at 150 DPI
- accessibility and geometry
- residual advisories

## Cross-figure observations
<typed findings and evidence>

## Author decisions required
<strong advisories or unavailable evidence>
```

Do not use a `PASS`/`WARN` status column. A figure with no current findings is recorded as
“no findings under measured axes”, not as proof that every unmeasured property is correct.

## 7. Stopping rule

Figure review is disposition-complete when:

- all figure-related integrity blockers are resolved or verified false positives;
- applicable textual L0 targets are zero;
- every strong figure advisory is acted, accepted, rejected as false positive, or pending with
  a stated reason;
- ordinary aesthetic advisories and unmeasured axes are reported;
- affected pages have been rebuilt and re-rendered at 150 DPI.

## 8. Anti-patterns

- Reviewing only the raw PDF/vector source.
- Reading captions without viewing the actual figure.
- Treating every font-size recommendation as a blocker.
- Treating palette preference as scientific failure.
- Calling a figure PASS because no issue was noticed.
- Fixing a data mismatch in the caption instead of the generator/data.
- Ignoring a broken or missing figure because the prose describes it.
- Relying on color alone for a required distinction without checking accessibility.