Decision log template with ADRs
A decision log and its records, in six linked documents: the log that lists every decision with its status, the way your team decides, a blank record to copy, and three example records, one of them superseded by the next. Download them as Markdown files: they open in any editor, sit well in a code repository, and import into Nodary as a map.
6 Markdown files in a .zip, 6 kB
Free, no account, no email. Use it, change it, share it.
Read every page before you download
The log is the page everyone opens: one line per decision, linked to its record. Records follow the architecture decision record (ADR) format, and work for any decision, technical or not. The examples follow one sample product deciding where to keep uploaded files.
Documents
File Decision log template/Decision log.md
Decision log
How to use this template: italic lines are guidance. Replace them with your own words, then delete them. Values in square brackets are yours to fill in. Each decision has its own record, linked from the table below; a record is never deleted, and a decision that changes gets a new record that supersedes it.
Decisions
| Number | Decision | Status | Date | Decided by | Superseded by |
|---|---|---|---|---|---|
| ADR-001 | Keep decisions in this log | accepted | [date] | [names] | |
| ADR-002 | Store uploaded files on the application server | superseded | [date] | [names] | ADR-003 |
| ADR-003 | Store uploaded files in object storage | accepted | [date] | [names] | |
| [ADR-004] | [Your next decision] | [proposed] | [date] | [names] |
Statuses
- ProposedAcceptedRejected
- AcceptedSupersededDeprecated
Mermaid
flowchart LR n0["Proposed"] n1["Accepted"] n2["Rejected"] n3["Superseded"] n4["Deprecated"] n0 --> n1 n0 --> n2 n1 --> n3 n1 --> n4
| Status | Meaning |
|---|---|
| Proposed | Written and open for review, not decided yet |
| Accepted | Decided: the team works to it |
| Rejected | Decided against, and kept so nobody has to ask again |
| Superseded | Replaced by a later decision, whose number it gives |
| Deprecated | No longer applies, and nothing replaced it |
When to write a record
- The decision is hard to reverse: [a database, a supplier, a public API, a price]
- Several options were seriously considered
- Someone will ask why in six months
- It changes how another team works
The rest of the log
- How we decide: who proposes, who decides, and how a record is reviewed
- Decision record template: the blank record to copy for each new decision
This template is free to use, change and share. It comes from Nodary, where these files import as a map of linked documents.
File Decision log template/Decision log/01 How we decide.md
How we decide
The rules of the log, agreed once. Without them, records get written for small things and skipped for big ones.
Who decides
| Kind of decision | Proposed by | Decided by | Consulted |
|---|---|---|---|
| [Architecture] | [any engineer] | [tech lead] | [...] |
| [Product scope] | [...] | [product owner] | [...] |
| [Supplier or spending] | [...] | [...] | [...] |
From proposal to decision
- Copy the record template, give it the next number and the status proposed.
- Write the context and at least two options before the decision.
- Ask the deciders to review it by [date].
- Set the status to accepted or rejected, with the date and the deciders.
- Add a line to the decision log.
Changing a decision
Never edit an accepted record to say something else. Write a new record that supersedes it, set the old one to superseded with the new record’s number, and link the two both ways.
Reviews
- Accepted decisions are reviewed: [every quarter, at each milestone]
- Proposed decisions older than [two weeks] are decided or withdrawn
File Decision log template/Decision log/02 Decision record template.md
Decision record template
Copy this page for each new decision and give it the next number, such as ADR-004 followed by the decision in a few words.
| Field | Value |
|---|---|
| Number | [ADR-000] |
| Status | [proposed, accepted, rejected, superseded by ADR-..., deprecated] |
| Date | [date] |
| Decided by | [names] |
| Supersedes | [none, or ADR-...] |
Context
The forces at play: what is true today, what hurts, what constrains the choice. Facts, not the decision.
[Context]
Options considered
| Option | For | Against |
|---|---|---|
| [Option A] | [...] | [...] |
| [Option B] | [...] | [...] |
Decision
What you will do, in full sentences, starting with “We will”.
We will [...].
Consequences
- Easier: [...]
- Harder: [...]
- To watch: [...]
File Decision log template/Decision log/03 ADR-001 Keep decisions in this log.md
ADR-001 Keep decisions in this log
| Field | Value |
|---|---|
| Number | ADR-001 |
| Status | accepted |
| Date | [date] |
| Decided by | [names] |
| Supersedes | none |
Context
Decisions are made in meetings, chats and calls. A few months later, nobody remembers why the team chose what it did, and newcomers either repeat old debates or undo choices without knowing what they cost.
Options considered
| Option | For | Against |
|---|---|---|
| Write nothing down | Fast | The reasons are lost |
| Minutes of every meeting | Everything is kept | Nobody reads them, and decisions hide among the rest |
| One short record per significant decision, listed in a log | Easy to find and to read | About fifteen minutes per decision |
Decision
We will write one record for each significant decision, numbered in order, and list it in the decision log. A record is never deleted or rewritten: a new record supersedes it.
Consequences
- Easier: knowing why, and bringing newcomers up to speed
- Harder: deciding quickly without writing anything
- To watch: records written after the fact, or not at all
File Decision log template/Decision log/04 ADR-002 Store uploaded files on the application server.md
ADR-002 Store uploaded files on the application server
| Field | Value |
|---|---|
| Number | ADR-002 |
| Status | superseded by ADR-003 |
| Date | [date] |
| Decided by | [names] |
| Supersedes | none |
An example of a superseded record. Nothing in it was changed when ADR-003 replaced it, apart from its status.
Context
Users attach files to their documents. The product runs on one application server with a large disk, and the team has two engineers.
Options considered
| Option | For | Against |
|---|---|---|
| The application server’s disk | Simple, nothing new to run | Hard to back up and to share with a second server |
| Object storage | Grows without limits, cheap | One more service to learn and pay for |
Decision
We will store uploaded files on the application server’s disk and back the disk up every night.
Consequences
- Easier: shipping uploads this month
- Harder: adding a second server later
- To watch: the disk’s free space and the time a restore takes
File Decision log template/Decision log/05 ADR-003 Store uploaded files in object storage.md
ADR-003 Store uploaded files in object storage
| Field | Value |
|---|---|
| Number | ADR-003 |
| Status | accepted |
| Date | [date] |
| Decided by | [names] |
| Supersedes | ADR-002 |
Context
Traffic now needs a second application server, and a file written on one server’s disk is missing on the other. Restoring the nightly backup took four hours in the last drill. ADR-002 assumed a single server; that is no longer true.
Options considered
| Option | For | Against |
|---|---|---|
| A disk shared between the servers | No change to the code | One more thing to run, and a single point of failure |
| Object storage | Every server sees every file, versions kept, restores in minutes | Code changes for uploads and downloads |
Decision
We will store uploaded files in object storage with versioning on, and serve them through signed links that expire. This supersedes ADR-002.
Consequences
- Easier: adding servers, and restoring a deleted file
- Harder: running the product on a laptop without the storage service
- To watch: the storage bill, and links shared before they expire
How to use it
Agree on who decides
Fill in the process page first: which kinds of decision need a record, who proposes, who decides and who is consulted.
Copy the record for each decision
Give it the next number and the status proposed. Write the context and at least two options before anyone writes the decision.
Decide, then list it
Set the status to accepted or rejected, with the date and the deciders, and add a line to the log. A rejected decision stays: it saves the next debate.
Supersede, never rewrite
When a decision changes, write a new record that supersedes the old one, and mark the old one superseded with the new number. The history stays readable.
Import it into Nodary as a map
Nodary is an AI-native workspace where a team’s documents link instead of piling up. Import the .zip and the log arrives with its records filed under it and the links between them kept. Mark each record as canon, exploration, obsolete or superseded by the record that replaced it: the status shows on the document, and AI agents connected over MCP are told before they read a superseded one. When two documents disagree, Nodary shows both passages side by side.
- Open a project’s map and choose Import.
- Choose the Folder or ZIP tab, then Choose a ZIP.
- Pick the downloaded file, check the tree, and import.
The Free plan holds ten documents per workspace, the project’s own page included: the template’s six leave room for three more records. Nodary also has a one-page Architecture Decision Record template built in.
How AI agents connect to Nodary over MCP
Keeping a decision log people trust
A decision log fails when nobody writes in it, or when what it says no longer matches what the team does. These habits prevent both.
One decision per record
A record that settles three things is reopened three times. Keep each one to a single decision with a single status.
Context before the decision
Write what is true today and what constrains the choice before the decision itself. Six months later, the context is what explains it.
Always name two options
A record with one option is an announcement. Name the alternatives you seriously considered and why you did not take them.
Supersede, never rewrite
An accepted record is never edited to say something else. A new record replaces it and both stay, so the log tells the true story.
Say who decided
Each record names its deciders and its date. A decision without a name has nobody to ask, and nobody to change it.
Link to what it changes
Link each record to the documents it changes, and those documents back to it. A reader of the design then finds the reason in one click.
Questions about decision logs
What is a decision log?
A decision log is a running list of a team’s significant decisions: what was decided, when, by whom, its status, and a link to the record that explains it. It lets anyone, including a new teammate or an AI agent, find out why things are the way they are without asking around.
What is an ADR?
An architecture decision record, or ADR, is a short document for one significant decision: its context, the options considered, the decision and its consequences, with a number and a status. The format comes from software architecture, and works for any decision a team wants to keep.
What does superseded mean?
A superseded decision has been replaced by a later one. It stays in the log, unchanged, with the number of the record that replaced it, and the new record says which one it supersedes. Nothing is deleted, so the history stays true.
When should a team write a decision record?
When a decision is hard to reverse, when several options were seriously considered, when it changes how another team works, or when someone is likely to ask why in six months. Small reversible choices do not need one.
Should decision records live with the code or with the documents?
Teams that only share decisions among engineers often keep them in the code repository. When product, design, support or clients need to read them too, a shared workspace makes them easier to find. The files in this template work in both places.
Can I use it outside Nodary?
Yes. The files are plain Markdown with relative links: put the folder in a repository, open it in Obsidian as a vault, or read it on GitHub, diagram included.
Keep every decision where the team works.
Import the template into Nodary and the log becomes a map that says which decisions still hold, for your team and your AI agents. Free with two members, one project and ten documents, no card needed.