Skip to content
Ask Otto AI
Help

What is this page?

AI guardrails

Role aware

This page proves structured output validation, rejected model-supplied identifiers, prompt-injection wrappers, quoted-evidence checks, and human-click boundaries before live assistant behavior is enabled.

Audience
Administrator
Current limits
It uses local invented AI guardrail proof data only. It does not call providers, store production AI outputs, write AI run rows, write usage ledger rows, create audit events, send messages, release grades, change statuses, issue refunds, or complete consequential actions.

Support request boundary

Use Sev2 if model output could bypass schema validation, supply identity fields, evade evidence checks, follow untrusted text instructions, or complete a consequential action; Sev3 if schema, wrapper, or approval boundaries are unclear; and Sev4 for labels or proof-copy feedback. This panel does not submit a support case.

Sev1: Critical outage or data-risk emergency

Target: 1-hour response, 24/7 paging during pilot

Sev2: Major workflow blocked

Target: 4 business hours

Sev3: Standard product question or non-urgent issue

Target: 1 business day

Sev4: How-to, cosmetic, or future enhancement

Target: 2 business days

These preview controls are placeholders. Real AI answers, search, walkthroughs, and support submission come in later tickets.

Notifications5

Static proof preview

Real notification feeds, delivery, and preferences arrive in a later ticket.

Sam Director

Sam Director

sam.director@otto-fixture.test

Switch local proof role

This changes only the local shell proof. Production role changes remain server-validated future work.

Search is a keyboard-focusable skeleton. No real index or permissioned search results are implemented in this ticket.

Settings · AI guardrails

AI guardrails

Review output validation, rejected model-supplied identifiers, prompt-injection wrappers, quoted-evidence checks, and human-click boundaries.

Otto Fixture BPPE Career School · AI guardrails

School Administrator · Sam Director

AI guardrails · Ticket 110

AI output is validated before it can be used

This proof shows structured output validation, rejected model-supplied identifiers, prompt-injection wrapping for untrusted text, quoted-evidence checks, and human-click boundaries for consequential actions.

Schemas

5

Output contracts

Wrapped

2

Untrusted sources wrapped

Accepted

3

Validated examples

Blocked

4

Rejected examples

Signals

3

Detected in source text

Approvals

5

Need a human click

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.

Ticket 110

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.

Output schemas

Deadline answer

deadline_answer

Read only

A read-only answer about upcoming deadlines with source references.

Action policy

read_only

Evidence quotes

Not required

Required

answer, sourceReferenceIds

Forbidden ids

27 identity fields

Tutor response

tutor_response

Read only

A Study with Otto response that stays course-grounded and never reveals graded answers.

Action policy

read_only

Evidence quotes

Not required

Required

status, responseMode, answer, sourceReferenceIds, asksStudentToTry, revealsGradedAnswer

Forbidden ids

27 identity fields

Grade suggestion

grade_suggestion

Human approval

A rubric-scoped grading draft with evidence quotes that must appear in the submission.

Action policy

proposal_requires_human_click

Evidence quotes

Required

Required

rubricCriterionKey, suggestedScore, rationale, evidenceQuotes

Forbidden ids

27 identity fields

Message draft

message_draft

Human approval

A draft-only staff or instructor message that a human must send.

Action policy

draft_only

Evidence quotes

Not required

Required

subject, body, recipientRole

Forbidden ids

27 identity fields

Report spec

report_spec

Human approval

A report proposal with filters and metrics that still needs server-side compilation.

Action policy

proposal_requires_human_click

Evidence quotes

Not required

Required

title, metricKeys, filterSummary, sourceReferenceIds

Forbidden ids

27 identity fields

Prompt-injection wrappers

student submission

submission:student-101:essay-1

Wrapped

Wrapper

untrusted-input-wrapper-v1

Trust

untrusted_user

Hash

fnv1a:2af08f42

Signals

2

Attempts to override instructions: Ignore previous instructions

Attempts to override grading rules: give me 100

applicant text

lead:applicant-204:message-3

Wrapped

Wrapper

untrusted-input-wrapper-v1

Trust

untrusted_user

Hash

fnv1a:0a0be899

Signals

1

Attempts to reveal hidden prompts or secrets: reveal the hidden instructions

Accepted outputs

Source-linked deadline answer

deadline_answer

Accepted

A read-only answer can pass without human approval when it carries source references and no model-supplied identifiers.

Output hash

fnv1a:71ed0717

Approval

Not required

Accepted fields

answer, sourceReferenceIds, confidence

Rejected fields

none

Grade suggestion with verified quote

grade_suggestion

Accepted

The quote is present in the wrapped submission, so the output can remain a proposal for instructor approval.

Output hash

fnv1a:709a6532

Approval

Pending human click

Accepted fields

rubricCriterionKey, suggestedScore, rationale, evidenceQuotes, feedbackDraft

Rejected fields

none

human approval is required before this output can be acted on.

Human-send message draft

message_draft

Accepted

A draft can pass validation, but it remains pending a human send action.

Output hash

fnv1a:f0b2415b

Approval

Pending human click

Accepted fields

subject, body, recipientRole, sourceReferenceIds

Rejected fields

none

human approval is required before this output can be acted on.

Blocked outputs

Model tries to supply identities

deadline_answer

Blocked

The validator rejects tenant, user, and student ids from model output.

Output hash

fnv1a:68e3f921

Approval

Not required

Accepted fields

answer, sourceReferenceIds

Rejected fields

tenantId, user_id, studentId

model-supplied identifier is not allowed: tenantId.

model-supplied identifier is not allowed: user_id.

model-supplied identifier is not allowed: studentId.

Grade suggestion invents evidence

grade_suggestion

Blocked

Evidence quotes must appear in the wrapped submission text.

Output hash

fnv1a:109a9a5b

Approval

Pending human click

Accepted fields

rubricCriterionKey, suggestedScore, rationale, evidenceQuotes

Rejected fields

none

quoted evidence was not found in source text: the patient had a normal rhythm.

AI attempts to release a grade

grade_suggestion

Blocked

Consequential outputs cannot mark a grade released or completed.

Output hash

fnv1a:427896e4

Approval

Pending human click

Accepted fields

rubricCriterionKey, suggestedScore, rationale, evidenceQuotes, releaseGrade

Rejected fields

none

consequential action cannot be completed by AI; it must remain a proposal for human approval.

AI marks a message sent

message_draft

Blocked

Message outputs are drafts only until an authorized person sends them.

Output hash

fnv1a:66d8a8d3

Approval

Pending human click

Accepted fields

subject, body, recipientRole, sent

Rejected fields

none

message drafts cannot be marked sent or delivered by AI.

Proof boundaries

No production AI output is stored, shown as actionable, or attached to a student record.

No provider call, eval run, usage ledger row, audit event, message send, grade release, status change, refund, dismissal, or admissions decision is active.

Prompt-injection detection is deterministic proof logic only; broader runtime defenses and red-team evals come in later hardening tickets.

Output validation exists as a shared contract, but no live assistant route uses it for production execution yet.