Recall prior memory
Search the project's durable memory before grounding any new decision. Recall is the workhorse retrieval skill — every memory you've captured becomes useful only insofar as it's findable later.
When to fire
- Before committing. About to choose X? Run
vestige-recall "X"first to find prior decisions / notes / preferences. - Before refactoring. Pull recall on the module name to surface decisions that constrain the shape.
- When the user references prior discussion. "We talked about this before" → recall, don't guess.
- When you're tempted to ask the user a question that might already be answered in memory.
- As a dedup probe before any
vestige-record-*capture, to avoid double-writing.
Tie-breaker vs vestige-context: pack is broad, recall is narrow. If you want the full state, use the pack.
How to invoke
vestige recall "<query>" --json
--hybrid: merged lexical + semantic recall. Best quality when the project has runvestige embed --alland a real embedding provider is configured. Falls back to lexical with a warning if embeddings are missing.--limit <n>: default is the project's[recall] max_results(typically 8). Tighten for focused queries.--type <decision|note|preference|question>: narrow to one memory type.--score-parts(with--hybrid): include FTS / vector / importance / type-boost breakdown in the JSON for explainability.
Avoid --semantic alone — it has no fallback when embeddings aren't ready. Use --hybrid instead; it degrades gracefully.
After invocation
{
"mode": "lexical" | "semantic" | "hybrid",
"results": [
{ "id": "mem_…", "type": "decision", "title": "…", "one_liner": "…", "score": 0.65, "available_depths": ["one_liner", "summary", "compressed", "full"] },
…
],
"warnings": []
}
Always check warnings — a hybrid → lexical fallback message means semantic recall isn't ready and you should suggest vestige embed --all if depth matters.
For each relevant hit, decide whether one_liner is enough or you need to expand via vestige-show <id> --depth full. Cite the handle when you reference a finding.
Idempotence & dedup
Read-only — safe to re-run. Vary the query phrasing on a miss before concluding nothing matches; lexical recall is keyword-sensitive, and --hybrid (when embeddings exist) catches paraphrases lexical misses.