doc-vault-project
Vault Project
Manage multi-note research projects in an Obsidian vault with phased subdirectory structure.
Prerequisites
| Skill | Required | Purpose |
|---|---|---|
| doc-obsidian | Yes | Vault CRUD via notesmd-cli + search via qmd |
Directory Structure
projects/{project-slug}/
├── _index.md # MOC: status, component links, linked research
├── concept/ # Problem definition, threat models, requirements
├── research/ # Deep dives per component, tech evaluation
├── design/ # Architecture, API design, data models
└── implementation/ # Build plans, code refs, test plans
Projects live in projects/ (top-level). Separate from research/ (knowledge).
Four phases are always created. Empty dirs signal "not started yet."
Step 0: Setup
Run before every operation:
VAULT=$(notesmd-cli print-default --path-only)
qmd status
If either fails, stop and tell the user to set up doc-obsidian first.
Commands
init — Scaffold New Project
Trigger: "create project {name}", "new project {name}", "project init {name}"
Workflow
- Parse project name → kebab-case slug (max 40 chars)
- Check if
projects/{slug}/exists — if yes, abort and show existing project - Create directory structure:
VAULT=$(notesmd-cli print-default --path-only)
mkdir -p "$VAULT/projects/{slug}/concept"
mkdir -p "$VAULT/projects/{slug}/research"
mkdir -p "$VAULT/projects/{slug}/design"
mkdir -p "$VAULT/projects/{slug}/implementation"
- Load
references/index-template.mdandreferences/frontmatter-schemas.md - Build
_index.mdwith project frontmatter and empty status table - Write
_index.md:
# Use Write tool → "$VAULT/projects/{slug}/_index.md"
- Re-index:
qmd update && qmd embed - Confirm:
Created: [[{slug}]]
Path: projects/{slug}/
Phases: concept/ research/ design/ implementation/
Components: 0
add — Add Component Note
Trigger: "add {note} to project {name}", "project add {note} to {phase}"
Workflow
- Identify project slug and target phase (concept/research/design/implementation)
- If phase not specified, infer from content:
- Problem/threat/requirement →
concept - Deep dive/evaluation/comparison →
research - Architecture/API/data model →
design - Plan/code/test/deploy →
implementation
- Problem/threat/requirement →
- If ambiguous, ask the user
- Generate note slug (kebab-case, max 60 chars)
- Check for duplicates in the phase directory
- Load frontmatter schema from
references/frontmatter-schemas.md - Build component note with
type: project-componentfrontmatter - Save:
VAULT=$(notesmd-cli print-default --path-only)
# Write tool → "$VAULT/projects/{project-slug}/{phase}/{note-slug}.md"
- Update
_index.md:- Add wikilink under the correct phase section
- Update status table counts
- Update
components:andupdated:in frontmatter
- Re-index:
qmd update && qmd embed - Confirm:
Added: [[{note-slug}]]
Path: projects/{project-slug}/{phase}/{note-slug}
Phase: {phase}
Status: pending
Project components: {N}
status — Show Project Status
Trigger: "project status", "project status {name}", "how is project {name}"
Workflow
- If no project specified, list all projects:
VAULT=$(notesmd-cli print-default --path-only)
ls "$VAULT/projects/"
- For a specific project, read
_index.mdfrontmatter and list components:
VAULT=$(notesmd-cli print-default --path-only)
# Read _index.md for project metadata
# List files in each phase directory
# Read frontmatter status from each component
- Display:
Project: {name}
Status: {project-status}
Updated: {date}
| Phase | Component | Status |
|-------|-----------|--------|
| concept | [[threat-model]] | complete |
| concept | [[gap-analysis]] | in-progress |
| research | [[endpoint-security]] | pending |
| design | — | — |
| implementation | — | — |
Progress: 1/3 complete
link — Link Existing Research
Trigger: "link research to project {name}", "project link {note} to {name}"
Workflow
- Identify project and target research notes
- If no specific notes given, search for related research:
qmd vsearch "{project topic}" --json -n 10
- Filter results: only notes in
research/, exclude score < 0.3 - Present candidates with scores, let user pick
- Read project
_index.md - Add wikilinks under
### Linked Researchsection:
### Linked Research
- [[existing-note]] — {brief relevance}
- Do NOT move files — research stays in
research/ - Update
updated:in frontmatter - Re-index:
qmd update && qmd embed - Confirm:
Linked to [[{project}]]:
- [[note-1]] — {relevance}
- [[note-2]] — {relevance}
promote — Promote Research Topic to Project
Trigger: "promote {topic} to project", "make {topic} a project"
Workflow
- Find existing research notes on the topic:
qmd vsearch "{topic}" --json -n 15
- Present candidates, let user confirm which notes relate
- Run
initto scaffold the project - Run
linkto wikilink the existing research notes - Optionally create initial component notes in
concept/if the research already covers problem definition - Confirm:
Promoted: {topic} → [[{project}]]
Linked research: {N} notes
Components: {N} created
Promote does NOT move existing notes. It creates a project that references them.
Constraints
DO:
- Always run Step 0 first
- Always use fixed four phases (concept/research/design/implementation)
- Always update
_index.mdafter adding/linking components - Always re-index after changes
- Resolve vault path dynamically via
notesmd-cli print-default --path-only - Keep research notes in
research/— link, don't move - Read notes before editing
DON'T:
- Create custom phases or skip phase directories
- Move existing research notes into project directories
- Create projects without
_index.md - Skip re-indexing
- Hardcode vault paths
- Auto-trigger — only respond to explicit project commands
References
references/frontmatter-schemas.md— Frontmatter for _index.md and component notes, field rules, status transitionsreferences/index-template.md— _index.md scaffold template, status table update rules, linked research format
More from molechowski/claude-skills
res-price-compare
Polish market product price comparison: 20+ shops, shipping costs, manufacturer vs seller warranty, B2B/statutory warranty analysis, stock status, distribution chain. Export TXT/XLSX/HTML. Use when: looking for a product to buy, price comparison, where to buy cheapest. Triggers: cena, porównaj, gdzie kupić, najtaniej, sklep, price compare, best price, kup, ile kosztuje.
36res-deep
Iterative multi-round deep research with structured analysis frameworks. Use for: deep research on a topic, compare X vs Y, landscape analysis, evaluate options for a decision, deep dive into a technology, comprehensive research with cross-referencing. Triggers: deep research, compare, landscape, evaluate, deep dive, comprehensive research, which is better, should we use.
35doc-daily-digest
Process Obsidian daily notes: classify raw URLs and loose ideas, fetch content (X tweets, GitHub repos, web pages), run deep research on ideas, create structured vault notes, replace raw items with wikilinks. Orchestrates doc-obsidian, res-x, and res-deep skills. Use when: processing daily note links, digesting saved URLs into notes, turning ideas into research, daily note cleanup. Triggers: daily digest, process daily, daily links, triage daily, digest daily note.
35res-x
Fetch X/Twitter tweet content by URL and search X posts. Resolves tweet links that WebFetch cannot scrape. Use for: reading saved X/Twitter links, fetching tweet content from URLs, searching X for posts on a topic, batch-processing X links from notes. Triggers: x.com link, twitter.com link, fetch tweet, read tweet, what does this tweet say, X search, twitter search.
34doc-project
Update all project documentation in one pass: CLAUDE.md, AGENTS.md, README.md, SKILLS.md, CHANGELOG.md. Orchestrates doc-claude-md, doc-readme, doc-skills-md, and doc-changelog skills sequentially. Use when: project docs are stale, after major changes, initial project setup, sync all docs. Triggers: update all docs, update project docs, sync documentation, refresh docs, doc-project.
34doc-obsidian
Obsidian vault management combining qmd (search) and notesmd-cli (CRUD). No Obsidian app needed. Use for: (1) searching notes with keyword, semantic, or hybrid search, (2) creating/editing/moving/deleting notes, (3) daily journaling, (4) frontmatter management, (5) backlink discovery, (6) AI agent memory workflows, (7) vault automation and scripting. Triggers: obsidian vault, obsidian notes, vault search, note management, daily notes, agent memory, knowledge base, markdown vault.
34