Individually, memories are notes. Linked, they're a graph you can walk - which is what turns a pile of decisions into something an instance can reason across.
Wikilinks in the body
Write [[Another memory's title]] anywhere in a memory's body and Kythene turns it into a real edge in the link graph when the memory is saved.
"Remember for
platform: our retry policy is exponential backoff capped at 30s. It depends on [[Deploy runbook]] and supersedes [[Old retry note]]."
Links are re-parsed every time a memory is written or superseded, and the memory's previous outgoing links are cleared first - so editing the body keeps the graph in step instead of leaving orphaned edges behind.
The same [[Title]] syntax also links between published documents, not just memories - a document can point at a sibling in its collection, another collection, or a memory. That's covered in Publishing; this page is about the memory graph specifically.
Links resolve leniently
An unresolved link is skipped rather than erroring, and Kythene tries hard to resolve one before giving up:
- an exact title match, preferring one in the same project,
- then an exact title anywhere in the workspace,
- then a case-insensitive title match,
- then a slug match - so
[[deploy-runbook]]finds "Deploy runbook".
That last one is what makes an imported vault of [[wikilinks]] connect up rather than landing as dead text, even where notes were retitled on the way in.
Aliases extend this. Give a memory extra names when you write it and any of them will resolve. The usual case is the original filename of an imported note, so old links keep working after a rename.
Explicit links
You don't have to put the link in the prose. Your instance can add or remove an edge directly:
"Link the retry-policy memory to the deploy runbook."
kythe link <from-memory-id> <to-memory-id>
kythe unlink <from-memory-id> <to-memory-id>Useful when the relationship is real but you don't want a sentence about it in the body.
Backlinks and hubs
A memory's page shows both directions: what it links to, and what links to it. Backlinks are derived, so they appear without anyone maintaining them.
The workspace overview surfaces the most-referenced memories - the ones the rest of the graph leans on most. It's a decent proxy for "what does this team actually run on", and a good place to point a new joiner's instance. Only memories you can actually open are counted, so a private note never shows up as a hub for someone who can't read it.
Near-duplicates
Write enough memory and you'll write the same thing twice. A memory's page lists similar memories - other notes ranked by full-text similarity to this one. The list is advisory and deliberately generous: it would rather show you a weak candidate than hide a real duplicate.
Merging is just deprecation with a pointer: keep the better memory, deprecate the other one naming its replacement. Recall stops surfacing the loser, the trail stays intact, and nothing is destroyed. See Memory.