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::generate_edge_id;
pub use events::get_current_author;
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 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
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