fix: teach divider prepended, not a replacement branch — first lesson block renders
The inferred teach seam sat as a ternary branch in the messages.map chain (alongside the no-bubble marker branches), so the ENTIRE first teaching group — thinking, prose, the tagged quiz call — rendered AS the divider and vanished below it (the Lacan session, 2026-09-27). The marker branches replace contentless scaffolding; the teach group is a real message. The divider now prepends inside the group's Fragment. Also tightens 10-planning.md: the presenting turn asks NOTHING — no quiz, no ask_user_question, no 'shall we begin?' (the teacher was substituting a confirmation question for the dead verdict buttons).
This commit is contained in:
+15
-11
@@ -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.
|
||||
<PhaseDivider key={m.id || `m-${mi}`} phase="plan" />
|
||||
) : 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.
|
||||
<PhaseDivider key={`teach-${m.id || `m-${mi}`}`} phase="teach" />
|
||||
) : (
|
||||
) : (
|
||||
<Fragment key={m.id || `m-${mi}`}>
|
||||
{/* 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" ? (
|
||||
<PhaseDivider key={`teach-${m.id || `m-${mi}`}`} phase="teach" />
|
||||
) : null}
|
||||
<Message from={m.role} className={m.role === "assistant" ? "max-w-full" : undefined}>
|
||||
<MessageContent className={m.role === "assistant" ? "w-full" : undefined}>
|
||||
{m.role === "user" ? (
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user