memory-protocollisted
Install: claude install-skill xsefirosus/sefi-agents
# Memory Protocol
The Obsidian-style vault is human-readable knowledge (`memory/`); machine bookkeeping is
`state/`. Never mix them. Obsidian recognizes only three built-in properties (`tags`,
`aliases`, `cssclasses`); every other key below is custom-but-queryable.
User instructions always override this skill.
All factual output follows the anti-hallucination skill: cite or mark UNKNOWN, never guess.
## Note frontmatter
Decisions (`memory/decisions/<slug>.md`):
```yaml
---
tags: [decision, <project-slug>]
aliases: ["<short name>"]
status: proposed | accepted | superseded
superseded-by: "" # path if superseded; append-only correction, never delete/rewrite the old note
supersedes: "" # path this note supersedes (on the new note)
decided: YYYY-MM-DD # Obsidian has NO built-in created/modified frontmatter -- use custom keys
updated: YYYY-MM-DD
tier: trace | policy | fact # confidence/recurrence axis
scope: session | project | user # who/how-long axis (session=daily/expiring, project=vault-local, user=durable operator facts)
keywords: comma, separated, terms
related: "[[other-note]]" # QUOTED -- [[ is YAML-special; unquoted is invalid YAML
handoff-to: "" # agent slug if this write is also a handoff
managed-by: sefi-agents
---
```
Daily (`memory/daily/YYYY-MM-DD.md`), lighter:
```yaml
---
tags: [daily]
date: YYYY-MM-DD
tier: trace
scope: session
topic: <topic-slug> # enables the Bases groupBy promotion view