AI
AI output is untrusted until accepted
Output validation runs after model generation and before Otto stores, shows, or acts on structured output. Student text remains data, not instructions.
Structured outputs are treated as untrusted JSON until server validation accepts the schema.
Model output cannot supply tenant, school, user, membership, role, permission, student, enrollment, grade, attendance, payment, or refund ids.
Student-submitted text is wrapped as untrusted data with explicit begin and end boundaries before prompt assembly.
Grade suggestions must quote evidence that appears in the wrapped submission, and consequential actions remain pending human approval.