MichaelP17/claude-mods/tree/main/compact-shaper
compact-shaper
调整 Claude Code 的压缩行为。普通压缩会总结成交接内容;`/compact prune` 则裁剪可以重新读取的工具输出,同时逐字保留每条消息。
关于这个 mod
compact-shaper 为 Claude Code 提供两种压缩路径:原生的 /compact 交接式摘要,以及 /compact prune。后者会将较长的工具输出裁剪到开头,并附上如何重新取得输出的说明,同时完整保留所有消息。它会保护子代理结果、失败的工具调用,以及 git status 和 CI 日志等状态快照;如果节省不到 10%,就跳过裁剪,并通过 /config 或 settings.json 暴露 preserveRecentMessages 和 keepHeadChars。/prune-preview 命令可以预览裁剪结果而不改变工作阶段。
安装
请先查看作者 README 确认 marketplace 和插件名称;命令可能随仓库结构改变。
claude plugin marketplace add MichaelP17/claude-mods claude plugin install compact-shaper
原文 / README
compact-shaper
Shapes Claude Code's compaction. A normal compaction is summarized as a handoff; /compact prune cuts tool output that can be read again instead, and keeps every message word for word.
Two ways to compact
| Command | What happens | When it fits |
| --- | --- | --- |
| /compact | Claude Code's own summary, written along the structure of a handoff: goal, state, decisions and their reasons, rejected approaches, open points, next step, files to read first. Text after /compact is added to that structure | Several topics in, or the context is large; the summary is far smaller than anything a cut leaves |
| /compact prune | Long tool outputs are cut to their head and a note on how to get them back; messages stay exactly as written | In the middle of a task, when the exact thread of the conversation matters more than the size |
The automatic compaction takes the first path. Subagents keep the native compaction unchanged.
/prune-preview shows what /compact prune would cut, without changing anything.
The handoff-shaped summary stays inside the session; it writes no HANDOFF.md. For a break between tasks, or to continue on another device, a written handoff and /clear beat both: cache-watch offers that at the right moments.
What /compact prune cuts
Every tool output longer than keepHeadChars + 200 characters, outside the first and the newest preserveRecentMessages messages, keeps its first keepHeadChars characters. Read results of a file that was later edited or read again in full count as superseded and are cut the same way. Edit and Write inputs shrink to their head, since the file on disk holds the current content.
Protected, because they cannot simply be produced again:
- results of subagents (
Agent,Task) - failed tool calls
git status,git stash list,gh run viewandgh pr checks: snapshots of a state that has moved on, and CI logs that expire
A cut that saves less than 10% is skipped and leaves the conversation unchanged.
Configuration
| Option | Default | Meaning |
| --- | --- | --- |
| preserveRecentMessages | 6 | Newest messages that are never cut |
| keepHeadChars | 300 | How much of a cut output stays |
Change them in /config, or in ~/.claude/settings.json under pluginConfigs["compact-shaper"].options.
