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:

  1. Create a Documents folder called Architecture Decisions in 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.
  2. 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.
  3. 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:

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:

  1. 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 Proposed or Under Review. The Document is mutable and expected to change.
  2. 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.
  3. Archive the Linear Document. Update the Document's Repo file property 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.

Get early access

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