Individual skill
paper2poster
Render a pre-extracted paper's structured 9-section spec (`paper_spec.md`) into a single-page HTML academic poster, fit the layout to the page via an iterative measured-fill loop, and export it to print-ready PDF + PNG thumbnail. Requires the upstream `paper2assets` skill to have produced an output bundle with `manifest.json` at the root and an `assets/` folder holding the paper metadata and media. Use when the user wants an HTML poster, PDF/PNG export, or PPTX from extracted paper assets, for example "render the poster", "make the poster from this spec", "export poster to PDF", or "paper2poster". The three skills paper2assets → paper2poster → html2pptx run in sequence, each invokable on its own.
ResearchStudio-Reel/skills/paper2poster/SKILL.md
Source commit 063f10088af49909e1a4a7ea8d29efe19633f34e
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Network or broad shell
- Last checked
- Nov 2, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 3,538
- Repository last updated
- Sep 21, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- researchstudio-idea Repository topic
- researchstudio-reel Repository topic
- presentation Repository topic
- blog-generation Repository topic
- idea-generation Repository topic
- poster-generation Repository topic
- video-generation Repository topic
- research Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
README.mddoc · 11,021 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesSKILL.mdcore · 85,920 bytesassets/fonts/Arimo-Bold.ttfasset · 481,924 bytesassets/fonts/Arimo-LICENSE.txtdoc · 5,208 bytesassets/fonts/Arimo-Regular.ttfasset · 478,456 bytesassets/fonts/Inter-Bold.ttfasset · 415,072 bytesassets/fonts/Inter-Bold.woff2asset · 141,904 bytesassets/fonts/Inter-BoldItalic.ttfasset · 425,296 bytesassets/fonts/Inter-ExtraBold.ttfasset · 416,228 bytesassets/fonts/Inter-ExtraBold.woff2asset · 141,928 bytesassets/fonts/Inter-Italic.ttfasset · 417,388 bytesassets/fonts/Inter-Regular.ttfasset · 407,056 bytesassets/fonts/Inter-Regular.woff2asset · 138,020 bytesassets/fonts/Inter-SemiBold.ttfasset · 413,976 bytesassets/fonts/Inter-SemiBold.woff2asset · 141,528 bytesassets/headers/v1.htmlasset · 6,182 bytesassets/headers/v2.htmlasset · 5,211 bytesassets/headers/v3.htmlasset · 6,283 bytesassets/headers/v4.htmlasset · 6,831 bytesassets/headers/v5.htmlasset · 7,502 bytesassets/headers/v6.htmlasset · 1,613 bytesassets/headers/v7.htmlasset · 1,883 bytesassets/headers_portrait/pv1.htmlasset · 1,646 bytesassets/headers_portrait/pv2.htmlasset · 2,996 bytesassets/headers_portrait/pv3.htmlasset · 2,559 bytesassets/headers_portrait/pv4.htmlasset · 2,074 bytesassets/headers_portrait/pv5.htmlasset · 2,561 bytesassets/headers_portrait/pv6.htmlasset · 1,979 bytesassets/headers_portrait/pv7.htmlasset · 2,057 bytesassets/katex/LICENSEasset · 1,107 bytesassets/katex/auto-render.min.jsruns · 3,478 bytesassets/katex/fonts/KaTeX_AMS-Regular.woff2asset · 28,076 bytesassets/katex/fonts/KaTeX_Caligraphic-Bold.woff2asset · 6,912 bytesassets/katex/fonts/KaTeX_Caligraphic-Regular.woff2asset · 6,908 bytesassets/katex/fonts/KaTeX_Fraktur-Bold.woff2asset · 11,348 bytesassets/katex/fonts/KaTeX_Fraktur-Regular.woff2asset · 11,316 bytesassets/katex/fonts/KaTeX_Main-Bold.woff2asset · 25,324 bytesassets/katex/fonts/KaTeX_Main-BoldItalic.woff2asset · 16,780 bytesassets/katex/fonts/KaTeX_Main-Italic.woff2asset · 16,988 bytesassets/katex/fonts/KaTeX_Main-Regular.woff2asset · 26,272 bytesassets/katex/fonts/KaTeX_Math-BoldItalic.woff2asset · 16,400 bytesassets/katex/fonts/KaTeX_Math-Italic.woff2asset · 16,440 bytesassets/katex/fonts/KaTeX_SansSerif-Bold.woff2asset · 12,216 bytesassets/katex/fonts/KaTeX_SansSerif-Italic.woff2asset · 12,028 bytesassets/katex/fonts/KaTeX_SansSerif-Regular.woff2asset · 10,344 bytesassets/katex/fonts/KaTeX_Script-Regular.woff2asset · 9,644 bytesassets/katex/fonts/KaTeX_Size1-Regular.woff2asset · 5,468 bytesassets/katex/fonts/KaTeX_Size2-Regular.woff2asset · 5,208 bytesassets/katex/fonts/KaTeX_Size3-Regular.woff2asset · 3,624 bytesassets/katex/fonts/KaTeX_Size4-Regular.woff2asset · 4,928 bytesassets/katex/fonts/KaTeX_Typewriter-Regular.woff2asset · 13,568 bytesassets/katex/katex.min.cssasset · 23,196 bytesassets/katex/katex.min.jsruns · 277,038 bytesassets/layouts/3col.htmlasset · 93,349 bytesassets/layouts/full.htmlasset · 110,287 bytesassets/layouts/half.htmlasset · 94,050 bytesassets/layouts/methoddriven.htmlasset · 118,488 bytesassets/layouts/methoddriven4.htmlasset · 117,290 bytesassets/layouts_portrait/full.htmlasset · 114,975 bytesassets/layouts_portrait/half.htmlasset · 107,024 bytesassets/math/katex.htmlasset · 1,434 bytesassets/math/mathjax.htmlasset · 1,534 bytesassets/mathjax/LICENSEasset · 11,358 bytesassets/mathjax/VERSIONasset · 14 bytesassets/mathjax/tex-svg.jsruns · 2,108,580 bytesassets/scan/aside.htmlasset · 3,802 bytesassets/scan/banner.htmlasset · 3,763 bytesassets/scan/chips.htmlasset · 3,815 bytesassets/scan/contact.htmlasset · 3,400 bytesassets/scan/directory.htmlasset · 4,482 bytesassets/scan/hero.htmlasset · 3,128 bytesassets/scan/twin.htmlasset · 3,292 bytesassets/styles/double-rule.cssasset · 1,550 bytesassets/styles/elevated.cssasset · 755 bytesassets/styles/framed.cssasset · 3,024 bytesassets/styles/left-bar.cssasset · 673 bytesassets/styles/legend-frame.cssasset · 1,630 bytesassets/styles/neo-brutal.cssasset · 691 bytesassets/styles/simple.cssasset · 2,096 bytesassets/styles/solid.cssasset · 1,935 bytesassets/styles/tag.cssasset · 1,623 bytesassets/styles/tinted.cssasset · 680 bytesassets/styles/underline.cssasset · 674 bytesreferences/apply_theme.pyruns · 12,238 bytesreferences/audio_narration.mddoc · 3,788 bytesreferences/branding_free_headers.mddoc · 3,473 bytesreferences/build_poster.pyruns · 6,794 bytesreferences/compose_poster.pyruns · 33,090 bytesreferences/content_patterns.mddoc · 18,600 bytesreferences/fit_logos.pyruns · 40,468 bytesreferences/header_v3_prototype.htmlasset · 7,254 bytesreferences/staged_fill.mddoc · 68,194 bytesreferences/template_substitution.mddoc · 29,731 bytesreferences/visual_polish.mddoc · 18,078 bytesrequirements.txtdoc · 279 bytesscripts/check_poster.pyruns · 15,009 bytesscripts/generate_audio.pyruns · 7,137 bytesscripts/render_poster.pyruns · 148,413 bytesscripts/select_figures.pyruns · 3,879 bytesscripts/utils/__init__.pyruns · 0 bytesscripts/utils/autofit.pyruns · 14,856 bytesscripts/utils/canvas.pyruns · 7,375 bytesscripts/utils/cli_common.pyruns · 1,521 bytesscripts/utils/column_pack.pyruns · 6,692 bytesscripts/utils/deliverables.pyruns · 5,466 bytesscripts/utils/figure_semantics.pyruns · 25,042 bytesscripts/utils/font_fidelity.pyruns · 43,049 bytesscripts/utils/polish.pyruns · 59,816 bytesscripts/utils/preflight.pyruns · 27,806 bytesscripts/utils/render.pyruns · 17,439 bytesscripts/utils/slack.pyruns · 66,865 bytesscripts/utils/textutil.pyruns · 616 bytesscripts/utils/verify_final.pyruns · 5,605 bytes
Read excerpt
# paper2poster — paper_spec.md → HTML poster → PDF/PNG + editable PPTX
This skill is the **rendering stage** of a 3-skill pipeline. It assumes `paper2assets` has already produced the input `<outdir>/`. Given that outdir, it picks figures, renders an HTML poster, iteratively fills the layout to fit a fixed page (60×36in landscape or 33.1×46.8in A0 portrait), generates per-section narration audio, hands the HTML to the bundled **html2pptx** sub-skill (vendored at `html2pptx/`) for an editable `.pptx`, and exports PDF + PNG. The html2pptx handoff is a **standard final step**, not optional — one run yields `poster.{html,pptx,pdf,png}`, because users want the editable deck in the same pass and won't call html2pptx separately.
```
<outdir>/ (produced by paper2assets)
manifest.json assets/figures/ assets/logos/ assets/qr/ assets/meta/{paper_spec.md, text.txt, figures.json, metadata.json}
│
▼ Step 1 — verify prerequisites
▼ Step 2: select figures from upstream semantics
│ → assets/meta/figure_selection.json
│ (Method / high-confidence optional Motivation / Result)
▼ Step 2.5 — optional per-figure visual box cut (asymmetric noise the
│ paper2assets deterministic chain couldn't catch — most