work-iterations

$npx mdskill add microsoft/azure-devops-skills/work-iterations

This skill always works in the context of a **project**. A **team** is optional and only required when assigning iterations or listing iterations for a specific team.

SKILL.md

.github/skills/work-iterationsView on GitHub ↗
---
name: work-iterations
description: List, create, and assign iterations for Azure DevOps projects and teams.
---

# Skill Instructions

This skill always works in the context of a **project**. A **team** is optional and only required when assigning iterations or listing iterations for a specific team.

## 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 user **does not provide a project name**, first ask the user once to provide the project name.
- 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.

## Team selection

- If the **team is not provided**, only perform actions that require **project-only context** (list or create project-level iterations). Do **not** attempt to assign iterations.
- If the user asks to **assign iterations** and **no team is provided**, ask once for the team name.
- 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.

# Tools

Use Azure DevOps MCP Server tools for all interactions with Azure DevOps.

- `core_list_projects`: Get a list of projects in the organization.
- `core_list_project_teams`: Get a list of teams for a project.
- `work_iteration_write` (action: `create`): Create iterations in the project.
- `work_iteration_write` (action: `assign`): Assign iterations to a team.
- `work` (action: `list_team_iterations`): List iterations currently assigned to a team.
- `work` (action: `list_iterations`): List iterations for the project.

# Rules

## 1. List iterations for a project

- When the user asks **only to list iterations for a project**, call `work` with action `list_iterations` for that project.
- Do **not** call `work_iteration_write` in this case.
- Show the results in a list, including iteration name and dates.
- If there are no iterations, explicitly state that there are no iterations for this project.

### Example

- "list iterations for project Contoso"

## 2. List iterations for a project and team

- When the user asks to **list iterations for a specific project and team**, call `work` with action `list_team_iterations` for the given project and team.
- Do **not** call `work_iteration_write` in this case.
- Show the results in a list, including iteration name and dates.
- If there are no iterations, explicitly state that there are no iterations for this team.

### Example

- "list iterations for project Contoso and team Contoso"

## 3. Create iterations for a project

- When the user asks to **create iterations** for a project, use the tool `work_iteration_write` with action `create`.
- First, call `work` with action `list_iterations` to get the full list of current iterations and determine the existing date cadence (start and finish dates, and iteration length).
- Using that cadence, create new iterations and pass them to `work_iteration_write` with action `create`.
- After creation, show the new iterations in a list, including iteration name and dates.
- If no iterations are created, explicitly state that no iterations were created for this project.

### Example 1

- "create iterations after the last available iteration, using the same cadence, through 2026"

  - Call `work` with action `list_iterations` to get the full list of current iterations and determine the existing date cadence.
  - Using that date cadence, create new iterations and pass them to `work_iteration_write` with action `create`.

### Example 2

- "create iterations after the last available iteration, using the same cadence, through 2026. Then assign all of those new iterations to team 'Contoso Team'"

  - Call `work` with action `list_iterations` to get the full list of current iterations and determine the existing date cadence.
  - Using that date cadence, create new iterations and pass them to `work_iteration_write` with action `create`.
  - Take the iterations created and assign them to the team "Contoso Team" using `work_iteration_write` with action `assign`.
  - Show the created iterations (and, if helpful, note that they are assigned to the specified team).

## 4. Assign iterations to a team

- When the user asks to **assign iterations to a team**, use `work_iteration_write` with action `assign`.
- Make sure the project and team are selected using the rules above.
- Show the iterations that were assigned in a list, including iteration name and dates.
- If no iterations are assigned, explicitly state that there are no iterations assigned for this team.

### Example 1

- "assign iterations 'Iteration 1', 'Iteration 2', and 'Iteration 3' to team 'Contoso Team'"

  - Call `work_iteration_write` with action `assign` with the list of iterations and team name to assign those iterations to the team.

### Example 2

- "assign all iterations in 2025 and 2026 to team 'Contoso Team'"

  - Call `work` with action `list_iterations` to get the full list of iterations.
  - From the list, find the iterations that fall within 2025 and 2026.
  - Take the iterations that fall within 2025 and 2026 and assign them to the team "Contoso Team" using the tool `work_iteration_write` with action `assign`.
  - Show the assigned iterations in a list.

More from microsoft/azure-devops-skills

SkillDescription
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 own on a team board.
boards-my-workThis skill retrieves and displays work items assigned to the user in Azure DevOps, organized by type and sorted by recently changed. It prompts for a project name or lists available projects if not provided, then fetches work item details and displays them in a formatted table with clickable links.
boards-team-active-workGet active work items for a team showing dependencies, priorities, and sprint assignments. Displays items that are blocking others, high priority items first, and items due this sprint. Shows parent/child hierarchy with Title, State, Priority, ChangedDate, Iteration Name, and Iteration End Date.
boards-work-item-summarySummarize a single Azure DevOps work item (and its links and comments) by ID.
pipelines-build-summaryList, inspect, and troubleshoot Azure DevOps pipeline builds. Shows recent builds for a pipeline definition, drills into a specific build's status and result, displays logs for failed steps, and lists the changes associated with a build.
security-alert-reviewList and review Advanced Security alerts for an Azure DevOps repository. Shows dependency vulnerabilities, secret exposure, and code scanning findings with filtering by severity, state, and alert type.