One journey's slides + applets, from the locked sequence record and the KG synthesis. Reuse-first: adopt the KG's already-extracted assets (slides, images, applets, mcp-sims, videos) before authoring net-new.
LawThe journey traverses the six sections in order (vocabulary.md §2, Activate→Consolidate); the arc is complete — no section silently dropped.
Seamcompile.
Groundingconvention (TGAR delivery structure) · F§5.2.
R-BLU-02Trope conformance
HARD
LawEvery trope instance conforms to its registry record (vocabulary.md §3): it appears where its required-when fires, at its position_rule, and — where setup_reveal: yes (Math_Trap, Math_Twist) — as a setup→reveal pair; setup and resolution never share one screen. Minimum counts per lever:blueprint.trope_minimum_requirements. Math_Twist is at most one per journey and never merged with Math_Trap.
DetectA confrontation/anchoring trope collapsed onto a single screen; a missing required trope; a Twist merged into a Trap.
Seamcompile (via compile_key tags) + prompt.
Groundingliterature:Posner1982 (Math_Trap = elicit dissatisfaction, then accommodate), Kapur2008 (Math_Twist = productive surprise) · F§5.3, F§9. WhyCollapsing setup+reveal destroys the pedagogical moment (the commitment→disconfirmation beat); the registry is the single definition, this law the single enforcer.
R-BLU-03CPA sequencing
HARD
LawConcrete before Pictorial before Abstract; never start Abstract. Transition screens bridge phases.
RelaxPer content-type (vocabulary.md §1 / lever:blueprint.cpa_strictness): Learn = full C→P→A; Practice may begin Pictorial but must reach Abstract; Challenge abbreviated.
Seamprompt + compile (phase order).
R-BLU-04Scaffolding arc is monotonic
HARD
LawScaffolding follows lever:blueprint.scaffolding_ladder (full→partial→guided→independent) and never increases after being reduced; transitions are smooth at section boundaries.
TestRead the scaffolding_level column top to bottom: a jump from full to independent signals missing intermediate screens; still full past Teach = hand-holding; independent before Review = abandoning.
RelaxApplet stages have their own arc under this same law.
Seamcompile (monotonicity) + prompt.
R-BLU-05Concept-prerequisite ordering
HARD
LawIntroduce vocabulary and relational concepts before the tool or representation that uses them. Students need the language before the instrument.
TestFor each screen: does the student already have ALL the vocabulary/concepts needed to engage it? If not, a prerequisite screen is missing.
Seamprompt.
Groundingliterature:SweEtal1998 (unmet prerequisites spike element interactivity/load) · F§2.3. Whye.g. teach "numerator/denominator" before showing fraction bars; "variable = unknown" before algebraic notation.
R-BLU-06Context coherence
HARD
LawA Learn journey uses at most lever:blueprint.max_contexts_per_learn_journey concrete contexts: one primary context runs Activate→Ask (the learning spine); at most one transfer context appears in Consolidate. The applet uses the primary context or a context-free representation (number line, area model) — never a brand-new scenario.
DetectDifferent concrete contexts across sections (dice→marbles→coins→cards); a worked example that switches context before consolidation; an Exit Question in a novel context needing new domain knowledge.
Seamprompt + compile (context tag count).
Groundingliterature:MartonPang2006 (vary one thing, hold the background invariant), Mayer2001 (coherence — extraneous material harms) · F§2.4.
R-BLU-07Screen density ceiling
HARD
LawOne major idea, one visual context, one student action per screen. If describing the screen needs more than lever:blueprint.screen_density_max_describe_sentences sentences, it is too dense.
Detect≥2 worked examples on one screen; teacher-mediated interactive flow in prose (an applet pretending to be a screen); setup AND reveal together; ≥2 visual models on one screen.
TestUntrained first-year teacher presents it in 3 minutes?
RelaxPlaceholder screens exempt (vocabulary.md §6).
Seamcompile (density signals) + prompt.
R-BLU-08Media escalation
HARD
LawAny one of these means the content must become an applet sandwich, not a screen: interaction language (drag/place/sort/build); ≥ lever:blueprint.media_escalation_example_count examples of the same reasoning; teacher-mediated interactivity; predict-then-reveal; a dense procedural flow. Multi-step procedures (≥ lever:blueprint.procedure_to_applet_step_threshold steps) belong in applets.
Seamprompt + compile (signal scan).
Groundingconvention (delivery-medium routing) + literature:Sweller1988 (offload high element-interactivity to interaction). WhyThese signals mark content that only lands through interaction; leaving it on a screen produces the "screen pretending to be an applet" failure.
R-BLU-09Media sandwich
HARD
LawEvery applet and every video is a three-screen sandwich: context (why, what to explore/watch-for) → placeholder (where it runs, duration) → consolidation (reconnect to the journey LO). The Snapshot trope lands on the consolidation screen. Per-medium specifics are in vocabulary.md §6 (screen roles).
DetectA placeholder without its flanking context/consolidation screens.
Seamcompile (sandwich presence).
Groundingconvention (integration structure) · F§7.3, F§7.4.
R-BLU-10Applet purpose bound
HARD
LawAn applet is placed only when all hold: (1) the synthesis names a specific IAS archetype, (2) a misconception needs surfacing through interaction (not mere statement), and (3) sufficient conceptual groundwork precedes it. Applets serve Explore / Consolidation / Practice / Assessment — never exposition, definition, worked examples, or trope moments (those are screens).
Seamprompt.
Groundingconvention (interaction-must-encode-concept) · F§3.1.
WhyApplets are expensive attention; spending them on exposition wastes the interactive budget and pacing (lever:blueprint.applets_per_journey_soft_cap).
R-BLU-11Applet stage arc
HARD
LawAn applet follows the six stages (vocabulary.md §4, Launch→Consolidate), with its own scaffolding arc (R-BLU-04).
RelaxContent-type/node kind: an exit_question applet may compress to Application only; a misconception applet leads with the wrong intuition (see R-BLU-19).
Seamprompt + compile (stage presence).
Groundingliterature:Kapur2008 (explore/struggle before articulation), Chi1989 (Explain stage = self-explanation) · F§6.2.
R-BLU-12Construction-grade screens
HARD
LawEvery applet screen carries the enrichment fields that make it buildable: student_sees_does_thinks, intermediate_states (trigger→resulting_state→visual_change), affordances (element + visual_cue), variants_and_invariants (the IAS archetype in action — what changes vs the principle that stays), feedback (on_correct / on_incorrect / on_partial / on_misconception, with exact text + timing), time_estimate, transition_from_previous. A builder implements the screen from these alone.
DetectA generic thinks: "thinks about fractions"; missing on_misconception where the applet targets one; an interactive element with no discoverable affordance cue.
Seamcompile (field presence) + prompt (specificity).
Groundingconvention (buildability spec) + literature:Hattie2007 (feedback that redirects; on_misconception targets the specific error) · F§3.2, F§6.4. WhyThis is the delta between a storyboard and a spec; it is what makes R-BLU-20 (buildable from storyboard alone) achievable.
R-BLU-13Difficulty cap by content-type
HARD
LawDifficulty progresses along lever:blueprint.difficulty_ladder but stays within the content-type's cap (vocabulary.md §1 / lever:blueprint.difficulty_cap_by_content_type): Learn caps at variation; Practice/Challenge reach transfer. Worked examples precede independent practice.
Seamprompt + compile (max-level check).
Groundingliterature:SweCoop1985 (worked-example effect → fade to practice), Chi1989 (self-explanation between) · F§5.4.
R-BLU-14Screen tagging contract
HARD
LawEach screen's commitment tags — concepts_introduced, concepts_reinforced, misconceptions_targeted, prerequisites_activated — are the contract the compile pass verifies. A concept appears in concepts_introduced on exactly one screen.
Seamcompile (uniqueness + presence).
Groundingconvention (verification contract; single-introduction is the screen-level DRY rule).
R-BLU-15Dev-note anchoring
HARD
LawEvery dev-note recommendation is anchored to specific content — a screen/screen reference, or journey-wide with enumeration. Vague advice is forbidden.
DetectA dev note with no screen/screen reference → flagged UNANCHORED. GOOD: "Screens 4 & 7: touch targets ≥ 44×44px." BAD: "Ensure touch targets meet accessibility guidelines."
Seamcompile (anchor scan) + prompt.
Groundingconvention (actionability).
R-BLU-16Convention / false-friend materialization
HARD
LawEvery KG convention flag or false-friend on the journey's LOs (kg_list_ai_tags / neighbourhood over the ported nodes) becomes a structured entry {term_or_aspect, risk, mitigation, addressed_at_screen}. The mitigation is a concrete instructional action, not "be careful"; a false-friend entry names the register shift explicitly (math meaning vs everyday meaning).
KGported false_friends + convention_differences nodes, FK'd to LOs.
Seamprompt + compile (shape + non-vague mitigation).
Groundingcontent-grounded (KG false-friend/convention nodes carry evidence) + convention (materialization shape).
R-BLU-17Substitute-teacher self-sufficiency
HARD
LawA substitute teacher can run the whole journey using only on-screen content — every concept used is prerequisite-activated, taught here, or flagged as first encounter; no external guidance required.
TestRead only the on-screen content end-to-end: any concept that appears un-activated and un-taught is a gap.
Seamprompt + compile (concept-provenance sweep, ties to R-BLU-14).
Groundingconvention (facilitation model) · F§7.1.
De-scored from the ACRLDS module gate G4/G5 — invariant only, no score.
R-BLU-18No robot-completable interaction
HARD
LawNo applet interaction is completable without concept-linked thought — a purely mechanical tap-sequence that a robot could finish is a design failure.
Seamprompt.
Groundingconvention (interaction-encodes-concept — the "razor") · F§3.1.
De-scored from applet gate G3.
R-BLU-19WHY before HOW
HARD
LawThe learner understands why before learning how — motivation/meaning precedes procedure.
RelaxA misconception-type applet inverts this by design: it exposes the wrong intuition first, then resolves it. The inversion is declared, not accidental.
Seamprompt.
Groundingliterature:Kapur2008 (explore/struggle before instruction) · F§2.5. De-scored from applet gate G4 + its applet_types relaxation.
R-BLU-20Buildable from storyboard alone
HARD
LawA developer can build the applet from the storyboard without calling a designer — satisfied by R-BLU-12's field completeness.
Seamcompile (delegates to R-BLU-12) + prompt.
Groundingconvention (storyboard = state machine, dev handoff) · F§6.3.
De-scored from applet gate G5.
R-BLU-21Three layers on every interactive screen
HARD
LawEvery interactive screen carries all three content zones: action_instruction (what to do), scaffolding_text (hints/supports), dev_notes (implementation). Visible content carries the interaction without external guidance.
DetectAn interactive screen missing any of the three zones.
RelaxPlaceholder screens with <TO BE REPLACED> markers are deployment injection points — validate the surrounding sandwich, not the marker.
Seamcompile (zone presence).
Groundingconvention (screen-zone separation) · F§6.4.
De-scored from applet gates G6/G7.
R-BLU-22Reuse extracted assets before authoring
HARD
LawBefore authoring a net-new asset of any kind — lesson slide, image, applet, mcp-simulation, video — query the KG for an existing extracted asset that already teaches the target LO (kg_lesson_full, kg_list_ai_tags). If one exists and fits, reuse or adapt it: cite it (kg_tag::<asset>::<lo> + the CMS asset id) and resolve its runnable bytes from the CMS at build time. Author net-new only when the KG has no fit, marking it kg_write_candidate: true. This is R-GND-04 instantiated for the blueprint.
DetectA newly-authored screen/image/applet/mcp-sim/video whose intent matches an extracted KG asset on the same LO, carrying no kg_tag:: reuse provenance.
KGkg_lesson_full, kg_list_ai_tags; CMS for the bytes.
Seamprompt (search instructed) + kg (match check) + compile (new asset without a checked-and-recorded no-match is flagged).
Groundinggrounding-discipline (reuse-first → corpus convergence, no duplicate builds). See R-GND-04.
R-BLU-23Carry the textbook's examples & questions into the journey
HARD
LawThe journey's worked examples (the Get section) are drawn from the textbook's own worked_examples for this journey's LO, and its practice + Exit questions (the Ask / Consolidate sections) from the textbook's exemplar_questions — both captured in A1 and assigned to the journey by R-CHP-14. Each carries its kg_source::<doc>::p<page> cite; adapt wording only as needed (delivery-language per R-GND-06). Author a net-new example or question only to fill a beat the textbook does not cover, and flag it (gap::textbook_no_example).
DetectA Get worked example or an Ask/Exit question with no kg_source cite where the journey's textbook_examples/exemplar_questions hold a fit; fabricated exercise content presented as the textbook's.
KGthe A1 textbook_extract (sourced via kg_get_source_pages); no new read.
Seamprompt + compile (every Get example / Exit question resolves to a page cite or a flagged gap).
Groundingliterature:SweCoop1985 (worked-example effect — study examples before solving), Chi1989 (self-explanation over worked examples) · convention (textbook fidelity) · F§5.4. WhyA journey that invents its own examples drifts from the book the class actually uses; the textbook's exemplars are the shared, vetted ground truth — reuse them like any other extracted asset, cite the page, and only author to fill real gaps.