Skip to content

v0.6.0: Marble teaching research

Choose a tag to compare

@kentlangley kentlangley released this 22 Oct 22:13
1a555c1

Marble teaching research (#44).

Added

  • Check-understanding items (#42): data/checks/checks.txt has 106
    kid-voice items for Math and Science topics, written offline from the two-tier and interpret/translate assessments,
    with wrong choices taken from the misconceptions. They cover the topics closest to a learner's review
    queue, spot-checks and frontier first; the rest are a follow-up. build.mjs validates them and attaches them to
    playable topics (ck), skipping pending and hidden-region topics.
    • In the app: review gates and spot-checks prefer them over the kid prompt; on generator topics they're used only
      to spot-check inferred skills. The "why" tier becomes the explanation, and the log records qtype: "check".
    • Progress: stored progress, medals, gate choice and quest stages are unchanged.
    • Bosses: a boss may end with a two-tier "answer + why" pair ("twoTier"); npm run research -- <id> --check
      prints one.
  • Research in nightly authoring (#41): LESSONS.md "Researched
    stages" rules for Math and Science stages whose topic has research. publish-lessons.mjs warns, but never fails, when
    a researched stage has no wrong choice tagged "misconception", or when a topic the learner got stuck on has no
    research re-teach prerequisite in the pack. It prints how many stages were researched. The example quest follows the
    rules.
  • Per-wrong-choice feedback (optional "feedback": {"<wrong choice>": "reply"} on mc, picture and blank-with-choices
    questions): the app shows that reply in place of the generic hint on a first miss, and with the answer on a second.
    It stays server-side like the answer.
  • Research briefs for the lesson author (#40):
    npm run research -- <topicId> (research.mjs) prints a short brief, at most 6,000 characters, from Marble's teaching
    research. It shows the learn constraints first, then the summary, misconceptions, error patterns with next moves and
    prerequisite re-teach ids (with titles), the diagnostic and response levels, activities and best practices. Learn wins:
    pedagogy or assess text that a learn constraint forbids is dropped and flagged. For example, assess's "Earth's shadow
    points away at full Moon" is gone from the Moon-phases brief. Topics without research, such as all of English, print
    "no research". Pending and hidden-region topics get a notice instead of a brief. export-progress.mjs adds a bounded
    research section (compact briefs for the needsSupport, goDeeper, quest-refresh, stretch and nearest frontier
    topics) and research: true on frontier entries. A test makes sure the research stays out of public/, the Worker
    bundle and the Docker image. It is offline tooling only, so the app doesn't change.
  • Household region filter (HIDE_REGIONS): data/regions/AU.txt tags 26 topics whose content is specifically
    Australian (Australian Curriculum-only, and about Australian history, government, money, symbols, literature or
    First Nations Australians' Country). Every topic still plays by default. A household that sets HIDE_REGIONS="AU"
    (env, Docker build arg, or [vars] in wrangler.toml) gets a build without them: they are left out like pending
    topics, the prerequisite graph is reconnected around them, they leave the progress total, and medal tiers do not
    change. Progress and medals already earned on them are kept and still listed. export-progress.mjs and
    publish-lessons.mjs check that public/tax.json was built with the configured setting and reject hidden topics.
  • Kid prompts for the new Marble topics (#39): 316 new
    mt_id|question|right|wrong1|wrong2 lines in data/kid-prompts/b11.txt, and 11 math topics made playable through the
    existing generators (they fit: adding and subtracting within 20, sharing and grouping, halves/quarters/eighths, place
    value to 1000). The app now plays 1,916 of the 1,930 upstream topics, linked by 4,081 prerequisite edges.
    • Still pending (14), each with its reason in PENDING.txt: 6 math topics whose matching generator would ask the
      wrong kind of question (fractions of time, volume with fraction edges, odd/even rules, calculator use, factor
      algorithms, estimating decimal products); 6 body-safety, consent and puberty topics that belong in a conversation with
      a parent rather than a 3-choice quiz; 2 topics that need local knowledge (the First Nations Country of the
      learner's own school and area).
    • New areas: Geography (Maps & Spatial Skills, Places & Environments) and new domains in Computing, History, Life
      Skills and Science (Design & Technology) get icons; coverage for a blank learner now counts 66 areas (Science 20).
    • Medal tiers: the ancestor-count percentiles move from gold ≥ 31 / silver ≥ 9 to gold ≥ 34 / silver ≥ 10.
      Medals already earned keep their stored tier.

Changed

  • Marble Skill Taxonomy updated to os-taxonomy a871973 (#38):
    data/marble/ is the pinned upstream commit (data/marble/UPSTREAM), byte-identical, now including Marble's
    teaching research (teaching-research.json, archived-teaching-research.json) as offline input for the lesson
    author; it is never copied into public/ or the Docker image. 1,590 → 1,930 topics, 3,221 → 4,102 prerequisites.
    • Pending topics: the 341 new topics are listed in data/kid-prompts/PENDING.txt and left out of the app until
      slice 3 (#39) writes their kid prompts or reviews a generator.
      build.mjs bridges the prerequisite graph across them, so no upstream prerequisite path is lost. The app plays
      1,589 topics (the 1.0.0 topics minus one merged away), linked by 3,320 prerequisite edges.
    • Aliases: data/topic-aliases.json maps removed ids to their replacement (mt_3XJkeIn6J6 →
      mt_UNzojLkNdm, an upstream merge). E.migrate folds topic state, medals, help state, the current item, focus
      and requeued items forward (stronger record wins; one medal per topic, higher tier kept), idempotently.
    • Scope changes: records on mt_bESTSBB0wK (now pie charts only) and mt_NSC3LT_-ch (now capacity) are kept as
      they are; no credit is invented for the split-off line-graph topic. Kid prompts rewritten for those two, for
      mt_H6LlpWgEYS (now line-graph problems) and for mt_QhLAeAlHI0 (food groups vs nutrients, matching upstream's
      correction). Icons added for the three Computing domains that moved out of Artificial Intelligence.
    • Credits (#43): NOTICE, LICENSING.md and /about.html
      credit the teaching research, name the upstream commit, extend the NGSS notice to the research and add the ACARA
      notice for Australian Curriculum codes.
  • Kid prompts are keyed by topic id (#37): data/kid-prompts/b*.txt
    lines are now mt_id|question|right|wrong1|wrong2 instead of index|… (the topic's position in
    data/marble/topics.json), so a reordered or extended taxonomy keeps every question on its own topic. build.mjs
    joins by id and fails on index-style, unknown or duplicate lines. The one-time converter
    migrate-kid-prompts.mjs refuses to run on any topics.json other than the release the indexes were written for.
    Build output is unchanged: public/tax.json is byte-identical (sha256 317c4a30…e45e3d1).

Docs

  • BOT-SETUP.md: a setup guide addressed to an AI assistant bot that a parent points at this repo:
    what to ask the parent, install and first run for each hosting option, placement and the first quest, the nightly
    routine (back up, export, refresh or write a quest, validate, verify progress unchanged), the teaching rules,
    privacy rules and how to report to the parent. The README has a new "Set up with an AI bot" section linking to it.
  • docs/ARCHITECTURE.md: "How Jane works", a friendly diagram (docs/architecture.svg,
    generated by docs/architecture.mjs) of the daytime learning loop (no AI) and the nighttime teaching loop (the bot
    writes quests offline), the deploy options and template sharing, with a Mermaid text version and a FAQ. Linked
    from the README and BOT-SETUP.md.
  • Agent-Orchestrated Software (AOS): ARCHITECTURE.md introduces the term, with Jane as an example and a short
    comparison with SaaS and traditional installed software; the README mentions it. The docs now say the agent may
    host the app but doesn't have to.
  • Friendly guide website (site/, published with GitHub Pages by .github/workflows/pages.yml): six hand-written
    pages for parents and curious readers (home, how it works, a day for your kid, get started, privacy & safety, FAQ &
    credits), with the diagram, self-hosted Kalam headings and no trackers or outside scripts. Linked from the top of
    the README.
  • Diagram updated for AOS: the subtitle names Agent-Orchestrated Software, the bot card says it may host Jane or
    not, and the deploy strip reads "on the bot's computer or anywhere you choose". The Mermaid version matches.