substrate subject
same subject? TRVM seals sem-… + scen-…; Residency seals snap-….
TRAAVIIS provides evidence-grade environments for
evaluating agents, and proves what happened inside them. TRVM
worlds are its strongest deterministic substrate. Write a world in
WallRiderLang, and trvs lowers it to a content-addressed
SemanticArtifactID, folds each episode into
a replayable film, and verifies that film with every applicable
check. Same world, same scenario, same trajectory — same hash, every time.
Every terminal on this page is captured output from the real
trvs CLI — nothing here is scripted. The world casts
fold worlds/alley.wrl over the TRVM engine; the eval, batch
and serve casts are recorded sessions over a packed Evidence Residency
environment, and each says so on its own bar. TRAAVIIS does not embed,
select, or route a model; the shipped world commands call none. The
same world always folds to the same identity and the same film; that is
the whole point.
$ git clone https://github.com/c-u-l8er/TRAAVIIS && pipx install ./TRAAVIIS
· not on PyPI · then trvs doctor · needs the TRVM/forge engine on-path
Or skip the install. As of 2026-08-09 the engine and the verifier ship
inside a bootable operating system —
T&R, a FreeBSD 15
distribution assembled from pkgbase. Boot an image the build pipeline produced,
touch nothing, and trvs is already on the path with the engine wired
to it. The native reducer is C, so a binary copied from a Linux workstation would
not run at all: the image build compiles it on a FreeBSD builder and ships the
result, which is why the guest needs no compiler and no package manager of its own.
That guest was created straight from the build pipeline's own image and never touched afterwards, and it derives sem-8ae91fe9cbc5fd08… for worlds/alley.wrl — the same string this page's other captures print on an Arch Linux workstation. What that is not: it is one implementation running on two operating systems, not two implementations agreeing on a semantics. It retires a hand-copying caveat and earns nothing beyond that. Carrying the stack is a build option rather than the default, and it costs the server image 364 MB → 625 MB, because pkgbase ships no interpreter and this is python.
Two researchers should be able to answer four questions and never argue about the answers: did we run the same world, the same scenario, the same trajectory — and did the verifiers agree? That is what a content-addressed environment is for. Reward is a computed number over a proven film, not a claim.
trvs id lowers the source to its canonical semantic graph
and hashes it. Presentation — where a node sits, its colour, the wire
curve — never enters the hash; a rotor or a
rewire does. Two files that mean the same world print the same
SemanticArtifactID; one meaningful edit and
the id moves. It is the world's fingerprint.
sem-… — the world's meaning, geometry-independent.
scen-… — the run inputs, deliberately kept out of identity.
the per-epoch evidence the deterministic fold produces.
trvs verify folds the world through the pure-Python
reference reducer, re-folds it through the
compiled native reducer, and cross-checks
both against an independent hand-written
oracle where that oracle's domain applies. A
film is not asserted — it is checked by every applicable verifier,
and the coverage is explicit. Golden Spinner agrees
3/3; a verifier that cannot apply is reported
not_applicable, never as pass or fail.
A film is content-addressed evidence. trvs replay re-folds a
world and, given a pinned --expect id or
--film hash, asserts the fold reproduces it —
exit 0 when it does, 1 when it drifts. trvs diff folds two
worlds and marks the first epoch where their films diverge. This is the
replayable-reward substrate an RL loop can gate on.
trvs inspect shows the lowered world: every actor with its
resolved static config, every edge with its kind, and any diagnostics.
The named rotor quarter_turn_z has already
become [181, 0, 0, 181]; the wires carry
their semantic kind. Nothing hides between your source and its identity.
trvs is a small, stable surface. Seven commands fold real
worlds over the TRVM engine; the rest of the eighteen shipped below are
the environment surface that turns a subject into something an agent can
be evaluated against. Its beachhead is trvs eval-one — a one-shot
evaluation of a single frozen subject. Nothing below embeds, selects,
or routes a model.
shipped commands are real over the engine today, and every command in this list is one. What is not yet built is named in the roadmap below rather than here — a published roadmap, not a claim.
A tool list tells an agent what it can call. It does not define tasks, splits, rewards, episode completion, or reset. So TRAAVIIS's internal contract is a neutral Episode Kernel — and public protocols are adapters over it, not runtime law. The Open Reward Standard is the first and primary adapter; MCP is a compatibility adapter; a local JSONL surface is for automation and debugging.
The kernel carries no substrate semantics; any verb may be unsupported. Evidence Residency v1 is one-shot and implements only start → finalize. For the TRVM profile, observe is a label-free projection and step advances the fold to an epoch boundary.
trvs serve pkg --ors --split all --output episodes/list_tasks · session ·
call_tool → reward · finished — over the neutral kernel.
Over Residency v1 that is exactly one tool,
submit_candidate: the client sends a finding and a
patch and nothing else, and finished: true is
returned only after the episode is staged, replayed, fsynced and
published. shipped
trvs serve pkg --mcp2026-07-28, the one that made MCP stateless: no
initialize handshake, no protocol-level sessions, and
cross-call state carried instead on server-minted handles
passed as ordinary tool arguments — which is what the kernel's
session-… already was. That mapping was found, not
designed. Resources are the content-addressed immutables
(trvs://env/…, trvs://task/…,
trvs://episode/{id}): reading one twice returns
identical bytes, which is what earns the long cache TTL —
so a session, being mutable and ephemeral, deliberately has no
trvs:// name at all. It speaks stdio, which has
no network surface to defend, and --mcp refuses
--host / --port /
--allow-remote rather than silently ignoring them.
There is no idempotency key, on purpose: a key passed as a tool
argument is written by a language model, and a key a model invents
makes double-execution merely look deduplicated — so a
repeat submission is refused, and the refusal carries the
episode_id plus a resource link. Navigable, not
replayed. It composes the ORS adapter rather than re-reaching the
kernel, so exactly one place decides what the server believes a
client did; no kernel change was needed.
shipped
Verbatim output, ids truncated to fit. The banner is the profile:
nothing is advertised that cannot be done, and the three interactive
routes exist only so they can refuse in the substrate's words
(KERNEL_OPERATION_UNSUPPORTED, HTTP 501) rather than as a
404 — a 404 would claim the endpoint is missing, which is a statement
about this server, not about the substrate. Everything is admitted
before the socket binds, so there is no arrangement of failures that
produces a listening server over a package that did not admit. The
default bind is loopback; leaving it takes --allow-remote.
The live end-to-end run recorded in the closure memo, ids truncated to
fit: a fresh scaffold, no fixtures, over real pipes. An MCP episode and
an ORS episode over the same candidate are the same
episode-…, because the thing that happened is the same
thing — and the last block is that episode replaying offline, with no
agent, no server and no protocol, to the same reward. On
compatibility, precisely what was run: a client written against the
wire for this server (~180 lines, importing nothing from TRAAVIIS).
No third-party MCP SDK and no Claude Desktop has connected.
Pagination is not implemented — a client that sends a cursor is
ignored rather than refused — and the framing is POSIX-tested only.
Strategy: do not compete with hosting catalogs. TRAAVIIS aims to be one of the best ways to author deterministic environments that export to them.
TRAAVIIS separates what a thing means from how it is shipped. The environment contract (env-…) fixes the subject, tasks, rewards, and splits; the outer package (bundle-…) carries presentation and docs and may change without moving env-…. Each layer answers exactly one question, and re-scoring a trace never pretends the behavior changed. The lowest rung is the substrate subject, sealed differently per substrate; everything above it is shared.
same subject? TRVM seals sem-… + scen-…; Residency seals snap-….
a reward rubric, and a task binding subject + prompt + reward + termination.
the observable record (TRVM's film-… is its exact-trace case), and the receipt.
the environment contract, and the transport package — identity vs. shipping.
The first job is not a trainer, and the first interface was not a batch —
it was a one-shot trvs eval-one over a single frozen subject.
Now that that is boring, trvs eval runs a whole split and
emits one episode-… per task. Because every episode is
verified and content-addressed, the numbers are reproducible and each
trace is re-checkable on its own, with no agent process.
Verbatim output, ids truncated to fit. The package is reopened and every
task-/rew-/snap- re-derived from
the bytes on disk before the first agent process starts, so a
tampered package costs zero episodes. eval mints no new id:
the ladder stops at env-…, so its
evaluation.json is an index over episodes that are each
already content-addressed.
ok and episodes kept are two lines because
they answer two questions: what the evaluation found, and
whether the evidence you asked for is still on disk. A run can be fully
ok and still have failed to retain its own proof — and a
score with no retained proof is not a result you can take away. The exit
code reads them in precedence: 0 all ok and all kept ·
1 ran and disagreed · 2 could not run,
or could not keep what was asked for.
The Spinner is the conformance artifact — exact, tiny, already folding three ways. Evidence Residency is the first end-to-end environment that shows what evidence-grade agent evaluation actually looks like. Two more worlds widen the surface after it lands.
The identity, replay and triple-fold tutorial. Installs, verifies, and reproduces byte-for-byte. Proof that the mechanism is real.
An agent inspects a frozen repository, finds one real spec/implementation inconsistency, cites the conflicting evidence, proposes the smallest patch, runs the declared checks — and returns a structured finding plus a re-verifiable receipt. The first evidence-grade evaluation environment.
Move objects, open gates, route signals, spend energy, obey safety constraints, complete deliveries — spatial state, long-horizon tasks, objective rewards, resets, splits.
An agent moves through a city and writes executable tags that alter surfaces, routes and permissions. It proposes graph edits; TRVM decides what they mean. The brand demo.
traaviis.com is the evaluation product; three siblings sit
beside it on the same domain. They are separate programs with separate
repositories — not editions of one another — and the seam between them
is the point of the section below.
trvs — evidence-grade environments for evaluating agents. Packs a subject into a content-addressed environment, folds one episode, and returns a receipt that replays with no agent in the loop.
The language a TRVM world is written in — actors, edges, world rules. A world's meaning is its hash. wrl.traaviis.com
The deterministic execution substrate and its Forge identity pipeline. Same world, same scenario, same trajectory — same hash, every time. trvm.traaviis.com
The open-source control plane for coding agents — many workers, each in its own git worktree under its own spending cap, and nothing merges itself. It is the stack's consumer, not one of its layers. code.traaviis.com
The boundary is frozen on purpose. trvs carries no world
semantics — it packages capabilities the layers below already provide,
for someone who does not know the internal history of TRVM. Everything
in this ladder is something TRAAVIIS stands on; code
is deliberately absent from it, because a consumer is not a layer.
trvs is a thin, honest terminal over an engine that already
exists. Its credibility comes from what it refuses to do.
trvs builds and proves environments. It writes no code, embeds no model, and is not a chat interface. Dispatching coding agents is code's job — a sibling property, and a consumer of this stack rather than part of it. The seam is the product: the thing being evaluated must not be the thing doing the evaluating.
TRAAVIIS does not embed, select, or route a model. The fold is deterministic; the reward is computed. Evaluation runs an agent command supplied by the user.
Worlds run locally. TRAAVIIS authors environments that export to hosting stacks — it is not the catalog.
WallRider worlds are deterministic agent environments, not a rendering or physics engine.
WallRiderLang defines a world; TRVM/Forge lower and fold it. trvs carries no world semantics.
Every film is checked by every applicable verifier and content-addressed. Disagreement is exit 1, not a warning.