Why naming matters

This is the shortest page here and the most important. Skipping it is how a memory becomes a junk drawer.

The problem

Sandra connects facts using verbs: impacts, blocks, supersedes. If everyone uses the same verbs, you can ask real questions. If they do not, you cannot.

Imagine three people record the same kind of fact:

Payment rewrite    impacts        mobile-app
Auth change        affects        mobile-app
Cache fix          impacts_the    mobile-app

Now ask "what impacts the mobile app?" You get one answer out of three. The other two facts are in there, correctly recorded, and effectively invisible.

Nothing broke. No error appeared. The memory just quietly stopped being trustworthy — which is worse, because you will believe the incomplete answer.

The rule

Look before you invent. Before using a new verb, check whether one already means that. Reuse it if so.

This is a habit you ask of your assistant, and it is the single instruction most worth putting in your project's CLAUDE.md. Sandra makes it possible — there is a tool for exactly this check — but it cannot enforce it.

Keep verbs generic

Put the specificity in the target, not the verb.

Instead of Use
impacts_mobile_app impacts → mobile-app
blocks_release_23 blocks → Release 2.3
decided_by_alice decided_by → Alice

A generic verb works everywhere and grows a useful set of answers. A specific one is used once and answers exactly one question.

Rule of thumb: a verb you will only ever use once is probably wrong.

Store vocabulary in English

Even if your project runs in another language. Verbs, labels and type names in English; the content — titles, descriptions, notes — in whatever language you work in.

This is not about preference. It keeps one vocabulary rather than two, and AI models reason more reliably over consistent English relationship names.

Decision
  title:  Le paiement passe par un nouvel endpoint     <- your language
  ...
that decision   impacts   mobile-app                    <- always English

A starting vocabulary

Most teams need fewer verbs than they expect. A workable starting set:

Verb Meaning
impacts a change affects something
blocks one thing prevents another
supersedes this replaces an earlier thing
decided_by who made the call
provided_by / consumed_by which side of a contract
belongs_to_module which part of the system
relates_to a catch-all, used sparingly

Add more when you actually need them, not in advance.

If it has already gone wrong

It is recoverable. Duplicate concepts can be merged, so affects and impacts_the can be folded into impacts and the facts recorded under them are preserved. Better to notice at fifty facts than five thousand.

Merging is deliberately not something an agent can do. Ask whoever runs your Sandra to run:

php artisan sandra:concept:merge affects impacts

It prints what it is about to move and asks for confirmation first. The merged-away word stops existing for everyone sharing the graph, and re-running does not undo it — which is exactly why a person decides rather than an assistant.


Next: Recipes.