Skip to content
Automation
Skill

/paper-poster-html

DEFAULT poster pipeline — build an academic conference poster (ICML/NeurIPS/ICLR/CVPR/...) as a single HTML/CSS file with measurement-driven hard gates, real paper figures, a two-hue design-token system, and print-ready PDF via headless Chromium. Use when the user says \"做海报\",

From plugin
aris
18k87 skills1 agent1 command

Claude Code

$ npx -y skills add wanshuiyin/Auto-claude-code-research-in-sleep --skill paper-poster-html --agent claude-code

SKILL.md

paper-poster-html.SKILL.md
name: paper-poster-html
description: "DEFAULT poster pipeline — build an academic conference poster (ICML/NeurIPS/ICLR/CVPR/...) as a single HTML/CSS file with measurement-driven hard gates, real paper figures, a two-hue design-token system, and print-ready PDF via headless Chromium. Use when the user says \"做海报\", \"poster\", \"conference poster\", \"paper poster\", or asks to design/redo a research poster. Supersedes the retired LaTeX /paper-poster."
argument-hint: "[paper-dir-or-pdf] [— venue: ICLR, canvas: 185x90cm landscape, venue-colors: true]"
allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, WebFetch, WebSearch, AskUserQuestion, mcp__codex__codex, mcp__antigravity__antigravity, mcp__antigravity__antigravity-reply, mcp__grok__grok, mcp__grok__grok-reply, mcp__claude-review__review, mcp__claude-review__review_reply, mcp__claude-review__review_start, mcp__claude-review__review_reply_start, mcp__claude-review__review_status

Paper Poster (HTML): measurement-gated poster generation

> **Before each reviewer slot**, follow [Selectable Reviewers](../shared-references/reviewer-backends.md): > resolve invocation → `.aris/reviewer.json` → Claude Code default (Codex MCP) > with `reviewer_route.py` through the canonical helper resolver, preserving this > slot's tier, fresh contexts, source/image inputs and deterministic gates. > Codex examples/pins below apply only to `backend=codex`; other routes use their > own first-call/reply contract. Save the route and actual returned identity; > unavailable selections are `REVIEW_UNAVAILABLE`. Classify acceptance from actual > families/completion/scope. Forward invocation reviewer/model/effort overrides > to reviewer-bearing children. Generation workers are unchanged.

One HTML file styled for an exact print canvas (`@page { size: W H }`), rendered to PDF via Playwright print emulation. **Iterate by measuring, not eyeballing** — the screen preview lies; only print emulation at the correct viewport tells the truth. Core gate machinery is adapted from [posterly](https://github.com/Chenruishuo/posterly) (MIT, © 2026 Ruishuo Chen — see `NOTICE.md` and `LICENSES/posterly-MIT.txt`); ARIS adds style discipline gates, figure-provenance gates, the cross-model review loop, and the anti-patch-loop fix vocabulary.

Why this skill exists (the failure it prevents)

A predecessor pipeline produced a poster with **30+ colors, zero real paper figures, a screen-pixel canvas, and tiny formulas floating in oversized boxes**, then spent 12+ review rounds making it *worse* — each round added a new badge color or bespoke SVG patch. The cure is structural, not exhortative:

1. **Hard gates run before any aesthetic opinion** (alignment, style, assets must PASS first — a reviewer never sees an unmeasured poster). 2. **A closed fix vocabulary** — visual-review fixes can only touch design tokens, whole catalogued components, content rebalance, assets, or canvas choice. New inline styles / new hex values / bespoke decorations are structurally forbidden. 3. **Two-hue discipline as a machine check**, not a style suggestion. 4. **Real paper figures with provenance manifest**, or the gate fails.

Mental model

paper (.tex / PDF) ──► content plan + claim→evidence audit (codex, fresh)
                              │
   figures extracted ─────────┤  FIGURE_MANIFEST.json (provenance, sha256)
   (real paper figures ONLY)  ▼
   template scaffold ──► fill ──► run_gates.py            ◄─── HARD, loop here
                                  preflight → style → asset → measure → polish
                              │ all hard gates PASS
                              ▼
                    Claude visual review (≤3 issues × ≤3 rounds, fix-vocabulary only)
                              │ score ≥ 9
                              ▼
                    codex final cross-model review (fresh thread, full HTML+PDF)
                              │ pass
                              ▼
                    verify-final → poster.pdf + GATE_REPORT.json

Constants

  • **SKILL_SCRIPTS** = `${CLAUDE_SKILL_DIR}/scripts` — all helpers are single-owner and

ship inside this skill (Arch C). If the directory is missing the install is broken: abort and tell the user to re-install the skill (Policy A — the gates ARE the skill; never improvise replacements).

  • **REVIEWER_MODEL** = `gpt-6-astra`, reasoning `xhigh`, **fresh thread per review call**

(`mcp__codex__codex`, never `codex-reply` across review boundaries).

  • **CANVAS** — from the venue's official spec, looked up live in Phase 0. Never assume.

(Known anchor: ICLR 2026 main = 185×90 cm landscape per its official printing service; ICML/NeurIPS commonly 60×36 in landscape; workshop posters often 61×91 cm portrait. Specs change yearly — verify.)

  • **PALETTE** — default = `templates/tokens/generic.json` (slate-blue `#2D5F8B` accent
  • gold `#C9A24A` highlight + neutrals) for **all** venues. Venue packs are opt-in via

`— venue-colors: true`. Purple-dominant accents (hue 250–285) are banned unless the user passes `— allow-purple: true`.

  • **AUTO_PROCEED = false** — wait for explicit confirmation at every 🚦 checkpoint.
  • **OUTPUT_DIR** = `poster_html/` in the working directory.

Workflow

Phase 0 — Resume, dependencies, venue spec

1. **Resume**: if `poster_html/POSTER_STATE.json` exists with `status: in_progress` (< 24 h), resume from the saved phase. 2. **Dependencies** (degradation chain, in order):

  • Playwright + bundled Chromium → if missing, `python3 -m playwright install

chromium` → if install fails but system Chrome exists, scripts fall back to `channel="chrome"` → if all fail: you may produce the content plan and scaffold only, label everything **"not print verified"**, and must NOT emit a final PDF.

  • `pdfinfo` missing → PyMuPDF reads PDF dimensions. At least one of

pdftoppm / PyMuPDF must exist for PNG review renders.

  • MathJax: download `tex-svg.js` once into `post
Read more
@wanshuiyin
Ships witharis

· · · · · · · · 💬 Join Community · 🌱 ARIS is a methodology, not a platform. What matters is the research workflow — take it wherever you go.

18k87 skills1 agent
Get the whole plugin

Stars on GitHub

Momentum

stars in total
18.3k
Star history of wanshuiyin/Auto-claude-code-research-in-sleep on GitHub, a chart by star-history.com

Other skills on aris.

ablation-planner

ablation-planner

Use when main results pass result-to-claim (claim_supported=yes or partial) and ablation studies are needed for paper submission.

@wanshuiyin@wanshuiyinInstall Skill
alphaxiv

alphaxiv

Quick single-paper lookup via AlphaXiv LLM-optimized summaries with tiered source fallback. Use when user says "explain this…

@wanshuiyin@wanshuiyinInstall Skill
analyze-results

analyze-results

Analyze ML experiment results, compute statistics, generate comparison tables and insights. Use when user says "analyze results",…

@wanshuiyin@wanshuiyinInstall Skill
arxiv

arxiv

Search, download, and summarize academic papers from arXiv. Use when user says "search arxiv", "download paper", "fetch arxiv",…

@wanshuiyin@wanshuiyinInstall Skill
auto-paper-improvement-loop

auto-paper-improvement…

Autonomously improve a generated paper via GPT-6-Astra xhigh review → implement fixes → recompile, for 2 rounds. Use when user…

@wanshuiyin@wanshuiyinInstall Skill
auto-review-loop-llm

auto-review-loop-llm

Autonomous research review loop using any OpenAI-compatible LLM API. Configure via llm-chat MCP server or environment variables.…

@wanshuiyin@wanshuiyinInstall Skill

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n11d209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
agent-browser

agent-browser

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…

@vercel-labs-2@vercel-labs-2Install Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about paper-poster-html.

Which coding agents can use paper-poster-html?
paper-poster-html installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.