Study v4: explorable-explanation labs (plan, durable + resumable)

Home: kiwimaddog2020.github.io/study/. Builds on v3 (65 lessons, 9 labs, checklist-gated green; see BUILD_STATE.md). v4 adds a new dimension, not lessons or accuracy (both maxed at the mid-80s plateau): standout interactive widgets that make abstract AI concepts tangible. The Distill / explorable-explanations aesthetic, which is also the strongest-rated feature class on the platform.

Doer = Opus (authors + merges + self-verifies). Raters = Codex + Gemini (binary-verify only, never the doer). Gate = a binary per-feature checklist (CHECKLIST_V4.md), the v3 model that worked, not the noise-dominated 0-100 rubric.

Design principle (non-negotiable, the platform’s honesty ethos)

Every lab is deterministic and fully client-side. No live model inference. Where a concept needs real model output:

Each lab carries a one-line honest caveat (“illustrative on N curated examples; a real tokenizer learns merges from data”, etc.). Same engine contract as existing labs: a mount<Name>(container, exercise) function + one dispatch line in the exercise.type chain in assets/learn.js (~line 1490); config + caveat live in the lesson’s exercise object. Each lab ~80-130 lines of JS.

The four labs (one train each)

Train A: tokenizer_lab (tokenizer playground)

Train B: attention_lab (self-attention visualizer)

Train C: injection_lab (prompt-injection sandbox)

Train D: embedding_lab (embedding-distance explorer)

Gate (CHECKLIST_V4.md, binary, Codex + Gemini vs LIVE)

Per lab, each item true/false against the live site (ground-truth by preview/node/curl on disputes): mounts + is interactive; the math/behavior is correct (token counts stable; attention weights match the bundled data; injection blocks iff guardrail on; nearest-neighbor ranking matches the coords); the honesty caveat is present; wired into its lesson and reachable; no console errors; any new link 200. Plus the standing invariants: JSON valid, learn.js node-check clean, em-dash-free, MCQ answer balance unchanged. Gate closes only when all green or disagreements are ground-truth-resolved.

Verify ledger (per train, before commit)

Resume + memory notes