Home / Docs / Issue Triage Agent

Issue Triage Agent

Auto-classify, prioritize, and suggest owners for every new GitHub issue — within seconds of it being opened.

What it does

When a new issue is opened (or reopened) on any of your connected repos, SiftPulse's issue triage agent springs into action:

  1. Classifies the issue — reads the title and body, then assigns a type label (bug, enhancement, documentation, question, security, performance) plus area labels like area:auth or area:api.
  2. Prioritizes — assigns a priority level (critical / high / medium / low) with a one-sentence rationale that references something specific in the issue.
  3. Suggests owners — extracts file paths and stack traces mentioned in the issue body, then scores contributors by recent commit activity in those files. Top contributors are @mentioned in the triage comment.
  4. Applies labels — auto-applies the type + priority labels to the issue on GitHub, creating them with sane colors if they don't exist yet.
  5. Posts a triage comment — a single structured comment with the priority, labels, suggested owners, a duplicate-issue signal, and a draft response the maintainer can copy and edit.

Sample comment

Here's what a typical triage comment looks like:

## 🤖 SiftPulse Issue Triage

**Priority:** 🟠 `high` — The error trace references the auth middleware on every request, suggesting broad user impact.

**Suggested labels:** `bug` `area:auth` `priority:high`

**Ideal assignee profile:** backend engineer familiar with Express middleware and session handling

**Suggested owners** *(based on recent commit history in mentioned files)*:
- @alice — touched 3 of 4 changed files in the last 90 days
- @bob — listed as CODEOWNER for src/auth/

**Duplicate check:** ✅ not duplicate — Issue appears unique based on the specific JWT expiry handling described.

---
**Draft response** *(copy & edit as needed)*:

> Thanks for the detailed report! The stack trace confirms this hits the auth middleware.
> We'll investigate the JWT expiry path. Can you confirm which Node.js version you're running?

---
*Triaged by SiftPulse — autonomous AI issue triage · View your dashboard*

Priority levels

🔴 critical 🟠 high 🟡 medium 🟢 low

Owner scoring

The agent extracts file paths from the issue title and body using a pattern matcher (handles src/auth.js style paths, error traces, and code blocks). It then queries the GitHub Commits API for each mentioned file over the last 90 days and scores contributors by:

Up to 3 top contributors are surfaced in the triage comment. The issue author is always excluded.

Configuration

Opt out a specific repo

Add a .siftpulse.yml file to any repo root to disable triage for that repo:

# .siftpulse.yml
issue_triage: false

You can also disable the entire SiftPulse integration for a repo with:

# .siftpulse.yml
enabled: false

Per-installation settings (dashboard)

From your dashboard, you can toggle two behaviors for all repos in your installation:

These settings are in the Issue triage settings card on your dashboard.

Environment kill-switch

If you need to disable triage across all installations at the infra level, set:

ISSUE_TRIAGE_DISABLED=true

This env var takes precedence over all per-repo and per-installation settings.

Dashboard integration

Every triaged issue appears in your dashboard activity feed under the Issue triage filter. The weekly stat card shows how many issues were triaged in the last 7 days, and the weekly digest email includes the top triaged issues ranked by priority.

💡 Tip: The triage agent fires within ~30 seconds of an issue being opened. If you don't see a comment, check that the repo is in your connected list and that .siftpulse.yml doesn't have issue_triage: false.

Ready to see it in action?

Start a 14-day free trial — all 5 agents included. No card required to start.

Start free trial → Open dashboard →