name: cc-history
description: "查询 Claude Code 会话历史记录。触发词:cc-history、CC 历史、今天做了什么、昨天做了什么、工作记录、会话记录。"
trigger: cc-history, CC 历史, 今天做了什么, 昨天做了什么, 工作记录, 会话记录, today-history
argument-hint: '[--all] [--yesterday|--today] [--project ] [--ticktick] [--summary] [--no-merge]'
cc-history
通过 Python 脚本读取 ~/.claude/projects/<encoded-path>/*.jsonl 会话文件,解析时间戳和用户/助手消息,无需大模型参与即可输出结构化工作摘要。
⚠️ 强制规则
当用户问"今天做了什么/工作记录/CC 历史"时,必须第一时间运行本脚本,禁止手动 git log / find / grep 搜索。
执行优先级:
1. python3 <脚本路径> [参数] # 第一步:查询历史记录
2. 根据 --summary 输出 → 提交滴答清单 # 第二步:按需提交(可选)
3. python3 <脚本路径> --all --ticktick # 第三步:生成滴答清单 JSON(可选)
gsd:workflow
gsd:meta
gsd:goal快速查询 Claude Code 会话历史,支持按日期、项目、范围过滤,并可联动 tt skill 提交到滴答清单。
<gsd:phase name="query" order="1"> gsd:step解析用户意图:日期(今天/昨天/指定日期)、范围(当前项目/所有项目/指定项目) gsd:step构建并执行 Python 脚本命令 gsd:step展示输出结果 gsd:step询问用户是否需要进一步操作(提交到滴答清单等)
<gsd:phase name="submit" order="2" condition="用户要求提交到滴答清单"> gsd:step根据工作记录内容,总结用户当天的工作事项 gsd:step调用 tt skill,将总结的工作事项创建为滴答清单任务 gsd:step历史任务(时间已过)自动标记为完成
参数说明
| 参数 | 说明 | 示例 |
|---|---|---|
| (无参数) | 查看今天,当前项目 | python3 cc-history.py |
--all |
扫描所有项目的会话 | python3 cc-history.py --all |
--project <path> |
指定项目路径 | python3 cc-history.py --project ~/jacky-github/tt-cli |
--yesterday |
查看昨天 | python3 cc-history.py --yesterday |
--date YYYY-MM-DD |
查看指定日期 | python3 cc-history.py --date 2026-04-04 |
--summary |
汇总模式(每会话一行) | python3 cc-history.py --all --summary |
--ticktick |
输出滴答清单 JSON(自动合并相近会话) | python3 cc-history.py --all --ticktick |
--merge-gap <min> |
滴答清单合并间隔(默认 15 分钟) | python3 cc-history.py --all --ticktick --merge-gap 30 |
--no-merge |
滴答清单不合并(每个会话一条任务) | python3 cc-history.py --all --ticktick --no-merge |
参数可组合使用,如 --all --yesterday 表示查看所有项目昨天的记录。
意图解析
| 用户说法 | 日期参数 | 范围参数 |
|---|---|---|
| "今天做了什么" / "CC 历史" | (默认今天) | (默认当前项目) |
| "昨天做了什么" | --yesterday |
(默认当前项目) |
| "所有项目今天做了什么" | (默认今天) | --all |
| "4月3号的工作" | --date 2026-04-03 |
(默认当前项目) |
| "所有项目昨天做了什么" | --yesterday |
--all |
执行流程
Phase 1: 查询历史记录
Step 1 — 解析意图,执行脚本
脚本绝对路径:
/Users/jiashengwang/jacky-github/jacky-skills/plugins/monitoring/cc-history/scripts/cc-history.py
# 基本格式
python3 <脚本路径> [日期参数] [范围参数]
# 示例
python3 <脚本路径> # 今天,当前项目
python3 <脚本路径> --all # 今天,所有项目
python3 <脚本路径> --yesterday # 昨天,当前项目
python3 <脚本路径> --date 2026-04-04 # 指定日期
python3 <脚本路径> --project ~/jacky-github/tt-cli # 指定项目
python3 <脚本路径> --all --yesterday # 所有项目 + 昨天
Step 2 — 展示结果
脚本输出格式示例:
单项目模式:
============================================================
Claude Code 工作记录 - 2026-04-05
项目: ~/jacky-github/tt-cli
============================================================
--- c20d267d...7667 (14:08 -> 14:51) ---
文件: ~/.claude/projects/-Users-jiashengwang.../c20d267d-...jsonl
用户消息: 5 | 编辑: 11 | 命令: 45
[14:08] > 帮我将上午没有完成的任务分配到下午...
[14:09] $ Check tt CLI version
[14:15] ~ Edit: task.ts
全项目模式(--all):
============================================================
Claude Code 工作记录(全部项目)- 2026-04-05
============================================================
──────────────────────────────────────────────────
📂 ~/jacky-github/tt-cli (3 个会话, 120 条记录)
──────────────────────────────────────────────────
--- c20d267d...7667 (14:08 -> 14:51) ---
...
──────────────────────────────────────────────────
合计: 5 个项目 | 12 个会话 | 450 条记录
──────────────────────────────────────────────────
Checkpoint: 展示结果后等待用户下一步指令
Phase 2: 提交到滴答清单(联动 tt skill)
触发条件:用户说"帮我提交到滴答清单"、"记录到滴答清单"、"补全日程"等。
⚠️ 重叠检测规则(强制):滴答清单日历视图无法正常显示同时段重叠任务,创建前必须保证无重叠。
执行步骤:
- 查询已有任务:先用
tt task completed --start <date> --end <date>和tt task undone --start <date> --end <date>获取目标日期的所有已有任务,展示给用户 - 分析工作记录:从 Phase 1 的输出中,提取用户当天完成的工作事项
- 生成非重叠任务列表:
- 将 cc-history 的会话按实际活动时间排列,跨项目重叠的会话合并为一条任务
- 与已有任务对比,已有任务的时间段不可占用
- 每个时间段只分配一条任务(连续的 CC 会话合并为一个时间段)
- 标题 ≤15 字,具体细节写入 content
- 展示合并方案:用表格展示时间线(含已有任务 + 新任务),确认无重叠后执行
- 调用 tt skill:使用批量创建功能提交任务
- 工作时间已过的任务自动标记为完成
- 使用
echo "y" | tt task-delete删除被替换的旧任务
- 确认结果:展示最终任务清单
重叠合并策略:
| 场景 | 处理方式 |
|---|---|
| 同一项目内连续会话(间隔 < 15min) | 合并为一条任务 |
| 不同项目同时段会话 | 合并为一条任务,content 列出各项目工作 |
| CC 会话与已有滴答清单任务重叠 | 优先保留已有任务,CC 会话填充空闲时段 |
| 长时间会话(> 3h)中间有其他项目活跃 | 拆分为多个时段,中间留出其他项目的时间 |
脚本工作原理
- 根据参数定位会话目录:
- 默认:当前工作目录 →
~/.claude/projects/<encoded-cwd>/ --project:指定路径 →~/.claude/projects/<encoded-path>/--all:遍历~/.claude/projects/下所有子目录
- 默认:当前工作目录 →
- 遍历目标目录下的所有
.jsonl会话文件 - 按日期过滤(JSONL 内部 UTC 时间戳 +8 转本地时间)
- 提取用户消息和关键操作(Edit/Write/Bash)
- 按时间排序输出(
--all模式按项目分组)
注意事项
- 时间已从 UTC 自动 +8 转换为本地时间(CST)
- Skill 加载等超长内容会被自动过滤,只保留有效用户输入
- 每个会话显示统计:用户消息数、编辑数、命令数
--all模式下项目名通过读取 JSONL 文件中的 cwd 字段获取- 脚本支持在任意目录执行,无需从 skill 目录运行
Check List
- 脚本路径使用绝对路径
- 日期参数正确(今天/昨天/指定日期)
- 时间已从 UTC +8 转换为本地时间
-
--all模式按项目分组显示 - 展示结果后等待用户下一步指令
- 联动 tt skill 时:先查询目标日期已有任务,展示给用户
- 联动 tt skill 时:跨项目重叠会话合并为一条任务
- 联动 tt skill 时:每个时间段只有一条任务,无重叠
- 联动 tt skill 时:标题 ≤15 字,具体细节写入 content
- 联动 tt skill 时:历史任务自动标记完成
- 联动 tt skill 时:创建前展示合并方案表格确认