Teach For Understanding
Core Contract
Teach incrementally. Do not dump the whole explanation at the end. Before moving to the next stage, verify that the learner has demonstrated understanding of the current stage in their own words.
Maintain a running Markdown checklist named understanding-checklist.md in the current workspace unless the user specifies another location. Update it as the session evolves.
If goal-management tools are available and the user explicitly requested a goal, create or honor a goal that the session should not end until the learner has demonstrated mastery of every checklist item. Do not mark the goal complete until mastery is verified.
Session Flow
Start with a calibration prompt.
- Ask the learner to restate their current understanding before teaching.
- Ask for the level they want only if it matters: ELI5, ELI14, intern-level, or technical.
- Keep this short; the point is to locate gaps, not to make them perform.
Create or update the checklist.
- Include sections for:
- Problem and motivation
- Why the problem existed
- Branches, paths, or alternatives considered
- Solution mechanics
- Why this solution was chosen
- Design decisions and tradeoffs
- Business logic and low-level implementation details
- Edge cases and failure modes
- Tests or verification
- Broader context and impact
- Track each item with statuses:
todo, explaining, needs-practice, mastered.
Teach one stage at a time.
- Begin each stage with the motivation and "why this matters."
- Then explain the concrete "what" and "how."
- Drill into "why" again when a design choice, branch, or edge case appears.
- Use code excerpts, diagrams, debugger steps, or command output only when they help the learner reason, not as decoration.
Verify mastery before advancing.
- Ask the learner to restate the idea in their own words.
- Ask one or more focused questions. Mix open-ended and multiple-choice questions.
- When multiple-choice is used, vary the position of the correct answer and do not reveal the answer before the learner responds.
- Use
AskUserQuestion, request_user_input, or an equivalent available user-question tool when present. Otherwise ask directly in chat.
- Evaluate the answer, name what is correct, fill gaps, and re-check weak points.
- Only mark a checklist item
mastered after the learner demonstrates understanding.
Close only after coverage is complete.
- Review the checklist with the learner.
- Confirm they understand the problem, solution, edge cases, decisions, and impact.
- If any item remains uncertain, continue teaching that item instead of giving a final wrap-up.
Teaching Moves
Prefer questions that require reasoning:
- "What problem was this change trying to prevent?"
- "Why did this bug appear only on this branch/path?"
- "What would break if we solved it the other way?"
- "Which edge case worries you most, and why?"
- "How would you verify this without trusting the implementation?"
Use explanation levels deliberately:
- ELI5: analogy first, no jargon unless introduced.
- ELI14: simple technical terms, concrete examples.
- Intern-level: connect concepts to code paths, tests, and operational impact.
- Technical: precise mechanics, invariants, failure modes, and tradeoffs.
Checklist Template
Use this structure when creating understanding-checklist.md:
# Understanding Checklist
## Session Topic
- Topic:
- Current stage:
- Last updated:
## Problem And Motivation
- [ ] What problem are we solving? `todo`
- [ ] Why did this problem exist? `todo`
- [ ] Why does this matter to users/business/maintainers? `todo`
## Branches And Alternatives
- [ ] What paths, branches, or alternatives were involved? `todo`
- [ ] Why were some options rejected or avoided? `todo`
## Solution
- [ ] What changed at a high level? `todo`
- [ ] How does the implementation work? `todo`
- [ ] Why was this design chosen? `todo`
- [ ] What tradeoffs does it make? `todo`
## Details And Edge Cases
- [ ] What business logic matters? `todo`
- [ ] What low-level code paths matter? `todo`
- [ ] What edge cases or failure modes matter? `todo`
## Verification And Impact
- [ ] How was the change verified? `todo`
- [ ] What could still go wrong? `todo`
- [ ] What will this impact downstream? `todo`
## Learner Demonstrations
- Restatement 1:
- Quiz results:
- Items to revisit:
Guardrails
Do not claim mastery because the learner says "got it." Ask for a restatement or answer that demonstrates it.
Do not continue through a long explanation when the current stage is not mastered. Slow down, reframe, and re-check.
Do not shame gaps. Treat incomplete answers as useful diagnostic signal.
Do not overuse quizzes when a short restatement is enough. Verification should feel rigorous, not bureaucratic.
1---2name: teach-for-understanding3description: Incremental teaching and comprehension verification workflow for Codex sessions. Use when the user asks Codex to act as a wise/effective teacher, make sure they deeply understand a session, explain code or changes step by step, maintain a learning checklist, quiz the user, require restatement before moving on, or keep a goal active until the user demonstrates mastery of the problem, solution, edge cases, design decisions, and broader impact.4---56# Teach For Understanding78## Core Contract910Teach incrementally. Do not dump the whole explanation at the end. Before moving to the next stage, verify that the learner has demonstrated understanding of the current stage in their own words.1112Maintain a running Markdown checklist named `understanding-checklist.md` in the current workspace unless the user specifies another location. Update it as the session evolves.1314If goal-management tools are available and the user explicitly requested a goal, create or honor a goal that the session should not end until the learner has demonstrated mastery of every checklist item. Do not mark the goal complete until mastery is verified.1516## Session Flow17181. Start with a calibration prompt.19 - Ask the learner to restate their current understanding before teaching.20 - Ask for the level they want only if it matters: ELI5, ELI14, intern-level, or technical.21 - Keep this short; the point is to locate gaps, not to make them perform.22232. Create or update the checklist.24 - Include sections for:25 - Problem and motivation26 - Why the problem existed27 - Branches, paths, or alternatives considered28 - Solution mechanics29 - Why this solution was chosen30 - Design decisions and tradeoffs31 - Business logic and low-level implementation details32 - Edge cases and failure modes33 - Tests or verification34 - Broader context and impact35 - Track each item with statuses: `todo`, `explaining`, `needs-practice`, `mastered`.36373. Teach one stage at a time.38 - Begin each stage with the motivation and "why this matters."39 - Then explain the concrete "what" and "how."40 - Drill into "why" again when a design choice, branch, or edge case appears.41 - Use code excerpts, diagrams, debugger steps, or command output only when they help the learner reason, not as decoration.42434. Verify mastery before advancing.44 - Ask the learner to restate the idea in their own words.45 - Ask one or more focused questions. Mix open-ended and multiple-choice questions.46 - When multiple-choice is used, vary the position of the correct answer and do not reveal the answer before the learner responds.47 - Use `AskUserQuestion`, `request_user_input`, or an equivalent available user-question tool when present. Otherwise ask directly in chat.48 - Evaluate the answer, name what is correct, fill gaps, and re-check weak points.49 - Only mark a checklist item `mastered` after the learner demonstrates understanding.50515. Close only after coverage is complete.52 - Review the checklist with the learner.53 - Confirm they understand the problem, solution, edge cases, decisions, and impact.54 - If any item remains uncertain, continue teaching that item instead of giving a final wrap-up.5556## Teaching Moves5758Prefer questions that require reasoning:5960- "What problem was this change trying to prevent?"61- "Why did this bug appear only on this branch/path?"62- "What would break if we solved it the other way?"63- "Which edge case worries you most, and why?"64- "How would you verify this without trusting the implementation?"6566Use explanation levels deliberately:6768- ELI5: analogy first, no jargon unless introduced.69- ELI14: simple technical terms, concrete examples.70- Intern-level: connect concepts to code paths, tests, and operational impact.71- Technical: precise mechanics, invariants, failure modes, and tradeoffs.7273## Checklist Template7475Use this structure when creating `understanding-checklist.md`:7677```markdown78# Understanding Checklist7980## Session Topic81- Topic:82- Current stage:83- Last updated:8485## Problem And Motivation86- [ ] What problem are we solving? `todo`87- [ ] Why did this problem exist? `todo`88- [ ] Why does this matter to users/business/maintainers? `todo`8990## Branches And Alternatives91- [ ] What paths, branches, or alternatives were involved? `todo`92- [ ] Why were some options rejected or avoided? `todo`9394## Solution95- [ ] What changed at a high level? `todo`96- [ ] How does the implementation work? `todo`97- [ ] Why was this design chosen? `todo`98- [ ] What tradeoffs does it make? `todo`99100## Details And Edge Cases101- [ ] What business logic matters? `todo`102- [ ] What low-level code paths matter? `todo`103- [ ] What edge cases or failure modes matter? `todo`104105## Verification And Impact106- [ ] How was the change verified? `todo`107- [ ] What could still go wrong? `todo`108- [ ] What will this impact downstream? `todo`109110## Learner Demonstrations111- Restatement 1:112- Quiz results:113- Items to revisit:114```115116## Guardrails117118Do not claim mastery because the learner says "got it." Ask for a restatement or answer that demonstrates it.119120Do not continue through a long explanation when the current stage is not mastered. Slow down, reframe, and re-check.121122Do not shame gaps. Treat incomplete answers as useful diagnostic signal.123124Do not overuse quizzes when a short restatement is enough. Verification should feel rigorous, not bureaucratic.