ce-sessions

在 Claude Code、Codex 和 Cursor 中搜索并询问有关您的编码代理会话历史记录的问题。

ce-sessions会话历史记录搜索 技能。它是一个面向用户的瘦入口点,它调度 ce-session-historian 在所有三个主要编码工具(Claude Code、Codex、Cursor)中搜索会话文件,以获取与您的问题相关的上下文 - 您所做的工作、之前尝试过的内容、如何调查问题、最近发生的事情、做出的决定。

当记忆衰退时,当在新的会话中继续工作时,当您怀疑“我们以前尝试过这个但我不记得结果”时,或者当重建导致当前状态的路径时,这很有用。


TL;DR

问题 回答
它有什么作用? 在 Claude Code / Codex / Cursor 中搜索您的会话历史记录,以获取与问题相关的上下文
何时使用它 “这周我们做了什么?”、“我之前尝试过什么?”、“X 是如何被调查的?”、“特工对 Y 做了什么决定?”
它生产什么 相关发现的综合摘要——尝试了什么、什么不起作用、关键决策、相关背景
跨平台 ~/.claude/projects/~/.codex/sessions/~/.cursor/projects/ 读取会话

## 问题

默认情况下,编码代理会话历史记录是短暂的:

  • 记忆在会话之间逐渐消失 - 即使先前的上下文高度相关,新的会话也开始冷淡
  • 重复调查 — 相同的假设被测试两次,因为第一次会议的阴性结果被忘记了
  • 交叉线束失明 - Codex 中的工作不会显示给 Claude Code 代理,即使在同一个存储库上也是如此
  • 分支范围的上下文丢失 - 两周前在同一分支上的讨论如果没有工具就无法访问
  • 知道它发生了还不够 — 知道“我们尝试过这个”而没有结果仍然会导致重试

解决方案

ce-sessions 调度 ce-session-historian — 一个专门的代理,它读取所有三个线束平台上的会话文件,应用时间和存储库过滤器,提取与用户问题相关的结果,并合成结构化摘要:

  • 之前尝试过什么
  • 什么不起作用(以及为什么)
  • 关键决策
  • 相关背景

代理在工作目录之外(在线束会话文件目录中)运行,编排器级别的工具通常无法访问该目录 - 这就是为什么这是委托而不是内联处理的原因。


是什么让它如此新颖

1.跨线束会话读取

ce-session-historian 从代理可能留下上下文的所有三个位置读取:

  • ~/.claude/projects/(克劳德代码)
  • ~/.codex/sessions/(法典)
  • ~/.cursor/projects/(光标)

如果您昨天使用了 Codex,今天使用了 Claude Code,则此技能会找到昨天的上下文。单线束工具则不然。

2. 问题驱动的综合,而不是原始成绩单转储

代理不会返回会话内容的平面列表。它通过结构化部分综合针对用户问题的调查结果:

  • 之前尝试过什么 — 接近代理尝试过的方法,并得出结果
  • 什么不起作用 — 失败的假设及其原因
  • 关键决定 — 在之前的会议中做出的选择和推理
  • 相关上下文 — 与问题相关的相邻发现

如果不存在相关的先前会议,摘要会明确说明而不是捏造调查结果。

3.分支感知过滤

该技能预先解析当前的 git 分支并将其传递给代理,以便会话搜索可以过滤到在同一分支上完成的工作 - 通常是在接手工作或重建最近的上下文时最相关的工作。预解析使用 ! 反引号机制:如果它解析为普通分支名称,则将其传入;如果它返回文字命令字符串(解析失败),则它会被省略,并且代理会在运行时派生分支。

4. 瘦编排器,代理完成工作

这项技能本身是一个很薄弱的切入点——它的作用是问“你想知道什么?”如果没有提出问题,则派遣历史学家。历史学家负责实际的搜索、时间过滤、文本解析和合成。这使得面向用户的表面很小,而繁重的工作则由专业代理完成。

5.时间窗口控制

历史学家接受问题本身的时间提示(“最近”、“上周”、“自 auth 重构以来”、明确的日期)。它将这些解析为实时窗口并在过滤会话时应用它们。默认窗口是有限的,因此代理不会读取每个会话文件 - 相关性优先于召回。


简单示例

您正在着手开发两周前开始的一项功能。您不太记得您选择的是按订阅静音状态还是按用户静音状态,并且您需要在继续之前进行确认。您调用 /ce-sessions "did we decide where notification mute state lives?"

该技能预先解析分支 (tmchow/notification-mute) 并调度 ce-session-historian 以及问题、当前工作目录和分支提示。

历史学家在过去 30 天内跨所有三个线束位置搜索该分支上的会话。它发现:4 个 Claude Code 会话,1 个 Codex 会话。它会仔细阅读它们,寻找有关静音状态问题的证据。它返回一个摘要:

  • 关键决策: “在 2026 年 4 月 22 日的每个会话中,按订阅静音状态 (notification_subscription.mute_until) 而不是按用户确定。理由:按用户将强制对所有通知类型进行全局静音;用户希望按类型进行控制。”
  • 相关上下文:“早期会话考虑了一个带有 subscription_id 外键的单独 mutes 表。被拒绝,因为生命周期与订阅本身相同。”

你已经有了答案。从上次中断的地方继续,恢复之前的决策上下文。


何时去实现它

在以下情况下使用 ce-sessions

  • 您正在开始工作,需要了解之前决定/尝试过的内容
  • 新会话无法看到先前会话学到的内容
  • 你怀疑“我们以前尝试过这个,但我不记得了”
  • 您正在重建导致当前状态的路径
  • 问题是“我们什么时候决定 X”或“我们如何调查 Y”

在以下情况下跳过 ce-sessions

  • 上下文存在于提交的代码或文档中,而不是代理会话中 → 只需阅读代码/文档
  • 您想要一般会话元数据(计数、时间戳、大小)而无需语义搜索 → 直接从 plugins/compound-engineering/skills/ce-sessions/scripts/ 运行 discover-sessions.shextract-metadata.py
  • 问题是关于您记得很清楚的单个特定会话 - 直接打开会话文件

用作工作流程的一部分

ce-sessions 大多数情况下是独立调用的,但与其他技能互锁:

  • /ce-compound 第 1 阶段(完整模式) — 有选择地通过平台的技能调用原语调用 ce-sessions,以搜索先前会话中的相关上下文,将结果折叠到新学习的“无效内容”部分中
  • /ce-debug Triage — 事先尝试意识;当用户指示失败的尝试时,在调查之前询问“您已经尝试过什么”可以避免重复已知失败的方法

该技能是跨 Claude Code、Codex 和 Cursor 进行会话搜索的规范入口点;其他技能在需要会话历史记录上下文时通过平台的技能调用原语调用它。


使用独立版

大多数使用是直接的:

  • 有一个问题/ce-sessions "did we decide where notification mute state lives?"
  • 毫无疑问/ce-sessions 询问“您想了解您的会话历史记录的哪些内容?”
  • 有时间限制 — 问题可以包含时间提示(“最近”、“上周”、“自 auth 重构以来”)
  • 主题限制 — 问题可以命名主题、文件或功能(“如何测试迁移”、“我们为 N+1 查询尝试了什么”)

## 参考

论证 效果
(空) 问“你想知道什么?”
<question> <question>直接问题搜索历史记录
<topic> 收集背景信息的主题

该技能会预先解析当前的 git 分支,并在解析干净后将其用于分支过滤。协调器从问题中选择时间窗口;默认值是有限制的(7 天)。


## 常问问题

它可以跨 Claude Code、Codex 和 Cursor 使用吗? 是 — ce-sessions~/.claude/projects/~/.codex/sessions/~/.cursor/projects/ 读取。交叉线束工作出现。

如果没有相关的先前会话,它会返回什么? 摘要中的“没有相关的先前会话”消息。该技能不会编造调查结果来填充摘要。

它如何过滤相关性? 该技能使用问题来驱动相关性过滤器——首先是存储库、分支和时间窗口,如果分支没有出现任何结果,则进行关键字匹配。最多五场深入探讨的会议;其余的被跳过。综合子代理仅读取预先提取的框架/错误文件,而不读取原始会话 JSONL。

为什么存在这个技能而不是直接派遣历史学家代理? 如果没有给出问题,面向用户的界面应该提出正确的问题,并且编排器在脚本调用可移植工作的主上下文中处理分支预解析、扫描窗口选择、深入选择和每会话提取。仅综合的 ce-session-historian 子代理接收预先提取的文件路径并生成散文结果 - 根据设计,它本身无法运行发现管道。

它可以从我不在的机器上读取会话吗? 不。它仅读取本地会话文件 — ~/.claude/projects/ 等。其他计算机上的会话无法访问。

它适用于非软件问题吗? 该技能不关心主题 - 它会搜索会话文件中的任何内容。如果您已将代理用于非软件工作并希望了解相关历史记录,则此技能很有效。


另请参阅

  • ce-compound — 在完整模式捕获期间调用 ce-sessions (选择加入)以丰富先验上下文
  • ce-debug — 先前尝试意识使用类似的上下文;当信号存在时询问用户之前失败的尝试
  • plugins/compound-engineering/skills/ce-sessions/scripts/ — ce-sessions 调用的底层脚本(discover-sessions.shextract-metadata.pyextract-skeleton.pyextract-errors.py);当需要原始元数据或提取输出时可以直接运行,无需编排