From paivot-graph
Capture knowledge from the current session to the vault with auto-tagging and link suggestions
npx claudepluginhub paivot-ai/paivot-graph --plugin paivot-graph# Vault Capture Capture knowledge from the current session to the appropriate vault. Auto-derives tags, validates domains, suggests related links, and triages to the correct folder. ## Step 1: Load Context Load the vault-knowledge skill to understand the controlled domain vocabulary and note template: Detect the current project: ## Step 2: Review Session for Capturable Knowledge Scan the conversation for: - **Decisions**: "chose X", "decided to", "went with", "trade-off" - **Patterns**: "this approach", "reusable", "pattern", "anti-pattern" - **Debug insights**: "root cause", "th...
Capture knowledge from the current session to the appropriate vault. Auto-derives tags, validates domains, suggests related links, and triages to the correct folder.
Load the vault-knowledge skill to understand the controlled domain vocabulary and note template:
cat ~/workspace/paivot/paivot-graph/skills/vault-knowledge/SKILL.md | head -100
Detect the current project:
project=$(git remote get-url origin 2>/dev/null | xargs basename -s .git || basename "$(pwd)")
Scan the conversation for:
For each finding, extract:
Check domain against controlled vocabulary:
ai-training, ai-inference, ai-agents, ai-nlp
developer-tools (legacy), dev-tools-cli, dev-tools-testing, dev-tools-workflow, dev-tools-knowledge
product-management
security-gateway, security-hardening, security-compliance
finance-quant, finance-fintech
frontend-ui, frontend-performance
calendar-sync
If domain doesn't match, suggest closest match or ask user to pick.
Ask: "Would this knowledge help someone on a DIFFERENT project with a DIFFERENT codebase?"
.vault/knowledge/<type>/Before creating, search for related notes:
vlt vault="Claude" search query="<keywords from title>" --json
Present top 5 matches:
Related notes you may want to link:
1. [[Existing Note A]] - similar pattern
2. [[Existing Note B]] - same stack
3. [[Project X]] - used this approach
ALWAYS include at least the project note as a related link.
Auto-derive tags based on type + domain:
| Domain | Tag |
|---|---|
| ai-training | #ai/training |
| ai-inference | #ai/inference |
| ai-agents | #ai/agents |
| ai-nlp | #ai/nlp |
| developer-tools | #dev-tools/workflow |
| dev-tools-cli | #dev-tools/cli |
| dev-tools-testing | #dev-tools/testing |
| dev-tools-workflow | #dev-tools/workflow |
| dev-tools-knowledge | #dev-tools/knowledge |
| product-management | #product/management |
| security-gateway | #security/gateway |
| security-hardening | #security/hardening |
| security-compliance | #security/compliance |
| finance-quant | #finance/quant |
| finance-fintech | #finance/fintech |
| frontend-ui | #frontend/ui |
| frontend-performance | #frontend/performance |
| calendar-sync | #calendar/sync |
Build the note using the template:
---
type: <type>
project: <project>
stack: [<stack>]
domain: <domain>
status: active
confidence: <high|medium|low>
created: YYYY-MM-DD
---
# <Title>
<Summary - 1-2 sentences>
## Content
<Main body>
## Related
- [[<Project>]]
- [[<Related Note 1>]]
## Tags
<#derived-tag-1> <#derived-tag-2>
Create in _inbox/ first:
vlt vault="Claude" create name="<Title>" path="_inbox/<Title>.md" content="<full-content>" silent timestamps
Move to the correct folder based on type:
vlt vault="Claude" move path="_inbox/<Title>.md" to="<type>s/<Title>.md"
Folder mapping:
Append a session update to the project note:
vlt vault="Claude" append file="<Project>" content="
## Session $(date +%Y-%m-%d)
- <brief summary of what was done>
- Captured: [[<Note 1>]], [[<Note 2>]]"
If project note doesn't exist, create it:
vlt vault="Claude" create name="<Project>" path="projects/<Project>.md" content="---
type: project
project: <project>
stack: [<detected-stack>]
domain: <project-domain>
status: active
confidence: high
created: $(date +%Y-%m-%d)
---
# <Project>
<Brief description>
## Related
- [[<Note 1>]]
## Tags
#<project-domain-tag>" silent timestamps
## Vault Capture Summary
Project: <name>
Date: <today>
### Captured
- [decision] [[Note Title]] -> decisions/ (#domain-tag)
- [pattern] [[Note Title]] -> patterns/ (#domain-tag)
### Linked To
- [[Project]]
- [[Related Note A]]
- [[Related Note B]]
### Skipped
- <insight> (already exists as [[Existing Note]])
Total: N new notes, M links added
Before completing, verify:
## Vault Capture Summary
Project: <name>
No new cross-project knowledge to capture.
Session-specific details logged to project execution (not vault-worthy).
If vlt vault="Claude" fails:
vlt vaults to discover vault paths