Most of Aura’s life happens with the screen dark, in a pocket. The system’s presence there is a discipline: one knock a day, figures that stay honest on the lock screen, and an offline state that says so instead of pretending.
The knock
The team sends one notification a day — the morning brief, when the night’s work is ready to be read. Not one per event, not one per win. Urgent interruptions (something needs a yes before it expires, a source has gone quiet on a live figure) are the only exceptions, and each must name what it needs and cost one tap to resolve or park.
- Counted, named, finite. The knock says how many things happened and how many need you — a number the brief will honor exactly. No “you have updates”.
- No arrival theater. Work completing overnight is the product working, not news. It queues for the brief.
- Quiet hours are the owner’s. The knock respects the platform’s focus modes without pleading for exemptions.
The glance
Widgets and the lock screen get figures only under the serif gate (Law iv): a number renders in the serif when every component of it traces to a live source, and is withheld — not cached, not guessed — when a source goes quiet. A widget that shows yesterday’s cash position as if it were now is lying at a glance, which is the worst place to lie.
/* a widget figure is (value, sources[], asOf) — never a bare number */
sources all live → serif, present tense: "£4,180 this week"
a source is quiet → withheld: "Figures paused — Stripe quiet since 06:12"
stale but honest → past tense, dated: "As of yesterday, 9pm"Offline honesty
A PWA lives with bad signal. Offline, Aura keeps the last honest state, timestamps it, and splits the work: reading is free, acting queues. A yes given offline is a promise, and the surface says exactly that — “queued, sends when you’re back” — rather than a success it cannot yet claim. Nothing irreversible fires from a queue without having said it would.