Exploring What You Built

With 56 nodes and 66 edges, snowflex's decision graph tells the complete story of how the library evolved. The real power isn't in reading nodes one by one — it's in asking your AI questions and getting answers grounded in the graph.

Asking Questions About Your Graph

The decision graph is not designed for humans to read directly. It's a database that your AI assistant queries when you have questions. You ask in plain language; Claude searches the graph and answers with evidence.

Claude Code — Q&A with the graph
❚❚
Animation paused
You
Why did we switch away from ODBC?
Claude
deciduous nodes --type revisit
ID TYPE STATUS TITLE
34 revisit active Reconsider ODBC as transport - switch to HTTP REST API
46 revisit active Reconsider single-key auth - support multiple key formats
Claude
deciduous show 34
Node #34 revisit
Title: Reconsider ODBC as transport - switch to HTTP REST API
Incoming: #33 — "ODBC limitations forced rethinking"
Outgoing: #36 — "Revisit leads to new transport decision"
Claude
deciduous show 33
Node #33 observation
Title: ODBC accumulating problems - sessions expire after 4 hours, UTF-16 corruption, Apple Silicon incompatible, memory issues
Claude
The team switched away from ODBC because of four accumulating problems (node #33): ODBC sessions expired after 4 hours of idle time, UTF-16 data returned by Snowflake caused encoding corruption, the ODBC driver was incompatible with Apple Silicon Macs, and there were memory issues. These problems triggered revisit #34, which led to evaluating two alternatives (nodes #37 and #38). The team chose a transport behavior pattern with HTTP implementation using Req (#37) because it allowed future extensibility, and rejected a direct HTTP client (#38) as too rigid. The result was the v1.0 rewrite (node #40).

Notice what happened: you asked a question in English, and Claude traced the full decision chain — from the observation, through the revisit, through the option evaluation, to the outcome. The graph gave it the evidence; Claude gave you the story.

More Examples

Claude Code — What's been tried before?
❚❚
Animation paused
You
What approaches have been tried and abandoned?
Claude
deciduous nodes --status superseded
ID TYPE STATUS TITLE
2 option superseded Use Erlang ODBC driver to connect to Snowflake
3 decision superseded How to connect Elixir to Snowflake?
5 outcome superseded Working single-connection ODBC wrapper
7 option superseded Explicit ConnectionPool in supervision tree
9 outcome superseded Multi-connection support via ConnectionPool (v0.1)
Claude
Three approaches were tried and superseded: (1) Direct ODBC connections — worked initially but couldn't handle concurrency. (2) ConnectionPool with supervision tree — solved concurrency but the API was cumbersome. (3) ODBC as transport entirely — replaced by HTTP REST in v1.0 due to reliability issues. If you're considering any of these approaches again, the graph has the specific reasons they were abandoned.
The graph makes your AI smarter

Once the graph has history, Claude uses it to avoid repeating past mistakes. If you ask it to implement something that was already tried and rejected, it will check the graph first and warn you — explaining why that approach failed before and what replaced it.

The Web Viewer (Optional)

For a visual overview, the built-in web viewer renders the graph in a browser. It's useful for presentations and getting a high-level sense of the graph's shape, but the Q&A interface above is how you'll interact with it day-to-day.

Starting the web viewer
deciduous serve Serving at http://localhost:3000 (auto-refreshes every 30s)

The viewer provides DAG, timeline, chains, and archaeology views. Leave it running in a background tab — it auto-refreshes as Claude adds nodes during a session.

Pulse — Graph Health Report

The deciduous pulse command gives a quick summary of your graph's health and structure:

deciduous pulse
deciduous pulse Graph Pulse ──────────────────────────────────────────────────────────── Nodes: 56 total goal: 3 option: 8 decision: 7 action: 12 outcome: 10 observation: 12 revisit: 2 Edges: 66 total leads_to: 52 chosen: 8 rejected: 6 Statuses: active: 18 completed: 14 superseded: 12 rejected: 6 pending: 4 abandoned: 2 Orphan nodes: 0 Dangling outcomes: 0

Pulse is useful for catching problems: orphan nodes (nodes with no connections), dangling outcomes (outcomes not linked to an action), and overall balance of node types.