$npx -y skills add QuZhan51496/paper2anything --skill paper2posterConvert academic papers (PDF) into conference posters (HTML/PNG). You are the conductor: you decide what each section needs — an original paper figure or text — write the outline, hand-author the poster HTML, and iterate on the render using your own visual read and a blind-reader
| 1 | # Paper2Poster — Conference Poster Skill (You as Conductor) |
| 2 | |
| 3 | Convert a paper PDF into an academic conference poster (HTML/PNG) by walking a small set of CLI scripts. **You are the conductor**: this file is the recipe, not an orchestrator. There is no `run_pipeline.py` — at each step you run one Bash command, read the intermediate artifact, and ask the user for confirmation at the decision points below. |
| 4 | |
| 5 | ```text |
| 6 | |
| 7 | → parse_pdf.py (MinerU → content.md + figures/) |
| 8 | → intake QA (you ask size/venue/authors/visual policy) |
| 9 | → auto_outline.py (digest.json + assets[]) |
| 10 | → choose visuals (you read parsed/figures/ + captions: which sections use an original figure, which use text) |
| 11 | → outline.json (you write from content.md; user confirms) |
| 12 | → poster.html (you hand-author the poster: original figures where they help, text elsewhere) |
| 13 | → render + score (Playwright PNG → deterministic geometry check + your own visual read + blind-reader content quiz) |
| 14 | → iterate on poster.html (edit + re-render + re-score until it reads like a real poster) |
| 15 | → poster.png |
| 16 | ``` |
| 17 | |
| 18 | `problem_context`, `method_main`, and `result_evidence` are a useful **reading-order spine** to think about — what's the paper about, how does it work, what's the evidence. For each, decide what carries it best: an original paper figure if one reads well at poster scale, or text (a worded explanation, a labelled box, a short list) if no figure fits. There is **no figure quota** — use as many or as few original figures as the content calls for, down to zero. A text-only section, or a text-only poster, is a legitimate outcome when the figures don't earn their place. |
| 19 | |
| 20 | --- |
| 21 | |
| 22 | ## How you run this skill |
| 23 | |
| 24 | This skill only works if you execute it as a sequence of small Bash + Read + AskUserQuestion turns. Do not try to short-circuit it. |
| 25 | |
| 26 | 1. **Run one step at a time** with the `Bash` tool, exactly as written below. Use absolute paths under `${SKILL_DIR}` (the directory this skill lives in — e.g. `<…>/paper2anything/paper2poster`; set it once per shell with `export SKILL_DIR=<…>/paper2anything/paper2poster`). |
| 27 | 2. **Read the intermediate artifact** before moving on: |
| 28 | - after Step 3: the figures you considered, viewed in `parsed/figures/` (and their captions in `digest.json`), and which sections you decided to carry with text instead, |
| 29 | - after Step 5: your rendered `poster.png`, plus your visual read and the blind-reader quiz result. |
| 30 | 3. **Pause for the user at the decision points** with `AskUserQuestion`: |
| 31 | - After Step 2 — intake: size, venue, author block, visual policy. |
| 32 | - After Step 3 — is your per-section visual plan (which sections use an original figure, which use text) acceptable? |
| 33 | - After Step 4 — is the outline structure acceptable? |
| 34 | - After Step 8 — accept the poster, or revise/restyle it? |
| 35 | 4. **Let the content decide whether a section gets a figure.** Use an original paper figure where one genuinely helps; carry a section with text when no figure earns its place. Don't pad the poster with weak figures to hit a count, and don't strip a figure that's doing real work. A text-only section — or a text-only poster — is fine. |
| 36 | 5. **Score every render, then iterate (Steps 5–7).** After each render, run the deterministic geometry check and **look at the PNG yourself** (your visual read — hierarchy/density/balance/readability); run the **blind-reader content quiz** (Step 7) at milestones rather than on every micro-edit (it spawns a subagent, so it costs more than reading a PNG). Let what they surface drive the next edit; don't ship the first render unscored. The geometry check is **two-sided**: not just "no overflow" but also a **fill ratio ≥ 0.95** — a poster that fits but leaves large whitespace (or shrinks text to do so) fails and must be iterated. Verify this gate yourself; how you reach it is your judgment. |
| 37 | 6. **Don't overwrite a good render — keep scored candidates.** Iteration is not always monotonic: an edit aimed at one issue can regress overall quality, and the version you had three edits ago may have read better. Before a non-trivial restyle or structural change, save the current render as a numbered candidate (e.g. copy `poster.html`/`poster.png` to `poster_candN.html`/`poster_candN.png`) and record its scores. Pick the final from the best-scoring candidate, not just the latest edit. Never let a higher-scoring intermediate |