Agent skill · Audited from source
Figmirror
skill · VILA-Lab/FigMirrorLicence not declaredAudited 18 Oct 2026 · source 0a7231a8d795
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 0a7231a8d795 and found no filesystem, network or shell access and no hard-coded secrets. What it does: FigMirror mirrors the visual style of a top-conference paper figure (NeurIPS / ICML / ICLR / Nature family) onto the user's own data. Takes dirty data plus a reference figure screenshot (cropped or uncropped),…
Cite
Cite this page
ModelsAtlas. “Figmirror (VILA-Lab/FigMirror)”. Retrieved 18 Oct 2026. https://modelsatlas.com/skills/vila-lab/figmirror
Trust audit
Audit 0.4.1 · source read 18 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 16,667 of 17,602 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | PASS | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 2 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (2)
LOWPrompt injectionprompt.transfer_instruction · docs/assets/icons/LICENSE-lucide.txt:21
airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-
- Why
- an instruction to move sensitive data to an outside destination
- Fix
- remove; a skill never needs the user's secrets off the machine
INFOPrompt injectionprompt.authority_framing · references/reviewer.md:5
You are a senior author at a top-tier ML conference. You are capable of glancing at a
- Why
- No further detail recorded for this rule.
- Fix
- —
Audit 0.4.1 · source sha 0a7231a8d795 · 18 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- PublisherVILA-Lab GitHub organizationOwner of the repository this skill is read from
- Source folderVILA-Lab/FigMirror/.claude/skills/figmirrorThe exact folder we audited
- LicenceNot declaredAs the repository states it
- Commit pinned for this verdict0a7231a8d795A new audit runs when the source changes
- Repository statusNot archivedLast push 18 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: FigMirror mirrors the visual style of a top-conference paper figure (NeurIPS / ICML / ICLR / Nature family) onto the user's own data. Takes dirty data plus a reference figure screenshot (cropped or uncropped),…
---
name: figmirror
description: >
FigMirror mirrors the visual style of a top-conference paper figure (NeurIPS /
ICML / ICLR / Nature family) onto the user's own data. Takes dirty data plus a
reference figure screenshot (cropped or uncropped), preprocesses the reference
crop, runs a Drawer/Reviewer loop, and outputs a camera-ready PDF plus a
self-contained matplotlib script with an inline DATA SECTOR.
---
# FigMirror (`figmirror`)
Use this skill when the user wants to:
- Transfer the visual style of a top-conference paper figure to their own data.
- Produce a camera-ready matplotlib figure matching a reference screenshot in
style, not in data.
- Mirror 3D paper-figure references such as surfaces, scatter, trajectories,
bars, layered waterfalls, or plane projections when the reference or data is
actually 3D.
- Receive a self-contained `.py` script with editable inline data plus PNG/PDF
outputs.
## Required Inputs
- A reference figure screenshot (`PNG`/`JPG`). It may include margins, captions,
neighboring panels, or page text; Stage 0 preprocesses it.
- The user's data in any parseable form: pasted table, CSV, TSV, markdown table, or
dirty terminal text.
- A working directory for iteration artifacts.
## 3D Insert Gate
Enable `references/three-d-prompting.md` only when the user asks for a 3D
figure, the reference is visibly 3D, or the parsed data requires a 3D encoding
such as `x/y/z`, surfaces, trajectories, layered profiles, closed objects, 3D
small multiples, 3D bars, or plane projections. Do not use this insert to turn
an ordinary 2D task into 3D.
## Architecture
- **Python runner** owns UI lifecycle, cancellation, optional
data-gen, and launching the main `claude` process.
- **The top-level `claude` process is Orchestrator only.** It owns iteration state,
role dispatch, artifact checks, Reviewer audit-view staging, deterministic
review-gate invocation, stop decisions, and final selection.
- **Drawer** runs as the named `figmirror-drawer` custom subagent through the
`Task` tool with `subagent_type="figmirror-drawer"` and
`run_in_background=false`. It writes each iteration's matplotlib
script, render, notes, and floor self-check in the staged workdir.
- **Reviewer** runs as the named `figmirror-reviewer` custom subagent through the
`Task` tool with `subagent_type="figmirror-reviewer"` and
`run_in_background=false`. It sees only the staged audit view:
the far-view composite, full-resolution reference/draft near views, the
Reviewer prompt, the aesthetic library, fixed diagnostics, and optional fixed
3D audit material. It returns strict
JSON including `boxes`; `figannot.py review-decision` validates and records the
result before any Drawer or finalization decision. The `Task` tool carries a
single text prompt and has no attachment channel, so the Orchestrator gives
the Reviewer an ordered list of absolute image paths and the Reviewer opens
each one with `Read`, once, in that order.
- **3D flow** uses the standard Orchestrator plus named Drawer/Reviewer
subagents, and optional candidate-scoring path for strict reproduction.
## Workflow
1. Read these bundled references from this skill directory:
- `references/preprocessor.md` for Stage-0 reference crop cleanup.
- `references/orchestrator-claude.md` for loop wiring and stop conditions.
`references/orchestrator-codex.md` ships alongside it as the diff baseline
for the port and must not be followed at runtime.
- `references/drawer.md` for the Drawer instructions.
- `references/reviewer.md` for the Reviewer instructions.
- `references/aesthetic-library.md` for the L2 convention library.
- `references/three-d-prompting.md` only when the 3D insert gate is enabled.
2. Preserve the uploaded reference as `inputs/reference_raw.png`, then run the
reference preprocessor to write `inputs/reference_clean.png`,
`inputs/reference_crop_check.png`, and `inputs/reference_crop_report.md`.
It is dispatched as a general-purpose subagent — there is no named
preprocessor role — per the Stage 0 section of
`references/orchestrator-claude.md`. Skip it only when the runner already
staged those three files.
3. Echo the parsed data structure before drawing. If the user explicitly asked you
to make up data or proceed without confirmation, record that in `data_echo.md`
and continue; otherwise ask for confirmation.
4. When the 3D insert gate is enabled, stage `references/three-d-prompting.md`
plus `references/three-d/` beside the normal prompts. The router selects
exactly one mode file: `three-d/style-transfer.md` for ordinary user-data
figures, or `three-d/strict-reproduction.md` for reproduction, comparison, or
candidate/control replacement. For strict 3D reproduction runs that need
quantitative candidate diagnosis, also stage `scripts/score_3d_candidates.py`;
do not use that scorer for ordinary style transfer. The top-level
Orchestrator owns final selection and must run the selected mode's
rendered-image gates before copying any candidate to the final figure.
Always stage `scripts/figannot.py`; it is the deterministic operator for
building audit composites and drawing Reviewer boxes.
5. The top-level agent follows `references/orchestrator-claude.md` and
dispatches `figmirror-drawer` for each iter. Every Drawer prompt includes the
exact trace line `Iter: <N>` with the current non-negative decimal iteration.
The Drawer writes
`figure_iter<N>.py`, `img_iter<N>.png`, `notes_iter<N>.md`, and
`floor_selfcheck_iter<N>.txt`; the Orchestrator verifies those files before
any Reviewer handoff.
6. Stage `audit_view_<N>`, run `scripts/figannot.py compose` to create
`composite.png` and `review_prompt.txt`, fit the staged near views with
`scripts/fit_images.py`, and dispatch `figmirror-reviewer` as
described in `references/orchestrator-claude.md`. List `composite.png`,
`reference_clean.png`, and `draft_fullres.Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 0a7231a
uv run --project /absolute/path/to/repo python /absolute/path/to/run-directory/tools/figannot.py review-decision \ uv run --project /absolute/path/to/repo python /absolute/path/to/run-directory/tools/figannot.py draw --out-dir /absolute/p
git clone https://github.com/VILA-Lab/FigMirror git -C FigMirror checkout 0a7231a8d795
Commands as the repository documents them: shown, never run by us. Our verdict covers commit 0a7231a8d795 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
| Codex | Mentioned in its text, not tested | Skills for Codex · About Codex |
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
0a7231a8d795
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/vila-lab/figmirror/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
VILA-Lab/FigMirror
Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.
VILA-Lab/FigMirror
Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.
VILA-Lab/FigMirror
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.
VILA-Lab/FigMirror
Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.
op7418/guizang-material-illustration
Generate Guizang-style material illustrations, labeled explanatory visuals, material-styled chart illustrations, and data-first editorial images from articles, notes, product concepts, workplace reports, creator posts,…
langgenius/dify
Use when writing or changing Vitest or React Testing Library tests under `web/` or `packages/dify-ui/`, or when the user explicitly requests frontend test strategy, including evaluation of an existing strategy. Do not…
Add this badge to your README
[](https://modelsatlas.com/skills/vila-lab/figmirror/)
<a href="https://modelsatlas.com/skills/vila-lab/figmirror/"><img src="https://modelsatlas.com/skills/vila-lab/figmirror/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about Figmirror
What does the Figmirror skill do?
Is Figmirror safe to install?
What can Figmirror access on my machine?
Which assistants does Figmirror work with?
How current is this page?
Sources
- github.com/VILA-Lab/FigMirror/tree/main/.claude/skills/figmirror — the audited source at commit 0a7231a8d795 and every finding aboveObserved · 18 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the Figmirror skill do?
- Is Figmirror safe to install?
- What can Figmirror access on my machine?