| name | vault-memory |
| description | Search the Obsidian knowledge vault (Karpathy LLM Wiki pattern) via enquire-mcp before answering questions about personal notes, decisions, projects, people, or research. Only invoke when the `obsidian_search` MCP tool is available (personal machines). Use when the user asks about anything that might be in their notes. Then file good answers back into the wiki (compounding loop). |
Vault Memory (Query + Compounding Loop)
Prerequisite: This skill requires the obsidian_search MCP tool (enquire-mcp).
If obsidian_search is not available in your tool list, do not use this skill.
Search the Obsidian vault (long-term memory) before answering questions that might
relate to existing notes, decisions, research, or session logs. Then file valuable
answers back into the wiki so knowledge compounds across sessions.
When to Use
Use this skill when the user's question touches:
- Past decisions or technical choices
- Research or investigations you (or another agent) previously did
- Project context, architecture, or conventions
- People, tools, or workflows mentioned in notes
- "What did I say about X" / "How did we decide Y" style queries
How to Search
1. Start with obsidian_search (umbrella tool, RRF-fused)
Call obsidian_search with the key terms of the question. It fuses BM25, TF-IDF,
and ML embeddings automatically. Every hit returns per_signal scores so you can
see why each note ranked.
2. Use specialized tools when needed
obsidian_hyde_search — for vague or conceptual queries. Pre-rewrites the query
into a rich hypothetical answer before retrieval.
obsidian_get_backlinks / obsidian_get_outbound_links — to explore the
[[wikilink]] neighborhood of a relevant note.
obsidian_get_note_neighbors — one-step graph neighbors.
obsidian_get_communities — topical communities (GraphRAG-light) to discover
themes in the vault.
obsidian_find_path — find a connection path between two notes.
obsidian_frontmatter_search — filter by frontmatter fields (tags, type, dates).
3. Cite sources
Every fact drawn from the vault must cite the source note path:
"According to Notes/ROI (投資利益率).md, ROI is calculated as..."
4. When nothing is found
If no relevant note exists, say so explicitly. Do not guess or fabricate. Suggest
creating a new note with vault-capture if the information is worth keeping.
Compounding Loop (Karpathy Pattern Core)
Good answers are not discarded into chat history. They are filed back into the
wiki as new pages so knowledge compounds.
After generating an answer, evaluate its value using these concrete criteria.
File back only if at least one applies:
- Integrates 2+ sources: The answer synthesizes information from multiple vault
notes or external sources into a unified analysis
- Contains named facts: Specific numbers, proper nouns, dates, or code identifiers
that would be tedious to re-derive
- Repeatable question: The user (or another session) is likely to ask the same
or a similar question in the future
- Discovered connection: The answer reveals a non-obvious relationship between
notes that wasn't previously linked
If none apply (trivial Q&A, one-off context), do NOT file — leave it in chat.
| Answer type | Action | Destination |
|---|
| Reusable knowledge / discovered connections | Create independent note via vault-capture | Notes/ or Shared/research/ |
| Technical decision | Create decision note via vault-capture | Shared/decisions/ |
| Session-specific context | Log via vault-session-log | Agents/<agent>/sessions/ |
| Trivial / one-off Q&A | Do not file | (chat only) |
When filing back:
- Connect with
[[wikilink]] to related notes
- (index.md is auto-generated by Dataview — no manual update needed)
This turns exploration itself into a compounding asset, exactly like ingested sources.
What NOT to Use This Skill For
- Literal string / regex search → use
ripgrep / grep directly (faster, exact)
- Code in the current project → use
Grep / Glob / Read tools
- General knowledge not in the vault → use
WebSearch / WebFetch
- Full web research with source verification → use
research-note skill (vault-internal)