Governed capability runtime. Value loop: discover → execute → trace. The agent proposes; the runtime decides.
Traverse governs portable business capabilities — pricing, eligibility,
authorization, escalation — as contracts with sandboxed artifacts and a
verifiable trace. Usual authoring is skill-first plain English via
traverse-capability-author
(interview → registry check → contract → WASM → human-reviewed PR). You do
not need to write Rust for that path; manual authoring still uses
Rust→WASM under the hood.
One shared runtime.wasm. Browser, native desktop, CLI, and MCP are
clients / embedders, not different Traverse runtimes. Shipped consumers
today: JS/TS (traverse-embedder-web), Rust (traverse-embedder), agents via
traverse-mcp. Web loads the bundle's digest-checked runtime/runtime.wasm;
the Rust embedder links traverse-runtime natively and ships no separate
runtime-WASM artifact — same contract/ABI
(Q&A).
Python works by shelling out to
traverse-cli capability-package execute — no Python SDK. Swift (xcframework
on swift-host-v* releases), Kotlin (Maven Central
com.traverse-framework:traverse-embedder 0.16.2), and .NET (nuget.org
TraverseEmbedder 0.16.2) are published, pre-1.0, and not Certified. Edge is
planned; cloud placement is an explicit non-goal for v0.1. Cite
what is real today and
Platforms before assuming a
host.
Specs and CI gates stay in Governance below — honesty hygiene, not the pitch. Working implementation of Universal Microservices Architecture.
- What is real today
- The agent freestyled a $2.4M wire. The runtime said no. (deny + trace)
- Deny / multi-host direction (blog-first): agent freestyle → blocked
· same-wasm multi-host
· signed exact-ref digits
· agent MCP exact-ref
· catalog model.execute
· agent + real traverse-mcp
· one audit fingerprint, every host
· v0.16.0: same input, same output, on every host
· one model capability, three published hosts, same answer
· How do I run the deny demo?
—
weekly-demosis not publicly cloneable yet (.github#30) - Where business logic lives (hosts stay thin; non-UI domain logic in capabilities; apps-not-ready ≠ host-forever): Q&A · blog
- Print-support domain pack (living pack; none of
print.*published yet; apps-not-ready ≠ no packs): Q&A · blog - Published capability versions are never edited (deprecate / revoke instead): blog · Q&A
- Model rights are data, not a README: blog · Q&A
→ traverse-framework.com ·
llms.txt ·
start here ·
start in traverse
| Repo | What it is |
|---|---|
traverse |
Core runtime, CLI, contracts, and MCP surface. Discover a governed capability → execute known behavior → produce a trace. Latest release v0.16.2 (Nov 4, 2026; additive patch: application manifests can invoke a declared host connector, Q&A, announcement). v0.16.1 (Nov 3) made catalog model.execute@1.0.0 run on the published Browser and Node packages (proof Q&A, announcement). v0.16.0 (Nov 2) had four breaking changes (upgrade guide). All six crates are on crates.io at 0.16.2 (traverse-contracts, traverse-runtime, traverse-embedder, traverse-cli-rs, traverse-mcp, traverse-expedition-wasm; published Nov 4; Rust ≥ 1.95). The shared runtime.wasm is a release asset on runtime-wasm-v0.16.2 (Q&A). Release story: same input, same output, on every host. The separate traverse-registry client crate is 0.31.0 on crates.io. |
registry |
The public capability registry — a git-based, PR-published catalog of governed capabilities. Live catalog: registry.traverse-framework.com (counts change; treat the site as source of truth). |
reference-apps |
UI shells for the same Traverse capabilities: Web, macOS, iOS, Android, Windows, Linux, CLI, plus MCP façades for Claude, Cursor, ChatGPT, and Grok. |
claude-skills |
Claude Skills for building on Traverse — primary authoring on-ramp (traverse-capability-author), plus extractor and workflow-planner. Check the registry before authoring; validate against the real CLI. |
weekly-demos |
Runnable weekly demos (private). Start with 2026-09-18-agent-blocked — agent freestyle → deny / trace. |
website |
The public site and documentation. |
.github |
(this repo) Org-wide governance — constitution, NFRs, quality standards, CI gates, CLA, and AI-agent hardening rules shared by every repo above. |
repo-template |
Starting point for a new org repo — compliant with governance from the first commit. |
Platform reach: five embedder SDKs on one embedder-api/1.0.0 contract and
one CI conformance suite — Rust and Web/TypeScript published (crates.io /
npm traverse-embedder-web@0.16.2); Swift (iOS/macOS, wasmi) via
swift-host-v* release assets (currently swift-host-v0.16.2; the v0.16.2 tag's Package.swift pins swift-host-v0.16.1, and main pins swift-host-v0.16.2); Kotlin
(Android, Chicory) on Maven Central com.traverse-framework:traverse-embedder
0.16.2; .NET (Windows, Wasmtime) on nuget.org TraverseEmbedder 0.16.2. All
three natives are published, pre-1.0, and not Certified under Spec 529 (no host
is Certified yet). Signed exact-ref model packages now run on every embedder
(Rust, browser, Swift, Kotlin/Android, .NET) with model rights enforced on
every host. Apple hosts can opt into a signed Core ML variant under the same
policy and evidence rules. Governed-path iPhone evidence shipped in v0.16.0
(traverse#1630):
BirdNET on one iPhone 14 Pro Max at p95 141 ms per 3 s clip on Core ML
(needs manifest schema 2.3.0, new in v0.16.0).
Edge is planned; cloud placement is an explicit non-goal for
v0.1 — see Platforms.
| Surface | Status |
|---|---|
| JS/TS | Published npm traverse-embedder-web@0.16.2 (catalog model.execute via activateMediatedConnector + submitAsync) |
| Rust | Published crates.io traverse-embedder@0.16.2 (Rust ≥ 1.95) |
| AI agents | traverse-mcp v0.16.2 released: prebuilt binaries for four targets with SHA256SUMS and build-provenance attestations on traverse-mcp-v0.16.2 — no Rust needed (traverse-mcp sync, prepare-cache, stdio --cache; setup). stdio, own line-delimited command protocol. The catalog_load_failed fix (#1720) and binaries (#1721) shipped in v0.16.0. crates.io traverse-mcp 0.16.x carries the same fix; 0.15.0 can't start outside a checkout (Q&A) |
| Python | Works today by shelling out to traverse-cli capability-package execute — no Python SDK |
| Swift | Published xcframework on swift-host-v* releases (currently swift-host-v0.16.2; the v0.16.2 tag's Package.swift pins swift-host-v0.16.1, main pins v0.16.2); pre-1.0, not Certified |
| Kotlin | Published Maven Central com.traverse-framework:traverse-embedder 0.16.2; pre-1.0, not Certified |
| .NET | Published nuget.org TraverseEmbedder 0.16.2; pre-1.0, not Certified |
The same business rule now has to run in a web client, on a server, and inside an AI agent a user is talking to — and teams often invent a fourth copy for each new host. Copies drift; behavior stops being one thing. Traverse’s answer is one governed capability on the hosts that have actually shipped (not an unbounded “anywhere,” and not cloud orchestration). Before v0.16.0, hosts didn't agree on the exact input bytes they handed a capability, so input-hashing outputs could differ across host types. v0.16.0 fixes this (every host feeds RFC 8785 canonical JSON input; a breaking change) (#1722, write-up; rerun on the v0.16.0 release packages: same input, same output).
AI coding agents make this sharper: an agent asked to "add the discount logic" re-derives it from scratch every session — unversioned, unreviewed, and authoritative only because it ran last. Traverse's position is the opposite: a capability is a contract, an immutable version, a signature, and a WASM artifact; the runtime validates inputs/outputs against schemas, isolates execution in a sandbox, and emits an auditable trace. The agent's job is to find and compose existing capabilities — not to be the source of truth for what the business does. The public registry already holds dozens of them, so that logic is a lookup, not a regeneration.
Specs and CI gates are how we stay honest — not the product. Approved specs are versioned and merge-gating; contracts are the source of truth for runtime behavior.
See constitution.md for the full rules,
GOVERNANCE.md for the ownership and decision model, and
each repo's own CLAUDE.md / AGENTS.md for what's specific to it. One CLA
signature covers every repo in the org.