Guarantees

Rules the platform doesn't bend.

Moneypenny doesn't ask to be trusted — it shows its work. Every completed claim carries a command and its output; every layer stays swappable enough to survive its own vendor. The rest of this page is the receipts.

Evidence

Evidence or it didn't happen

Every completed claim requires a command and its output. Packet gates, message receipts, and attributed commits mean the system's history can be audited, not just believed.

TimeRecordReceipt
09:14TP-424 · email intake → triage UI · in-process · batch importer pendingcommit a91f3c2 · attributed · shape ✓ scope ✓ · tests ✓
11:47message → the studio machine · delivery ackthe sender saw it was read · receipt logged both directions
14:38TP-429 · cross-machine agent mesh · handledhandshake verified both directions · tests ✓
16:20TP-421 · single sign-on cutover · waits on youproof green · updated 2h ago · one signature needed

A completion that can't point to one of these doesn't count as done — it gets reopened.

Runners

Runners are swappable

The engine dispatches to pi, Claude, or Codex agents through one contract. Model economics change monthly; the platform doesn't marry any vendor.

channels triage engine board engine

where this sits — the swappable execution engine

pi Codex Claude ONE CONTRACT dispatch

Claude is plugged in this run and carries the verified stamp; pi and Codex sit on the same socket, dashed until it's their turn to rotate in.

Lane grammar

One grammar, every diagram

Three colors carry one meaning everywhere this system draws a diagram — the Switchboard, the Desk, and every schematic on this page.

Channels Triage Engine Switchboard VERMILION the inbound path TEAL the machine's path BRASS the Desk — where you decide
Vermilion — the inbound path Brass — the Desk, where you decide Teal — the machine's path

The color grammar on a real slice of the spine — not an abstraction. How to read these diagrams →

Eavesdropper

Listens so you don't have to

Channel watchers run continuously across every connected surface — classifying, extracting people and dates, and staging tickets before anyone opens a thread to look for them. All of it runs on your own hardware; nothing leaves the mesh.

auto-ticketstaged under a second after the message lands
inboundiMessage · sender resolved through the relationship graph, not just a phone number
resolved tolong-time friend · last thread 11 weeks back
ticket"Reply — weekend plans check-in" · thread context attached, two drafts ready

Nobody opened the thread to make this happen. Classification, entity extraction, and relationship context ran before the notification even cleared the lock screen.

Voice

How it talks

Three lines from the Desk. Every one is a hold or a draft — reversible, waiting on your word. Dry and sharp at the situation, never at you.

Dr. Reyes' office has moved this appointment twice. I've held the 9:40 slot, but they release it to the wait list at noon if nobody confirms.

— reschedule

The 6:40 to Heathrow has one car left before the surge doubles the fare. I put a hold on it — say the word or lose the seat.

— travel

The 2019 lease is three storage tiers down by now. I've already filed the retrieval request — deep storage runs on its own clock, so it lands when the archive gets to it.

— archive request

Honest about what's not here yet: no community around this, a handful of connected channels today. Self-improving is partly real today: a live eval-and-reward ledger measures real work, but the system doesn't yet generate its own skills, and nothing closes that loop on its own. None of that is hidden behind the pitch.