An Astro skill · memory
Your agent forgets everything. This is where it writes it down.
A session ends and the reasoning goes with it: what was decided, why that approach and not the other one, which bug had which root cause. astro-brain writes that into the vault Astro currently has open, as ordinary notes and wiki-links, then repairs the graph it finds on the way out. It runs at the end of a task without being asked.
Ships with Astro, MIT licensed. Plain Markdown with a YAML header: no install step, no runtime, no dependency.
What it writes
Three notes, no narration.
Files, decision and why, root cause, open threads. No frontmatter, because Astro mints the note's identity itself and a hand-written header would collide with it. The vault watcher picks the file up live: no restart, no import step.
Session YYYY-MM-DD.md
One note per day, appended to. A section per task: what changed, what was decided and why, what broke and the root cause, what's still open. Never overwrites an earlier entry from the same day.
<Project>.md
The project the work actually touched. Status, decisions and known issues are updated in place, so the note stays a current picture rather than a growing pile.
Index.md
The hub. Every session note and every project note is linked from here, in the same pass that creates it. A note written without an inbound link is treated as a bug.
The coherence pass
A graph rots quietly. Every run cleans up after everyone.
Writing a note is the easy half. The other half runs every time, over the whole vault, whether or not this session caused the mess.
Broken links
Every [[target]] in the vault with no note behind it. Fixed by correcting the spelling or writing the missing note as a real stub, never by deleting the link. Deliberate ghost links, the ones the surrounding text calls out as unwritten, are left alone: Astro renders those on purpose.
Orphans
Notes nothing links to. They get linked from Index under the right heading. A note is never deleted to make an orphan warning go away.
Duplicates
Same or near-same title, the classic Session 2026-07-28 against session 2026-07-28. Merged into whichever has more inbound links, with every link that named the deleted title repointed.
A count, not a claim
Each run reports n links fixed, n orphans linked, n duplicates merged. Zero is a normal result and it says so: vault coherent.
How it reaches the vault
No path is written into any config.
First choice is Astro's own MCP server, added from Settings → Connections with one click per client. It resolves whichever vault Astro has open, on every call, so switching vault in the app just works. Without MCP it reads Astro's desktop config at the standard per-OS location. If that config is missing it does nothing and says so: it never guesses a vault, and it never creates one.
When it stays quiet
Silence is a correct result.
- The turn changed no files: a question, an explanation, reading code.
- The change is trivial: a typo, a formatting fix, a version bump.
- A run today already recorded this exact task. It updates that entry instead of adding a second one.
- The open vault is plainly about a different subject than the work. It says which vault was open and writes nothing.
- Secrets, always. Keys, tokens, .env contents and anything the repo's .gitignore matches never enter a note.
Written up, not benchmarked
No numbers for this one, and no invented ones.
Codger has published numbers because there were comparable projects to measure it against. Memory quality over months is a harder thing to score honestly, so this gets the same reporting skeleton with a description in place of a result: how it works, and every place it is judgement rather than measurement.