Topic: ADR template in Linear
ADR Template in Linear — Documents, Custom Properties, and the Graduated Handoff
Many engineering teams that use Linear for project management want their architecture decision records in the same tool — close to the issues they govern, searchable alongside epics, visible in the context where decisions get acted on. Linear Documents provide the right drafting surface. But Linear is not the right archive for ADRs long-term. This page explains the graduated handoff pattern that uses both tools for what each does best.
TL;DR
Use Linear Documents to draft and review ADRs (the collaborative, mutable phase), then graduate each Accepted ADR to a Markdown file committed in the code repository (the immutable archive). Set up a Decision Documents workspace in Linear with custom properties for Status, Decider, and Date decided. Link each ADR Document to the relevant Issue or Project. Once the decision is Accepted, commit the Markdown file and mark the Linear Document as archived — the Document becomes the deliberation record, the Markdown file is the canonical ADR.
Why engineers want ADRs in Linear
The appeal is proximity. A decision to switch from REST to GraphQL is not an abstract artifact — it was caused by a specific set of Issues and it affects a specific Project. Engineers who discover it via a Linear Issue shouldn't have to context-switch to a different tool or navigate a git repository to find the rationale. Linear Documents sit inside the same workspace as the Issues, visible in the sidebar of the Projects they govern, searchable from the same command palette.
Linear also provides what plain Markdown files in a repository lack: a collaborative drafting environment. Multiple engineers can edit a Linear Document simultaneously, leave comments on specific paragraphs, and iterate on the Decision section without making a git commit for every revision. The review cycle for an ADR — where the lead engineer proposes the decision, others push back on the Alternatives section, the CTO adds a note to Consequences — happens more naturally in a Document than in a pull request.
The third appeal is integration. Linear Cycles and Projects track what the team is building. An ADR Document linked to the Cycle that will implement the decision keeps the 'why' one click away from the 'what' and 'when'. Engineers who join mid-cycle can read the ADR without leaving the tool they have open.
Setting up Decision Documents in Linear
Linear organizes Documents within a Team or Workspace. The recommended structure:
- Create a Documents folder called
Architecture Decisionsin the relevant Team (or in a cross-team Workspace folder if decisions span multiple teams). Do not use a Project for this — Projects have a lifecycle that ends when the project does; ADR Documents should persist beyond any single Project. - Create a Document template with the ADR structure pre-filled. Linear Document templates appear in the New Document menu and enforce a consistent starting point without requiring engineers to remember the ADR format.
- Add custom properties to Document templates to track ADR-specific metadata across the folder without embedding metadata in the body text.
The Linear ADR Document template
Copy this into your Linear Document template. The section order matches the Nygard template so it is compatible with the Nygard ADR format when you graduate to Markdown:
# ADR-[NUMBER]: [Title — name the decision, not the problem]
## Status
Proposed | Under Review | Accepted | Superseded | Deprecated
## Context
[Two to four sentences. What situation forced this decision? What constraints exist?
What would happen if we did nothing? Do not include the decision itself here.]
## Decision
[One active-voice sentence naming what was chosen. "We will use X." Not "X was chosen" or "We should consider X."]
## Consequences
[Bulleted list. Include at least one genuine downside — an ADR with only positive consequences is a press release.
Separate positive consequences (marked +) from negative ones (marked –) from neutral ones (marked ~).]
### Positive
- + [something that improves]
### Negative (trade-offs)
- – [something that gets worse or becomes harder]
### Neutral
- ~ [something that changes but is neither better nor worse]
## Alternatives considered
[For each alternative you rejected, one sentence on why. Prevents re-litigating closed decisions.]
| Option | Why rejected |
|---|---|
| [Option A] | [one-sentence rejection rationale] |
## Stakeholders
[Who was consulted before this decision was made? Relevant for decisions that affect other teams.]
## Deliberation record
[Link to the Linear Issue or discussion thread that triggered this decision. Added at graduation time.]
Custom properties to add to the template
| Property name | Type | Values / notes | When to use |
|---|---|---|---|
| Status | Select | Proposed / Under Review / Accepted / Superseded / Deprecated | Always. This is the field that drives dashboard filtering. |
| Decider | Member | Single member — the engineer who made the final call | Teams of 5+. Prevents the "who owns this?" question during oncall handoff. |
| Date decided | Date | When the Status moved to Accepted — not when the Document was created | Always. Gap between created and decided reveals how long decisions take to finalize. |
| Supersedes | Text | ADR number of the decision this one replaces (e.g., "ADR-017") | Only when this ADR supersedes a prior decision. Keep it a text field — the CI check on the Markdown file will enforce the actual file pointer. |
| Repo file | URL | Direct link to the committed Markdown ADR file in GitHub/GitLab | Added at graduation time. Turns the Linear Document into a pointer to the canonical file. |
Linking ADR Documents to Issues and Projects
Linear's Relations feature (Document sidebar → Relations icon) lets you link a Document to Issues, Projects, and other Documents. For ADRs the most useful links are:
- Link to the triggering Issue. The bug or feature request that forced the architecture decision. When engineers open that Issue six months later, they see the ADR immediately — no repository navigation required.
- Link to the governing Project or Initiative. The high-level work stream the ADR applies to. Engineers scoping a new Cycle in the same area will encounter the ADR as they plan.
- Do not link to every affected Issue. If an ADR about GraphQL migration is linked to 47 Issues in the sprint, the signal collapses into noise. Link to the origin Issue and the governing Initiative; let engineers discover the ADR via search for everything else.
In Issue descriptions and comments, reference ADRs by number: See ADR-042 (Linear: [link]) for the rationale. Include both the number (for searchability in the Markdown file) and the Linear link (for engineers in the Linear context). Once the ADR is graduated to Markdown, update the comment to point at the repository file instead — the Linear Document URL should be treated as a temporary review link, not a permanent citation.
The graduated handoff: from Linear draft to committed Markdown
This is the core of the Linear ADR pattern and the reason it works where a pure-Linear approach fails. The lifecycle has three phases:
- Draft in Linear. Create the Document from the template. Engineers iterate collaboratively — editing the Consequences section, arguing in comments about the Alternatives table, tagging the Decider. Status is
ProposedorUnder Review. The Document is mutable and expected to change. - Accept and graduate. When the team reaches consensus, mark the Linear Document Status as
Accepted. Copy the Document content to a Markdown file using the Nygard filename convention (NNNN-title-in-kebab-case.md). Commit the Markdown file to the/doc/decisions/directory via a pull request. The PR description links back to the Linear Document as the deliberation record. Merge the PR. - Archive the Linear Document. Update the Document's
Repo fileproperty with the direct link to the committed Markdown file in GitHub/GitLab. Set the Document to read-only (comment-only mode, or simply by team convention) and add a notice at the top: This Document has graduated to [ADR-042 in the repository]. This page is a deliberation record — it is not the canonical ADR. Do not edit it.
The graduated Markdown file is now the canonical ADR. It is subject to the ADR review checklist, the GitHub Action CI validation, and the immutability guarantee that ADRs derive their authority from. The Linear Document is preserved as the deliberation record — useful for future engineers who want to understand the discussion, not just the decision.
The Linear export gap
Understanding what Linear does and does not export matters for long-term ADR preservation:
| Item | In Linear CSV export? | Via Linear API? | Notes |
|---|---|---|---|
| Issue titles, descriptions, labels, custom fields | Yes | Yes | The core Issue data is well-covered by both paths. |
| Document titles | No — Documents not in CSV export | Yes — via document GraphQL query |
Title is available via API; not in the settings CSV export. |
| Document body content | No | Yes — as structured document object, not Markdown | Linear's internal format requires conversion. No one-click Markdown export as of 2026. |
| Document custom properties | No | Yes — via API alongside Document object | Status, Decider, Date decided are all API-readable. |
| Document comments | No | Yes — via comments field on Document |
The deliberation comments are the most valuable part for historical context — extract via API before migrating away from Linear. |
| Document relations (linked Issues/Projects) | No | Yes — via relations field |
Relational graph is only queryable via API; not in any file export. |
This export gap is the structural argument for the graduated handoff: if your ADRs are only in Linear Documents and your company migrates away from Linear, recovery requires a custom GraphQL extraction script, format conversion, and manual review. If your ADRs are Markdown files in git, they survive any tool migration — the repository is the source of truth and every editor reads Markdown natively.
Linear vs other tool-specific ADR storage
| Tool | Best use in ADR lifecycle | Immutability guarantee | Export path | Cross-links to Issues? |
|---|---|---|---|---|
| Linear Documents | Drafting and review | None — editable by anyone with access | GraphQL API (body not Markdown) | Yes — native Relations feature |
| Git repo (Markdown files) | Canonical archive | Full — every edit is a commit with author + timestamp | Native — files are already Markdown | Via link in ADR text / PR description |
| Notion | Drafting and stakeholder review | None — full edit history but no immutability constraint | Markdown export available | Via relation property / mentions |
| Confluence | Enterprise stakeholder review and publication | None — page versioning but no immutability constraint | PDF / Word export | Via Jira issue macros |
| Obsidian | Personal PKM for drafting and Dataview querying | Via git sync (optional) | Native Markdown | Via wikilinks to issue URLs in notes |
Why this matters for decision capture
The graduated handoff pattern solves the drafting-vs-archive problem. But it does not solve the deeper problem: decisions that were never written down in the first place. Engineers who use ChatGPT or Claude to think through architecture calls — discussing Postgres vs Redshift in a prompt session, evaluating three caching strategies with an AI assistant — rarely convert that reasoning into a Linear Document, let alone a committed ADR. The reasoning is in the chat history, not in any project management tool.
For decisions already in your AI chat history, the WhyChose extractor reads your ChatGPT or Claude export and surfaces the architecture calls inside as structured decision records — formatted in Nygard-compatible Markdown, ready to drop into /doc/decisions/ without rewriting from scratch. The extracted records can also serve as the starting point for a Linear Document: paste the extracted ADR into a new Document, tag the Decider, set the Status to Under Review, and trigger the review cycle that the original chat session skipped.
Related questions
Can Linear Documents replace git-based ADRs long-term?
No — for two structural reasons. ADRs derive their authority from being immutable once Accepted: a Markdown file in git cannot be silently edited without a commit trail. Linear Documents can be edited without audit trail by anyone with edit access, undermining the immutability guarantee. Second, ADRs need to survive company tool migrations — Markdown files in a code repository outlive every project management tool. Use Linear Documents for drafting and review, then graduate to committed Markdown files. The Linear Document becomes the deliberation record; the committed file is the canonical ADR.
What Linear custom properties are most useful for ADR tracking?
Status (Proposed / Under Review / Accepted / Superseded / Deprecated), Decider (the engineer who made the final call — not the author), Date decided (when Status moved to Accepted — not when the Document was created), and Repo file (direct URL to the committed Markdown file in the repository, added at graduation time). At 3 people: Status and Decider are enough. At 10+: all four fields add clear value. Avoid adding more than five properties — schema inflation makes the template feel bureaucratic and engineers stop filling it in.
How do you link Linear ADR Documents to the issues they affect?
Use Linear's native Relations feature (Document sidebar → Relations icon) to link the ADR Document to the triggering Issue and the governing Project or Initiative. Do not link to every affected Issue — signal collapses. In Issue descriptions and comments, reference ADRs by number ("See ADR-042") with both the Linear Document link (for current reviewers) and the repository file link (once graduated). When the ADR graduates to Markdown, update the comment to point at the repository file — the Linear Document URL is a temporary review link, not a permanent citation.
Does Linear's data export include the full text of Documents?
Not via the CSV export (Settings → Export → CSV), which covers Issues only. Document content is accessible via the Linear GraphQL API via the document query, but in Linear's internal format — not Markdown — which requires conversion. As of 2026 there is no one-click Markdown export for Documents. This is the core structural argument for the graduated handoff: Markdown files in git survive any tool migration; Linear Documents require a custom extraction script. If your ADRs are only in Linear Documents and you later migrate away from Linear, recovery requires a GraphQL extraction script, format conversion, and manual review per Document.
Further reading
- ADR template for Notion — the equivalent setup for Notion-native teams: Notion database schema with Status, Date, and Supersedes properties, a Notion template page with the Nygard sections pre-filled, and the Pro tier export path from WhyChose directly into a Notion ADR database via the Notion API. Notion has a native Markdown export for pages; the export gap is narrower than Linear's.
- ADR template for Confluence — enterprise teams on Confluence using Info, Status, and Table macros to embed ADR structure inside Confluence pages. Covers the Confluence page template setup, the macro approach for structured metadata, and the Markdown import path for teams that want to keep both a Confluence page and a repository Markdown file in sync.
- ADR template in Obsidian — Dataview queries, auto-numbering, and the supersession Canvas — the personal PKM approach to ADR drafting. Obsidian + Templater for auto-numbered scaffolding, YAML frontmatter for Dataview status dashboards, and the Canvas for the supersession graph. Obsidian is the right tool for personal ADR drafting the way Linear is the right tool for team-collaborative drafting — both graduate to git-committed Markdown for the canonical archive.
- ADR template for Jira — custom fields, Confluence integration, and the graduated handoff — the Atlassian-stack parallel to this page: Jira Issues with custom ADR Status / Decider / Date Decided fields for teams that want ADR tracking inside their primary issue tracker, or Confluence pages linked from Jira Epics for teams that need proper document formatting. The graduated handoff to committed Markdown is the same pattern regardless of whether the drafting surface is Linear Documents, Confluence pages, or Jira Issues.
- ADR tooling comparison — adr-tools vs Log4Brains vs adr-log vs hand-rolled — the broader evaluation of ADR creation and publication tooling. Linear fits into the drafting phase of this landscape; adr-tools handles creation of the committed Markdown file; Log4Brains handles publication as a searchable web UI. The comparison table covers all four options across 12 dimensions.
- ADR review checklist — what to look for before merging an architecture decision record — the 12-item checklist for reviewing a graduated ADR Markdown file in a pull request. Covers structural requirements (Title names the decision not the problem, Decision is one active-voice sentence, Consequences includes at least one downside) and traceability requirements (Superseded-by pointer resolves to an existing file, Status value is in the allowed set).
- The ADR GitHub Action — a CI pipeline for architecture decision records — the GitHub Action that validates committed Markdown ADR files at merge: status value enforcement, Superseded-by pointer resolution, and numbering gap detection. Runs independently of the drafting tool — whether you draft in Linear, Notion, or Obsidian, the Action validates the committed Markdown file the same way.
- The open-source extractor — reads your ChatGPT or Claude conversations.json export and surfaces the architecture decisions inside as Nygard-compatible Markdown. The extracted records are ready to paste into a Linear Document for team review, then graduate to a committed Markdown file — closing the gap between the AI chat where the decision happened and the ADR directory where the decision should live.