Receber por email
← Voltar para o catálogo

slide-maker

Create slide presentations from topics, URLs, PDFs, git repos, or vault notes. Use this skill when the user asks to make slides, create a presentation, build a deck, or says "slides about X". Handles research, synthesis, outline, and creation. Default output is reveal.js HTML; pptx available on request. Also handles editing existing slide decks (HTML or pptx). Triggers on /slides, /slide-maker, or

27estrelas
Atualizado há 7 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add tuan3w/obsidian-vault-agent

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/slide-maker/svg)](https://www.skillteca.com.br/skills/slide-maker)

Skills relacionadas

Ver todas de Documentos →

Alerta por categoria

Receba novas skills de Documentos toda segunda

1 email curto, só com as skills novas de Documentos. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

<Purpose> End-to-end slide creation: from raw sources or a topic to a polished presentation. Handles research, synthesis, outlining, and slide generation. Produces self-contained reveal.js HTML by default (easy to edit, preview in any browser). Can delegate to pptx skill when PowerPoint output is requested. </Purpose>

<Use_When>

  • User asks to create slides or a presentation about a topic
  • User provides sources (URLs, PDFs, repos, vault notes) and wants slides
  • User wants to edit an existing HTML or pptx slide deck
  • User uses /slides or /slide-maker

</Use_When>

<Do_Not_Use_When>

  • User wants a research note, not slides (use /research)
  • User just wants to read/extract text from a pptx (use pptx skill directly)

</Do_Not_Use_When>

<Workspace> All intermediate files go in temp/slides/ (gitignored). Structure:

temp/slides/
├── research/          # Source research files (one per source)
├── images/            # Downloaded images (diagrams, charts, screenshots)
├── outline.md         # Approved outline
└── output.html        # Draft before copying to notes/slides/

Create workspace + output directories at the start of every session:

mkdir -p temp/slides/research temp/slides/images notes/slides

Final output always goes to notes/slides/<presentation-name>.html (or .pptx). Images used by the presentation are copied to notes/slides/images/. The temp/slides/ workspace is for intermediate files only. </Workspace>

<Steps>

Stage 1: PARSE — Classify Inputs

Parse $ARGUMENTS and any user context. Classify each input:

| Input type | Detection | Strategy | |------------|-----------|----------| | URL | starts with http(s):// | WebFetch + download images | | Git repo | github.com or git URL | clone to temp, read key files | | PDF | .pdf extension | Read tool (for local) or download | | Vault note | (Type) Name or [[wikilink]] | Read via MCP or Read tool | | Existing slides (.html) | .html extension | Editing mode | | Existing slides (.pptx) | .pptx extension | Delegate to pptx skill | | Raw topic | none of the above | WebSearch + WebFetch |

Auto-detect research depth:

  • Quick mode: 1-2 simple sources or a short topic → inline research, no subagents
  • Thorough mode: 3+ sources, complex topic, or broad request → parallel research agents

Present what was detected:

Detected sources:
1. [URL] blog post — will fetch + extract
2. [URL] paper PDF — will download and read
3. "transformer architecture" — will web search

Mode: thorough (3 sources → parallel research)
Proceeding to research...

Don't wait for confirmation unless something is ambiguous.

Stage 2: DISCOVER — Understand the Goal

Before researching, understand what the user actually needs. Ask up to 5 focused questions in a single message. Adapt questions to what's already known — skip anything the user already specified.

Questions to consider (pick the ones that aren't already answered):

  1. Goal & context — What's this presentation for? (class lecture, team

meeting, conference talk, pitch, self-study, sharing with a friend?)

  1. Audience — Who's watching? (technical experts, general audience, exec

stakeholders, students?) What do they already know?

  1. Language — What language should the slides be in? (Don't assume English —

the user may want slides in their native language or a mix)

  1. Angle & emphasis — What's the ONE thing the audience should walk away

with? Any specific aspects to emphasize or skip?

  1. Vibe & format — Formal or casual? Dense/technical or visual/storytelling?

Any color or style preferences? Dark or light theme?

How to ask — be conversational, not interrogation-style:

Before I start researching, a few quick questions so I build the right deck:

1. What's this for — conference talk, team meeting, class?
2. Who's the audience? What do they already know about [topic]?
3. What language should the slides be in?
4. Any specific angle — what should the audience walk away remembering?
5. Style preference — formal/minimal, bold/visual, dark/light theme?

(Skip any that don't apply — I'll use sensible defaults)

After the user responds, synthesize their answers into a creative brief that guides all downstream stages. Save it to temp/slides/brief.md:

# Creative Brief

**Topic**: [topic]
**Goal**: [what this presentation accomplishes]
**Audience**: [who, what they know, what they care about]
**Language**: [language for slide content]
**Key takeaway**: [the ONE thing the audience should remember]
**Tone**: [formal / casual / technical / storytelling / provocative]
**Style direction**: [dark/light, color mood, density level]
**Emphasis**: [specific aspects to highlight]
**Skip**: [anything the user explicitly wants to avoid]
**Format**: [reveal.js HTML / pptx]
**Duration**: [if mentioned — affects slide count]

Palette selection: Based on the brief, choose a palette from the Design Principles table (or craft a custom one). The palette should feel designed for THIS topic and THIS audience — not generic. Include your palette choice and reasoning in the brief.

Skip this stage when:

  • Editing an existing deck (the design decisions are already made)
  • The user explicitly says "just do it" or provides all context upfront

Then proceed to research with the brief guiding what to look for.

Stage 3: RESEARCH — Gather Information

Thorough mode (3+ sources or complex topic)

Read the agent definition:

Read("${CLAUDE_SKILL_DIR}/agents/source-researcher.md")

Spawn one source-researcher agent per source, all in parallel in a single message. Each agent:

  • Receives: one source, its output file path, images directory
  • Writes structured research to temp/slides/research/source-NN-slug.md
  • Downloads relevant images to temp/slides/images/
  • Returns a 3-5 sentence summary (keeps orchestrator context small)
  • Uses sonnet model
Agent(
  model="sonnet",
  prompt="You are Source Researcher. Follow these instructions:

  [INSERT FULL CONTENT OF agents/source-researcher.md]

  SOURCE: [url/path/topic]
  SOURCE_NUMBER: [NN]
  OUTPUT_FILE: temp/slides/research/source-NN-slug.md
  IMAGES_DIR: temp/slides/images/

  Research this source and write findings to the output file.
  Return only a 3-5 sentence summary."
)

If a source fails, continue with what succeeded — note the failure.

For raw topics with no other sources, spawn one agent that does WebSearch (2-3 queries) + WebFetch (top 3 results).

Quick mode (1-2 simple sources)

Skip agents. Do inline research:

  1. WebFetch each URL (or Read each file)
  2. For raw topics: WebSearch + WebFetch top 2-3 results
  3. Download key images to temp/slides/images/
  4. Write a single research file to temp/slides/research/source-01-topic.md

Image handling

During research (both modes), download diagrams, charts, and screenshots that could enhance slides. Skip decorative/stock images. Save to temp/slides/images/ with descriptive names.

curl -sL "IMAGE_URL" -o temp/slides/images/descriptive-name.png

Stage 4: OUTLINE — Synthesize + User Approval (MANDATORY)

Read all research files from disk:

Glob(pattern="temp/slides/research/*.md")
# Then Read each file

Read the creative brief from temp/slides/brief.md — use it to guide content selection, ordering, emphasis, language, and tone.

Build a slide outline. Present it to the user:

## Slide Outline

**Title**: [Presentation Title — in the brief's language]
**Audience**: [from brief]
**Language**: [from brief]
**Tone**: [from brief]
**Palette**: [from brief — name + hex values]
**Key takeaway**: [the ONE thing from the brief]
**Slides**: ~[N] slides

---

1. **Title Slide** — [title + subtitle]
2. **[Insight headline, not label]** — [2-3 key points] | Layout: [type]
3. **[Insight headline]** — [key points] | Image: [image-name.png]
4. ...
N. **Closing / Key Takeaways** — [summary points]

**Headline

Compartilhar X LinkedIn