Skip to content
Automation
Skill

/compiledeck

Create and compile beautiful Beamer presentations following the Rhetoric of Decks philosophy. Use when making slides, creating decks, or compiling .tex presentation files.

From plugin
auto-empirical-research-skills
4.9k200 skills

Claude Code

$ npx -y skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill compiledeck --agent claude-code

SKILL.md

compiledeck.SKILL.md
name: compiledeck
description: Create and compile beautiful Beamer presentations following the Rhetoric of Decks philosophy. Use when making slides, creating decks, or compiling .tex presentation files.
allowed-tools: Bash(pdflatex*), Bash(latexmk*), Bash(ls*), Bash(open*), Bash(python*), Read, Write, Edit, Glob, Grep
argument-hint: "[topic-or-tex-file-path]"

Compile Deck

Create beautiful Beamer presentations. This skill enforces the **Rhetoric of Decks** philosophy through concrete, measurable rules — not aspirational guidance.

Step 1: Triage

Before touching anything, answer three questions:

**Q1: New deck or editing existing?**

  • If editing: Read the `.tex` file first. Understand its palette, structure, and style before changing anything.
  • If new: Proceed to Q2.

**Q2: Who is the audience?** 1. **Academic seminar** — sparse, one idea per slide, titles carry the argument 2. **Teaching lecture** — clarity over compression, repetition OK, progressive revelation 3. **Working deck** (coauthors) — more detail OK, document choices, preserve uncertainty 4. **External non-academic** — storytelling, visual impact, minimal jargon

See `domain_patterns.md` in this skill directory for detailed guidance per audience type.

**Q3: What's the tone?** 1. **Professional/Academic** — use the Warm Professional palette (default) or Academic Muted 2. **Colorful/Expressive** — create something new each time. See `palette_reference.md` for inspiration.

---

Step 2: The Non-Negotiable Rules

These are not guidelines. They are constraints.

ONE idea per slide

If a slide has two ideas, split it. No exceptions.

Titles are assertions, not labels

  • Bad: "Results"
  • Good: "Treatment increased distance by 61 miles on average"
  • Bad: "Literature Review"
  • Good: "Prior work ignores the supply-side margin"

If someone reads only the slide titles in sequence, they should understand the entire argument.

Typography minimums

  • Body text: 24pt minimum
  • Absolute floor (footnotes, source notes): 18pt
  • Sans-serif fonts only
  • Never justify text — always ragged right

No bullet lists (usually)

Bullets are a confession that you haven't found the structure. Look for:

  • A sequence (use a flow diagram)
  • A contrast (use two columns)
  • A hierarchy (use size/color differentiation)
  • A causal chain (use arrows)

Exception: genuinely parallel items (e.g., a list of axioms in a teaching deck).

Charts: one message, direct labels

  • Every chart communicates ONE finding
  • Title states the finding ("Enrollment doubled after 2015"), not the chart type ("Enrollment Over Time")
  • Label data directly on the chart — no legends requiring eye movement
  • Remove all chartjunk: gridlines, borders, unnecessary axis marks

White space is confidence, not waste

Empty space on a slide signals that you chose carefully. A full slide signals anxiety.

Zero compile warnings

Not "try to fix." Zero. See the Compile Loop below.

---

Step 3: The Preamble

For new decks, use this template. It is extracted from real decks that work.

Default: Warm Professional Palette (10 colors)

\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.

---

Step 4: Slide Architecture Patterns

Opening slide (first content slide after title)

**NOT** "Motivation" with bullet points. Instead:

  • A surprising fact or statistic (big number, centered)
  • A puzzle or unanswered question
  • A prov
Read more
@brycewang-stanford
Ships withauto-empirical-research-skills

## 🔥 力荐 · StatsPAI — Stata 与 R 的 Python 平替,为 AI Agent 而生 🔁 Stata / R 平替:reghdfe、csdid、rdrobust、synth、fixest、did 等常用命令在 Python 中一站式替代,一个 import statspai as sp 搞定 DID / RD / IV / SCM / DML / matching 🤖 面向 Agent 设计:结构化结果对象 + 内置 MCP Server,Claude / Codex

4.9k200 skills
Get the whole plugin

Stars on GitHub

Momentum

stars in total
4.9k
Star history of brycewang-stanford/Auto-Empirical-Research-Skills on GitHub, a chart by star-history.com

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…

n8n2w209k
@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 compiledeck.

Which coding agents can use compiledeck?
compiledeck 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.