The vault is not the hard part. The hard part is the pile of untitled notes that never get a home. This workflow gives every note the same path, and a moment where I have to decide.
on "title"
→ inbox/YYYY-MM-DD_title.md
→ Space on, set the tag, Space of
→ obr, read the inbox
→ Space ok (keep → jarvis/)
Space odk (delete)
→ og
→ notes/<first-tag>/New notes never go straight into notes/. They sit in inbox/ until a review. Kept notes sit in jarvis/ until og sorts them. notes/ is only for notes that survived both steps.
1. Capture
From anywhere, with OBSIDIAN_DIR set:
on "Note Management Workflow"on turns spaces into dashes, prefixes today's date, writes the file under inbox/, and opens it in Neovim:
inbox/2026-10-31_Note-Management-Workflow.mdThe file is empty. That is intentional. Capture and shaping are separate. If I only have a title, I stop here and come back at review.
2. Shape the note
In the Neovim buffer, Space on inserts templates/note.md and removes the blank line the template command leaves at the top. The buffer then looks like this:
---
date: 2026-10-31
tags:
- fact
hubs:
- "[[learn-anything]]"
urls:
-
---
# 2026-10-31_Note-Management-WorkflowThree edits matter before the note leaves the inbox.
The first tag is the folder. og reads only the line after tags:. blog files into notes/blog/. vim files into notes/vim/. Extra tags are for search inside Obsidian. They do not change the destination. A missing tag means og skips the file and leaves it in jarvis/.
Hubs are links, not folders. [[learn-anything]] and [[work-smart]] are how related notes find each other in the graph. They are not part of the filing script.
The heading is cleaned with the cursor on that line. Space of strips the date and the underscore, then replaces dashes with spaces:
# Note Management WorkflowThe substitute has no range. If the cursor is anywhere else, it rewrites the wrong line. Run it once, on the # line, before you rewrite the title by hand.
Then write the note. Or don't. A title, a tag, and a sentence is enough to review.
3. Review the inbox
Daily, or at the end of the week:
obrobr changes to the vault and opens every markdown file in inbox/. Each file is one captured note. I read it and make one decision: keep or delete. I do not reorganize during this pass. Filing happens later, in batch, so review stays fast.
obr puts every matching file on Vim's argument list and starts on the first one. Move through that list with:
| Command | Goes to |
|---|---|
:n | the next note |
:N | the previous note |
:first | the first note |
:last | the last note |
:args | the full list; the current note is in brackets |
:n will not leave a note with unsaved changes. Write it with :w, then run :n again. :n! switches and drops those changes. :qa closes every note opened by obr. The same commands work if you open the inbox with Neovim.
obr launches vim, the system Vim at /usr/bin/vim. The keep and delete maps live in Neovim. on already opens Neovim, and that is where Space ok and Space odk work. For a review session that can archive and delete, open the inbox with Neovim:
cd "$OBSIDIAN_DIR"
nvim ./inbox/*.mdPoint obr at nvim if you want the fish command and the maps in the same session.
4. Keep
On a note worth saving, in Neovim:
Space okThat moves the file on disk into jarvis/ and closes the buffer. The note is no longer in the inbox, and it is not in its topic folder yet. jarvis is the "I decided" pile. It can hold a week's notes until I am ready to file them.
5. Delete
On a note that is a duplicate, a dead end, or something I will not reread:
Space odkThat deletes the file and closes the buffer. There is no trash folder. Review is the moment the note either earns a place or goes away.
6. File by tag
When jarvis/ has the notes I want to keep:
ogFor each markdown file, og takes the first tag and moves the file to notes/<tag>/, creating the folder if needed.
tags:
- blogbecomes notes/blog/<filename>.md. The filename stays as it was created, date prefix included, so the topic folder stays in chronological order. A file with no tag stays in jarvis and is printed as skipped.
After og, jarvis/ should be empty. If it is not, the leftovers are notes whose frontmatter does not have a tag on the line after tags:.
7. Find a filed note
Once a note is under notes/, I look it up from Neovim instead of browsing folders.
| Keys | Action |
|---|---|
Space os | Find a file by name under notes/ |
Space oz | Live grep under notes/ |
Space oo | Change Neovim's working directory to the vault |
gf | Follow a [[wiki link]] |
Search is scoped to notes/ so half-finished inbox drafts do not show up when I am looking for something I already kept.
From the shell, obo only changes to the vault. It does not open an editor.
What a week looks like
I run on whenever something is worth a title. Most days that is a few files, all of them in inbox/, most of them only a heading and a tag.
At review I open the inbox and walk the buffers. Anything I would open again goes to jarvis with Space ok. Anything I would not goes away with Space odk. I do not file during this pass.
When the inbox is clear, og drains jarvis into notes/blog/, notes/vim/, notes/fact/, and whatever other first tag I used. The topic folders stay clean because nothing enters them without a decision.
Command card
| When | Command | Where it runs |
|---|---|---|
| New note | on "Note title" | shell → Neovim |
| Apply template | Space on | Neovim |
| Clean the heading | Space of (cursor on the # line) | Neovim |
| Open the inbox | obr | shell → Vim |
| Keep | Space ok | Neovim → jarvis/ |
| Delete | Space odk | Neovim |
| File by first tag | og | shell → notes/<tag>/ |
| Find a file | Space os | Neovim, under notes/ |
| Search text | Space oz | Neovim, under notes/ |
The rule underneath the card is small. The inbox is for capture. jarvis is for decisions. notes/ is for notes I have already chosen to keep.