Teacher Agent

Three modes, one entry point — teacher <mode>

Whiteboard sketch, transcribed
Tuesday, August 18, 2026 · 3:42 PM

TEACHER dispatched as teacher <mode> verdicts: Explained · Gap — Feynman persona 5 short-term · stateless · one session short-term · stateless · one session long-term · stateful (multi-session) “CC overcomplicates simple ideas with language it created” “you want to understand a concept better” “you want to learn a skill or a knowledge base” DEBRIEF “wait, what?” EXPLAIN make the mechanism land COURSE recognise → hand off misroute → `Gap`, names the skill 4 SUBAGENT · isolated context SUBAGENT · isolated context SKILL · runs in YOUR session 3 chat 1 HTML + lavish chat in HTML a page, on request HTML ON REQUEST NOT BY DEFAULT 2 murmurent-course skill multi-session curriculum chunked lessons · quizzes · progress tracking INTERVIEW FIRST concrete mission (not the topic) → MISSION.md never a lesson in an empty directory 1 · Source via bookworm → RESOURCES.md · every lesson cites, names one primary source to read 2 · Pick smallest next topic from MISSION.md + learning records — never re-teach what they demonstrated 3 · Write the lesson self-contained HTML, lesson_<n>.html, integer-versioned, never overwritten — ends in a self-grading quiz on mechanism writes 4 · Cold-read check dispatch teacher subagent: explain the mechanism back from the page alone 5 · Review in lavish-axi lavish-axi <file>, then poll (blocks) → “wait-what” annotations + quiz answers → revision ships as lesson_<n+1>.html 2 6 · Learning record record_<n>.md — specific & honest: demonstrated vs. needed walked through 7 · Next session: retrieval first spaced questions from the records, weighted to what they fumbled ↺ back to “pick next topic” dispatches teacher back in (cold read) — Gap → fix & recheck · Explained → ship lesson_1.html HTML + Quiz lesson_2.html HTML + Quiz ⋮ lesson_<n>.html current
Debrief and Explain are short answers from the same stateless subagent; Course is a long-running, stateful skill that runs in your own session and loops — interview once, then source → pick topic → write → cold-read → review → record → retrieve, again.

Legend

Numbered circles on the diagram point to the notes below — the claims the drawing doesn't have room to spell out.

1 Debrief's rails

Chat only, under 60 seconds, one dispatch. Reads only the tail of this session's transcript — never globs ~/.claude/projects/, never quotes tool_result/tool_use blocks, writes no file. It fires at the sentence that just landed wrong, not as a catch-up for someone who looked away.

2 The lavish-axi review loop

npx lavish-axi <file> then poll (blocks) returns “wait-what” text-range annotations and quiz answers — a wrong answer means the lesson failed, not the reader. Revisions land as a new integer-versioned file, never overwritten. Never lavish-axi share (publishes public, third-party); no CDN — pages must open from disk with zero network. Same rule governs Explain's page and every Course lesson.

3 Subagent vs. skill-in-session

Debrief and Explain run as the teacher subagent — isolated context is the point, which is exactly why neither can interview you or remember last week. Course runs as a skill inside your own session, the only place that can ask a question and hold state (MISSION.md, RESOURCES.md, learning-records/) across sessions days apart.

4 Course is evaluated first

If a course request lands in Debrief or Explain by mistake, teacher doesn't attempt it — it returns Gap — this is a course, not an explanation and names teacher course <subject>. Course is checked first precisely so a beautiful one-shot explainer never substitutes for the learning.

5 Teacher's vocabulary

Exactly two verdicts, no middle ground: Explained or Gap. Persona is Richard Feynman (answers to “Feynman” too). Bullet-led, jargon-light — at most three technical terms per artifact, each defined on first use, counted across the whole piece, not per paragraph.