anti-defensive-writing
Remove audit, defensive, self-critical, developer-facing and commitment writing from…
Publication-grade figure correctness and legibility rules for final-deliverable figures — not every plot. Quick look or iterating on the analysis (EDA scatters, sanity-check histograms)? Plot plainly without this skill. Producing a figure that ships — report, paper, export, or
$ npx -y skills add boom5426/nature-paper-skills --skill figure-style --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/figure-styleContext preview
The summary Claude sees to decide when to auto-load this skill.
Publication-grade figure correctness and legibility rules for final-deliverable figures — not every plot. Quick look or iterating on the analysis (EDA scatters, sanity-check histograms)? Plot plainly without this skill. Producing a figure that ships — report, paper, export, or
name: figure-style description: "Publication-grade figure correctness and legibility rules for final-deliverable figures — not every plot. Quick look or iterating on the analysis (EDA scatters, sanity-check histograms)? Plot plainly without this skill. Producing a figure that ships — report, paper, export, or kept artifact — load this skill first and call `apply_figure_style()` — sets a role-mapped font-size ladder, outward ticks, frameless legends, and 300-dpi output. The skill is a checklist, not a house look: data fidelity (claim-titles tested against every row, excluded data never enters summaries), label economy (floor and ceiling), color threading, chart-choice-by-data-shape, layout, and a render-then-verify QA loop (bbox collision + per-panel perceptual check). Ships helpers: focal_palette, bar_with_points, strip_with_median, end_of_line_labels, panel_letter, set_frame, panel_crops. For figure planning (one claim per figure, panel roles) use `figure-planner`; for the full Nature figure production workflow use `nature-figure`." license: Apache-2.0
*A checklist for correct, legible, internally-consistent scientific figures. This skill does not impose a visual house style — frame, font, and palette are parameters. Once loaded, call `apply_figure_style()` before plotting.*
The prose checklist (§0–§9) is dependency-free: it is guidance you apply by hand. The `kernel.py` helpers require `matplotlib`, `numpy`, and `scipy` (`scipy.stats.t`, used by `bar_with_points(errorbar="ci95")` for the t-distribution 95% CI). In a plain skill install the helpers are **not** auto-loaded by a host kernel; load them explicitly before calling `apply_figure_style()` and the other helpers, e.g. `exec(open("kernel.py").read())` or import the module (`import kernel`).
**Load trigger:** this skill is for **final-deliverable figures** — those shipping in a report, paper, or export, or saved as an artifact the user will keep — not for exploratory/intermediate plots (quick looks, EDA, sanity checks), which are drawn plainly without it. Once loaded, "every plot" below means every plot you render toward the deliverable.
§1–§3, §8, and §9 are **correctness** — they apply to every plot, in every context, and have no aesthetic content. §4–§7 are **guidance** — defaults that produce a clean result but that a deliberate alternative can override (individual rules inside §4–§7 that state a factual/perceptual invariant — e.g. §4.4 semantic-zero centering, §4.5 CVD, §6.9 leader anchoring — still bind). On its own, this skill is the inner tier (make one plot good); `figure-planner` supplies per-figure planning (one claim per figure, panel roles) and `nature-figure` supplies the full multi-panel, whole-paper production workflow.
---
**1.1 Excluded rows.** A row marked excluded or flagged in the source data is either omitted entirely or drawn with a visually distinct open/hatched marker and named in the key. It **never** enters a summary statistic plotted alongside the included rows.
**1.2 Comparable conditions only.** Arms measured under non-comparable conditions (different N, epoch budget, initialization, protocol) are not plotted as visual peers. Separate them with a facet break or a marker on the label, and state the difference once in the caption.
**1.3 Self-consistency.** Every key, threshold, and title inside the figure must be satisfied by every plotted row. Before saving, walk each categorical outcome label back to the rule that defines it; if a row's value contradicts its label or the title, the figure is wrong, not the data.
**1.4 Claim-titles must be true.** A sentence-title (§5.1) is tested against every category on the axis before rendering. If any contradicts it, qualify the title ("on 3 of 4 pairs") or downgrade it to a description.
**1.5 State n and what was held fixed.** Every panel that draws a summary mark states `n` and the unit of replication, and every small-multiple that holds a variable fixed states the fixed value — in the panel or, when §2 budget is tight, in the caption.
**1.6 Reference structure is reference.** A tree, ordering, or topology drawn as *context* (a scale bar, a category strip) uses an established reference, not one inferred from the plotted data. Infer the structure only when the structure *is* the result.
**1.7 One number per claim.** A quantitative claim (runtime, accuracy, count) has exactly one canonical value across every panel, caption, and the abstract. Define what it measures and use that value everywhere.
---
The figure shows the pattern; the **caption** carries the context. Design for a general scientific reader, not the author.
**2.1 Floor (non-removable).** Every distinct mark, series, glyph, or comparator must be identifiable from the figure alone. The caption explains *why it matters*, not *what it is*. A label is non-removable if deleting it leaves a reader asking "what is that?"; it is removable only if the question becomes "why is that there?". Comparator labels name the thing ("prior method", "no joint training"), never a bare role word ("baseline", "previous"). Any term a general scientist can't parse gets a one-word gloss.
**2.2 Ceiling.** Per panel: title + axis labels + tick labels + series identity (labeled once per row of small multiples) + at most 2–3 result annotations. Count the strings; >6 beyond axes/ticks means you're over. The ceiling counts *narrative* annotations (callouts, value labels, brackets) — identity labels are floor, not budget.
**2.3 Move to the caption:** n=, what's-held-fixed, abbreviation expansions, the fact that sets comparability (a different panel, a different n), exclusion rules. Methodological discussion belongs in Methods, not the caption.
**2.4 Titles are takeaways.** A reader seeing only the title knows what the panel shows. "Robust to gene dropout" passes; "Fe
From first draft to submission and rebuttal, build a clear, evidence-grounded manuscript. 27 skills for Codex and Claude Code, connecting structure, scientific writing, figures, citations and reviewer responses.
Remove audit, defensive, self-critical, developer-facing and commitment writing from…
Use when checking manuscript citations, bibliography hygiene, DOI or PMID completeness,…
Use when a manuscript's claims need to be checked against the sources cited for them, when…
Use when drafting, auditing, or revising Data Availability statements, repository plans,…
Use when a manuscript is being drafted across many sessions and needs auditable open-question…
Use when designing, restructuring, or auditing manuscript figures and you need to define one…