daily-recap-skill改造与Claude-Memory系统
用户需要每日工作回顾功能,从最初的简化版本逐步优化到按项目整理的详细版本。整个过程涉及对 Claude-Memory 系统的深入理解和应用。
Daily-Recap Skill 改造与 Claude-Memory 系统
背景
用户需要每日工作回顾功能,从最初的简化版本逐步优化到按项目整理的详细版本。整个过程涉及对 Claude-Memory 系统的深入理解和应用。
方案/过程
1. 初期简化版(时间线模式)
- 按时间段(上午、下午、晚上)分组
- 生成简化的任务总结
- 用户反馈不够详细
2. 详细版改造
- 从数据库获取完整 observation 数据
- 使用实际的
title和subtitle字段 - 保留所有任务细节
3. 最终版(按项目整理)
- 按
project字段分组 - 每个项目带 emoji 图标
- 包含时间段、关键任务列表
- 添加完成的主要工作表格
- 添加备注/关键洞察
4. Skill 改造
- 更新
daily-recapskill 的指令 - 定义项目分组规则
- 规范输出结构
Claude-Memory 系统详解
数据存储结构
Claude-Memory 使用两层存储:
1. SQLite 数据库(持久层)
- 位置:
~/.claude-mem/claude-mem.db - 主要表:
observations - 关键字段:
id: 唯一标识符type: 类型(feature, discovery, change, bugfix, decision 等)title: 任务标题subtitle: 任务副标题/详情project: 项目名称created_at: 创建时间(ISO格式)created_at_epoch: 创建时间(时间戳)memory_session_id: 会话ID
2. Session Cache(会话层)
- 当前会话内存中的数据
- 优先读取,数据库作为补充
数据同步机制
通过日志分析发现同步规律:
- 同步时间:隔天上午 9 点左右
- 证据:
claude-mem-2026-04-20.log最后修改:4月21日 09:28claude-mem-2026-04-17.log最后修改:4月17日 18:31
- 策略:缓存优先,数据库补充
查询方式
1. MCP 工具(推荐)
mcp__plugin_claude-mem_mcp-search__search( dateStart="YYYY-MM-DD", dateEnd="YYYY-MM-DD", limit=200, orderBy="date_asc")2. SQLite 直接查询
sqlite3 ~/.claude-mem/claude-mem.db " SELECT id, type, title, subtitle, project, created_at FROM observations WHERE strftime('%Y-%m-%d', created_at) = 'YYYY-MM-DD' ORDER BY created_at_epoch ASC;"3. 分组统计查询
sqlite3 ~/.claude-mem/claude-mem.db " SELECT project, COUNT(*) as count, MIN(created_at) as first, MAX(created_at) as last FROM observations WHERE strftime('%Y-%m-%d', created_at) = 'YYYY-MM-DD' GROUP BY project ORDER BY count DESC;"关键决策
1. 为什么用 SQLite 而不是 MCP
- 数据完整性:SQLite 有完整历史数据
- 性能:大量数据查询更高效
- 灵活性:可以自定义复杂查询
2. 缓存优先策略
- 解决问题:当天数据未同步到数据库
- 实现方式:先查会话缓存,缺失的用数据库补充
- 去重:通过 ID 避免重复
3. 按项目而非时间分组
- 用户价值:更清晰看到每个项目的进展
- 组织方式:
project字段天然支持 - 视觉优化:emoji 图标提升可读性
踩坑/注意
1. 字段名混淆
- 错误:一开始用
path字段,实际不存在 - 正确:使用
project字段 - 解决:查看表 schema
2. 数据同步延迟
- 现象:当天数据查不到
- 原因:数据次日同步
- 解决:缓存优先策略
3. 文件位置混乱
- 问题:子代理生成到错误目录
- 解决:统一保存到
markdown/目录
输出结构规范
最终版结构
# 每日工作回顾 - YYYY年MM月DD日
## 📅 概览
**日期**: YYYY-MM-DD**主要工作目录**: ...
---
## 🕐 时间线(按项目整理)
### [emoji] 项目:[项目名称] - [项目描述]
**时间**: [时间段]**主要任务**:
1. **[关键任务1]**: 任务描述2. **[关键任务2]**: 任务描述
---
## ✅ 完成的主要工作
| 项目 | 内容 || ---- | ---- || ... | ... |
---
## 📝 备注
1. **[关键发现1]**: 发现描述
---
_生成时间: YYYY-MM-DD_Emoji 选择规则
- 📊 数据分析、报表、系统项目
- 🔍 调查、研究、问题解决项目
- 🛠️ 开发、工具、技能开发项目
- 📄 文档、内容、Markdown管理项目
- 🔵 通用、未分类项目
总结
可复用经验
- 先了解数据结构:查看数据库 schema,避免字段错误
- 理解同步机制:通过日志分析同步规律
- 分层读取策略:缓存优先,数据库补充
- 用户反馈驱动:从简化到详细,从时间到项目
- 标准化输出:统一结构,提升可读性
技术栈
- 数据库:SQLite
- 查询工具:Bash + sqlite3
- 数据访问:MCP 工具 + 直接查询
- 输出格式:Markdown
后续可优化
- 自动判断当天数据是否需要手动整理
- 支持自定义时间段和项目筛选
- 添加可视化图表(工作时间分布、项目占比)
- 集成 Git 提交记录