alphafold2
Predict protein structure for monomers and multimers with AlphaFold2 via the ColabFold runner…
Publication-grade correctness and legibility rules for final-deliverable scientific figures, not exploratory plots. Use for a figure that will ship in a report, paper, export, or kept artifact. Covers data fidelity, label economy, color threading, chart choice, layout, and
$ npx -y skills add aipoch/open-science --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 correctness and legibility rules for final-deliverable scientific figures, not exploratory plots. Use for a figure that will ship in a report, paper, export, or kept artifact. Covers data fidelity, label economy, color threading, chart choice, layout, and
name: figure-style description: 'Publication-grade correctness and legibility rules for final-deliverable scientific figures, not exploratory plots. Use for a figure that will ship in a report, paper, export, or kept artifact. Covers data fidelity, label economy, color threading, chart choice, layout, and render-then-verify QA without imposing a visual house style. For multi-panel composition use `figure-composer`; for whole-paper ordering use `paper-narrative`.' 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. Before plotting, follow the Notebook call below and invoke `apply_figure_style()`._
Every `notebook_execute` request whose `code` uses a function named in this skill includes this skill ID:
{ "kernelSkillIds": ["figure-style"], "code": "apply_figure_style()\n..." }`kernelSkillIds` contains the skill ID; function calls belong in `code`. This request is complete as written: call the named functions directly and do not add an import or discovery step.
**Load trigger** (same rule as the system prompt's "Publication-grade plots" section): 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-composer` and `paper-narrative` supply multi-panel and whole-paper context.
---
**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, non-comparable footnotes, exclusion rationale, methodological caveats.
**2.4 Titles are takeaways.** A reader seeing only the title knows what the panel shows. "Robust to gene dropout" passes; "Fewer genes" fails. Test: read it aloud cold — if the listener asks "fewer genes _what_?", rewrite. For a row of small multiples that vary one thing, drop per-panel titles for one row-header.
**2.5 Value-on-mark only for the headline number** — the one a reader would quote. Everything else is read off the axis.
**2.6 When in doubt, delete the label and re-read.** If the message survives, it stays deleted.
---
When an existing axes needs a frame different from the figure-wide setting, call `set_frame(ax, style=...)`.
**3.1 Axis padding.** Axis limits clear the data by ≥ one marker radius on every side; markers and text never touch a spine. `ax.margins(0.04)` after plotting, or extend
The open-source AI research workbench for scientific research and agent workflows. Local-first, model-agnostic desktop app with extensible skills, MCP tools and connectors, Python/R execution and traceable artifacts for reproducible research on macOS, Windows and Linux.
Repo: aipoch/open-science
Predict protein structure for monomers and multimers with AlphaFold2 via the ColabFold runner…
Structure prediction for protein, nucleic-acid, and small-molecule complexes with Boltz-2…
Predict genome-wide functional tracks (RNA-seq, CAGE, DNase, ChIP) from DNA sequence with…
Structure prediction for protein, nucleic-acid, and small-molecule complexes with the Chai-1…
Prepare reproducible setup instructions and validate a user-managed named software…