$npx -y skills add microsoft/azure-devops-skills --skill boards-backlog-summaryGet the team's Requirements-level backlog (Product Backlog Items and Bugs) filtered to Active items assigned to the current user. Shows parent/child hierarchy and sorts by priority. Use this skill when the user wants to see their backlog items, sprint assignments, or work they ow
| 1 | # Get team backlog summary |
| 2 | |
| 3 | This skill retrieves the team's Requirements-level backlog, filters to **Active** items **assigned to the current user**, enriches them with parent and child work item details, and displays them sorted by priority. |
| 4 | |
| 5 | ## Project selection |
| 6 | |
| 7 | - If the user **provides a project name** in their request (for example, "for Contoso"), use that project directly and **do not call** `core_list_projects`. |
| 8 | - If the project name is **not provided**, ask the user once to provide it. |
| 9 | - If the project name is **still not provided after asking once**, call `core_list_projects` to return a list of projects the user can choose from. |
| 10 | - Do not continue if no project has been provided or selected. |
| 11 | |
| 12 | ## Team selection |
| 13 | |
| 14 | - If the user **provides a team name**, use it directly and **do not call** `core_list_project_teams`. |
| 15 | - If the team name is **not provided**, ask the user once to provide it. |
| 16 | - If the team name is **still not provided after asking once**, call `core_list_project_teams` for the selected project so the user can pick a team. |
| 17 | - Do not continue if no team has been provided or selected. |
| 18 | |
| 19 | # Tools |
| 20 | |
| 21 | Use Azure DevOps MCP Server tools for all interactions with Azure DevOps. |
| 22 | |
| 23 | - `core_list_projects`: Get the list of projects the user can choose from. |
| 24 | - `core_list_project_teams`: Get the list of teams for a project. |
| 25 | - `wit_backlog` (action: `list_work_items`): Get the work items on the team's backlog at a specific backlog level. |
| 26 | - `wit_work_item` (action: `get_batch`): Get work item details in batch by their IDs. Use this to fetch fields and relations for backlog items, their parents, and their children in as few calls as possible. |
| 27 | |
| 28 | # Steps |
| 29 | |
| 30 | 1. Resolve project and team using the rules above. |
| 31 | |
| 32 | 2. Call `wit_backlog` with action `list_work_items` for the resolved project and team, using backlog level `Microsoft.RequirementCategory` (the Requirements / Product Backlog Items level). |
| 33 | |
| 34 | 3. From the returned work items, **filter** to items that meet **all** of the following criteria: |
| 35 | - `System.State` = `Active` |
| 36 | - `System.AssignedTo` matches the current user |
| 37 | - `System.WorkItemType` is one of: `Product Backlog Item`, `Bug` |
| 38 | |
| 39 | 4. If no items match the filter, display a message stating there are no active backlog items assigned to the current user for this team and stop. |
| 40 | |
| 41 | 5. Call `wit_work_item` with action `get_batch` for all filtered item IDs with `expand=relations` and the following fields: |
| 42 | - `System.Id` |
| 43 | - `System.Title` |
| 44 | - `System.State` |
| 45 | - `System.AssignedTo` |
| 46 | - `System.WorkItemType` |
| 47 | - `System.ChangedDate` |
| 48 | - `System.IterationPath` |
| 49 | - `Microsoft.VSTS.Common.Priority` |
| 50 | - `System.Parent` |
| 51 | |
| 52 | 6. From the `relations` of each item, collect all **parent IDs** (`System.LinkTypes.Hierarchy-Reverse`) and **child IDs** (`System.LinkTypes.Hierarchy-Forward`). Call `wit_work_item` with action `get_batch` once with the combined set of those IDs (excluding any IDs already fetched) to get their `System.Id`, `System.Title`, and `System.State`. |
| 53 | |
| 54 | 7. Display the results as described in the **Display results** section below. |
| 55 | |
| 56 | # Display results |
| 57 | |
| 58 | Sort all items by `Microsoft.VSTS.Common.Priority` ascending (Priority 1 first). For each item, display: |
| 59 | |
| 60 | --- |
| 61 | |
| 62 | ### [{ID}](https://dev.azure.com/{organization}/{project}/_workitems/edit/{ID}) — {Title} |
| 63 | |
| 64 | | Field | Value | |
| 65 | |---|---| |
| 66 | | **State** | {System.State} | |
| 67 | | **Priority** | {Microsoft.VSTS.Common.Priority} | |
| 68 | | **Changed Date** | {System.ChangedDate formatted as MM/DD/YYYY} | |
| 69 | | **Iteration** | {last segment of System.IterationPath} | |
| 70 | | **Work Item Type** | {System.WorkItemType} | |
| 71 | |
| 72 | **Parent:** |
| 73 | - If a parent exists: [`{ParentID}`](https://dev.azure.com/{organization}/{project}/_workitems/edit/{ParentID}) {Parent Title} |
| 74 | - If no parent exists: *(none)* |
| 75 | |
| 76 | **Child Items:** |
| 77 | |
| 78 | If there are child items, display them in a table: |
| 79 | |
| 80 | | ID | Title | State | |
| 81 | |----|-------|-------| |
| 82 | | [{ChildID}](https://dev.azure.com/{organization}/{project}/_workitems/edit/{ChildID}) | {Child Title} | {Child State} | |
| 83 | |
| 84 | If there are no child items, display: *(none)* |
| 85 | |
| 86 | --- |
| 87 | |
| 88 | After all items are listed, display a summary line: |
| 89 | |
| 90 | > Showing **{N}** active backlog item(s) assigned to you on team **{team name}** in project **{project name}**. |