# School example application instructions

These are application-owned verification programs for the shared `model.xml`.
Follow the TeaQL Agent Kit model-first workflow and request current language
entity/action Assist, then field Assist for every selected/filter field.

Keep generated domain libraries unchanged. Do not inspect or search generated
domain sources for API discovery. Use Assist and exact compiler diagnostics;
report `MISSING_ASSIST` when the needed contract is unavailable.

The basic fixture has three phases: `bootstrap`, `create`, and `read`.
The advanced suite adds `seed`, `query`, `update`, `read-update`, `delete`,
and `read-delete`, plus isolated `transaction` and synchronized `worker` processes, using the same model and `advanced/fixture.json`.
`SCHOOL_SCENARIO` isolates each query and read-delete case so one failure cannot
hide siblings. Keep `advanced/scenario-catalog.json` aligned with every oracle
case, and retain explicit priorities for capabilities still outside this suite.
Keep `advanced/expectations.json` independent of the language implementation;
never weaken its expected totals, zero buckets, per-parent limits or deletion
visibility to make a runtime pass. Empty tail pages still report the exact total;
child filtering keeps parents with loaded empty lists; default analytics exclude
tombstones. Blank intent negative checks must fail for an intent-related reason. Pagination checks must assert native plans, not infer cursor or retained-ID use from correct rows. Keep one context across the pages in each scenario; preserve exact counts, overflow lower bounds and predicate isolation.
Retain partial failures in the receipt and preserve earlier dated receipts.
Use the real
SQLite provider, explicit context/module schema initialization, bounded Q
queries with comment and purpose, and audited saves. Context resources come
from this trusted local composition root. Never create a parallel schema or
seed domain records with SQL. The external SQLite checker is read-only and
independently verifies persistence; it does not implement application storage.

Build with published TeaQL dependencies by default and preserve failed attempt logs.
Explicitly selected Go, TypeScript, Rust, Python and .NET workspace checkouts are allowed for recorded fixes. Rust uses an external Cargo patch configuration, Python a verified wheel, and .NET an isolated NuGet feed with DLL comparison. Resolve Go through an
external Go workspace. Build and pack TypeScript from the selected checkout,
install the tarball without rewriting generated manifests, and verify the actual
resolved package and compiled artifact hashes. Record the Git commit, dirty state and source hash, and
label successful checks `workspace-pending-release`. A workspace PASS never
upgrades a failing published-runtime receipt.
After a first compilation, repair only the block identified by diagnostics.

Transaction cases clone the seeded database with SQLite backup. Prove the Platform UPDATE precedes the failing School UPDATE, and compare every persisted field after rollback. Concurrent workers must both read version 1 before barrier release; busy/locked errors are failures, never optimistic-conflict evidence. Check the final value against the actual winning worker. Preserve immutable older receipts.
