Skip to content
FunCoding

Search

Search docs, Skills and MCP

figmirror

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.

文档与办公523.claude/skills/figmirror/SKILL.md

Install

Send this to Claude Code, Codex or Cursor. The agent checks the Skill for safety first and installs it only after you confirm.

读取 https://funcoding.ai/skills/vila-lab/figmirror/claude-skills-figmirror/install.md ,按里面的步骤帮我安装这个 Skill。

SKILL.md

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.png as an ordered set of absolute paths for the Reviewer to Read exactly once each; append the optional strict-3D accepted control as a fourth entry when present. The Reviewer sees only those images plus the aesthetic library, fixed diagnostics, and optional 3D insert, then returns strict JSON without re-reading an image it has already opened, and without reading review/Drawer history.
  7. Run scripts/figannot.py review-decision after every Reviewer result. A clean result before the run reaches min_reviews total valid Reviewer calls starts another Reviewer on the same immutable draft with no Drawer in between. Actionable feedback permits scripts/figannot.py draw --max-iters <max_iters> and another Drawer when below the hard max_iters cap. The helper must succeed before spawning that Drawer. A missing, malformed, empty, or inconsistent Reviewer result returns retry_reviewer: it does not count, never triggers Drawer, and starts one fresh Reviewer on the same immutable draft. A second consecutive invalid result fails closed. Pass both --min-reviews and --max-iters to every review-decision invocation, plus --strict-3d when the router selected three-d/strict-reproduction.md.
  8. Stop when the deterministic gate returns ship: the quality floor passed, the verdict is clean, and at least min_reviews valid Reviewer calls have completed across the run. Default max_iters=5; it is always a hard Drawer cap. If the gate returns stop_at_cap, do not draw again: select under the existing hard-cap policy and finalize an existing iteration.
  9. Write final figure.py, figure.png, figure.pdf, output.png, floor_selfcheck_final.txt, selection.md, process.md, and status.json. output.png is the evaluator-facing PNG and may be identical to figure.png.

Artifact Layout

<workdir>/
  inputs/
    reference_raw.png
    reference_clean.png
    reference_crop_check.png
    reference_crop_report.md
    data.txt
    aesthetic-library.md
  prompts/
    preprocessor.md
    drawer.md
    reviewer.md
    orchestrator-claude.md
    aesthetic-library.md
    three-d-prompting.md  # router, only for 3D runs
    three-d/              # mode files and routed 3D modules, only for 3D runs
  tools/
    figannot.py
    fit_images.py
    score_3d_candidates.py  # optional for strict 3D candidate diagnosis
  figure_iter0.py
  img_iter0.png
  notes_iter0.md
  floor_selfcheck_iter0.txt
  review_attempts/
    attempt_000.json
    attempt_001.json
  audit_view_0/
    reference_clean.png
    draft_fullres.png
    composite.png
    composite_meta.json
    review_prompt.txt
    aesthetic-library.md
    three-d-prompting.md  # router, only for 3D runs
    three-d/              # mode files and routed 3D modules, only for 3D runs
  review_feedback_0/
    review.json
    annotated.png
    notes.md
  audit_iter0.json
  image_fit_0.json
  audit_iter0.stderr
  ...
  figure.py
  figure.png
  figure.pdf
  output.png
  floor_selfcheck_final.txt
  selection.md
  process.md
  status.json

Non-Negotiables

  • The reference is a style anchor, not a layout-number anchor — but the chart type and signature motifs ARE style, not layout numbers. Reproduce them.
  • Preserve the source's signature visual motifs — chart type, colorbars, shaded/error bands, error bars, streamline fields, stacked/offset construction, insets. Dropping or flattening one is a fidelity failure, not a simplification. Only the data values and labels change to match data.txt.
  • inputs/reference_raw.png is the preserved upload; inputs/reference_clean.png is the Stage-0 crop used for L1 measurement.
  • Every visual choice must be grounded in L1 (reference image) or L2 (references/aesthetic-library.md); L3 opinion is disallowed.
  • Do not modify a property on the Reviewer preserve list outside its L1/L2 class.
  • Do not expose data.txt or source code to the Reviewer audit view.
  • Keep the final script self-contained and set plt.rcParams["pdf.fonttype"] = 42.

Similar Skills

pdf
anthropics/skills180k

pdf

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

Docs & office

discernment-nudge
anthropics/skills180k

discernment-nudge

After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.

Docs & office

doc-coauthoring
anthropics/skills180k

doc-coauthoring

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.

Docs & office

docx
anthropics/skills180k

docx

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.

Docs & office

pptx
anthropics/skills180k

pptx

Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions "deck," "slides," "presentation," or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.

Docs & office

canvas-design
anthropics/skills180k

canvas-design

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.

Docs & office