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 diff::ApplyResult;
pub use diff::GraphPatch;
pub use diff::PatchDocument;
pub use diff::PatchEdge;
pub use diff::PatchNode;
pub use diff::PatchNodeTheme;
pub use diff::PatchTheme;
pub use events::Checkpoint;
pub use events::CheckpointDocument;
pub use events::CheckpointEdge;
pub use events::CheckpointNode;
pub use events::CheckpointNodeTheme;
pub use events::CheckpointTheme;
pub use events::Event;
pub use events::EventLog;
pub use events::EventLogError;
pub use events::MaterializedState;
pub use events::RebuildResult;
pub use events::generate_edge_id;
pub use events::get_current_author;
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;

Modules§

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
diff
Diff/patch functionality for multi-user graph sync
events
Event log system for multi-user sync
export
Export utilities for decision graphs
github
GitHub CLI (gh) Integration
hooks
Claude Code hooks management
init
Project initialization for deciduous
narratives
Narratives - evolution story management for the decision graph
opencode
OpenCode integration
pulse
Pulse - current state health report for the decision graph
roadmap
ROADMAP.md Parser and Sync Engine
schema
serve
HTTP server for decision graph viewer