用途:nav-compact 用于在清空对话上下文前保存知识。它像切换分支前的 git commit,先把当前状态写入上下文标记,再让用户开始全新会话。
主要能力:估算会话消息数量并给出压缩建议;自动创建名为 before-compact-{YYYY-MM-DD}-{HHmm} 的标记,记录最近 10-15 条消息摘要、修改过的文件、技术决策、当前进度与下一步;把标记文件名写入 .agent/.context-markers/.active,供 nav-start 在下次会话检测并提示恢复;显示手动清空对话的步骤。
使用方式:当用户说“clear context”“start fresh”“reset conversation”“compact”“done with this task”或提到接近 token 上限时触发。执行时先检查是否值得压缩(少于 20 条消息建议等待,20-50 条可安全压缩,超过 50 条强烈建议),再创建标记、设置 .active 文件、展示压缩说明,最后用 ls -lh .agent/.context-markers/{marker-filename}.md 确认标记位置。下次会话说“load my context”或“start my session”即可恢复。
适用场景:完成独立功能或子任务后、文档大更新后、切换到无关工作前、token 使用接近 70% 以上时。
限制:Claude Code 无法在对话内以程序方式清空对话,实际清空需用户手动开始新对话或使用 /clear 命令;标记创建失败时不能压缩;上下文过少(少于 10 条消息)收益有限;若已存在未恢复的 .active 标记,需先加载、覆盖或取消。脚本 compact.py 可自动化创建标记、设置 active 文件并生成恢复说明。