description:"Shared Obsidian vault for human-agent collaboration. Use when: (1) Loading project context at session start (auto-recall), (2) Writing session summaries, decisions, project updates, or learning notes, (3) Searching for past decisions or project state, (4) Running nightly/weekly digest passes, (5) Creating or updating person profiles, (6) Any reference to 'the vault', 'shared brain', 'our context', 'what did we decide'. Triggers: m3ta-brain, shared brain, vault, session summary, decision note, project update, memory candidate, brain vault, auto-recall, digest, nightly pass."
compatibility:opencode
---
# m3ta-brain
Shared Obsidian vault — the persistent, compounding working memory between Sascha and all AI agents. Git-versioned, standard Markdown, works in Obsidian and Gitea.
For architectural or strategic questions, check recent decisions:
```
30-Decisions/INDEX.md
```
### Token budget
Cap auto-recall to ~2000 tokens of injected context. Summarize rather than dumping full notes.
---
## Workflow 2: Session End (Persist Learnings)
**When:** After substantial work — at minimum when explicitly asked, ideally proactively for any session that produced decisions, project changes, or learnings.
### Step 1: Write session summary
File: `60-Learning/sessions/YYYY-MM-DD-{slug}.md`
Use template `80-Templates/session-summary.md`. Fill all sections:
```yaml
---
type:session-summary
created:YYYY-MM-DD
updated:YYYY-MM-DD
session_date:YYYY-MM-DD
projects:[]
tags:[session]
---
```
Content sections: What We Discussed → Decisions Made → New Context Learned → Project Updates → Open Questions → Suggested Memory Candidates → Next Actions.
### Step 2: Create/update decision notes
If a clear decision was made during the session, create `30-Decisions/YYYY-MM-{slug}.md` using the decision template. Link it from the project card.
### Step 3: Update project cards
If project state changed, update the relevant `20-Projects/{project}.md`: Current State, Next Actions, Active Threads.
### Step 4: File memory candidates
If something new was learned about the user, a person, or a pattern — write to `60-Learning/inbox/YYYY-MM-DD-{slug}.md` with `status: draft`. These get reviewed in the digest pass.
**When:** Runs automatically every night at 3:00 AM as a cronjob. Can also be triggered manually.
**Cronjob ID:**`0b52e6f0eac8` (scheduled, delivers to Matrix)
**Autonomy level:** Full autonomous — may promote patterns, create decisions, update projects, mark stale, fix links, sync memory. Only reports the digest.
- **Promote**: if the candidate is confirmed and stable → move to `60-Learning/patterns/` or update the relevant `10-Preferences/` note. Remove from inbox.
- **Keep**: if still uncertain → leave in inbox with a `reviewed: YYYY-MM-DD` frontmatter field.
- **Discard**: if proven wrong or stale → move to `90-Archive/`.
If new stable facts were discovered that belong in Hermes internal memory (short, critical hot facts): update internal memory. Only for things that must be present at every session start. The vault is the detailed source, internal memory is the cache.
Rule: **m3ta-brain is the working context layer.** Research goes to Tech Wiki. Lore goes to Nemoti Wiki. Raw session history stays in session search. m3ta-brain holds the glue: decisions, project state, preferences, learnings, people.
---
## Multi-Agent Compatibility
This vault is designed for ANY agent (Hermes, Pi, OpenCode, Claude Code, Codex). Rules:
- No agent-specific assumptions in note content
- Agent identity stays in commit messages, not in note bodies
- Multiple agents may read/write — last-writer-wins via Git
- The vault is the single source of truth — agent-internal memory is a cache
- If another agent made changes, `git pull` before writing
---
## Pitfalls
- **Forgetting to pull**: Always `git pull --rebase` before reading or writing. The vault may have been updated by another agent or by Sascha from another device.
- **Using wikilinks**: `[[wikilinks]]` do NOT render as links in Gitea. Always use `[Text](relative/path.md)`.
- **Wrong relative paths**: Links must be relative FROM the source file, not from vault root. From `30-Decisions/X.md` to `20-Projects/Y.md` → `../20-Projects/Y.md`.
- **Overwriting drafts**: `00-Telos/`, `10-Preferences/`, `40-People/` are `status: draft`. Do not overwrite without explicit user confirmation.
- **INDEX.md drift**: When adding notes, update `INDEX.md` in the same commit. Stale indexes defeat the purpose.
- **Orphan notes**: Every note must be linked FROM at least one other note. Unlinked notes are invisible in the graph.
- **External wiki duplication**: Do not copy Tech Wiki or Nemoti Wiki content into m3ta-brain. Summarize and link: `[Tech Wiki: Nix CLI](/var/lib/hermes/wiki/concepts/nix-cli-migration.md)`.