一键导入
vault-operations
capture, remember, store, search, find, tasks, task list, todo, people, projects, vault, relationship, stale, contact, project health, stalled
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
capture, remember, store, search, find, tasks, task list, todo, people, projects, vault, relationship, stale, contact, project health, stalled
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
brief, summary, daily, weekly, end of day, EOD, digest, morning, recap, meeting prep, what's due, status update, review
Interactive web tasks, browser login, click, scroll, form interaction, authenticated sessions, Playwright MCP (project)
Query and summarize Claude Code terminal session history
Email, inbox, Outlook, Microsoft 365, mail, messages, fetch emails, search emails, draft, reply, email processing (project)
fact, decision, architecture, knowledge, permanent, remember forever, always know, decisions, outcomes, lessons learned
GitHub CLI, docker commands, git operations, curl, native CLI tools, gh issue, gh pr, container, repository, API calls (project)
| name | vault-operations |
| description | capture, remember, store, search, find, tasks, task list, todo, people, projects, vault, relationship, stale, contact, project health, stalled |
Vault is PCP's core data layer. It handles:
Script: vault_v2.py
When you receive content to remember, use smart_capture():
from vault_v2 import smart_capture
result = smart_capture("John mentioned the API needs rate limiting by Friday")
# Returns:
# {
# 'capture_id': 123,
# 'task_id': 456, # Auto-created if deadline detected
# 'type': 'note', # note|task|idea|decision|question
# 'entities': {...}, # Extracted people, projects, topics
# 'linked': {...} # Linked to existing DB records
# }
The capture system automatically:
# Capture text
python vault_v2.py capture "Meeting with John - decided to use Redis for caching"
# Output shows what was detected
Captured as decision (ID: 123)
Created task (ID: 456)
People: John
Linked to projects: [1]
Searches captures, people, projects, and files:
from vault_v2 import smart_search
results = smart_search("rate limiting")
# Returns list of matches from different sources
Searches ALL PCP data sources with consistent format:
from vault_v2 import unified_search
# Search everything
results = unified_search("budget")
# Search specific sources only
results = unified_search("budget", sources=["knowledge", "tasks"])
Valid sources: captures, knowledge, emails, tasks
# Default search (captures, people, projects)
python vault_v2.py search "rate limiting"
# Search all sources (captures, knowledge, emails, tasks)
python vault_v2.py search "rate limiting" --all
# Search specific sources
python vault_v2.py search "budget" --sources knowledge,tasks
from vault_v2 import get_tasks, complete_task
# Get pending tasks
pending = get_tasks(status="pending")
# Get tasks due within N days
urgent = get_tasks(due_within_days=3)
# Complete a task
complete_task(task_id=42)
# List pending tasks (default)
python vault_v2.py tasks
# List completed tasks
python vault_v2.py tasks done
# List all tasks
python vault_v2.py tasks all
Commitments are things the user has committed to do or follow up on.
| Type | Examples |
|---|---|
follow_up | "I'll follow up with John", "Let me get back to you" |
promise | "I'll send the document", "I will review it by Friday" |
deadline | "Due by EOD", "Deadline is January 15" |
PCP tracks people the user interacts with, maintaining relationship history.
When smart_capture() processes text:
last_contacted and interaction_count updated automaticallyresult = smart_capture("Had coffee with John about the API project")
# -> John's last_contacted updated to now
# -> John's interaction_count incremented
from vault_v2 import get_person, add_person, get_relationship_summary, get_stale_relationships
# Find person by name
person = get_person("John")
# Add new person
person_id = add_person("Jane Doe", relationship="colleague", context="From Acme Corp")
# Get full relationship summary
summary = get_relationship_summary(person_id)
# Includes: contact history, recent captures, shared projects
# Find people not contacted recently
stale = get_stale_relationships(days=14)
# Basic person info
python vault_v2.py person 1
# Full relationship summary
python vault_v2.py person 1 --summary
# Find stale relationships (not contacted in N days)
python vault_v2.py relationships --stale 14
People are "stale" if:
last_contactedResults are sorted with most urgent first.
PCP tracks project health automatically.
| Status | Meaning |
|---|---|
healthy | Active in last 14 days, no overdue tasks |
needs_attention | No activity in 14-30 days |
stalled | No activity in 30+ days |
has_overdue | Active but has overdue tasks |
inactive | Project status is not "active" |
from vault_v2 import get_project, get_project_health, get_stalled_projects, restore_context, get_project_context
# Get project by name
project = get_project("PCP")
# Get health metrics
health = get_project_health(project_id)
# Includes: activity levels, task counts, staleness indicator
# Find stalled projects
stalled = get_stalled_projects(days=14)
# Restore full project context (for getting back up to speed)
context = restore_context(project_id)
# Get structured context data
ctx = get_project_context(project_id)
# Returns: project info, health, captures, decisions, tasks, people, knowledge
# Basic project info
python vault_v2.py project 1
# Full health metrics
python vault_v2.py project 1 --health
# Find stalled projects
python vault_v2.py projects --stalled 14
# Restore context (by ID or name)
python vault_v2.py context PCP
python vault_v2.py context 1
python vault_v2.py context PCP --json
Pattern detection generates task suggestions. Use vault_v2.py to approve them:
from vault_v2 import approve_suggestion, dismiss_suggestion
from patterns import get_suggested_tasks
# Get pending suggestions
suggestions = get_suggested_tasks(status="pending")
# Approve and create task
result = approve_suggestion(suggestion_id=1, project_id=5)
# Dismiss (mark as not useful)
dismiss_suggestion(suggestion_id=2)
# List pending suggestions
python vault_v2.py suggestions
# Approve and create task
python vault_v2.py suggestions --approve 1
# Dismiss
python vault_v2.py suggestions --dismiss 2
# Get vault statistics
python vault_v2.py stats
# Output:
# Captures: 150 (5 today)
# Tasks: {'pending': 12, 'done': 45}
# Overdue: 2
# People: 25
# Projects: 4 active
# Files: 18
| User Says... | Function/Command |
|---|---|
| "Remember this..." | smart_capture(content) |
| "What did X say about..." | smart_search(query) |
| "Find everything about..." | unified_search(query) |
| "What tasks are pending?" | get_tasks(status="pending") |
| "Mark that done" | complete_task(task_id) |
| "I'll follow up with John" | Create task with store_task() |
| "What's overdue?" | get_tasks(status="pending", overdue=True) |
| "Who is John?" | get_person("John") or get_relationship_summary(id) |
| "Who haven't I talked to?" | get_stale_relationships(days=14) |
| "How's project X doing?" | get_project_health(id) |
| "Get me up to speed on X" | restore_context(id) |
| "What projects need attention?" | get_stalled_projects(days=14) |
Use smart_capture() for what the user shares in conversation.
Use add_knowledge() for facts that should persist permanently.
Captures automatically extract:
When a capture mentions a person, the system automatically:
last_contacted timestampinteraction_countfirst_contacted if first timeThis enables stale relationship detection.
| Table | Purpose |
|---|---|
captures_v2 | All captured content |
people | People tracked |
projects | Projects tracked |
tasks | Action items |
suggested_tasks | Pattern-generated suggestions |
/knowledge-base - Permanent facts and decisions/brief-generation - Briefs include stale relationships, stalled projects