The problem
Generic AI lesson planners confidently cite standards that don't exist and ignore the materials a district has actually adopted. Teachers need drafts grounded in their curriculum, and curriculum leads need control over what the AI is allowed to use.
Ingestion
An import pipeline (PDF, DOCX, XLSX) normalized the district's curriculum folders into a searchable catalog:
- 1,076 resources across 276 units, 76 grades/courses and 5 subjects
- 84 resources automatically classified as rubrics
- Every problem logged rather than hidden: 421 import issues, plus files skipped, awaiting OCR or failed
The AI design
Five generation modes: lesson outline, teacher objective, student objective, alignment rationale and differentiation. All share one grounding contract:
"Use only the provided standards and resource excerpts. Never invent standards or uncited evidence. Return JSON…"
Guardrails
- Approval-gated context: only standards a curriculum lead has marked approved reach the model (9 approved, 44 still candidates)
- Citations built from selected sources, not from the model's memory
- Warnings when no sources or standards are selected, instead of generating from nothing
- Structured JSON output parsed with field-level fallbacks; a deterministic fallback if the model call fails
- Mock provider by default, so the app runs and can be tested without spending tokens
What this shows for AI training roles
- Writing prompts that prevent hallucination rather than just asking the model to be careful
- Designing retrieval-style grounding and a citation contract
- Keeping a human approval step on what the model may treat as true
- Handling structured output defensively