Phase 2: Confirm & Plan
Purpose
Present your analysis to the user, get their confirmation, and plan the three scenarios - all using DIFFERENT contexts from the mastery check. Also surface backward-planning details so the user can validate the instructional design.
Output Format: Deck Visual (TSX + SVG)
All slides will be deck visuals (640×360 SVG viewport, React TSX components). Slide count varies based on step count (2-5 steps). See 03-generate-slides/02-technical-rules.md for technical specs.
Prerequisites
- Phase 1 complete
- You have completed the backward planning analysis (following analyze-problem.md Steps 1-6)
- Your output matches the output-schema.md JSON structure
REMINDER: Context Separation
The user provided a mastery check question. ALL scenarios you create must use different contexts and numbers from that question:
| What | Context |
|---|---|
| Mastery Check (user's input) | The ACTUAL question students will answer |
| Scenario 1 (Worked Example) | DIFFERENT context - teaches the strategy |
| Scenario 2 (Practice) | DIFFERENT context - first practice |
| Scenario 3 (Practice) | DIFFERENT context - second practice |
Students will see: Worked Example → Practice 1 → Practice 2 → (then later) Mastery Check
Step 2.1: Present Analysis to User
Show the user your understanding and WAIT for confirmation.
Use this exact template (which follows the backward planning protocol — the entire presentation IS backward planning):
Based on the mastery check question you provided, here's my analysis:
**Exit Ticket Analysis:**
- Problem Type: [specific type from analysis]
- Key Challenge: [what makes this hard for students]
**Big Idea:** [simplified one-sentence mathematical principle]
- [supporting pattern 1]
- [supporting pattern 2]
- [supporting pattern 3, if applicable]
**Anticipated Misconceptions → Step Design:**
| # | Misconception | Student Work Example | Addressed In |
|---|---------------|---------------------|--------------|
| 1 | [what the student incorrectly believes] | [specific wrong answer they'd make] | Step [N]: [VERB] |
| 2 | [misconception] | [what their work looks like] | Step [N]: [VERB] |
| 3 | [misconception] | [what their work looks like] | Step [N]: [VERB] |
**Design Rationale:** [why the WE is structured this way — how steps connect back to the exit ticket]
**Discovery Questions:**
- Step 1: "[What do you notice...?]"
- Step 2: "[What pattern do you see...?]"
- Step 3: "[How does this compare...?]" (if applicable)
**Strategy:** [name] — "[one-sentence summary]"
**Steps (determined by misconceptions above):**
1. [STEP VERB]: [description] → addresses misconception [N]
2. [STEP VERB]: [description] → addresses misconception [N]
3. [STEP VERB]: [description] → addresses misconception [N] (if needed)
... (2-5 steps, matching misconception count)
**Visual Type:** [from Visual Types table]
**Visual Plan:** [key details - see VisualPlan schemas]
**Scenarios (all DIFFERENT from mastery check):**
- Scenario 1 (worked example): [context + what makes it engaging]
- Scenario 2 (practice): [different context]
- Scenario 3 (practice): [different context]
Note: These scenarios all teach the same skill as your mastery check but use different numbers and contexts, so students learn the strategy without seeing the actual answer.
⚠️ REQUIRED: Include Diagram Evolution
Include the Diagram Evolution you created in Phase 1. This shows the user how the visual will develop step-by-step across slides.
The evolution was already generated in Phase 1 using analysis/diagram-patterns.md as a guide. Present it here so the user can confirm the visual progression is correct before proceeding.
Example:
**Diagram Evolution (Scenario 1 - Chicken Nuggets):**
INITIAL STATE (Problem Setup):
┌────────────────────────────────────────┐
│ 30 │
└────────────────────────────────────────┘
Total: 30 nuggets, Groups: 5 students, Find: ?
STEP 1: PARTITION
┌────────┬────────┬────────┬────────┬────────┐
│ ? │ ? │ ? │ ? │ ? │ = 30
└────────┴────────┴────────┴────────┴────────┘
+ Divide into 5 equal parts
+ Mark each with ?
STEP 2: CALCULATE
┌────────┬────────┬────────┬────────┬────────┐
│ 6 │ 6 │ 6 │ 6 │ 6 │ = 30 ✓
└────────┴────────┴────────┴────────┴────────┘
+ Calculate: 30 ÷ 5 = 6
+ Fill in values
Key elements:
- Each box: nuggets per student
- Total: 30 nuggets
- Unknown (?): number per student
Does this visual progression look right?
Then ask for confirmation:
Does this match what you're looking for? Should I proceed or adjust anything?
Step 2.2: WAIT for User Confirmation
STOP HERE. Do not proceed until the user responds.
The user might:
- Confirm ("yes", "proceed", "looks good") → Continue to Step 2.3
- Request changes → Adjust your analysis/strategy and re-present
- Ask questions → Answer them, then re-confirm
Do NOT generate slides until the user explicitly confirms.
Visual Types
Choose ONE visual type that best represents the math:
| Visual Type | Use For | Key Details to Plan |
|---|---|---|
tape-diagram |
Division, multiplication, part-whole | boxes, values per box, total, unknown position |
coordinate-graph |
Linear equations, rates, proportions | equations, scale, keyPoints, annotations |
double-number-line |
Ratios, unit rates, percentages | quantity A values, quantity B values, alignment |
area-model |
Multiplication, distributive property | dimensions, partial products |
number-line |
Integers, inequalities, operations | range, marked points, arrows |
ratio-table |
Equivalent ratios, scaling | column values, scale factors |
hanger-diagram |
Equation solving, balance | left side, right side, shapes |
input-output-table |
Functions, patterns, rules | input values, output values, rule |
grid-diagram |
Area by counting, decomposing shapes | rows, cols, shaded regions, unit label |
net-diagram |
Surface area, 3D→2D unfolding | shape type, faces with dimensions, fold lines |
measurement-diagram |
Base & height, labeled dimensions | shape type, labeled measurements, right angle indicators |
discrete-diagram |
Objects in groups, discrete ratios | groups, items per group, total, visual type |
base-ten-diagram |
Place value, decimal operations | ones, tens, hundreds blocks, operation |
dot-plot |
Data distributions, frequencies | data points, axis range, label |
box-plot |
Quartiles, variability, outliers | min, Q1, median, Q3, max, outliers |
bar-graph |
Comparing frequencies, categories | categories, values, orientation |
tree-diagram |
Probability, sample spaces | branches, probabilities, outcomes |
circle-diagram |
Circles with labeled parts | radius, diameter, circumference, center point |
scale-drawing |
Maps, floor plans, blueprints | scale factor, actual/drawing measurements |
scaled-figures |
Original vs copy comparison | original dims, scale factor, copy dims |
other |
Custom diagrams not listed above | describe visual structure and key elements |
Visual selection happens ONCE in analysis, then applies to ALL scenarios.
Step 2.3: Generate Scenarios (All Different from Mastery Check)
Only after user confirms, finalize the three scenarios.
Critical: Context Separation
NONE of the scenarios should use the same context or numbers as the mastery check question the user provided.
The mastery check is what students will answer AFTER completing the worked example and practice. Your scenarios prepare them for it without giving away the answer.
Scenario Requirements
Each scenario MUST:
- Use the exact same mathematical structure as the mastery check
- Require the exact same strategy to solve
- Use DIFFERENT numbers and context from the mastery check (and from each other)
- Be solvable using the exact same steps in the exact same order
- Include a condensed problem reminder (≤15 words) for use on step and practice slides
⚠️ Visual Progression: Plan What Changes Each Step (REQUIRED for Scenario 1)
For the worked example (Scenario 1), you MUST define what the visual shows at each step.
The visual should tell a story that builds toward the answer. Each step adds something new.
Format: For each step, describe what gets ADDED or HIGHLIGHTED on the visual.
Visual Progression (Scenario 1):
- Setup (Slide 3): [What the visual shows initially - problem state, unknowns visible]
- Step 1 (Slide 4): [What gets highlighted/added after Step 1]
- Step 2 (Slide 5): [What gets highlighted/added after Step 2]
- Step 3 (Slide 6): [What shows the final answer on the visual]
... (include one entry per step — 2-5 steps depending on the strategy)
Note: The number of step slides varies (2-5). Slide numbers for practice previews and printable shift accordingly. See 01-slide-by-slide.md for the dynamic slide table.
Examples by Visual Type:
| Visual Type | Setup Shows | Step 1 Adds | Step 2 Adds | Final Step Adds |
|---|---|---|---|---|
| Tape diagram | Empty tape with ? and total | Boxes with value per box | Highlight the count | Answer label |
| Coordinate graph | Blank axes with labels | First line plotted | Second line plotted | Intersection labeled |
| Hanger diagram | Initial balanced equation | Subtraction from both sides | Division both sides | Variable isolated |
| Double number line | Two lines with known values | Unit rate marked | Scale factor applied | Unknown value found |
⚠️ Conciseness: Define Problem Reminders NOW
For each scenario, create the condensed problem reminder that will appear on slides.
Format: Short phrases, not full sentences. Max 15 words.
✅ GOOD: "30 nuggets total. 6 per student. How many students?"
✅ GOOD: "Drone: 150m in 30 sec. Find the speed."
❌ BAD: "A large box has 30 chicken nuggets. If each student gets 6 nuggets, how many students can have a snack?"
Scenario Design Principles
DO:
- Match context to grade level interests (gaming, social media, sports, etc.)
- Keep mathematical difficulty identical to mastery check
- Ensure the same moves apply in the same order
- Use engaging, real-world situations
- Give each scenario a visual anchor (icon/theme)
- Verify each scenario is clearly different from the mastery check
DO NOT:
- Use the same context as the mastery check question
- Use the same numbers as the mastery check question
- Change the problem type
- Add or remove steps from the solution
- Introduce new mathematical concepts
- Create scenarios requiring a different strategy
Output Template:
MASTERY CHECK CONTEXT (from user's input):
[Brief description of the context/numbers in the user's question]
VISUAL TYPE: [from Visual Types table above]
THREE SCENARIOS (all DIFFERENT from mastery check):
===================================================
Scenario 1 (Worked Example):
- Context: [engaging scenario name - DIFFERENT from mastery check]
- Theme/Icon: [visual anchor]
- Numbers: [specific values - DIFFERENT from mastery check]
- **Problem Reminder (≤15 words):** [condensed summary for slides]
- Same mathematical structure: [yes/explain how]
- Different from mastery check: [yes/explain what's different]
- **VisualPlan:** [see schema below - details for THIS scenario's numbers]
- **Visual Progression:** (REQUIRED - what changes on visual each step, one entry per move)
- Setup: [initial state - problem shown, unknowns visible]
- Step 1: [what gets added/highlighted]
- Step 2: [what gets added/highlighted]
- ... (one entry per step, up to Step 5)
- Final Step: [answer revealed on visual]
Scenario 2 (Practice):
- Context: [different engaging scenario]
- Theme/Icon: [visual anchor]
- Numbers: [different values]
- **Problem Reminder (≤15 words):** [condensed summary for slides]
- Uses same strategy: [yes/explain how]
- Different from mastery check AND Scenario 1: [yes/explain]
- **VisualPlan:** [details for THIS scenario's numbers]
Scenario 3 (Practice):
- Context: [different engaging scenario]
- Theme/Icon: [visual anchor]
- Numbers: [different values]
- **Problem Reminder (≤15 words):** [condensed summary for slides]
- Uses same strategy: [yes/explain how]
- Different from mastery check AND Scenarios 1-2: [yes/explain]
- **VisualPlan:** [details for THIS scenario's numbers]
VisualPlan Schema (by visual type)
Each scenario MUST have its own VisualPlan with values specific to that scenario's numbers.
tape-diagram:
VisualPlan:
boxes: [number of boxes]
valuePerBox: [value inside each box]
total: [total value]
unknownPosition: "start" | "box" | "total"
coordinate-graph: (See phases/01-collect-and-analyze/graph-planning.md for full planning)
VisualPlan:
equations: ["y = 2x + 3", "y = 0.5x"]
scale: { xMin, xMax, yMin, yMax }
keyPoints: [{ label: "y-intercept", x: 0, y: 3 }, { label: "solution", x: 4, y: 11 }]
annotations: ["y-intercept shift", "parallel lines"]
Note: Coordinate graphs require detailed planning. After selecting this visual type, read graph-planning.md and complete the full GraphPlan with equations, calculated endpoints, scale tables, and annotation positions.
double-number-line:
VisualPlan:
quantityA: { label: "cups", values: [0, 2, 4, 6] }
quantityB: { label: "servings", values: [0, 3, 6, 9] }
highlightPair: [4, 6]
area-model:
VisualPlan:
dimensions: [width, height] or [a+b, c+d]
partialProducts: [[a*c, a*d], [b*c, b*d]]
number-line:
VisualPlan:
range: [min, max]
markedPoints: [{ value, label, style: "closed"|"open" }]
arrows: [{ from, to, label }]
ratio-table:
VisualPlan:
rows: [{ label: "apples", values: [2, 4, 6, "?"] }]
scaleFactors: ["×2", "×3"]
hanger-diagram:
VisualPlan:
leftSide: "3x + 1"
rightSide: "10"
shapes: { triangle: "x", square: "1" }
input-output-table:
VisualPlan:
rule: "×3 + 2" or "y = 3x + 2"
inputs: [1, 2, 3, 4, "?"]
outputs: [5, 8, 11, 14, "?"]
unknownPosition: "input" | "output" | "both"
grid-diagram:
VisualPlan:
rows: [number of rows]
cols: [number of columns]
shadedRegions: [{ startRow, startCol, endRow, endCol, color }]
unitLabel: "sq cm" | "sq in" | "units"
showGrid: true | false
net-diagram:
VisualPlan:
shapeType: "rectangular-prism" | "triangular-prism" | "pyramid" | "cube"
faces: [{ shape: "rectangle" | "triangle", width, height, label }]
foldLines: true | false
dimensions: { length, width, height }
measurement-diagram:
VisualPlan:
shapeType: "triangle" | "parallelogram" | "trapezoid" | "rectangle"
measurements: [{ label: "base" | "height" | "side", value, position }]
showRightAngle: true | false
showDashedHeight: true | false
discrete-diagram:
VisualPlan:
groups: [number of groups]
itemsPerGroup: [items in each group]
totalItems: [total count]
visualType: "circles" | "squares" | "icons"
arrangement: "rows" | "clusters"
base-ten-diagram:
VisualPlan:
hundreds: [number of hundred blocks]
tens: [number of ten rods]
ones: [number of unit cubes]
operation: "none" | "addition" | "subtraction" | "regrouping"
showValues: true | false
dot-plot:
VisualPlan:
dataPoints: [2, 3, 3, 4, 4, 4, 5, 5, 6]
axisLabel: "Number of pets"
axisRange: [0, 10]
title: "Pets Owned by Students"
box-plot:
VisualPlan:
min: 12
q1: 18
median: 25
q3: 32
max: 45
outliers: [5, 52]
axisLabel: "Test Scores"
axisRange: [0, 60]
bar-graph:
VisualPlan:
categories: ["Red", "Blue", "Green", "Yellow"]
values: [12, 8, 15, 6]
orientation: "vertical" | "horizontal"
axisLabel: "Frequency"
title: "Favorite Colors"
tree-diagram:
VisualPlan:
levels: [
{ outcomes: ["Heads", "Tails"], probabilities: [0.5, 0.5] },
{ outcomes: ["Heads", "Tails"], probabilities: [0.5, 0.5] }
]
finalOutcomes: ["HH", "HT", "TH", "TT"]
highlightPath: ["Heads", "Tails"]
circle-diagram:
VisualPlan:
radius: 5
diameter: 10
circumference: "10π" or 31.4
showCenter: true | false
labeledParts: ["radius", "diameter", "circumference", "center"]
unit: "cm" | "in" | "units"
scale-drawing:
VisualPlan:
scaleFactor: "1 cm : 10 m" or "1:100"
drawingMeasurements: [{ label: "length", value: 5, unit: "cm" }]
actualMeasurements: [{ label: "length", value: 50, unit: "m" }]
drawingType: "map" | "floor-plan" | "blueprint" | "other"
scaled-figures:
VisualPlan:
originalDimensions: [{ label: "width", value: 4 }, { label: "height", value: 6 }]
scaleFactor: 2.5
copyDimensions: [{ label: "width", value: 10 }, { label: "height", value: 15 }]
shapeType: "rectangle" | "triangle" | "polygon"
showLabels: true | false
other: (custom diagrams)
VisualPlan:
description: "[What the visual shows]"
elements: ["element 1", "element 2", ...]
labels: ["label 1", "label 2", ...]
annotations: ["what to highlight or emphasize"]
Note: For custom diagrams, reference analysis/diagram-patterns.md for SVG implementation patterns.
Step 2.4: Update Progress File
After user confirms and scenarios are defined, update the progress file:
File: src/app/presentations/{slug}/.worked-example-progress.json
Update these fields:
{
"phase": 2,
"phaseName": "Confirm & Plan",
"userConfirmed": true,
"scenarios": ["[Scenario 1 name]", "[Scenario 2 name]", "[Scenario 3 name]"],
"totalSlides": [estimated count: 14-16],
"updatedAt": "[ISO timestamp]"
}
Use the Read tool to read the current file, then use Edit to update only the changed fields.
Phase 2 Completion Checklist
Before proceeding, verify:
- User has explicitly confirmed your understanding
- User has approved the Diagram Evolution (step-by-step visual progression)
- Three scenarios are defined
- All scenarios use the SAME strategy as the mastery check
- All scenarios have the SAME mathematical structure as the mastery check
- ALL scenarios use DIFFERENT contexts from the mastery check
- ALL scenarios use DIFFERENT numbers from the mastery check
- Each scenario has an engaging context and visual anchor
- Progress file updated with
userConfirmed: trueandscenariosarray
NEXT PHASE
When Phase 2 is complete (user has confirmed):
Use the Read tool to read the Phase 3 instructions:
Read: .claude/skills/create-worked-example-sg/phases/03-generate-slides/00-overview.md
Do NOT proceed to Phase 3 until the user has explicitly confirmed.