记忆系统多刀检索 + recall coverage 策略(8 类题型 recipe)。 Use when: 任务是 "哪些地方提过 X" / "X 的来源 / source map" / "有没有提过 Y / absence check" / "上次到现在变了什么 / delta" / 冷启动 onboard 复杂主题 / 任何召回任务搜了一刀觉得不够。 Not for: 只是选哪个入口走第一刀(用 memory-navigation)/ 已知精确 anchor 单 Read(直接 Read)/ 代码符号查(Grep/LSP)/ 新功能开发(不是 recall 任务)。 Output: 多 query 多 scope 召回 union 结果 + coverage matrix(item/source/谁提到/直接 vs 间接)+ "何时停下来"判据。 GOTCHA: 和 memory-navigation 互补不重叠 — memory-navigation 决定**第一刀走哪个工具**(search vs graph vs list_recent),本 skill 决定**要不要补刀 + 题型对应几刀几路 + 何时停**。Ragdoll家族必加载:opus 系治"我能猜出来 / 碎片够了"停太早病,fable 系治"再确认一轮"停太晚病(双向校准见正文)。
61
72%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./cat-cafe-skills/memory-search-best-practices/SKILL.md单刀 top-k 不是全集;recall 任务需要 multi-query union + Read 原文 + 知道何时停。
Query expansion 由 agent 做,不是系统做(KD-8 同源:dumb system + smart agent):
| 题型 | 例 query | Recipe(≥几刀几路) | 关键 |
|---|---|---|---|
| 是什么 | "F200 是什么" | 1 刀:search_evidence(query, hybrid, scope=docs) + Read top doc | 单刀够用 |
| 周边关系 | "F200 关联什么" | 1 刀:graph_resolve(anchor, depth=1, relations=[feature_ref,related_to]) | 配 relations filter 防 hub 爆炸 |
| 决策考古 | "为什么当时选 X 而不是 Y" | graph_resolve(anchor) → Read ADR/spec → 抽 thread anchor → get_thread_context 看原话 | 必 Read ADR 原文 + thread 原话 |
| 冷启动 onboard | "新猫接手 F200 要知道什么" | docs(hybrid) + graph + trajectories + Read spec | 三入口全用 |
| coverage 全集 | "哪些地方提过 X" | ≥3 刀:docs/hybrid + threads/semantic + agent expand 同义/缩写/中英二轮 + graph_resolve 命中 anchor 后追 source threads + union dedup | 不是单 top-k;agent 自己 expand |
| source-map / provenance | "X 这个想法的源头是哪个 thread" | canonical doc 命中后从文档抽 source thread ids → get_thread_context Read 原文 | canonical doc 自带 provenance link,跟着走 |
| absence check | "我们提过 Y 没有" | 正反两路:search(Y) + search(Y 相关概念/反义) 都 0 命中才算 absent | 单刀 0 命中不等于不存在 |
| delta | "上次到现在 X 变了什么" | list_recent(scope=threads, since=N天) + 对比 graph 邻居增减 + Read 关键 diff。压缩恢复子场景起手:先看 TodoWrite + session digest 拿到"上次已知状态" → 再 list_recent 补增量(46 review P3 补) | 时间窗口 + 增量视角 |
1. search_evidence("audhd adhd asd", hybrid, scope=docs, limit=10)
→ 命中 user_audhd_crossdomain + audhd-self-observation/ 三件套 + F085/F195/F196/F169
2. search_evidence("audhd adhd asd", semantic, scope=threads, limit=10)
→ 命中 5 个直接 thread
3. Agent 用领域知识 expand(不让系统猜):
audhd → sensory gating / 2e / RSD / PDA / hyperfocus / 倦怠 / 梦境 / 自闭 / 多动 / 神经多样性
对每个二轮搜(中文一遍 + 英文/缩写一遍)
4. Read top canonical doc (landy-audhd-operating-manual.md)
→ 从文档抽 source thread ids → 二轮 get_thread_context Read 原文
5. 输出 coverage matrix(item / source / 谁提到 / 直接 vs 间接 / 置信度)F256 Phase B/C 起,search_evidence topk 结果末尾默认渲染 📎 Related directions 块——系统把三路 expansion provenance 投影给你。接法:
convention-edge(静态代码/文档关系)> source-thread(doc↔讨论溯源)> frontmatter-alias(关键词启发式——2026-07-08 三刀实测全为 backlog/architecture/lessons 类 super-hub 泛词,低信任,别当 anchor 用)graph_resolve 命中 hint anchor 才算 consumption同一张停止判据表两种读法:opus 系读下限(≥3 路才准停),fable 系读上限(无新 anchor 即必停)——校准随 F256 Phase D per-family telemetry 迭代。
operator experience:"Ragdoll太聪明太自信,搜到足够推理就不搜了"(2026-05-17 AUDHD dogfood 实证)。
档案:"不给停止条件,会把假设空间收敛到唯一解才停"(2026-07-08 档案预测 + 行为层自述,待 AC-D1 per-family 分桶验证)。
coverage 类召回铁律(仅 coverage / source-map / absence 三题型;精确题按上表 recipe 停——"是什么"1 刀命中 Read 完即止)(2026-07-15 修订:旧版"任何召回任务 ≥3 路"与 recipe 表自相矛盾,对 opus 系治停太早、对 fable 系反向助推停太晚):
| 题型 | 停止条件 |
|---|---|
| 是什么 / 周边关系 | 1 刀命中高置信 doc + Read 完即停 |
| 决策考古 | ADR + ≥1 个 thread 原话 Read 完即停 |
| 冷启动 | 三入口 + spec Read 完 + 列 question 清单即停 |
| coverage 全集 | ≥3 路 + agent expand 二轮 + Read canonical → 无新 anchor 出现 才停 |
| source-map | canonical doc 列出的 source thread 全部 Read 完即停 |
| absence | 正反两路 + ≥1 个相关概念都 0 命中即可断言 absent |
| delta | 时间窗口扫完 + 邻居增减列出即停 |
| 错误 | 后果 | 修复 |
|---|---|---|
| 单刀 search → 拿摘要推理 → 直接答 | 漏全集(AUDHD 实证:每猫拿 10 条但全集需三猫合) | coverage 题型 ≥3 路 + 必 Read 原文 |
| 觉得 "我能猜出来" 不搜了 | Ragdoll家族病,输 dogfood 比赛 | 当 magic word 拉刹车,强制 ≥3 路 |
| 让系统 expand "AUDHD→10 个词" | 黑盒推理,污染(KD-8 违例) | Agent 自己 expand(用 LLM 领域知识 + 可解释) |
| 跨语言只搜英文 | 中文文档漏 | 中英各搜一遍 |
| canonical doc 命中后不追 source thread | source-map / provenance 残缺 | doc 内的 thread id / wikilink 全 Read |
| 单刀 0 命中就断 absent | 假阴性(可能用别的措辞写了) | 正反两路 + 相关概念都搜 |
list_recent(scope=docs) 当全集用 | DF-1 已知 docs scope timestamp 失真 / 被 global:memory 淹 | coverage 任务别只靠 list_recent,配 search+graph |
| 把 memory-navigation 和本 skill 混淆 | 重复或漏 | memory-navigation 选第一刀;本 skill 决定补刀策略 |
| 盲 follow 全部 Related directions hints | frontmatter-alias 泛词把你带去 super-hub 总目录(backlog/lessons) | 按 provenance 桶定信任;不相关就忽略 |
| Skill | 干什么 | 何时用 |
|---|---|---|
| memory-search-best-practices(本 skill) | 多刀检索 + 题型 recipe + 何时停 | 召回任务、coverage、source-map、delta、absence |
memory-navigation | 第一刀走哪个工具 + 噪音控制 + 入口决策树 | 不知道用哪个入口 |
debugging | bug 根因调查 | 遇到 bug 而非 recall |
cross-cat-handoff | 找别的猫问 | 自己搜不到求助队友 |
关系:memory-navigation 决定第一刀走哪个工具;本 skill 决定要不要补刀 + 题型对应几刀几路 + 何时停。先用 memory-navigation 选入口,再用本 skill 决定后续。
feat-lifecycledebuggingcat_cafe_get_thread_contextcollaborative-thinkingdocs/features/F200-memory-recall-eval.md v1.2 SW-1 / docs/features/F256-memory-search-strategy-evolution.md(Phase A 链入 session hook;Phase B/C 上线 Related directions)memory-navigation(前置入口决策) / ../.cat-cafe-shared-refs/memory-routing-partial.md090626a
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.