boards-team-active-work
Получить активные рабочие элементы для команды с отображением зависимостей, приоритетов и назначений на спринты. Показывает элементы, блокирующие другие, сначала элементы с высоким приоритетом,…
npx skills add https://github.com/microsoft/azure-devops-skills --skill boards-team-active-workGet team active work items with dependencies
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.
Tools
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.
Steps
-
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.
Display results
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}