| name | strategic-compact |
| description | 在逻辑间隔建议手动上下文压缩,以通过任务阶段保留上下文,而不是任意自动压缩。 |
战略压缩技能
在工作流程中的战略点建议手动 /compact,而不是依赖任意自动压缩。
何时激活
- 运行接近上下文限制(200K+ 令牌)的长会话
- 处理多阶段任务(研究 → 规划 → 实现 → 测试)
- 在同一会话中切换不相关的任务
- 完成主要里程碑并开始新工作后
- 响应变慢或变得不连贯(上下文压力)时
为什么战略压缩?
自动压缩在任意点触发:
- 通常在任务中期,失去重要上下文
- 没有逻辑任务边界的意识
- 可能中断复杂的多步骤操作
逻辑边界的战略压缩:
- 探索后、执行前 — 压缩研究上下文,保留实现计划
- 完成里程碑后 — 为下一阶段全新开始
- 主要上下文转换前 — 在不同任务前清除探索上下文
工作原理
suggest-compact.js 脚本在 PreToolUse(Edit/Write)上运行并:
- 跟踪工具调用 — 计算会话中的工具调用
- 阈值检测 — 在可配置阈值(默认:50 次调用)时建议
- 定期提醒 — 阈值后每 25 次调用提醒一次
钩子设置
添加到您的 ~/.claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit",
"hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
},
{
"matcher": "Write",
"hooks": [{ "type": "command", "command": "node ~/.claude/skills/strategic-compact/suggest-compact.js" }]
}
]
}
}
配置
环境变量:
COMPACT_THRESHOLD — 首次建议前的工具调用数(默认:50)
压缩决策指南
使用此表决定何时压缩:
| 阶段转换 | 压缩? | 为什么 |
|---|
| 研究 → 规划 | 是 | 研究上下文庞大;计划是提炼的输出 |
| 规划 → 实现 | 是 | 计划在 TodoWrite 或文件中;为代码释放上下文 |
| 实现 → 测试 | 可能 | 如果测试引用最近代码则保留;如果切换焦点则压缩 |
| 调试 → 下一个功能 | 是 | 调试痕迹污染不相关工作的上下文 |
| 实现中 | 否 | 失去变量名、文件路径和部分状态的代价高昂 |
| 失败的方法后 | 是 | 在尝试新方法之前清除死胡同推理 |
压缩后保留什么
了解什么持续存在有助于您自信地压缩:
| 持续存在 | 丢失 |
|---|
| CLAUDE.md 指令 | 中间推理和分析 |
| TodoWrite 任务列表 | 您之前读取的文件内容 |
内存文件(~/.claude/memory/) | 多步对话上下文 |
| Git 状态(提交、分支) | 工具调用历史和计数 |
| 磁盘上的文件 | 口头陈述的细微用户偏好 |
最佳实践
- 规划后压缩 — 一旦计划在 TodoWrite 中最终确定,压缩以全新开始
- 调试后压缩 — 在继续之前清除错误解决上下文
- 不要在实现中期压缩 — 保留相关更改的上下文
- 阅读建议 — 钩子告诉您何时,您决定是否
- 压缩前写入 — 在压缩之前将重要上下文保存到文件或内存
- 带摘要使用
/compact — 添加自定义消息:/compact 接下来专注于实现身份验证中间件
相关
- 长格式指南 — 令牌优化部分
- 内存持久化钩子 — 用于持久化的状态
continuous-learning 技能 — 会话结束前提取模式