paper-talk skill
End-to-end conference talk pipeline: paper → slide outline → Beamer + PPTX → per-page polish → assurance checks (claim / citation / anonymity) → final export and report. Default-good for academic conference talks (NeurIPS / ICML / ICLR / VALSE / 投稿 talks). Trigger phrases: \"做 talk\", \"做 PPT 全流程\", \"talk pipeline\", \"end-to-end slides\", \"做演讲\", \"conference talk full workflow\". Use when the user wants the complete talk artifact, not just a slide deck.
Is the paper-talk skill safe?
Clean: nothing in its files matched our rules. We read 1 file in the folder on 2026-09-28.
No findings.
Install the paper-talk skill
A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.
git clone --depth 1 https://github.com/wanshuiyin/Auto-claude-code-research-in-sleep.git /tmp/Auto-claude-code-research-in-sleep mkdir -p ~/.claude/skills cp -r /tmp/Auto-claude-code-research-in-sleep/skills/skills-codex/paper-talk ~/.claude/skills/paper-talk
In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub
The instructions your agent would load
SKILL.md as published, without the frontmatter. Read it on GitHub
Paper Talk: End-to-End Conference Talk Pipeline
Workflow: from a completed paper to a conference-ready talk artifact — slide outline, Beamer source, editable PPTX, speaker notes, full talk script, polished visuals, and assurance checks.
Pipeline target: $ARGUMENTS
Assurance Ladder
The skill takes an explicit — assurance: argument; default is polished.
Phase 4 (assurance checks) is opt-in via — assurance: conference-ready. The lower levels skip claim / citation / anonymity audits, which is correct when content has already been audited at the paper-writing stage.
Hard Invariants
These are non-negotiable across all phases:
- Original paper is read-only. This workflow consumes the paper directory; it never modifies paper/main.tex or other paper artifacts.
- Original deck is preserved. /paper-slides produces a baseline deck; /slides-polish writes a _polished versioned copy. The original Beamer + PPTX are never overwritten.
- Speaker notes are byte-stable. Polish must not change slide.notes_slide content. Phase 4 verifies this.
- No new content anywhere in the pipeline. All slide text, speaker notes, talk script, Q&A answers, claims, numbers, citations, URLs, author names, affiliations, anonymity placeholders, and experiment results must be either paper-grounded (extracted from PAPER_DIR/ artefacts) or explicitly user-provided. The pipeline never invents content during outline, build, polish, audit, or export. Phase-4 anonymity scan + claim audit verify this end-to-end.
- No slide reordering. Add / drop / reorder requires explicit user flags.
- Fresh-context independence. Per-page Codex calls in /slides-polish use fresh spawnagent calls (no sendinput) and are same-family provisional in the base mirror.
- Anonymity fail-closed. If any audit (or any Codex fix proposal) would replace a placeholder with a real title / count / URL, the workflow halts and surfaces the proposal for human review. See ../shared-references/experiment-integrity.md.
- Style references are guidance, not text source. A — reference: PDF or — style: preset informs visual weight and structural rhythm; never copy prose, examples, slide titles, or speaker-note text from the reference.
- Final report cannot be conference-ready unless required audits pass. Phase 6 verifies and downgrades verdict if audits fail.
- reasoningeffort: xhigh** is invariant across all effort levels for any Codex call invoked by sub-skills.
Constants
- PAPERDIR = paper/** — Source paper directory. Override via positional argument.
- OUTPUTDIR = slides/** — Where the deck artefacts live.
- STATEDIR = .aris/paper-talk/** — Workflow state, audit logs, final report.
- TALKTYPE = spotlight** — Default talk format. Inherited by /paper-slides.
- TALKMINUTES = 15** — Default duration. Inherited by /paper-slides.
- VENUE = NeurIPS — Default venue (used by /paper-slides color schemes when — style is not passed).
- ASPECTRATIO = 16:9** — Inherited by /paper-slides.
- STYLEPRESET** — generic if not passed; why-rf and venue presets supported by /slides-polish.
- REFERENCEVISUAL** — Required when assurance ≥ polished. The Beamer compile of this talk is an acceptable self-reference; an external academic talk PDF is preferred when the user wants visual alignment beyond defaults.
- AUTOPROCEED = false** — Each major phase pauses for user approval. Set true only when explicitly requested.
Inputs
Discovered from $ARGUMENTS and the project directory:
- PAPERDIR/** — compiled paper (main.tex + main.pdf). The paper must already be in good shape; this workflow does not write the paper.
- PAPERDIR/sections/.tex — section sources for content extraction.
- PAPERDIR/figures/** — figures available for slide reuse.
- (optional) slides/SLIDEOUTLINE.md** — pre-existing outline (resume mode); skips Phase 1 generation.
- (optional) — reference: — visual anchor for /slides-polish. If absent and the assurance level requires polish, the workflow uses the Beamer self-compile as reference.
- (optional) — talktype, — minutes, — style, — effort** — see Constants.
Output Layout
File names match /paper-slides's emit contract — this workflow is a non-renaming consumer.
slides/
├── SLIDE_OUTLINE.md # Phase-1 outline (claim-first per slide)
├── main.tex # Beamer source (from /paper-slides)
├── main.pdf # compiled Beamer
├── presentation.pptx # editable PPTX (from /paper-slides; emit name fixed by /paper-slides)
├── presentation_pre_polish.pptx # snapshot before /slides-polish
├── presentation_polished.pptx # /slides-polish output (when assurance ≥ polished)
├── presentation_polished.pdf # rendered (LibreOffice or user-export)
├── speaker_notes.md # per-slide notes (from /paper-slides)
├── TALK_SCRIPT.md # full word-for-word talk script + Q&A (from /paper-slides)
└── assets/ # per-slide PNG previews
.aris/paper-talk/
├── PIPELINE_STATE.json # phase pointer, status, timestamps
├── FINAL_REPORT.md # human-readable summary at end
├── audit-input/ # Phase-4 staging copies of slide text + notes + script (so /paper-claim-audit and /citation-audit can run on slide content as a synthetic "paper")
│ ├── main.tex # \input{sections/slide_text.tex} \iThe audit JSON files follow the shared 6-state schema; see ../shared-references/assurance-contract.md.
Workflow
Phase 0: Setup
- Validate paper directory: ls $PAPERDIR/main.tex $PAPERDIR/main.pdf. If absent → halt and ask user to point to the compiled paper.
- Check prerequisites:
- LaTeX: which xelatex pdflatex latexmk
- PPTX rendering: which soffice (LibreOffice headless) — required for Phase 4 export integrity check; otherwise prompt user to export PDF manually.
- PDF tools: which pdfinfo pdftoppm (poppler) — required for /slides-polish PNG rendering.
- Codex MCP availability.
- python-pptx (python3 -c 'import pptx').
- Resolve overrides from $ARGUMENTS: talk_type, minutes, assurance, reference, style, effort.
- State init: write .aris/paper-talk/PIPELINE_STATE.json with phase: 0, timestamp, all resolved overrides.
- Resume mode: if slides/SLIDEOUTLINE.md exists and PIPELINESTATE.json shows recent in-progress work, prompt the user — resume from last phase or start fresh.
Phase 1: Slide Outline (Checkpoint)
Goal: produce or accept a slides/SLIDE_OUTLINE.md that the user signs off on before any deck-building happens.
If slides/SLIDE_OUTLINE.md already exists, present its summary (slide count, time budget, claim-per-slide map) to the user and ask:
"Use existing outline (Y/n)? Modify? Regenerate?"
Otherwise, delegate to /paper-slides Phase-1 only (content extraction + slide outline generation). /paper-slides writes the outline into its own state; we adopt it as slides/SLIDE_OUTLINE.md.
The outline must contain, per slide:
- A claim-first title (states the slide's point, not the topic).
- One main idea per slide.
- Bullet content (sentence fragments, not paragraphs).
- Figure / equation / callout note.
- Time budget (seconds).
- Transition cue.
- Speaker note seed (1-3 sentences; expanded in Phase 2).
Checkpoint: present the outline. Default behavior: pause for user approval. Set AUTO_PROCEED = true only when the user is explicitly running unattended.
Phase 2: Build Baseline Deck
Invoke /paper-slides to generate Beamer source + PPTX from the approved outline.
/paper-slides "<paper-dir>" — talk_type: <T> — minutes: <N> — venue: <V> — aspect: 16:9 — notes: trueForward — style-ref: if the user originally passed it (writer-side; the reviewer-side polish in Phase 3 must NOT see it — see invariant 8).
/paper-slides produces (emit names fixed by /paper-slides):
- slides/main.tex + slides/main.pdf (Beamer)
- slides/presentation.pptx (editable PPTX)
- slides/speaker_notes.md
- slides/TALK_SCRIPT.md
After return: verify the four artefacts exist. If any missing, halt with a diagnostic. Do not rename outputs — downstream phases bind to these exact paths.
Phase 3: Visual Polish (when assurance ≥ polished)
Skip when assurance == draft.
Invoke /slides-polish against the freshly generated PPTX, with a reference. If the user passed — reference:, use that. Otherwise, use the Beamer compile (slides/main.pdf) as the visual reference — the Beamer is the design intent for the same talk, so it is the correct anchor when no external reference is available.
/slides-polish "slides/presentation.pptx" — reference: slides/main.pdf — style: <preset> — effort: <effort>After return: verify slides/presentationpolished.pptx exists; if rendering tools are available, also verify slides/presentationpolished.pdf.
The polish phase is read-only on content (see Hard Invariants). If /slides-polish emits a BLOCKED verdict because a Codex fix proposal would alter content, surface that block to the user and halt rather than overriding.
Phase 4: Assurance Checks (when assurance == conference-ready)
Skip when assurance ∈ {draft, polished}.
/paper-claim-audit and /citation-audit expect a paper-shaped input (paper/main.tex + paper/sections/.tex + paper/results/) and emit JSON under paper/. Slides have a different shape, so this phase first stages slide artefacts into a synthetic paper directory, then invokes the audits against that synthetic input. Verdicts are written under .aris/paper-talk/audits/ using the shared 6-state schema (PASS, WARN, FAIL, NOTAPPLICABLE, BLOCKED, ERROR) — see ../shared-references/assurance-contract.md.
4.0 Staging adapter
The staged "paper" mirrors /paper-claim-audit and /citation-audit's expected layout: main.tex at the root that \input{}s sections/*.tex, plus a .bib file and results/+figures/ symlinks.
.aris/paper-talk/audit-input/
├── main.tex
│ # contains: \input{sections/slide_text.tex}
│ # \input{sections/notes.tex}
│ # \input{sections/script.tex}
│ # \bibliography{references}
├── sections/
│ ├── slide_text.tex # one \section{Slide K — <title>} per slide; visible bullets, titles, callout text, in-slide \cite{...}
│ ├── notes.tex # speaker_notes.md converted to LaTeX, one \section per slide
│ └── script.tex # TALK_SCRIPT.md converted to LaTeX, one \section per slide
├── references.bib → ../../../paper/references.bib # symlink to source paper bib (or copy if symlink not allowed)
├── results/ → ../../../paper/results/ # symlink — claim audit needs real evidence
└── figures/ → ../../../paper/figures/ # symlink — citation audit may reference figure captionsIf the source paper uses a different bib name (e.g., paper.bib), mirror the actual file. If multiple bibs are used, link them all.
The staged "paper" exists only for the duration of Phase 4 and is removed in Phase 6 unless the user passes — keep-audit-input.
4.1 Slide claim audit
Invoke /paper-claim-audit against the staged input. Scope is slide text + speaker notes + full talk script — talks often smuggle unsupported claims into spoken parts that the visible bullets don't show.
/paper-claim-audit ".aris/paper-talk/audit-input"The audit emits audit-input/PAPERCLAIMAUDIT.json with the shared 6-state schema. Move it to .aris/paper-talk/audits/slideclaimaudit.json and de-stage the path prefix so the verdicts cite slide K rather than synthetic-paper sections.
A FAIL or BLOCKED verdict on any claim downgrades the Phase-6 final verdict from conference-ready to polished.
4.2 Citation audit
Invoke /citation-audit over the staged input. Verify any \cite{...} in slides + notes + script via DBLP / CrossRef; flag fabricated entries.
/citation-audit ".aris/paper-talk/audit-input"More skills from wanshuiyin/Auto-claude-code-research-in-sleep
- Aablation-plannerUse when main results pass result-to-claim (claim_supported=yes or partial) and ablation studies are needed for paper submission.
- Aablation-plannerUse when main results pass result-to-claim (`claim_supported = yes` or `partial`) and ablation studies are needed for paper submission. A secondary Codex agent designs ablations from a reviewer's perspective; the local executor reviews feasibility and implements.
- AalphaxivQuick single-paper lookup via AlphaXiv LLM-optimized summaries with tiered source fallback. Use when user says "explain this paper", "summarize paper", pastes an arXiv/AlphaXiv URL, or provides a bare arXiv ID for quick understanding - not for broad literature search.
- AalphaxivQuick single-paper lookup via AlphaXiv LLM-optimized summaries with tiered source fallback. Use when user says "explain this paper", "summarize paper", pastes an arXiv/AlphaXiv URL, or provides a bare arXiv ID for quick understanding - not for broad literature search.
- Aanalyze-resultsAnalyze ML experiment results, compute statistics, generate comparison tables and insights. Use when user says "analyze results", "compare", or needs to interpret experimental data.
- Aanalyze-resultsAnalyze ML experiment results, compute statistics, generate comparison tables and insights. Use when user says \"analyze results\", \"compare\", or needs to interpret experimental data.
- AarxivSearch, download, and summarize academic papers from arXiv. Use when user says "search arxiv", "download paper", "fetch arxiv", "arxiv search", "get paper pdf", or wants to find and save papers from arXiv to the local paper library.
- AarxivSearch, download, and summarize academic papers from arXiv. Use when user says \"search arxiv\", \"download paper\", \"fetch arxiv\", \"arxiv search\", \"get paper pdf\", or wants to find and save papers from arXiv to the local paper library.
- Aauto-paper-improvement-loopAutonomously improve a generated paper via GPT-6-Astra xhigh review → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper.
- Aauto-paper-improvement-loopAutonomously improve a generated paper via Claude review through claude-review MCP → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper.
- Aauto-paper-improvement-loopAutonomously improve a generated paper via Gemini review through gemini-review MCP → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper.
- Aauto-paper-improvement-loopAutonomously improve a generated paper via GPT-6-Astra xhigh review → implement fixes → recompile, for 2 rounds. Use when user says \"改论文\", \"improve paper\", \"论文润色循环\", \"auto improve\", or wants to iteratively polish a generated paper.