名称: 会话洞察 描述: 完整会话分析管道。用自然语言描述您想查找的内容,并获得综合报告。需要 ccrider MCP。 参数提示: <描述搜索内容的提示> [–项目 名称] [–之后 日期] [–限制 N]
会话洞察
端到端管道:通过自然语言提示搜索会话,分析所有匹配项,综合发现。
用法
/phx:session-insights "我所有的 Elixir Phoenix 会话"
/phx:session-insights "我调试 LiveView 的会话"
/phx:session-insights --项目 我的应用
/phx:session-insights "Oban 工作器问题" --之后 2026-01-15
/phx:session-insights "包含测试失败的会话" --限制 10
要求
需要 ccrider MCP。如果不可用,请告知用户:
需要 ccrider MCP。请查看:https://github.com/neilberkman/ccrider
管道
步骤 1:从 $参数 解析意图
从 $参数 中提取:
- 提示(非标志文本):自然语言描述要查找的内容
--项目 名称:按项目过滤(在路径中匹配子字符串)--之后 日期:仅此日期之后的会话(ISO 格式)--限制 N:最大分析会话数(默认:15)
如果未提供提示,默认为:“所有 Elixir 和 Phoenix 开发会话”
步骤 2:将提示翻译为搜索查询
基于用户提示,生成 2-5 个 ccrider 搜索查询 来覆盖意图。思考会话中可能出现的术语。
示例:
| 用户提示 | 运行的查询 |
|---|---|
| “所有我的 Elixir 会话” | mix compile, \.ex, Phoenix, Ecto |
| “LiveView 调试” | LiveView, _live.ex, assign_async, handle_event |
| “Oban 工作器问题” | Oban, worker, perform, queue |
| “我使用插件的会话” | /phx:, elixir-phoenix:, Iron Law |
| “数据库工作” | Ecto, migration, Repo., schema |
| “项目 我的应用” | (使用 --项目 过滤器,无需查询) |
| “测试失败” | mix test, test failed, assertion, ExUnit |
对每个查询运行 mcp__ccrider__search_sessions,如果提供则传递 --项目 和 --之后 过滤器。
步骤 3:合并和去重
合并所有查询结果。按会话 ID 去重。按日期排序(最近优先)。
报告给用户:
找到 {N} 个唯一会话 匹配 “{提示}”(来自 {Q} 次搜索)。 项目:{唯一项目名称列表} 日期范围:{最早} 到 {最新}
如果找到的会话超过 --限制,取最近 N 个。
如果找到 0 个会话,建议更广泛的搜索词并停止。
步骤 4:与用户确认
以紧凑表格显示会话列表:
| # | ID | 项目 | 日期 | 消息 | 摘要 |
|----|----------|---------|------------|------|------------------------|
| 1 | 90a74843 | 我的应用 | 2026-02-09 | 30 | 修复 gettext 翻译 |
询问:
“分析所有 {N} 个会话?或者输入特定数字(例如,1,3,5)以选择子集。”
步骤 5:获取转录
对于每个确认的会话:
- 调用
mcp__ccrider__get_session_messages(session_id: id) - 如果 >200 条消息,使用
last_n: 150并注意截断 - 将转录写入
.claude/session-analysis/{短-id}-transcript.md
格式化每个转录文件:
# 会话:{短-id}
项目:{项目}
日期:{日期}
消息:{数量}
## 消息
### 用户(序列 1)
{内容}
### 助手(序列 2)
{内容}
步骤 6:分析会话
通过搜索定位分析模板:
全局:**/analyze-session/references/analysis-template.md
读取模板内容。如果未找到,使用此技能指令中的内联分析问题。
按会话数量策略:
- 1-2 个会话:直接在上下文中分析
- 3-6 个会话:生成 sonnet 子代理(每个会话一个)。每个读取转录 + 模板,写入报告。
- 7+ 个会话:生成 haiku 子代理以加速
子代理提示:
读取位于 {模板路径} 的分析模板。 读取位于 {转录路径} 的会话转录。 应用模板分析此会话。 将您的报告(少于 200 行)写入 {报告路径}。
将报告写入 .claude/session-analysis/{短-id}-report.md。
步骤 7:综合
所有报告写入后,读取所有内容并生成综合报告:
.claude/session-analysis/insights-{日期}.md
结构:
# 会话洞察:{提示}
日期:{日期}
分析的会话:{N}
项目:{列表}
## 主要发现
### 最常见的摩擦模式
1. {模式} — 在 {N} 个会话中看到
2. {模式} — 在 {N} 个会话中看到
### 您应尝试的插件技能
| 技能 | 原因 | 可能帮助的会话 |
| ----------------- | --------- | ---------------------- |
| `/phx:investigate` | {原因} | {短-ids} |
| `/phx:plan` | {原因} | {短-ids} |
### 插件改进机会
汇总个体报告第 5 节的发现。按类型分组:
**缺少的自动化**:
- {具体自动化机会} — 在 {N} 个会话中看到
**缺少的技能或代理**:
- {应存在的功能} — {来自会话的证据}
**铁律候选**:
- {导致错误的模式} — 应自动捕获
**自动加载差距**:
- {文件模式,技能应加载但未加载}
### 工作流模式
- {关于开发人员工作方式的观察}
- {关于工具使用的观察}
- {有插件与无插件的会话 — 有何不同?}
## 每个会话摘要
### {短-id} — {项目} ({日期})
**目标**:{1 行}
**摩擦**:{关键痛点}
**插件机会**:{顶部改进建议}
(为每个会话重复)
步骤 8:展示结果
直接在对话中向用户显示主要发现部分。告知他们:
完整报告:
.claude/session-analysis/insights-{日期}.md每个会话报告:.claude/session-analysis/{id}-report.md
铁律
- 始终在分析前确认 — 显示会话列表,获取用户批准
- 从不跳过综合 — 个体报告有用,但跨会话模式是真正价值
- 尊重限制 — 默认最多 15 个会话以保持分析可管理