agentsclimarketplace

Cross linker

Skill thoreinstein/obsidian-rag/skills/cross-linker

A Claude Code plugin for interfacing with an Obsidian vault with local first RAG capabilities

Install
npx -y skills add thoreinstein/obsidian-rag --skill cross-linker

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when the user wants to find and insert missing wikilinks across vault notes. Triggers on "cross-link", "find missing links", "weave links", "unlinked mentions", "add wikilinks", or "link notes together".

SKILL.md

3.5 KB, as published. Nobody here has run it

Cross-Linker

Discover unlinked mentions of vault concepts and insert [[wikilinks]]. Complements link-audit (which finds broken/orphan links) by finding links that should exist but don't.

Workflow

Phase 1 — Build Page Registry

  1. Call obsidian_list_notes on the target scope (default: Engineering/).
  2. For each note, call obsidian_read_note and extract from frontmatter:
    • Title (from # heading or filename)
    • Aliases (from aliases: frontmatter field, if present)
    • Type (pattern, trap, decision, concept)
  3. Build a registry: { title, aliases[], path, type } for each note.

For large scopes (>50 notes), batch reads and process incrementally.

Phase 2 — Scan for Unlinked Mentions

For each note in scope:

  1. Call obsidian_read_note to get the full body text.
  2. For each other page in the registry, check if the page's title or any alias appears in the body text without being wrapped in [[...]].
  3. Skip matches inside:
    • Existing wikilinks [[...]]
    • Code blocks (fenced or inline)
    • Frontmatter
    • The note's own title/heading
  4. Record each match: { source_note, target_note, matched_text, line_context, confidence }

Phase 3 — Score and Rank

Assign confidence to each proposed link:

  • High — exact title match (case-insensitive), target is a Pattern/Trap/Decision note
  • Medium — alias match, or title match in a less structured note
  • Low — partial match or only semantically related (use obsidian_rag_query to verify)

Sort findings: high confidence first, grouped by source note.

Phase 4 — Present Findings

Show the user a report:

## Cross-Link Report for: Engineering/

### High Confidence (auto-apply)
- Engineering/Patterns/table-driven-tests.md
  Line 12: "table driven tests" → [[Table-Driven Tests]]

### Medium Confidence (confirm each)
- Engineering/Traps/mock-drift.md
  Line 8: "interface injection" → [[Interface Injection]]

### Low Confidence (review)
- working/appiary/knowledge/auth.md
  Line 23: "token" → possibly [[Token Rotation]] ?

### Summary
- X high-confidence links ready to apply
- Y medium-confidence links for review
- Z low-confidence suggestions

Phase 5 — Apply Links

  • High confidence: Apply automatically using obsidian_replace_in_note, replacing the first unlinked mention with [[Target Title]] or [[path/to/note|display text]].
  • Medium confidence: Apply one at a time, asking user to confirm each.
  • Low confidence: List for reference only — don't auto-apply.

Only link the first unlinked mention of each target per source note. Repeated mentions stay as plain text (standard wiki convention).

Arguments

  • Optional scope: /cross-linker Engineering/Patterns/ (default: Engineering/)
  • Optional depth: /cross-linker --deep to include working/ and reference/ scopes

Tips

  • Run on a narrow scope first (Engineering/Patterns/) to calibrate before going vault-wide
  • If a note has many false positives, it may need aliases: in frontmatter to disambiguate
  • Short titles (1-2 words like "Testing" or "Auth") generate noise — prefer linking specific concept names
  • After running, consider /link-audit to verify no broken links were introduced

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.