diff --git a/components/chat.tsx b/components/chat.tsx
index ad6e405..826e3e8 100644
--- a/components/chat.tsx
+++ b/components/chat.tsx
@@ -1047,18 +1047,22 @@ export function Chat({
// assistant group — is gone). Never a user bubble: the wake is
// scaffolding; the model-facing instruction lives in the adapter.
- ) : m.role === "assistant" && mi > 0 && phases[mi] === "teach" && phases[mi - 1] !== "teach" ? (
- // THE INFERRED TEACH SEAM (owner ruling 2026-09-26, the verdict
- // death): teaching begins where the FIRST nodeId-tagged quiz is
- // posed — the fold (phaseTimeline, the same derivation the phase
- // chip reads) flips to teach exactly AT this assistant group, so
- // the divider renders before the whole block (thinking -> prose ->
- // the quiz call) — where the explicit accept marker used to sit.
- // The boundary check (this index flips, the previous didn't)
- // guarantees exactly ONE divider per session.
-
- ) : (
+ ) : (
+ {/* THE INFERRED TEACH SEAM (owner ruling 2026-09-26, the verdict
+ death): teaching begins where the FIRST nodeId-tagged quiz is
+ posed — the fold (phaseTimeline, the same derivation the phase chip
+ reads) flips to teach exactly AT this assistant group, so the divider
+ renders BEFORE the whole block (thinking -> prose -> the quiz call) —
+ where the explicit accept marker used to sit. The boundary check
+ (this index flips, the previous didn't) guarantees exactly ONE divider
+ per session. PREPENDED, never a replacement branch: the teach group is
+ a real message with content (the marker branches above have none) — a
+ replacement ternary swallowed the entire first lesson block (the
+ Lacan session, 2026-09-27). */}
+ {m.role === "assistant" && mi > 0 && phases[mi] === "teach" && phases[mi - 1] !== "teach" ? (
+
+ ) : null}
{m.role === "user" ? (
diff --git a/src/agent/prompts/teacher/10-planning.md b/src/agent/prompts/teacher/10-planning.md
index 8cfc495..fdb517c 100644
--- a/src/agent/prompts/teacher/10-planning.md
+++ b/src/agent/prompts/teacher/10-planning.md
@@ -50,7 +50,10 @@ Two parts:
**Stress-test the roots before presenting.** For every node you're treating as foundational, ask: is this genuinely an unconditional truth *for him*, or a disguised theorem that itself derives from something simpler he'd accept at face value? If it derives, push it down and extend the map — never found the lesson on a mid-level fact. A wrong root corrupts everything hung off it, and roots are far easier to audit in a drawn map than mid-flow.
-**Presenting ENDS your turn.** The plan is presented in prose and map, and then you stop — his next message is the natural next move. Do not ask a check or teach in the same turn as presenting.
+**Presenting ENDS your turn.** The plan is presented in prose and map, and
+then you stop. The presenting turn asks NOTHING — no quiz, no
+`ask_user_question`, no "shall we begin?": there is nothing to confirm. His
+next message is his own unprompted reply and the natural next move.
- If his reply asks for changes, revise: fix the map (`plan_init` again — a wholesale rewrite), present again, and end your turn once more.
- Otherwise his reply moves the lesson forward — begin the first node.