Expand description
git-adr: Architecture Decision Records management using git notes
This crate provides a library and CLI tool for managing Architecture Decision Records (ADRs)
stored in git notes. ADRs are stored in refs/notes/adr and can be synchronized across
remotes like regular git content.
§Features
- Store ADRs in git notes (non-intrusive, no file clutter)
- Multiple ADR formats (MADR, Nygard, Y-Statement, Alexandrian, etc.)
- Full-text search and indexing
- Binary artifact attachments
- Sync with remotes
- Optional AI integration for drafting and suggestions
- Optional wiki sync (GitHub, GitLab)
- Export to multiple formats (Markdown, JSON, HTML, DOCX)
§Example
use git_adr::core::{Git, NotesManager, ConfigManager};
// Initialize git executor
let git = Git::new();
// Load configuration
let config = ConfigManager::new(git.clone()).load()?;
// Create notes manager
let notes = NotesManager::new(git, config);
// List all ADRs
let adrs = notes.list()?;
for adr in adrs {
println!("{}: {}", adr.id, adr.title());
}Modules§
- ai
- AI-powered features for git-adr.
- cli
- CLI command definitions and handlers.
- core
- Core functionality for git-adr.
- export
- Export functionality for git-adr.
- wiki
- Wiki synchronization for git-adr.
Enums§
- Error
- Errors that can occur in git-adr operations.
Type Aliases§
- Result
- Result type alias for git-adr operations.