Memory Bridge — Cross-Tool Knowledge Browser
You are helping the user browse and compare their Obsidian wiki knowledge filtered by which AI tool originally produced it. The wiki tracks source provenance in
.manifest.json
and page
sources:
frontmatter — this skill surfaces that metadata as a navigable view.
Before You Start
Resolve config
— follow the Config Resolution Protocol in
llm-wiki/SKILL.md
(walk up CWD for
.env
→
~/.obsidian-wiki/config
→ prompt setup). This gives
OBSIDIAN_VAULT_PATH
.
Read
$OBSIDIAN_VAULT_PATH/.manifest.json
— this is the source-of-truth for what tool produced what.
Read
$OBSIDIAN_VAULT_PATH/index.md
for page titles and one-line descriptions.
Commands
Parse the user's invocation to determine mode:
Invocation
Mode
/memory-bridge
Knowledge from ( pages)
By category
- concepts/ — N pages
- entities/ — N pages
- skills/ — N pages ...
Pages
| Page | Category | Tags | Last updated |
|---|---|---|---|
| [[page-name]] | concept | tag1, tag2 | 2026-04-10 |
| ... | |||
| Read frontmatter for the listed pages (grep for | |||
| ^(title | category | tags | updated): |
| ) — do not read full page bodies unless the user asks. | |||
| Search Mode | |||
| Within the filtered page set, run: | |||
| grep -l " |
|||
| Then grep section headers ( | |||
| ^## | |||
| ) around matches to give context without full reads. Present results as a ranked list with the matching excerpt. | |||
| Diff Mode | |||
| Compute: | |||
| only_in_a | |||
| = | |||
| tool_pages[a] | |||
| − | |||
| tool_pages[b] | |||
| only_in_b | |||
| = | |||
| tool_pages[b] | |||
| − | |||
| tool_pages[a] | |||
| shared | |||
| = | |||
| tool_pages[a] | |||
| ∩ | |||
| tool_pages[b] | |||
| If no specific tools are given, compare all tools pairwise (limit to pairs with >0 overlap or unique pages to keep output concise). | |||
| Present: | |||
| ## Memory Bridge Diff — |
|||
| ### Only in |
|||
| These concepts exist in your wiki from |
|||
| ### Only in |
|||
| ### Shared ( |
|||
| Both tools have contributed to these pages. | |||
| ### Notable gaps | |||
| Map Mode | |||
| Build a matrix showing every page and which tools have touched it. Cap at 50 rows; sort by number of contributing tools descending (most cross-tool pages first — these are the richest nodes). | |||
| Page | claude | codex | hermes |
| ------ | -------- | ------- | -------- |
| [[react-patterns]] | ✓ | ✓ | — |
| [[rust-ownership]] | — | ✓ | — |
| Step 3: Spawn impl-validator (if available) | |||
| After generating output, if the | |||
| impl-validator | |||
| skill is available in the current environment, spawn it as a subagent: | |||
| impl-validator check: | |||
| goal: "Browse/diff wiki knowledge by source tool and surface cross-tool blind spots" | |||
| artifacts: [the output you just generated] | |||
| checks: | |||
| - Did you correctly parse source_type from .manifest.json? | |||
| - Are page counts plausible (not 0 unless vault is empty)? | |||
| - Is the diff symmetric (a−b and b−a are disjoint)? | |||
| - Did you avoid reading full page bodies when not needed? | |||
| Apply any issues it surfaces before presenting output to the user. | |||
| Step 4: Log | |||
| Append to | |||
| $OBSIDIAN_VAULT_PATH/log.md | |||
| : | |||
| - [TIMESTAMP] MEMORY-BRIDGE mode=<browse | search | diff | map> tool= |
| Output Conventions | |||
| Always show page counts so the user can calibrate how much knowledge is in each tool's silo. | |||
| Use | |||
| [[wikilinks]] | |||
| for page references (or standard Markdown links if | |||
| OBSIDIAN_LINK_FORMAT=markdown | |||
| is set). | |||
| In diff mode, call out the most | |||
| surprising | |||
| asymmetry explicitly — that's the insight the user came for. | |||
| If | |||
| .manifest.json | |||
| is empty or missing, say so clearly and suggest running | |||
| /wiki-history-ingest | |||
| first. |