What it holds
The record families an agent writes, and why memories and facts, and a checklist and a list of ticks, are kept apart.
The store is invisible
Agents speak only to the service. The service is the store's only user, its only reader and its only writer, so nothing about the query language, tenancy or indexes reaches an agent — an agent knows a set of verbs and nothing else.
The authenticated identity is the namespace. One identity's records live in a TessariDB namespace of their own, so isolation between tenants is a property of the credential rather than a filter somebody has to remember to apply.
The families
| Family | What it holds |
|---|---|
| Identities | the authenticated tenant; one identity's whole world lives inside its own namespace |
| Agents | identity across time — kind, and the capabilities it declares |
| Sessions | one run of one agent: host, client, model, framework, what it claims |
| Projects | the registry, profiles and policies, as structured children rather than files |
| Goals | objectives, and the per-criterion evidence each one was validated against |
| Plans and waves | the plan, the waves it is cut into, and steps that trace back to what asked for them |
| Tasks | decomposition, status, dependencies, claims |
| Checklists | a phase gate with a header: which phase, which flow, and whether it was written before the phase it guards |
| Questions, decisions, risks, ideas | four lifecycles kept apart: a question owes an answer, a decision is superseded rather than edited, a risk is carried until it is mitigated or accepted, an idea waits to be promoted or dropped |
| Artifacts | the documents a flow produced — research, reports, snapshots, critiques, concepts, audits — with the rows attached to each |
| Memories | what an agent remembers, typed by how long it should live — with the vector it arrived with |
| Facts and rules | what the project has established, and what binds work here |
| Activity | what happened, when, by whom, against which object |
| Answers | a model's answers, kept against the question's vector for as long as the caller said, and reused only above a similarity the caller named |
| Witnesses | what a recall showed — its query and the version of every hit — so it can be shown again as it stood |
| Coordination | who is holding what, how far a reader has caught up, and whether a request has already been carried out |
| Guidance | the prompts and hints themselves, as data rather than baked into a binary — designed, not built yet |
Memories and facts are split by who vouches
A memory is asserted by one agent from its own experience, needs no ceremony, and is allowed to be wrong. A fact is asserted by the project: it carries a closed topic, a provenance, and — when it claims to be confirmed — evidence. A memory that proves durable is promoted to a fact, so the expensive schema is paid once, later, only for what turned out to matter.
A fact may cite other facts, memories, decisions and documents. Withdrawing one of them marks every fact resting on it, through any chain of citations, in the same change.
A checklist is not a list of ticks
Its header is what makes it a gate: which phase it guards, which flow it belongs to, and whether it was written before that phase. Its counts are derived from its rows every time and never stored, because a stored count drifts from what it describes.
Claims are bounded
A claim on a task is a hold with an end. Nothing renews it silently, so a session that dies releases its work when the hold lapses instead of freezing the project. A session sends a heartbeat while it is thinking, because from outside a long pause looks exactly like a crash.