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.
| 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.
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.texor other paper artifacts. - Original deck is preserved.
/paper-slidesproduces a baseline deck;/slides-polishwrites a_polishedversioned copy. The original Beamer + PPTX are never overwritten. - Speaker notes are byte-stable. Polish must not change
slide.notes_slidecontent. 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.
- Cross-model independence. Per-page Codex calls in
/slides-polishuse freshspawn_agentcalls (nosend_input). See../shared-references/reviewer-independence.md. - 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-readyunless required audits pass. Phase 6 verifies and downgrades verdict if audits fail. reasoning_effort: xhighis invariant across alleffortlevels for any Codex call invoked by sub-skills.
Constants
- PAPER_DIR =
paper/— Source paper directory. Override via positional argument. - OUTPUT_DIR =
slides/— Where the deck artefacts live. - STATE_DIR =
.aris/paper-talk/— Workflow state, audit logs, final report. - TALK_TYPE =
spotlight— Default talk format. Inherited by/paper-slides. - TALK_MINUTES = 15 — Default duration. Inherited by
/paper-slides. - VENUE =
NeurIPS— Default venue (used by/paper-slidescolor schemes when— styleis not passed). - ASPECT_RATIO =
16:9— Inherited by/paper-slides. - STYLE_PRESET —
genericif not passed;why-rfand venue presets supported by/slides-polish. - REFERENCE_VISUAL — 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. - AUTO_PROCEED = false — Each major phase pauses for user approval. Set
trueonly when explicitly requested.
Inputs
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.- (optional)
slides/SLIDE_OUTLINE.md— pre-existing outline (resume mode); skips Phase 1 generation. - (optional)
— reference: <pdf>— visual anchor for/slides-polish. If absent and the assurance level requires polish, the workflow uses the Beamer self-compile as reference. - (optional)
— talk_type,— 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} \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.
Workflow
Phase 0: Setup
- Validate paper directory:
ls $PAPER_DIR/main.tex $PAPER_DIR/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-polishPNG rendering. - Codex MCP availability.
- python-pptx (
python3 -c 'import pptx').
- LaTeX:
- Resolve overrides from
$ARGUMENTS:talk_type,minutes,assurance,reference,style,effort. - State init: write
.aris/paper-talk/PIPELINE_STATE.jsonwithphase: 0, timestamp, all resolved overrides. - Resume mode: if
slides/SLIDE_OUTLINE.mdexists andPIPELINE_STATE.jsonshows