Cursor Chat Analysis Skill
按日期条件查找或导出 Cursor 聊天记录,分析每个问题的解决过程并生成 xlsx 报告。
输入
用户指定日期条件(如"昨天"、"2026-04-20"、"上周")或直接指定 .md 文件/目录。
聊天记录存放目录:C:\Users\lastyear\Desktop\cursor_logs\
输出
生成 .xlsx 表格文件,每个问题占一行,列如下:
| 列名 | 内容 | 说明 |
|---|---|---|
| 问题描述 | 简洁描述问题 | 1-2 句话 |
| 对话次数 | 该问题的 User 消息数 | 统计轮次 |
| 初始提示词 | 第一条 User 消息原文 | 完整内容,不精简 |
| 最终解决提示词 | 问题最终解决时的关键提示词 | 完整内容,不精简 |
| 解决关键 | 解决过程中的关键技术点/转折 | 概括 |
| 提示词策略 | 整体提示词策略分析 | 如分步引导、上下文引用等 |
| 优化建议 | 提示词可优化的方向 | 具体建议 |
| 备注 | 优化方向总结 | 综合评价 |
数据表结束后空两行,写入总结区域:
- 提示词优化建议:从所有问题的优化建议中提炼通用建议(list)
- 通用提示词规则:精炼成可直接用于 AI 规则的通用 rules 文本
执行流程
步骤 0:解析用户条件
解析用户的日期条件:
- "昨天" / "昨天的" → 计算昨天的日期
- "今天" → 今天的日期
- "2026-04-20" / "4月20日" → 具体日期
- "上周" / "这周" → 日期范围
- 直接指定文件/目录 → 跳到步骤 3
- 未指定日期 → 询问用户要分析哪天的记录
步骤 1:查找已有聊天记录
在 C:\Users\lastyear\Desktop\cursor_logs\ 目录下查找匹配日期的 .md 文件。
文件命名规则:{日期}_{哈希值}.md,如 2026-04-13_51a45978.md。
匹配逻辑:
- 精确日期 → 查找 2026-04-20_*.md
- 日期范围 → 查找范围内的所有 .md
分支判断:
- 找到匹配文件 → 进入步骤 3(分析)
- 未找到匹配文件 → 进入步骤 2(导出)
步骤 2:导出聊天记录(调用 cursor-chat-export 技能)
当没有找到匹配日期的 .md 文件时,需要先导出。
执行导出:使用 cursor-chat-export 技能导出指定日期的聊天记录。
python "C:\Users\lastyear\.codebuddy\skills\cursor-chat-export\cursor_chat_export.py" --project "C:\Users\lastyear\Desktop\project\win\MagiCenter" --date 2026-04-20 --output-dir "C:\Users\lastyear\Desktop\cursor_logs"
如果导出结果为空(该日期无记录):
- 提示用户:「{日期} 没有 Cursor 聊天记录,是否要往前推查找更早的记录?」
- 用户确认后,逐日往前推(日期 -1 天),重新导出
- 找到有记录的日期后,继续进入步骤 3
- 用户也可以指定新的日期范围
如果导出成功 → 进入步骤 3。
步骤 3:环境检查
检查 Python 和 openpyxl 是否可用。脚本 cursor_chat_analyze.py 会检查 openpyxl 版本(需要 >=3.1.0),未安装或版本过低时打印安装命令并退出。
步骤 4:读取聊天记录
读取步骤 1 或步骤 2 获取的 .md 文件。
聊天记录格式参考:
## Conversation N
- **ID**: `xxx`
- **Created**: 2026-04-13T13:19:20
- **Messages**: 55
### 👤 User
> timestamp
消息内容
### 🤖 Assistant
> timestamp
回复内容
步骤 5:分析并归类问题
这是核心步骤,需要 AI 深度分析每个对话。
关键分析逻辑:
-
识别独立问题:一个对话文件中可能包含多个问题。通过以下信号判断问题边界:
- 用户提出全新主题(与上文无关)
- 话题发生明显转换
- 使用fix:/feat:/ana:等前缀标识新任务
- 用户说"接下来"、"另外"、"换一个"等转折词 -
归类同一问题的多次对话:多个 Conversation 可能围绕同一个问题(如分多次对话解决同一 Bug)。判断依据:
- 涉及相同文件/模块
- 用户描述的问题本质相同
- 后续对话明确引用之前的上下文(如"继续"、"那个问题还有") -
提取每个问题的字段:
- 问题描述:用 1-2 句话概括核心问题
- 对话次数:统计该问题相关的 User 消息总条数(跨多个 Conversation 合并计算)
- 初始提示词:该问题的第一条 User 消息,完整原文,不做任何精简
- 最终解决提示词:最终解决问题时的关键 User 消息,完整原文
- 解决关键:解决过程中的核心技术决策/转折点
- 提示词策略:分析用户使用的提示词策略(如:分步引导、引用代码上下文、使用 @ 符号引用文件、提供错误信息等)
- 优化建议:基于分析给出提示词优化建议
- 备注:总结优化方向
步骤 6:生成 JSON 数据
将分析结果构建为以下 JSON 结构,保存为临时文件(桌面 cursor_logs 目录下 _analysis_temp.json):
{
"problems": [
{
"problem_description": "问题描述",
"conversation_count": 5,
"initial_prompt": "完整的初始提示词原文...",
"final_prompt": "完整的最终解决提示词原文...",
"key_resolution": "解决关键",
"prompt_strategy": "提示词策略分析",
"optimization_suggestion": "优化建议",
"remark": "备注"
}
],
"summary": {
"prompt_suggestions": [
"通用提示词优化建议1",
"通用提示词优化建议2"
],
"universal_rules": "精炼的通用规则文本,可直接用作 AI rules"
}
}
步骤 7:生成 xlsx 报告
执行脚本生成 xlsx:
python "C:\Users\lastyear\.codebuddy\skills\cursor-chat-analyze\scripts\cursor_chat_analyze.py" "C:\Users\lastyear\Desktop\cursor_logs\_analysis_temp.json" --output "C:\Users\lastyear\Desktop\cursor_logs\analysis_report.xlsx"
步骤 8:报告结果
告知用户:
- 分析了多少个文件
- 识别了多少个独立问题
- xlsx 文件路径
- 主要发现摘要
清理临时 JSON 文件。
完整流程示例
示例 1:按日期分析
用户说:"帮我分析昨天的 Cursor 聊天记录"
- 解析条件:昨天 = 2026-04-20
- 查找
C:\Users\lastyear\Desktop\cursor_logs\2026-04-20_*.md→ 未找到 - 调用
cursor-chat-export导出 2026-04-20 的记录 → 无记录 - 提示用户:「昨天(2026-04-20)没有聊天记录,是否往前推查找?」
- 用户说"继续" → 导出 2026-04-19 → 无 → 导出 2026-04-18 → 找到记录
- 读取
.md文件 → 分析归类问题 → 生成 JSON → 生成 xlsx
示例 2:直接指定文件
用户说:"帮我分析桌面上 cursor_logs 目录里的所有记录"
- 直接读取目录下所有
.md文件 - 分析归类 → 生成 JSON → 生成 xlsx
分析要点
提示词策略常见模式
识别并标注以下策略模式:
- 上下文引用:使用 @文件名 或 @行号范围 引用代码
- 分步引导:将复杂任务拆分为多步
- 错误反馈:粘贴错误日志/截图引导修复
- 迭代修正:通过多次对话逐步完善
- 约束指定:明确技术栈、风格、命名等要求
- 前缀标识:使用 fix: / feat: / ana: 分类
优化建议维度
从以下维度给出建议:
- 提示词是否足够具体(缺少上下文、目标模糊)
- 是否可合并为一次对话(减少来回次数)
- 是否可提前提供关键信息(错误日志、文件路径等)
- 提示词结构是否清晰(目标→约束→期望输出)