skills/skills-codex/paper-talk/SKILL.md
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.
npx skillsauth add wanshuiyin/Auto-claude-code-research-in-sleep paper-talkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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
The skill takes an explicit — assurance: argument; default is polished.
| Level | Phases run | Use when |
|---|---|---|
| draft | 0 → 1 → 2 → 5 → 6 | Internal practice talk; quick first-pass deck |
| polished (default) | 0 → 1 → 2 → 3 → 5 → 6 | Lab seminar, workshop, default conference talk |
| conference-ready (or submission) | 0 → 1 → 2 → 3 → 4 → 5 → 6 | Top-venue oral / spotlight where slide claims are scrutinised; or anonymous submission |
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.
These are non-negotiable across all phases:
paper/main.tex or other paper artifacts./paper-slides produces a baseline deck; /slides-polish writes a _polished versioned copy. The original Beamer + PPTX are never overwritten.slide.notes_slide content. Phase 4 verifies this.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./slides-polish use fresh spawn_agent calls (no send_input). See ../shared-references/reviewer-independence.md.../shared-references/experiment-integrity.md.— reference: PDF or — style: preset informs visual weight and structural rhythm; never copy prose, examples, slide titles, or speaker-note text from the reference.conference-ready unless required audits pass. Phase 6 verifies and downgrades verdict if audits fail.reasoning_effort: xhigh is invariant across all effort levels for any Codex call invoked by sub-skills.paper/ — Source paper directory. Override via positional argument.slides/ — Where the deck artefacts live..aris/paper-talk/ — Workflow state, audit logs, final report.spotlight — Default talk format. Inherited by /paper-slides./paper-slides.NeurIPS — Default venue (used by /paper-slides color schemes when — style is not passed).16:9 — Inherited by /paper-slides.generic if not passed; why-rf and venue presets supported by /slides-polish.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.true only when explicitly requested.Discovered from $ARGUMENTS and the project directory:
PAPER_DIR/ — compiled paper (main.tex + main.pdf). The paper must already be in good shape; this workflow does not write the paper.PAPER_DIR/sections/*.tex — section sources for content extraction.PAPER_DIR/figures/ — figures available for slide reuse.slides/SLIDE_OUTLINE.md — pre-existing outline (resume mode); skips Phase 1 generation.— reference: <pdf> — visual anchor for /slides-polish. If absent and the assurance level requires polish, the workflow uses the Beamer self-compile as reference.— talk_type, — minutes, — style, — effort — see Constants.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} \input{sections/notes.tex} \input{sections/script.tex}
│ ├── sections/
│ │ ├── slide_text.tex # all visible slide bullets/titles/callouts as \section{Slide K}
│ │ ├── notes.tex # speaker_notes.md → LaTeX, one \section per slide
│ │ └── script.tex # TALK_SCRIPT.md → LaTeX, one \section per slide
│ ├── references.bib → ../../../paper/references.bib # symlink to source paper bib for /citation-audit
│ ├── results/ → ../../../paper/results/ # symlink — claim audit needs real evidence
│ └── figures/ → ../../../paper/figures/ # symlink — citation audit may reference figure captions
└── audits/
├── slide_claim_audit.json # 6-state verdict per claim (PASS/WARN/FAIL/NOT_APPLICABLE/BLOCKED/ERROR)
├── citation_audit.json # citation existence / metadata
├── anonymity_scan.json # placeholder discipline check
└── export_integrity.json # page-count / aspect / blank-slide / notes-preserved
The audit JSON files follow the shared 6-state schema; see
../shared-references/assurance-contract.md.
ls $PAPER_DIR/main.tex $PAPER_DIR/main.pdf. If absent → halt and ask user to point to the compiled paper.which xelatex pdflatex latexmkwhich soffice (LibreOffice headless) — required for Phase 4 export integrity check; otherwise prompt user to export PDF manually.which pdfinfo pdftoppm (poppler) — required for /slides-polish PNG rendering.python3 -c 'import pptx').$ARGUMENTS: talk_type, minutes, assurance, reference, style, effort..aris/paper-talk/PIPELINE_STATE.json with phase: 0, timestamp, all resolved overrides.slides/SLIDE_OUTLINE.md exists and PIPELINE_STATE.json shows recent in-progress work, prompt the user — resume from last phase or start fresh.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:
Checkpoint: present the outline. Default behavior: pause for user
approval. Set AUTO_PROCEED = true only when the user is explicitly
running unattended.
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: true
Forward — 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.mdslides/TALK_SCRIPT.mdAfter return: verify the four artefacts exist. If any missing, halt with a diagnostic. Do not rename outputs — downstream phases bind to these exact paths.
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/presentation_polished.pptx exists; if
rendering tools are available, also verify slides/presentation_polished.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.
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, NOT_APPLICABLE, BLOCKED, ERROR) — see
../shared-references/assurance-contract.md.
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 captions
If 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.
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/PAPER_CLAIM_AUDIT.json with the shared
6-state schema. Move it to
.aris/paper-talk/audits/slide_claim_audit.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.
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"
Output → .aris/paper-talk/audits/citation_audit.json (6-state).
When the talk is for an anonymous-submission venue or the user passed
— anonymous, scan slides + notes + script for:
[anonymized],
Withheld for anonymous review, etc.).Output → .aris/paper-talk/audits/anonymity_scan.json (6-state). Any
FAIL (real-content leak) blocks conference-ready.
Resolve the final PPTX path:
FINAL_PPTX = slides/presentation_polished.pptx if Phase 3 ran
= slides/presentation.pptx if assurance == draft (Phase 3 skipped)
Then:
cd slides && latexmk -pdf -xelatex main.tex (or pdflatex for non-CJK). Confirm main.pdf page count matches outline slide count.FINAL_PPTX → PDF via soffice --headless --convert-to pdf <FINAL_PPTX> -outdir slides/. If unavailable, prompt user..aris/paper-talk/audits/export_integrity.json (6-state):
presentation_pre_polish.pptx's notes; when Phase 3 skipped, against presentation.pptx's own notes (no-op).If any integrity check fails, downgrade the Phase-6 verdict and surface specifics to the user.
Write .aris/paper-talk/FINAL_REPORT.md with:
draft | polished | conference-ready (downgraded if audits failed).A final conference-ready verdict requires:
PASS (or NOT_APPLICABLE when the
audit's content detector did not match — e.g., no citations on slides).
Any WARN, FAIL, BLOCKED, or ERROR downgrades the verdict.PASS.FAIL when anonymous submission is declared.Otherwise the report emits the highest passing level (polished or
draft) and itemises why conference-ready was not granted, citing the
specific audit JSON and the failing verdict line.
See ../shared-references/effort-contract.md.
| effort | Behavior |
|---|---|
| lite | Forwarded to sub-skills. /slides-polish runs in lite (BLOCKERS only). Phase 4 still runs at the requested assurance level — effort controls depth, never audit gating (see ../shared-references/assurance-contract.md). |
| balanced (default) | Standard pipeline. /slides-polish runs balanced. |
| max | /slides-polish runs max (per-page review on every slide). Phase-4 audits read all artefacts in full. |
| beast | /slides-polish runs beast (second polish round). Phase-4 audits include extended assurance checks; final report adds an executive summary. |
reasoning_effort: xhigh is invariant.
assurance and effort are independent axes. The user may legally
combine effort: lite, assurance: conference-ready to mean "fast pipeline,
but every audit must emit a verdict before finalisation."
/paper-talk "paper/" — talk_type: oral — minutes: 25 — assurance: conference-ready \
— reference: ./refs/why_rf_2025.pdf — style: why-rf — effort: max
Forwarded to:
/paper-slides (Phase 2): paper-dir, talk_type, minutes, venue, aspect, notes, style-ref if writer-side./slides-polish (Phase 3): polished pptx target, reference, style, effort./paper-claim-audit (Phase 4.1): scoped to slide deck artefacts (not paper)./citation-audit (Phase 4.2): scoped to slide-deck-only citations./paper-writing first./paper-poster-html./slides-polish directly — /paper-talk would needlessly rebuild./paper-slides directly with manual outline./paper-slides, /slides-polish, /paper-claim-audit, /citation-audit./kill-argument by default — that is upstream intellectual stress-test, not deck QA. Users who want talk-story stress-test before slide build can run /kill-argument paper/ first./paper-writing (paper) and /paper-poster-html (poster).This workflow generalises a 30+ iteration polish run on a Chinese-spoken
academic conference talk (May 2026). The convergent learning was that talk
preparation has the same shape as paper preparation — plan, build, polish,
audit, export, report — and benefits from the same assurance ladder. The
per-page Codex polish pass (Phase 3) is the single most expensive but
highest-value step, and is hidden behind the polished default so users
get it without thinking about it.
research
Generate a structured paper outline from review conclusions and experiment results. Use when user says \"写大纲\", \"paper outline\", \"plan the paper\", \"论文规划\", or wants to create a paper plan before writing.
research
Generate a structured paper outline from review conclusions and experiment results. Use when user says "写大纲", "paper outline", "plan the paper", "论文规划", or wants to create a paper plan before writing.
development
Get a deep critical review of research from an external reviewer backend (Codex or manual). Use when user says "review my research", "help me review", "get external review", or wants critical feedback on research ideas, papers, or experimental results.
research
Turn a vague research direction into a problem-anchored, elegant, frontier-aware, implementation-oriented method plan via iterative GPT-5.5 review. Use when the user says "refine my approach", "帮我细化方案", "decompose this problem", "打磨idea", "refine research plan", "细化研究方案", or wants a concrete research method that stays simple, focused, and top-venue ready instead of a vague or overbuilt idea.