Run your weekly bug triage meeting on one Azure DevOps board

By General Input

Work through untriaged Azure DevOps bugs in one two pane screen, set priority and owners as you go, then post the meeting outcome to Slack.

Integrations

  • Azure DevOps
  • Slack Bot

Type

App

Categories

  • Engineering
  • Product

I want an app my engineering team can run our weekly bug triage meeting out of, instead of clicking through a saved Azure DevOps query one bug at a time. The surface is a single two pane screen: a queue of untriaged bugs on the left, and a detail and editing pane on the right for whichever bug is selected.

Load the left queue with Azure DevOps Query Work Items (WIQL). The default filter is work item type Bug in state New or Reopened where the assignee or the priority is missing, ordered oldest first. Hydrate the ids it returns with Get Work Items Batch so each row can show the title, age in days since it was created, severity, priority, current state and who reported it. Keep the filter configurable from a settings panel above the queue: project, team, work item type, which states count as untriaged, and whether a bug qualifies on a missing assignee, a missing priority or either. Teams customize the Bug work item type with their own severity and priority fields, so let those field names be configured rather than hardcoded.

Clicking a row opens the detail pane on the right. Load the full item with Get Work Item and show the description and repro steps rendered as HTML, plus the fields we need in the room: severity, priority, state, area path, iteration path, reported by, created and changed dates, and a link that opens the item in Azure DevOps. Below that, show the discussion from List Work Item Comments with the newest last, and a compact field history from Get Work Item Updates that highlights state and assignee changes, so we can immediately see whether this bug has bounced before, for example resolved and then reopened twice.

In that same pane I can triage: set priority and severity, pick an assignee from a dropdown populated by List Team Members, set the iteration path, change the state, and write a comment. Saving writes the field changes back through Update Work Item and the comment through Add Work Item Comment, then refreshes that row in the queue. Populate the team selector for List Team Members using List Teams so we can choose whose members appear in the assignee dropdown. For the iteration path, offer the distinct iteration paths already in use on recent work items from a WIQL query and also let me type a path directly, since we sometimes assign to a sprint that has no bugs in it yet.

A triage next button saves the current bug and jumps straight to the following one in the queue so we can clear it fast, and a session counter in the header shows how many we have triaged in this sitting with a small breakdown by priority. Persist the session, meaning which bugs were triaged, what priority each got, who was assigned and anything we marked as deferred, so the counter survives a refresh mid meeting. Give me a way to start a fresh session for next week.

At the end there is a post summary to Slack button. It composes the meeting outcome from the session, covering how many bugs we triaged, counts by priority, who got assigned what, and anything deferred, then sends it to our engineering channel with Slack Bot's Send a Message. Let me pick the channel from a dropdown populated by Slack Bot's List Channels, and preview and edit the message before it goes out.

Build notes: Azure DevOps work item update bodies are JSON Patch arrays, so field writes go out as add or replace operations on paths like /fields/Microsoft.VSTS.Common.Priority. For the assignee field, prefer the GUID id returned by List Team Members over a display name. If a bug changed in Azure DevOps after we opened it, surface the conflict and let me re-read the item rather than silently overwriting someone else's edit.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them