9.0 KiB
name, description
| name | description |
|---|---|
| vault | Use when user says "save this", "create project", "promote from inbox" - manages Obsidian vault documentation with frontmatter (project/status/type/created), file naming (YYYY-MM-DD-name.md), wikilinks, and project structure in projects/ folders |
Obsidian Vault Operations
Overview
Direct file system management for Obsidian project documentation. Enforces YYYY-MM-DD-name.md naming, generates frontmatter, maintains wikilinks, organizes into projects// and _inbox/.
For project linking features (CLAUDE.local.md integration, dual locations, automatic startup), see the project-linking skill.
Configuration
Vault path: Look for "Primary vault:" in conversation context (from CLAUDE.md).
- Use the most recent occurrence if multiple are present (user override takes precedence)
- Default:
~/Obsidian/vaultif not specified - Expand
~to user's home directory before using
When to Use
User triggers:
- "Save this" / "create project" / "save to inbox"
- "Create a [design/plan/brainstorm] doc for [project]"
- "Promote that note to a project"
- "Update [doc] in [project]"
- "List projects" / "show me what's in [project]"
Use this skill for: Project documentation, design docs, brainstorms, plans, retrospectives Don't use for: Code documentation (use project CLAUDE.md), one-off notes outside vault
Note: If session has CLAUDE.local.md with project linking, use project-linking skill instead for advanced features.
Quick Reference
| Operation | Command Pattern | Result |
|---|---|---|
| New project | "save as new project" | projects/<name>/YYYY-MM-DD-<type>.md |
| Save inbox | "save to inbox" | projects/_inbox/YYYY-MM-DD-<desc>.md |
| Add to project | "create [type] doc for [project]" | New doc + wikilinks to related |
| Update doc | "update [doc] in [project]" | Edit + updated: YYYY-MM-DD frontmatter |
| Promote inbox | "promote to project" | Move + update frontmatter + rename |
| List projects | "list projects" | Show all with status (skip _inbox) |
| Show contents | "what's in [project]" | List docs chronologically |
| Update status | "mark [project] as active" | Update all doc frontmatter |
| Validate | "check frontmatter" | Report missing/invalid fields |
Conventions:
- Filename:
YYYY-MM-DD-descriptive-name.md(lowercase, hyphens) - Links: Wikilinks
[[filename]](no .md, no path if same folder) - Always add
## Related Documentssection to project docs
Frontmatter
Required fields:
---
project: project-name # Matches folder name or "inbox"
status: planning # planning|active|paused|completed|archived
type: brainstorm # brainstorm|design|plan|notes|retrospective
created: YYYY-MM-DD # File creation date
---
Optional fields:
updated: YYYY-MM-DD- Added when document revised (filename stays same)promoted: YYYY-MM-DD- Added when moved from inbox to project
Valid values:
- status: planning, active, paused, completed, archived
- type: brainstorm, design, plan, notes, retrospective
Core Operations
Create New Project
Trigger: "save this as a new project"
- Determine vault path from conversation context
- Ask for project name → validate (lowercase, hyphens, no spaces)
- Create
<vault-path>/projects/<project-name>/ - Infer doc type from conversation (brainstorming → brainstorm, planning → plan)
- Generate filename:
YYYY-MM-DD-<type>.md - Write frontmatter with
status: planning - Add
## Related Documentssection - Confirm: "Created projects//YYYY-MM-DD-.md"
Save to Inbox
Trigger: "save to inbox" / "quick idea"
- Determine vault path from conversation context
- Create in
<vault-path>/projects/_inbox/ - Use descriptive filename from content
- Frontmatter:
project: inbox,status: planning,type: notes - Confirm creation
Add Document to Existing Project
Trigger: "create a [design/plan] doc for [project-name]"
- Search
projects/for matching folder - If not found → ask to clarify or create new project
- If multiple matches → present options
- Create new doc in project folder
- Search vault for related docs
- Add inline wikilinks where relevant
- Add
## Related Documentssection with links:[[YYYY-MM-DD-filename]] - Confirm creation + report links added
Update Existing Document
Trigger: "update the [doc] in [project]"
- Find document in project folder
- Read current contents
- Make requested updates
- Add/update
updated: YYYY-MM-DDin frontmatter - Preserve filename (creation date unchanged)
- Confirm what changed
Promote from Inbox
Trigger: "promote that note to a project" / "make this a proper project"
- Identify inbox note from conversation context
- Search
_inbox/for related notes (similar topics, keywords) - Present related notes → ask which to include
- Ask for project name
- Create
projects/<project-name>/ - Move selected files → rename if needed (e.g., -idea.md → -initial-brainstorm.md)
- Update frontmatter:
project: inbox→project: <project-name>- Add
promoted: YYYY-MM-DD - Update
typeif needed (ask user or infer)
- Confirm with list of moved files
List Projects
Trigger: "list projects" / "show me all projects"
- Determine vault path from conversation context
- Read
<vault-path>/projects/(skip_inbox/) - For each project, read one doc to get status
- Sort by status: active → planning → paused → completed → archived
- Show count of documents per project
Output:
Active Projects:
- project-name (3 docs)
Planning:
- another-project (1 doc)
Show Project Contents
Trigger: "what's in [project]" / "show me [project]"
- Find project folder
- List all documents with types and statuses from frontmatter
- Present chronologically
Output:
project-name (status: active):
- 2025-11-07-initial-brainstorm.md (brainstorm)
- 2025-11-10-design-doc.md (design)
Update Project Status
Trigger: "mark [project] as active" / "set status to completed"
- Find project folder
- Read all documents
- Update
statusfield in all frontmatter - Confirm count of documents updated
Validate Frontmatter
Trigger: "check [project] frontmatter" / "validate frontmatter"
- Find project folder → read all documents
- Check each has: project, status, type, created
- Verify
projectmatches folder name - Verify
statusin valid values - Verify
typein valid values - Verify dates are YYYY-MM-DD format
- Report issues found
Auto-validate before creating any file.
Structure & Naming
Directory:
<vault-path>/projects/
_inbox/ # Quick captures
project-name/ # One folder per project
YYYY-MM-DD-desc.md
Naming rules:
- Files:
YYYY-MM-DD-descriptive-name.md(lowercase, hyphens, concise) - Projects:
project-name(lowercase, hyphens, matches folder) - No spaces or underscores
Examples:
obsidian-integration/2025-11-07-initial-brainstorm.mdapi-refactoring/2025-11-08-design-doc.md
Linking
Internal: [[YYYY-MM-DD-filename]] (no .md, no path if same folder)
External: [text](url)
Always add to project docs:
## Related Documents
- [[YYYY-MM-DD-brainstorm]] - Brief description
- [[YYYY-MM-DD-design]] - Brief description
Auto-linking:
- Add inline wikilinks where contextually relevant
- Search vault when creating new docs
- Link to related project docs in Related Documents section
Pre-flight Checks
Before ANY file operation:
- Path exists or can be created
- Filename matches
YYYY-MM-DD-name.md - Frontmatter has: project, status, type, created
- Dates are
YYYY-MM-DDformat - Status/type are valid values
Before updates:
- File exists → read current contents
- Preserve creation date in filename (only update frontmatter)
Common Mistakes
| Problem | Solution |
|---|---|
| Project not found | Search partial matches → offer to create → list available |
| Invalid frontmatter | Report issue → fix before proceeding |
| File exists | Ask to update in-place or use different filename |
| Permission denied | Report error → suggest checking vault path in ~/.claude/CLAUDE.md |
| Vault path not found | Check for "Primary vault:" in context → use default ~/Obsidian/vault |
| Wrong date in filename | Preserve creation date (filename) when updating → only change updated |
Example
User: "Save this brainstorm as a new project called obsidian-integration"
You: Create projects/obsidian-integration/2025-11-07-initial-brainstorm.md with frontmatter
User: "Create a design doc for obsidian-integration"
You: Create 2025-11-08-architecture-design.md, link to [[2025-11-07-initial-brainstorm]]
User: "Promote that git-worktrees note from inbox to a project" You:
- Found
_inbox/2025-11-07-git-worktrees-idea.md - Create
projects/git-worktrees/ - Move and rename →
2025-11-07-initial-brainstorm.md - Update frontmatter:
project: git-worktrees, addpromoted: 2025-11-08