name: 分析会话 description: 分析Claude Code会话以寻找插件改进机会。仅限插件贡献者使用的开发工具。 argument-hint: <数量> [–project <项目名>] [–synthesize] disable-model-invocation: true
会话分析管道
使用结构化管道分析Claude Code会话以发现插件改进机会。
用法
/分析会话 20 # 分析前20个未分析的会话
/分析会话 50 --project 某项目 # 筛选到特定项目
/分析会话 30 --synthesize # 同时生成综合报告
参数
解析 $ARGUMENTS 获取:
- count(必需):要分析的会话数量(第一个位置参数)
- –project NAME:筛选到特定项目
- –synthesize:分析后,浓缩并生成更新的改进报告
管道
步骤 1:发现会话
查找 ~/.claude/projects/*/ 下的所有JSONL会话文件。如果指定了 --project,则进行筛选。按文件大小降序排序(作为会话丰富度的代理)。
通过检查 {SKILL_DIR}/references/session-index.json 排除已分析的会话。
步骤 2:选择前 N 个
按大小取前 N 个未分析的会话。告知用户:
“找到 {total} 个未分析的会话。按大小选择前 {N} 个。”
步骤 3:提取
运行提取脚本,为每个会话生成结构化JSON:
python3 {SKILL_DIR}/references/extract-session.py <session.jsonl> <output.json>
将提取物写入 scratchpad/session-extracts/。
对于批处理模式,首先创建会话列表JSON:
[{ "file": "/path/to/session.jsonl", "project": "name", "session_id": "id" }]
然后: python3 {SKILL_DIR}/references/extract-session.py --batch sessions.json scratchpad/session-extracts/
步骤 4:分析
使用 {SKILL_DIR}/references/analysis-template.md 的模板生成子代理。
按会话大小(总工具调用数)的代理策略:
- >100 个工具:独立的sonnet代理
- 30-100 个工具:独立的haiku代理
- <30 个工具:每批5组,单个sonnet代理
每个代理读取提取的JSON和模板,将报告写入 scratchpad/session-reports/。
步骤 5:浓缩(如果指定 --synthesize)
运行浓缩以聚合报告:
python3 {SKILL_DIR}/references/condense.py scratchpad/session-reports/ scratchpad/condensed.md
步骤 6:综合(如果指定 --synthesize)
生成一个 Opus 代理以:
- 读取
scratchpad/condensed.md - 读取现有报告
.claude/UPDATED_PLUGIN_REPORT_137_SESSIONS.md - 生成带新证据计数的更新报告
步骤 7:更新索引
将新分析的会话ID追加到 {SKILL_DIR}/references/session-index.json。
输出位置
| 工件 | 路径 |
|---|---|
| 提取的JSON | scratchpad/session-extracts/ |
| 分析报告 | scratchpad/session-reports/ |
| 浓缩发现 | scratchpad/condensed.md |
| 综合报告 | .claude/UPDATED_PLUGIN_REPORT_{total}_SESSIONS.md |
参考
- 现有报告:
.claude/UPDATED_PLUGIN_REPORT_137_SESSIONS.md - 内存笔记:
.claude/projects/.../memory/MEMORY.md(会话分析管道部分)