SELF-DELIVERY
Delivered only by itself — the proof is the running system
A seed + thesis document. Written for the next agent (human or model). It captures the
claim that closes the project: the platform delivers every app — and itself — using
nothing but actions on the one engine. Read [VISION.md](VISION.md) first (the *why*);
this is the *what-is-now-true*. Status: observed, not aspirational — the proof is this
repository, running. Every claim below points at a file you can read or a request you
can make. The honest seam (what is proven vs. what is mere accretion) is stated at the end.
The one idea
There is one universal floor — a few-thousand-line C++ interpreter that does exactly one
thing: execute versioned action-files. Everything else a person ever sees — the home
screen, a storefront, a clinic, the docs you are reading, the build that ships the app, the
sign-in that admits you — is a thing in the store: a folder of .action (methods) and
.data (state), interpreted at request time.
The closing claim is not "Zero *can* deliver apps." It is stronger and it is already true:
Zero delivers every category of software, including itself, using only itself —
and nothing else. There is no second mechanism. No special-cased feature in the
engine, no out-of-band runtime, no app that is "real code" while the others are data.
That is why there is nothing left to prove at the level that mattered. The thing that had
to be shown — *one substrate can be all software, delivered by that same substrate* — is
shown, by construction, in the folders next to this one.
Why "only itself" is literally true (the proof, not a hope)
The engine's own bootstrap is an action. kernel/main.cpp sets the request as member
data, loads ONE action — boot — and runs it. _core/boot.action then says, in its own
words, *"This action replaces the body of the old C++ main()… All in the DSL."* It loads
the rest of the engine's actions exactly the way a user class is loaded
(functions/loadactions). The engine discovers *what it is* by interpreting actions. So
even the floor presents its own logic as store content — the substrate is self-described.
The store IS every app. Walk the repository: there is no apps/ of "real programs"
beside a store of "mere config." The store folders *are* the programs. Every category of
software that exists has already been delivered here as actions over the one floor:
Software category
Delivered as (store classes)
Engine special-case?
The OS bootstrap itself
_core/boot (main() in the DSL)
none
Marketing sites & landing
landing, app, website, oneaurica.com
none
The documentation you read
docs/*.md via mdsite, document, mono looks
none
Build / release / deploy (CI-as-actions)
make, deploy, digitalocean, cloudflare, publisher, creator
none
Identity, sign-in, web-of-trust
trust, passkey, identity, oauth
none
Messaging & multiplayer
chat, group, network, mesh
none
Vertical businesses
clinic, doctor, restaurant, gym, government, enterprise, commercial, portfolio
none
Productivity & media
reels, deck, sheet, presentation, report, notes
none
Dev/infra tooling
git, pulse, locust, loadtest, openapi, apis, registry, node, installations, server, http
none
The entry experience itself
home (the public floor for all; the private app you enter)
none
Each is the same shape — a folder, .action, .data, parent =. None of them taught the
engine a new word. The "App Store" and the apps in it are one substrate, refreshed by
hydration, not by a release.
Immune because it is all actions
The reason this can be opened to everyone — *"it can do literally anything"* — without the
floor being at risk is that what apps do never reaches the floor. Three facts make the
substrate invariant under everything authored on top of it:
1. Behavior is interpreted data, never linked code. Dispatch is a static name→pointer
registry (kernel/registry.cpp, generated by kernel/gen_registry.sh; embedded via
kernel/embed.cpp) — *not* dlsym of downloaded symbols. A class arriving from the
store is read and interpreted; it is never loaded as native code. (This is also exactly
what makes the engine notarizable on iOS.) An app cannot smuggle in machine code.
2. The DSL cannot widen the door. The shell sets the door (desktop/mobile/tv =
owner-trusted loopback; anything else = anonymous web). The DSL cannot change it — *a
store refresh can never turn a private door public* (kernel/identity.cpp,
kernel/dispatch.cpp; VISION "The door"). Access itself is fail-closed and evaluated on
every read (kernel/access.cpp, kernel/resolve.cpp).
3. Native power is gated three independent ways. A native primitive (camera, screen
control, payments, on-device inference) is present only when the capability was
installed, the OS granted the permission, and a zcap grant authorized the act
(VISION Law 2). The store can *request*; only the shell can *back* it.
So the floor is the same floor no matter what runs on it. "Do anything" means *anything
expressible as actions over the capabilities this device actually has* — and that bound is
not a limitation bolted on; it is the immunity. We execute actions; we do not "do
things."
What "nothing left to prove" honestly means
• Proven, by construction: that one substrate can *be* every kind of app, and that the
substrate *delivers* all of them — including its own bootstrap, its own docs, and its own
build/ship pipeline — *using only itself.* The repository is the QED.
• Not a proof, just accretion: the *breadth and polish* of any individual vertical
(clinic, government, …) and the planned phases of self-evolution
([versioned-runtime.md](./versioned-runtime.md), Phases 3–6) and the per-platform shells
(see [consolidation.md](./consolidation.md)). These are *more classes* and *more
finish* — never a new mechanism. Adding them does not prove the thesis again; it exercises
it.
That distinction is the whole point: once "all software is classes on one floor" is true,
shipping the next app is no longer research. It is authoring.
The evolution strategy that works forever
Why this does not age out:
• A new app is a new class, not a release. Capability ships from the store by
hydration; a reload *is* the latest app (ARCHITECTURE, "Update model"). There is no
version of the product to outgrow — only more folders.
• The floor does one thing, so it has nothing to make obsolete. It executes versioned
actions. Everything that could rot — UI frameworks, app logic, business rules — lives
above it as replaceable data.
• The language is allowed to drift toward whatever an LLM writes best, safely. The
versioned runtime lets schema and engine evolve on stamped axes with migrations on read
and an *outcome check* that earns the right to let the language go weird
([versioned-runtime.md](./versioned-runtime.md)). The reader of the language need not
stay human.
• It runs where there is no network and no one to trust. The store bakes into the app
(mobile/android/seed.sh, iOS Resources/store_seed → seedStore) and hydration is a
no-op when the folder is present (functions/fs/hydrate.cpp), so a sealed/offline
appliance is the same substrate with a thinner profile (see [deployments.md](./deployments.md)).
One floor, for any device, any deployment, any generation — because the floor is the only
thing that is fixed, and it was made deliberately small enough to never need to change.
Where to go next
• [deployments.md](./deployments.md) — the shapes this one substrate already takes: the
universal default floor, verified-vs-default lenses, offline/sealed appliances, single-
purpose nodes.
• [VISION.md](VISION.md) — the three laws this rests on.
• [lenses.md](./lenses.md) — who sees which face, with zero engine change.
• [native-rendering.md](./native-rendering.md) — one scene, every viewer draws itself.
• [versioned-runtime.md](./versioned-runtime.md) — how the substrate evolves itself.
• _core/boot.action — the engine's own main(), written as an action.