Skip to main content
ClaudeWave
Skill1.2k repo starsupdated 3mo ago

strategic-compact

Strategic Compact is a Claude Code skill that recommends manually executing the `/compact` command at logical workflow boundaries rather than relying on automatic context compression. Use this when running long sessions approaching context limits, transitioning between multistage tasks, switching to unrelated work, completing major milestones, or detecting slow responses from context pressure. The skill tracks tool calls via a PreToolUse hook and suggests compression at configurable thresholds to preserve important context while clearing exploration data at optimal task boundaries.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/xu-xiang/everything-claude-code-zh /tmp/strategic-compact && cp -r /tmp/strategic-compact/.agents/skills/strategic-compact ~/.claude/skills/strategic-compact
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# 策略性压缩(Strategic Compact)技能

建议在工作流的策略点手动执行 `/compact` 命令,而不是依赖任意的自动压缩(Auto-compaction)。

## 何时启用

- 运行接近上下文限制(200K+ tokens)的长会话(Long Sessions)时
- 处理多阶段任务(研究 → 规划 → 实现 → 测试)时
- 在同一会话中切换到不相关的任务时
- 完成重大里程碑(Milestone)并开始新工作后
- 当响应变慢或连贯性下降(上下文压力)时

## 为什么要进行策略性压缩?

自动压缩在任意点触发:
- 通常在任务中间,导致重要上下文丢失
- 缺乏对逻辑任务边界的感知
- 可能会中断复杂的多步骤操作

逻辑边界处的策略性压缩:
- **在探索之后,执行之前** —— 压缩研究上下文,保留实现方案
- **完成里程碑之后** —— 为下一阶段提供全新的开始
- **重大上下文转移之前** —— 在开始不同任务前清除探索上下文

## 工作原理

`suggest-compact.js` 脚本在 `PreToolUse`(`Edit`/`Write`)钩子(Hook)上运行,并且:

1. **跟踪工具调用** —— 统计会话中的工具调用(Tool Calls)次数
2. **阈值检测** —— 在达到可配置的阈值(默认:50 次调用)时提出建议
3. **定期提醒** —— 达到阈值后,每隔 25 次调用提醒一次

## 钩子配置(Hook Setup)

添加到你的 `~/.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` 或文件中;为代码腾出上下文空间 |
| 实现 → 测试 | 可能 | 如果测试引用了近期代码则保留;如果切换关注点则压缩 |
| 调试 → 下一功能 | 是 | 调试追踪(Debug traces)会污染不相关工作的上下文 |
| 实现中 | 否 | 丢失变量名、文件路径和部分状态的代价很高 |
| 方案失败后 | 是 | 在尝试新方案前清除死胡同式的推理 |

## 压缩后保留的内容

了解哪些内容会持久化,有助于你充满信心地进行压缩:

| 保留 | 丢失 |
|----------|------|
| `CLAUDE.md` 指令 | 中间推理和分析 |
| `TodoWrite` 任务列表 | 之前读取过的文件内容 |
| 记忆文件(`~/.claude/memory/`)| 多步骤对话上下文 |
| Git 状态(提交、分支)| 工具调用历史和计数 |
| 磁盘上的文件 | 口头陈述的细微用户偏好 |

## 最佳实践

1. **规划完成后压缩** —— 一旦方案在 `TodoWrite` 中确定,就进行压缩以全新开始
2. **调试完成后压缩** —— 在继续之前清除错误解决上下文
3. **不要在实现过程中压缩** —— 保留相关更改的上下文
4. **阅读建议** —— 钩子告诉你*何时*,你决定*是否*
5. **压缩前写入** —— 在压缩前将重要上下文保存到文件或记忆中
6. **使用带有总结的 /compact** —— 添加自定义消息:`/compact 下一步重点实现认证中间件`

## 相关内容

- [长篇指南(The Longform Guide)](https://x.com/affaanmustafa/status/2014040193557471352) —— 令牌(Token)优化章节
- 记忆持久化钩子(Memory persistence hooks) —— 用于压缩后仍保留的状态
- `continuous-learning` 技能 —— 在会话结束前提取模式
api-designSkill

生产级 API 的 REST API 设计模式,包括资源命名、状态码、分页、过滤、错误响应、版本控制和速率限制。

article-writingSkill

编写文章、指南、博客、教程、时事通讯(Newsletter)等长内容,支持从示例或品牌指南中提取独特的语感语调。适用于需要撰写超过一个段落的精炼文本,尤其是对语气一致性、结构和可信度有较高要求时。

backend-patternsSkill

后端架构模式、API 设计、数据库优化以及 Node.js、Express 和 Next.js API 路由的服务端最佳实践。

coding-standardsSkill

TypeScript、JavaScript、React、Node.js 开发的通用编码标准、最佳实践和模式。

content-engineSkill

为 X、LinkedIn、TikTok、YouTube、时事通讯(Newsletters)以及跨平台内容重加工营销活动(Repurposed multi-platform campaigns)创建平台原生的内容系统。当用户需要社交媒体帖子、推文串(Threads)、脚本、内容日历,或将单一源素材清晰地适配到多个平台时使用。

e2e-testingSkill

Playwright E2E 测试模式、页面对象模型(POM)、配置、CI/CD 集成、产物管理以及不稳定测试(flaky test)策略。

eval-harnessSkill

适用于 Claude Code 会话的正规评测框架(Evaluation Framework),实现了评测驱动开发(Eval-Driven Development, EDD)原则

frontend-patternsSkill

React、Next.js、状态管理(State Management)、性能优化(Performance Optimization)及 UI 最佳实践的前端开发模式。