Vault (Obsidian Notes)
Location: ~/Documents/Notes/
Principles
- Memory MCP for atomic facts - Quick retrieval of entities, observations, relations
- Obsidian vault for documents - Detailed notes, task logs, project context
- Unix tools for fast search - ripgrep (rg), fd, or mdfind for finding content efficiently
- WikiLinks for connections - Build traversable knowledge graph
- ALWAYS: New tasks should be in an
open state
Templates
templates/knowledge-note.md - For knowledge notes
templates/task.md - For new tasks
Bash Commands
# List in-progress tasks
rg --type md -l "^status:\s*in-progress" ~/Documents/Notes/Projects/*/Tasks
# Find project directory (handles YYYY[-MM] prefix)
fd -t d -d 1 -i "<project>" ~/Documents/Notes/Projects
# List project task files
fd -e md . ~/Documents/Notes/Projects/*<project>*/Tasks
# Find files by name
fd -e md -i "<name>" ~/Documents/Notes
# Recently modified (last 7 days)
fd -e md --changed-within 7d ~/Documents/Notes
# Find with Spotlight index
mdfind -interpret -onlyin ~/Documents/Notes "<concept>"
Timestamps
Always use real timestamps, never placeholders:
# For task filename: YYYY-MM-DD HHMMSS
date +"%Y-%m-%d %H%M%S"
# For log entry header: YYYY-MM-DD HH:MM
date +"%Y-%m-%d %H:%M"
# For frontmatter (ISO-8601)
date -Iseconds
Task File Path
~/Documents/Notes/Projects/<YYYY[-MM] Project>/Tasks/<YYYY-MM-DD HHMMSS> <Title>.md
Linking Strategy
Link if it improves the note, not just because it matches a term.
What to search for
| Search for |
Example (if writing about "Unison abilities") |
| Direct terms |
"abilities", "Unison abilities" |
| Parent concepts |
"effect handlers", "functional programming" |
| Sibling techniques |
"monads", "algebraic effects" |
| Tools/tech used |
"UCM", "Jit" |
Linking workflow
- Semantic discovery —
mdfind -interpret for related concepts
- Backlinks —
rg "\[\[<concept>" to find what links to your topics
- Tags overlap —
rg "^ - <tag>$" for notes sharing tags
- Add discovered notes as WikiLinks using breadcrumb pattern:
[[Parent]] | [[Related]]
Capture Heuristics
Worth capturing when:
| Marker |
Trigger |
| 📋 |
Principle applies across multiple contexts |
| 🤔 |
Caused debugging time or surprised me |
| ⚙️ |
Method that could save time later |
| 📎 |
Link to documentation or source |
| ☝️ |
Non-obvious choice with reasoning worth preserving |
Where to capture:
| Destination |
When |
| Existing note |
Discovery extends/refines an existing topic (search firs ) |
| New note |
Substantial, standalone, referenceable by other notes |
| Task log only |
One-off detail that won't generalise |
| Memory skill |
Atomic fact for quick retrieval |
Note Locations
| Folder |
Purpose |
Examples |
Development/ |
Conceptual, non-project, topics, paradigms, architectural patterns |
"Functional Programming", "Test Driven Development", "Unison Web Application Patterns" |
HowTo/ |
Procedural guides, specific techniques, step-by-step instructions, unrelated to projects |
"Unison Testing with Effect Handlers", "TDD with Functional Programming" |
Tools/ |
Software tools and their usage |
"Claude", "Git", "HTMX", "Obsidian" |
Projects/<project>/ |
Project level knowledge in an appropriate note in the project folder |
|
Projects/<project>/Tasks/ |
Task logs only — never knowledge notes |
|
Projects/<project>/Glossary |
Glossary entries |
|
Integration with Memory Skill
| Need |
Tool |
| Atomic facts |
Memory skill |
| Detailed docs |
Vault (this skill) |
| Task logs |
Projects/<project>/Tasks/ |
| Fast search |
Bash commands above |
What NOT to include
- DO NOT include changed files
1---2name: vault-23description: Read and write notes in the Obsidian vault. Use for task logs, knowledge capture, and building context. Use memory skill for atomic facts.4---56# Vault (Obsidian Notes)78Location: `~/Documents/Notes/`910## Principles11121. **Memory MCP for atomic facts** - Quick retrieval of entities, observations, relations132. **Obsidian vault for documents** - Detailed notes, task logs, project context143. **Unix tools for fast search** - ripgrep (rg), fd, or mdfind for finding content efficiently154. **WikiLinks for connections** - Build traversable knowledge graph165. **ALWAYS**: New tasks should be in an `open` state1718## Templates1920- `templates/knowledge-note.md` - For knowledge notes21- `templates/task.md` - For new tasks2223## Bash Commands2425```bash26# List in-progress tasks27rg --type md -l "^status:\s*in-progress" ~/Documents/Notes/Projects/*/Tasks2829# Find project directory (handles YYYY[-MM] prefix)30fd -t d -d 1 -i "<project>" ~/Documents/Notes/Projects3132# List project task files33fd -e md . ~/Documents/Notes/Projects/*<project>*/Tasks3435# Find files by name36fd -e md -i "<name>" ~/Documents/Notes3738# Recently modified (last 7 days)39fd -e md --changed-within 7d ~/Documents/Notes4041# Find with Spotlight index42mdfind -interpret -onlyin ~/Documents/Notes "<concept>"43```4445## Timestamps4647Always use real timestamps, never placeholders:4849```bash50# For task filename: YYYY-MM-DD HHMMSS51date +"%Y-%m-%d %H%M%S"5253# For log entry header: YYYY-MM-DD HH:MM54date +"%Y-%m-%d %H:%M"5556# For frontmatter (ISO-8601)57date -Iseconds58```5960## Task File Path6162`~/Documents/Notes/Projects/<YYYY[-MM] Project>/Tasks/<YYYY-MM-DD HHMMSS> <Title>.md`6364## Linking Strategy6566> Link if it improves the note, not just because it matches a term.6768### What to search for6970| Search for | Example (if writing about "Unison abilities") |71|------------|-----------------------------------------------|72| Direct terms | "abilities", "Unison abilities" |73| Parent concepts | "effect handlers", "functional programming" |74| Sibling techniques | "monads", "algebraic effects" |75| Tools/tech used | "UCM", "Jit" |7677### Linking workflow78791. **Semantic discovery** — `mdfind -interpret` for related concepts802. **Backlinks** — `rg "\[\[<concept>"` to find what links to your topics813. **Tags overlap** — `rg "^ - <tag>$"` for notes sharing tags824. Add discovered notes as WikiLinks using breadcrumb pattern: `[[Parent]] | [[Related]]`8384## Capture Heuristics8586**Worth capturing when:**8788| Marker | Trigger |89|--------|---------|90| 📋 | Principle applies across multiple contexts |91| 🤔 | Caused debugging time or surprised me |92| ⚙️ | Method that could save time later |93| 📎 | Link to documentation or source |94| ☝️ | Non-obvious choice with reasoning worth preserving |9596**Where to capture:**9798| Destination | When |99|-------------|------|100| **Existing note** | Discovery extends/refines an existing topic (search firs ) |101| **New note** | Substantial, standalone, referenceable by other notes |102| **Task log only** | One-off detail that won't generalise |103| **Memory skill** | Atomic fact for quick retrieval |104105## Note Locations106107| Folder | Purpose | Examples |108|--------|---------|----------|109| `Development/` | Conceptual, non-project, topics, paradigms, architectural patterns | "Functional Programming", "Test Driven Development", "Unison Web Application Patterns" |110| `HowTo/` | Procedural guides, specific techniques, step-by-step instructions, unrelated to projects | "Unison Testing with Effect Handlers", "TDD with Functional Programming" |111| `Tools/` | Software tools and their usage | "Claude", "Git", "HTMX", "Obsidian" |112| `Projects/<project>/` | Project level knowledge in an appropriate note in the project folder | |113| `Projects/<project>/Tasks/` | Task logs only — never knowledge notes | |114| `Projects/<project>/Glossary` | Glossary entries | |115116## Integration with Memory Skill117118| Need | Tool |119|------|------|120| Atomic facts | Memory skill |121| Detailed docs | Vault (this skill) |122| Task logs | `Projects/<project>/Tasks/` |123| Fast search | Bash commands above |124125## What NOT to include126127- **DO NOT** include changed files