Deciduous
Decision graph tooling for AI-assisted development.
Track every goal, decision, and outcome. Survive context loss. Query your reasoning.
The Problem
Claude (and LLMs generally) lose context. Sessions end, memory compacts, decisions evaporate. Six months later, no one remembers why you chose approach A over approach B.
The Solution
Every decision is tracked in a queryable graph that persists forever:
View your graph at localhost:3000:
Quick Start
1. Install
2. Initialize in your project
This creates:
.deciduous/- Database directory.claude/commands/decision.md-/decisionslash command.claude/commands/context.md-/contextslash commandCLAUDE.md- Project instructions with workflow section.gitignore- Ignores.deciduous/
3. Start tracking
# Add nodes
# Link them
# View the graph
4. Query your history
Node Types
| Type | Purpose | Example |
|---|---|---|
goal |
High-level objectives | "Add user authentication" |
decision |
Choice points with options | "Choose auth method" |
option |
Approaches considered | "Use JWT tokens" |
action |
What was implemented | "Added JWT middleware" |
outcome |
What happened | "JWT auth working" |
observation |
Technical insights | "Existing code uses sessions" |
Edge Types
| Type | Meaning |
|---|---|
leads_to |
Natural progression |
chosen |
Selected option |
rejected |
Not selected (include reason!) |
requires |
Dependency |
blocks |
Preventing progress |
enables |
Makes something possible |
Claude Integration
Deciduous creates Claude slash commands automatically:
/context - Session Start
Run this at the start of every session to recover context:
/context
This queries the decision graph and git state, then reports:
- Recent decisions (especially pending/active ones)
- Current branch and pending changes
- Suggested next steps
/decision - Log Decisions
Log decisions as you work:
/decision add goal "Add dark mode"
/decision add action "Implementing theme toggle"
/decision link 1 2 "Goal leads to action"
/decision nodes
The Workflow
SESSION START
|
Run /context -> See past decisions
|
DO WORK -> Log BEFORE each action
|
AFTER CHANGES -> Log outcomes
|
BEFORE PUSH -> deciduous sync
|
SESSION END -> Graph survives
Commands
# Initialize
# Add nodes
# Types: goal, decision, option, action, outcome, observation
# Link nodes
# Query
# Serve
# Export
# Status
Confidence Weights
Every node can have a confidence score (0-100):
| Range | Meaning |
|---|---|
| 90-100 | Certain, proven, tested |
| 70-89 | High confidence, standard approach |
| 50-69 | Moderate, some unknowns |
| 30-49 | Experimental, might change |
| 0-29 | Speculative, likely to revisit |
Commit Linking
Link decisions to specific code changes:
The web viewer shows clickable commit badges that link to GitHub.
Web Viewer
The built-in viewer has 4 tabs:
| Tab | View |
|---|---|
| Chains | BFS chain detection, session grouping, sidebar navigation |
| Timeline | Git commits + decisions merged chronologically |
| Graph | D3.js force-directed, drag/zoom |
| DAG | Dagre hierarchical layout |
Start it with:
GitHub Pages Deployment
Export your graph for static hosting:
The web viewer works without a server - it reads the JSON file directly.
The Story
Deciduous was extracted from losselot, an audio forensics tool that grew into an experiment in AI-assisted development.
The core insight: Claude sessions lose context, but the decision graph survives. Every goal, every rejected approach, every "why did we do it this way?" is preserved and queryable.
This isn't documentation written after the fact. It's a real-time record of how software gets built - captured as decisions happen, not reconstructed from memory later.
Browse the live graph to see 100+ decisions from the development process.
Building from Source
Rebuild the Web Viewer
The React viewer is bundled into the binary. To rebuild:
License
MIT - Do whatever you want with it.