Recall 是一个用于重建近期工作上下文的技能。它的用途是在开始或恢复工作之前,先重建用户最近的工作背景,并交回一份紧凑的"胶囊",说明当前状态和下一步该做什么。
用途
在开始或恢复工作之前,重建用户的近期工作上下文,然后交回一份紧凑的现状简报:事情进展到哪里、接下来该做什么。内容保持精简、切题,只读取范围内线程所需的信息,然后停止。
上下文来源
上下文存在于两份记录中。用户自己的聊天历史保存了做过什么、决定过什么。共享记录保存了围绕同一份代码在其他名义下发生的一切:用户持续报告的症状、已发布又被回滚的修复、在生产环境中仍然触发的错误。第二份记录由 why 技能搜索,覆盖源代码管理、问题跟踪器、聊天与问题频道、长篇文档以及错误跟踪。一个带有长期 bug 尾巴的功能,其大部分故事都保存在那里,因此不要仅凭自己的对话记录来重建它。
聊天历史指本项目的 T3 线程。t3_thread_list 按最新优先枚举它们(includeSubagents: true 会加入被委托的子线程),t3_thread_search 按文本查找,t3_thread_read 以一个线程作为时间线读取(view: "activity" 包含工具调用)。
分类与路由
- 要恢复某一条具体的先前聊天,属于 session-pickup 手册,不是本技能。
- 把习惯转化为持久技能,属于 automate-me。
- 人类可读的工作总结是另一项任务。
- Recall 是在行动之前跨近期聊天加载工作上下文。
- 如果用户已经给出完整状态胶囊(路径、分支、变更),直接使用它,跳过挖掘。
使用方式
-
搜索前锁定范围。固定窗口("近期"是一个真实范围,默认最近 7 天)、主题(如果指定了)和工作区(默认当前活动工作区;未经要求绝不读取其他项目的对话记录)。把范围复述回去。绝不悄悄把"全部"变成"最近 N 条"。
-
在聊天历史中扇出。为本项目分页 t3_thread_list,直到越过窗口,剔除当前聊天和明显噪音(子代理、评估和测试聊天),把剩余线程 id 分成切片,保持 t3_thread_list 的顺序(真实的最后活动时间,绝不按线程 id)。t3_thread_search 是有界的,所以它的命中是提示,绝不是全集。在来自 orchestrator_capabilities 的快速、便宜模型上并行派生 delegate_task 子任务,每个切片一个,每个都带一个标题命名其切片,并在简报中明确列出线程 id。每个简报都写明"只读:仅检查,不写入,不执行 git 命令"和"不要委托",并告诉子代理对每个 id 执行 t3_thread_read,只保留主题相关的线程及其相关区域,跟随 nextPosition 直到 hasMore 为 false,并用 itemId 加 textOffset 恢复被截断的条目。每个返回相同的 schema,每个聊天一个块:主题、用户目标、决定、未决线程、困难与纠正、以及产物(PR、工单、分支),每项都引用线程 id。对于一两个聊天,跳过扇出,直接搜索。原始对话记录留在子代理中。主线程只拿到它们的发现。按 poteto-mode 技能的 Subagents 一节,为任务选择每个子代理的推理级别和快速或标准速度。
-
每当主题涉及某个功能、文件、子系统、区域或 bug 时,扫描共享记录。这是默认做法,不是判断题,"我在 X 上的工作"不能豁免它。把它交给 why 技能的来源调查器,但把问题从"为什么这样构建"转向"当前状态是什么、尝试过什么但没有坚持住、用户仍在报告什么"。复用其按来源划分的手册,让调查器与聊天历史挖掘并行运行,并沿用其姿态:每个来源一个调查器,空结果也是发现,跳过不可用的 MCP 并说明。把返回的内容并入简报。只有纯活动回忆且没有指定目标("我这周做了什么")时才跳过这一步,此时自己的历史和实时状态就是全部答案。
-
对照实时状态验证。把挖掘和扫描浮现的 PR、分支和工单用 git 和 gh 检查。当答案取决于某个代理实际做了什么(它运行的工具、读取的文件、遇到的错误)时,用 t3_thread_read(view: "activity",跟随 nextPosition 直到 hasMore 为 false,并用 itemId 加 textOffset 恢复被截断条目)读取完整线程,而不只是摘要。
输出契约
按下面的契约写出简报。按线程分组。停留在指定主题上。
先给胶囊,再给线程状态,再给问题,再给下一步行动。更深的细节放到下面或被砍掉。
- 胶囊。最多 5 条。这项工作是什么,整体进展到哪里。
- 线程。每个一行,前缀恰好一个状态标签:[merged #N]、[open PR #N]、[in flight <branch>]、[verified, uncommitted]、[reverted #N] 或 [planned, not started]。没有标签的线程还没完成,给它贴上。
- 问题。最多 5 条,反复出现的问题。包含用户持续报告的症状,以及任何已发布又被回滚的修复,这样下一次尝试会从上次失败的地方开始。
- 下一步行动。单个最有用的下一步行动,具体。
相邻的功能或工单不纳入,除非它阻塞当前工作。当胶囊和线程行超出一屏时,先删细节,再删线程。通过 unslop 技能撰写简报,聊天发现按线程 id 引用,共享记录发现按其来源引用(PR #、工单 ID、聊天永久链接、错误跟踪器问题),在任何公开输出前先清理私有上下文。
回复:按上述契约给出简报。
适用场景
- 开始或恢复某个项目的工作前,想快速了解最近进展。
- 需要跨近期多条聊天重建工作上下文。
- 需要结合共享记录(用户报告、既有修复、事故)了解某个功能或 bug 的现状。
- 需要在指定时间窗口、指定主题和指定工作区内回顾工作。
限制
- 恢复单条具体先前聊天属于 session-pickup 手册,不是本技能。
- 把习惯转化为持久技能属于 automate-me。
- 人类可读的工作总结是另一项任务。
- 如果用户已给出完整状态胶囊,应直接使用并跳过挖掘。
- 不能悄悄扩大范围,"全部"不能变成"最近 N 条"。
- 不能读取其他项目的对话记录,除非被要求。
- t3_thread_search 有界,命中只是提示,不是全集。
- 只有纯活动回忆且无指定目标时才跳过共享记录扫描。
- 相邻功能或工单不纳入,除非它阻塞当前工作。