name: airay-agent-review version: 1.0.0 description: | 每日复盘。根据 Claude Code 本地对话记录,生成结构化的每日工作复盘报告。支持当天、昨天、近 3 天、近 7 天。
当用户说"复盘"、"agent review"、"/agent-review"、"/复盘"时触发。
每日复盘
启动横幅
技能启动时,输出以下横幅:
═══════════════════════════════════════════════════════════════
▌ 每日复盘 ▐
根据 Claude Code 本地对话记录,生成结构化的每日工作复盘报告
═══════════════════════════════════════════════════════════════
磊叔 │ 微信:AIRay1015 │ github.com/akira82-ai
───────────────────────────────────────────────────────────────
- 支持 4 种时间范围:今天 / 昨天 / 近 3 天 / 近 7 天
- 自动提取对话记录、工具调用统计、Git 提交记录
- 生成结构化报告:概要 / 工作量统计 / 成功与进展 / 困难与卡点 / AI 自评
- 报告自动保存至当前工作目录
═══════════════════════════════════════════════════════════════
最后更新:2026-04-06
参数处理
如果用户没有指定时间范围,用 AskUserQuestion 询问,选项为:
- 今天
- 昨天
- 近 3 天
- 近 7 天
不提供其他选项。根据用户选择,计算对应的日期范围(当天、前 1 天、前 3 天、前 7 天),时间戳使用 UTC 时区。
数据提取步骤
第 1 步:从 history.jsonl 获取消息列表
用 Bash 执行 Python 脚本,读取 ~/.claude/history.jsonl,按时间戳筛选指定日期范围内的所有记录。 每条记录包含:display(用户输入内容)、timestamp(Unix 毫秒)、project(项目路径)、sessionId。 统计精确的消息条数。 如果选择了多天(近 3 天、近 7 天),按天分别统计。
第 2 步:获取涉及的 session 列表
从第 1 步中提取不重复的 sessionId 和对应的项目路径。
时间戳格式说明(重要)
两个数据源的时间戳格式不同,脚本中必须统一处理:
history.jsonl的 timestamp 字段是 int(Unix 毫秒),如1770288337219- 项目 JSONL 文件的 timestamp 字段是 ISO 8601 字符串,如
"2026-03-31T04:24:20.514Z"
在脚本开头定义统一的解析函数:
def to_ms(ts):
if isinstance(ts, (int, float)):
return ts
if isinstance(ts, str):
dt = datetime.datetime.fromisoformat(ts.replace('Z', '+00:00'))
return int(dt.timestamp() * 1000)
return 0
后续所有时间戳比较和过滤都使用 to_ms() 转换后再比较。
第 3 步:从项目 JSONL 文件中提取详细内容
使用技能自带的 extract.py 脚本提取数据,确保时间戳处理稳定可靠。
调用脚本:
python ~/.claude/plugins/marketplaces/airay-skills/skills/airay-agent-review/scripts/extract.py --start_ms <start_ms> --end_ms <end_ms>
脚本返回的数据结构:
{
"sessions": [...],
"total_messages": N,
"tool_calls": {"Bash": 36, "Read": 2, "Write": 2, ...},
"tool_errors": {...},
"files_touched": ["path/to/file1", "path/to/file2", ...],
"projects": ["/path/to/project1", "/path/to/project2"],
"user_messages": [...]
}
脚本内部会自动处理:
- 时间戳格式转换(int 毫秒 / ISO 8601 字符串统一处理)
- content 数组遍历(检查 tool_use 和 server_tool_use)
- 路径编码(项目路径中的 / 替换为 -)
- 错误统计(is_error 标记)
第 4 步:获取 Git 提交记录
对当天涉及的项目目录,执行 git log --since="<起始日期> 00:00:00" --until="<结束日期+1天> 00:00:00" --oneline,获取提交记录。
报告格式
1. 概要(100 字以内)
- 用一段话概括指定时间范围内完成了哪几件事
- 重点突出,信息密度高
- 可以用「金句」开头。
2. 工作量统计
- 精确数字,不估算。表格形式: | 指标 | 数值 | | 你发的消息 | N 条 | | 涉及项目 | N 个 | | 工具调用 | N 次(失败 N 次) | | Git 提交 | N 次 |
3. 成功与进展
- 按项目分组,每个项目一个子标题:### [项目名] 简要标题
- 内容描述完成了什么任务、发现了什么、哪些过程顺畅。
- 不出现具体时间点。
模板可参考:
### [ 项目名 ]
内容描述等内容
4. 困难与卡点
- 列出遇到的困难和阻碍,包括:外部限制(API 限流等)、工具能力边界、操作策略失误等。
- 不出现具体时间点。
5. AI 自评:对你的评价
站在 AI 的角度评价用户。要求:
- 直接了当,不客套,深刻
- 基于具体对话行为给出评价,有例子
- 包含:用户的强项、可改进的地方、值得肯定的思维特质
- 语气坦诚,可以指出不足
输出
报告生成后:
- 在终端中完整展示
- 保存到 当前工作目录下,命名为:YYYY-MM-DD.md(多天范围时文件名用 YYYY-MM-DD~YYYY-MM-DD.md)
- 如果文件已存在则覆盖
格式规则
- 所有统计数字必须精确,不允许"约"、"大概"
- 不出现具体时间点(如 02:35、凌晨)
- 成功与进展按项目分组,不按时间分组
- 不设"下一步"章节
- 使用中文
- 不使用 emoji