A Claude Code skill for creating academic presentations with Typst + Touying.
Full lifecycle: create → compile → review → polish → verify.
LLMs generate decent slide content but consistently fail on:
- Animation bloat —
#pausesubslides explode PDF page counts withouthandout: true - Book-style outlines —
#outline()+ heading numbering produces TOC with page numbers and dotted leaders - Sparse slides — 3-bullet text-only slides with no formulas, diagrams, or tables
- Missing pedagogy — definitions without motivation, no worked examples
- No diagrams — baseline never uses CeTZ/Fletcher even when the content calls for it
This skill encodes 12 hard rules and a structured multi-phase workflow to fix these systematically.
Tested on 3 evals (KZG commitment creation, ZKP intro creation, lattice crypto review) with and without the skill:
| Metric | With Skill | Without Skill | Delta |
|---|---|---|---|
| Pass rate | 100% | 79.6% | +20.4% |
| Diagrams included | Always | Never | Critical gap |
| Handout mode | Always on | Usually off | Fixes page bloat |
| Review depth | Catches all patterns | Misses 2-3 patterns | Better pedagogy |
Biggest differentiators: diagram inclusion (CeTZ/Fletcher), sparse-slide detection, reference-slide checking, consecutive-definitions-without-example detection.
Token/time overhead is ~85% — driven by the self-review quality loop. Acceptable given the quality delta.
Copy SKILL.md into your Claude Code skills directory:
# Option 1: project-level skill
mkdir -p .claude/skills
cp SKILL.md .claude/skills/typst-slide.md
# Option 2: user-level skill (available across all projects)
mkdir -p ~/.claude/skills/typst-slide
cp SKILL.md ~/.claude/skills/typst-slide/SKILL.md- Typst CLI installed (
brew install typstorcargo install typst-cli) - Packages are auto-downloaded on first compile: Touying 0.7.0, CeTZ 0.4.2, Fletcher 0.5.8, Theorion 0.5.0
| Action | Description |
|---|---|
create [topic] |
Multi-phase slide creation: interview → outline → draft → quality loop |
compile [file] |
Compile .typ to PDF, report errors and page count |
review [file] |
Read-only proofreading report (grammar, typos, overflow, consistency) |
audit [file] |
Visual layout audit (overflow, font consistency, block fatigue) |
pedagogy [file] |
13-pattern pedagogical review |
cetz [file] |
CeTZ/Fletcher diagram quality review |
excellence [file] |
Parallel multi-agent comprehensive review |
visual-check [file] |
PDF→image systematic visual inspection |
validate [file] [duration] |
Automated quantitative validation against timing table |
extract-figures [pdf] |
Extract figures from paper PDF for inclusion |
- Handout mode by default —
config-common(handout: true)collapses#pausesubslides - Max 2 styled blocks per slide
- Motivation before formalism
- Worked example within 2 slides of every definition
- Typst source is the single source of truth
- Verify after every task — compile + check PDF
- Telegraphic style — keyword phrases, not sentences
- Every slide earns its place — must contain substantive content
- Content density guard — compile and visually verify
- Reference slide — second-to-last, before Thank You
- Color and contrast standards — WCAG AA, colorblind-safe palette
- Backup slides — 3-5 slides after Thank You for anticipated questions
| Package | Version | Role |
|---|---|---|
| Touying | 0.7.0 | Slide framework (6 built-in themes) |
| CeTZ | 0.4.2 | Diagram library (TikZ equivalent) |
| Fletcher | 0.5.8 | Node-edge diagrams (built on CeTZ) |
| Theorion | 0.5.0 | Theorem/definition environments |
examples/kzg-slides.typ— KZG polynomial commitment seminar (15 min, grad-level)examples/test-review.typ— Intentionally flawed lattice crypto slides for testing the review action
MIT