recall-conversations
Tools
Two scripts retrieve data. For full option catalogs, load references/tool-reference.md.
recent_chats.py — retrieve recent sessions:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts/recent_chats.py --n 3
search_conversations.py — keyword search across all sessions:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts/search_conversations.py --query "keyword"
Workflow
- Identify the lens from user intent:
| User Says | Lens |
|---|---|
| "where were we", "recap" | restore-context |
| "what I learned", "reflect" | extract-learnings |
| "gaps", "struggling" | find-gaps |
| "mentor", "review process" | review-process |
| "retro", "project review" | run-retro |
| "decisions", "CLAUDE.md" | extract-decisions |
| "bad habits", "antipatterns" | find-antipatterns |
Load references/lenses.md for per-lens parameters, core questions, and supplementary search patterns.
-
Gather context using lens-appropriate tools:
- For recent context:
recent_chats.py --n N - For keyword search:
search_conversations.py --query "keywords"
- For recent context:
-
Apply lens questions to analyze the retrieved conversations.
-
Deepen the search if initial results are insufficient:
- Retrieve more sessions:
--n 20 - Search for specific terms that surfaced
- Filter by project:
--project projectname - If 2 rounds of deepening yield no new relevant sessions, synthesize from available data.
- Retrieve more sessions:
Query Construction
Search terms should be content-bearing words that discriminate between sessions — high information value words that are rare enough to rank relevant sessions above irrelevant ones. BM25 ranking (when FTS5 is available) weights rare terms higher automatically.
Include: specific nouns, technologies, concepts, project names, domain terms, unique phrases. More terms improve ranking precision.
Exclude: generic verbs ("discuss", "talk"), time markers ("yesterday"), vague nouns ("thing", "stuff"), meta-conversation words ("conversation", "chat") — these appear in nearly every session and add noise rather than signal.
Algorithm:
- Extract substantive keywords from user request
- If 0 keywords, ask for clarification ("Which project specifically?")
- If 1+ specific terms, search with those terms; use
--projectto narrow scope
Synthesis
Principles
- Prioritize significance — 3-5 key findings, not exhaustive lists
- Be specific — file paths, dates, project names
- Make it actionable — every finding suggests a response
- Show evidence — quotes or references
- Keep it scannable — clear structure, no walls of text
Structure
## [Analysis Type]: [Scope]
### Summary
[2-3 sentences]
### Findings
[Organized by whatever fits: categories, timeline, severity]
### Patterns
[Cross-cutting observations]
### Recommendations
[Actionable next steps]
Length
Default: 300-500 words. Expand only when data warrants it.