Create slides
Create one or more professional presentation slides. Pass a single slide in the array for one slide, or multiple slides for a full deck.
Use when the user asks for slides, a presentation, or a deck. If the request is ambiguous about count, default to 2-3 slides.
ATTACHED PDFs / DOCUMENTS: Claude ingests user-attached files as document content blocks directly in the conversation. Read the document content from the conversation and pass the relevant material (topic, structure, key points) into this tool's slides argument — there is no separate file upload step.
USAGE NOTES:
- Pass all slides for one request in a single call rather than multiple sequential calls.
- To add to an existing presentation, pass the presentation_id from the previous response. For a new presentation, pass an empty string.
- EDITING an existing slide: pass ONLY that slide, with its existing slidenum (from the previous response) and force_edit: true, plus the same presentation_id. This overwrites the slide in place. Do NOT resend the whole deck and do NOT omit force_edit, or a duplicate slide will be appended instead.
IMAGES: Provide image_caption for every slide — describe the ideal slide image in 5-6 words (subject, setting, mood). Leave image_id empty; the system uses your caption to find the best matching photo.
THEMES: If the user asked for a specific theme, pass theme_id here rather than calling apply_theme separately afterwards.
LAYOUT VARIETY (for multi-slide decks):
- Use a variety of layouts across the deck, matching each layout to the slide's content.
- Prefer "title_and_two_columns" (image layout) for the first content slide.
- Use "title_and_body" for at most 1 slide (conclusion only), and avoid repeating the same layout on consecutive slides.
- Use metric_rings only for percentage-based metrics (0-100).
- Mix image slides, charts, timelines, grids, and text slides.
LAYOUT OPTIONS (set layout for every slide):
- "title_and_two_columns": Content with image alongside bullets (IMAGE LAYOUT)
- "title_and_two_to_four_columns_with_icons": 2-4 key points with icons (good default)
- "title_and_body": Single-column bullets (use sparingly — AT MOST 1 per deck, conclusion only)
- "title_and_subtitle": Section divider or transition slide (title + subtitle only, minimal body)
- "image_full_width": Full-width image with optional text below (IMAGE LAYOUT)
- "image_left_text_right": Image on the left with bullet points on the right (IMAGE LAYOUT)
- "quadrant_grid": EXACTLY 4 comparable items — SWOT, 2x2 matrices, pros/cons
- "data_table": Structured comparisons in tabular format (key:value pairs in description)
- "timeline_horizontal": Chronological events, milestones, or history (dates in point, short descriptions)
- "layered_pyramid": Hierarchical structures with 3-6 levels (MUST include icon with fa- prefix per item)
- "phase_roadmap": Project phases with milestones — point MUST use "Period: Title" format (e.g., "Q1 2024: Launch")
- "metric_rings": KPIs, completion rates, market share (1-4 metrics, values 0-100 as percentages)
CONTENT REQUIREMENTS:
- 3-5 substantial bullet points per slide
- Each bullet description: 2-4 lines with specific data, evidence, or actionable insights
- Content should be PhD-level, detailed, and evidence-driven
- Use FontAwesome 5.15 icons (e.g., fa-bolt, fa-chart-line, fa-lightbulb)
- EVERY body item MUST include "value" (0-100) — enables chart rendering and layout switching
LAYOUT-SPECIFIC FORMATTING:
- quadrant_grid: EXACTLY 4 items. "point" under 15 chars, "description" under 80 chars
- timeline_horizontal: Dates/years in "point" (max 15 chars). "description" max 50 chars
- layered_pyramid: "icon" with fa- prefix REQUIRED (fa-star, fa-check, fa-rocket). 3-6 items
- phase_roadmap: "point" = "Period: Title" (e.g., "Q1 2024: Launch"). Max 4 phases. "description" = milestones separated by "; "
- metric_rings: 1-4 items. For part-of-whole metrics (market share), values sum to ~100. For standalone KPIs (NPS, satisfaction), each value stands alone
- data_table: "description" should use structured key:value pairs
SCHEMA: Use only the documented schema fields — do not invent custom properties like "left_content", "right_content", "table", "rows", or "headers". For tables, use the data_table layout with key:value pairs in body[].description.