AgentSkillsCN

obs-backlinking

自动化反向链接——扫描笔记中的实体提及,添加[[维基链接]],并以符合PARA规范的标签创建缺失的实体笔记。

SKILL.md
--- frontmatter
name: obs-backlinking
description: "Automated backlinking - scan notes for entity mentions, add [[wiki-links]], and create missing entity notes with PARA-compliant tags."

Backlinking Skill

Workflow Position

code
[Point Claude at vault or specific note]
        |
    personal:obs-backlinking     <- YOU ARE HERE
        |
    [Mode: Single Note | Folder | Full Vault]
        |
    [Entity Detection] -> People -> Places -> Books -> Projects -> Concepts
        |
    [Review Mode: Show proposed changes]
        |
    [User confirms]
        |
    [Apply links + Create missing entity notes]
        |
    Output: Linking Report + New Entity Notes

Overview

Automated backlinking skill that scans notes for entity mentions and creates proper [[wiki-links]]. Integrates with your PARA methodology and Auto Note Mover by creating entity notes with appropriate tags.

Key Features:

  • Entity detection for people, places, books, projects, and concepts
  • Review mode with diff output before applying changes
  • Creates missing entity notes with correct PARA tags (#r/person, #r/book, etc.)
  • Respects existing links (won't double-link)
  • Skips code blocks, frontmatter, and already-linked text
  • Builds an entity registry for consistent linking

Primary Value: Directly addresses inconsistent linking by automating wiki-link creation.


When to Use

  • After writing journal entries or meeting notes
  • During periodic vault maintenance (alongside obs-vault-health)
  • When importing notes from another system
  • After creating notes quickly without proper linking
  • To retroactively improve vault connectivity

When to Skip

  • Already well-linked - Note has comprehensive links
  • Code-heavy notes - Technical documentation with few entity mentions
  • Template files - Templates shouldn't have specific entity links
  • Just created entity notes - Run on content notes, not the entities themselves

The Process

Step 0: Determine Scope

Ask the user:

What would you like to backlink?

Single Note - Process one specific note

  • Provide the note path

Folder - Process all notes in a folder

  • Provide the folder path (e.g., 1-Projects/LeanIX/)

Full Vault - Process entire vault

  • Will exclude: Templates/, attachments/, .obsidian/

Wait for answer before proceeding.

Step 1: Gather Entity Registry

Before linking, build a registry of known entities:

Scan for existing entity notes:

  • People notes in 3-Resources/ with #r/person tag
  • Place notes with #r/place tag
  • Book notes with #r/book tag
  • Project index notes in 1-Projects/
  • Area index notes in 2-Areas/

Extract from frontmatter:

  • participants fields in meeting notes
  • author fields in book notes
  • client tags for company entities

Present registry summary:

markdown
## Entity Registry

**Known Entities:** X total

| Type | Count | Examples |
|------|-------|----------|
| People | 15 | Alice Smith, Bob Jones |
| Places | 8 | London, New York |
| Books | 12 | Deep Work, Atomic Habits |
| Projects | 5 | LeanIX, BCBS239 |
| Companies | 4 | EY, JPMC, Barclays |

**Aliases Detected:**
- "Alice" → [[Person - Alice Smith]]
- "DW" → [[Book - Deep Work]]

Step 2: Scan Target Notes

For each note in scope:

Skip these sections:

  • YAML frontmatter (between --- markers)
  • Code blocks (between ``` markers)
  • Existing [[wiki-links]]
  • URLs and file paths
  • Headings (typically don't need entity links)

Detect entity mentions:

  • Full names from entity registry
  • Aliases and nicknames
  • Project names (case-insensitive)
  • Book titles (often in quotes or italics)
  • Company/client names

Step 3: Review Mode (Required)

Present proposed changes before applying:

markdown
## Proposed Backlinks

### meeting-2024-01-15.md

**Current:**
> Met with Alice and Bob to discuss the LeanIX integration.
> They mentioned reading Deep Work for productivity tips.

**Proposed:**
> Met with [[Person - Alice Smith|Alice]] and [[Person - Bob Jones|Bob]] to discuss the [[LeanIX]] integration.
> They mentioned reading [[Book - Deep Work|Deep Work]] for productivity tips.

**Changes:**
| Entity | Link Created | Confidence |
|--------|--------------|------------|
| Alice | [[Person - Alice Smith\|Alice]] | High (exact match) |
| Bob | [[Person - Bob Jones\|Bob]] | High (exact match) |
| LeanIX | [[LeanIX]] | High (project tag exists) |
| Deep Work | [[Book - Deep Work\|Deep Work]] | Medium (title match) |

---

### journal-2024-01-16.md

**New Entity Notes Needed:**
| Entity | Suggested Note | Tags |
|--------|----------------|------|
| Sarah Chen | Person - Sarah Chen.md | #r/person |
| The Phoenix Project | Book - The Phoenix Project.md | #r/book |

Ask: "Review the proposed changes. Would you like to:

  1. Apply all - Apply all proposed links
  2. Apply selected - Choose which links to apply
  3. Skip note - Skip specific notes
  4. Adjust - Modify entity detection settings"

Step 4: Apply Changes

For approved changes:

Insert wiki-links:

  • Replace entity mentions with [[Note Name|Display Text]]
  • Use display text when note name differs from mention
  • Preserve surrounding punctuation and formatting

Create missing entity notes:

For each new entity, create note with appropriate template:

Person Note:

yaml
---
type: resource
tags: [r/person]
title: Person - [Name]
date created: [timestamp]
date modified: [timestamp]
---

# [Name]

## Context
- First mentioned: [[source-note]]
- Relationship: [to be filled]

## Notes

Book Note:

yaml
---
type: resource
tags: [r/book]
title: Book - [Title]
author: [to be filled]
date created: [timestamp]
date modified: [timestamp]
---

# [Title]

## Summary

## Key Takeaways

## Notes

Place Note:

yaml
---
type: resource
tags: [r/place]
title: Place - [Name]
date created: [timestamp]
date modified: [timestamp]
---

# [Name]

## Context

## Notes


Output Format

Linking Report

markdown
# Backlinking Report

**Scope:** [Single Note | Folder | Full Vault]
**Date:** [date]
**Notes Processed:** X
**Links Created:** Y
**Entity Notes Created:** Z

---

## Summary

| Metric | Count |
|--------|-------|
| Notes scanned | 45 |
| Notes modified | 12 |
| Links inserted | 67 |
| New entity notes | 5 |
| Skipped (already linked) | 23 |

---

## Links Created

### By Entity Type
| Type | Links | Top Entities |
|------|-------|--------------|
| People | 34 | Alice (12), Bob (8), Sarah (6) |
| Projects | 18 | LeanIX (10), BCBS239 (8) |
| Books | 8 | Deep Work (5), Atomic Habits (3) |
| Places | 7 | London (4), NYC (3) |

### By Note
| Note | Links Added |
|------|-------------|
| meeting-2024-01-15.md | 8 |
| journal-2024-01-16.md | 5 |
| project-notes.md | 4 |

---

## New Entity Notes Created

| Note | Type | Tags | Source |
|------|------|------|--------|
| Person - Sarah Chen.md | Person | #r/person | meeting-2024-01-15.md |
| Book - The Phoenix Project.md | Book | #r/book | journal-2024-01-16.md |

---

## Recommendations

1. Review new entity notes and add context
2. Run obs-vault-health to check for orphans
3. Consider adding aliases for common nicknames

Entity Detection Settings

Confidence Thresholds

LevelDescriptionWhen to Use
HighExact match to known entityDefault - safe
MediumPartial match or aliasReview recommended
LowHeuristic detection (capitalized words, quotes)Manual review required

Customization Options

Entity Types to Detect:

  • People (names from registry + capitalized full names)
  • Projects (from 1-Projects/ folder names + #p/ tags)
  • Books (quoted titles, italic titles, "Book - " prefix notes)
  • Places (from registry + known location patterns)
  • Companies (from #client/ tags + registry)
  • Concepts (from #r/ resource notes)

Exclusion Patterns:

  • Common words that look like names (e.g., "Will", "May")
  • Technical terms that might be miscategorized
  • Abbreviations without clear meaning

After Backlinking

  1. Review new entity notes - Add context and details
  2. Run obs-vault-health - Check overall vault connectivity
  3. Update entity registry - Add aliases for common nicknames
  4. Schedule regular runs - Weekly on recent notes

"Backlinking complete! Scope: [Single Note|Folder|Full Vault]"

Results:

  • Notes processed: X
  • Links created: Y
  • Entity notes created: Z

Next steps:

  • Review new entity notes in 3-Resources/
  • Run obs-vault-health for connectivity check

Key Principles

  • Review before apply - Always show proposed changes first
  • High confidence by default - Only auto-link certain matches
  • Preserve context - Use display text to maintain readability
  • PARA-compliant - New entity notes follow your tag conventions
  • Incremental improvement - Better to link accurately than comprehensively
  • Entity registry is source of truth - Build and maintain for consistency