name: chronicle-session-documenter description: 将AI辅助的开发会议记录到Obsidian库中,使用Chronicle数据。支持MCP(最快)或CLI命令(便携)。适用于完成编码会议后、创建开发日志或维护过往工作的知识库时使用。自动创建结构化笔记、元数据、摘要和wiki链接。
Chronicle会议记录器
这个技能帮助你将开发会议记录到你的Obsidian库中,使用Chronicle的数据库。支持MCP服务器(快速、结构化)或CLI命令(便携、随处可用)。
自动激活
这个技能自动激活! (里程碑 #13)
类似于“记录会议75”或“导出到Obsidian”的提示会自动触发使用这个技能的建议。不需要手动加载它!
触发模式: 记录会议,导出到Obsidian,保存到库 查看:
docs/HOOKS.md了解完整详情
何时使用这个技能
使用这个技能时:
- 一个开发会议刚刚结束
- 用户想要记录会议中的成就
- 创建开发日志或日记条目
- 构建可搜索的过往工作知识库
- 需要链接相关会议、提交或决策
它是如何工作的
选项1:使用MCP(首选)
- 查询Chronicle -
mcp__chronicle__get_session_summary(session_id)→ 获取完整的摘要JSON - 创建笔记 -
mcp__obsidian__write_note(...)→ 直接写入Obsidian库 - 链接工作 - 使用JSON中的会议关系创建wiki链接
选项2:使用CLI(便携)
- 查询Chronicle -
chronicle session <id>→ 获取格式化的会议详情和摘要 - 解析输出 - 从CLI输出中提取摘要、文件、持续时间
- 创建笔记 -
mcp__obsidian__write_note(...)或手动创建笔记文件 - 链接工作 - 使用解析的数据创建wiki链接
决策树:
将会议记录到Obsidian
├─ MCP可用?→ 使用mcp__chronicle__get_session_summary() + mcp__obsidian__write_note()
└─ 仅CLI?→ 使用`chronicle session <id>`,解析输出,写笔记
注意:摘要在会议结束时自动在后台生成(对于最近的会议可能仍在处理中)
笔记结构
在Chronicle/Sessions/Session-{id}.md中以这种格式创建笔记:
---
session_id: {id}
date: "{YYYY-MM-DD}"
started: "{HH:MM AM/PM}"
duration_minutes: {minutes}
ai_tool: "{tool}"
repo: "{repo_name}"
tags: ["chronicle-session", "{ai_tool}", "{topics}"]
---
# 会议{id} - {简短标题}
**持续时间:** {duration}
**仓库:** [[{repo_name}]]
**工具:** {AI工具名称}
## 摘要
{Chronicle生成的AI摘要}
## 完成的工作
- {关键成就1}
- {关键成就2}
## 关键技术决策
- {决策1及其理由}
## 创建或修改的文件
- `path/to/file.py` - {变更内容}
## 问题和阻碍
- {遇到的任何问题}
## 相关
- 上一个:[[Session-{prev_id}]]
- 提交:[[Commit-{sha}]]
- 仓库:[[{repo_name}]]
工作流程示例
选项1:使用MCP(快速、结构化)
完成会议后:
# 第1步:从Chronicle MCP获取会议数据
session_data = mcp__chronicle__get_session_summary(session_id=10)
# 第2步:提取关键信息
session_id = session_data["id"]
timestamp = session_data["timestamp"] # "2025-10-24T14:30:00"
tool = session_data["tool"] # "claude-code"
duration = session_data["duration_minutes"] # 45
repo_path = session_data["repo_path"] # "/Users/.../my-project"
summary = session_data["summary"] # AI生成的摘要(多段落)
# 第3步:格式化笔记内容
note_content = f"""# 会议{session_id} - {简短标题}
**持续时间:** {duration}分钟
**仓库:** [[{repo_name}]]
**工具:** {tool_emoji} {tool_name}
## 摘要
{summary}
## 完成的工作
- {提取的成就}
## 关键技术决策
- {提取的决策}
## 创建或修改的文件
- {提取的文件}
## 问题和阻碍
- {提取的阻碍}
## 相关
- 上一个:[[Session-{prev_id}]]
"""
# 第4步:准备前置内容
frontmatter = {
"session_id": session_id,
"date": "2025-10-24",
"started": "14:30",
"duration_minutes": duration,
"ai_tool": tool,
"repo": repo_name,
"tags": ["chronicle-session", tool, "feature-work"]
}
# 第5步:写入Obsidian库(如果MCP可用)
mcp__obsidian__write_note(
path="Chronicle/Sessions/Session-10.md",
content=note_content,
frontmatter=frontmatter,
mode="overwrite"
)
选项2:使用CLI(便携,无需MCP)
完成会议后:
# 第1步:从Chronicle CLI获取会议数据
chronicle session 10 > /tmp/session_10.txt
# 第2步:解析输出以提取:
# - 会议ID,时间戳,工具,持续时间
# - 仓库路径
# - AI生成的摘要
# - 提及的文件
# - 关键词/标签
# 第3步:使用解析的数据创建笔记内容
# (与MCP方法的结构类似)
# 第4步:如果Obsidian MCP可用,使用它来写笔记:
# mcp__obsidian__write_note(...)
#
# 或手动在Obsidian库中创建文件:
# 写入 ~/Documents/Obsidian/Chronicle/Sessions/Session-10.md
注意:CLI方法需要解析Chronicle的格式化输出,这不太优雅,但在任何安装了Chronicle的系统上都是完全便携的。
示例用法
用户: “你能将会议10记录到我的Obsidian库中吗?”
助手(使用MCP):
- 调用
mcp__chronicle__get_session_summary(session_id=10) - 解析结构化的JSON以提取成就、决策、文件、阻碍
- 创建带有wiki链接的结构化Markdown内容
- 调用
mcp__obsidian__write_note(...)保存到库中 - 确认:“会议10已记录到Chronicle/Sessions/Session-10.md”
助手(不使用MCP):
- 运行
chronicle session 10获取格式化输出 - 解析CLI输出以提取摘要和元数据
- 创建带有wiki链接的结构化Markdown内容
- 要么使用
mcp__obsidian__write_note(...)(如果可用),要么手动创建文件 - 确认:“会议10已记录到Chronicle/Sessions/Session-10.md”
工具使用(MCP或CLI)
Chronicle数据库操作
MCP方法(首选):
mcp__chronicle__get_session_summary(session_id)- 获取完整的会议详情和AI摘要mcp__chronicle__get_sessions(limit, days, tool, repo_path)- 列出最近的会议以找到会议IDmcp__chronicle__search_sessions(query, limit)- 通过关键词搜索会议mcp__chronicle__get_commits(repo_path, days, limit)- 获取相关提交以便链接mcp__chronicle__get_sessions_summaries(session_ids)- 批量获取摘要(一次最多20个)
CLI替代方法:
chronicle session <id>- 获取带有摘要的会议详情chronicle sessions --limit 10- 列出最近的会议chronicle search "keyword" --limit 10- 搜索会议chronicle show today- 获取提交以便链接
Obsidian库操作
MCP方法(首选):
mcp__obsidian__write_note(path, content, frontmatter, mode)- 将笔记写入库中mcp__obsidian__read_note(path)- 检查笔记是否已存在(可选)mcp__obsidian__list_directory(path)- 列出现有的会议笔记(可选)
手动替代方法(无MCP):
- 直接创建文件:
~/Documents/Obsidian/<vault>/Chronicle/Sessions/Session-<id>.md - 手动编写YAML前置内容+Markdown内容
提示
- 摘要生成是自动的 - 会议结束时立即在后台开始摘要生成(对于大型会议可能需要几分钟)
- 智能解析摘要 - AI摘要通常有诸如"成就:"、“技术决策:”、"问题/阻碍:"等部分
- 使用wiki链接 - 链接到
[[Session-{id}]]、[[{repo_name}]]、[[Commit-{short_sha}]]以便于导航 - 提取仓库名称 - 从
repo_path解析:/Users/.../my-app→my-app - 处理缺失数据 - 一些会议可能还没有摘要(仍在后台处理中),或持续时间(仍在进行中)
- 批量记录 - 使用
get_sessions()找到最近的会议,然后逐个记录 - 检查现有笔记 - 使用
read_note()避免覆盖手动编辑的笔记(先询问用户) - 工具表情符号 - 使用🎯表示claude-code,✨表示gemini-cli,🔮表示qwen-cli
- 前置内容标签 - 总是包括
["chronicle-session", "{tool}", ...]以便在Obsidian中过滤 - 日期格式化 - 解析ISO时间戳
2025-10-24T14:30:00→ date: “2025-10-24”, started: “14:30”
常见模式
记录今天的会议
使用MCP:
# 获取今天的会议
sessions = mcp__chronicle__get_sessions(days=1, limit=20)
# 将每个会议记录到库中
for session in sessions:
if session["is_session"]: # 仅完整的会议,不是一次性的
document_to_vault(session["id"])
使用CLI:
# 列出今天的会议
chronicle sessions --days 1 --limit 20
# 手动记录每个会议
chronicle session 10 # 查看详情
# 解析并创建Obsidian笔记
记录特定会议
使用MCP:
# 直接记录
session = mcp__chronicle__get_session_summary(session_id=10)
# 从结构化数据创建笔记
使用CLI:
# 获取会议详情
chronicle session 10
# 解析输出并创建笔记
查找并记录关于某个主题的会议
使用MCP:
# 先搜索
results = mcp__chronicle__search_sessions(query="authentication", limit=5)
# 记录每个匹配项
for result in results:
document_to_vault(result["id"])
使用CLI:
# 搜索会议
chronicle search "authentication" --limit 5
# 记录每个匹配项
chronicle session <id>
# 从解析的输出创建笔记