$npx -y skills add neuromechanist/research-skills --skill figure-qaUse this skill to QA a scientific figure for journal compliance, alignment, palette correctness, and label legibility. Triggers on "QA this figure", "check this figure", "review my figure", "is this figure paper-ready", "validate figure", or when invoked proactively after a figur
| 1 | # Figure QA |
| 2 | |
| 3 | Routes a scientific figure to an **independent, fresh-context QA reviewer** that detects the input type, runs the deterministic checks (fonts, palette, geometry, alpha, DPI) via helper scripts, and adds a VLM rubric judgment for the aesthetic dimensions. This skill is a thin dispatcher: the detection logic, exit-code contract, VLM rubric, and report format all live in `references/figure-qa-procedure.md`, and the deterministic engine lives in the figures plugin's `agents/figure-qa-scripts/`. |
| 4 | |
| 5 | ## When to use |
| 6 | |
| 7 | Activate when a figure needs a journal-submission QA pass, or proactively after a figure-generation skill (scientific-figure, svg-figure, svg-primitives, transparent-icons, ai-full-figure, plot-styling) produces output, unless the caller passes `no-qa`. |
| 8 | |
| 9 | ## Why a fresh-context reviewer |
| 10 | |
| 11 | A QA pass is more trustworthy from a reviewer that did not just author the figure. Run it in a separate context and pass only the figure path, input type (if known), and target journal. On tools without subagents, run the procedure inline. |
| 12 | |
| 13 | ## Dispatch |
| 14 | |
| 15 | In every branch the reviewer follows `references/figure-qa-procedure.md` (strict separation: scripts own ground-truth measurements, VLM owns aesthetic judgment). |
| 16 | |
| 17 | - **Claude Code:** `Task(subagent_type: "figure-qa", ...)` passing the figure path and target journal. Honor a `no-qa` opt-out by returning immediately. |
| 18 | - **Codex CLI:** plugin installation exposes this skill, not a Codex subagent. To use a fresh-context Codex reviewer, first copy `agents/templates/figure-qa.toml` to `~/.codex/agents/` or `.codex/agents/`, then invoke that configured agent if the current Codex surface supports `/agent`. If no Codex subagent is configured or available, use the fallback branch. |
| 19 | - **Copilot CLI:** plugin installation exposes this skill and, through `.github/plugin/plugin.json`, the `.agent.md` reviewer in `agents/templates/`. Invoke that configured agent when the current Copilot surface supports custom agents. If running outside a plugin install, copy `agents/templates/figure-qa.agent.md` to `.github/agents/` or `~/.copilot/agents/`. If no custom agent is available, use the fallback branch. |
| 20 | - **Fallback** (no subagent support, or an interactive in-thread check): first locate the procedure (`$CLAUDE_PLUGIN_ROOT/skills/figure-qa/references`, else `find . -type d -path '*/skills/figure-qa/references' | head -1`); if it cannot be found, stop and tell the user to install the figures plugin rather than guessing checks. Then follow `references/figure-qa-procedure.md` directly. |
| 21 | |
| 22 | ## The brain (do not duplicate into dispatch or agent shells) |
| 23 | |
| 24 | - `references/figure-qa-procedure.md` -- no-qa opt-out, script location, type detection, per-branch checks, exit-code contract, VLM rubric, and the exact report shape. |
| 25 | - `agents/figure-qa-scripts/check_{svg,raster,plot_script}.py` (in the figures plugin) -- the deterministic engine, kept in place so other skills (e.g. svg-primitives) can call it directly. |