Get early access
GitHub issue triage

New issues sorted, duplicates caught, stale ones surfaced.

Issue triage is an AI agent for GitHub issue triage. Every week it counts the new issues nobody has triaged, suggests an owner area for each, flags likely duplicates of older issues and lists the ones untouched for 30 days, in one Slack message. It never labels, assigns, comments on or closes an issue.

Issue triageLive
  1. 09:00Schedule fired
  2. 09:00Found 31 new, untriaged
  3. 09:01Searched for duplicates
  4. 09:01Listed 50 stale issues
  5. 09:02Posted · 2 likely duplicates
The problem

Why does the issue backlog grow unread?

Because issues arrive faster than anyone reads them. A busy repository gets dozens a week with no owner, the same bug is filed twice under different words, and old issues go quiet until nobody remembers why they're open. Triage gets put off until planning, and planning starts with an hour of reading.

Without it

  • Dozens of new issues a week with no owner.
  • The same bug filed twice, fixed once.
  • Issues untouched for months, unnoticed.
  • Backlog review that starts with an hour of reading.

With Issue triage

  • The week's untriaged issues, counted by area.
  • Likely duplicates paired, with links.
  • The longest-untouched issues listed.
  • One digest every Monday, nothing changed.
What it finds

What does GitHub issue triage cover?

Three lists every week, each with an owner area, and a plain note of anything it couldn't check.

  1. 01

    New and untriaged

    Issues opened this week with no label and no assignee, counted and grouped by suggested owner area.

    • Count
    • Owner area
  2. 02

    Likely duplicates

    Pairs of open issues that describe the same problem, each with both links and a reason.

    • Pairs
    • Partly checked
  3. 03

    Stale issues

    Open issues untouched for 30 days or more, the 8 longest first, with their days since update.

    • Days untouched
    • Area
  4. 04

    What it couldn't check

    Searches it couldn't run, pages that failed and bodies it didn't read, said plainly.

    • Limits
    • Gaps
How it works

How does AI GitHub issue triage work?

Every run follows the same five steps, then posts one digest. GitHub is only read, and only the last step writes anything.

  1. 1

    Lists the week's new issues

    Opened in the last 7 days, with no label and no assignee. Every page, counted from a written list.

    GitHubReads
  2. 2

    Searches for older matches

    Key words from new titles against older open issues, up to three searches.

    GitHubReads
  3. 3

    Reads the closest pairs

    Only when titles aren't enough, up to five, so a duplicate is called likely, never certain.

    GitHubReads
  4. 4

    Lists stale issues

    The longest untouched first, 30 days or more without an update.

    GitHubReads
  5. 5

    Posts the digest

    Counts first, then new issues by owner area, duplicates and the stale list.

    SlackPosts
When it runs
  • ScheduleMondays at 9:00, before planning
  • @mention@issue-triage what came in this week?
  • WebhookRun when another tool calls its webhook, such as before a backlog review
See it in Arclyx

From one sentence to Monday's triage.

Describe the job, let Arclyx draft the agent, test it once on your real repository, create it, then read what lands in #eng-triage. Every duplicate carries both links.

Paste the sentence. Arclyx picks the tools it needs and asks what it can't work out.

New agent

What should it do?

Every Monday at 9, write the issue triage digest for our GitHub repository: open issues from the last 7 days that nobody has triaged or assigned, likely duplicates of existing issues, and open issues untouched for 30 days, with a suggested owner area for each, and post it to #eng-triage.

Tools it can use
  • GitHub
  • Slack
Which owner areas should it use?
Backend, app, website, infra and billing
Answers picked for you

It writes the instructions, and you sign in to each tool once. Nothing runs until you say so.

New agent
  • Reading your description
  • Writing the instructions
  • Picking the tools

Issue triage

Draft · ready to test

  • GitHub
  • Slack

Runs Mondays, 9:00

Try it once as a dry run. It reads your real tools, and what it would post is shown to you, not posted.

Issue triage · Try it
Passed
  1. Round 1Lists the week's new issuesGitHub · List issues ×2
  2. Round 2Searches for older matchesGitHub · Search issues ×2
  3. Round 3Lists stale issuesGitHub · List issues
  4. Round 4Posts the digestNot sent, dry runSlack · Post

Once it's created, the output lands where you said, with a source for every item.

#eng-triage
Issue triageTriage digest · 31 new untriaged · 2 likely duplicates
  • Backend · New · 14

    #508 Webhook retries stop after the first failure, #506 Export times out on large workspaces, and 12 more.

    Owner area from each title; the ones it can't place go under Unclear.

    ↗ example-a.com/issues/508
  • Duplicate · #498 and #351

    Both ask for exports to respect workspace permissions.

    Likely, not certain: two of three searches used.

    ↗ example-a.com/issues/498
  • Website · New · 5

    #504 Pricing table overflows on tablets, #501 Blog images load blurry, and 3 more.

    Four examples per area at most, so the digest stays short.

    ↗ example-a.com/issues/504
  • Stale · #120 Dark mode for the mobile app

    96 days without an update; owner area unclear.

    One of the 8 longest untouched, from 50 stale issues fetched.

    ↗ example-a.com/issues/120

App 7 · Infra 2 · Unclear 3 · 50 stale fetched · nothing changed in GitHub

Who it's for

One digest, four readers.

The same Monday digest answers a different question for each person who reads it.

  • 01

    Engineering managers

    How much came in untriaged this week, by area.

  • 02

    Tech leads

    The new issues in their area, and the old ones nobody touched.

  • 03

    Product managers

    Duplicates to merge before planning, not during it.

  • 04

    Maintainers

    A backlog that doesn't grow unread.

Set it up

How do you triage GitHub issues with AI?

Give an AI agent read access to your issues and a weekly job: count the new issues nobody owns, suggest an owner area for each, pair likely duplicates and list what's gone stale. Your team reads one digest and applies the owners. In Arclyx that's five steps, starting with one sentence, and nothing in GitHub changes.

The sentence that built it
“Every Monday at 9, write the issue triage digest for our GitHub repository: open issues from the last 7 days that nobody has triaged or assigned, likely duplicates of existing issues, and open issues untouched for 30 days, with a suggested owner area for each, and post it to #eng-triage.”
Schedule · Mondays, 9:00
  1. 1

    Describe the job

    One sentence: which repository, which owner areas, and where the digest goes.

  2. 2

    Connect GitHub

    The agent gets only tools that list, search and read issues, so it can't change one.

  3. 3

    Name your areas

    Backend, app, website, infra or your own; anything it can't place is marked unclear.

  4. 4

    Watch a dry run

    Optional. See this week's digest from your real repository before anything is posted.

  5. 5

    Schedule it

    Mondays at 9:00, or @mention it before a backlog review.

Or start from one of these sentences

  • Daily intake

    “Every weekday at 9, list the issues opened since yesterday with no assignee, with a suggested owner area, and post them to #eng-triage.”

  • Duplicates only

    “Every Monday at 9, find likely duplicates among our open GitHub issues and send me the pairs with both links.”

  • Stale sweep

    “On the 1st of each month, list open issues untouched for 90 days, oldest first, with their owner area, in #eng-leads.”

  • One area

    “Every Monday at 9, list this week's new backend issues and any older backend issue they may duplicate, and post them to #backend.”

Compared

AI issue triage vs a stale bot.

Triage by hand and the stale workflow each cover part of the job. Here is what each one does, and doesn't, do.

What you needTriage by handactions/staleIssue triage
New issues with no ownerIf someone reads them allNoCounted and grouped by area
DuplicatesIf someone remembersNoLikely pairs, with links
Stale issuesOccasional sweepsLabelled after 60 days, closed 7 laterListed, longest untouched first
Changes your issuesYesYes: labels, comments and closesNever
SetupAn hour a weekA workflow fileOne sentence

Source: actions/stale on GitHub (default settings), checked 24 October 2026.

Safe by design

Is it safe to give an AI agent your GitHub issues?

It lists, searches and reads your issues and writes only one message to Slack or your inbox. Every run is recorded and has a spend ceiling by default.

Every run is recorded

  • Every step, in order

    Every run records the tools it called, with a short preview of each result. Only the person who started a run can open its content.

  • Counted, never estimated

    Its instructions say to page through every result and count from a written list of issue numbers.

  • What each run cost

    Tokens and cost are recorded per run and per agent, next to your plan's limits.

  • A spend ceiling, on by default

    Each run has a dollar ceiling unless you remove it. A run stops before it goes over it, and tells you.

It can

  • List, search and read issues in the repository you name
  • Post to one Slack channel you name, message you, or email you

It can't

  • Label, assign or close an issue
  • Comment on or edit an issue
  • Mark an issue as a duplicate
  • Email anyone but you
Questions

GitHub issue triage, answered.

What is GitHub issue triage?

Going through new issues to decide what each is, who owns it and whether it's already filed, and keeping old ones from rotting. Issue triage does the reading and sorting each week; deciding and applying owners stays with your team.

Does it label, assign or close issues?

No. It's given only GitHub tools that list, search and read issues. It suggests an owner area in the digest and your team applies it. It can't label, assign, comment on, edit or close anything, even if asked mid-run.

How does it count new issues?

It pages through every open issue updated in the last 7 days, keeps those opened in that window with no label and no assignee, writes the numbers out and counts that list. If a page fails, it says the count is incomplete rather than estimate.

How does it find duplicates?

It searches older open issues with key words from each new title, up to three searches, and compares the new titles with each other. It reads up to five candidates and calls a pair a likely duplicate only when both describe the same problem.

What counts as stale?

An open issue with no update in 30 days or more. It fetches the 50 longest untouched and lists the 8 oldest with their days since update and owner area. If more may exist beyond those 50, the digest says so.

How does it choose an owner area?

From the issue's title and its scope prefix, such as fix(backend), into the areas you name in the sentence. When the title doesn't say, it writes 'unclear' rather than guess.

Does it read issue bodies?

Only for duplicate candidates, at most five. Everything else comes from titles, which keeps a busy repository's weekly digest quick, and the digest notes that only titles were read.

Do I need to write code?

No. Describe the digest in one sentence. Arclyx drafts the agent, you sign in to GitHub and Slack once, and you can watch a dry run on your real repository before you create it.

More agents

Last updated 24 October 2026

Build your issue triage.

One sentence in, a working agent out. Join the beta and we'll set you up.

or write to hello@arclyx.ai →