Skip to main content

Ledger + zv1

A decision memory only compounds if recording is nearly free and recall is automatic. That's what zv1 adds: the assistant can write to the Ledger from the conversation where the decision actually happened, and read from it in every conversation after — including the ones where you're about to repeat a mistake.

Recording from chat

Decisions rarely happen inside Ledger — they happen in the conversation where you're changing a flow, reading an eval, or talking through a call you just made in a meeting. Tell zv1 and it drafts the entry:

"Record this: we're shortening the triage prompt to the three routing rules. We expect the Caliper eval to hit at least 85% accuracy within two weeks."

zv1 shapes that into a decision entry — summary, rationale, the structured expectation bound to the eval — and shows it to you as an approval card before anything is written. Every Ledger write goes through approval: you see exactly what's about to enter the permanent record, and nothing lands without your yes. Same flow for settling: when you tell zv1 the evidence is in, it proposes the settlement with the lesson drafted, and you approve it.

It also works in the other direction — when you state something durable in passing ("turns out the nightly export lands at 2am, everything downstream is day-fresh at best"), zv1 can offer to capture it as an observation, so facts that would have evaporated in chat scroll end up in the record.

Recall — "what did we decide about X, and were we right?"

Ask, in any tool, and zv1 reads the record:

"Have we tried changing the triage prompt before?"

It lists the prior entries, how they settled, and cites them by id — so the answer comes with receipts. And it consults before acting: when you ask zv1 to change something, it can check the Ledger for prior attempts touching the same Compass pages first, and lead with "two earlier attempts at this regressed accuracy — here's what settled." That's the moment the memory pays for itself.

zv1's own expectations

The strongest habit: when zv1 proposes a change and you approve it, have it record the decision with its own pre-registered expectation in the same breath. The assistant stakes a claim about what its change will do, and the eval settles it later — right or wrong, on the record. An assistant whose suggestions carry settled track records is one you can calibrate your trust in; one whose suggestions vanish into chat history is not.

MCP tools

Ledger has no REST API — the programmatic surface is the MCP server, the same tools zv1 uses. With a token carrying Ledger scopes, any MCP client (Claude Desktop, Cursor, your own agent) gets:

Read (ledger:entries:read):

ledger_entries_listread

List entries, filterable by status, kind, origin, or the Compass page they touch. The consult-before-acting query.

ledger_entries_getread

One entry in full — all six fields, attached evidence, and the supersede chain.

Write (ledger:entries:write):

ledger_entries_createwrite

Record a decision, lesson, or observation. Runs through the approval envelope — the model proposes, a human confirms.

ledger_entries_settlewrite

Settle an open decision with its lesson. Also approval-gated, and refuses cleanly if the entry already settled — settlement happens once.

Superseding is deliberately not exposed to models. Overturning recorded history is a human-only move — an agent can propose that an entry looks outdated, but only a person can replace it.

4 min read