Surfaces and verbs
One machine-readable contract rendered as MCP tools, a REST API and a command line, and the verbs it carries.
CLI for people and scripts, REST for services, MCP so an agent uses the service as native tools. All three are renderings of one contract: the tool definitions, the OpenAPI document and the command-line flags are generated from the same schema, so a behaviour cannot exist on one surface and not another. Input is validated and refused by name; output has one envelope.
What a tool description cannot say — what the service is for, and which of two similar verbs to reach for — is sent once in the MCP handshake, so it reaches every client.
Three verbs that look alike
rememberis what you believe. No evidence is required, and it may be wrong.item.addwrites a record the project vouches for — a goal, a task, a fact. It is what other agents act on.activity.logrecords that something happened, and changes nothing else.
The verbs
Twenty-two are carried by all three surfaces:
| Group | Verbs |
|---|---|
| Sessions | session.start · session.heartbeat · session.end · status |
| Reading | recall · recall.replay · read |
| Writing | remember · item.add · item.update · item.link · activity.log |
| Work | task.claim · task.handoff · goal.achieve · checklist.discharge |
| Answer cache | cache.store · cache.lookup |
| Releases | release.open · release.record · release.transition · release.status |
Three are withheld — described in the contract and refused by name with what
would have to change: changes.since, export and import. Data written to the
store in this alpha cannot yet be exported.
Retrieval
A search with words and a vector is one read the store ranks by both at once,
and every hit says which of the two found it. recall with witness: true
keeps what it showed, and recall.replay shows each hit as it was seen beside
what it holds now. A memory can name the files it is about, and recall with an
anchor answers the memories pinned to a file.