一键导入
defense-slides
Generates a populated LaTeX Beamer presentation for the thesis defense from thesis sections and student profile. Compiles to output/defense.pdf.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generates a populated LaTeX Beamer presentation for the thesis defense from thesis sections and student profile. Compiles to output/defense.pdf.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
One-time onboarding interview that creates student-profile.md, proposal.md, and rewrites CLAUDE.md with the student's context.
Generate an email-ready progress report addressed to the student's advisor, based on git history since a provided date and the current state of thesis sections
Compiles all thesis/*.md sections into output/thesis.pdf using Pandoc and XeLaTeX. Checks prerequisites before running.
Reads a dataset from data/clean/, describes its structure, suggests summary statistics, and flags data quality issues. Student must provide the file path in the same message.
Scans all thesis/*.md sections, reports substantive content vs. placeholders, and writes docs/thesis-health.md.
Checks whether the thesis project can be reproduced by someone else — folder structure, script order, data documentation, README completeness.
| name | defense-slides |
| description | Generates a populated LaTeX Beamer presentation for the thesis defense from thesis sections and student profile. Compiles to output/defense.pdf. |
Generates a 16-slide Beamer presentation for your thesis defense, populated from your thesis sections. Outputs output/defense.tex (editable) and attempts to compile output/defense.pdf.
Run /interview first if you have not already — this skill reads docs/student-profile.md for your name, advisor, university, and thesis title.
Read docs/student-profile.md. Extract:
If the file does not exist or contains only placeholder text, stop and tell the student: "Please run /interview first to set up your student profile."
Read each of the following files:
| File | Used for |
|---|---|
thesis/01_introduction.md | Motivation slide |
thesis/02_literature_review.md | Literature slides (2) |
thesis/03_research_question.md | Research Question slide |
thesis/04_data.md | Data slides (2) |
thesis/05_methodology.md | Methodology slides (2) |
thesis/06_results.md | Results slides (3) |
thesis/07_robustness.md | Robustness slide |
thesis/08_discussion.md | Conclusion slide (combined with 09) |
thesis/09_conclusion.md | Conclusion slide (combined with 08) |
Run:
pdflatex --version
If not found, print install instructions and stop:
brew install --cask mactex or brew install basictexwinget install MiKTeX.MiKTeXsudo apt install texlive-latex-base or sudo dnf install texliveApply these content extraction rules to each thesis section before inserting into the .tex file:
>, lines containing [placeholder], and bare headings% TODO: [Section name] not yet written — fill in before defense& → \&% → \%$ → \$# → \#_ → \_^ → \^{}~ → \textasciitilde{}{ → \{} → \}\ → \textbackslash{}Generate output/defense.tex using this exact structure, substituting bullet points from the thesis:
\documentclass{beamer}
\usetheme{Boadilla}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\title{[Thesis Title]}
\subtitle{Master's Thesis Defense}
\author{[Student Name]}
\institute{[University] \\ [Program]}
\date{\today}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}{Outline}
\tableofcontents
\end{frame}
% -------------------------------------------------------
\section{Motivation}
\begin{frame}{Motivation}
\begin{itemize}
\item [bullet 1 from introduction]
\item [bullet 2 from introduction]
\item [bullet 3 from introduction]
\end{itemize}
\end{frame}
% -------------------------------------------------------
\section{Research Question}
\begin{frame}{Research Question}
\begin{itemize}
\item \textbf{Research question:} [RQ from student-profile.md]
\item [bullet 2 from research question section]
\item [bullet 3 from research question section]
\end{itemize}
\end{frame}
% -------------------------------------------------------
\section{Literature \& Positioning}
\begin{frame}{Literature \& Positioning (1/2)}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
\begin{frame}{Literature \& Positioning (2/2)}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
% -------------------------------------------------------
\section{Data}
\begin{frame}{Data (1/2)}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
\begin{frame}{Data (2/2)}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
% -------------------------------------------------------
\section{Methodology}
\begin{frame}{Methodology (1/2)}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
\begin{frame}{Methodology (2/2)}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
% -------------------------------------------------------
\section{Results}
\begin{frame}{Main Results (1/3)}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
\begin{frame}{Main Results (2/3)}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
\begin{frame}{Main Results (3/3)}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
% -------------------------------------------------------
\section{Robustness}
\begin{frame}{Robustness Checks}
\begin{itemize}
\item [bullet 1]
\item [bullet 2]
\item [bullet 3]
\end{itemize}
\end{frame}
% -------------------------------------------------------
\section{Conclusion}
\begin{frame}{Conclusion \& Contribution}
\begin{itemize}
\item [bullet 1 from discussion/conclusion]
\item [bullet 2 from discussion/conclusion]
\item [bullet 3 from discussion/conclusion]
\end{itemize}
\end{frame}
% -------------------------------------------------------
\begin{frame}
\centering
\Large Thank you. \\[1em]
\normalsize Questions welcome.
\end{frame}
\end{document}
Run pdflatex twice from the project root (required for correct page numbering and outline):
pdflatex -interaction=nonstopmode -output-directory=output output/defense.tex
pdflatex -interaction=nonstopmode -output-directory=output output/defense.tex
On success:
"Slides compiled →
output/defense.pdf(16 slides). Openoutput/defense.texto customise the theme or adjust content before your defense. To change the theme, edit\usetheme{Boadilla}on line 2."
On failure, show the first error line from pdflatex output and diagnose:
Undefined control sequence → a special character in your thesis was not escaped — open output/defense.tex and look for unescaped &, %, $, #, or _File ... not found → missing LaTeX package; run tlmgr install <package> (macOS/Linux) or use MiKTeX Package Manager (Windows)LaTeX Error: Environment itemize undefined → Beamer package not installed; reinstall your LaTeX distribution