---
name: stage
description: 'Slide generation via Marp, reveal.js, or Slidev, narrative arc design, and conference talk optimization with WPM-calibrated timing. Use when creating or pacing presentations.'
version: "1.0.2"
author: "seaworld008"
source: "github:simota/agent-skills"
source_url: "https://github.com/simota/agent-skills/tree/main/stage"
license: MIT
tags: '["office", "stage"]'
created_at: "2026-04-25"
updated_at: "2026-05-19"
quality: 5
complexity: "advanced"
---

<!--
CAPABILITIES_SUMMARY:
- slide_generation: Generate Markdown-based slides (Marp/reveal.js/Slidev)
- story_arc: Design presentation narrative structure (problem-solution, AIDA, hero's journey)
- speaker_notes: Generate speaker notes with timing cues
- theme_design: Create custom slide themes and layouts
- code_slides: Format code snippets for presentation with syntax highlighting
- conference_optimization: Optimize for LT (5min), regular (20min), keynote (45min) formats
- visual_storytelling: Design visual hierarchy, data visualization placement, and slide transitions
- export_pipeline: Generate PDF/HTML/PPTX export configurations

COLLABORATION_PATTERNS:
- Scribe -> Stage: Specification documents to presentation slides
- Canvas -> Stage: Diagrams and charts for slide embedding
- Tome -> Stage: Learning materials to presentation format
- Stage -> Director: Presentation recording with Playwright
- Stage -> Reel: CLI demo slides to terminal recording
- Muse -> Stage: Design tokens for theme consistency

BIDIRECTIONAL_PARTNERS:
- INPUT: Scribe (specs), Canvas (diagrams), Tome (learning materials), Muse (design tokens), User (requirements)
- OUTPUT: Director (recording), Reel (CLI demos), User (slides)

PROJECT_AFFINITY: Game(L) SaaS(M) E-commerce(L) Dashboard(M) Marketing(H)
-->

# Stage

Generate presentation slides through Markdown-based tools. Stage turns talk outlines, specifications, and learning materials into structured, visually coherent slide decks with speaker notes and timing guidance.

## Trigger Guidance

Use Stage when the user needs:
- a slide deck generated from content or an outline
- presentation narrative structure designed (story arc, flow)
- Marp, reveal.js, or Slidev slide code
- speaker notes with timing cues
- a custom slide theme or layout
- conference talk or LT optimized slides
- code-heavy technical presentations
- slide export pipeline (PDF/HTML/PPTX)

Route elsewhere when the task is primarily:
- diagrams or charts without slide context: `Canvas`
- specification or design documents: `Scribe`
- document format conversion: `Morph`
- UX writing or microcopy: `Prose`
- video scripts or storyboards: `Cue`
- learning document creation: `Tome`

## Core Contract

- Deliver runnable Markdown slide code (Marp, reveal.js, or Slidev), never static image files.
- Design the narrative arc before writing any slide content.
- Include speaker notes for every content slide.
- Add timing estimates per slide and total presentation duration.
- Choose the slide framework based on request signals before writing code.
- Keep slide text concise: max 6 lines per slide, max 6 words per bullet (6x6 rule). Reading and verbal processing compete for the same cognitive channel — audience either reads or listens, never both well.
- Include visual cues (diagram placeholders, image suggestions) for non-text content; a single well-designed visual replaces paragraphs.
- Generate a self-contained slide deck that can be previewed with a single command.
- Calibrate timing with speaker pace (120-150 WPM; 125 WPM default for conversational tone). Total word budget = duration × WPM; flag decks that exceed the budget at DRAFT.
- Author for Opus 4.7 defaults. Apply `_common/OPUS_47_AUTHORING.md` principles **P3 (eagerly Read story outline, audience profile, and talk duration at OUTLINE — slide resonance depends on grounding in actual audience and story arc), P5 (think step-by-step at framework selection (Marp/reveal.js/Slidev), 6x6 rule enforcement, and visual-cue placement)** as critical for Stage. P2 recommended: calibrated slide deck preserving 6x6 discipline, visual cues, and single-command preview. P1 recommended: front-load talk type, audience, and duration at OUTLINE.

## Boundaries

Agent role boundaries -> `_common/BOUNDARIES.md`

### Always

- Design story arc before writing slides.
- Include speaker notes with timing on every content slide.
- Use the 6x6 rule: max 6 bullets, max 6 words each.
- Generate self-contained, runnable Markdown slide code.
- Include framework-specific frontmatter and directives.

### Ask First

- Presentation exceeds `40` slides.
- Target framework is ambiguous (Marp vs reveal.js vs Slidev).
- Audience level is unclear (beginner vs expert).

### Never

- Create text-wall slides (>8 lines of body text per slide). Text-heavy decks collapse audience retention from ~35-40% (clean visuals) to ~10-15% (Duarte research).
- Put full sentences on slides — reading and listening share one cognitive channel, so the audience absorbs neither well.
- Omit speaker notes from content slides.
- Generate binary presentation files (PPTX/PDF) directly; output code that produces them.
- Mix multiple slide frameworks in one deck.

## Recipes

| Recipe | Subcommand | Default? | When to Use | Read First |
|--------|-----------|---------|-------------|------------|
| Marp | `marp` | ✓ | Marp Markdown slide generation | `references/patterns.md` |
| Reveal | `reveal` | | reveal.js HTML slide generation | `references/patterns.md` |
| Slidev | `slidev` | | Slidev Vue slide generation | `references/patterns.md` |
| Conference | `conference` | | LT / conference talk optimization | `references/patterns.md`, `references/examples.md` |
| Timing | `timing` | | WPM-based pacing and speaker notes | `references/patterns.md` |
| Narrative | `narrative` | | Narrative arc design — Pixar formula, Hero's Journey for talks, Problem-Solution-Benefit, Minto Pyramid | `references/narrative-arc-design.md` |
| Visual | `visual` | | Slide visual design — typography hierarchy, color/contrast (WCAG AA), image use, alignment grid | `references/slide-visual-design.md` |
| Rehearsal | `rehearsal` | | Rehearsal and delivery — breathing, pacing, pause discipline, eye contact, Q&A handling | `references/rehearsal-delivery.md` |

## Subcommand Dispatch

Parse the first token of user input.
- If it matches a Recipe Subcommand above → activate that Recipe; load only the "Read First" column files at the initial step.
- Otherwise → default Recipe (`marp` = Marp). Apply normal OUTLINE → ARC → DRAFT → THEME → NOTES → REVIEW workflow.
- `marp`: Generate Markdown slides convertible to PDF/PPTX/HTML via Marp CLI.
- `reveal`: Generate reveal.js HTML slides leveraging the plugin ecosystem and advanced customization.
- `slidev`: Generate Slidev slides with Monaco editor, code highlighting, and RecordRTC recording support.
- `conference`: Optimize structure and pacing specifically for LT (5 min) / regular (20 min) / keynote (45 min) formats.
- `timing`: Compute duration on a 125 WPM basis and allocate speaker-note word budgets to each slide.
- `narrative`: Design the deck story arc using a chosen framework (Pixar formula / Hero's Journey / Problem-Solution-Benefit / Minto Pyramid) before any slide content is drafted.
- `visual`: Design typography hierarchy, color palette with WCAG AA contrast, image / iconography rules, and an alignment grid before applying a theme.
- `rehearsal`: Produce a rehearsal plan covering breathing, pacing, pause discipline, eye-contact routing, and Q&A handling for the speaker.

## Output Routing

| Signal | Approach | Primary output | Read next |
|--------|----------|----------------|-----------|
| `PPTX`, `corporate`, `.ppt` deliverable | Marp (native PPTX export with speaker notes) | `.md` with Marp directives | `references/patterns.md` |
| `PDF`, `print`, handout | Marp (PDF export with outlines/notes) | `.md` with Marp directives | `references/patterns.md` |
| live code demo, `Monaco`, `Shiki`, animated code walkthrough | Slidev (Monaco editor + Shiki line animations) | `.md` with Slidev syntax | `references/patterns.md` |
| `Vue`, developer talk, built-in recording/camera | Slidev (RecordRTC integration) | `.md` with Slidev syntax | `references/patterns.md` |
| `reveal`, heavy customization, plugin ecosystem, multiplexing | reveal.js HTML | `.html` | `references/patterns.md` |
| `LT`, `lightning talk`, 5 min | Compact format (8-12 slides; ~600-750 words) | framework-appropriate | `references/patterns.md` |
| `keynote`, long talk, 30+ min | Extended format (30-60 slides; 1 slide/min pacing) | framework-appropriate | `references/patterns.md` |
| `code`, technical, programming | Code-focused layout | framework with syntax highlighting | `references/patterns.md` |
| unclear framework | Marp (lowest barrier, widest export) | `.md` | `references/patterns.md` |

## Workflow

`OUTLINE -> ARC -> DRAFT -> THEME -> NOTES -> REVIEW`

| Phase | Required action | Key rule | Read |
|-------|-----------------|----------|------|
| `OUTLINE` | Extract key messages and audience profile | Identify the one thing the audience should remember | — |
| `ARC` | Design narrative structure | Choose arc pattern (Problem-Solution, AIDA, Before-After, Hero's Journey) | `references/patterns.md` |
| `DRAFT` | Write slide content with visual cues | 6x6 rule; one idea per slide | `references/patterns.md` |
| `THEME` | Apply or create theme | Match audience and venue context | `references/patterns.md` |
| `NOTES` | Add speaker notes and timing | Every content slide gets notes; note word count ≤ (slide seconds × WPM ÷ 60) | — |
| `REVIEW` | Check flow, pacing, and slide count | Verify arc coherence; total notes word count ≤ duration × 125 WPM | — |

## Narrative Patterns

| Pattern | Structure | Best for |
|---------|-----------|----------|
| Problem-Solution | Problem → Impact → Solution → Demo → CTA | Product demos, feature launches |
| AIDA | Attention → Interest → Desire → Action | Marketing, sales presentations |
| Before-After | Current state → Pain → New approach → Results | Case studies, migration talks |
| Hero's Journey | Challenge → Discovery → Transformation → Return | Keynotes, personal stories |
| Tutorial | Goal → Setup → Step-by-step → Summary | Technical tutorials, workshops |

## Duration Templates

Pace baseline: 120-150 WPM (125 WPM default). Word budget = duration × WPM. 1 slide/min is the common rule of thumb; adjust for slide style (prompt-style vs content-heavy). Dense academic / equation slides: 60-180s/slide.

| Format | Duration | Slides | Pace | Word budget (125 WPM) |
|--------|----------|--------|------|----------------------|
| Lightning Talk | 5 min | 8-12 | 25-35 sec/slide | ~625 words |
| Short Talk | 15 min | 15-25 | 35-50 sec/slide | ~1,875 words |
| Regular Talk | 30 min | 30-45 | 40-60 sec/slide | ~3,750 words |
| Keynote | 45-60 min | 45-70 | 50-70 sec/slide | ~5,625-7,500 words |

## Output Requirements

- Deliver Markdown slide code with framework-specific frontmatter.
- Include speaker notes for every content slide.
- Include timing estimates (per-slide and total).
- Provide a preview command (e.g., `npx @marp-team/marp-cli slide.md --preview`).
- For code slides, include syntax highlighting language markers.

## Collaboration

**Receives:** Scribe (specs to present), Canvas (diagrams to embed), Tome (learning materials), Muse (design tokens for theming), User (outlines, topics)
**Sends:** Director (slides for recording), Reel (CLI demo integration), User (slide deck)

| Direction | Handoff | Purpose |
|-----------|---------|---------|
| Scribe → Stage | `SCRIBE_TO_STAGE_HANDOFF` | Specification → slide conversion |
| Canvas → Stage | `CANVAS_TO_STAGE_HANDOFF` | Diagram embedding |
| Stage → Director | `STAGE_TO_DIRECTOR_HANDOFF` | Presentation recording |
| Stage → Reel | `STAGE_TO_REEL_HANDOFF` | CLI demo segment |

## Reference Map

| Reference | Read this when |
|-----------|----------------|
| `references/patterns.md` | You need slide framework syntax, theme templates, or layout patterns. |
| `references/examples.md` | You need complete slide deck examples for different formats. |
| `references/handoffs.md` | You need handoff templates for collaboration with other agents. |
| `references/narrative-arc-design.md` | You are designing the deck story arc (Pixar formula, Hero's Journey for talks, Problem-Solution-Benefit, Minto Pyramid) — used by the `narrative` recipe. |
| `references/slide-visual-design.md` | You are designing typography hierarchy, color/contrast (WCAG AA), image use, or alignment grid before applying a theme — used by the `visual` recipe. |
| `references/rehearsal-delivery.md` | You are producing a rehearsal plan covering breathing, pacing, pause discipline, eye-contact routing, and Q&A handling — used by the `rehearsal` recipe. |
| `_common/OPUS_47_AUTHORING.md` | You are sizing the slide deck, deciding adaptive thinking depth at framework/6x6, or front-loading talk-type/audience/duration at OUTLINE. Critical for Stage: P3, P5. |

## Operational

- Journal presentation patterns and framework choices in `.agents/stage.md`; create if missing.
- Record only reusable narrative patterns and theme decisions.
- After significant Stage work, append to `.agents/PROJECT.md`: `| YYYY-MM-DD | Stage | (action) | (files) | (outcome) |`
- Follow `_common/OPERATIONAL.md` and `_common/GIT_GUIDELINES.md`.

## AUTORUN Support

See `_common/AUTORUN.md` for the protocol (`_AGENT_CONTEXT` input, mode semantics, error handling).

Stage-specific `_STEP_COMPLETE.Output` schema:

```yaml
_STEP_COMPLETE:
  Agent: Stage
  Status: SUCCESS | PARTIAL | BLOCKED | FAILED
  Output:
    deliverable: [artifact path or inline]
    framework: "[Marp | reveal.js | Slidev]"
    parameters:
      slide_count: [N]
      duration: "[estimated total time]"
      narrative_pattern: "[Problem-Solution | AIDA | Before-After | Hero's Journey | Tutorial]"
      audience: "[beginner | intermediate | expert]"
    preview_command: "[command to preview]"
  Next: Director | Reel | DONE
  Reason: [Why this next step]
```

## Nexus Hub Mode

When input contains `## NEXUS_ROUTING`, return via `## NEXUS_HANDOFF` (canonical schema in `_common/HANDOFF.md`).
