aidentity / index

abrahamFerga/scrum-skills · MIT

audit-sprint-retrospective-ado

Reads an Azure DevOps retrospective — from the ADO Retrospectives extension board, a wiki page, or retro-tagged work items — and produces a structured summary of what the team said, identifies patterns and recurring themes, audits whether action items are properly tracked as work items with owners, and generates concrete suggestions. Use when anyone says things like "summarize our retro", "audit the retrospective in ADO", "what were the action items from the retro", "review the team's retrospective board", "check our retro follow-up", or "did we capture everything from the retro". Don't use for facilitating a retrospective in real time, Jira projects, or general Scrum questions.

stable

Contents

ADO Retrospective Audit

Purpose

A retrospective that produces no followed-through action items is just venting. This skill reads the retro data from ADO, turns it into a clear structured summary, checks that every action item is properly captured and owned, and surfaces patterns the team can act on — so the Retrospective actually improves the way the team works.


Prerequisites

Requires an active Azure DevOps MCP connection. If mcp__azure-devops__* or mcp__ado__* tools are not available, stop and inform the user.


Step 1 — Locate the retrospective data

Teams store retrospectives in ADO in different places. Ask:

"Where does your team record retrospectives — the ADO Retrospectives board extension, a wiki page, or work items tagged as retro action items? Or should I search all three?"

Then retrieve accordingly:

ADO Retrospectives extension board

The extension stores retro content as work items under a hidden area. Search for them using wit_query_by_wiql or search_workitem with terms like "retrospective", the sprint name, or the board name. Look for items with types or tags like Retrospective, FeedbackItem, or ActionItem.

Wiki

Use wiki_list_pages to find pages named after the sprint or containing "retrospective", "retro", or "sprint review". Then use wiki_get_page_content to retrieve the full content.

Work items (retro-tagged)

Use search_workitem or wit_query_by_wiql to find items tagged retrospective, retro-action, or similar. Also search for items whose title contains "action item from retro" or whose description links to a retrospective.

If all three return nothing: ask the user to paste the retro content directly or share a link to the wiki page.

Store everything found as $RETRO_DATA. Note the source(s) for the summary.


Step 2 — Parse and structure the content

Extract and categorise all content from $RETRO_DATA into the standard retrospective buckets. Adapt to whatever format the team used:

BucketCommon labels used by teams
Went wellWent well · Liked · Glad · Keep · Continue · Strengths · 👍
To improveDidn't go well · Improve · Stop · Change · Concerns · Needs work · 👎
Action itemsAction items · To do · Commitments · Next steps · Follow-up · ✅
Questions / KudosQuestions · Shoutouts · Appreciations (capture but treat as secondary)

For each item capture:

  • The text as written by the team
  • The author (if recorded)
  • Any vote count or upvote score (if the board captured reactions)
  • Any linked work item ID (if the retro tool created a ticket)

Step 3 — Produce the retro summary

Retrospective Summary — [SPRINT NAME] — [DATE]
Source: [ADO Retrospectives board / Wiki page: [name] / Work items]

━━━  What went well  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━
+ [Item] (votes: N, author: Name)
+ [Item]

━━━  What to improve  ━━━━━━━━━━━━━━━━━━━━━━━━━━━
- [Item] (votes: N, author: Name)
- [Item]

━━━  Action items  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□ [Action item] — Owner: [Name or ⚠️ Unassigned] — Linked item: [#ID or ❌ None]
□ [Action item] — Owner: [Name or ⚠️ Unassigned] — Linked item: [#ID or ❌ None]

━━━  Other  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
? [Question or kudos]

If vote counts are available, sort "what to improve" by votes descending — the team already told you what matters most.


Step 4 — Audit the action items

This is the most important part. Retrospective action items are only valuable if they are tracked, owned, and actually worked on.

For each action item, check:

CheckPass conditionSeverity
Captured as a work itemAction item has a linked ADO work item (PBI, Task, or Bug)❌ Fail
Assigned to an ownerWork item has a non-empty Assigned To❌ Fail
Assigned to a sprintWork item is in the next or current iteration, not the backlog⚠️ Warning
Specific and actionableAction item describes a concrete change, not a vague intention ("improve communication")⚠️ Warning
Has a Definition of DoneIt is clear when the action item will be considered complete⚠️ Warning
Not a duplicate of a prior retro action itemCheck recent iterations for similar unresolved items⚠️ Warning

Check for carry-overs from prior retros:

Use wit_query_by_wiql or search_workitem to find work items tagged as retro actions from previous sprints that are still open. A recurring unresolved action item is a signal of a systemic blocker — not just a forgotten task.


Step 5 — Identify patterns and generate suggestions

Look across the full retro content for signals:

Volume signals

  • Many "went well" items and few "to improve" items → team morale is high; keep the current practices
  • More "to improve" than "went well" → team under strain; worth discussing in next retro opener
  • Very few items overall → participation was low; consider async input collection next time

Theme clusters

Group the "to improve" items into themes. Common clusters:

  • Process — sprint ceremonies, planning quality, backlog hygiene
  • Technical — build stability, tech debt, testing
  • Communication — between team members, with stakeholders, across teams
  • Tooling — ADO setup, CI/CD, environments
  • Clarity — story quality, requirements, Sprint Goal

Name the top 1–2 themes clearly: "The top theme this Sprint was process — 4 of 7 improvement items relate to how work flows from refinement into the sprint."

Recurring patterns

If the same theme appears across multiple retros, surface it: "'Unclear acceptance criteria' has appeared in 3 consecutive retros without a resolved action item. This suggests the improvement isn't being treated as a sprint commitment — it may need to become a standing agenda item in refinement."


Step 6 — Present the full audit

Retrospective Audit — [SPRINT NAME] — [DATE]

[Retro Summary — from Step 3]

Action Item Audit
  ✅ / ⚠️ / ❌  [#ID or description] — [finding]
  ...

  [N] action items found
  [N] linked to a work item   [N] unlinked
  [N] have an owner           [N] unassigned
  [N] assigned to a sprint    [N] in backlog only

Carry-overs from previous retros
  ⚠️  [Item description] — open since [Sprint name] — [#ID if linked]

Patterns & Themes
  Top theme: [theme] — [N] items
  Secondary theme: [theme] — [N] items
  [Recurring pattern note if applicable]

Suggestions
  1. [Specific, concrete — name item IDs or team members where relevant]
  2. [Second suggestion]
  3. [Third suggestion — max 5 total]


Step 7 — Offer follow-up actions

Ask: "Would you like me to:"

  1. Create missing work items — for any action item not yet linked to an ADO ticket, create it via wit_create_work_item (type: Task or PBI) with the action item text as the title and the retro sprint as context. Ask for the owner and target iteration before creating.
  2. Post the audit summary to the ADO wiki — create or update a wiki page for this sprint's retro via wiki_create_or_update_page
  3. Add a comment to existing action item work items — flag the ones missing owners or sprint assignment via wit_add_work_item_comment
  4. No action — output the summary as a clean block to copy-paste

Never take any action without explicit confirmation.


Guardrails

  • Never invent retro items. If the data is sparse, report it as sparse.
  • Never assign owners to action items without asking — the team decides who owns what.
  • Never mark a retro as complete if action items have no owners or no linked work items.
  • Frame recurring unresolved items as systemic signals, not individual failures.
  • If the retro data source is a wiki page, quote items verbatim — do not paraphrase the team's words in the summary section.
  • If no retro data is found at all, say so clearly and ask whether the team held a retro this sprint: "I couldn't find any retrospective data for this sprint in ADO. Did the team hold a retro? If so, where was it recorded?"

Provenance

Authored by abrahamFerga in abrahamFerga/scrum-skills. The content is mirrored here under its upstream license.

Related

audit-backlog-ado Audits the Azure DevOps product backlog for hygiene, story quality, and refinement readiness — identifying items that are too large, missing acceptance criteria, stale, unestimated, or out of priority order. Use when a Scrum Master or Product Owner says things like "audit the backlog", "is the backlog healthy", "review the backlog before refinement", "clean up the backlog", "check backlog hygiene", or "prepare the backlog for planning". Do not use for individual story audits — use audit-user-story for that. Do not use for sprint planning or velocity review. abrahamFerga/scrum-skills MIT audit-sprint-ado Audits a completed or in-progress Azure DevOps sprint against Scrum and ADO best practices — checks Sprint Goal presence, work item hygiene, state transitions, field completeness, capacity tracking, and Definition of Done compliance. Surfaces findings with severity levels and offers to post a summary to the ADO wiki or add comments to specific work items. Use when anyone says things like "audit our sprint in ADO", "review the sprint in Azure DevOps", "check our ADO sprint health", "are our work items following best practices", or "sprint health check". Don't use for Jira, Sprint Planning, Daily Scrum, or Retrospective. Requires an Azure DevOps MCP connection. abrahamFerga/scrum-skills MIT audit-sprint-jira Audits a completed or in-progress Jira sprint against Scrum and Jira best practices — checks Sprint Goal presence, issue hygiene, workflow transitions, field completeness, story point coverage, and sub-task consistency. Surfaces findings with severity levels and offers to add comments to specific issues or export a summary report. Use when anyone says things like "audit our sprint in Jira", "review the Jira sprint", "check our Jira sprint health", "are our issues following best practices", or "sprint health check in Jira". Don't use for Azure DevOps — use audit-sprint-ado instead. Don't use for Sprint Planning, Daily Scrum, or Retrospective. Requires a Jira MCP connection. abrahamFerga/scrum-skills MIT audit-user-story Audits an existing user story against Scrum best practices — checks INVEST criteria, story format, acceptance criteria quality, and Definition of Ready compliance. Raises findings with clear severity levels and offers to post the audit as a comment on the work item for the Product Owner or PM to act on. Use when anyone says things like "audit this story", "review this user story", "is this story ready", "check this PBI", "does this story meet best practices", or pastes a story and asks for feedback. Don't use for creating new stories, sprint planning, or general Scrum questions. Works with ADO, Jira, or a pasted story. abrahamFerga/scrum-skills MIT daily-sync-dev Prepares a developer's Daily Scrum update by pulling assigned Sprint Backlog items from the connected project management tool, checking recent git activity, and composing a concise Sprint-Goal-focused statement. Use when a developer says things like "prepare my standup", "daily sync update", "what did I work on", "help me with standup", or "what's my daily update". Don't use for sprint planning, backlog refinement, retrospectives, or any other Scrum ceremony. Don't use when the user is asking general questions about Scrum or the Daily Scrum format. abrahamFerga/scrum-skills MIT