Individual skill
ts-paper-figure
Stage 6 of the ts-paper suite. Fill a Traitement du Signal paper's figure placeholders with real diagrams. Claude DESIGNS a concrete, rich figure and GROUNDS it on a real on-topic top/mid-journal MAIN figure (Claude **WebSearches** for it, then `fetch_reference_figures.py` pulls that paper's MAIN figure, passed to the image model as an image-condition — grounding is MANDATORY, no silent skip); the render comes from the **official PaperBanana** pipeline (`ts-figure-svg/scripts/setup_paperbanana.py`, its own Retriever→Planner→Stylist→Visualizer→Critic) or, unconfigured, the built-in `gen_image.py`; Claude then LOOKS at the PNG with its own vision and critiques/refines it over ≥2 ENFORCED rounds. The approved PNG is then **redrawn as a native editable SVG by ts-figure-svg** — its design language learned, its content re-derived from the paper, audited and repaired over ≥4 measured rounds (never a pixel trace); if that is impossible the ts-figure-optimize DrawAI HYBRID or the approved PNG is kept — never a lossy redraw, PNG always kept. Engine is routed by SECTION: only real measured-data results plots (data-aware mode, results section) use matplotlib; EVERY other figure — architecture/pipeline/concept/math-geometry/schematic — is image-model rendered (so in proposal mode every figure is image-model). In proposal mode quantitative results plots are SKIPPED (no real data — drawing one fabricates results). Use to turn the empty \fbox placeholders into publication-quality figures.
skills/ts-paper-figure/SKILL.md
Source commit c17149def034bc777462de612926c8e3b6d01b8c
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 10, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,200
- Repository last updated
- Aug 22, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- research Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 32,380 bytesSKILL.mdcore · 32,380 bytesscripts/_dotenv.pyruns · 1,650 bytesscripts/fetch_reference_figures.pyruns · 8,571 bytesscripts/figure_config.example.shruns · 977 bytesscripts/gen_image.pyruns · 9,831 bytesscripts/tests/test_fetch_reference_figures.pyruns · 2,279 bytesscripts/tests/test_figure_gate.pyruns · 3,511 bytesscripts/tests/test_gen_image_edits.pyruns · 2,827 bytes
Read excerpt
# ts-paper-figure — figures: PaperBanana renders it, ts-figure-svg makes it a real figure
PaperBanana makes good academic figures with a team of LLM agents (Retriever → Planner → Stylist →
Visualizer → **Critic**) running a **critique-and-refine loop**. Two ways to drive it here:
- **Preferred — the official pipeline.** `python3 ../ts-figure-svg/scripts/setup_paperbanana.py` pulls
**dwzhu-pku/PaperBanana** and you call its own `skill/run.py` (step 3). Upstream code, upstream agents.
- **Fallback — the distilled loop.** With no PaperBanana key configured, every step except drawing pixels
is LLM reasoning + **vision**, which Claude does natively: Claude is the Planner/Stylist/Critic and one
tiny script (`gen_image.py`) is the Visualizer.
Either way the PNG is **not the deliverable** — it is the design target. Step 5b redraws it as a native,
editable, audited SVG (**ts-figure-svg**), because a render's labels are pixels and a paper figure's must
not be.