One thing that makes the one-way compression easier to live with in Claude Code: the constraints don't have to survive inside the transcript. The memory docs say project-root CLAUDE.md is re-read from disk after /compact, and nested CLAUDE.md files and path-scoped rules reload when Claude reads a file they apply to. So what the summary loses is mostly the exploration, which is the part your tree would keep. The docs are also explicit that instructions given only in conversation don't come back.