# AIDR — AI Decision Records (full) > One markdown file recording one consequential decision made with AI agents: > the question, each agent's independent position, objections, and the human > arbitration that resolved them. Like an ADR, but for decisions where models > hold positions and a human holds authority. Canonical: https://aidr.work/ Repository: https://github.com/snapsynapse/aidr Updated: 2026-09-05 Repository release candidate: 0.2.1 (specification remains 0.1.0) ## What AIDR is An AI Decision Record (AIDR) captures one consequential decision made with the participation of AI agents. It records the question, each participant's independent position, any objections, and the human arbitration that resolved them, in one plain markdown file that survives tool changes. AIDR answers two questions that execution logs and chat transcripts answer poorly: who objected before we acted, and who had the authority to resolve the disagreement. Multi-model tools (councils, juries, AI code review) increasingly show where models disagree, then the disagreement evaporates into a chat answer. Execution logs record what ran. Neither preserves dissent or arbitration. AIDR makes that a plain file in the adopter's repo. No runtime, no service, no protocol to learn. Copy one template, fill it in when a decision matters. The optional linter uses only Node.js built-ins. ## Core concepts - AIDR: one markdown file recording one consequential decision made with AI agents. - independent-positions: two or more positions from distinct providers, recorded before arbitration. - dissent-preserved: disagreement exists in the record and the arbitration addresses it; dissent is never deleted. - human-arbitrated: a human, not a model, made and signed the decision. ## Design rules 1. One decision, one file. An AIDR is not a session log, task tracker, or transcript. 2. Plain markdown plus YAML frontmatter. Readable and writable without tooling. 3. Positions are first-class. A dissenting position is not an error state. 4. Dissent is never deleted. Records are superseded, not rewritten. 5. Arbitration is human. An agent MUST NOT author the Arbitration section. 6. Vendor-neutral. No field requires any particular model, provider, or runtime. ## File conventions - Records live in a `decisions/` directory at the repository or project root. - Filename: `AIDR-NNNN-short-slug.md`, NNNN zero-padded and unique within the directory. - UTF-8. The file begins with YAML frontmatter delimited by `---` lines. ## Frontmatter fields Required: `id` (e.g. `AIDR-0007`, matches the filename prefix), `title`, `status` (`open` | `arbitrated` | `superseded`), `date` (ISO 8601 opened), `arbiter` (the human holding decision authority — MUST identify a human). Optional: `decided` (ISO 8601 date of arbitration; required when status is arbitrated or superseded), `supersedes`, `superseded_by` (required when status is superseded), `tags`. ## Body sections (fixed order, level-2 headings) - Context (required): why the decision exists and what is at stake. - Question (required): a single decidable question. - Positions (required): one `### Position: