agent/skills/knowledge/tree-zipper/SKILL.md
Navigate immutable trees with a zipper cursor. Use when implementing tree traversal, editing tree structures functionally, or tracking focus through breadcrumbs.
npx skillsauth add knoopx/pi tree-zipperInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A tree zipper is a cursor for immutable trees. State = (focus, trail).
down_left, down_right, up, set_value, to_tree.
Navigate: z.down_left() pushes a crumb (parent value + right siblings), sets focus to left child. z.up() pops crumb, rebuilds parent. z.to_tree() walks all the way up. Compare zippers by to_tree() equality, never raw (focus, trail).
tools
Inform the user what is happening — skip passive lookups
development
Renders markdown to self-contained HTML with a custom dark stylesheet and opens in browser. Use when previewing markdown documents, generating styled HTML from README or report files.
testing
Programmatic hunk selection for Jujutsu — split, commit, or squash specific hunks without interactive prompts. Use when making partial commits or selective squashes.
content-media
Manage version control with Jujutsu (jj) — no staging area, immediate changes, smart rebasing. Use when navigating history, squashing, or pushing to Git remotes.