Skip to main content

Crate deciduous

Crate deciduous 

Source
Expand description

Deciduous - Decision graph tooling for AI-assisted development

Track every decision, query your reasoning, preserve context across sessions.

§Overview

Deciduous provides a persistent decision graph that survives context loss. Every goal, decision, option, action, and outcome is captured and linked, creating a queryable history of your development process.

§Node Types

TypePurpose
goalHigh-level objectives
decisionChoice points with options
optionApproaches considered
actionWhat was implemented
outcomeWhat happened
observationTechnical insights

§Quick Start

use deciduous::Database;

let db = Database::new("deciduous.db").unwrap();

// Add a goal
let goal_id = db.add_node("goal", "Implement feature X", None, Some(90), None).unwrap();

// Add an action linked to it
let action_id = db.add_node("action", "Writing the code", None, Some(85), None).unwrap();
db.add_edge(goal_id, action_id, "leads_to", None).unwrap();

// Query the graph
let graph = db.get_graph().unwrap();
println!("Nodes: {}, Edges: {}", graph.nodes.len(), graph.edges.len());

Re-exports§

pub use config::Config;
pub use db::build_metadata_json;
pub use db::get_current_git_branch;
pub use db::get_current_git_commit;
pub use db::CheckboxState;
pub use db::CommandLog;
pub use db::Database;
pub use db::DbRecord;
pub use db::DbSummary;
pub use db::DecisionContext;
pub use db::DecisionEdge;
pub use db::DecisionGraph;
pub use db::DecisionNode;
pub use db::DecisionSession;
pub use db::DeleteSummary;
pub use db::GitHubIssueCache;
pub use db::NodeDocument;
pub use db::NodeTheme;
pub use db::RoadmapConflict;
pub use db::RoadmapItem;
pub use db::RoadmapSyncState;
pub use db::Theme;
pub use db::CURRENT_SCHEMA;
pub use events::Checkpoint;
pub use events::Event;
pub use events::MaterializedState;
pub use export::filter_graph_by_ids;
pub use export::filter_graph_from_roots;
pub use export::generate_pr_writeup;
pub use export::graph_to_dot;
pub use export::parse_node_range;
pub use export::DotConfig;
pub use export::WriteupConfig;
pub use hooks::hooks_status;
pub use hooks::install_hooks;
pub use hooks::integration_status;
pub use hooks::uninstall_hooks;
pub use narratives::PivotChain;
pub use opencode::install_opencode;
pub use opencode::opencode_status;
pub use opencode::uninstall_opencode;
pub use opencode::update_opencode;
pub use pulse::PulseReport;
pub use records::edge_id;
pub use records::get_current_author;
pub use records::merge_record_files;
pub use records::merge_record_values;
pub use records::reconcile;
pub use records::split_conflict_markers;
pub use records::ConflictRepair;
pub use records::EdgeRecord;
pub use records::GraphDoc;
pub use records::LegacyImport;
pub use records::NodeRecord;
pub use records::ReadError;
pub use records::RecordStore;
pub use records::StoreCounts;
pub use records::SyncReport;
pub use records::TagRecord;
pub use records::ThemeRecord;
pub use records::DOC_VERSION;
pub use records::STORE_FILE_NAME;

Modules§

api
Multi-graph HTTP API daemon (deciduous serve --api).
archaeology
Archaeology - retroactive graph building with atomic operations
changelog
Embedded changelog for version update notifications
config
Configuration file support for deciduous
db
SQLite database with Diesel ORM
demo_swarm
deciduous demo-swarm: a multi-agent demonstration. One Opus lead and four Sonnet workers build one Tetris together in iTerm2 or Ghostty panes, sharing one decision graph, and every pane is recorded for a later replay.
events
Legacy event-log reader (pre-0.17 multi-user sync).
export
Export utilities for decision graphs
github
GitHub CLI (gh) Integration
hooks
Claude Code hooks management
init
Project initialization for deciduous
mcp
MCP (Model Context Protocol) server for deciduous.
narratives
Narratives - evolution story management for the decision graph
opencode
OpenCode integration
pulse
Pulse - current state health report for the decision graph
records
The shared graph file: one JSON document, tracked in git.
remote
Talking to a shared deciduous server.
roadmap
ROADMAP.md Parser and Sync Engine
schema
serve
HTTP server for decision graph viewer
server
The shared graph server every project writes to, set up by init and checked by update.
watch
Streaming a workspace’s writes as they happen: the client half of the server’s GET /events WebSocket.