Current state, current work, and direction — scrutable at a glance. One tree of needs, every need backed by evidence, every ratio earned. Signals arrive raw, get triaged once, and work flows out the other side carrying its why.
Raw observations land in one inbox, verbatim, with provenance — reported, asserted or inferred. From the app, or straight out of a Claude conversation.
One explicit decision per signal: does it evidence a need you already hold, or propose one you don't? Nothing enters the graph unbacked.
Decompose needs until a leaf is small enough to serve, and link the issue that carries it. The work travels with its evidence.
Needs, inbox, board, refine — four surfaces over one graph. Refine ranks the dangling leaves by evidence pressure, so “what should we work on next?” is answerable in one glance.
Every issue traces back to a need in the tree, and every need states who it is for. “Why are we building this” always has an answer.
A need enters the graph carrying a signal or a named assertion. The why is always inspectable, never folklore.
A parent reads 3/5 because three leaves are genuinely served — never because someone dragged a slider on a Friday.
Every action lands in an append-only record. Dismissals are listed, archives are reversible, history is first-class.
"we keep a spreadsheet on the side
because the tracker loses the why"
— sig_0847 · interview · 12 Jun, 14:02
The capture path is wherever the thought happens. Paste a customer quote at Claude mid-conversation and the gx connector files it with provenance, ready for triage — the MCP server speaks the same domain language as the app, and Linear issues created from a need carry its evidence with them.
A workspace takes a minute. The first thing it asks for is the vision.