Slide-by-Slide Design Protocol
What this file covers: Per-slide design protocol, slide structure, what each slide contains, generation modes.
Per-Slide Protocol (MANDATORY for EVERY Slide)
Step 1: Announce Checkpoint
Before writing each slide section, announce what you're about to do:
SLIDE ID: [slide-id] — [Type Name]
Action: generate-new
Layout: [full-width | two-column | centered] | Components: [list of TSX patterns used]
Example announcements:
SLIDE ID: "step-1" — Step 1 Question + CFU
Action: generate-new
Layout: centered | Components: TitleZone, ContentBox, CfuAnswerCard
SLIDE ID: "problem-setup" — Problem Setup
Action: generate-new
Layout: two-column | Components: TitleZone, ContentBox, SVG visual
Graph: Use graph patterns → modify for X_MAX=10, Y_MAX=100
Step 2: Determine Slide Type and Layout
CFU and Answer are separate slide IDs, not same-position overlays. Each step produces three slide IDs: "step-N", "step-N-cfu", and "step-N-answer".
The Duplication Test (MOST IMPORTANT LAYOUT DECISION)
This test is the #1 priority when choosing a layout. Every two-column slide must pass this test.
Before choosing two-column, ask: "Would I say the same thing on both sides?"
| If this happens... | Use this layout |
|---|---|
| Left explains "two meanings" + Right shows "two meanings" boxes | centered - let the diagram BE the explanation |
| Left has equation + Right has graph of that equation | two-column - they show DIFFERENT representations |
| Left describes groups + Right shows the same groups visually | centered - remove the text, enlarge the visual |
Example of duplication (BAD - use centered instead):
LEFT COLUMN RIGHT COLUMN
"Meaning 1: How many [Box: "Meaning 1:
slices per group?" How many in each group?"]
"Meaning 2: How many [Box: "Meaning 2:
groups?" How many groups?"]
This duplicates. The visual boxes say the same thing as the text. Use centered and let the diagram speak for itself with a brief subtitle.
Note: The number of step slides varies (S = 2-5 steps, default 3). Let S = number of steps.
| Slide ID | Type | Layout Guidance | Content |
|---|---|---|---|
"title" |
Big Idea | centered | Grade/Unit/Lesson + Big Idea badge + statement |
"problem-setup" |
Problem Setup | choose based on content (centered, two-column, etc.) | problem + visual |
"step-1" through "step-S" |
Steps 1-S | choose based on content (centered, two-column, etc.) | step content (progressive reveal — prior steps stay shown) |
"step-N-cfu" |
CFU for Step N | CfuAnswerCard shows CFU | Check for Understanding question for Step N |
"step-N-answer" |
Answer for Step N | CfuAnswerCard shows Answer | Answer reveal for Step N |
"practice-1" |
Practice Preview 1 | choose based on content (centered, two-column, etc.) | Scenario 2 problem + visual + "Your Task" |
"practice-2" |
Practice Preview 2 | choose based on content (centered, two-column, etc.) | Scenario 3 problem + visual + "Your Task" |
| (printable) | Printable | full-width | printable format (separate file, not a slide ID) |
| (lesson summary) | Lesson Summary | full-width | printable one-page lesson reference card |
Example with 3 steps (default): Slide IDs are "title", "problem-setup", "step-1", "step-1-cfu", "step-1-answer", "step-2", "step-2-cfu", "step-2-answer", "step-3", "step-3-cfu", "step-3-answer", "practice-1", "practice-2".
Layout Selection (step and practice slides):
Choose centered when... |
Choose two-column when... |
|---|---|
| Equation IS the visual | Text + separate visual needed |
| Simple diagram (tape, hanger) | Complex visual (coordinate graph) |
| Step is single operation | Multiple parts to explain |
| Focus on ONE thing | Show text-visual relationship |
| Diagram IS the content (not supporting it) | Diagram supports/illustrates text |
| Two-column would duplicate content | Each column shows something unique |
For two-column layout (text + visual side-by-side):
- Left: Main content (36-48px) + Problem reminder at bottom left corner (max 15 words)
- Right: SVG visual or diagram
- Left and right must show DIFFERENT content
- Problem reminder uses
ProblemRemindercomponent
For centered layout (stacked hero content):
- Main: Large equation/diagram centered (hero element)
- Support: Brief text below (optional)
- Use when the diagram IS the teaching, not just supporting it
See styling/layout-presets.md for layout dimensions and examples.
Note: Practice problems appear in TWO places:
- Practice slides (Preview): One problem per slide for whiteboard work (NO answers shown)
- Printable: Both problems with space for written work + answer key
Step 3: Add CfuAnswerCard (Separate Slide IDs)
CFU and Answer are revealed via separate slide IDs, NOT same-position overlays. Each step gets its own CfuAnswerCard component with two controlling slide IDs.
Add a CfuAnswerCard for each step (steps 1 through S):
<CfuAnswerCard
showCfu={show("step-1-cfu")}
showAnswer={show("step-1-answer")}
question="Why did I [VERB] first?"
answer="Because [explanation in 25 words or fewer]."
/>
How progressive reveal works:
- On slide ID
"step-1": Step 1 content appears. CfuAnswerCard is hidden. - On slide ID
"step-1-cfu": CFU question is revealed (yellow card). Step 1 content remains visible. - On slide ID
"step-1-answer": Answer is revealed (green card). CFU remains visible. Step 1 content remains visible. - On slide ID
"step-2": Step 2 content appears. All previous content (step-1, its CFU, its answer) remains visible.
The show() predicate is monotonic. Once show("step-1") returns true, it stays true on all subsequent slides.
Step 4: Compose Slides
For ALL slides in the deck visual:
- ANNOUNCE checkpoint to user (plain text)
- CHOOSE LAYOUT — use the duplication test to pick the best layout for this content
- DESIGN the slide — use TSX component patterns and adapt freely:
- TitleZone: Badge ("STEP N: [VERB]") + Title + optional Subtitle
- ContentBox: Main text content (instructions, questions, explanations)
- CfuAnswerCard: CFU and Answer with separate slide IDs
- ProblemReminder: Condensed problem summary (max 15 words)
- SVG visual: Graph or diagram (if visual slide)
- ADD
data-element-idattributes on<g>groups for fixture visibility testing - WRAP progressive elements in
<Animated>components:<Animated segment="step-1" isVisible={s => show(s)} entrance="fade"> {/* Step 1 content */} </Animated> - IF Visual Type = "coordinate-graph": Read
technical-specs/svg-workflow.mdFIRST - IF Visual Type = "diagram" (non-graph SVG): Read
analysis/diagram-patterns.mdFIRST- Includes: tape diagrams, hanger diagrams, double number lines, input-output tables, area models
- Based on Illustrative Mathematics (IM) curriculum representations
- VERIFY the pre-flight checklist (see
checklists/pre-flight.md)
Step 5: Practice Problem Slides
For Practice slides ("practice-1" and "practice-2"), use the Problem Setup as a template but:
- Change title zone to: "PRACTICE PROBLEM [1/2]: [Scenario Name] [Icon]"
- Use the appropriate scenario's graphPlan/diagramEvolution:
"practice-1": Usescenarios[1](Scenario 2)"practice-2": Usescenarios[2](Scenario 3)
- Include "Your Task:" section prominently with the question to solve
- NO CfuAnswerCard - students work independently on whiteboards
- Keep the same layout style as the worked example (two-column or centered)
Step 6: Generate Lesson Summary
After the printable is complete, generate a one-page lesson summary.
This is a printable reference card that students can use to quickly recall the main idea from this lesson. Use lesson-summary-snippet.html as the template.
Content to include:
- Header: "LESSON SUMMARY" badge + lesson title + Grade/Unit/Lesson
- Big Idea (hero section): Large, prominent statement from
strategyDefinition.bigIdea - Strategy Steps: Numbered list of all moves (2-5, verb + description) from
strategyDefinition.moves - Visual Reference (ALWAYS include):
- For coordinate graph lessons: Small labeled graph showing the key concept (use Scenario 1's graphPlan, scaled down)
- For diagram lessons: Simplified version of the diagram type
- For text/table lessons: Compact worked example showing the strategy applied
- Remember: 1-2 sentence key takeaway synthesized from
learningGoals
Requirements:
- Single
print-pagediv (one page, 8.5in x 11in) - Uses Times New Roman font (matches printable worksheet)
- Must include
print-pageCSS class for print detection - Keep it scannable - a student should grasp the key idea at a glance
- Visual should fit in ~40% of the page width
Visual Type Reference
Your visual type was determined in Phase 1. Here's what each requires:
Text-only:
- No graphics - pure text/equation problems
- Use ContentBox patterns only
HTML table:
- Simple data tables with highlighting
- Use
<table>with inline styles inside SVG<foreignObject>or as a TSX component - See ContentBox examples for table patterns
SVG visual (ALL other graphics):
- Coordinate planes and graphs
- Hanger diagrams and balance problems
- Geometric shapes and diagrams
- Number lines and bar models
- Any custom visual representation (coins, objects, arrays)
For SVG visuals:
- Read
technical-specs/svg-workflow.mdfor coordinate graphs - Read
analysis/diagram-patterns.mdfor other diagram types - Wrap distinct element groups in
<g data-element-id="...">for fixture visibility testing
Using the Correct GRAPH PLAN
CRITICAL: Use EACH SCENARIO'S graphPlan, NOT the mastery check's graphPlan.
The mastery check (problemAnalysis.graphPlan) is for the student's exit ticket/assessment - it is NEVER shown in these slides. Each scenario has its own numbers/context, so each needs its own graphPlan:
| Slide IDs | Source | GraphPlan to Use |
|---|---|---|
"problem-setup" through "step-S-answer" |
Scenario 1 | scenarios[0].graphPlan |
"practice-1" |
Scenario 2 | scenarios[1].graphPlan |
"practice-2" |
Scenario 3 | scenarios[2].graphPlan |
| Printable | Scenarios 2 & 3 | scenarios[1].graphPlan and scenarios[2].graphPlan |
Each GRAPH PLAN contains the semantic decisions for that scenario:
- Equations with correct slope/y-intercept for that scenario's numbers
- Scale (X_MAX, Y_MAX) appropriate for that scenario's values
- Line endpoints (startPoint, endPoint) calculated for that scenario
- keyPoints with correct coordinates for that scenario
- Annotations type and position
You MUST implement exactly what each scenario's GRAPH PLAN specifies. Do NOT use the mastery check's graphPlan. Do NOT recalculate or change the scale.
Context-Aware Generation Modes
Mode: Full (Default)
Generate the complete deck visual from scratch (contract.ts, visual.tsx, contract.test.ts).
Mode: Continue
Resume from where generation was interrupted.
- DO NOT regenerate completed slide sections
- Match style of existing slides exactly
- Start from next slide ID
Mode: Update
Regenerate only specific slide sections with targeted changes.
- Modify ONLY the slide IDs marked for update
- Maintain same structure as existing slides
- Keep existing
data-element-idvalues stable
Output Format
The deck visual must:
- Be a valid React TSX component
- Render a 640x360 SVG viewport
- Use
SlideSystem.show(activeSlideId)for progressive reveal - Include
data-element-idon<g>groups for fixture testing - Use
<Animated>components for entrance animations - Use
CfuAnswerCardwith separateshowCfuandshowAnswerprops
NEVER include in the visual component:
- Raw HTML documents or
<!DOCTYPE html> - Inline
<script>tags or event handlers - Direct DOM manipulation