A text-based knowledge graph for tracking architecture decisions, incidents, processes, and company knowledge. Lives in your repo, works with your git workflow.
$ dg new adr "Use PostgreSQL for primary database"
Created docs/decisions/ADR-001-use-postgresql-for-primary-database.md
$ dg link ADR-001 implements DEC-005
Linked ADR-001 -> implements -> DEC-005
$ dg serve --open
Server running at http://localhost:3000
Markdown files with YAML frontmatter. Review decisions in PRs, track history with git blame, merge conflicts are just text.
ADRs, decisions, strategies, incidents, runbooks, processes, hiring docs, meetings, and more. Each with purpose-built templates.
Connect records with semantic links: supersedes, implements, depends_on, enables, conflicts_with. Trace decisions back to their origins.
dg serve launches a local dashboard. Browse records, view graphs, search content, see team assignments. Hot-reloads on file changes.
Designed for AI assistants. dg context extracts relevant records for LLM context windows. Ships with Claude Code skills.
Define users, teams, and roles in config. Track who made decisions, assign action items, see team membership history over time.
Explore real decision archives built with Decision Graph
The compression company's strategic decisions, from middle-out algorithm architecture to the PiperNet decentralized internet.
Historical decisions from Microsoft's founding through the Satya Nadella era. Based on the excellent Acquired podcast episodes.
Technical decisions with context, alternatives, and consequences
Business decisions using SPADE framework
Strategic direction using Six-Pager format
Post-mortems with timeline and action items
Step-by-step operational guides
Workflows with DACI assignments
Internal policies and compliance
Meeting notes with decisions and actions
Role definitions and requirements
Architecture-impacting customer needs
Product opportunities (OST format)
Privacy policies, ToS, agreements
Install via Homebrew (macOS/Linux):
$ brew install decisiongraph/tap/dg
Initialize with Nix flake template:
$ nix flake init -t github:decisiongraph/dg
Or add to existing flake.nix:
inputs.dg.url = "github:decisiongraph/dg";
# Then add dg.packages.${system}.default to your packages
Install via Cargo (requires Rust):
$ cargo install decisiongraph
Build from source:
$ git clone https://github.com/decisiongraph/dg
$ cd dg
$ cargo build --release
$ cp target/release/dg ~/.local/bin/
# Initialize in your project
$ dg init
# Create your first decision
$ dg new adr "Choose database technology"
# Browse locally
$ dg serve --open
# List all records
$ dg list
# Search
$ dg search "database" --content
# Link records
$ dg link ADR-001 implements DEC-002
# Trace why something exists
$ dg why ADR-001
# See impact of changing a record
$ dg impact DEC-001
Your future self will thank you when you can trace why that architecture decision was made.