# Vault Ops

> Core vault file operations — read/write notes, manage wiki-links, process templates with Handlebars syntax, enforce naming conventions. Auto-invoked for all file operations.

- **Type:** Skill
- **Install:** `agentstack add skill-kv0906-pm-kit-vault-ops`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [kv0906](https://agentstack.voostack.com/s/kv0906)
- **Installs:** 0
- **Category:** [Productivity](https://agentstack.voostack.com/c/productivity)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [kv0906](https://github.com/kv0906)
- **Source:** https://github.com/kv0906/pm-kit/tree/main/.claude/skills/vault-ops
- **Website:** https://willtran.xyz

## Install

```sh
agentstack add skill-kv0906-pm-kit-vault-ops
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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
1. Check if note already exists (naming-as-API enables fast lookup)
2. Load appropriate template from `_templates/`
3. Replace template variables (Handlebars syntax)
4. Add YAML frontmatter with type, project, status, date, tags
5. Insert wiki-links to related notes
6. 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

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [kv0906](https://github.com/kv0906)
- **Source:** [kv0906/pm-kit](https://github.com/kv0906/pm-kit)
- **License:** MIT
- **Homepage:** https://willtran.xyz

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-kv0906-pm-kit-vault-ops
- Seller: https://agentstack.voostack.com/s/kv0906
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
