Add a URL to the correct note in the Obsidian knowledge base.

Workflow

digraph bookmark {
    rankdir=TB;
    "Receive URL" [shape=box];
    "Identify what it is" [shape=box];
    "Search for existing note" [shape=box];
    "Exact match?" [shape=diamond];
    "Add link to existing note" [shape=box];
    "Related hub note?" [shape=diamond];
    "Create new atomic note" [shape=box];
    "Add wikilink from hub" [shape=box];
    "Create standalone note" [shape=box];
    "Done" [shape=doublecircle];
 
    "Receive URL" -> "Identify what it is";
    "Identify what it is" -> "Search for existing note";
    "Search for existing note" -> "Exact match?";
    "Exact match?" -> "Add link to existing note" [label="yes"];
    "Exact match?" -> "Related hub note?" [label="no"];
    "Related hub note?" -> "Create new atomic note" [label="yes"];
    "Create new atomic note" -> "Add wikilink from hub" [label=""];
    "Add wikilink from hub" -> "Done";
    "Related hub note?" -> "Create standalone note" [label="no"];
    "Create standalone note" -> "Done";
    "Add link to existing note" -> "Done";
}

Steps

  1. Identify the link. Use defuddle parse <url> --md (or -p title / -p description) to understand what the URL is about. If defuddle fails, use WebFetch.

  2. Search for an existing note. Glob and Grep Notes/ and Draft Notes/ for notes matching the topic. Check both exact title matches and broader hub notes that cover the category.

  3. Decide placement:

    • Existing note matches the topic exactly (e.g., link about Rust goes in Rust.md): add the link directly under the appropriate section.
    • No exact match, but a hub note covers the broader category (e.g., a new LMS tool and Self-hosting.md exists): create a new atomic note for the concept, then add a [[wikilink]] from the hub note to the new note. Hub notes link down to children, never the reverse.
    • No related note exists at all: create a new standalone atomic note in Inbox/.
  4. Create or edit the note. Read Templates/Main Note.md and use it as the base structure for new notes. Replace {{date}} and {{time}} with the current date and time. Add tags and content as appropriate.

  5. Confirm what was added and where.

Rules

  • New note vs inline: Create a dedicated note when the concept is distinct enough that someone would search for it by name (e.g., “Learning Management System (LMS)”). Inline the link when it’s a tool or resource that naturally belongs within an existing note (e.g., a Rust library in Rust.md).
  • Hub/parent notes link down to children via wikilink. Children do not link back up to parents.
  • Add a short description after the link (— what it is) when not obvious from the title.