plugins/claude-memory/skills/recall-conversations/SKILL.md
Recall, search, continue, or analyze past conversations. Triggers on recall phrases ("what did we discuss", "continue where we left off", "we decided"), retrospective phrases ("do a retro", "post-mortem", "what went well", "lessons learned", "find antipatterns"), and implicit signals (past-tense references, possessives without context, assumptive questions like "do you remember").
npx skillsauth add gupsammy/claudest recall-conversationsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Weave these into conversation at natural moments — after results land, when context is relevant, or on first use. One or two per run, not all at once.
Two scripts retrieve data:
recent_chats.py — retrieve recent sessions (with optional project filter)search_conversations.py — keyword search across sessions (with optional project filter)Path prefix for both (used in recipes below):
PREFIX="python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts"
For the full option catalog, load references/tool-reference.md.
Each user intent maps to a lens with a full command recipe. Recipes default to the current project — the scripts auto-detect from CWD, so no --project flag is needed for the common case.
| User Says | Lens | Recipe (prepend $PREFIX/) |
|-----------|------|--------|
| "where were we", "recap", "continue" | restore-context | recent_chats.py --limit 5 --verbose |
| "what I learned", "reflect on what I've learned" | extract-learnings | recent_chats.py --limit 20 |
| "gaps", "where I'm struggling" | find-gaps | search_conversations.py --query "confused struggling help" |
| "mentor me", "review my process" | review-process | recent_chats.py --limit 20 --verbose |
| "retro", "retrospective", "look back", "post-mortem" | run-retro | recent_chats.py --limit 20 --verbose |
| "decisions", "CLAUDE.md-worthy rules" | extract-decisions | search_conversations.py --query "decided chose trade-off because" |
| "antipatterns", "bad habits", "mistakes I repeat" | find-antipatterns | search_conversations.py --query "again same mistake repeated forgot" |
Scope overrides: append --project NAME for a different project (e.g. --project pkm), or --all-projects to widen across everything. Multiple specific projects: --project claudest,pkm.
Example expansion of the run-retro row:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts/recent_chats.py --limit 20 --verbose
For per-lens questions, follow-ups, and supplementary search patterns, load references/lenses.md.
The recipe gets you the data. The lens tells you what to look for — for instance, run-retro asks "how did the solution evolve, what worked, what was painful". Load references/lenses.md if you need the question for your chosen lens.
--limit (1-50 for both scripts; default 5)references/lenses.md)--all-projects to look across projectsThe scripts emit full transcripts, so broad/multi-session lenses can flood context. Defend in two tiers — never trigger on session count alone; continuation-restore and specific-lookup lenses stay in-thread regardless of how many sessions match (the answer is small):
--summary — append for run-retro, find-gaps, find-antipatterns, extract-decisions, or any --all-projects/multi-week scope. Emits precomputed per-session digests instead of full content (~3× smaller, single-pass, free). The scripts flag when to reach for it: a large full-content pull sets summary_suggested (JSON meta) or prints an INFO: line on stderr. Never use --summary for restore-context or specific lookups — they need exact full text.--summary output is still too big: fanout_suggested is true in JSON meta (or the stderr INFO: line recommends fanning out). Spawn one Agent per project (subagent_type: general-purpose, model: sonnet), each running the recipe scoped to its own project and returning a structured digest; then reduce. Shard by project, never by arbitrary session count — count-based splits sever a decision or antipattern thread across agents, and per-project shards preserve cross-session dedup within each mind.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:
--project NAME or --all-projects only to override## [Analysis Type]: [Scope]
### Summary
[2-3 sentences]
### Findings
[Organized by whatever fits: categories, timeline, severity]
### Patterns
[Cross-cutting observations]
### Recommendations
[Actionable next steps]
Default: 300-500 words. Expand only when data warrants it.
data-ai
Persist learnings to memory or maintain existing memories. Triggers on "extract learnings", "save this for next time", "remember this pattern", "consolidate memories", "dream", "clean up memories".
development
Use for any image creation or editing request — logo, sticker, product mockup, nano banana, t2i, i2i, multi-reference compositing via generate.py. Not for HTML/CSS mockups, diagrams, or coded UI.
development
This skill should be used when the user says "update CLAUDE.md", "refresh CLAUDE.md", "sync CLAUDE.md with the codebase", "reorganize CLAUDE.md", "optimize project instructions", or when CLAUDE.md is stale, verbose, or out of sync.
documentation
This skill should be used when the user says "get PR comments", "show PR feedback", "what comments on my PR", "PR review comments", "show me the review", "what did reviewers say", or asks about feedback on a pull request. Not for creating PRs or responding to comments.