--- name: obsidian-management description: "Obsidian vault operations and file management for ~/CODEX. Use when: (1) creating/editing notes in Obsidian vault, (2) using templates from _chiron/templates/, (3) managing vault structure, (4) reading vault files, (5) organizing files within PARA structure. Triggers: obsidian, vault, note, template, create note, read note, organize files." compatibility: opencode --- # Obsidian Management File operations and template usage for Obsidian vault at `~/CODEX/`. ## Vault Structure ``` ~/CODEX/ ├── _chiron/ # System files │ ├── context.md # Primary context │ └── templates/ # Note templates ├── 00-inbox/ # Quick captures ├── 01-projects/ # Active projects ├── 02-areas/ # Ongoing responsibilities ├── 03-resources/ # Reference material ├── 04-archive/ # Completed items ├── daily/ # Daily notes └── tasks/ # Task management ``` ## Core Operations ### Create Note **When user says**: "Create a note called X", "Make a new note for X", "Add a note" **Steps:** 1. Determine location (ask if unclear): - `00-inbox/` for quick captures - `01-projects/[work|personal]/[project]/` for project notes - `02-areas/` for area notes - `03-resources/` for reference material 2. Create file with proper filename (kebab-case, .md extension) 3. Add frontmatter if using template 4. Confirm creation **Example:** ``` User: "Create a note about Obsidian plugins in resources" Action: 1. Locate: ~/CODEX/03-resources/tools/obsidian-plugins.md 2. Create file with template or basic frontmatter 3. Confirm: "Created obsidian-plugins.md in 03-resources/tools/" ``` ### Read Note **When user says**: "Read the note X", "Show me X note", "What's in X?" **Steps:** 1. Find note by: - Exact path if provided - Fuzzy search across vault - Dataview query if complex 2. Read full note content 3. Summarize key points if long 4. Offer follow-up actions **Example:** ``` User: "Read my learning-python note" Action: 1. Search: rg "learning-python" ~/CODEX --type md 2. Read matching file 3. Present content 4. Offer: "Want to edit this? Add tasks? Link to other notes?" ``` ### Edit Note **When user says**: "Update X", "Change X to Y", "Add to X" **Steps:** 1. Read existing note 2. Locate section to modify 3. Apply changes preserving formatting 4. Maintain frontmatter structure 5. Confirm changes **Preserve:** - Wiki-links `[[Note Name]]` - Frontmatter YAML - Task formatting - Tags - Dataview queries ### Use Template **When user says**: "Create using template", "Use the X template" **Available templates:** | Template | Location | Purpose | |----------|----------|---------| | `daily-note.md` | `_chiron/templates/` | Daily planning/reflection | | `weekly-review.md` | `_chiron/templates/` | Weekly review | | `project.md` | `_chiron/templates/` | Project initialization | | `meeting.md` | `_chiron/templates/` | Meeting notes | | `resource.md` | `_chiron/templates/` | Reference material | | `area.md` | `_chiron/templates/` | Area definition | **Steps:** 1. Read template from `_chiron/templates/[template-name].md` 2. Replace template variables ({{date}}, {{project}}, etc.) 3. Create new file in appropriate location 4. Fill in placeholder sections **Example:** ``` User: "Create a new project using the project template for 'Learn Rust'" Action: 1. Read _chiron/templates/project.md 2. Replace {{project}} with "learn-rust", {{date}} with today 3. Create: ~/CODEX/01-projects/personal/learn-rust/_index.md 4. Fill in: deadline, priority, goals, etc. ``` ### Search Vault **When user says**: "Search for X", "Find notes about X", "Where's X?" **Search methods:** 1. **Simple search**: `rg "term" ~/CODEX --type md` 2. **Tag search**: `rg "#tag" ~/CODEX --type md` 3. **Task search**: `rg "- \\[ \\]" ~/CODEX --type md` 4. **Wiki-link search**: `rg "\\[\\[.*\\]\\]" ~/CODEX --type md` **Present results grouped by:** - Location (Projects/Areas/Resources) - Relevance - Date modified ### Organize Files **When user says**: "Organize inbox", "Move X to Y", "File this note" **Steps:** 1. Read file to determine content 2. Consult chiron-core PARA guidance for proper placement 3. Create proper directory structure if needed 4. Move file maintaining links 5. Update wiki-links if file moved **Example:** ``` User: "Organize my inbox" Action: 1. List files in 00-inbox/ 2. For each file: - Read content - Determine PARA category - Move to appropriate location 3. Update broken links 4. Confirm: "Moved 5 files from inbox to Projects (2), Resources (2), Archive (1)" ``` ## File Operations ### Paths **Always use absolute paths:** - `~/CODEX/` → `/home/username/knowledge/` - Expand `~` before file operations ### Filenames **Naming conventions:** - Notes: `kebab-case.md` (all lowercase, hyphens) - Projects: `project-name/` (directory with `_index.md`) - Daily notes: `YYYY-MM-DD.md` (ISO date) - Templates: `template-name.md` (kebab-case) **Do NOT use:** - Spaces in filenames - CamelCase (use kebab-case) - Special characters (except hyphens and underscores) ### Frontmatter **Required fields:** ```yaml --- title: "Note Title" tags: [tag1, tag2] created: YYYY-MM-DD modified: YYYY-MM-DD --- ``` **Project frontmatter:** ```yaml --- title: "Project Name" status: active | on-hold | completed deadline: YYYY-MM-DD priority: critical | high | medium | low tags: [work, personal] --- ``` **Task file frontmatter:** ```yaml --- title: "Task List" context: daily | project | area tags: [tasks] --- ``` ### Wiki-Links **Format:** `[[Note Name]]` or `[[Note Name|Display Text]]` **Best practices:** - Use exact note titles - Include display text for clarity - Link to related concepts - Back-link from destination notes ### Tags **Format:** `#tagname` or `#tag/subtag` **Common tags:** - `#work`, `#personal` - `#critical`, `#high`, `#low` - `#project`, `#area`, `#resource` - `#todo`, `#done`, `#waiting` ## Template System ### Template Variables Replace these when using templates: | Variable | Replacement | |----------|-------------| | `{{date}}` | Current date (YYYY-MM-DD) | | `{{datetime}}` | Current datetime (YYYY-MM-DD HH:mm) | | `{{project}}` | Project name | | `{{area}}` | Area name | | `{{title}}` | Note title | | `{{week}}` | Week number (e.g., W04) | ### Template Locations **Core templates** in `_chiron/templates/`: - `daily-note.md` - Daily planning and reflection - `weekly-review.md` - Weekly review structure - `project.md` - Project initialization - `meeting.md` - Meeting notes template - `resource.md` - Reference material - `area.md` - Area definition - `learning.md` - Learning capture ### Custom Templates **User can add** templates to `_chiron/templates/`: 1. Create new template file 2. Use variable syntax: `{{variable}}` 3. Document in `_chiron/templates/README.md` 4. Reference in obsidian-management skill ## Integration with Other Skills **Calls to other skills:** - `chiron-core` - PARA methodology guidance for organization - `task-management` - Extract/update tasks from notes - `quick-capture` - Process inbox items - `meeting-notes` - Apply meeting template **Delegation rules:** - User asks about PARA → `chiron-core` - User wants task operations → `task-management` - User wants quick capture → `quick-capture` - User wants meeting structure → `meeting-notes` ## File Format Standards ### Task Format (Obsidian Tasks plugin) ```markdown - [ ] Task description #tag ⏫ 📅 YYYY-MM-DD ``` **Priority indicators:** - ⏫ = Critical (urgent AND important) - 🔼 = High (important, not urgent) - 🔽 = Low (nice to have) **Date indicators:** - 📅 = Due date - ⏳ = Start date - 🛫 = Scheduled date ### Dataview Queries ```dataview LIST WHERE status = "active" FROM "01-projects" SORT deadline ASC ``` ```dataview TABLE deadline, status, priority FROM "-04-archive" WHERE contains(tags, "#work") SORT deadline ASC ``` ### Callouts ```markdown > [!INFO] Information > Helpful note > [!WARNING] Warning > Important alert > [!TIP] Tip > Suggestion > [!QUESTION] Question > To explore ``` ## Error Handling ### File Not Found 1. Search for similar filenames 2. Ask user to confirm 3. Offer to create new file ### Directory Not Found 1. Create directory structure 2. Confirm with user 3. Create parent directories as needed ### Template Not Found 1. List available templates 2. Offer to create template 3. Use basic note structure if needed ### Link Breaks After Move 1. Find all notes linking to moved file 2. Update links to new path 3. Confirm updated links count ## Best Practices ### When Creating Notes 1. Use descriptive titles 2. Add relevant tags 3. Link to related notes immediately 4. Use appropriate frontmatter ### When Editing Notes 1. Preserve existing formatting 2. Update `modified` date in frontmatter 3. Maintain wiki-link structure 4. Check for broken links ### When Organizing 1. Ask user before moving files 2. Update all links 3. Confirm final locations 4. Document changes in daily note ## Quick Reference | Action | Command Pattern | |--------|-----------------| | Create note | "Create note [title] in [location]" | | Read note | "Read [note-name]" or "Show me [note-name]" | | Edit note | "Update [note-name] with [content]" | | Search | "Search vault for [term]" or "Find notes about [topic]" | | Use template | "Create [note-type] using template" | | Organize inbox | "Organize inbox" or "Process inbox items" | | Move file | "Move [file] to [location]" | ## Resources - `references/file-formats.md` - Detailed format specifications - `references/dataview-guide.md` - Dataview query patterns - `references/link-management.md` - Wiki-link best practices - `assets/templates/` - All template files **Load references when:** - User asks about format details - Creating complex queries - Troubleshooting link issues - Template customization needed