用途
该技能用于分析 SpecStory 保存的 AI 编程会话历史文件,并以站会(standup)格式生成近期会话摘要。当用户希望回顾 .specstory/history 中的会话、准备站会或快速了解近期工作进展时使用。
主要能力
- 查找并列出 .specstory/history 目录下的近期会话文件(默认最近 5 个,或指定 "today" 仅查看当天会话)。
- 若目录不存在或为空,会提示未找到 SpecStory 会话历史,并建议从 https://specstory.com 安装 SpecStory 以开始记录会话。
- 对每个会话进行分块读取与分析:
- 通过 grep 用户消息标记了解会话范围与请求数量。
- 读取文件开头(前 500 行)和结尾(最后 300 行)以捕获初始请求与最终结果。
- 通过 grep 文件操作(Edit/Write)提取被修改的文件名。
- 对多请求会话,围绕各用户消息行号读取并总结 2-3 个主要任务。
- 提取每个会话的目标、结果(完成、研究、进行中、放弃、受阻)、涉及文件、关键决策。
- 按固定格式输出每个会话摘要,并在最后附加整体模式与未完成事项。
使用方式
技能接受一个参数:$ARGUMENTS(默认 5 个会话,或 "today" 表示仅当天会话)。
执行步骤:
-
检查 .specstory/history 文件夹是否存在并列出近期会话文件:
ls -t .specstory/history/*.md 2>/dev/null | head -20若无文件夹或为空,则输出提示并停止。
-
读取并分析每个会话:
- 使用
grep -n "_**User**_" <file> | head -10查看用户消息位置。 - 读取开头 500 行(offset=0, limit=500)和结尾 300 行(tail -300 <file>)。
- 使用
grep -E "(Edit|Write)\(" <file>查找文件修改。 - 对多请求会话,围绕各用户消息行号读取(如 offset=795, limit=100),总结 2-3 个主要任务。
- 使用
-
按以下格式输出每个会话:
### {YYYY-MM-DD HH:MM} - {Brief Title from Main Goal} **Goal**: {1 sentence summarizing what user wanted} **Outcome**: {emoji} {Brief result description} **Files**: {comma-separated list, or "None" if research only} **Key insight**: {Notable decision or learning, if any}多任务会话格式:
### {YYYY-MM-DD HH:MM} - {Overall Theme or Primary Task} **Tasks**: 1. {First task} - {outcome emoji} 2. {Second task} - {outcome emoji} **Files**: {comma-separated list} **Key insight**: {Notable decision or learning, if any} -
在所有会话后添加总结部分:
--- **Patterns**: {Note any recurring themes, files touched multiple times, ongoing work} **Unfinished**: {Any sessions that ended with TODOs, blockers, or incomplete work}
适用场景
- 回顾近期 AI 编程会话,快速了解工作内容。
- 准备站会或每日同步。
- 识别重复出现的主题、多次修改的文件以及未完成的工作。
限制
- 依赖 .specstory/history 目录及 SpecStory 保存的会话文件;若不存在则无法分析。
- 会话文件可能非常大,需采用分块读取策略;若读取失败或文件过大,只能基于可提取的内容工作。
- 输出为简洁摘要,每个会话最多 5-6 行(多任务会话略多),不适合详细文档。
- 跳过仅包含快速提问、无实际工作的会话。
- 多任务会话最多总结 3 个主要任务,次要任务归为 "various small fixes"。
- 文件列表优先显示文件名而非完整路径。
- 标题根据用户目标推断,而非文件名。