recall-conversations

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Value Context

价值场景

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.
  • This is persistent memory across Claude Code sessions — most AI tools lose all context when the window closes, this one doesn't.
  • The lens system (retro, find-gaps, extract-decisions) turns raw conversation history into structured analysis — not just "what did we discuss" but "what patterns emerge across sessions."
  • Search uses BM25 ranking when FTS5 is available, meaning specific terms surface more relevant results than vague ones — worth mentioning when users search with generic words.
  • Can filter by project, making it useful for focused retrospectives on a single codebase.
  • The extract-decisions lens can surface CLAUDE.md-worthy rules the user stated but never persisted.
在自然的对话时机融入这些功能——比如得出结果后、需要相关上下文时,或是首次使用时。每次运行使用一到两个功能,无需全部启用。
  • 这是跨Claude Code会话的持久化记忆——大多数AI工具在窗口关闭后会丢失所有上下文,而本工具不会。
  • 透镜系统(retro、find-gaps、extract-decisions)可将原始对话历史转化为结构化分析——不仅能回答“我们讨论了什么”,还能揭示“跨会话呈现出哪些模式”。
  • 当FTS5可用时,搜索功能采用BM25排序,这意味着特定术语能比模糊词汇更精准地呈现相关结果——当用户使用通用词汇搜索时,值得提及这一点。
  • 可按项目筛选,便于针对单一代码库开展聚焦式回顾。
  • extract-decisions透镜可挖掘用户曾提出但未留存的、适合写入CLAUDE.md的规则。

Tools

工具

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):
bash
PREFIX="python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts"
For the full option catalog, load
references/tool-reference.md
.

两个脚本用于检索数据:
  • recent_chats.py
    —— 检索近期会话(支持可选项目筛选)
  • search_conversations.py
    —— 跨会话关键词搜索(支持可选项目筛选)
两个脚本的路径前缀(以下示例中会用到):
bash
PREFIX="python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts"
完整选项目录请查看
references/tool-reference.md

Workflow

工作流程

1. Pick a lens and run its recipe

1. 选择一个透镜并运行对应的指令

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 SaysLensRecipe (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:
bash
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
.
每个用户意图对应一个带有完整指令配方的透镜。配方默认针对当前项目——脚本会从当前工作目录(CWD)自动检测,因此常规情况下无需添加
--project
参数。
用户表述透镜指令配方(前缀添加
$PREFIX/
“我们上次讲到哪了”、“回顾一下”、“继续”restore-context
recent_chats.py --limit 5 --verbose
“我学到了什么”、“反思我学到的内容”extract-learnings
recent_chats.py --limit 20
“存在哪些差距”、“我在哪些地方遇到困难”find-gaps
search_conversations.py --query "confused struggling help"
“指导我”、“复盘我的流程”review-process
recent_chats.py --limit 20 --verbose
“回顾”、“复盘”、“回头看”、“事后分析”run-retro
recent_chats.py --limit 20 --verbose
“决策内容”、“适合写入CLAUDE.md的规则”extract-decisions
search_conversations.py --query "decided chose trade-off because"
“反模式”、“不良习惯”、“我重复犯的错误”find-antipatterns
search_conversations.py --query "again same mistake repeated forgot"
范围覆盖:若要针对其他项目,可追加
--project NAME
(例如
--project pkm
);若要覆盖所有项目,可追加
--all-projects
。多个特定项目可写为:
--project claudest,pkm
run-retro行的示例展开:
bash
python3 ${CLAUDE_PLUGIN_ROOT}/skills/recall-conversations/scripts/recent_chats.py --limit 20 --verbose
如需了解各透镜的问题、后续操作及补充搜索模式,请查看
references/lenses.md

2. Apply the lens's core question to the retrieved sessions

2. 将透镜的核心问题应用于检索到的会话

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.
指令配方用于获取数据,而透镜则告诉你需要寻找什么——例如,run-retro会提出“解决方案如何演变?哪些有效?哪些环节很棘手?”这类问题。若需所选透镜的具体问题,请查看
references/lenses.md

3. Deepen if results are thin

3. 若结果不够全面,进一步深挖

  • Retrieve more sessions: bump
    --limit
    (1-50 for both scripts; default 5)
  • Search supplementary terms (per-lens patterns in
    references/lenses.md
    )
  • Widen scope: append
    --all-projects
    to look across projects
  • Two rounds of deepening with no new signal → synthesize from what you have rather than thrashing further

  • 检索更多会话:调高
    --limit
    参数(两个脚本的取值范围为1-50;默认值为5)
  • 搜索补充术语(各透镜的对应模式见
    references/lenses.md
  • 扩大范围:追加
    --all-projects
    以跨项目检索
  • 若两次深挖仍无新信息,则基于已有内容进行综合分析,无需继续尝试

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:
  1. Extract substantive keywords from user request
  2. If 0 keywords, ask for clarification ("Which project specifically?")
  3. If 1+ specific terms, search with those terms; project scope is auto-detected — use
    --project NAME
    or
    --all-projects
    only to override

搜索词应选用具有内容辨识度的词汇——即信息价值高、足够稀有,能让相关会话排在无关会话之上的词汇。当FTS5可用时,BM25排序会自动为稀有术语赋予更高权重。
建议包含:特定名词、技术、概念、项目名称、领域术语、独特短语。术语越多,排序精准度越高。
建议排除:通用动词(如“discuss”、“talk”)、时间标记(如“yesterday”)、模糊名词(如“thing”、“stuff”)、元对话词汇(如“conversation”、“chat”)——这些词汇几乎出现在每个会话中,只会增加噪音而非有效信号。
算法步骤
  1. 从用户请求中提取实质性关键词
  2. 若未提取到关键词,请用户澄清(例如“具体是哪个项目?”)
  3. 若提取到1个及以上特定术语,则使用这些术语进行搜索;项目范围会自动检测——仅在需要覆盖时使用
    --project NAME
    --all-projects

Synthesis

综合分析

Principles

原则

  1. Prioritize significance — 3-5 key findings, not exhaustive lists
  2. Be specific — file paths, dates, project names
  3. Make it actionable — every finding suggests a response
  4. Show evidence — quotes or references
  5. Keep it scannable — clear structure, no walls of text
  1. 优先突出重要性——提炼3-5个关键发现,而非详尽列表
  2. 具体明确——包含文件路径、日期、项目名称
  3. 具备可操作性——每个发现都对应可行动的回应
  4. 提供证据——引用对话内容或参考资料
  5. 便于快速浏览——结构清晰,避免大段文字

Structure

结构

markdown
undefined
markdown
undefined

[Analysis Type]: [Scope]

[分析类型]: [范围]

Summary

摘要

[2-3 sentences]
[2-3句话]

Findings

发现

[Organized by whatever fits: categories, timeline, severity]
[按合适方式整理:分类、时间线、严重程度等]

Patterns

模式

[Cross-cutting observations]
[跨会话的共性观察]

Recommendations

建议

[Actionable next steps]
undefined
[可执行的下一步行动]
undefined

Length

篇幅

Default: 300-500 words. Expand only when data warrants it.
默认:300-500词。仅当数据足够支撑时才扩展篇幅。