用途
squash 用于压缩会话上下文,生成超紧凑的 AI 交接文本,在保留含义的同时削减 token。适用于用户要求“squash”“compress context”或“handoff summary”的场景,也适用于已知目标输出路径的情况。当用户要求完整的叙述性记录时,应跳过此技能。
主要能力
- 根据用户请求界定范围边界,输出一行 scope。
- 从源上下文生成紧凑交接文档,包含完整路径的文件引用,输出为包含 Goal、Decisions、Open questions、Next actions 的 markdown。
- 将紧凑交接文档重写为 caveman-terse(极简)风格,输出为简洁 markdown。
- 根据用户输入确定输出模式,输出一行 target_path(路径或 auto-temp)。
- 调用 Bash 脚本 scripts/squash-session.sh [target-path] [input-file],将第三步文本通过 stdin 传入,成功后在 stdout 输出一行 saved: <path>。
- 向用户报告最终交接内容与保存路径,输出简洁 markdown 加 saved: 行。
使用方式
- 界定范围:从用户请求中定义范围边界,输出一行 scope: ...。
- 生成紧凑交接:基于源上下文生成包含 Goal、Decisions、Open questions、Next actions 的 markdown,并引用完整路径文件。
- 重写为极简风格:将交接文档改写为 caveman-terse 风格的简洁 markdown。
- 确定输出模式:从用户输入解析目标路径,输出一行 target_path: <path|auto-temp>。
- 保存:调用 Bash 脚本 scripts/squash-session.sh [target-path] [input-file],将第三步文本通过 stdin 传入,stdout 返回 saved: <path>。
- 报告:向用户输出最终交接内容与保存路径。
交接文档规则
- 若存在用户参数,将其视为下一会话焦点,输出一行 focus: ...。
- 添加 Suggested skills 部分,列出技能名称及每个技能的一行理由。
- 通过路径或 URL 引用已有的 PRD、计划、ADR、issue、commit 和 diff。
- 对 API 密钥、密码、token 和个人身份信息进行脱敏。
- 跳过已在引用工件中记录的内容,避免重复。
- 保持输出摘要简洁,便于新智能体继续工作。
适用场景
- 需要将会话上下文交接给新的 AI 智能体时。
- 需要在保留关键信息的前提下减少 token 占用时。
- 需要生成结构化交接文档(目标、决策、待解决问题、后续行动)时。
限制
- 当用户要求完整的叙述性记录时,不适用。
- 需要已知目标输出路径(或使用 auto-temp)。
- 依赖 scripts/squash-session.sh、scripts/strip-filler.sh、scripts/write-handoff.sh 等脚本。
- 参考资料包括 Example.md、NLTK-Setup.md,并可通过 bash scripts/tests/run-tests.sh 验证 scripts/strip-filler.sh。
参考
- Example.md
- NLTK-Setup.md
- squash-session.sh
- strip-filler.sh
- write-handoff.sh
- 运行 bash scripts/tests/run-tests.sh 以验证 scripts/strip-filler.sh。