Enrich lesson frontmatter with teaching_guide metadata that helps teachers deliver content effectively. Reads previous lesson for progression context. Works on a single lesson, a full chapter, multiple chapters, or N specific lessons. Use when preparing lessons for teachers, adding pedagogical guidance, or enriching frontmatter with key_points, misconceptions, discussion_prompts, teaching_tips, and assessment_quick_check.
Generate teaching_guide YAML frontmatter blocks that give teachers what they need to confidently deliver a lesson: what to emphasize, where students stumble, what to discuss, and how to check understanding.
This metadata is read by real teachers. Every field must pass this test:
"Would an experienced educator read this and think: yes, this is genuinely useful — not obvious, not generic?"
Good: "Students confuse General Agents with ChatGPT-style chatbots — emphasize the action-taking (agentic) difference" Bad: "Students may find this topic challenging"
Good: "Start with the ChatGPT copy-paste pain point — every student has experienced this" Bad: "Begin with an engaging introduction"
/enrich-teaching-guide ch 3 # All lessons in chapter 3
/enrich-teaching-guide ch 3 lesson 1 # Single lesson
/enrich-teaching-guide ch 3 lessons 1-5 # Range within chapter
/enrich-teaching-guide ch 1,3,5 # Multiple chapters
/enrich-teaching-guide <path> # Direct lesson path
Parse the user's input to determine which lessons to process.
# For "ch 3" — discover chapter path:
ls -d apps/learn-app/docs/*/03-*/
# List lesson files (exclude README, summary, quiz):
ls apps/learn-app/docs/<part>/<chapter>/*.md | grep -v README | grep -v summary | grep -v quiz
Build an ordered list of lessons to process. Process sequentially — each lesson needs the previous one as context.
For lesson N, read these files in this order:
Lesson N-1 (previous lesson) — read FULL content
Lesson N (target) — read FULL content + all existing frontmatter
Lesson N+1 (next lesson) — read ONLY the title and first 2 headings
DO NOT read the chapter README. The value is in actual lesson content, not chapter metadata.
Before generating, answer these questions internally:
For key_points:
"If a teacher has 2 minutes to prep, what 3 things must they know about THIS lesson?"
Look for:
For misconceptions:
"Where will students confidently get it WRONG?"
Look for:
For discussion_prompts:
"What question would make a student STOP and think for 30 seconds?"
Look for:
For teaching_tips:
"What would a veteran teacher of this lesson whisper to a first-time instructor?"
Look for:
For assessment_quick_check:
"In 60 seconds at the end of the lesson, how can a teacher know if students got it?"
Look for:
Generate a teaching_guide block matching this exact schema:
teaching_guide:
lesson_type: "core" # core | supplementary | hands-on | capstone
session_group: 1 # Which session/class this belongs to (integer)
session_title: "Session Name" # Human-readable session grouping
key_points:
- "Point with specific detail, not generic advice"
- "Reference to where concept recurs: 'used again in Ch X, lesson Y'"
- "Maximum 4 points — if you need more, the lesson is too dense"
misconceptions:
- "Specific misconception — what students think vs what's true"
- "Maximum 4 — focus on the dangerous ones"
discussion_prompts:
- "Open-ended question connecting to student experience?"
- "Counterfactual or 'what if' that tests understanding?"
- "Maximum 3 — quality over quantity"
teaching_tips:
- "Specific, actionable advice with lesson reference"
- "Maximum 4 tips"
assessment_quick_check:
- "Quick check that takes <30 seconds per student"
- "Maximum 3 checks"
Constraints:
lesson_type: Infer from content — core (teaches new concepts), supplementary (extends/enriches), hands-on (primarily exercises), capstone (integrates multiple concepts)session_group: Infer from lesson position. Lessons 1-3 → session 1, 4-6 → session 2, etc. Adjust based on natural breakpoints.If processing 1-3 lessons: Present the generated YAML for review before injecting.
If processing 4+ lessons (batch mode): Inject directly into each lesson's frontmatter, placing the teaching_guide block after the differentiation block (or at the end of frontmatter if differentiation doesn't exist).
Injection rules:
teaching_guide already exists: SKIP unless user passed --forceteaching_guide blockAfter processing, output a summary:
ENRICHMENT COMPLETE
──────────────────
Lessons processed: X
Lessons skipped (already enriched): Y
Lessons enriched: Z
Files modified:
✓ apps/learn-app/docs/.../01-lesson.md
✓ apps/learn-app/docs/.../02-lesson.md
⊘ apps/learn-app/docs/.../03-lesson.md (already has teaching_guide)
| Don't | Do Instead |
|---|---|
| "Students may struggle with this concept" | "Students confuse X with Y because [specific reason]" |
| "Start with an engaging introduction" | "Start with the ChatGPT copy-paste pain point — every student has experienced this" |
| "This is an important topic" | "OODA loop is foundational — referenced again in Chapters 5, 11, and 13" |
| "Ask students what they learned" | "Ask students to explain passive vs agentic AI in one sentence" |
| "Demo the concepts" | "Demo the OODA loop live: show Claude reading a file, deciding what to do, acting, then correcting" |
| Generic tips that fit any lesson | Tips that reference THIS lesson's specific examples, tables, or code |
teaching_guide anyway — the lesson content is sufficient inputteaching_tips on facilitation; assessment_quick_check on output verificationFrom Chapter 3, Lesson 1 (01-origin-story.md):
teaching_guide:
lesson_type: "core"
session_group: 1
session_title: "Getting Started with Claude Code"
key_points:
- "OODA loop is foundational — referenced again in Chapters 5, 11, and 13"
- "Product Overhang explains why capability existed before the product — this mental model recurs throughout the book"
- "General Agent vs Custom Agent distinction is the entire thesis of the book"
misconceptions:
- "Students confuse General Agents with ChatGPT-style chatbots — emphasize the action-taking (agentic) difference"
- "Students think 'agentic' means 'smarter' rather than 'can take actions on files and systems'"
- "Students assume Claude Code requires coding skills — Cowork section addresses this"
discussion_prompts:
- "What would change in your daily work if AI could see your actual files instead of you describing them?"
- "Can you think of other 'product overhangs' in technology — capabilities that existed but needed a better interface?"
- "Why do you think adoption hit 50% in 5 days internally at Anthropic?"
teaching_tips:
- "Start with the ChatGPT copy-paste pain point — every student has experienced this"
- "Demo the OODA loop live: show Claude reading a file, deciding what to do, acting, then correcting"
- "The General Agent vs Custom Agent table is a good whiteboard moment"
assessment_quick_check:
- "Ask students to explain passive vs agentic AI in one sentence"
- "Have students draw the OODA loop from memory"
Notice: every point is specific to this lesson. No generic teaching advice. A teacher reading this for the first time can immediately use it.