Skip to content
Ask Otto AI
Help

What is this page?

AI foundation

Role aware

This page proves the governed AI substrate: AI run records, prompt versions, model policies, content chunks, usage ledger entries, and feedback events before any live AI provider is connected.

Audience
Administrator
Current limits
It uses local invented AI schema proof data only. It does not call Anthropic, OpenAI, Bedrock, embeddings, batch, or file-retaining APIs; create provider credentials; write production AI rows; generate model responses; or activate AI decisions.

Support request boundary

Use Sev2 if a future AI route could send restricted data or create consequential decisions, Sev3 if schema, ledger, or prompt-version 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 foundation

AI foundation

Review the governed AI schema before provider adapters, school AI settings, tools, budgets, evals, and PII minimization are enabled.

Otto Fixture BPPE Career School · AI mock mode

School Administrator · Sam Director

AI foundation · Ticket 106

AI schema is governed before providers exist

This proof shows the tenant-owned AI run, prompt version, model policy, content chunk, usage ledger, and feedback schema. It uses mock-only data and keeps live AI providers blocked.

No live provider calls

AI schema tables

6/6

Tenant-owned and RLS-enabled

Model policies

3

Mock, blocked, and Private AI pending routes

Ledger rows

3

Every sample run has cost and token metadata

Provider calls

0

No Anthropic, OpenAI, Bedrock, or embedding calls

AI

Governed AI substrate

Otto AI remains visibly AI, source-linked, and governed before feature-specific assistants are enabled.

Ticket 106

Every AI run is tenant-owned and must link to a model policy, prompt version, input references, validation status, approval outcome, usage ledger row, and user context when known.

Restricted data such as Social Security numbers, government IDs, bank or card numbers, and disability documentation is core-only or blocked before any provider route.

Prompt versions store hashes and schemas, not raw student-submitted prompt text.

Content chunks store source ids, hashes, PII class, and embedding metadata; raw content and embedding vectors are not part of this ticket.

Consequential actions such as grade release, status changes, aid-affecting determinations, refunds, dismissals, and admissions decisions require an authorized human click.

Model output cannot provide tenant ids, user ids, record ids, or final authorization identities; those always come from request context and server-side references.

Schema tables

Model policy

otto_private.ai_model_policies

Schema implemented

Defines which providers, models, processing tiers, retention behavior, and restricted-data routes a school may use.

Tenant owned

Yes

RLS enabled

Yes

Required columns

idRequired

Primary key for immutable references.

tenant_idRequired

Required tenant boundary for RLS and per-school reporting.

policy_keyRequired

Stable key for feature configuration.

processing_tierRequired

Separates Otto Core, Otto Deep, and Private AI routing.

restricted_data_routeRequired

Records whether restricted data is core-only or blocked.

Blocked columns: raw_provider_key, raw_secret, training_opt_in

Prompt version

otto_private.ai_prompt_versions

Schema implemented

Versions prompt contracts by feature, model policy, output schema, and untrusted-input wrapper hash.

Tenant owned

Yes

RLS enabled

Yes

Required columns

idRequired

Primary key for immutable references.

tenant_idRequired

Required tenant boundary for RLS and per-school reporting.

model_policy_idRequired

Connects the prompt to an approved model policy.

prompt_hashRequired

Stores a hash of the prompt instead of raw prompt text.

output_schemaRequired

Server-side validation contract for structured output.

Blocked columns: raw_prompt, prompt_body, student_text

Content chunk

otto_private.ai_content_chunks

Schema implemented

Indexes source-linked content by hash, PII class, embedding metadata, and allowed processing route.

Tenant owned

Yes

RLS enabled

Yes

Required columns

idRequired

Primary key for immutable references.

tenant_idRequired

Required tenant boundary for RLS and per-school reporting.

source_resource_typeRequired

Links back to the source record type.

content_hashRequired

Detects content changes without storing raw chunk text.

pii_classRequired

Blocks restricted-data chunks before provider routing.

Blocked columns: raw_content, embedding_vector, ssn

AI run

otto_private.ai_runs

Schema implemented

Records every AI request with user, feature, model policy, prompt version, references, validation, approval outcome, and latency.

Tenant owned

Yes

RLS enabled

Yes

Required columns

idRequired

Primary key for immutable references.

tenant_idRequired

Required tenant boundary for RLS and per-school reporting.

model_policy_idRequired

Freezes the policy used for the run.

input_referencesRequired

Stores references instead of full raw input text.

approval_outcomeRequired

Shows whether a human accepted, edited, or rejected output.

Blocked columns: raw_input, input_text, model_supplied_user_id

AI usage ledger

otto_private.ai_usage_ledger_entries

Schema implemented

Records per-run tokens, cached input, output tokens, cost metadata, latency, model, provider, and outcome.

Tenant owned

Yes

RLS enabled

Yes

Required columns

idRequired

Primary key for immutable references.

tenant_idRequired

Required tenant boundary for RLS and per-school reporting.

ai_run_idRequired

Connects cost and token metadata to a run.

total_tokensRequired

Supports budgets and usage reporting.

estimated_cost_micro_usdRequired

Stores cost metadata without floating-point drift.

Blocked columns: credit_card, invoice_payment_method, raw_payload

AI feedback

otto_private.ai_feedback_events

Schema implemented

Captures accepted, edited, rejected, flagged, and human-review feedback events for AI outputs.

Tenant owned

Yes

RLS enabled

Yes

Required columns

idRequired

Primary key for immutable references.

tenant_idRequired

Required tenant boundary for RLS and per-school reporting.

ai_run_idRequired

Links feedback to the exact AI run.

feedback_kindRequired

Normalizes acceptance, edits, flags, and review requests.

final_decision_resource_idOptional

Links accepted output to the human-owned final decision.

Blocked columns: detector_score, misconduct_finding, raw_model_trace

Model policies

Otto Core mock default

otto core

Mock active

Provider

mock

Model

otto-core-deterministic

Restricted route

core_only

Private AI

Not required

Batch

Off

File retention

Off

Used for local schema proof and deterministic CI fixtures only.

Otto Deep placeholder

otto deep

Blocked

Provider

none

Model

provider-key-required

Restricted route

pseudonymized_only

Private AI

Not required

Batch

Off

File retention

Off

Blocked until provider contract, no-training terms, and validation harness exist.

Private AI pending route

private ai

Draft

Provider

pending

Model

zero-data-retention-required

Restricted route

private_ai_only

Private AI

Required

Batch

Off

File retention

Off

Reserved for zero-data-retention or approved private processing terms.

Prompt versions

ask-otto-deadlines

v0.1-proof · ask_otto_staff_deadlines

generate structured

Policy

policy-otto-core-mock

Prompt hash

sha256:local-deadlines-prompt-proof

Output schema

deadline_answer.schema.json

Untrusted wrapper

Present

Human approval

Not required

Restricted data

Not allowed

grading-rubric-draft

v0.1-proof · ai_grading_draft

generate structured

Policy

policy-otto-deep-disabled

Prompt hash

sha256:local-grading-rubric-proof

Output schema

rubric_suggestion.schema.json

Untrusted wrapper

Present

Human approval

Required

Restricted data

Not allowed

content-chunk-embedding

v0.1-proof · guide_search_embedding

embed

Policy

policy-private-ai-pending

Prompt hash

sha256:local-embedding-contract-proof

Output schema

embedding_metadata.schema.json

Untrusted wrapper

Not required

Human approval

Not required

Restricted data

Not allowed

Content chunks

guide:getting-started/sap

guide

deep_allowed_pseudonymized

PII class

none

Content hash

sha256:guide-sap-proof

Embedding

Hash only - embedding not generated

Token estimate

420

lesson:cardiovascular-terms

lesson

private_ai_allowed

PII class

none

Content hash

sha256:lesson-cardio-proof

Embedding

Pending Private AI route

Token estimate

880

student-record:maya-attendance-summary

student_record

otto_core_only

PII class

education_record

Content hash

sha256:student-risk-proof

Embedding

Blocked from Otto Deep

Token estimate

310

document:id-check-manual-review

student_record

blocked

PII class

restricted_blocked

Content hash

sha256:restricted-id-proof

Embedding

Never embedded

Token estimate

0

AI run records

ask_otto_staff_deadlines

ask_otto · otto_core

Mock succeeded

Provider

mock

Model

otto-core-deterministic

Prompt

prompt-ask-otto-deadlines-v0

Input refs

3

Content chunks

0

Validation

passed

Approval

not_required

Latency

84 ms

Local deterministic response from referenced calendar and compliance proof rows.

ai_grading_draft

grade_suggestion · otto_deep

Queued

Provider

none

Model

provider-key-required

Prompt

prompt-grading-draft-v0

Input refs

2

Content chunks

1

Validation

pending

Approval

pending

Latency

0 ms

Queued as a schema preview only; no provider adapter exists in Ticket 106.

guide_search_embedding

embedding · private_ai

Blocked

Provider

pending

Model

zero-data-retention-required

Prompt

prompt-content-embedding-v0

Input refs

1

Content chunks

1

Validation

failed

Approval

not_required

Latency

0 ms

Blocked because the source chunk is marked restricted_blocked.

Usage ledger

ask_otto_staff_deadlines

run-staff-deadlines

succeeded

Input

940 tokens

Cached

0 tokens

Output

180 tokens

Total

1120 tokens

Cost

0 micro USD

Latency

84 ms

ai_grading_draft

run-grading-draft

blocked

Input

0 tokens

Cached

0 tokens

Output

0 tokens

Total

0 tokens

Cost

0 micro USD

Latency

0 ms

guide_search_embedding

run-restricted-id-block

blocked

Input

0 tokens

Cached

0 tokens

Output

0 tokens

Total

0 tokens

Cost

0 micro USD

Latency

0 ms

Feedback schema

ask_otto_staff_deadlines

run-staff-deadlines

Accepted

Reason

answer_useful

Final decision

No consequential action

ai_grading_draft

run-grading-draft

Edited

Reason

rubric_language_needs_review

Final decision

Instructor-owned grade release required

guide_search_embedding

run-restricted-id-block

Human review requested

Reason

restricted_data_block

Final decision

Manual review only

Proof boundaries

No Anthropic, OpenAI, Bedrock, embedding, batch, file-retaining, or live provider call is executed in Ticket 106.

No API key, zero-data-retention contract, provider credential, school setting, budget limit, rate limit, generated answer, embedding vector, or model response is created.

No production database row is inserted by this proof page; the schema is defined, tested, and shown with local invented fixture data only.

No student-facing tutor, AI grading, risk flag, admissions decision, SAP decision, refund decision, dismissal, or compliance conclusion is active.

Source references

prd-09-ai-governance

PRD 09 - Otto Intelligence

Defines visible AI, usage ledger metadata, private AI mode, restricted-data rules, schema validation, and human approval.

prd-33-data-model-ai

PRD 33 - AI data model

Names AI run, prompt version, model policy, content chunk, usage ledger, AI feedback, and evaluation result entities.

phase-13-ticket-106

Phase 13 Ticket 106

Requires the first AI foundation schema before provider adapters, settings, tools, output validation, budgets, evals, and PII minimization tickets.