Skip to main content

Plan Schema

Plan files define the structure and content of your presentations. They are YAML files generated by the /pitchsmith:plan-deck and /pitchsmith:plan-one commands.

  • Deck plans are stored at .slide-builder/deck/{deck-name}/plan.yaml
  • Single slide plans are stored at .slide-builder/single/plan.yaml

This reference documents the complete schema for both plan types.

Last verified

March 2026 — verified against pitchsmith-plugin/reference/plan-schema.md in the Pitch Smith source.


Deck Plan Schema

A deck plan contains metadata about the presentation, audience context, storyline structure, agenda sections, and individual slide definitions.

Deck-Level Required Fields

FieldTypeFormat / OptionsDescription
deck_namestringAny non-empty stringHuman-readable presentation title
createdstringISO 8601 timestampCreation timestamp
last_modifiedstringISO 8601 timestampLast modification timestamp
audience.descriptionstringFree textWho will view this presentation
audience.knowledge_levelenumbeginner | intermediate | expertAudience expertise level
audience.prioritiesstring[]Min 1 itemWhat the audience cares about
purposestringFree textPresentation objective
desired_outcomestringFree textWhat should happen after the presentation
key_messagestringFree textCore takeaway message
slidesarrayMin 1 slideArray of slide definitions

Deck-Level Optional Fields

FieldTypeFormat / OptionsDescription
presentation_settingenumlive | sent_as_deck | recorded | hybridDelivery format — influences slide density and content style
desired_lengthstringRange "8-10" or single "12"Target slide count
discovery_contextobjectFlexible key-value pairsContext from adaptive follow-up questions
planning_researcharrayArray of research objectsWeb research findings
storylineobjectSee belowNarrative structure
recurring_themesstring[]Free textThemes that recur across slides
agendaobjectSee belowAgenda structure with sections

Storyline Fields

FieldTypeDescription
storyline.opening_hookstringOpening attention-grabber
storyline.tensionstringChallenge or pain point
storyline.resolutionstringProposed approach
storyline.call_to_actionstringDesired next step

Agenda Fields

FieldTypeDescription
agenda.total_sectionsintegerNumber of agenda sections
agenda.sectionsarrayArray of section definitions
agenda.sections[].idstringSection identifier (e.g., "agenda-1")
agenda.sections[].titlestringSection title
agenda.sections[].narrative_roleenumopening | context | problem | solution | evidence | cta
agenda.sections[].estimated_slidesintegerEstimated slides in this section
agenda.sections[].descriptionstringSection description

Discovery Context Common Keys

The discovery_context object is flexible — keys depend on what gaps were identified during planning. Common keys include:

KeyTypeDescription
known_objectionsstring[]Audience objections or concerns to address
competitive_contextstringCompetitive landscape or incumbent being replaced
audience_prioritiesstring[]What the audience cares about most
audience_rolestringPrimary audience role (e.g., "decision_maker")
decision_timelinestringWhen the audience needs to make a decision

Slide Fields

Each slide in the slides array has the following fields.

Slide-Level Required Fields

FieldTypeFormat / OptionsValidation
numberinteger1-indexedMust be sequential: 1, 2, 3...
descriptionstringOne-line titleNo newlines allowed
suggested_templatestringTemplate IDMust exist in template catalog
statusenumpending | builtExact match required
storyline_roleenumopening | tension | evidence | resolution | ctaExact match required
agenda_section_idstringReferences agenda sectionMust match an existing agenda.sections[].id
key_pointsstring[]Talking pointsMin 1 item
design_planstringMulti-line design notesMust include layout, typography, color, spacing, animation

Slide-Level Optional Fields

FieldTypeOptionsDescription
background_modeenumdark | lightSlide background mode
toneenumprofessional | bold | warm | technical | urgentSlide tone

Single Slide Plan Schema

Single slide plans have a simpler structure with fewer required fields.

FieldTypeRequiredDescription
createdstringNoISO 8601 timestamp
last_modifiedstringNoISO 8601 timestamp
descriptionstringYesShort one-line slide title
suggested_templatestringYesTemplate ID or "custom"
audiencestringNoWho will view this slide
key_pointsstring[]YesDetailed talking points
visual_guidancestringNoDesign hints
toneenumNoprofessional | bold | warm | technical

Single Slide Plan Example

created: "2026-03-01T10:00:00Z"
last_modified: "2026-03-01T10:00:00Z"
description: "Q1 Revenue Dashboard"
suggested_template: "data"
audience: "Executive leadership team"
key_points:
- "Revenue grew 23% quarter-over-quarter"
- "Three product lines exceeded targets"
- "Customer acquisition cost decreased by 15%"
visual_guidance: "Lead with the headline metric, use a chart for trends"
tone: "professional"

Backward Compatibility

Legacy plans may use older field names. Pitch Smith accepts both legacy and current names but normalizes to current names when saving.

Legacy FieldCurrent FieldNotes
intentdescriptionRead either, write as description
templatesuggested_templateRead either, write as suggested_template
visual_guidancedesign_planRead either, write as design_plan

Plans created before the adaptive discovery feature will not contain presentation_setting, desired_length, or discovery_context fields. Their absence does not cause errors.


Validation Rules

#RequirementRule
1Timestampscreated and last_modified must be ISO 8601 format
2Minimum slidesFull deck: min 1 slide. Single slide: exactly 1
3Sequential numberingSlide numbers must be 1-indexed and sequential
4Required arraysaudience.priorities and key_points must have at least 1 item
5One-line descriptionsdescription field must be single-line (no newlines)
6Multi-line design plansdesign_plan must be multi-line with layout, typography, color, spacing, animation
7Valid enumsknowledge_level, status, storyline_role must use exact values
8Agenda linkingEvery slide's agenda_section_id must reference an existing agenda section
Complete deck plan example
deck_name: "Product Launch"
created: "2026-03-01T10:00:00Z"
last_modified: "2026-03-01T10:00:00Z"

audience:
description: "Sales team"
knowledge_level: "intermediate"
priorities:
- "Revenue impact"
- "Competitive positioning"

purpose: "Enable team to sell new product"
desired_outcome: "Team confident pitching ProductX"
key_message: "ProductX is the future of customer engagement"

presentation_setting: "live"
desired_length: "8-10"

discovery_context:
audience_role: "sales_representative"
known_objections:
- "Price is higher than Competitor Y"
- "Requires training ramp-up"
competitive_context: "Displacing Competitor Y in mid-market accounts"

storyline:
opening_hook: "The future of customer engagement"
tension: "Current limitations holding back growth"
resolution: "ProductX capabilities address every gap"
call_to_action: "Start selling today"

recurring_themes:
- "Customer-centric innovation"
- "Measurable results"

agenda:
total_sections: 2
sections:
- id: "agenda-1"
title: "Introduction"
narrative_role: "opening"
estimated_slides: 2
description: "Set the stage and present agenda"
- id: "agenda-2"
title: "Product Overview"
narrative_role: "solution"
estimated_slides: 3
description: "Present key features and differentiators"

slides:
- number: 1
status: pending
storyline_role: "opening"
agenda_section_id: "agenda-1"
tone: "bold"
background_mode: dark
suggested_template: "title"
description: "Title slide: ProductX Launch"
design_plan: |
**Layout:** Full-bleed hero typography, centered.
**Typography:** Hero title in 72px bold. Subtitle in 32px medium.
**Color:** Dark background, white text, brand accent highlights.
**Spacing:** Generous vertical centering, title in upper-center third.
**Animation hint:** Title fades in, then subtitle.
key_points:
- "ProductX launches Q1 2026"
- "3x faster than competitors"

- number: 2
status: pending
storyline_role: "opening"
agenda_section_id: "agenda-1"
tone: "professional"
background_mode: light
suggested_template: "agenda"
description: "Session agenda overview"
design_plan: |
**Layout:** Numbered list with section icons, left-aligned.
**Typography:** Section titles in 28px semibold.
**Color:** Light background, dark text, accent on active section.
**Spacing:** Even vertical distribution.
**Animation hint:** Sections appear sequentially.
key_points:
- "Product Overview"
- "Key Features"
- "Competitive Positioning"
- "Q&A"