Issue Analysis
Oversight analyzes all open issues in a repository, categorizes them by type and urgency, and computes engagement signals to help maintainers focus on what matters most.
How It Works
Issue analysis follows the same pipeline as PR analysis: oversight fetches all open issues from the GitHub API — including title, body, labels, author, comment count, and timestamps — then passes this context to Claude Opus for evaluation and ranking.
The analysis produces a ranked list of issues with AI-generated summaries, priority tiers, and engagement classifications. This gives maintainers a single view of their issue backlog sorted by what needs attention.
Triggering an Issue Analysis
POST /api/analyses
Content-Type: application/json
{
"repoId": 1,
"kind": "issue"
}
This queues an analysis-issue task. The runner fetches open issues from
GitHub, computes engagement signals for each, and sends everything to the analysis prompt
for evaluation.
Categorization
Each issue receives AI-computed dimensions in the ai_dimensions field,
typically including:
| Dimension | Description |
|---|---|
| Type | Bug report, feature request, documentation, question, or discussion. |
| Urgency | How time-sensitive the issue is, based on age, comment activity, and labels. |
| Complexity | Estimated effort to address the issue, from the description and discussion. |
| Priority | Composite ranking — Critical, High, Medium, Low, or Informational. |
Engagement Classification
Issues are classified based on activity patterns, the same way PRs are. Each issue
gets an engagement_status:
- active — recent activity from both the author and maintainers
- waiting-on-author — a maintainer responded but the author has not followed up
- waiting-on-maintainer — the author is waiting for a response
- stale — no activity from either side beyond the staleness threshold
These signals are computed from human comments only — bot activity (Dependabot, Renovate, Codecov, GitHub Actions, etc.) is automatically filtered out so engagement status reflects real human interaction.
AI Summaries
Like PR analysis, each issue gets two AI-generated fields:
-
ai_summary— a concise one-liner for dashboard display -
ai_details— a longer explanation with context, potential approaches, and recommended next steps
Filtering and Sorting
Analysis results can be filtered by repository and kind:
GET /api/analyses?repoId=1&kind=issue
Items within an analysis are sorted by rank (lower is higher priority). The
web UI provides additional client-side filtering by engagement status, labels, and
staleness.
Batch Analysis
Each analysis run processes all open issues in a single batch. The runner fetches the full issue list, gathers engagement data for each issue (comments, author activity, maintainer responses), and sends the complete context to Claude in one pass. This ensures consistent relative ranking across all items.