Skip to content

Triage Agent

Autogit’s Triage Agent automatically analyzes new GitHub issues and organizes them using:

  • Area labels — Applied as GitHub labels
  • Priority & Status — Set via GitHub Projects V2 fields
  • Issue Type — Set via native GitHub Issue Types
  1. A new issue is created in your repository
  2. Autogit receives a webhook notification
  3. The Triage Agent analyzes the issue title and description
  4. Area labels are applied to the issue
  5. If configured, the issue is added to a GitHub Project with Priority/Status fields set
  6. Issue Type is set (if enabled on the repository)
  7. The autogit:triaged label is added to prevent re-processing

You can also manually triage existing issues using the Triage Dashboard:

Manual Triage Dashboard

  1. Sign in to autogit.ai
  2. Go to the Triage page from your profile menu
  3. Select the Account (user or organization) with Autogit installed
  4. Select the Repository you want to triage issues from
  5. Choose an issue from Recent Open Issues or enter an Issue Number directly
  6. Click Run Triage

The dashboard shows the triage result including applied labels and reasoning.

Install the Autogit GitHub App on your repository. The app needs:

  • Issues: Read and write (to add labels and set Issue Type)
  • Contents: Read (to access your triage config)
  • Projects: Read and write (to add issues and set fields)

Create labels in your repository for the areas you want to categorize issues into:

area:frontend
area:backend
area:api
area:docs

To use Priority and Status fields, create a GitHub Project V2 with:

  • A Priority single-select field with options like: P0, P1, P2, P3, P4
  • A Status single-select field with options like: Backlog, Todo, In Progress, Done

The Triage Agent will automatically add issues to the project and set these fields.

Create .autogit/triage.toml in your repository:

[triage]
enabled = true
# GitHub Project name (must match exactly)
project = "My Project"
[triage.labels]
# Area labels that issues can be tagged with
area = [
"area:frontend",
"area:backend",
"area:api",
"area:docs"
]

Create a label named autogit:triaged in your repository. This label is added after triage to prevent re-processing if webhooks are retried.

[triage]
# Enable or disable the Triage Agent (default: true)
enabled = true
# GitHub Project name to add issues to (optional)
# Must match the project title exactly
project = "Autogit MVP"
# Model to use for triage (optional)
# If not set, uses the default model for your subscription tier
# model = "claude-sonnet-4-20250514"
# Label to apply when issue needs human intervention to ship (optional)
# Issues without this label can potentially be completed by AI agents autonomously
needs_human_label = "needs-human"
[triage.labels]
# Area labels (required) - at least one must be specified
# Only these labels can be applied, and only if they exist in the repo
area = [
"area:frontend",
"area:backend",
"area:api",
"area:docs"
]
# Priority options for the LLM to choose from (optional)
# These should match your GitHub Project's Priority field options
# Default: ["P0", "P1", "P2", "P3", "P4"]
priority = ["P0", "P1", "P2", "P3", "P4"]
# Type options for Issue Types (optional)
# These should match your repository's Issue Types
# Default: ["Bug", "Feature", "Task"]
type = ["Bug", "Feature", "Task"]
OptionRequiredDefaultDescription
enabledNotrueEnable or disable the Triage Agent
projectNoGitHub Project name to add issues to
modelNoTier defaultSpecific model to use for triage
needs_human_labelNoLabel to apply when issue needs human intervention to ship
labels.areaYesArea labels that can be applied
labels.priorityNoP0-P4Priority options for the LLM
labels.typeNoBug/Feature/TaskType options for Issue Types

Area labels are applied directly to the issue as GitHub labels. The Triage Agent:

  1. Analyzes the issue content
  2. Selects relevant area labels from your config
  3. Validates they exist in your repository
  4. Applies them to the issue

If you configure a project name, the Triage Agent will:

  1. Add the issue to the specified GitHub Project
  2. Set the Priority field based on urgency analysis
  3. Set the Status field (typically to “Backlog” or “Todo”)

The Priority and Status fields must be single-select fields in your project.

If your repository has Issue Types enabled, the Triage Agent will set the appropriate type (Bug, Feature, Task, etc.) using GitHub’s native Issue Types feature.

When configured with needs_human_label, the Triage Agent will flag issues that require human intervention to ship. This distinguishes issues that can be completed autonomously by AI agents from those needing human input.

The label is applied when an issue:

  • Has unanswered questions or asks for input
  • Is ambiguous or unclear about what’s being requested
  • Lacks sufficient detail (e.g., bug reports missing reproduction steps)
  • Requires clarification or decision-making from a human
  • Contains multiple unrelated requests that should be split

Issues WITHOUT this label are candidates for autonomous AI completion — they have clear requirements and sufficient detail for an AI agent to implement without human intervention.

The label is automatically created if it doesn’t exist in your repository, with a red/orange color to make flagged issues stand out.

[triage]
enabled = true
[triage.labels]
area = ["frontend", "backend", "docs"]
[triage]
enabled = true
project = "Product Roadmap"
[triage.labels]
area = [
"area:web",
"area:api",
"area:mobile",
"area:infra"
]
priority = ["Critical", "High", "Medium", "Low"]
type = ["Bug", "Feature", "Enhancement", "Chore"]
[triage]
enabled = true
project = "Engineering Board"
[triage.labels]
area = [
"team:platform",
"team:product",
"team:devex",
"team:infrastructure"
]
[triage]
enabled = true
project = "Product Roadmap"
needs_human_label = "needs-human"
[triage.labels]
area = ["frontend", "backend", "api", "docs"]

Issues that require human intervention will be flagged with needs-human. Issues without this label are candidates for autonomous AI completion.

  1. Check the config file exists: Ensure .autogit/triage.toml is in your repository’s default branch
  2. Verify the config syntax: Invalid TOML will cause triage to fail
  3. Check for existing autogit:triaged label: If present, the issue was already processed
  4. Check GitHub App permissions: Ensure the app has Issues and Projects permissions
  1. Verify project name: The project name must match exactly (case-sensitive)
  2. Check field names: Priority and Status fields must exist in the project
  3. Check field options: The LLM’s selected option must exist in the field
  4. Verify project permissions: The GitHub App needs Projects read/write access

If triage fails, a comment is added to the issue explaining the error:

  • “Could not find a GitHub Project named…”: Project name doesn’t match or app can’t access it
  • “Failed to add this issue to the project”: Permission issue with the project
  • “The account that installed Autogit is not registered”: The GitHub user or organization that installed the app needs an Autogit account

Ensure the autogit:triaged label exists in your repository. Create it manually if needed.

The autogit:triaged label ensures issues are only triaged once:

  • When triage completes, autogit:triaged is added as the final label
  • If an issue already has autogit:triaged, it won’t be processed again
  • This is safe for webhook retries — GitHub may send duplicate webhooks