Vault Query
Search and analyze the vault knowledge base from the CLI.
Subcommands
Parse $ARGUMENTS to determine which subcommand to run:
stats
Count learnings by status and type, show promotion candidates:
Globforvault/learnings/*.md- Read each file's frontmatter
- Aggregate counts by
type(learning/error/feature),status,area, andproject - List any entries with
recurrence-count >= 3as promotion candidates - Output a summary table
promotions
List learnings eligible for promotion:
Grepforrecurrence-count:invault/learnings/*.md- Read files where
recurrence-count >= 3 - For each, show: id, title, recurrence-count, first-seen, last-seen, pattern-key
- Sort by recurrence-count descending
recent (or recent N)
Show the last N learnings (default 10):
Globforvault/learnings/*.md- Sort by filename (date-based naming gives chronological order)
- Read the last N files
- Show: id, type, title, status, tags
by-tag <tag>
Filter learnings by tag:
Grepfor the tag invault/learnings/*.mdfrontmattertags:lines- Read matching files
- Show: id, type, title, status
Free-form query
For any other $ARGUMENTS, treat it as a search query:
Grepfor the query invault/learnings/*.md(both frontmatter and body)- Also search
vault/shared/**/*.md - Read matching files and present relevant excerpts
- Highlight matching
pattern-key,tags, and section content
Output Format
Use concise tables for structured output. Example:
| ID | Type | Title | Status | Tags |
|----|------|-------|--------|------|
| LRN-20250310-001 | learning | Claude CLI env stripping | resolved | [cli, env, spawn] |
For stats, use summary format:
Vault Stats:
Learnings: 12 (8 resolved, 3 new, 1 promoted)
Errors: 5 (4 resolved, 1 investigating)
Features: 3 (1 built, 2 requested)
Promotion candidates: 2