The Vault as Memory
Using graph-based recall and structured capture to give Claude persistent context across any project
The previous post covered the folder structure and how notes move through their lifecycle. This post focuses on what happens when you connect Claude to that structure from the outside, whether that is from a codebase, a client project, or anywhere else you happen to be working.
The plugin is called bridge, and the name is accurate. It bridges your vault into any Claude Code project without forcing you to switch contexts.
Before getting into the specific skills, one aspect of the vault structure is worth restating.
Wiki Links Are Load-Bearing
Wiki links are everywhere in my vault. MOCs link to their relevant notes, notes link back to their MOCs, daily journal entries get linked, and Rolodex entries get linked. Over time, the more a concept matters, and the more it intersects with projects, areas, and daily work, the more it shows up in the graph. High connectivity is a direct signal of importance.
The two skills built into bridge are designed specifically to leverage that signal.
lc-recall
The /lc-recall command acts as a research agent. Given the context of what I am currently working on, it surfaces the most relevant content from my vault and brings it directly into the active session.
When the skill runs, it uses the Obsidian CLI to search the vault for MOCs and related files. It then walks the graph by following backlinks and forward links, scoring every note it encounters. The scoring mechanism is a personalized adaptation of Adamic-Adar, which is a graph centrality measure from network science.
The key design decision here is that hub notes are down-weighted. A large MOC that links to 100 different notes contributes less relevance signal per neighbor than a targeted note that links to only five. This prevents your high-level organizational structure from drowning out your actual content.
Results come back categorized into two distinct buckets. The first bucket is Notes, which includes Library, Refine, Collect, and Daily entries. These represent your substantive content and receive top priority. The second bucket is Maps, which consists of your Catalog MOCs. These function as organizational scaffolding, are capped at five results, and are displayed separately. Because these maps are usually already linked from the notes anyway, they serve as context rather than the final destination.
The main agent then decides which specific notes are worth loading into the session. A typical execution might surface the primary project MOC, a handful of Library notes linked from it, and the relevant Rolodex entries for the people involved in the project.
There is also a --quick flag available for when you know roughly what a file is called. This performs a title-only match without walking the graph, returning results in seconds.
lc-collect
The /lc-collect command operates in the opposite direction. While lc-recall reads from the vault, lc-collect writes back to it.
The basic use case is capturing something worth keeping, such as an idea, a technical decision, or a set of meeting notes. However, the more interesting utility comes from the --from-chat flag, which captures the active conversation. For example, you can run a debugging session, reach a conclusion, and close the loop immediately:
/lc-collect --from-chat key decisions from this auth refactor
The skill summarizes the relevant conversation context and passes it to the collector agent. The agent then weaves that summary into a properly formatted note that is automatically linked to the right MOC and filed in the Collect directory. It includes enough context for you to understand it months down the road, without needing to remember the exact session it came from.
After the capture is complete, the skill prompts you to add a backlink to today's daily log. One additional obsidian daily:append call runs in the background, and the note is seamlessly woven into your daily journal.
Configuration
The plugin relies on the LIFECYCLE_VAULT environment variable to determine which vault to target. This can be set globally in ~/.claude/settings.json to establish a default, and it can also be overridden on a per-project basis. This flexibility allows a personal vault to handle most daily work, while a specific repository can point directly to a dedicated work vault instead.
A Permanent Memory
Most AI sessions are entirely stateless. The conversation ends, whatever context was established disappears, and the next session forces you to start completely from scratch.
Using lc-recall and lc-collect together changes that dynamic. Before you begin a session, you pull in relevant context from everything your vault contains. This can include notes from months or years ago that are linked in ways that reflect how your ideas actually connect. During or after the session, you write your new understanding back into the system. As a result, the vault grows, the graph deepens, and the next session builds directly on top of what was previously established.
The link graph is the foundation that makes this recall work. The more consistently you link your vault, the more signal the plugin has to rank on, and the more useful the retrieval becomes. Ultimately, the organizational structure you build for your own human navigation turns out to be exactly the structure the agent needs to rank relevance accurately.
Installation
/plugin marketplace add alexmarnell/obsidian-lifecycle-plugins
/plugin install bridge@obsidian-lifecycle-plugins
The full source code is available at github.com/alexmarnell/obsidian-lifecycle-plugins.

