Truth maintenance.
A graph that only grows becomes wrong. Team0’s World Model re-reads itself continuously and retires what stopped being true, without ever deleting it, and without letting a model make that call alone.

Events accumulate. States are replaced.
The most important distinction in keeping a model true is between things that happened and things that are.
“Dana met Arun on Tuesday” is an event. Another meeting on Thursday does not make Tuesday’s meeting untrue, so events are never superseded by other events. “Dana is Head of Product” is a state. When a later, authoritative statement says she is now VP of Product, the earlier state is replaced and kept in history, and the change is recorded in a feed of what changed.
States that can be replaced are declared explicitly: role, employer, status, location, key dates and a few others. Supersession also respects the two clocks. A statement that arrives late but was said earlier than the current belief is stored as already superseded, so reading your mailbox in the wrong order never flips the truth back and forth.
What keeps the graph true.
Several independent mechanisms decide that something is no longer current. Each has one job and one kind of evidence.
- State supersession
- A newer value of a single-valued relationship or typed attribute replaces the older one as it is written.
- Reinforcement, not duplication
- The same statement heard again strengthens the existing one instead of creating a copy. Money uses exact transaction keys, never wording, so two similar receipts stay two orders.
- Deadline expiry
- A dated item long past its date with nothing newer about it is retired by date arithmetic. No model involved.
- Events that are over
- A calendar-sourced item whose date has passed is over, not overdue, and stops being presented as open.
- Promises kept by someone else
- When newer evidence shows another party delivered what they promised, the open promise is closed.
- Tasks that closed
- When a tracked task reaches a terminal state, the statements exactly linked to it are retired by identity. A guessed match between a task and a promise never closes anything on its own.
- Cancelled meetings
- A meeting cancelled in the calendar retires what depended on it.
- Your corrections
- Rename someone, say an outcome happened, retract something, or say two things are the same. The correction propagates to everything built on it.
- Open loops
- Promises and requests are reconciled against later evidence, and a request answered later stops showing as waiting.
When the evidence conflicts, Team0 asks.
Sometimes two current statements disagree and no rule can decide which is right. Team0 doesn’t pick one silently.
- 01Conflict detectedSame record, same attribute, a genuinely different value, with no model involved.
- 02Held as contestedBoth statements stay visible and are recorded as a contradiction to resolve.
- 03You are askedAt most one “which is current?” question a day, so it never turns into homework.
- 04Settled for goodYour answer retires the loser, entrenches the winner as your own statement, and is remembered.
The laws every mechanism obeys.
New mechanisms are added to the system over time. These rules don’t change, and a mechanism that breaks one is a bug.
- 01
Never delete
A verdict marks a statement retired and, where something replaced it, points to the winner. The statement stays. Every retirement is reversible.
- 02
Every verdict is typed and attributed
Each retirement records who or what decided it and why: a deadline passed, the owner corrected it, a task closed, a newer state replaced it. An untyped retirement cannot be audited, so none exist.
- 03
One owner per kind of thing
A promise that is tracked as a task is closed by the task, and the graph mirrors that. Two mechanisms never fight over the same statement.
- 04
The model proposes; code decides
Where a model judges two statements, it must answer from a closed set of verdicts and defaults to doing nothing. Code decides what each verdict does. Model confidence was measured, clustered uselessly, and is never the decider.
- 05
Supersession keys on identity and type
A statement replaces another only through a single-valued relationship or the same typed attribute of the same record. Similar wording is used for deduplication, never to decide that something is no longer true.
- 06
A retirement survives re-ingest
When the same email is read again next cycle, a closed statement stays closed rather than quietly reopening.
- 07
Your corrections outrank everything
Something you pinned or corrected is exempt from automated deduplication, supersession and retirement. No later automated write can flip it back.
- 08
Dry run before you write
Every mechanism that retires beliefs ships in measurement mode first, logging what it would do. It only starts writing once its proposals hold up.
What is still in measurement mode.
Closing a promise is the most consequential judgment the graph makes, so the mechanisms that do it prove themselves before they write.
Two closers currently run as proposals only: closing a promise because you said it was handled, and closing a promise because a task that seems to match it completed. (A task exactly linked to its promise closes it directly.) An audit in August found cases where a promise with several parts was closed when only one part was done. Both went back to measuring, and they stay there until their proposals replay cleanly against real history. Until then, those promises stay open and visible.
- OverviewThe World Model
- Data modelStatements, two clocks, belief lanes
- Entity resolutionOne person, one record, carefully
- Trust and scopeWho said it, who may see it
- Understanding EngineFrom graph to a read an agent can use
- Memory vs understandingWhat a memory layer does, and what understanding adds
- The 31 problemsEverything you have to solve, in one list
Your agents will change. Your understanding shouldn’t.
Invite-only private beta.