Vault Operations Skill
Core operations for reading, writing, and managing files in a PM-Kit vault.
Vault Structure
pm-kit/ ├── CLAUDE.md # Vault context (read first) ├── _core/ # config.yaml, MANIFESTO.md, PROCESSING.md ├── _templates/ # Note templates (ALWAYS USE) ├── 00-inbox/ # Unprocessed captures ├── 01-index/ # Project MOCs ├── daily/ # YYYY-MM-DD.md (multi-project) ├── docs/{project}/ # PRDs, specs ├── decisions/{project}/ # Decision records ├── blockers/{project}/ # Active blockers ├── meetings/ # Meeting notes ├── reports/ # Generated reports │ └── previews/ # HTML previews (/preview, /report --preview) └── _archive/ # Archived by YYYY-MM/
Naming Conventions (Naming-as-API)
Strict filename patterns enable glob queries without a database:
| Type | Pattern | Example |
|---|---|---|
| Daily | daily/YYYY-MM-DD.md | daily/2026-01-15.md |
| Doc | docs/{project}/{slug}.md | docs/project-a/checkout-flow.md |
| Decision | decisions/{project}/YYYY-MM-DD-{slug}.md | decisions/project-a/2026-01-15-auth-approach.md |
| Blocker | blockers/{project}/YYYY-MM-DD-{slug}.md | blockers/project-a/2026-01-15-api-rate-limit.md |
| Meeting | meetings/YYYY-MM-DD-{type}-{slug}.md | meetings/2026-01-15-sync-sprint-review.md |
| Inbox | 00-inbox/YYYY-MM-DD-{slug}.md | 00-inbox/2026-01-15-quick-thought.md |
| Index | 01-index/{project}.md | 01-index/project-a.md |
File Operations
Creating Notes
- Check if note already exists (naming-as-API enables fast lookup)
- Load appropriate template from
_templates/ - Replace template variables (Handlebars syntax)
- Add YAML frontmatter with type, project, status, date, tags
- Insert wiki-links to related notes
- Write to correct folder per naming convention
Editing Notes
- Preserve YAML frontmatter structure
- Maintain existing wiki-links
- Use consistent heading hierarchy
- Apply standard tag format
Wiki-Link Format
markdown[[Note Name]] # Simple link [[Note Name|Display Text]] # Link with alias [[Note Name#Section]] # Link to heading [[folder/Note Name]] # Link with path
Template Variables
When processing templates, replace Handlebars syntax:
{{date}}→ Today's date (YYYY-MM-DD){{project}}→ Project ID{{project_name}}→ Project display name{{title}}→ Note title{{slug}}→ URL-safe slug
YAML Frontmatter
All notes require frontmatter:
yaml--- type: [daily|doc|decision|blocker|meeting|inbox|index] project: {project-id} status: {per note_types in config.yaml} date: YYYY-MM-DD tags: [] ---
Auto-Linking Rules
| From | Links To |
|---|---|
| Daily (blocked item) | blockers/{project}/ |
| Meeting | decisions/{project}/, blockers/{project}/ |
| Decision | docs/{project}/ |
| Doc | decisions, blockers |
Archive Rules
Move to _archive/YYYY-MM/ when:
- Blocker status → resolved
- Doc status → shipped
- Decision status → superseded


