| name | vault-management |
| description | Manage brainstorming and planning documents in Obsidian vault following established conventions |
Obsidian Vault Integration Skill
Overview
This skill manages documents in an Obsidian vault using direct file system access. It enforces naming conventions, generates proper frontmatter, and maintains linking strategies for project documentation.
Vault Location: ~/Sync/Obsidian/fnichol
Core Operations
1. Create New Project
When: User says "save this as a new project" or "create a project for this"
Process:
- Ask user for project name (if not provided)
- Validate project name (lowercase, hyphens, no spaces)
- Create
~/Sync/Obsidian/fnichol/projects/<project-name>/directory - Create first document with type based on conversation context
- Generate frontmatter with proper fields
- Add Related Documents section (empty for first doc)
- Confirm creation with full path
Frontmatter template:
---
project: <project-name>
status: planning
type: <inferred-from-context>
created: <YYYY-MM-DD>
---
Filename format: YYYY-MM-DD-<descriptive-name>.md
2. Save to Inbox
When: User says "save to inbox" or "quick idea"
Process:
- Create document in
~/Sync/Obsidian/fnichol/projects/_inbox/ - Generate frontmatter with
project: inbox - Use descriptive filename based on content
- Confirm creation
Frontmatter template:
---
project: inbox
status: planning
type: notes
created: <YYYY-MM-DD>
---
3. Add Document to Existing Project
When: User references project by name: "create a design doc for obsidian-integration"
Process:
- Search
~/Sync/Obsidian/fnichol/projects/for matching folder - If not found, ask user to clarify or create new project
- If multiple matches, ask user to clarify
- Create new document in project folder
- Generate frontmatter with project name
- Search project folder for related documents
- Add inline wikilinks where contextually relevant
- Add Related Documents section with links to related docs
- Confirm creation
Related Documents section example:
## Related Documents
- [[2025-11-07-initial-brainstorm]] - Initial exploration
- [[2025-11-08-architecture-design]] - System design
4. Update Existing Document
When: User says "update the
Process:
- Find the document in project folder
- Read current contents
- Make requested updates
- Add or update
updated: YYYY-MM-DDin frontmatter - Preserve filename (creation date unchanged)
- Confirm update with what changed
Important: Filename stays unchanged - only frontmatter updated field changes.
5. Promote from Inbox
When: User says "promote that note to a project" or "make this a proper project"
Process:
- Identify the inbox note (from conversation context)
- Search
_inbox/for related notes (similar topics, keywords) - Present related notes to user, ask which to include
- Ask for project name
- Create
projects/<project-name>/directory - Move selected files to new project folder
- Rename files following convention (e.g., -idea.md → -initial-brainstorm.md)
- Update frontmatter:
- Change
project: inboxtoproject: <project-name> - Add
promoted: YYYY-MM-DDfield - Update
typeif needed (ask user or infer) - Preserve
status
- Change
- Confirm promotion with list of moved files
Frontmatter updates:
# Before (inbox):
---
project: inbox
status: planning
type: notes
created: 2025-11-07
---
# After (promoted):
---
project: obsidian-integration
status: planning
type: brainstorm
created: 2025-11-07
promoted: 2025-11-08
---
6. List Projects
When: User says "list projects" or "show me all projects"
Process:
- Read
~/Sync/Obsidian/fnichol/projects/directory - Skip
_inbox/folder - For each project, read one document to get status
- Present list with project names and status
- Sort by status (active, planning, paused, completed, archived)
Output format:
Active Projects:
- obsidian-integration (3 documents)
Planning:
- another-project (1 document)
7. Show Project Contents
When: User says "show me what's in
Process:
- Find project folder
- List all documents with creation dates
- Show type and status from frontmatter
- Present chronologically
Output format:
obsidian-integration (status: planning):
- 2025-11-07-initial-brainstorm.md (brainstorm)
- 2025-11-08-architecture-design.md (design)
- 2025-11-10-implementation-plan.md (plan)
8. Update Project Status
When: User says "mark
Process:
- Find project folder
- Read all documents in project
- Update
statusfield in all frontmatter - Confirm how many documents updated
9. Search Related Vault Notes
When: Creating new document or user asks to find related notes
Process:
- Extract key terms from conversation or document
- Search vault for notes containing those terms
- Present matching notes
- Offer to add wikilinks to new document
10. Validate Frontmatter
When: User says "check
Process:
- Find project folder
- Read all documents
- Check each has required fields: project, status, type, created
- Check
projectfield matches folder name - Check
statusis valid value - Check
typeis valid value - Check date formats are YYYY-MM-DD
- Report any issues found
11. Find Project
When: Adding document or continuing work, need to locate project
Process:
- Search
~/Sync/Obsidian/fnichol/projects/for folder matching name - Support partial matches (user says "obsidian", find "obsidian-integration")
- If multiple matches, present options
- Return full path
12. Generate Project Overview
When: User says "create an overview for
Process:
- Find project folder
- Read all documents
- Extract key information from each
- Create
overview.mdorREADME.mdin project folder - Include:
- Project summary
- Current status
- List of documents with descriptions
- Key decisions or outcomes
- Generate frontmatter with
type: notes
Conventions to Enforce
File Naming
- Format:
YYYY-MM-DD-descriptive-name.md - Use lowercase
- Use hyphens not spaces or underscores
- Be descriptive but concise
Frontmatter Fields
Required:
project- Project identifier (matches folder name or "inbox")status- One of: planning, active, paused, completed, archivedtype- One of: brainstorm, design, plan, notes, retrospectivecreated- YYYY-MM-DD format
Optional:
updated- YYYY-MM-DD (added when document revised)promoted- YYYY-MM-DD (added when promoted from inbox)
Linking Strategy
Internal references: Use wikilinks [[note-name]]
- Omit .md extension
- Just use filename without path if in same folder
- Example:
[[2025-11-07-initial-brainstorm]]
External URLs: Use markdown [text](url)
Related Documents Section:
- Add at end of document
- Use
## Related Documentsheading - List related docs with brief description
- Use wikilinks for vault references
Auto-linking:
- Add inline wikilinks where contextually relevant
- Always add Related Documents section for project docs
- Search vault for relevant existing notes when creating new docs
Project Naming
- Use lowercase
- Use hyphens to separate words
- Be descriptive but concise
- Examples:
obsidian-integration,api-refactoring,user-auth
Directory Structure
~/Sync/Obsidian/fnichol/
projects/
_inbox/ # Quick captures
<project-name>/ # One folder per project
YYYY-MM-DD-*.md
Validation Rules
Before creating any file:
- Validate path exists or can be created
- Check filename follows convention
- Verify frontmatter has required fields
- Ensure dates are valid YYYY-MM-DD format
- Check status and type values are valid
Valid status values: planning, active, paused, completed, archived Valid type values: brainstorm, design, plan, notes, retrospective
Before searching:
- Confirm vault path exists
- Handle permission errors gracefully
Before updating:
- Confirm file exists
- Read current contents first
- Preserve creation date in filename
Error Handling
Project not found:
- Search for partial matches
- Offer to create new project
- List available projects
Invalid frontmatter:
- Report what's wrong
- Offer to fix
- Don't proceed until valid
File already exists:
- Ask if should update in place
- Offer different filename
- Don't overwrite without confirmation
Permission denied:
- Report clear error message
- Suggest checking vault path in CLAUDE.md
Usage Examples
Creating new project:
User: "Save this brainstorm as a new project"
Skill: "What should we call this project?"
User: "obsidian-integration"
Skill: "Created projects/obsidian-integration/2025-11-07-initial-brainstorm.md"
Adding to project:
User: "Create a design doc for obsidian-integration"
Skill: [creates document with links to existing docs]
Skill: "Created projects/obsidian-integration/2025-11-08-architecture-design.md
Links: [[2025-11-07-initial-brainstorm]]"
Promoting from inbox:
User: "Promote that git worktrees note to a project"
Skill: "Found 1 related inbox note: 2025-11-06-development-isolation.md
Should I include it?"
User: "Yes"
Skill: "What should we call this project?"
User: "isolated-development"
Skill: "Created projects/isolated-development/
Moved: 2025-11-07-git-worktrees-idea.md → 2025-11-07-initial-brainstorm.md"
Integration with Conversations
Context awareness:
- Track current project in conversation
- Infer document type from conversation (brainstorming → brainstorm, planning → plan)
- Remember recently mentioned projects for quick reference
Natural triggers:
- "Save this" → ask where (new project, existing project, inbox)
- "Create a [type] doc" → infer type from user's words
- "[Project name]" → search for and use that project
Confirmation messages:
- Always confirm file creation with full path
- Report what links were added
- Show frontmatter that was generated
- Mention related documents found
Maintenance
Periodic checks:
- Validate all project frontmatter on request
- Report projects with no recent activity
- Find orphaned documents (not in projects or inbox)
Cleanup operations:
- Archive completed projects (move to archive/ folder)
- Consolidate related inbox notes
- Update outdated status values