Files
everything-claude-code/docs/zh-CN/skills/strategic-compact/SKILL.md
2026-03-13 17:45:44 +08:00

141 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: strategic-compact
description: 建议在逻辑间隔处手动压缩上下文,以在任务阶段中保留上下文,而非任意的自动压缩。
origin: ECC
---
# 战略精简技能
建议在你的工作流程中的战略节点手动执行 `/compact`,而不是依赖任意的自动精简。
## 何时激活
* 运行长时间会话接近上下文限制时200K+ tokens
* 处理多阶段任务时(研究 → 规划 → 实施 → 测试)
* 在同一会话中切换不相关的任务时
* 完成一个主要里程碑并开始新工作时
* 当响应变慢或连贯性下降时(上下文压力)
## 为何采用战略精简?
自动精简会在任意时间点触发:
* 通常在任务中途,丢失重要上下文
* 无法感知逻辑任务边界
* 可能中断复杂的多步骤操作
在逻辑边界进行战略精简:
* **探索之后,执行之前** — 压缩研究上下文,保留实施计划
* **完成里程碑之后** — 为下一阶段重新开始
* **在主要上下文切换之前** — 在开始不同任务前清理探索上下文
## 工作原理
`suggest-compact.js` 脚本在 PreToolUse (Edit/Write) 时运行,并且:
1. **跟踪工具调用** — 统计会话中的工具调用次数
2. **阈值检测** — 在可配置的阈值处建议压缩默认50次调用
3. **定期提醒** — 达到阈值后每25次调用提醒一次
## 钩子设置
添加到你的 `~/.claude/settings.json`
```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 状态(提交、分支) | 工具调用历史和计数 |
| 磁盘上的文件 | 口头陈述的细微用户偏好 |
## 最佳实践
1. **规划后压缩** — 一旦计划在 TodoWrite 中最终确定,就压缩以重新开始
2. **调试后压缩** — 在继续之前,清理错误解决上下文
3. **不要在实施过程中压缩** — 为相关更改保留上下文
4. **阅读建议** — 钩子告诉您*何时*,您决定*是否*
5. **压缩前写入** — 在压缩前将重要上下文保存到文件或记忆中
6. **使用带摘要的 `/compact`** — 添加自定义消息:`/compact Focus on implementing auth middleware next`
## 令牌优化模式
### 触发表惰性加载
不在会话开始时加载完整的技能内容,而是使用一个将关键词映射到技能路径的触发表。技能仅在触发时加载,可将基线上下文减少 50% 以上:
| 触发词 | 技能 | 加载时机 |
|---------|-------|-----------|
| "test", "tdd", "coverage" | tdd-workflow | 用户提及测试时 |
| "security", "auth", "xss" | security-review | 涉及安全相关工作时 |
| "deploy", "ci/cd" | deployment-patterns | 涉及部署上下文时 |
### 上下文组合感知
监控哪些内容正在消耗你的上下文窗口:
* **CLAUDE.md 文件** — 始终加载,需保持精简
* **已加载技能** — 每个技能增加 1-5K 令牌
* **对话历史** — 随每次交流增长
* **工具结果** — 文件读取、搜索结果会增加体积
### 重复指令检测
常见的重复上下文来源:
* 相同的规则同时出现在 `~/.claude/rules/` 和项目 `.claude/rules/`
* 技能重复了 CLAUDE.md 的指令
* 多个技能覆盖了重叠的领域
### 上下文优化工具
* `token-optimizer` MCP — 通过内容去重实现 95% 以上的自动令牌减少
* `context-mode` — 上下文虚拟化(已演示从 315KB 减少到 5.4KB
## 相关
* [长篇指南](https://x.com/affaanmustafa/status/2014040193557471352) — Token 优化部分
* 记忆持久化钩子 — 用于在压缩后保留状态
* `continuous-learning` 技能 — 在会话结束前提取模式