Build journal-submission-grade Fig 1 workflow panels for biology / methods papers. Renders a 4-panel horizontal pipeline (problem → input → novel method → applications) as PDF + JPG via matplotlib, then enforces a mandatory 3-round adversarial review loop. Each round, the JPG is sent in parallel to both an external CLI agent (e.g. Codex) and a Claude subagent; their critiques are merged and you revise.
The Fig 1 of a paper is the first thing a reviewer sees — wrong layout / colour / number-discipline choices can sink a submission. This skill bakes in the six rules that separate a draft from a publication figure, ships a working matplotlib template with placeholders you customise per-paper, and mandates a dual-reviewer loop (Codex + Claude subagent in parallel) that catches roughly 30–50 % more issues per round than a single reviewer.
# from ~/.claude/skills/
git clone https://github.com/YikaiDong-git/PaperWorkflowFig-skill.git paper-workflow-figThen restart Claude Code. The skill auto-triggers on phrases like "make a Fig 1", "workflow figure", "pipeline figure", "schematic", "graphical abstract", "method overview".
Clone anywhere, read SKILL.md, copy scripts/fig1_template.py into your project's figures/ directory and customise.
# 1. Copy the template into your paper project
cp scripts/fig1_template.py /path/to/paper/figures/fig1.py
# 2. Edit the per-paper section at the top:
# - FIG_SIZE_MM
# - WIDTH_RATIOS
# - CLAIMS dict (every number that appears in the figure)
# - PANEL_A / B / C / D content
# - ACCENT (panel c only)
# 3. Render
python figures/fig1.py
# writes fig1.pdf (vector, primary) + fig1.jpg (RGB-composited on white)
# 4. Dispatch the JPG to TWO reviewers in parallel (same turn):
# a) external CLI agent with -i fig1.jpg
# b) a Claude subagent (Explore or general-purpose) with the JPG path
# Each reviewer gets the prompt in references/codex_review_prompt.md.
# 5. Merge the critiques, side with the harsher reading when they disagree,
# fix all S1 issues, most S2, defer S3.
# 6. Re-render and repeat 2-3 rounds.paper-workflow-fig/
├── SKILL.md # the skill itself (Claude reads this)
├── README.md # this file
├── scripts/
│ └── fig1_template.py # parameterised 4-panel matplotlib template
└── references/
├── preflight_checklist.md # 10-min planning checklist
├── postrender_checklist.md # post-render visual + numerical discipline
├── caption_template.md # 6-sentence-per-panel caption skeleton
├── codex_review_prompt.md # the dual-reviewer adversarial prompt
└── lessons.md # condensed lessons / bugs / discipline
- Horizontal pipeline, weighted panel widths. Novel step gets the biggest panel (~35 %).
- One accent colour, reserved for the novel step. Default: Okabe-Ito vermillion in panel c only.
- Equation / matrix glyph is the centerpiece, boxed in accent, with one-line italic caption.
- Concrete numbers everywhere, with denominators. No "many" / "high" / "strong" without a number.
- Matrix glyphs with labelled dimensions (not abstract
X/y). - Render PDF + composite-aware JPG. Visually inspect the JPG every round.
This is the single most important part of the skill — and the one most often skipped.
render -> JPG -> {Codex, subagent} (parallel) -> merge -> revise -> render -> ...
Why two reviewers? They have different blind spots. An external CLI agent has no prior context on the paper and won't anchor on what you've already justified across earlier turns. A Claude subagent can cross-check the figure against the manuscript / methods text if relevant. Running them in parallel costs the same wall-clock time as one. Merge their critiques and side with the harsher reading on disagreements.
Each round catches 5–10 specific issues. Three rounds is usually the right number; a fourth is diminishing returns — ship and gather real reviewer feedback.
- No PNG, ever. RGBA → JPG via
convert("RGB")leaks colour onto unpredictable backgrounds; the template renders PDF + composite-aware JPG (paste-with-alpha-mask onto explicit white). Also, PNG via some network mounts has corrupted-cache risk; JPG with explicit white compositing is more portable. - Raw strings for LaTeX math.
r"..."everywhere;"\t"becomes a TAB in non-raw strings and ruins\times. - mathtext subset only. No
\tfrac,\dfrac,\bigl,\bigr,\boldsymbol. Stick to\frac,\mathbf,\mathrm,\mathbb,\hat,\Delta,\left( ... \right). - Render where the file lives. If your project sits on a network-mounted filesystem with write-back caching, render server-side and read back the server-side output path; otherwise local edit + remote render can race.
MIT.