Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create research posters using HTML/CSS that can be exported to PDF or PPTX. Use this skill ONLY when the user explicitly requests PowerPoint/PPTX poster format. For standard research posters, use latex-posters instead. This skill provides modern web-based poster design with responsive layouts and easy visual integration.
.claude/skills/mkurman-pptx-posters/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 109% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 121% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 80% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 51% | 0% |
⚠️ POSTERS MUST NOT HAVE TEXT OR CONTENT CUT OFF AT EDGES.
Prevention Rules:
1. Limit Content Sections (MAXIMUM 5-6 sections):
✅ GOOD - 5 sections with room to breathe:
- Title/Header
- Introduction/Problem
- Methods
- Results (1-2 key findings)
- Conclusions
❌ BAD - 8+ sections crammed together2. Word Count Limits:
The HTML template (assets/poster_html_template.html) provides:
Standard Layout:
┌─────────────────────────────────────────┐
│ HEADER: Title, Authors, Hero Image │
├─────────────┬─────────────┬─────────────┤
│ Introduction│ Results │ Discussion │
│ │ │ │
│ Methods │ (charts) │ Conclusions │
│ │ │ │
│ (diagram) │ (data) │ (summary) │
├─────────────┴─────────────┴─────────────┤
│ FOOTER: References & Contact Info │
└─────────────────────────────────────────┘Each section should prominently feature AI-generated visuals:
Hero Image (Header):
html<img src="figures/hero.png" class="hero-image">
Section Graphics:
html<div class="block"> <h2 class="block-title">Methods</h2> <div class="block-content"> <img src="figures/workflow.png" class="block-image"> <ul> <li>Brief methodology point</li> </ul> </div> </div>
Before creating the HTML, generate all visual elements:
bash# Create figures directory mkdir -p figures # Hero image - SIMPLE, impactful python scripts/generate_schematic.py "POSTER FORMAT for A0. Hero banner: '[TOPIC]' in HUGE text (120pt+). Dark blue gradient background. ONE iconic visual. Minimal text. Readable from 15 feet." -o figures/hero.png # Introduction visual - ONLY 3 elements python scripts/generate_schematic.py "POSTER FORMAT for A0. SIMPLE visual with ONLY 3 icons: [icon1] → [icon2] → [icon3]. ONE word labels (80pt+). 50% white space. Readable from 8 feet." -o figures/intro.png # Methods flowchart - ONLY 4 steps python scripts/generate_schematic.py "POSTER FORMAT for A0. SIMPLE flowchart with ONLY 4 boxes: STEP1 → STEP2 → STEP3 → STEP4. GIANT labels (100pt+). Thick arrows. 50% white space. NO sub-steps." -o figures/workflow.png # Results visualization - ONLY 3 bars python scripts/generate_schematic.py "POSTER FORMAT for A0. SIMPLE bar chart with ONLY 3 bars: BASELINE (70%), EXISTING (85%), OURS (95%). GIANT percentages ON bars (120pt+). NO axis, NO legend. 50% white space." -o figures/results.png # Conclusions - EXACTLY 3 key findings python scripts/generate_schematic.py "POSTER FORMAT for A0. EXACTLY 3 cards: '95%' (150pt) 'ACCURACY' (60pt), '2X' (150pt) 'FASTER' (60pt), checkmark 'READY' (60pt). 50% white space. NO other text." -o figures/conclusions.png
CRITICAL: Generate SIMPLE figures with MINIMAL content.
bashmkdir -p figures # Generate each element with POSTER FORMAT specifications # (See examples in Section 4 above)
bash cp skills/pptx-posters/assets/poster_html_template.html poster.html
bash open poster.html # macOS # or xdg-open poster.html # Linux
Browser Print Method:
Command Line (if Chrome available):
bash# Chrome headless PDF export google-chrome --headless --print-to-pdf=poster.pdf \ --print-to-pdf-no-header \ --no-margins \ poster.html
Option 1: PDF to PPTX conversion
bash# Using LibreOffice libreoffice --headless --convert-to pptx poster.pdf # Or use online converters for simple cases
Option 2: Direct PPTX creation with python-pptx
pythonfrom pptx import Presentation from pptx.util import Inches, Pt prs = Presentation() prs.slide_width = Inches(48) prs.slide_height = Inches(36) slide = prs.slides.add_slide(prs.slide_layouts[6]) # Blank # Add images from figures/ slide.shapes.add_picture("figures/hero.png", Inches(0), Inches(0), width=Inches(48)) # ... add other elements prs.save("poster.pptx")
The provided template (assets/poster_html_template.html) includes:
css/* Poster dimensions */ body { width: 2592pt; /* 36 inches */ height: 3456pt; /* 48 inches */ } /* Color scheme - customize these */ .header { background: linear-gradient(135deg, #1a365d 0%, #2b6cb0 50%, #3182ce 100%); } /* Typography */ .poster-title { font-size: 108pt; } .authors { font-size: 48pt; } .block-title { font-size: 52pt; } .block-content { font-size: 34pt; }
| Class | Purpose | Font Size | |-------|---------|-----------| | .poster-title | Main title | 108pt | | .authors | Author names | 48pt | | .affiliations | Institutions | 38pt | | .block-title | Section headers | 52pt | | .block-content | Body text | 34pt | | .key-finding | Highlight box | 36pt |
For EACH planned graphic, verify:
Reject these patterns:
For EACH generated figure at 25% zoom:
✅ PASS criteria (ALL must be true):
❌ FAIL criteria (regenerate if ANY true):
AI-Generated Graphics Mistakes:
HTML/Export Mistakes:
Content Mistakes:
This skill works with:
Available in assets/ directory:
poster_html_template.html: Main HTML poster template (36×48 inches)poster_quality_checklist.md: Pre-submission validation checklistAvailable in references/ directory:
poster_content_guide.md: Content organization and writing guidelinesposter_design_principles.md: Typography, color theory, and visual hierarchyposter_layout_design.md: Layout principles and grid systems| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→pass | 11,627 | 5,224 | -55% | 1 | 1 | 0% | 1,754 | 3,659 | +109% | 0 | 0 | — |
case-01 | fail→fail | 32,311 | 8,330 | -74% | 1 | 1 | 0% | 6,207 | 3,043 | -51% | 0 | 0 | — |
case-02 | fail→fail | 31,466 | 5,823 | -81% | 1 | 1 | 0% | 6,206 | 3,112 | -50% | 0 | 0 | — |
case-03 | fail→pass | 31,048 | 29,632 | -5% | 1 | 1 | 0% | 6,201 | 8,064 | +30% | 0 | 0 | — |
case-04 | pass→pass | 15,564 | 15,414 | -1% | 1 | 1 | 0% | 2,649 | 5,429 | +105% | 0 | 0 | — |
case-05 | pass→pass | 4,629 | 3,051 | -34% | 1 | 1 | 0% | 953 | 3,300 | +246% | 0 | 0 | — |
case-07 | fail→pass | 11,784 | 9,177 | -22% | 1 | 1 | 0% | 1,944 | 4,301 | +121% | 0 | 0 | — |
case-08 | fail→pass | 11,951 | 3,782 | -68% | 1 | 1 | 0% | 1,899 | 3,409 | +80% | 0 | 0 | — |
case-09 | pass→pass | 4,397 | 1,382 | -69% | 1 | 1 | 0% | 726 | 2,957 | +307% | 0 | 0 | — |
case-10 | pass→pass | 5,690 | 4,188 | -26% | 1 | 1 | 0% | 1,103 | 3,511 | +218% | 0 | 0 | — |
case-11 | fail→pass | 12,796 | 2,624 | -79% | 1 | 1 | 0% | 2,151 | 3,247 | +51% | 0 | 0 | — |
case-12 | pass→pass | 13,576 | 6,340 | -53% | 1 | 1 | 0% | 2,152 | 3,784 | +76% | 0 | 0 | — |
case-13 | fail→fail | 14,636 | 10,629 | -27% | 1 | 1 | 0% | 2,204 | 4,435 | +101% | 0 | 0 | — |
case-14 | fail→pass | 13,331 | 2,665 | -80% | 1 | 1 | 0% | 1,974 | 3,226 | +63% | 0 | 0 | — |
case-15 | pass→pass | 9,109 | 3,069 | -66% | 1 | 1 | 0% | 1,494 | 3,259 | +118% | 0 | 0 | — |
case-16 | fail→pass | 9,498 | 1,676 | -82% | 1 | 1 | 0% | 1,527 | 3,028 | +98% | 0 | 0 | — |
case-17 | fail→pass | 9,807 | 3,936 | -60% | 1 | 1 | 0% | 1,615 | 3,431 | +112% | 0 | 0 | — |
case-18 | pass→pass | 8,850 | 6,256 | -29% | 1 | 1 | 0% | 1,470 | 3,826 | +160% | 0 | 0 | — |
case-19 | pass→pass | 27,501 | 21,588 | -22% | 1 | 1 | 0% | 4,503 | 6,287 | +40% | 0 | 0 | — |
case-20 | fail→fail | 30,869 | 34,051 | +10% | 1 | 1 | 0% | 5,741 | 8,941 | +56% | 0 | 0 | — |
case-21 | pass→pass | 15,965 | 10,945 | -31% | 1 | 1 | 0% | 3,134 | 4,962 | +58% | 0 | 0 | — |
case-22 | pass→pass | 8,678 | 8,549 | -1% | 1 | 1 | 0% | 1,543 | 4,198 | +172% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +36 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.