用途
Pstack recall 用于在开始或恢复工作之前,重建用户近期的工作上下文,并输出一份紧凑的简报,说明当前进展与可执行的下一步。它面向的是“最近在这个仓库做了什么、现在处于什么状态”这类上下文召回任务,而非恢复某一个具体会话或把习惯固化为技能。
主要能力
- 会话历史挖掘:通过技能目录下的
python3 scripts/history.py --repo <repository> --days <N>列出指定仓库在时间窗口内的会话引用(含主机、工作区、最后活动时间,不含消息文本),再用--read <session-file>读取单个会话内容。 - 并行子代理分片:当候选会话较多时,可通过
/pstack-swarm启动并行子代理,各自处理一部分语料,并按最后活动时间排序候选、只读取与主题匹配的会话片段。 - 共享记录排查:当主题涉及具体功能、文件、子系统或缺陷时,借助
/pstack-why的源调查器,在源码管理、问题跟踪、聊天与 issue 频道、长文档、错误跟踪等来源中查找当前状态、已尝试但未奏效的修复、用户仍在报告的问题。 - 实时状态核验:对挖掘出的 PR、分支、工单,用 git 和 gh 核验其当前状态;当结论依赖代理实际执行细节时,以更大的
--max-chars读取完整会话记录。 - 结构化简报输出:按“胶囊(最多 5 条)→ 线程状态(带状态标签)→ 问题(最多 5 条)→ 下一步”的契约输出,线程状态标签包括
[merged #N]、[open PR #N]、[in flight <branch>]、[verified, uncommitted]、[reverted #N]、[planned, not started]。
使用方式
- 先锁定范围:明确时间窗口(默认最近 7 天)、主题(若有)和工作区(默认当前仓库),并向用户复述确认。
- 在仓库内读取会话历史契约,运行 history 脚本列出候选会话。
- 对一两个会话可直接检索;对多个会话则通过
/pstack-swarm并行分片处理,主线程只接收子代理的发现结果。 - 若主题指向具体目标,则并行执行共享记录排查,将结果并入简报。
- 用 git 和 gh 核验引用的产物状态。
- 按输出契约撰写简报,引用会话发现时标注主机与会话 ID,引用共享记录时标注来源(PR 编号、工单 ID、聊天永久链接、错误跟踪 issue),并在公开输出前脱敏。
适用场景
- 开始或恢复某个仓库的工作前,快速重建近期上下文。
- 在限定范围内发现跨主机的会话与活动。
- 回答“我这周做了什么”这类纯活动召回(此时仅依赖自身历史与实时状态)。
限制
- 该技能为只读操作,不修改任何状态。
- 历史覆盖不完整时,不能据此判定某个工作树不活跃。
- 无可读历史的主机会被标记为覆盖缺口。
- 不得在未被要求时读取其他项目的会话记录;不得把“全部”悄悄缩小为“最近 N 天”。
- 相邻功能或工单除非阻塞当前任务,否则不纳入简报。
- 纯活动召回且无具体目标时,可跳过共享记录排查。