---
name: obsidian-save
description: Save curated notes to Obsidian vault. Triggers on "save this to obsidian", "write a note about", "note this down", "save to my vault", or any request to persist information to Obsidian.
---

# Save to Obsidian

Save curated notes from conversations or claude-mem observations into the Obsidian vault.

## Workflow

### Step 1: Determine What to Save

- If the user specifies content: use that directly
- If the user says "from memory" or "from claude-mem": use `search` MCP tool to find observations, then `get_observations` to fetch full details
- If vague: summarize the current conversation topic and confirm with the user

### Step 2: Choose Target Folder

- If user specifies a folder: use it
- Otherwise: call `list_folders` to show available folders and ask the user, or infer from content type:
  - Technical investigations → `Investigations/`
  - Meeting notes → `Work Notes/Syncs/`
  - Work items/TODOs → `Work Notes/`
  - General notes → vault root

### Step 3: Generate Tags

Auto-generate 3-7 tags from the content:
- From claude-mem `concepts` array → convert to camelCase tags
- From claude-mem observation `type` → `#bugfix`, `#feature`, `#discovery`, etc.
- From content → tech terms, project names, domain areas
- Style: single-word lowercase, multi-word camelCase (e.g., `#typescript`, `#smartContracts`)

### Step 4: Format and Save

Call `save_note` with:
- `title`: descriptive title for the note
- `content`: formatted markdown body
- `folder`: target folder
- `tags`: generated tag array (without `#` prefix)

The note format will be:
```
# {Title}

Tags:
#tag1 #tag2 #tag3

{Content body}

## Source
From Claude Code conversation on {date}
```

### Step 5: Confirm

Tell the user the file path and a summary of what was saved.

## Examples

**Direct save:**
> "Save a note about our JWT auth discussion to Investigations"
1. Summarize the auth discussion
2. Folder: `Investigations/`
3. Tags: `#authentication`, `#jwt`, `#security`
4. Call `save_note`

**From claude-mem:**
> "Pull my recent discoveries and save to obsidian"
1. `search(type="observations", obs_type="discovery", limit=10)`
2. `get_observations(ids=[...relevant IDs])`
3. Format into a consolidated note
4. Ask user for folder or infer
5. Call `save_note`
