Bell-Ringer-a-Day
“Five minutes of warm-up, spiraled across the standards, all month.”
Illustrative team — open seats are real invitations.
- Build mode
- assemble on blocks
- Built on
- @k12vls/curriculum + @k12vls/worksheet-core + @k12vls/marp-slides
- Output
- monthly printable pack or daily slide
The brief
What it is, and why a teacher says yes
The pain point
Daily warm-ups that meaningfully spiral prior standards take ongoing planning — not just “a problem a day,” but a problem a day that revisits what's fading. Doing this well, every day, is a quiet recurring tax on a teacher's prep time.
What it does
Teacher picks a grade (and where they are in the sequence) → generates a month of daily warm-up problems that spiral earlier standards, as a printable monthly pack or a daily slide they drop into the projector at bell.
Why it's adoptable
It fills a daily ritual teachers already run — they're not adopting a new habit, just outsourcing the planning behind one they have. One generation covers a whole month.
What the teacher receives — a synthetic example
The surface they use
Set up a month of warm-ups
Configure once · refreshes each week.What a teacher opens to produce the pack and slides below. You assemble this surface from the blocks — see “How you build it.”
What they get back
Bell-Ringers — Grade 5 · Week 3
| Mon | Divide: 4,832 ÷ 8 |
| Tue | ↺Round 5,471 to the nearest hundred |
| Wed | Estimate 612 × 39, then check |
| Thu | ↺Compare 2/3 and 5/8 |
| Fri | Multi-step: cost of 6 tickets at $9, minus a $5 coupon |
Grade 5 · Bell-Ringer · Wed
Estimate 612 × 39.
Then check: was your estimate close?
One generation covers a month — print the pack, or drop a slide a day at bell.
Illustrative mockup. All example data is synthetic — no real student data.
The graduation signal
“Built” doesn't count — real, repeated use does. Here's the ladder.
- 1
Pilot
A teacher generates a month and actually runs the warm-ups at bell across that month — real classroom use, not a download (teacher-side).
- 2
Active use
The teacher renews for the next month when the pack runs out — the daily ritual now leans on this, not on ad hoc planning (teacher-side).
- 3
Sustained MAU
The teacher comes back month after month across a term — sustained, teacher-side MAU, not a one-time grab; students never log in, so participants are estimated from classes served (teacher-side).
For the AI Builder
How you build it
The honest build path — what it builds on, the rough assembly, the data flow, and the gaps the blocks don't give you for free.
Blocks it builds on
- @k12vls/curriculum — content-access and a curriculum node model (CurriculumNode/CurriculumStructure, with a per-node sequence number) plus validation utilities. Useful background, but be honest about its limit: it sequences content nodes within the product's own curriculum tree — it does not ship an ordered CCSS-standards relation that tells you “standard X comes before 5.NBT.B.5.” That cross-standard “what's prior” judgment is yours to supply, not a function this package hands you.
- @k12vls/worksheet-core — the warm-up problems. Provides the CCSS standards model (GradeID, CCSSStandard, the StandardsTree — a subject→grade→domain→cluster browse hierarchy for populating selectors, not a learning order), problem-generation config + record types (CcssProblemGenerationConfig, CcssProblemRecord), the prompt constants (getProblemGenSystemPrompt), rendering UI (@k12vls/worksheet-core/ui), and PrintOptions for the printable pack.
- @k12vls/marp-slides — the optional daily-slide output. Exports types plus the K12 theme (K12_THEME_NAME, k12ThemeCSS, writeK12ThemeFile) so a one-problem-per-day slide looks on-brand.
Rough assembly
- 1Pick — a grade + current-standard selector (populated from worksheet-core's StandardsTree browse hierarchy), plus the spiral controls: instructional-days/weeks to cover and how often a review day recurs.
- 2Schedule the spiral — this is the part you build, and it needs data the blocks don't ship. Decide which earlier standards reappear on which days (e.g. mostly current-standard, with a fixed cadence of review days). To do that you need a prior-standards ordering — “what comes before 5.NBT.B.5” — which neither package provides; you supply it as a small builder-authored map (a hand-curated prior-standards list per standard is enough to start). The blocks fill the slots this schedule defines; the schedule and its ordering source are your contribution, not a function call.
- 3Generate — for each day's chosen standard, call the LLM with getProblemGenSystemPrompt(...) + a CcssProblemGenerationConfig (type: 'ccss', subject: 'math', grade, ccssStandardId, and the required numProblems: 1 for a single warm-up; difficulty/scaffold emphasis goes through optional customInstructions — there is no difficulty config input) to produce that day's warm-up and its answer.
- 4Render — lay the month out with the worksheet-core ui components for the printable pack path, or emit one Marp slide per day (themed via @k12vls/marp-slides) for the daily-slide path.
- 5Output — apply PrintOptions for print-to-PDF, or hand off the themed slides.
The data flow
getProblemGenSystemPrompt, numProblems: 1.worksheet-core/ui + PrintOptions → print / save as PDF monthly pack; slide: emit Marp slides themed via marp-slides → daily slide deck.Caveats — the honest gaps
Scope boundaries
This generates warm-ups and hands them off; it deliberately does not track who completed them, store student answers, or grade them — it's a planning aid, not an LMS, and adding score-tracking would turn it into a bigger thing and start touching student data (breaking the no-login, no-data profile).
For the AI Champion
Taking it to a teacher
The adoption kit — the pitch, the pain it lands on, the objections you'll hear, and what a real pilot looks like.
The 30-second pitch
“You already do a bell-ringer every morning, right? Tell me your grade and where you are, and this gives you a whole month of them — and it quietly mixes in stuff from earlier in the year so kids keep it fresh. Print the pack, or grab one slide a day. You stop writing them.”
The pain it lands on
The 6:30am “what's today's warm-up?” — multiplied by every school day, and the nagging sense that yesterday's spiral problem was random, not actually revisiting what's slipping.
Objections → responses
“My warm-ups already work — why change?”
You don't change the ritual; you keep running it. This just writes the month for you and makes the review days deliberate instead of ad hoc.
“Will it actually spiral, or just give me this week's topic five times?”
Yes, it spirals: the builder sets up which earlier standards return and on what cadence, so review days are deliberate rather than a repeat of this week. You'll see the prior-standard days marked in the pack — and the pilot is exactly where you confirm the choices match what your class actually needs revisited.
“Where does my students' data go?”
Nowhere. It generates a pack or a slide deck; no student logs in, and the tool stores no student data. The pack/deck is yours to keep and reprint like any lesson material.
What a pilot looks like
The teacher runs it daily for one month. Success isn't the download — it's reaching for next month's pack when this one runs out. That renewal is the graduation signal.
The bar
Safeguarding & the pilot gate
The minimum conditions before any classroom use, and the data posture that keeps the solution honest.
Pilot gate
- Sponsoring adult
- The classroom teacher who already runs a bell-ringer (or a program/after-school lead serving real learners).
- Minimum version
- A real generated month — grade + current standard + cadence in, a full month of daily warm-ups (with answers) out, in at least one output mode (printable pack or daily slide), which the sponsoring teacher has reviewed for correctness and for whether the spiral days revisit the right prior skills — not a single-day demo, and not an unreviewed dump.
- Pilot setting
- The daily bell-ringer slot in a class period (or the equivalent warm-up ritual in an after-school/community setting).
- Success evidence
- The teacher runs the generated warm-ups at bell across the month — real use, observed, mirroring the Pilot rung above.
- Stop condition
- The spiral doesn't actually revisit earlier standards (just repeats the current topic), the problems or answers are wrong, or any output path quietly requires a login — pause and revise before continuing.
Safeguarding
Lowest loadData touched
No student data — the teacher-selected grade + current standard generate the month (and pass through the per-day LLM problem-generation call); no student login, no student PII, no uploads, no completed work. No student data is persisted; the printable pack / slide deck it produces is ordinary lesson material the teacher may save and reprint — it holds no student data.
Checklist
- Sponsoring teacher ✓ (required program-wide).
- Data-handling review n/a (no student data).
- Consent n/a.
- Supervision = ordinary classroom use (warm-up at bell).
- Content review applicable — a month of warm-ups is LLM-generated and projected/handed to students, so the sponsoring teacher reviews the generated set for correctness, standard alignment, and that the spiral days actually revisit the right prior skills before classroom use (a required quality/safeguarding gate, not a data-handling item).
One thing to verify
That both output paths — the printable pack and the daily slide — stay on a build path that doesn't require a student/teacher login (see the firebase-auth caveat), so the “no data” claim holds across the whole month, not just at first generation.
What would change the load
The Lowest profile holds only while the tool just generates and hands off. It would rise the moment any of these is added — student logins or accounts, telemetry tied to a class/roster/student (which student or class ran which warm-up, per-class usage history), students submitting or uploading answers, saved/persisted student work, parent contact, or per-student personalized feedback. Any one of those turns the firebase-auth caveat from “keep it off the path” into “now we handle data,” and the no-login, no-data claim no longer holds.
Want to build Bell-Ringer-a-Day?
Tell us this starter caught your eye — or browse the others first.