work-tree-canvas

Installation
SKILL.md

work-tree-canvas

A persistent, visual graph of how your work branches as you (and any agents you're driving) traverse a problem space. Each node is a unit of attention — a problem, decision, question, insight. Edges mean "spawned from": a child exists because of its parent. The graph lives in an Obsidian Canvas so you can pan/zoom/edit it like any other note.

Built on top of the JSON Canvas 1.0 format used by kepano/obsidian-skills/json-canvas (MIT, © 2026 Steph Ango). See the Attribution section at the end.

Mental model

  • Nodes are units of attention. Anything you'd otherwise lose between sessions: an open question, a decision you punted on, an insight that came up while debugging something else.
  • Edges are "because of". A child exists because the parent led you there. Direction matters — fromNode is the cause / context, toNode is the spawned branch.
  • A small active set — 1–3 nodes — is what you're working on right now. They're colored a bright electric cyan (#18E0FF, 🎯) so the live edge of the work pops out of the tree. Exactly one of them is the primary focus, marked loud with a leading 👉; that's "where I'm thinking from right now" and where new nodes attach by default. The other 0–2 are parallel threads you're juggling (e.g. while driving several agents).
  • add does not change the active set. It always attaches to the 👉 primary. The active set only changes when the user says so — mark a node active, unmark one, or promote a new primary. This is what lets you branch sideways without descending forever.
  • Groups are containers, not units of attention. A group is a labeled rectangle that wraps a whole branch into one logical topic bucket (e.g. "Auth Server setup"). It carries a lightweight lifecycle of its own (color + emoji: 📌 active → ⏳ in progress → ⛔ blocked → ✅ done) but takes no edges — it just corrals the nodes whose boxes fall inside its rectangle. See the Groups section.
  • Doneness flows through the tree. A container — a group, or any node that has children — is "done" only when everything inside it is settled (🟢 resolved or 💡 insight). That single rule runs down (you can't close a container over open work) and up (finishing the last open child offers to close its parents). See Doneness & propagation.

Color & emoji taxonomy

The active set is 1–3 nodes carrying the bright active color #18E0FF (a literal hex, not a numbered preset — that's what makes it louder than everything else on the canvas). They're the things you're working on right now. Exactly one of them is the primary focus: its title line leads with a loud 👉 (👉 🎯 …), and that's the attach anchor for add. The other active nodes are plain 🎯 (no arrow). Marking / unmarking a node and promoting a new primary move these markers — the active color appears on 1–3 nodes, the 👉 on exactly one of them, never more.

Installs
11
Repository
otrebu/skills
First Seen
Jun 7, 2026