Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create and compile beautiful Beamer presentations following the Rhetoric of Decks philosophy. Use when making slides, creating decks, or compiling .tex presentation files.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 144% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 248% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 124% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 290% | 0% |
Create beautiful Beamer presentations. This skill enforces the Rhetoric of Decks philosophy through concrete, measurable rules — not aspirational guidance.
Before touching anything, answer three questions:
Q1: New deck or editing existing?
.tex file first. Understand its palette, structure, and style before changing anything.Q2: Who is the audience?
See domain_patterns.md in this skill directory for detailed guidance per audience type.
Q3: What's the tone?
palette_reference.md for inspiration.These are not guidelines. They are constraints.
If a slide has two ideas, split it. No exceptions.
If someone reads only the slide titles in sequence, they should understand the entire argument.
Bullets are a confession that you haven't found the structure. Look for:
Exception: genuinely parallel items (e.g., a list of axioms in a teaching deck).
Empty space on a slide signals that you chose carefully. A full slide signals anxiety.
Not "try to fix." Zero. See the Compile Loop below.
For new decks, use this template. It is extracted from real decks that work.
latex\documentclass[aspectratio=169,11pt]{beamer} % Packages \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{microtype} \usepackage{amsmath,amssymb} \usepackage{booktabs} \usepackage{graphicx} \usepackage{tikz} \usepackage{pgfplots} \usepackage{xcolor} \usepackage{ragged2e} \usepackage{colortbl} \usepackage{array} \usepackage{hyperref} \usepackage{adjustbox} \usetikzlibrary{shapes.geometric, arrows.meta, positioning, calc, backgrounds, decorations.pathreplacing, shadows, fadings} \pgfplotsset{compat=1.18} % --- Color Palette: Warm Professional --- \definecolor{DeepNavy}{HTML}{2E4057} \definecolor{Teal}{HTML}{048A81} \definecolor{WarmOrange}{HTML}{E85D04} \definecolor{SoftPurple}{HTML}{9D4EDD} \definecolor{WarmGray}{HTML}{6C757D} \definecolor{LightGray}{HTML}{E9ECEF} \definecolor{Cream}{HTML}{FBF8F1} \definecolor{DeepRed}{HTML}{D62828} \definecolor{Gold}{HTML}{D4A03A} \definecolor{SoftWhite}{HTML}{FAFAFA} % Beamer colors \setbeamercolor{normal text}{fg=DeepNavy, bg=SoftWhite} \setbeamercolor{structure}{fg=DeepNavy} \setbeamercolor{alerted text}{fg=DeepRed} \setbeamercolor{example text}{fg=Teal} \setbeamercolor{frametitle}{fg=DeepNavy, bg=SoftWhite} \setbeamercolor{title}{fg=DeepNavy} \setbeamercolor{subtitle}{fg=WarmGray} \setbeamercolor{block title}{bg=DeepNavy, fg=SoftWhite} \setbeamercolor{block body}{bg=LightGray, fg=DeepNavy} \setbeamercolor{itemize item}{fg=WarmOrange} \setbeamercolor{itemize subitem}{fg=Gold} % Fonts \usefonttheme{professionalfonts} \setbeamerfont{title}{size=\huge, series=\bfseries} \setbeamerfont{frametitle}{size=\Large, series=\bfseries} % Strip chrome \setbeamertemplate{navigation symbols}{} \setbeamertemplate{headline}{} % Minimal footline \setbeamertemplate{footline}{% \hfill \begin{beamercolorbox}[wd=3cm,ht=2.5ex,dp=1ex,right,rightskip=0.6cm]{page number} \usebeamercolor[fg]{WarmGray}\scriptsize\insertframenumber \end{beamercolorbox} \vspace{0.3cm} } % Bullets \setbeamertemplate{itemize item}{\footnotesize\raisebox{0.3ex}{\tikz\fill[WarmOrange] (0,0) circle (0.45ex);}} \setbeamertemplate{itemize subitem}{\footnotesize\raisebox{0.3ex}{\tikz\fill[Gold] (0,0) circle (0.35ex);}} % Custom commands \newcommand{\transitionslide}[2]{% {\setbeamercolor{normal text}{fg=SoftWhite,bg=DeepNavy} \begin{frame}[plain]\vfill\begin{center} {\huge\bfseries\textcolor{Gold}{#1}}\\[0.6cm] {\large\textcolor{LightGray}{#2}} \end{center}\vfill\end{frame}} } \graphicspath{{figures/}}
For alternative palettes, see palette_reference.md in this skill directory.
NOT "Motivation" with bullet points. Instead:
Use \transitionslide{Section Title}{Subtitle} for dark-background section dividers.
NOT "Questions?" or "Thank you." Instead:
Present the strongest objection to your argument, then respond to it. This builds credibility. Format: "A skeptic would say..." followed by your response.
Read tikz_rules.md in this skill directory BEFORE creating any TikZ figure. The rules are measurement-based — they prevent text from overlapping arrows, boxes, and other objects.
Critical rule preview: Before placing a label between two nodes, CALCULATE the edge-to-edge gap and compare it to the estimated text width. If the text is wider than the gap minus 0.6cm padding, the label WILL collide. Move it above/below or shorten the text.
After EVERY edit to a .tex file:
bashpdflatex -interaction=nonstopmode [file].tex
bashgrep "^!" [file].log
If any: fix, recompile, repeat.
bashgrep -cE "Overfull|Underfull" [file].log
This must return 0. For EACH warning:
| Warning | Fix | |---------|-----| | Overfull \hbox | Rephrase shorter, use \adjustbox, add @{} to table columns | | Underfull \hbox | Rephrase or adjust paragraph breaks | | Overfull \vbox | Split the slide or reduce \vspace, tighten content | | Underfull \vbox | Add \vfill or adjust spacing |
Even 0.5pt overfull must be fixed. Do NOT proceed until the count is 0.
bashgrep -i "font" [file].log | grep -i "warning"
TikZ errors don't trigger compile warnings. You must catch them yourself. Follow this order — curves first, everything else second:
Pass 1 — Find and fix all Bézier curves:
bashgrep -n "bend" [file].tex
For EACH curved arrow found:
(chord / 2) × tan(bend_angle / 2)Pass 2 — Everything else:
above, below, left, or right?Pass 3 — Open the PDF and visually confirm.
Full rules and formulas are in tikz_rules.md. This verification runs on ALL TikZ figures in the deck, not just the one you just edited.
bashopen [file].pdf
Every deck tells a story. The structure depends on context, but the principle is universal:
Act I — Setup: Establish the problem or question. Make the audience feel it. Act II — Development: Present evidence, analysis, investigation. Build the logical case. Act III — Resolution: Deliver the insight. State implications. Give the audience something to do or remember.
Within this arc, apply the Pyramid Principle: lead with the conclusion, then support it. Academic audiences expect this. Do not build suspense — state the finding, then prove it.
For domain-specific structures, see domain_patterns.md.
When a deck needs data visualizations:
generate_figures.py) using matplotlibfigures/ subdirectoryfig.set_facecolor()ax.text() near patches (FancyBboxPatch, Circle, Rectangle), compute the patch boundary and verify text has ≥0.4cm clearance. See tikz_rules.md Pass 4.va='center' for both at symmetric offsets — multi-line text extends further from its anchor than single-line, creating visual asymmetry. Instead, anchor outward from center: upper element uses va='bottom' at center + gap, lower uses va='top' at center - gap. See tikz_rules.md Pass 4.arc3), compute the actual Bézier curve position using the arc3 control point formula (cx = mid_x + rad*dy, cy = mid_y - rad*dx), then offset labels perpendicular to the computed curve position. Never guess where curves pass. Use a white-background bbox on labels for readability. See tikz_rules.md Pass 4 for the full formula and workflow.| Principle | Rule | |-----------|------| | Ideas per slide | ONE | | Title style | Assertion, not label | | Minimum font | 24pt (18pt floor) | | Bullets | Avoid — find the structure | | White space | Confidence, not waste | | Charts | One message, direct labels | | Compile target | Zero warnings | | Opening slide | Puzzle, surprise, or provocation | | Closing slide | One memorable takeaway | | TikZ labels | Calculate the gap (see tikz_rules.md) | | Color palette | 10+ colors, warm by default | | Narrative | Setup, Development, Resolution |
All in this skill directory (~/.claude/skills/compiledeck/):
For the complete essay behind these principles: ~/MixtapeTools/presentations/rhetoric_of_decks.md ~/MixtapeTools/presentations/rhetoric_of_decks_full_essay.md
This skill distills those essays into operational rules. You don't need to re-read them — just follow the rules above.
Other measured skills in the registry, with their headline benchmark lift.