SuperAPI AI 工具集

history-insight

通用与其它

查看项目

更新于 10-16 04:48

技能介绍

History Insight 是一个用于访问、捕获和引用 Claude Code 会话历史的技能,主要用于对本地会话记录进行检索、解析并提取洞察。

用途 当用户希望访问、保存或引用 Claude Code 会话历史时触发该技能。它面向本地已有的会话数据,帮助用户从历史记录中归纳出主题、模式等分析结果。

数据位置 会话数据位于 ~/.claude/projects/<encoded-cwd>/*.jsonl。路径编码规则为:/Users/foo/project 会被编码为 -Users-foo-project。更详细的文件格式说明见 ${baseDir}/references/session-file-format.md。

主要能力

  • 按范围检索会话:支持仅当前项目或所有 Claude Code 会话两种范围。
  • 查找会话文件:对当前项目使用 find ~/.claude/projects/<encoded-cwd> -name ".jsonl" -type f;对所有会话使用 find ~/.claude/projects -name ".jsonl" -type f。
  • 按日期筛选:读取文件修改时间 mtime 后进行过滤,macOS 使用 stat -f "%Sm" -t "%Y-%m-%d" <file>,Linux 使用 stat -c "%y" <file>。
  • 解析会话内容:对 1-3 个文件可直接 Read 解析 JSONL;文件较大(≥5000 tokens)时使用 ${baseDir}/scripts/extract-session.sh <session.jsonl> 预处理(该脚本会压缩 JSONL,移除 thinking 与 tool_use)。
  • 批量处理:4 个及以上文件时启用批量提取管线,包括创建缓存目录 /tmp/cc-cache/<analysis-name>/、保存会话列表 sessions.txt、用 jq 批量提取消息到 user_messages.txt、清理过滤到 clean_messages.txt,再由 opus 任务进行综合分析。
  • 大文件并行处理:当 clean_messages.txt 过大导致 Read 失败时,用 split -l 2000 clean_messages.txt /tmp/cc-cache/<name>/batch_ 分片,并通过 Task(subagent_type="general-purpose", model="opus", run_in_background=true) 并行分析,最后合并结果。

使用方式 Step 1:确定范围(强制)。若用户已明确说明“当前项目”或“所有会话”可跳过询问;未说明时通过 AskUserQuestion 询问,选项为“当前项目”或“所有 Claude Code 会话”。 Step 2:查找会话文件(见上述 find 命令)。 Step 3:处理会话。根据文件数量走直接读取或批量管线;文件过大时先用 extract-session.sh,必要时分片并行分析。 Step 4:报告结果。输出格式包括 Session Capture Complete、Sessions(处理文件数)、Messages(总数与过滤后数量)以及 Extracted Insights(分析结果)。

适用场景 适合需要回顾某项目或全部 Claude Code 会话历史、并从中提炼洞察的场景;也适用于会话文件较多、需要批量汇总分析的情况。

限制与注意事项

  • 依赖本地会话文件存在,未找到时返回 "No session files found for this project."。
  • 需要 jq,未安装时报错 "Error: jq is required. Install with: brew install jq"。
  • 任务失败时警告 "Warning: Could not process [file]. Skipping.",并跳过该文件;若无相关会话则返回 "No sessions matched your criteria."。
  • 安全方面,输出中不得暴露完整路径,应使用 ~ 前缀。

相关资源 ${baseDir}/scripts/extract-session.sh 用于 JSONL 压缩;${baseDir}/references/session-file-format.md 描述 JSONL 结构与解析方式。