| name | strategic-compact |
| description | 上下文优化技能,通过 trigger-based 懒加载和 context composition awareness 自动重组长会话上下文。
|
| origin | adapted from ECC |
Strategic Compact Skill
上下文优化技能,通过 trigger-based 懒加载和 context composition awareness 自动重组长会话上下文。
何时激活
- Claude Code 触发原生自动或手动 compact
- 原生 auto-compact 被显式关闭,且会话上下文超过 65% 使用率
- 需要重组上下文以保留关键信息
- 长会话中需要压缩早期对话
- 需要按重要性重新组织 specialist 输出
核心功能
1. Trigger-Based 懒加载
Claude Code 默认由原生 auto-compact 决定压缩时机;下列百分比 trigger 只用于手动兜底模式:
| Trigger | 条件 | 行为 |
|---|
context_65% | 上下文使用 > 65% | 触发 advisory 压缩建议 |
context_70% | 上下文使用 > 70% | 触发压缩建议 |
context_85% | 上下文使用 > 85% | 强烈建议手动压缩 |
logical_break | 检测到逻辑断点 | 建议整理 |
specialist_done | specialist 完成 | 归档输出 |
2. Context Composition Awareness
理解上下文不同部分的价值:
高价值(总是保留):
- 决策和结论
- 任务输出和验证结果
- 待处理项和 hints
- 架构决策记录 (ADR)
中等价值(根据大小决定):
- 工具输出(超过阈值时压缩)
- 对话历史(保留首尾,压缩中间)
- 文件内容(保留路径和关键符号)
低价值(安全丢弃):
压缩策略
Phase 1: 保存决策到内存
提取所有决策,保存到 ~/.claude/memory/error_experience/decisions/
Phase 2: 保存待办到摘要
提取 pending items 和 next hints,保存到 session summary
Phase 3: 压缩对话
保留系统提示和最近 20 轮对话,压缩中间部分
Phase 4: 精简工具输出
将长工具输出替换为摘要:[File X read, Y lines]
与 Other Skills 的关系
| Skill | 关系 |
|---|
| Memory Persistence | Strategic Compact 使用其存储来保存决策和摘要 |
| Error Experience Library | 从压缩的上下文中提取错误模式 |
| Continuous Learning | Instincts 从归档的上下文中生成 |
使用场景
场景 1:长会话自动整理
用户:连续工作 2 小时后
Claude Code:上下文接近原生 auto-compact 阈值
系统:触发 PreCompact(auto),保存 compact 轮次并清理旧计量缓存
Claude Code:自动执行压缩
系统:下一轮只读取压缩后的新 usage,不复用压缩前的高水位
场景 2:Specialist 输出归档
用户:运行 /code-review
Specialist:输出详细代码审查报告
系统:检测到 specialist_done trigger
系统:提取关键结论,丢弃详细追踪
系统:保存结论到 memory store
Context 计算与 Compact 轮次
- 运行时使用
scripts/lib/context-window.js 统一计算上下文压力。
- Claude
context_window.used_percentage / remaining_percentage 是官方预计算值,直接使用,不再重复扣除 auto-compact buffer;context_window_size 用于区分 200K 与 1M 窗口。
- 优先消费 CCometixLine-compatible remaining context,例如
ccometixline.context_window.remaining_percentage、ccometixline_context_window.remaining_tokens、TSP_CONTEXT_WINDOW_JSON 或 CCOMETIXLINE_CONTEXT_FILE。
- 如果没有外部 remaining 信号,则退回 Claude
context_window、transcript JSONL usage、bridge file 和 transcript size fallback。
scripts/hooks/pre-compact.js 同时匹配 auto|manual,每次 PreCompact 会递增 .tsp/context/compact-state.json 的 session / total compact count,并清除压缩前的 bridge / debounce 状态。
- transcript 遇到 compact summary 后不会回读 summary 前的 usage;等待下一次 API 响应提供新窗口指标。
suggest-compact.js 默认 auto 模式,不注入人工 /compact 提示;仅在 DISABLE_AUTO_COMPACT=1 或 STRATEGIC_COMPACT_MODE=manual 时启用下表的手动兜底。
手动兜底阈值
| 使用率 | 紧迫度 | 建议操作 |
|---|
| < 65% | low | 无需操作 |
| 65-70% | advisory | 提醒控制上下文增长 |
| 70-85% | medium | 建议压缩,可选择性执行 |
| 85-95% | high | 强烈建议压缩 |
| > 95% | critical | 必须立即压缩 |
命令接入
/compact - 手动触发压缩
/compact status - 显示当前上下文使用率
/compact plan - 显示压缩计划而不执行