doc-vault-project
Original:🇺🇸 English
Translated
Manage multi-note research projects in Obsidian vault with phased subdirectory structure (concept, research, design, implementation). Scaffold new projects, add component notes, track status, link existing research, promote topics to projects. Use when: creating a project, adding to a project, checking project status, linking research to a project, promoting a research topic to a full project. Triggers: project init, project add, project status, project link, project promote, create project, new project.
4installs
Added on
NPX Install
npx skill4agent add molechowski/claude-skills doc-vault-projectTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →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 plansProjects live in (top-level). Separate from (knowledge).
projects/research/Four phases are always created. Empty dirs signal "not started yet."
Step 0: Setup
Run before every operation:
bash
VAULT=$(notesmd-cli print-default --path-only)
qmd statusIf 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 exists — if yes, abort and show existing project
projects/{slug}/ - Create directory structure:
bash
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 and
references/index-template.mdreferences/frontmatter-schemas.md - Build with project frontmatter and empty status table
_index.md - Write :
_index.md
bash
# 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: 0add — 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 frontmatter
type: project-component - Save:
bash
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 and
components:in frontmatterupdated:
- 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:
bash
VAULT=$(notesmd-cli print-default --path-only)
ls "$VAULT/projects/"- For a specific project, read frontmatter and list components:
_index.md
bash
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 completelink — 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:
bash
qmd vsearch "{project topic}" --json -n 10- Filter results: only notes in , exclude score < 0.3
research/ - Present candidates with scores, let user pick
- Read project
_index.md - Add wikilinks under section:
### Linked Research
markdown
### Linked Research
- [[existing-note]] — {brief relevance}- Do NOT move files — research stays in
research/ - Update in frontmatter
updated: - 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:
bash
qmd vsearch "{topic}" --json -n 15- Present candidates, let user confirm which notes relate
- Run to scaffold the project
init - Run to wikilink the existing research notes
link - Optionally create initial component notes in if the research already covers problem definition
concept/ - Confirm:
Promoted: {topic} → [[{project}]]
Linked research: {N} notes
Components: {N} createdPromote 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 after adding/linking components
_index.md - Always re-index after changes
- Resolve vault path dynamically via
notesmd-cli print-default --path-only - Keep research notes in — link, don't move
research/ - 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
- — Frontmatter for _index.md and component notes, field rules, status transitions
references/frontmatter-schemas.md - — _index.md scaffold template, status table update rules, linked research format
references/index-template.md