How it works

Four ideas. No code, no SQL — you can understand Sandra completely without either.

1. A concept is a word

A concept is just a word Sandra knows: decision, impacts, blocks, mobile-app, Alice.

Each one has a stable identity. Every time anyone refers to impacts, they mean the same impacts — not a similar-looking string that happens to match. Concepts are the shared vocabulary, and everything else is built from them.

2. A triplet is a sentence

Three concepts in a row: subject, verb, target.

Bug #42            blocks           Release 2.3
Payment rewrite    impacts          mobile-app
Alice              decided          Payment rewrite
Release 2.3        supersedes       Release 2.2

That is the entire structure. Every fact in Sandra is a sentence of exactly this shape, and everything Sandra can answer comes from following these connections.

It looks almost too simple, and that is the point: because every fact has the same shape, you can walk from any fact to any related fact without knowing in advance what you are looking for.

3. An entity is a record

Some things need more than connections — they need content. A decision has a title, a date, a rationale.

An entity is a thing with fields:

Decision
  title:      Mobile app gets its own endpoint
  date:       2026-03-14
  rationale:  The shared endpoint returns 40× more data than the app uses

And it still participates in triplets, which is what makes it findable:

that decision   impacts       mobile-app
that decision   decided_by    Alice
that decision   supersedes    an earlier decision

Fields hold the content. Triplets hold the relationships. You need both.

4. A type is a category

decision, contract, convention, gotcha, open-question — these are types, and they exist so you can ask "show me every decision" rather than fishing through everything.

You do not define types up front. Creating the first entity of a kind creates the type. If your team later starts recording incident, that becomes a type the moment the first one is saved.

Putting it together

That is genuinely all of it:

Everything Sandra does — searching, listing, walking from one fact to related facts — is built from these four.

Why a graph rather than a document

Ask: "What breaks if we change the payment endpoint?"

A notes file can find documents containing "payment endpoint". Useful, but it is a text match — it finds documents that mention the phrase, and misses everything that is affected without naming it.

Sandra follows connections instead. Starting at the payment endpoint, it walks to what depends on it, then to what depends on that, and reports the actual blast radius — including the mobile app, which nobody thought to mention in the same sentence.

The same structure answers questions you did not plan for. Nobody set out to make "which decisions has Alice made that were later superseded?" answerable. It just is, because the connections were recorded.

The one thing that needs discipline

If one person records impacts, another records affects, and a third records impacts_the, then they have written three unrelated facts and none of the questions above work properly.

Keeping the vocabulary consistent is the single habit that decides whether a memory stays useful as it grows. It is short enough to explain in one page: Why naming matters.


Next: Connecting your agent.