Every notes app dies the same death: capture gets easy, filing stays hard, and six months later you’ve got a thousand-note landfill where a knowledge base used to be. The usual advice is discipline — file as you go, tag consistently, review weekly. That advice has never worked once in the history of computing. The fix that actually holds is the same one you’d apply to any other growing system: stop doing the filing yourself and make it a pipeline.
I’ve been running variants of this for a while now — my blog drafts literally start as timestamped quick-capture lines in an Obsidian journal that a script collects every night — and the pattern generalises to any vault. It’s three layers: capture with zero decisions, deterministic rules for everything predictable, and an agent for the ambiguous residue.
Capture is one keystroke, not a journey
Friction at capture is what creates the landfill, because the workaround for “too many steps” is “dump it anywhere.” The fix is a capture macro: one hotkey, a choice of four or five note types, and everything lands in a single Inbox/ folder. No folder decisions, no naming agonising. The note’s type applies a template so it’s born structured:
---
status: seed
type: research
created: {{date}}
---
# {{title}}
## Source
## Notes
## Next
Templating is the unglamorous half of this. A note that starts with frontmatter — status, type, created — is machine-readable on day one, which is exactly what the next two layers need. A note that starts as a blank page never becomes anything else.
Rules file the 80% that’s predictable
Most of what lands in the inbox is boringly predictable: Docker research goes to the Docker folder, client notes go to the client folder, travel stuff to Travel. An auto-filing plugin — AutoMover in Obsidian, a folder-action script, or ten lines of cron anywhere else — moves notes into their homes on rules: title keywords, tags, template type. Mine sweeps every ten minutes. If a note’s title contains “compose” or it’s typed research and tagged docker, it lands in the right place without me touching it.
Two hard-won rules about rules:
- Keep the list short. Every rule is a promise to maintain it forever. Past fifteen or so, you stop remembering what they do and start getting surprised by where notes end up. Surprise is failure.
- Write exclusions for anything sacred. Templates, attachments, and anything a script generates should be explicitly excluded from being moved. The first time a rule drags your template folder into Travel, you’ll understand.
The inbox is a queue, not a shame pile
Once capture is one keystroke and rules drain the predictable stuff, what’s left sitting in the inbox after a couple of days is meaningful data. It’s either genuinely ambiguous (belongs to two projects, or none yet) or junk (captured and already obsolete). Both are worth seeing clearly rather than burying in nested folders. An inbox that only ever contains the genuinely-unresolved is a triage queue you can actually act on — that’s a feature, not a failure state.
An agent for the long tail — proposing, not moving
The ambiguous residue is where a language model finally earns a spot in your note-taking. Plain Markdown means the whole vault is agent-legible: point one at the inbox, ask for a move plan, and get back a table of file → suggested folder → one-line reason. Have it flag likely duplicates and orphans while it’s in there. Then you approve the moves in one pass.
The key word is plan. The agent proposes; it doesn’t execute. Batch renames and moves are exactly the kind of thing models are confidently wrong about — close enough to right to look done, wrong enough to quietly wreck a vault you’ve spent years building. A nightly sweep that outputs a plan you skim in the morning gets you 95% of the benefit with none of the 3am regret. And since a vault of Markdown files is just a directory, put it in git first; then every automated action — yours or an agent’s — has an undo button.
Your vault is infrastructure — run it like it
Here’s the homelab framing that makes this click: an unfiled note is unlabeled config drift. A vault that feeds automations — journals that become blog drafts, project notes that become standup summaries — is a production system, and “I’ll organise it this weekend” is not an acceptable ops posture for a production system. Structure maintained by hand rots exactly as fast as structure maintained by nobody. Structure maintained by code — capture templates, filing rules, a scheduled agent sweep — is the only kind that survives contact with a busy quarter.
The goal was never a beautiful vault. It’s a vault that stays out of your way: capture takes one keystroke, the predictable files itself, and the only thing you ever touch is the small pile of genuinely interesting decisions. Build that once and the landfill never forms again.
Inspired by 3 free Obsidian plugins I use to automate my entire vault at XDA — a good walkthrough of the QuickAdd/AutoMover combo from the user side.

