Skip to content

Teaching-quality upgrades: MCQ quizzes, equation anatomy, executable traces, fact ledger, series nav, deck linter - #67

Open
zereraz wants to merge 17 commits into
nicobailon:mainfrom
zereraz:main
Open

Teaching-quality upgrades: MCQ quizzes, equation anatomy, executable traces, fact ledger, series nav, deck linter#67
zereraz wants to merge 17 commits into
nicobailon:mainfrom
zereraz:main

Conversation

@zereraz

@zereraz zereraz commented Jul 4, 2026

Copy link
Copy Markdown

Batch of reader/learning upgrades from heavy real-world use:

  • Interactive MCQ quizzes (template CSS/JS): click an answer → instant correct/wrong feedback + explanation. Replaces passive details-toggles.
  • Equation anatomy rule (SKILL): every equation needs where-it-fits, why-it-exists, an English reading, and a numeric trace.
  • Executable traces (.xtrace / .xslider template helpers): traces computed in-page from embedded raw data instead of hand-typed numbers.
  • Fact ledger (scripts/facts.py): JSONL provenance ledger; decks cite facts via data-fact=id; retract with one flag; facts.py verify flags decks citing void facts.
  • Series navigation: data-series-prev/next/index on body → prev/series/next links + N/P keys; SKILL series rule.
  • Deck linter (scripts/check-deck.py): favicon, KaTeX <-escapes, code-block escapes, math overflow guard, engine presence, resume fix.
  • Resume fix: never restore scroll position to the final slide.
  • KaTeX overflow guard in template.

All additive; no behavior changes for existing users unless they adopt the patterns.

zereraz added 17 commits June 27, 2026 22:05
- SKILL.md: add favicon to delivery rules + final checklist, plus a KaTeX
  '<'-escaping note that prevents formula truncation
- templates: add the data-URI favicon to all 4 reference templates
- extension.ts: ensureFavicon() deterministically injects the favicon after
  </title> (or into <head>) on render unless an icon link already exists,
  so pages get it even if the agent omits it

The favicon is a self-contained data-URI SVG (node-graph glyph, dark/accent
palette), consistent with the self-contained-HTML requirement.
- scripts/update-fork.sh: --check / --apply / --continue with agent-friendly
  exit codes (10 behind, 20 conflict); merges upstream into main preserving
  local commits, pushes, and runs 'pi update' to refresh the install
- commands/update-visual-explainer.md: /update-visual-explainer command that
  checks first, applies if behind, and has the agent resolve conflicts keeping
  both upstream behavior and our additive customizations
- docs/MANAGED-FORK.md: remotes, philosophy (on-demand > automatic), usage
render (extension.ts):
- fixDisplayMath(): escape < and > inside $$...$$ so the HTML parser can't
  truncate formulas like y_{<t} (the recurring KaTeX bug), idempotent + lossless
- ensureDocMeta(): inject lang, viewport, theme-color if missing
- render pipeline now: fixDisplayMath -> ensureDocMeta -> ensureFavicon

SlideEngine (slide-deck.html template):
- deep-link hashes (#slide-N) + hashchange nav
- resume where you left off (localStorage per path)
- reading percent in the counter
- outline overlay (press O) with clickable slide titles
- keyboard help panel (press ?)

SKILL.md:
- reader-first defaults: TL;DR-first, recap, <abbr> glossary, no motion-gated
  content, a11y (no color-only, reduced-motion, >=16px); checklist updated
Animating transform: translateY(40px) scale(.98) on .slide — which is the
scroll-snap-align target — made the browser recompute the snap position as the
transform settled, producing a small downward jitter at the end of every slide's
entrance. Fade the slide with opacity only; keep entrance transforms on the inner
.reveal children (not snap targets). Also add scroll-snap-stop:always for crisp
snapping.
…nav (N/P keys), learning-first SKILL rules (evidence tags, retrieval practice, series wiring)
…py single validation gate; SKILL workflow rules
…gle-explorable rule, verify-yourself ending (grounded in comprehension-debt + retrieval-practice research)
…races (.xtrace/.xslider in template), SKILL rules
…urora+grain depth, glass surfaces, ghost numerals, gradient titles, blur-in reveals
…rch), fill-canvas sizing, duo grid for spatial contiguity (Mayer)
…ayout via headless screenshot before delivering
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant