git:20260601.f97e47d to git:20260610.3da600d

74 added, 73 removed. Audit A to A.

---
name: memory-recall
description: >-
Searches the Obsidian vault for prior knowledge, past decisions, and accumulated learnings — and
finds unexpected connections between domains. Make sure to use this skill whenever the user asks
- "do I have notes on", "what did I write about", "find in my vault", "check my notes about", "have
- I learned about", "what did I decide about", "connect [A] and [B]", "find bridges between", or any
- phrasing that implies consulting personal vault knowledge rather than answering from general
- knowledge. Also fires when user references prior sessions or wants to know what they already know
- about a topic.
+ "do I have notes on", "what do I know about", "what did I write about", "find in my vault", "check
+ my notes about", "have I learned about", "what did I decide about", "connect [A] and [B]", "find
+ bridges between", or any phrasing that implies consulting personal vault knowledge rather than
+ answering from general knowledge. Also fires when user references prior sessions or wants to know
+ what they already know about a topic.
+ user-invocable: true
+ argument-hint: '[topic — omit to infer from context]'
---
# Memory Recall
Surface what the user already knows from their vault before answering from training data. The vault
is the source of truth for personal decisions, accumulated learnings, and prior context.
- ## Recall Flow
+ **Recall is index-first (Karpathy's LLM-wiki principle).** Read the catalog (`index.md`) first to
+ find relevant pages, then drill into those pages. qmd is a search accelerator used only when the
+ index alone is not enough. This is faithful to the wiki pattern and works better than blind semantic
+ retrieval at this scale.
- Run steps in order — stop as soon as you have strong results.
+ If `$ARGUMENTS` is provided (e.g. `/memory-recall what do I know about useEffect`), that string is
+ the topic. Otherwise infer the topic from the conversation.
- ### Step 1 — Search Resources first (for concepts and reference knowledge)
+ ## Tool roles (the hybrid)
- ```bash
- obsidian search query="<topic>"
- ```
+ - **`index.md`** = the curated catalog. Read FIRST. The navigation map: titles, one-line summaries,
+ tags, `[[wikilinks]]`.
+ - **qmd** = content search across the whole vault. Use as a FALLBACK when the index skim is
+ ambiguous or to catch pages whose body matches but whose summary does not.
+ - **obsidian CLI** = navigation. Follow `[[backlinks]]`, resolve aliases, read a known page, list a
+ folder, read the live vault (no index lag).
- For concepts, wiki pages, and reference material, check `3 - Resources/` first:
+ ## Recall Flow (Mode A — topic recall)
- ```bash
- obsidian files folder="3 - Resources/" format=json
- ```
+ ### Step 1 — Read the index first (always)
- ### Step 2 — Check TIL for past learnings
+ Read the catalog by ABSOLUTE path so this works from any directory, not just the vault:
- ```bash
- obsidian files folder="3 - Resources/TIL/" format=json
```
-
- Filter by date range if the user specified a time window. Read the most relevant TIL notes directly.
-
- ### Step 3 — Check Projects for project-specific context
-
- ```bash
- obsidian files folder="1 - Projects/" format=json
+ Read /Users/kriscard/obsidian-vault-kriscard/index.md
```
- Read the relevant project note if the topic is project-specific.
+ Skim the `## Concept notes (claude-memory)` section (and `## Articles` / `## Videos` if relevant).
+ Pick 3–8 candidate pages whose title, one-line summary, or tags match the topic. This selection is
+ reasoning over the catalog, not keyword scoring.
- ### Step 4 — Keyword fallback
+ ### Step 2 — qmd only if the index is not enough
- If the above searches miss, try a context search for surrounding lines:
+ If the index skim is ambiguous, returns nothing obvious, or the topic might live in page bodies not
+ reflected in summaries, search content:
```bash
- obsidian search:context query="<topic>" limit=10
+ qmd query "<topic>" --json -n 8
```
- ### Step 5 — Scan recent daily notes (last resort)
+ Add the qmd hits to the candidate set. Score bands: ≥ 0.7 strong, 0.5–0.7 probable, < 0.5 weak. (qmd
+ gotcha: in `lex`/`vec`/`hyde` lines a hyphen inside a word like `re-render` is parsed as `-negation`
+ and errors; drop the hyphen or rephrase.)
- If the topic is recent and might only live in daily notes:
+ ### Step 3 — Drill into the actual pages (navigation = obsidian CLI)
+ Read the candidate pages in full before answering. Use obsidian CLI to read the live page and follow
+ the wiki's link structure; use `qmd get "#docid"` for a quick body pull of a qmd hit.
+
```bash
- obsidian read path="2 - Areas/Daily Ops/2026/YYYY-MM-DD.md"
+ obsidian read path="3 - Resources/<subfolder>/<page>.md"
+ qmd get "#<docid>"
```
- ## How to Report Findings
-
- **Always cite the source** — include the file path so the user can navigate to the note:
- `3 - Resources/TIL/til-2026-03-12.md`
-
- **Synthesize, don't dump.** If multiple notes cover the topic, summarize what they collectively say.
- Paste full content only if explicitly requested.
-
- **Be honest about gaps.** If the vault doesn't cover the topic, say so explicitly. Then offer to
- answer from general knowledge.
-
- **Distinguish note types:**
-
- - TIL notes (`3 - Resources/TIL/`) = first-person learning captures
- - Resource notes (`3 - Resources/`) = reference and wiki material
- - Project notes (`1 - Projects/`) = project-specific context and decisions
-
- ## Connection Discovery Mode
-
- When the user asks to connect two domains (e.g., "connect design and engineering"):
+ Follow `[[backlinks]]` and resolve aliases via obsidian to pull in connected pages the
+ catalog/search missed.
- ### Step 1 — Map Each Domain
+ ### Step 4 — Synthesize with citations
- ```bash
- obsidian search query="<domain A>" format=json
- obsidian search query="<domain B>" format=json
- ```
+ Answer from the pages, citing each with `[[wikilink]]`. Synthesize across pages; do not dump full
+ notes unless asked. Be honest about gaps: if no index entry matches AND qmd top score < 0.5, say the
+ vault has no coverage and offer a general-knowledge answer.
- Read key notes. Follow backlinks 2–3 hops from hub notes in each domain. If one domain has
- significantly fewer notes, go 3–4 hops deep on the sparse one — the less-explored side is where
- surprises are.
+ ### Step 5 — Offer to file the answer back
- ### Step 2 — Find Overlaps
+ If the synthesis is worth keeping (a new connection, comparison, or decision), offer to file it as a
+ wiki page via the save-note skill. Good answers compound into the wiki.
- - **Shared references**: notes in both domains' backlink chains
- - **Shared themes**: same concept appearing in both, even if notes aren't linked
- - **Shared patterns**: both domains facing the same problem or stuck on the same question
+ ## Connection Discovery Mode (Mode B)
- ### Step 3 — Synthesize
+ When the user asks to connect two domains ("connect A and B", "bridges between"):
- For each bridge found:
+ 1. **Map each domain index-first**: read `index.md`, collect the pages under each domain by
+ title/tag; augment with `qmd query "<domain>"` if the catalog is thin.
+ 2. **Pull hubs and follow backlinks** 2–3 hops via obsidian CLI. If one domain has far fewer notes,
+ go 3–4 hops deep on the sparse side — that is where surprises are.
+ 3. **Find overlaps**: shared references (notes in both backlink chains), shared themes (same concept
+ in both, even if unlinked), shared patterns (both stuck on the same problem). A useful qmd trick:
+ feed one domain's vocabulary as a `hyde:` query against the other to surface adjacent pages.
+ 4. **Synthesize each bridge**:
```
Bridge [#]: [Title]
In Domain A: [how it appears]
In Domain B: [how it appears differently]
The connection: [what links them]
Depth: Surface / Structural / Foundational
Implication: [what this suggests for either domain]
```
- Surface the strongest bridge and any **missing links** — connections that should exist but haven't
- been made. Suggest specific notes to link or create.
+ Surface the strongest bridge and any **missing links** (connections that should exist but have not
+ been made). The test: the best output makes you see both domains differently. Do not force
+ connections; if the domains genuinely do not connect, say so.
- **The test**: the best output makes you see both domains differently. Don't force connections — if
- domains genuinely don't connect, say so.
+ ## How to Report Findings
+ - **Cite the source** with the file path / `[[wikilink]]` so the user can navigate.
+ - **Synthesize, do not dump.** Summarize what the pages collectively say.
+ - **Be honest about gaps.** No index match and qmd < 0.5 means say so, then offer general knowledge.
+ - **Distinguish note types**: TIL (`3 - Resources/TIL/`) = first-person captures; Resources = wiki
+ reference; Projects (`1 - Projects/`) = project-specific context.
+
## What NOT to do
- - Don't write or modify notes — recall is strictly read-only
- - Don't hallucinate citations — if you can't find a note, say "no match found"
- - Don't dump full notes unless explicitly asked
+ - Don't skip the index. Index-first is the rule; qmd is the fallback, not the entry point.
+ - Don't write or modify notes — recall is strictly read-only (filing back is the save-note skill).
+ - Don't answer from snippets alone — read the pages that matter first.
+ - Don't hallucinate citations — if you can't find a note, say "no match found".
+ - Don't stretch a sub-0.5 match into a confident answer — flag the gap instead.