Generating a school year's reading curriculum
- Status
- In deployment. This is the live curriculum, not a pilot corpus.
- Scale
- 900 lessons — 9 grade levels × 4 units × 25 lessons. All 900 reviewed and passed by a teacher.
- Cost
- ~$0.05 per plan. A year of curriculum for roughly the price of a few textbooks.
- Role
- Sole engineer
What this replaces
Lesson plans written for a specific book — not generic skills worksheets, but plans built around the actual text a class is reading — are a premium product. Schools either license them from a publisher or commission a curriculum consultant to write them, and both are expensive enough that only well-resourced schools end up with them. Everyone else teaches from whatever is free and approximately relevant.
This produced a full year of them, across nine grade levels, for a few hundred dollars of compute. And it is not a one-time effort — next year's book list runs through the same pipeline at the same cost. That is the part that matters more than the 900: the expensive thing was never one year of plans, it was needing a specialist every time the books changed.
The constraint that shapes everything
The hard requirement isn't plan quality in the abstract. It's that every passage a plan quotes is genuinely in the book. A teacher reads it aloud, in front of a class, against the real page. A plan that quotes approximately is worse than no plan.
So the model is never asked to recall a text. Purchased books are parsed into chapters, chunked, and supplied as context, and quotations come from the supplied text. Chapters carry their position in the source, so any quotation traces back to where it came from.
Parsing books nobody formatted for you
Source books arrive with no consistent structure. A purchased trade book, a public-domain transcription and a scanned reader all mark chapters differently, and getting the boundaries wrong corrupts every quotation downstream.
Extraction tries five strategies in order — a table of contents, all-caps headings, "Chapter N" patterns, markdown headings, and finally treating the whole text as one chapter so the stage can never hard-fail. The first strategy that finds at least two chapters wins, and which one won is recorded.
The interesting part is the guards, because the failure that matters is not a crash but a parse that succeeds and is wrong:
- A heading followed by less than 200 characters of prose is discarded — that rejects table-of-contents lines and page headers, which otherwise register as chapters.
- When a title appears twice, the later one wins. Otherwise a chapter anchors to its own table-of-contents entry, and every chapter truncates to the length of a single line.
- A lookup for several chapters returns whatever matched rather than failing wholesale, so one unrecognised reference doesn't discard its siblings.
Grade level, not grade band
Plans are generated per grade, not per band. Two grades inside one band reading the same book get different vocabulary load, scaffolding and independent practice. That is the difference between a plan that is at-level and one that is merely nearby, and it's why the corpus is 900 plans rather than 100.
Teachers attacking the output is the mechanism
No generated lesson is used unreviewed. All 900 were read and passed before entering a classroom, and the reviewer's job is to attack the plan rather than approve it — scaffolding that escalates faster than the unit supports, a writing task in the wrong place in the arc, a passage that doesn't support the stated objective.
Corrections are captured against the specific lesson. Domain experts produce correction data as a side effect of doing their normal work, at a volume no single prompt author could generate, and reviewer time goes to judgment instead of drafting.
Limits
- Quotation fidelity depends on the parse. A badly digitised source degrades grounding before generation runs at all.
- Every lesson needs human review to ship. That's the throughput constraint by design — this reduces the cost of drafting, not of approving.
- Four units per grade so far. Each new one costs the same extraction and full-review cycle.