paper-figures
Produce publication-quality figures for a cryptography paper in the house style (LNCS/ACM/IEEE sizes, Computer Modern or Times fonts, vector PDF…
Skill by Noi1r
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/noi1r-paper-figures
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, writing, research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/paper-figures
What's inside
- Skill name
paper-figures- Description
- Produce publication-quality figures for a cryptography paper in the house style (LNCS/ACM/IEEE sizes, Computer Modern or Times fonts, vector PDF, colour-blind-safe palette), starting from the pattern catalog and templates in .paper-writing/figures/. Use when a paper needs a plot, a results table or a TikZ diagram, or when auditing existing figures before submission.
- License
- MIT
- Instructions
- 89 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# paper-figures
Make every figure **at final size, in vector, from logged data, with a stated
take-away**. The toolkit lives in `.paper-writing/figures/`: style sheets, `palette.py`,
16 matplotlib templates, 5 TikZ templates and `PATTERNS.md`.
## When to use
* During drafting: turning `results/` and EVIDENCE rows into figures.
* During final preparation: re-rendering for a different venue class, or fixing
reviewer complaints ("figure unreadable in print", "legend covers data").
* Any time a figure is drafted with default matplotlib settings.
## Procedure
1. **State the claim first.** Write the one sentence the figure must prove.
It becomes the first sentence of the caption. If no claim exists, the
answer is probably a table (C16) or no figure at all.
2. **Pick the pattern** from `.paper-writing/figures/PATTERNS.md`:
* ratio vs. a reference → C1
* where the time goes → C2
* asymptotics → C3
* parameters → C4 or C14
* two competing costs → C5
* noise or depth → C6 or C7
* S-box properties → C8
* rounds and security margin → C9
* failure probability → C10
* approximation quality → C11
* regime change → C12
* linear-transform structure → C13
* a speed-up claim a sceptic may doubt → add C15
* a protocol or pipeline → D1 or D2
3. **Copy the template** (`.paper-writing/figures/templates/pNN_*.py` or `tikz/*.tex`) into
the project's `paper/figs/src/`. Replace the synthetic arrays with loaders
that read `results/*.csv|json`. Never type numbers by hand.
The templates' imports are relative to their original location. In a copied
Python script under `paper/figs/src/`, set `PROJECT = pathlib.Path(__file__).resolve().parents[3]`
and `ROOT = PROJECT / ".paper-writing" / "figures"` before importing `palette`.
Set both output defaults (`make(..., outdir=...)` and `--out`) to
`PROJECT / "paper" / "figs"`. For TikZ, make the toolkit's
`figures/templates/tikz/crypto-tikz.sty` available through `TEXINPUTS` or copy
that style alongside the figure source.
4. **Size and font by venue.** Call `P.figure(venue, width="column"|"full"|fraction, aspect=...)`.
* LNCS: 4.80 in (12.2 cm), Computer Modern.
* ACM: 3.33 / 7.00 in, Libertine or STIX.
* IEEE: 3.50 / 7.16 in, Times or STIX.
* In LaTeX, `\includegraphics[width=\textwidth]` (or `\columnwidth`)
with no further scaling.
5. **Encode redundantly.**
* Ours is `P.OURS` and baselines use `P.baseline_style(i)`.
* Every series gets a marker or dash in addition to its colour.
* Categorical colours go in fixed order and never cycle past 8.
* Sequential data uses one hue. Diverging data is blue↔red with a grey
midpoint.
6. **Label directly.** End-of-line labels beat legends. Use one reference
line with its name, not a bar. Print values only on the bars that carry
the claim. Use a log axis once the range exceeds about 30×.
7. **Render and inspect.** `python3 paper/figs/src/fig_x.py`, then open the PNG. Check for:
* label collisions and clipped text
* a legend covering data
* greyscale readability (`pdftoppm -gray -r 150 fig.pdf /tmp/g`)
* tick labels shown as `2^k` for powers of two
8. **Link to evidence.** Add the figure script path and the input data file
to each EVIDENCE row whose number appears in the figure.
9. **Run the checklist** at the end of `PATTERNS.md`, then commit the
figure's PDF, its script and its data pointer.
## Checklist (quick)
- [ ] Vector PDF with fonts embedded (`pdffonts fig.pdf` shows no Type 3 fonts, unless usetex was used).
- [ ] Final size, and 7–8 pt text that matches the caption font family.
- [ ] One y-axis, with units in both axis labels.
- [ ] Ours is blue, baselines are grey, and every series has a marker or dash.
- [ ] Readable in greyscale and by colour-blind readers. The palette passes `python3 .paper-writing/figures/style/palette.py`.
- [ ] No pies, no 3-D, no rainbow colormaps, no coloured plot backgrounds, no titles inside the axes that duplicate the caption.
- [ ] Every number traces to EVIDENCE, and synthetic or toy content is labelled as such.
- [ ] The caption's first sentence is the take-away, and it defines all abbreviations.
- [ ] Tables use booktabs, mark the best value in bold, and use consistent decimals.
## Tools
* `.paper-writing/figures/style/palette.py`: `use`, `figure`, `size`, `line_style`, `baseline_style`, `direct_label`, `save`, `check_palette`.
* `.paper-writing/figures/templates/run_all.py` renders every template, which is useful as a smoke test after style edits.
* `make -C .paper-writing/figures/templates/tikz` builds the TikZ diagrams. `crypto-tikz.sty` can be `\usepackage`d in a paper.
## Anti-patterns seen in published crypto papers (in the harvested corpus)
* Pie charts used for stage breakdowns. Use C2 instead.
* Coloured plot backgrounds, bold sans-serif titles inside the axes, and default-library colours.
* Raster screenshots of plots that print at under 150 dpi.
* Speed-up claims shown without any run-to-run spread. Add C15.
* "Before" and "after" pipelines drawn with different layouts. Keep the layout identical and tint only the changed stage.From Noi1r/crypto-paper-writing, MIT.
More from Noi1r/crypto-paper-writing
- 0.609score
camera-ready
Noi1r
Use after acceptance to produce the final version.
SkillAFreshness: A★ 3Claude Code +9 - 0.609score
lit-matrix
Noi1r
Build and lint the related-work matrix (work, venue/year, setting, technique, asymptotics, concrete numbers + source, code available?, our delta) and the…
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
cpw-write
Noi1r
Plan, draft, revise, polish, or translate cryptography and security manuscripts, from a single passage to a full-paper outline.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
eprint-search
Noi1r
Search IACR ePrint (with a submission-date window) plus Crossref/DBLP from the command line.
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
anonymize-check
Noi1r
Use before every double-blind submission, supplementary upload, anonymous artifact mirror or rebuttal attachment.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
mock-review
Noi1r
Use before submission (about 3 days and again 1 day before) or before a rebuttal to simulate venue-calibrated reviews.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
artifact-pack
Noi1r
Use when preparing supplementary code/data for review (anonymous) or for an artifact-evaluation track after acceptance.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
figure-harvest
Noi1r
Harvest figures from a local corpus of public crypto papers (PDF), classify them by type, score their quality, and browse them in a local HTML contact sheet…
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
rebuttal
Noi1r
Use when reviews arrive and an author response (rebuttal / interactive phase / revision response) must be produced.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
venue-calibration
Noi1r
Use when choosing a target venue, adapting a draft to a venue's format, or calibrating a mock review.
SkillAFreshness: A★ 3Claude Code +9 - 0.601score
cpw-submit
Noi1r
Prepare a reviewable submission or camera-ready package for a cryptography paper, checking current venue rules, evidence, citations, anonymity and source/PDF…
SkillAFreshness: A★ 3Claude Code +9 - 0.601score
reading-notes
Noi1r
Write structured, dated, falsifiable reading notes for a paper (claims, parameters, numbers with page pointers, hidden assumptions, reusable tricks, open…
SkillAFreshness: A★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 29, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Noi1r/crypto-paper-writing
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Noi1r
- 0.609score
camera-ready
Noi1r
Use after acceptance to produce the final version.
SkillAFreshness: A★ 3Claude Code +9 - 0.609score
lit-matrix
Noi1r
Build and lint the related-work matrix (work, venue/year, setting, technique, asymptotics, concrete numbers + source, code available?, our delta) and the…
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
cpw-write
Noi1r
Plan, draft, revise, polish, or translate cryptography and security manuscripts, from a single passage to a full-paper outline.
SkillAFreshness: A★ 3Claude Code +9 - 0.606score
eprint-search
Noi1r
Search IACR ePrint (with a submission-date window) plus Crossref/DBLP from the command line.
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
anonymize-check
Noi1r
Use before every double-blind submission, supplementary upload, anonymous artifact mirror or rebuttal attachment.
SkillAFreshness: A★ 3Claude Code +9 - 0.604score
artifact-pack
Noi1r
Use when preparing supplementary code/data for review (anonymous) or for an artifact-evaluation track after acceptance.
SkillAFreshness: A★ 3Claude Code +9
Cite this page
paper-figures skill. Agent Mart. https://agentmart.dev/skills/noi1r-paper-figures (last updated 2026-10-24)