FISTA Solutions does not load Google Analytics until you accept. Rejecting keeps optional analytics off. Read the Cookie Policy.

All field notes

Playbook ┬╖ 6 minute read

How to Build a Linear AI Agent

A Linear AI agent uses the GraphQL API and webhooks to triage inbound issues into the right team and labels, enrich them with customer and code context, detect duplicates, and produce cycle and project summaries, while leaving priority, assignment, estimates, and status transitions to the team. Linear's conventions are strong; the agent works within them.

By FISTA Solutions┬╖ AI-Native Engineering Team┬╖
How to Build a Linear AI Agent article cover

Linear is chosen by teams that want a fast, opinionated issue tracker and a quiet one. Those opinions are the constraint an agent must respect: priority is set in planning, cycles have a rhythm, and nobody wants a bot commenting on every issue. Within that, an agent adds real value at intake, where issues arrive thin, and in reporting, where someone assembles the same summary every week. This guide covers building one that Linear teams keep, drawing on FISTA Solutions' AI agents delivery for product teams. It complements how to build a jira ai agent and ai and the future of product management.

How does integration work?

Through the GraphQL API, authenticated by an OAuth application or API key scoped to the workspace, with webhooks on issue creation and update driving the agent. GraphQL suits agents: the agent requests the issue fields, labels, team, project, cycle, and comments it needs and nothing else, which keeps context assembly tight.

The agent should operate as its own identity, so its comments and changes are attributable and can be filtered.

What should the agent do at intake?

TaskValueRisk
Route to the right teamHigh; misrouted issues sitLow; teams can move them
Apply the team's labelsMediumLow
Detect duplicatesHigh; duplicates fragment discussionLow; proposed, not merged
Link customer contextHigh; the why behind the issueLow
Link related code changesHigh for bugsLow
Request missing informationMediumLow
Set priorityNone the team wantsHigh; reverses planning decisions
AssignNone the team wantsHigh; ignores capacity
EstimateNone the team wantsHigh; estimates are a team practice

The bottom three rows are the boundary. Everything above it is intake work the team is glad to hand off; everything below is the team's own practice.

Why does customer and code context matter most?

Because issues arrive as a sentence and the engineer needs the paragraph. A bug report linked to the support conversation that generated it, with the customer's account, plan, and the steps they described, is actionable; the sentence alone requires a round trip. A feature request linked to the three other customers who asked for something similar changes its weight in planning.

On the code side, a bug linked to the recent changes in the affected area, or to the error tracking issue that matches it, saves the investigation's first hour. The agent assembles both and attaches them once, at triage. See how to build an intercom ai agent and how to build a sentry triage agent for the source systems.

How should duplicates be handled?

Proposed, not merged. The agent compares new issues against open and recently closed ones on title, description, and linked context, and where it finds a likely duplicate it comments with the candidate and its reasoning. The team decides whether to merge, because two issues that look identical sometimes describe different problems and the person who can tell is the engineer.

What reporting fits?

Cycle summaries, in a fixed structure: what completed, what carried over and the reason recorded on each carried issue, what is newly at risk, and what needs a decision. Project status drafts assembled from issue progress for the project lead to edit. Updates for stakeholders outside the team who do not read Linear.

Consistency matters more than eloquence. A reader compares this week against last, and a summary whose shape changes weekly defeats that. Summaries go to project updates or a document, not to individual issues.

How is the agent kept quiet?

By design. One comment per issue at triage, containing the routing, links, and any duplicate candidate. No comments on status changes, no reminders, no nudges. Summaries written to project updates. Silence when there is nothing to add, which for most issue updates is the right response. Linear teams chose a low-noise tool, and an agent that raises the noise floor is removed.

What about the agent's own issues?

Where an agent surfaces something the team should act on, such as a cluster of similar customer complaints or a code area generating many bugs, creating one issue with the evidence attached is appropriate. Creating issues automatically for every finding is not; it fills the backlog with work nobody chose. The threshold should be high and the created issue should carry enough context to be actionable or closed in one read.

How is it evaluated?

Routing against where the team actually moved issues. Label accuracy against the team's own labelling on a sample. Duplicate proposals by acceptance rate. Context enrichment by whether engineers used the linked material, judged on a sample. Summaries by the project lead's edits. And the intake measure: time from issue creation to first engineer action, before and after.

What does the build sequence look like?

One week on the OAuth application, webhooks, and reading the team's labels, templates, and conventions. Two weeks on triage with routing, labelling, and duplicate detection, with the team correcting. One week on context enrichment from customer and code systems. One week on cycle summaries in a structure the lead approves. Then stakeholder updates.

What goes wrong?

Agents that set priority. Agents that assign. Comments on every update. Duplicates merged automatically. Summaries in prose that changes shape weekly. Issues created for every finding. And taxonomy invented by the agent rather than read from the team.

How does this interact with Linear's own automation and AI?

Linear ships workflow automation and increasingly its own AI features, and where they cover a need they should be used rather than duplicated. Auto-closing issues when a linked pull request merges, moving issues between states on triggers, and similar rules belong in Linear's configuration. A custom agent earns its place on the judgement work: routing from content, enriching from systems outside Linear, detecting duplicates by meaning rather than title, and assembling summaries in the team's own format. Building agent logic to replicate a native rule adds fragility and takes control away from the team.

How FISTA Solutions helps

FISTA Solutions builds Linear agents that triage into the team's own structure, enrich issues with customer and code context at intake, propose duplicates, and produce consistent cycle summaries, while leaving priority, assignment, and estimates to the team and keeping the tracker quiet, through AI enablement, AI agents, and forward deployed engineers. The record behind the approach is 150+ projects for 50+ companies with 99.9% uptime.

To improve intake and reporting without disturbing how the team works, message FISTA on WhatsApp, or read ai and the future of product management.

Share-ready article cover

Download the generated social format.

Download cover

Clear answers

Questions raised by this field note.

Straightforward guidance for evaluating scope, fit, and the next step.

01How does an agent integrate with Linear?

Through the GraphQL API with an OAuth application or API key scoped to the workspace, and webhooks on issue creation and updates. GraphQL lets the agent request only the fields it needs, which keeps payloads small and interactions fast.

02What should the agent do with inbound issues?

Triage them into the right team using the team's own labels and templates, detect duplicates against open and recently closed issues, enrich with linked customer conversations and related code changes, and request missing information from the reporter, all without setting priority or assignee.

03Why leave priority and assignment to the team?

Because Linear teams set priority in planning conversations with context the agent lacks, and assignment reflects capacity and agreements between people. An agent that reprioritises or reassigns produces reversals and distrust, which costs more than the time saved.

04What reporting is worth automating?

Cycle summaries stating what completed, what carried over and why, and what is at risk; project status drafts assembled from issue progress; and updates for stakeholders outside the team, each in a fixed structure so readers compare week to week.

05How is the agent kept quiet?

By commenting once per issue at triage rather than repeatedly, writing summaries to a project update or document rather than to individual issues, and staying silent when it has nothing to add, which respects the low-noise environment Linear teams choose it for.

Start with the hard problem

Need the outcome owned, not merely analyzed?

Tell us where delivery is constrained. WeтАЩll map the fastest credible path from intent to verified production.

Start a project