Create Multi-Slide Deck
create_deckCreate a themed PowerPoint deck from slide intents in one call, with dry-run validation and strict policy gating for quality control.
Instructions
Create a WHOLE deck in one call: slides is a list of create_slide intents (same form menu + data shapes — see create_slide). Slides fill in parallel and merge into one themed PPTX with page numbers. Include furniture: a hero_statement cover, section_divider breaks, and a closing (hero_statement variant=contact_closing via blocks-free slots).
Also: mode=assemble merges existing slide job_ids as-rendered (free; theme_id does NOT re-theme them — render with create_deck(slides=[…], theme_id=…) for a unified theme); mode=fork clones a deck (free). Polling: deck_id == job_id — manage_account(action=job, job_id=).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Default render. assemble/fork are free deck plumbing. | |
| name | No | ||
| title | No | Deck title (PowerPoint metadata) | |
| slides | No | each item is a create_slide intent (same form menu, typed fields, and data shapes as create_slide). | |
| deck_id | No | Existing deck ID (for mode=fork, or mode=render to update) | |
| dry_run | No | Deck-level free pre-flight (cost:0, NO render/PPTX): returns a per-slide validation manifest [{i, form, fidelity_forecast, status, errors}] so you can fix bad slides before spending. A deck is one artifact, so validation is all-or-nothing — put dry_run here, not on individual slides. Resend without dry_run to render. | |
| job_ids | No | Slide job IDs to merge (for mode=assemble) | |
| logo_id | No | Optional brand logo (from upload_asset purpose=logo) applied as chrome to every content slide in the deck. | |
| styling | No | Deck-level topical-design switch, inherited by every slide (a slide-level styling wins). See create_slide.styling. | |
| language | No | Target language | |
| theme_id | No | ||
| force_render | No | If any slide is completed_with_errors, deck pptx_url is null. Set true to get it anyway; complete slides stay downloadable via their per-slide job_id either way. No cost/status effect. | |
| allow_partial | No | Non-regret default: if any slide fails, the deck is NOT billed (cost:0) and pptx withheld — the response carries repair_actions (assemble the completed children, free). Set true to render + bill the completed slides and get the partial deck. Default false. | |
| strict_policy | No | Optional CI-style gate for automated report pipelines. dry_run returns policy_result; render returns rejected/cost:0 if the policy fails. |