NOVA
An on-device agent architecture, and an honest account of why it was not shipped.
The short version
Its own architecture review concluded that the model is not the product — the harness is — and that the agent’s core guarantee was hoped for in a prompt rather than enforced in code.
No public capture
A working multi-module codebase plus thirty-six documents, including a ten-part architecture review. Deliberately not shipped: the review concluded the enforcement model was not sound enough to put in front of anyone.
How NOVA works
A Kotlin multi-module Android agent that plans, acts on the device and verifies the result, together with a research corpus arguing at length — and against its own author — about what such a system would have to become before it could be trusted.
The problem
A phone assistant that can actually operate the phone has to be trusted with outward actions — sending, deleting, paying. Trust has to be structural, because one confident hallucination on an outward action is unrecoverable.
The architecture
Gradle multi-module with deliberately platform-free boundaries: core, planner, memory and the tool API contain no Android dependencies at all and are unit-tested in isolation. Voice, model providers and Android integration are separate modules behind interfaces.
The interesting decision
Verify-don’t-assume actuation — real machine verifiers read device state back after an action rather than trusting the model’s report — plus a deny-first confirmation parser and a no-retry rule on anything outward-facing.
What it does now
The architecture review is the deliverable. It identifies that success was being accepted on the model’s word, that memory was a five-hundred-row log with no consolidation, and that building on the accessibility layer was a strategic dead end — then argues for a channel hierarchy instead.
Worth knowing
- Platform-free module boundaries — the portable half of the system genuinely does not import Android.
- Verifiers read device state back after acting, instead of accepting the model’s claim of success.
- Deny-first confirmation parsing and a no-retry rule on outward actions.
- The review is written against its author’s own work: "assume the current architecture is wrong until proven correct".
- Not shipping was the finding, and it is recorded as one rather than as a pause.