This skill retrieves the team's Requirements-level backlog, filters to Active items assigned to the current user, enriches them with parent/child details and dependency information, and displays them sorted by blocking status and priority with sprint information.
Project selection
- 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. - If the project name is not provided, ask the user once to provide it.
- If the project name is still not provided after asking once, call
core_list_projectsto return a list of projects the user can choose from. - Do not continue if no project has been provided or selected.
Team selection
- If the user provides a team name, use it directly and do not call
core_list_project_teams. - If the team name is not provided, ask the user once to provide it.
- If the team name is still not provided after asking once, call
core_list_project_teamsfor the selected project so the user can pick a team. - Do not continue if no team has been provided or selected.
Use Azure DevOps MCP Server tools for all interactions with Azure DevOps.
core_list_projects: Get the list of projects the user can choose from.core_list_project_teams: Get the list of teams for a project.wit_backlog(action:list_work_items): Get the work items on the team's backlog at a specific backlog level.work(action:list_team_iterations): Get the list of iterations for a team, including current sprint information.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, children, and dependencies in as few calls as possible.
-
Resolve project and team using the rules above.
-
Call
workwith actionlist_team_iterationsfor the resolved project and team withtimeframe=currentto get the current sprint information. Store the current iteration path and end date for filtering and display purposes. -
Call
wit_backlogwith actionlist_work_itemsfor the resolved project and team, using backlog levelMicrosoft.RequirementCategory(the Requirements / Product Backlog Items level). -
From the returned work items, filter to items that meet all of the following criteria:
System.State=Active
-
If no items match the filter, display a message stating there are no active backlog items for this team and stop.
-
Call
wit_work_itemwith actionget_batchfor all filtered item IDs withexpand=relationsand the following fields:System.IdSystem.TitleSystem.StateSystem.AssignedToSystem.WorkItemTypeSystem.ChangedDateSystem.IterationPathMicrosoft.VSTS.Common.PrioritySystem.Parent
-
From the
relationsof each item, collect:- Parent IDs (
System.LinkTypes.Hierarchy-Reverse) - Child IDs (
System.LinkTypes.Hierarchy-Forward) - Dependency IDs - both items this work item depends on (
System.LinkTypes.Dependency-Forward) and items that depend on this work item (System.LinkTypes.Dependency-Reverse) - Related IDs (
System.LinkTypes.Related)
- Parent IDs (
-
Call
wit_work_itemwith actionget_batchonce with the combined set of all related IDs (excluding any IDs already fetched) to get their:System.IdSystem.TitleSystem.StateSystem.IterationPath
-
For each work item, determine:
- Is Blocking: If there are any
System.LinkTypes.Dependency-Reverserelations (other items depend on this one) - Is in Current Sprint: If the
System.IterationPathmatches the current iteration from step 2 - Priority: The
Microsoft.VSTS.Common.Priorityvalue
- Is Blocking: If there are any
-
Display the results as described in the Display results section below.
First, display the current sprint information:
Current Sprint: {Iteration Name} (ends {Iteration Finish Date formatted as MM/DD/YYYY})
Then, sort and group the work items in the following order:
- Items that are blocking others (have
System.LinkTypes.Dependency-Reverserelations) — sorted by Priority ascending (Priority 1 first) - High priority items (Priority 1 or 2) that are not blocking — sorted by Priority ascending
- Items due this sprint (matching current iteration path) — sorted by Priority ascending
- All other items — sorted by Priority ascending
For each item, display:
{ID} — {Title}
{If blocking, show: ⚠️ BLOCKING OTHER WORK ITEMS}
| Field | Value |
|---|---|
| State | {System.State} |
| Priority | {Microsoft.VSTS.Common.Priority} |
| Changed Date | {System.ChangedDate formatted as MM/DD/YYYY} |
| Iteration | {last segment of System.IterationPath} |
| Iteration End Date | {Iteration Finish Date from step 2 if in current sprint, otherwise look up from team iterations} |
| Work Item Type | {System.WorkItemType} |
Parent:
- If a parent exists:
{ParentID}{Parent Title} - If no parent exists: (none)
Child Items:
If there are child items, display them in a table:
| ID | Title | State |
|---|---|---|
| {ChildID} | {Child Title} | {Child State} |
If there are no child items, display: (none)
Dependencies:
If this item is blocking others (has System.LinkTypes.Dependency-Reverse relations), show:
⚠️ Blocking:
- {DependentID} {Dependent Title} ({Dependent State})
If this item depends on others (has System.LinkTypes.Dependency-Forward relations), show:
Depends on:
- {DependencyID} {Dependency Title} ({Dependency State})
If there are no dependencies, display: (none)
After all items are listed, display a summary:
Summary:
- Total active items for the team: {N}
- Items blocking others: {M}
- High priority items (1-2): {P}
- Items due this sprint: {Q}
Team: {team name} | Project: {project name}