How to write concise step-by-step topics (~130 pages total)
The step-by-step book is a concise book (~130 pages) that presents math concepts as clear, numbered procedures. The key design principle: show ALL steps first, then worked examples that apply those steps. This gives students a "recipe" they can follow.
The step-by-step book should be the same size as the study guide (~130 pages). Each topic should be 2–3 pages (teaching + practice). This is NOT a big book — keep everything tight.
Structure: Steps First, Examples Second
stepsCardBefore writing anything, run the discovery script to learn what topics the chapter contains, the grade level, and the target audience:
python3 scripts/get_chapter_topic_facts.py --chapter <N>
The script output tells you:
scripts/config.py and .env). Use this to calibrate vocabulary, sentence complexity, and number difficulty.topics/ you must write step-by-step versions for.topics_additional/ (with which states use them).topics_modified/ (with which states use them).To list all available chapters:
python3 scripts/get_chapter_topic_facts.py --list-chapters
Use the script output to plan your work: note how many files you need to create (core + additional + modified) and read the summaries to understand the scope.
For every topic listed by the script, read the corresponding Study Guide source file before writing:
| Script "File Path" prefix | Read from | Write to |
|---|---|---|
topics/ | topics/ch<CC>-<SS>-<slug>.tex | steps_topics/ch<CC>-<SS>-<slug>.tex |
topics_additional/ | topics_additional/ch<CC>-<SS>-<slug>.tex | steps_topics_additional/ch<CC>-<SS>-<slug>.tex |
topics_modified/ | topics_modified/ch<CC>-<SS>-<slug>.tex | steps_topics_modified/ch<CC>-<SS>-<slug>.tex |
When reading each source file, extract:
The step-by-step file must use the same filename as the Study Guide file.
Write each topic following the Topic Structure and Content Guidelines below. Focus on:
After writing ALL topics for the chapter (core + additional + modified):
tests/test_steps_ch<N>.tex that includes all the new topic files.latexmk -xelatex -output-directory=build -interaction=nonstopmode -f tests/test_steps_ch<N>.texgrep -i 'error\|undefined' build/test_steps_ch<N>.log | grep -v Warning | head -20Place topic files in:
steps_topics/steps_topics_additional/steps_topics_modified/Naming: Same filenames as the Study Guide source files — ch<CC>-<SS>-<slug>.tex
Examples: ch01-01-what-is-a-ratio.tex, ch02-03-divide-multi-digit-numbers.tex
| Aspect | Study Guide (~130 pp) | Step-by-Step (~130 pp) |
|---|---|---|
| Teaching | Focused: 1 conceptBox + 1–2 worked examples | Procedural: 1 stepsCard + 1–2 stepExamples |
| Practice | 5–6 problems per topic | 5–6 problems per topic |
| Engagement | Minimal: 1 mascotSays (optional) | Minimal: 1 mascotStepTip (optional) |
| Answers | \answer{} final answer only | \answer{} final answer only |
| Extras | None | None |
| Page count | 2–3 pages per topic | 2–3 pages per topic |
Every step-by-step topic follows this flow:
\section{} only (do NOT use \stepByStepTitle{})stepGoal (2–3 items)stepVocabBox with \vocabItem entries (2–4 terms)stepsCard with \stepItem, with a clear descriptive titlestepExample with \stepShow and \stepResultstepPractice\watchOut{} for a common mistake\mascotStepTip{} for an owl character tipstepTryIt for guided practice with blanks (only if space allows — skip if topic already has 2 examples)These should NOT appear in step-by-step topics:
\encouragement{} — no motivational closerschallengeBox — no bonus challenges\stepReminder{} — use sparingly, prefer cutting to save spaceconceptBox — use stepsCard insteadvocabBox — use stepVocabBox insteadexploreBox, errorBox, riddleBox, activityBox, warmUp — none of theserealWorld, funFact, didYouKnow, storyProblem — none of thesesummaryBox — no summariescompareBox, patternBox, codeBreaker, mathTrail — none of these\section{Place Value Relationships}
Do NOT use \stepByStepTitle{} — it duplicates the section title and adds an unnecessary "Step-by-Step Guide" subtitle. The \section{} command already renders the numbered title (e.g., "1.1 Place Value Relationships").
\begin{stepGoal}
\begin{itemize}
\item Explain how each digit's value is $10$ times the digit to its right
\item Read the value of a digit based on its place
\end{itemize}
\end{stepGoal}
Brief — just 2–3 bullet points. Keep it tighter than the study guide's learningGoals.
Group all vocabulary in a single titled box using stepVocabBox:
\begin{stepVocabBox}
\vocabItem{Place Value}{How much a digit is worth based on where it sits in a number.}
\vocabItem{Expanded Form}{Writing a number as the sum of each digit's value.}
\end{stepVocabBox}
The box has a default title "Words to Know". You can customize it: \begin{stepVocabBox}[New Words].
Keep to 2–4 terms — only essential vocabulary for the procedure.
\begin{stepsCard}[How to Find the Value of Each Digit in a Number]
\stepItem{Find the digit's \textbf{place} — ones, tens, hundreds, thousands, etc.}
\stepItem{Each place is \textbf{$10$ times} the place to its right and \textbf{$\frac{1}{10}$} of the place to its left.}
\stepItem{Multiply the digit by its \textbf{place value} to find what it's worth.}
\end{stepsCard}
Rules for the stepsCard:
[How to Multiply Multi-Digit Numbers], [How to Compare Two Decimals]). The default title "The Steps" is too vague — students must know what the steps are for.\begin{stepExample}{In $3{,}555$, how does the value of the $5$ in the hundreds place compare to the $5$ in the tens place?}
\stepShow{1} Find each digit's place:\\
The first $5$ is in the \textbf{hundreds} place. The second $5$ is in the \textbf{tens} place.
\stepShow{2} Hundreds is one place to the left of tens, so it is $10$ times greater.
\stepShow{3} Find the values: $5 \times 100 = 500$ and $5 \times 10 = 50$.
\stepResult{The $5$ in the hundreds place is $10$ times the $5$ in the tens place ($500$ vs.\ $50$).}
\end{stepExample}
Each worked example applies ALL steps to ONE problem:
\stepShow{n} to label which step is being applied (colored badge)\stepResult{answer} for the final answer (green checkmark box)\begin{stepTryIt}{In $4{,}442$, compare the value of the $4$ in the thousands place to the $4$ in the hundreds place.}
\stepShow{1} What place is each $4$ in?\par
Thousands $4$: \answerBlank[2.5cm] \qquad Hundreds $4$: \answerBlank[2.5cm]
\stepShow{2} Which place is to the left? It is \answerBlank[1.5cm] times greater.\par
\stepShow{3} Values: $4 \times$ \answerBlank[1.5cm] $=$ \answerBlank[2cm] and $4 \times$ \answerBlank[1.5cm] $=$ \answerBlank[2cm]
\end{stepTryIt}
Same structure as stepExample but with blanks. Skip this if the topic already has 2 examples — it's better to stay within 2–3 pages than to include everything.
\watchOut{The same digit can mean very different things! The $7$ in $7{,}000$ is worth $7{,}000$, but the $7$ in $70$ is only worth $70$.}
Or:
\mascotStepTip{Move one place to the LEFT and the value gets $10$ times bigger. Move RIGHT and it gets $10$ times smaller!}
Pick ONE — not both. Many topics won't need either.
\newpage
\begin{stepPractice}{Place Value Practice}
\resetProblems
\stepPracticeHeader[step1Color]{Identify the Place}
\begin{multicols}{2}
\prob What place is the $6$ in $6{,}432$? \answerBlank[2.5cm]
\answer{thousands}
\prob What place is the $8$ in $3.482$? \answerBlank[2.5cm]
\answer{hundredths}
\end{multicols}
\stepPracticeHeader[step2Color]{Compare Digit Values}
\prob In $2{,}255$, the $2$ in the thousands place is how many times the $2$ in the hundreds place? \answerBlank[2cm]
\answer{$10$ times}
\stepPracticeHeader[step3Color]{Find the Value}
\begin{multicols}{2}
\prob Value of $9$ in $9{,}301$: \answerBlank[2cm]
\answer{$9{,}000$}
\prob Value of $4$ in $0.743$: \answerBlank[2cm]
\answer{$0.003$}
\end{multicols}
\wordProblem{Mia says the $5$ in $5{,}500$ and the $5$ in $550$ are worth the same. Is she right? Explain.}{~}
\answer{No. In $5{,}500$ the first $5$ is worth $5{,}000$; in $550$ the first $5$ is worth $500$. They are $10$ times different.}
\end{stepPractice}
Keep practice short — aim for 5–6 problems total. Use \stepPracticeHeader[stepNColor] to organize by step. Include 1–2 problems per step category plus 1 word problem.
% ============================================================================
% Section X.Y — Topic Title
% CCSS 5.XXX.X.X
% ============================================================================
\section{Topic Title}
\begin{stepGoal}
\begin{itemize}
\item Goal 1 (keep to 2–3 goals)
\item Goal 2
\end{itemize}
\end{stepGoal}
\begin{stepVocabBox}
\vocabItem{Term 1}{Brief definition.}
\vocabItem{Term 2}{Brief definition.}
\end{stepVocabBox}
\begin{stepsCard}[How to Do the Main Skill]
\stepItem{Step 1 — one clear sentence.}
\stepItem{Step 2 — one clear sentence.}
\stepItem{Step 3 — one clear sentence.}
\end{stepsCard}
% --- 1–2 Worked Examples ---
\begin{stepExample}{Example problem statement.}
\stepShow{1} Apply step 1...
\stepShow{2} Apply step 2...
\stepShow{3} Apply step 3...
\stepResult{Final answer}
\end{stepExample}
% --- Optional: 1 tip or warning ---
\mascotStepTip{One helpful tip.}
% ============================================================================
% PRACTICE (4–5 problems)
% ============================================================================
\newpage
\begin{stepPractice}{Topic Practice}
\resetProblems
\stepPracticeHeader[step1Color]{Category 1}
\prob Problem \answerBlank[2cm]
\answer{answer}
\stepPracticeHeader[step2Color]{Category 2}
\begin{multicols}{2}
\prob Problem \answerBlank[2cm]
\answer{answer}
\prob Problem \answerBlank[2cm]
\answer{answer}
\end{multicols}
\stepPracticeHeader[step3Color]{Put It All Together}
\prob Problem \answerBlank[2cm]
\answer{answer}
\wordProblem{Word problem text.}{unit}
\answer{answer}
\end{stepPractice}
The step-by-step book must match the study guide's page count (~130 pages). Every element must justify its space:
| Element | Budget |
|---|---|
| stepGoal + stepVocabBox | ~¼ page |
| stepsCard | ~¼ page |
| 1–2 stepExamples | ~½–¾ page |
| Optional tip/warning | 2–3 lines |
| stepPractice (5–6 problems) | ~¾–1 page |
| Total | 2–3 pages |
If a topic runs to 3 pages, another should be 2 pages to compensate.
Never interleave step explanations with examples. The flow is always:
stepsCard — all steps listedstepExample × 1–2 — worked examples applying all stepsstepTryIt (only if space allows)stepPractice — independent practiceStep-by-step topics cover the same math content as the Study Guide but present it as a procedure-first lesson:
| Aspect | Study Guide | Step-by-Step |
|---|---|---|
| Structure | conceptBox + worked examples | stepsCard + stepExamples |
| Title | \section{} + \topicTitle{} | \section{} only (no \stepByStepTitle{}) |
| Goals | learningGoals (2–3 items) | stepGoal (2–3 items) |
| Core element | conceptBox | stepsCard + stepExample |
| Vocabulary | inline in conceptBox | stepVocabBox with \vocabItem entries |
| Practice | practiceBox (flat list) | stepPractice with step headers |
| Practice count | 5–6 problems | 5–6 problems |
| Page count | 2–3 pages | 2–3 pages |
The script output includes the grade level and target student age range. Adapt your writing accordingly:
In some cases we might need to include a TikZ diagrams, shapes, or graphs to illustrate concepts (especially for geometry, coordinate plane, measurement, and circle topics).
Target ~130 pages total for 44 core topics + initial pages + answer key:
This means each topic should average 2–3 pages. If a topic runs to 3 pages, keep another at 2.
| Environment/Command | Purpose |
|---|---|
\stepByStepTitle{title} | Do not use — causes duplicate title |
stepGoal | Learning objectives |
stepVocabBox + \vocabItem{word}{def} | Grouped vocabulary box (title defaults to "Words to Know") |
stepsCard + \stepItem{text} | Concise procedure listing (THE key element) |
stepExample{title} | Worked example applying all steps |
\stepShow{n} | Label which step is applied (inside example) |
\stepResult{answer} | Final answer highlight (inside example) |
stepTryIt{title} | Guided practice with blanks (optional — skip to save space) |
stepPractice{title} + \stepPracticeHeader[color]{title} | Practice section |
\watchOut{text} | Common mistake warning (at most 1 per topic) |
\mascotStepTip{text} | Owl tip (at most 1 per topic) |
$...$ for ALL math\textbf{...} to bold key terms on first use\times for multiplication, \div for division\answer{}, \answerTF{}, or \answerMC{}\answerExplain{}{} — explanations add too much volume. Use \answer{} instead to keep the book compact.\newpage before stepPracticepython3 scripts/get_chapter_topic_facts.py --chapter <N> to discover topics, grade, and audience\section{} present (NO \stepByStepTitle{})stepGoal with 2–3 brief learning objectivesstepVocabBox with 2–4 key termsstepsCard with clear descriptive title and 2–5 concise \stepItem entriesstepExample environments, each applying ALL stepsstepPractice with 5–6 problems organized by step\answer{}, NOT \answerExplain{}{})\encouragement{}, challengeBox, summaryBox, or other extras\mascotStepTip{} or \watchOut{} (not both)