| name | connect-ideas |
| description | Find two notes in the vault that should be linked but aren't, and explain the rationale. |
| triggers | ["/connect-ideas","what should I link","find connections in my vault"] |
When to use
The user wants serendipitous structural insight — a pair of notes that share content but no wikilink edge. Useful during a slow-thinking session or as part of a weekly review.
Procedure
- Call
vault_info.
- Call
find_hubs(top_k=10) to identify central notes — these are the strongest candidates for a missed connection.
- For each hub, call
find_related(seed=hub_path, top_k=8). Filter the results: keep only notes that are NOT already wikilinked to the hub (use find_backlinks(hub_path) to determine this).
- Score each candidate pair by
find_related similarity × log(candidate's wikilink count). High-quality candidates are dense-similar AND not already isolated.
- Pick the single highest-scoring pair. If no candidate clears a similarity threshold of 0.55, tell the user "I didn't find a strong enough pair this round" and stop.
- Call
read_note on both notes. Skim. Identify the specific overlap.
- Surface to the user IN CHAT:
- Note A path + 1-line summary
- Note B path + 1-line summary
- Why they should connect (2–3 sentences, pointing at the actual textual overlap)
- The proposed wikilink insertion: which note gets the link, near which phrase, with what alias if any.
- If the user confirms, call
link_notes(from_path=..., to_path=..., context_phrase=..., confirm=true).
Output format
Found a pair:
A: [[Note A]] — {one-line summary}
B: [[Note B]] — {one-line summary}
Rationale: {2–3 sentences citing the overlap}
Proposed: Insert `[[Note B]]` into [[Note A]] near "{context phrase}".
Anti-patterns
- Don't propose more than one pair per invocation. Decision fatigue kills the workflow.
- Don't link two notes that are already 1-hop connected via a third note unless the connection is genuinely value-add. Surface the existing path instead.
- Don't propose a link that would make Note A's text grammatically nonsensical. Re-read the context phrase before suggesting.
- Don't insert the link without
confirm=True from the user (unless --unattended).