Presentation Template Designer
Read README.md first for the human-facing package story. This file is the
invocation contract for Codex.
Core Boundary
Plan before generating. Produce a reviewed slide inventory and template
manifest before creating a deck or uploading assets to a third-party service.
The bundled helper validates that plan and writes deterministic review
artifacts; it does not upload files or silently generate a deck.
Required Inputs
Collect:
- purpose and intended use
- audience
- target format, such as editable PPTX or Google Slides
- desired tone or visual direction
- required layout types or approximate slide count
Optional inputs:
- color palette and typography preferences
- local paths to logos or brand assets
- an existing presentation or template to adapt
- content constraints, accessibility needs, and licensing notes
Ask no more than three focused questions at a time. If the user supplies enough
information, make explicit assumptions and continue.
Workflow
- Frame the brief. Confirm the audience, purpose, target format, tone,
layout needs, and constraints. Keep private asset paths local.
- Choose a toolchain. Read
references/market-research.md when the
generation backend is not already selected. Default to a local editable
workflow; use a connected design service only with explicit authorization.
- Draft the inventory. Read
references/layout-catalog.md, select the
smallest useful set of layouts, and explain when each should be used.
- Review with the user. Present the proposed story structure, layouts,
theme direction, and important assumptions. Revise until the user approves
the inventory.
- Write the manifest. Follow
references/template-manifest-schema.md. Store asset paths and licensing
notes, not embedded private files.
- Validate first. Run the bundled helper with
--validate-only.
- Generate review artifacts. After the user approves the plan, run the
helper with
--confirm GENERATE. Review the normalized JSON and Markdown
inventory before starting a PPTX or Slides generation task.
- Generate in the selected backend. Keep editable text and shapes. Reuse an
existing local template when supplied. Treat any upload, OAuth consent, or
publication as a separate user-authorized action.
- Inspect visually. Render or open the resulting deck and check overflow,
contrast, spacing, cropping, hierarchy, and layout coverage.
Toolchain Selection
- Choose python-pptx when the work is local, Python is preferred, or an
existing PPTX template and its layouts should be reused.
- Choose PptxGenJS when generating a new editable PPTX from a JavaScript
workflow with explicit master layouts.
- Choose the Google Slides API when collaborative Slides output is required
and the user has explicitly authorized the account and destination.
- Use direct PresentationML/OOXML manipulation only for a required feature
the higher-level library cannot preserve.
- Use a Canva- or Figma-style workflow only when editable design-canvas output
materially matters and the user approves external asset handling.
Read references/market-research.md for evidence and tradeoffs.
Commands
Resolve paths relative to this skill directory.
Validate the bundled example without writing output:
python3 scripts/generate_sample_template.py \
--brief examples/brief.json \
--manifest examples/template-manifest.json \
--validate-only
Generate a normalized plan and review report:
python3 scripts/generate_sample_template.py \
--brief examples/brief.json \
--manifest examples/template-manifest.json \
--output-dir /tmp/presentation-template-review \
--confirm GENERATE
The output directory contains:
template-plan.json
template-review.md
The helper refuses to overwrite either file unless --force is supplied.
Safety And Privacy
- Never commit user logos, proprietary templates, unreleased decks, or generated
runtime output.
- Never upload assets or decks to an external service without explicit user
authorization for that service and destination.
- Record a license or permission note for fonts, icons, stock assets, and
template inspiration before using them.
- Keep secrets, OAuth tokens, personal data, speaker notes, and revision history
out of manifests and examples.
- Prefer editable text, shapes, tables, and charts. Do not flatten whole slides
into images unless the user explicitly requests static output.
- Never overwrite an existing user deck. Write to a new output path and show the
user what was created.
- Treat signing in, OAuth consent, publishing, and paid-template acquisition as
separate approval boundaries.
Review Checklist
Before calling a template ready:
- the audience, purpose, and target format are explicit
- the user approved the slide inventory
- every layout has a unique id, usage note, and placeholders
- theme colors and typography roles are complete
- private assets remain local and licensing notes are present
- the manifest passes the bundled validator
- the generated deck remains editable
- a visual pass found no overflow, clipping, low contrast, or accidental
disclosure
Response Pattern
Report:
- assumptions and unresolved choices
- selected toolchain and why
- approved layout inventory
- manifest and review-artifact paths
- validation results
- any external authorization still required
- the next action: revise the plan, generate an editable deck, or visually
review an existing result
1---2name: presentation-template-designer3description: Plan reusable presentation templates from a creative brief, optional brand assets, or an existing deck. Use when Codex needs to define a slide inventory, choose an editable presentation toolchain, author or validate a template manifest, adapt a visual system for PowerPoint or Google Slides, or prepare a reviewed template plan before generating a deck.4---56# Presentation Template Designer78Read `README.md` first for the human-facing package story. This file is the9invocation contract for Codex.1011## Core Boundary1213Plan before generating. Produce a reviewed slide inventory and template14manifest before creating a deck or uploading assets to a third-party service.15The bundled helper validates that plan and writes deterministic review16artifacts; it does not upload files or silently generate a deck.1718## Required Inputs1920Collect:2122- purpose and intended use23- audience24- target format, such as editable PPTX or Google Slides25- desired tone or visual direction26- required layout types or approximate slide count2728Optional inputs:2930- color palette and typography preferences31- local paths to logos or brand assets32- an existing presentation or template to adapt33- content constraints, accessibility needs, and licensing notes3435Ask no more than three focused questions at a time. If the user supplies enough36information, make explicit assumptions and continue.3738## Workflow39401. **Frame the brief.** Confirm the audience, purpose, target format, tone,41 layout needs, and constraints. Keep private asset paths local.422. **Choose a toolchain.** Read `references/market-research.md` when the43 generation backend is not already selected. Default to a local editable44 workflow; use a connected design service only with explicit authorization.453. **Draft the inventory.** Read `references/layout-catalog.md`, select the46 smallest useful set of layouts, and explain when each should be used.474. **Review with the user.** Present the proposed story structure, layouts,48 theme direction, and important assumptions. Revise until the user approves49 the inventory.505. **Write the manifest.** Follow51 `references/template-manifest-schema.md`. Store asset paths and licensing52 notes, not embedded private files.536. **Validate first.** Run the bundled helper with `--validate-only`.547. **Generate review artifacts.** After the user approves the plan, run the55 helper with `--confirm GENERATE`. Review the normalized JSON and Markdown56 inventory before starting a PPTX or Slides generation task.578. **Generate in the selected backend.** Keep editable text and shapes. Reuse an58 existing local template when supplied. Treat any upload, OAuth consent, or59 publication as a separate user-authorized action.609. **Inspect visually.** Render or open the resulting deck and check overflow,61 contrast, spacing, cropping, hierarchy, and layout coverage.6263## Toolchain Selection6465- Choose **python-pptx** when the work is local, Python is preferred, or an66 existing PPTX template and its layouts should be reused.67- Choose **PptxGenJS** when generating a new editable PPTX from a JavaScript68 workflow with explicit master layouts.69- Choose the **Google Slides API** when collaborative Slides output is required70 and the user has explicitly authorized the account and destination.71- Use direct **PresentationML/OOXML** manipulation only for a required feature72 the higher-level library cannot preserve.73- Use a Canva- or Figma-style workflow only when editable design-canvas output74 materially matters and the user approves external asset handling.7576Read `references/market-research.md` for evidence and tradeoffs.7778## Commands7980Resolve paths relative to this skill directory.8182Validate the bundled example without writing output:8384```bash85python3 scripts/generate_sample_template.py \86 --brief examples/brief.json \87 --manifest examples/template-manifest.json \88 --validate-only89```9091Generate a normalized plan and review report:9293```bash94python3 scripts/generate_sample_template.py \95 --brief examples/brief.json \96 --manifest examples/template-manifest.json \97 --output-dir /tmp/presentation-template-review \98 --confirm GENERATE99```100101The output directory contains:102103```text104template-plan.json105template-review.md106```107108The helper refuses to overwrite either file unless `--force` is supplied.109110## Safety And Privacy111112- Never commit user logos, proprietary templates, unreleased decks, or generated113 runtime output.114- Never upload assets or decks to an external service without explicit user115 authorization for that service and destination.116- Record a license or permission note for fonts, icons, stock assets, and117 template inspiration before using them.118- Keep secrets, OAuth tokens, personal data, speaker notes, and revision history119 out of manifests and examples.120- Prefer editable text, shapes, tables, and charts. Do not flatten whole slides121 into images unless the user explicitly requests static output.122- Never overwrite an existing user deck. Write to a new output path and show the123 user what was created.124- Treat signing in, OAuth consent, publishing, and paid-template acquisition as125 separate approval boundaries.126127## Review Checklist128129Before calling a template ready:130131- the audience, purpose, and target format are explicit132- the user approved the slide inventory133- every layout has a unique id, usage note, and placeholders134- theme colors and typography roles are complete135- private assets remain local and licensing notes are present136- the manifest passes the bundled validator137- the generated deck remains editable138- a visual pass found no overflow, clipping, low contrast, or accidental139 disclosure140141## Response Pattern142143Report:144145- assumptions and unresolved choices146- selected toolchain and why147- approved layout inventory148- manifest and review-artifact paths149- validation results150- any external authorization still required151- the next action: revise the plan, generate an editable deck, or visually152 review an existing result