dira
Never explain the same decision twice.
Your coding agent has amnesia. You keep re-explaining decisions you already made — and it keeps suggesting the thing you rejected in July. dira is a git-native ledger of the intents, decisions, rejected alternatives, and open questions behind your codebase, captured by the agent, pushed back before you ask.
See it catch a contradiction
✗ conflicts with dec-0060 (accepted 3 Jul 2026)
rejected alternative: "a daemon"
why_not: violates the single-binary intent (int-0002)
revisit_if: cold-start latency stops being the binding constraint
→ supersede dec-0060, or revise the planThe full transcript. Nothing cut, nothing staged for this page — this is the same output dira check prints in a terminal.
Three inversions
What that costs you
Zero clerical work
Hooks capture it; you press confirm. If it needed discipline, you'd have kept using ADRs.
It argues back
The only check that stops a plan by citing your own past reasoning, not a linter rule.
Objections
- I already have ADRs.
- So does the author — 83 of them, unread. Whether indexing an existing pile produces a useful ledger or just a second pile is an open question the project is still working through, not a shipped feature yet.
- Another tool to maintain?
- It replaces tools rather than adding one, and you don't maintain it — the agent writes it.
- Why not just a bigger CLAUDE.md?
- A context file has no lifecycle, no supersession, no rejected alternatives, and cannot enforce anything. It also grows until it stops being read — which is the original failure.
- Is this lock-in?
- Plain markdown in your own repo. Delete the binary; the record is still readable. Apache 2.0.
Status
Pre-release, buildable from source today. There is nobrew install yet — seethe docs page for the full command tour, generated from this build so it cannot go stale.
git clone https://github.com/kazi-org/dira
cd dira
go build ./cmd/diraNothing to install yet. Watching the repo is the whole ask while this ships.
★ Star kazi-org/dira →