Triage GitHub issues into Linear tickets automatically

By General Input

When a new GitHub issue is opened, an agent decides if it's a real bug, picks the right Linear team, and files a clean ticket with a back-link.

Integrations

  • GitHub
  • Linear

Type

Agentic Task

Categories

  • Engineering
  • Product

Build me an agent workflow that triages new GitHub issues into Linear tickets so my engineers only see real bugs in the tool they actually plan work in.

Trigger: a GitHub webhook on the 'issues' event, scoped to action = opened, on the public-facing repo I'll connect. The trigger payload gives the agent the repo owner, repo name, and issue number.

When the trigger fires, the agent should:

1. Call GitHub Get an Issue with the owner, repo, and issue number from the webhook to load the full title, body, labels, and author.

2. Decide whether the issue is a genuine bug. Treat questions, discussions, support requests, and feature requests as out of scope and stop. A genuine bug has reproducible behavior that contradicts documented or expected behavior of shipped features. If unsure, err on the side of skipping.

3. For genuine bugs, classify severity into one of: Urgent (crashes, data loss, security, production outage), High (broken core feature with no workaround), Medium (broken non-core feature or has a workaround), Low (cosmetic, minor).

4. Identify the likely product area from the issue body (for example: web app, API, billing, auth, mobile).

5. Call Linear List Teams to get the workspace teams. Pick the team whose name or key best matches the product area. If nothing matches confidently, default to the team I'll specify when I configure this.

6. Call Linear Create Issue on that team with: a clean, action-oriented title rewritten from the GitHub title; a description that contains a short summary, the extracted repro steps, expected vs. actual behavior, environment details if present, and a back-link to the original GitHub issue URL; a Linear priority that maps from the severity above (Urgent = 1, High = 2, Medium = 3, Low = 4).

7. Call GitHub Create an Issue Comment on the original issue with a short message thanking the reporter and linking to the new Linear ticket URL so they can follow along.

8. Call GitHub Add Labels to an Issue to add a 'triaged' label (I'll create this label in the repo first) so my team can filter triaged vs. untriaged issues in the GitHub UI.

Integrations: GitHub and Linear. Both should be OAuth-connected to my account before this runs.

Edge cases to handle: if the issue body is empty or just a screenshot, skip rather than guess. If Linear List Teams returns no match, fall back to the default team. If any step fails, stop without partial state (don't add the triaged label if the Linear ticket wasn't created).

Related prompts

Explore more prompts
Catch feature flags that never got switched on in productionWeekly alert noise review board for incident.io on-callMorning triage board for your Kernel browser agent runsTrack every half finished LaunchDarkly rollout in one boardFind the customers stuck contacting support again and againTurn shipped Linear work into Intercom product announcementsVoice agent QA review board for your Hume EVI callsClose the loop between Front tickets and Linear bug fixesOpen a Heroku release war room the moment production looks wrongFind the themes Help Scout tags miss and file them in Linear