One School Model, Seven Runtimes
Continue with School Advanced Scenarios in Seven Runtimes for the same model's pagination, relations, aggregates, Facets, two-parent Top-N, audited updates and deletion checks. Its independent receipt records 238/238 scenario assertions with Go, TypeScript, Rust, Python and .NET workspace fixes awaiting release; the basic result below does not certify those advanced paths.
This example gives every language the same executable acceptance check. The
School model contains a Platform root, two
constant SchoolType records, and School. The application creates Riverside
Primary School with capacity 800, a primary-school type, and the seeded root.
The runner generates a fresh workspace, adds the application-owned example, builds it, and launches four separate processes against one isolated SQLite file:
- Bootstrap: explicitly reconcile the generated module; verify one root, two complete constants, and no schools.
- Bootstrap again: compare every seed field and version with the first run.
- Create: use the generated new-entity API and an audit reason, then execute a query with comment, purpose, stable ordering, and a limit of two.
- Restart and read: start a new process, query the saved school, and compare every persisted row with the preceding snapshot.
After every process, an independent SQLite checker opens the database read-only. It checks integrity, foreign keys, exact seed values, school fields and relationships. Application code uses generated Q and mutation APIs; the checker never creates tables or seeds records.
Run it
Use a checkout of this site repository. Install cargo-teaql 2.0.14 and
Python 3 for the SQLite checker, plus the native toolchain for your selected
language. Generation and dependency installation need network access.
git clone https://github.com/teaql/teaql-io-site.git
cd teaql-io-site
cargo install cargo-teaql --version 2.0.14 --locked
node scripts/school-examples.mjs --language python
The runner does not require the site's npm dependencies. Select one runtime or
omit --language to run all seven. Each run writes to a new directory under
artifacts/school/; an existing generation directory is rejected. Set TEAQL_CLI,
PYTHON, or DOTNET to an executable path when it is not on PATH. Agents
following the current Agent Kit can set TEAQL_SKILL_DIR to its
build-teaql-app directory to stamp caller provenance before service calls.
| Runtime | Native prerequisite | Run from the site checkout | Application source |
|---|---|---|---|
| Java | JDK 21, Maven | npm run verify:school -- --language java | SchoolCheck.java |
| Rust | Rust nightly | npm run verify:school -- --language rust | main.rs |
| TypeScript | Node.js 22, npm | npm run verify:school -- --language typescript | main.ts |
| Python | Python 3 with venv | npm run verify:school -- --language python | main.py |
| Go | Go with CGO and a C compiler | npm run verify:school -- --language go | main.go |
| .NET | .NET SDK 8 | npm run verify:school -- --language dotnet | Program.cs |
| Swift | Swift 6 on macOS | npm run verify:school -- --language swift | main.swift |
These files are complete application code, with language-native imports and
the exact generated School APIs. The Java runner connects SchoolCheck to the
console's existing provider composition root. Go, Java and Rust generate the
sibling library required by their manifests. The other console targets include
their generated library. Generated domain files remain unchanged.
Go workspace verification while a release is pending
The default command tests the generated dependency on the published runtime. For the dated Go workspace result below, explicitly select the runtime checkout:
git clone https://github.com/teaql/teaql-golang.git ../teaql-golang
git -C ../teaql-golang checkout aed59b7babb30008e22a95f1234785d57f1797d2
node scripts/school-examples.mjs --language go --go-runtime ../teaql-golang
Omit --language and keep --go-runtime ../teaql-golang to run all seven with
this Go source selection. The runner creates an external go.work, verifies
that Go actually resolves the selected checkout, and records its commit,
dirty state and source hash. It rejects source changes between build and
verification. It never patches the generated domain library or silently falls
back from a published package to local source. Use the same --go-runtime
when resuming with --stage build or --stage verify.
Successful workspace results carry WORKSPACE PASS — RELEASE PENDING and
the machine-readable qualification workspace-pending-release. Remove this
qualification only after the default published-runtime command passes with
the newly released generator/runtime pair.
Evidence and limits
The run directory retains the model, evaluation, service catalog, progressive
Assist, original generated-file hashes, native build logs, command exit codes,
dependency lockfiles, database snapshots and verification.json per runtime.
Failures return a nonzero exit code and retain their logs. Compile-only results
and an application's “ready” message do not satisfy this gate.
Recorded run: 2026-10-27
The qualified 7/7 receipt records this model's hash, source and manifest hashes, toolchains, and actual database results. All seven pass the complete SQLite gate: six published runtimes and one Go workspace runtime awaiting release. The six existing builds were rerun against fresh databases; Go was freshly generated, built and executed against the selected source checkout.
| Runtime | Resolved runtime | Build | SQLite and restart |
|---|---|---|---|
| Java | 1.555-RELEASE | PASS | PASS |
| Rust | 5.0.7 | PASS | PASS |
| TypeScript | 0.3.1 | PASS | PASS |
| Python | 0.3.1 | PASS | PASS |
| Go | workspace aed59b7babb3 | PASS | WORKSPACE PASS — RELEASE PENDING |
| .NET | 0.3.1 | PASS | PASS |
| Swift | 0.3.1 | PASS | PASS |
The earlier published-only receipt
remains 6/7. Its Go v0.3.1 build fails because the deployed generator calls
context.GenerateInternalId and context.EnsureInternalIdFloor, which that
release lacks. The APIs are already implemented in the
Go source fix included in
the verified checkout.
The workspace run also verifies the generated graph-save/runtime contract.
No generated domain files were repaired to obtain this result.
The Go runtime race suite and the owning examples/school-management tests
also pass. Its bootstrap trace was run twice per database with logging both
enabled and disabled; generated-file fingerprints remain unchanged. The
Golden Path CI explicitly pins the same Go source commit and marks the job
as awaiting release. These source checks do not certify public v0.3.1.
This is a SQLite console baseline. Browser bundles, TFP, other database providers, authorization rules, negative governance cases, Checker/Fix, concurrency and schema migration need their own tests. Continue with each language's First Verification page for those checks.
Current template integration notes
The generator observed on 2026-10-27 is 20261024.134351. Its TypeScript and
Swift console starters print readiness without exercising SQLite. This example
adds provider setup and explicit module-level schema initialization. The Go
console guide contains Rust commands; use the Go commands above and current
golang-assist-* output. TypeScript, Python, .NET and Swift console archives
omit a root AGENTS.md; the example includes a maintained
application contract alongside any supplied guide.
Published runtime versions are resolved from generated manifests and native lockfiles. See Current Versions for the generator's selection and registry authorities; a later generator or package release requires another run before inheriting these results.