The first skill published under Canon’s own roof rather than curated in from elsewhere. Run /graft in any project and it renders that project’s session history as a branch map: every turn you took as a node on the trunk, every subagent you launched as a fork sweeping off it, every compaction as a diamond. One self-contained HTML file, hand-rolled SVG, no d3, nothing leaves your machine.
It exists because long-running sessions become unreadable as scrollback. A month of work in one session is a real thing now, and the shape of that work, where you forked, where the context compacted, where the effort clustered, is invisible in a transcript. The map makes the shape legible in one glance.
The skill’s hard rules are the interesting part: it refuses to read a transcript into context (they can exceed 100MB; parsing happens in a subprocess that emits a small summary), and it constrains itself to a three-word visual vocabulary. Trunk, fork, diamond. Nothing else.
Install: claude plugin marketplace add jamesmadson/canon, then install the graft plugin. Or copy plugin/graft/skills/graft/SKILL.md from the repo into ~/.claude/skills/graft/. New skills register as typed commands on your next session start.
Gotcha: Claude Code only, and it reads the local transcript format, which is undocumented and can drift between versions. The skill tells the agent to inspect a line and adapt before parsing, which has held so far, but a hard format change would need a skill update. The interactive editor it matches lives at jamesmadson.me/graft.