figure-harvest
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…
Skill by Noi1r
Chalk Labs
Need help deploying figure-harvest?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
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-figure-harvest
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, spreadsheets, frontend, writing
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/figure-harvest
What's inside
- Skill name
figure-harvest- Description
- 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 to learn which figure patterns work for a topic. Use before designing figures for a new paper or when extending .paper-writing/figures/PATTERNS.md. Output is local-only (copyright).
- License
- MIT
- Instructions
- 83 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# figure-harvest
Learn figure patterns from the papers closest to yours: related work,
same-venue papers, or the baseline papers. The distilled lessons go into
words. The harvested images are never committed.
## When to use
* When planning figures, on the related-work PDFs gathered for the manuscript.
* When the target venue or sub-field has conventions you do not know yet.
Examples: symmetric papers use trail tables and round diagrams, FHE
papers use bit layouts and pipelines, MPC papers use functionality boxes.
* When extending `.paper-writing/figures/PATTERNS.md` with a new pattern.
## Procedure
1. **Assemble the corpus.** Use a directory of *public* PDFs, such as ePrint
downloads of the related-work list. Exclude your own drafts and anything
under embargo:
```bash
python3 .paper-writing/figures/harvester/harvest.py related_work/papers \
--out /tmp/fig_gallery --exclude drafts --exclude ours --exclude '.zip' \
--jobs 8 --timeout 90 --max-pages 60
```
* `--exclude` takes a substring glob, or `re:REGEX` for a regular expression.
* Directories are searched recursively.
* Duplicate PDFs are skipped, detected by hash or by first-page text.
2. **Browse.** Run `python3 .paper-writing/figures/harvester/gallery.py /tmp/fig_gallery` and
open `index.html`. The page groups figures by type and sorts them by
quality. It has a type filter and a minimum-quality slider.
3. **Inspect the best 10–20** for your planned figure types. For each one, note in words:
* what makes it readable
* which encodings it uses
* how it handles baselines, units and log axes
* what you would not copy
4. **Distil.** Update the project's `paper/figs/NOTES.md`, or
`.paper-writing/figures/PATTERNS.md` if the pattern is new. Follow
`.paper-writing/figures/gallery_index.template.md`:
* pattern name
* public ePrint ID and figure number ("see e.g.")
* what works
* pitfalls
* the template that implements it (create one if missing: synthetic data,
plus a PDF+PNG in `.paper-writing/figures/examples/`)
5. **Discard.** Delete the gallery, or keep it outside the repository.
Never `git add` a harvested PNG.
## How it works (so you can trust or tune it)
* **Captions.** A text block counts as a caption if its first line matches
`Fig.|Figure|图 <n>` followed by punctuation, or starts with a bold label.
Running-text mentions such as "Fig. 3 shows…" are rejected.
* **Clip.** The clip is seeded with drawings or images that lie within
40 pt above the caption (then below, as a fallback). It then grows through
vertically adjacent graphics with gaps under 14 pt. Growth stops at
paragraphs of running text (wide, multi-line, not overlapping graphics) and
at other captions. Nearby label text is absorbed, and the clip is padded
by 4 pt. Figures made only of text, such as unframed algorithms, fall back
to the band between the preceding paragraph and the caption.
* **Statistics:**
* path item counts (lines, curves, rects, filled rects)
* horizontal and vertical ticks (an axis needs both)
* arrowheads and XOR glyphs
* grid detection
* vector colour count and rendered-pixel colour count
* whitespace fraction and words per square inch
* effective raster dpi
* **Type:** the classifier combines caption-keyword scores with statistic rules.
* **Quality:** the score starts at 50.
* Vector content: +20.
* Rasters: from +15 down to −15, depending on dpi.
* Colours: +10 for 2–7 colours, −10 for more than 14.
* Whitespace: +10 for 45–90%.
* Very small crops and very dense text are penalised.
* **Robustness:** each PDF runs in a forked process with a timeout, and
per-page exceptions are recorded without stopping the run.
`--selftest` builds a synthetic PDF and checks the full pipeline.
## Known limitations
* Classification is about 70% accurate. Plots whose text was converted to
outlines, and figures that are only rasters, rely on caption keywords.
* Multi-panel figures that sit side by side with separate captions can merge
into one crop.
* Two-column layouts (ACM/IEEE) sometimes pull in the neighbouring column's
graphics. Check the crops.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
paper-figures
Noi1r
Produce publication-quality figures for a cryptography paper in the house style (LNCS/ACM/IEEE sizes, Computer Modern or Times fonts, vector PDF…
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
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
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
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get figure-harvest running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
figure-harvest skill. Agent Mart. https://agentmart.dev/skills/noi1r-figure-harvest (last updated 2026-10-24)