Retrospective Facilitation

VerifiedSafe

Facilitate effective retrospectives to capture lessons learned, celebrate successes, and identify actionable improvements. Includes techniques, formats and preparation.

Sby Skills Guide Bot
ProductivityIntermediate
3/3/2026
Claude CodeCursorCodex
#retrospective#facilitation#agile#team-process#continuous-improvement

Recommended for

Automated summary

A facilitation guide for agile retrospectives covering planning, format selection, a timed agenda and actionable improvement commitments.

Strengths

  • Offers several retrospective formats (Start-Stop-Continue, Went-Well-Improve, Sailboat, Timeline) with duration and use cases
  • Provides a phase-by-phase agenda with timings and concrete activities
  • Covers pre-retro preparation (anonymous survey, sprint metrics, starter questions) and success criteria
  • Emphasizes psychological safety and assigning action items to owners

Limitations

  • Gives little guidance on handling conflict, dominant voices or maintaining facilitator neutrality
  • Stays generic on collaboration tooling (Miro mentioned once, no detailed setup)
  • Fixed timings may not fit large teams or emotionally heavy retrospectives
When to use it

Use it to plan and run a sprint, project-closing or post-incident retrospective with a team.

When not to use it

Avoid relying on it alone when the core need is deep team conflict resolution or a detailed technical incident analysis.

Security analysis

Safe
Quality score72/100

This is a purely editorial facilitation guide for running agile retrospectives. It declares no tools and contains no executable commands, network calls, file operations, or credential handling. The embedded Python/JavaScript/YAML blocks are illustrative scaffolding for agendas, action-item tracking, and report templates rather than runnable or obfuscated payloads, and there is no attempt to alter agent behavior or exfiltrate data.

No concerns found

How this analysis is made

Examples

Plan a sprint retrospective
Help me plan a 60-minute retrospective for an 8-person team at the end of Sprint 23, including a pre-retro survey and a timed agenda.
Use the sailboat format
Facilitate a sailboat retrospective: give me the agenda, the prompts for wind, anchors and rocks, and how to cluster the results.
Turn themes into actions
Our retro produced lots of themes but vague action items. Help me run the improvement planning phase with prioritization, owners and due dates.

name: retrospective-facilitation description: Facilitate effective retrospectives to capture lessons learned, celebrate successes, and identify actionable improvements for future iterations.

Retrospective Facilitation

Overview

Retrospectives are critical ceremonies for team learning and continuous improvement. Effective facilitation creates psychological safety, encourages honest feedback, and drives tangible improvements.

When to Use

  • End of sprint (regular cadence)
  • Major milestone completion
  • Project closure
  • After significant events or incidents
  • Team transitions or staff changes
  • Technology implementations
  • Process evaluations

Instructions

1. Retrospective Planning

Retrospective Planning:

Event: Sprint 23 Retrospective
Date: Friday, Jan 17, 2025
Duration: 60 minutes
Location: Conference Room B / Zoom

Facilitator: Sarah (Scrum Master)
Participants: 8 team members
Invite: Product Owner (optional)

---

Retrospective Goals:
  1. Celebrate sprint successes
  2. Identify what went well
  3. Identify what could improve
  4. Commit to specific improvements
  5. Build team cohesion

Format: "Went Well / Didn't Go Well / Ideas"
Tool: Miro board for virtual collaboration

Pre-Retrospective Preparation:
  - Send survey: anonymous feedback (24hrs before)
  - Gather sprint metrics (velocity, bugs, etc.)
  - Review sprint goals and outcomes
  - Prepare starter questions
  - Set up physical/virtual space

Success Criteria:
  - 100% team attendance
  - Minimum 3 actionable improvements identified
  - Team feels heard and valued
  - Action items assigned with owners

2. Facilitation Techniques

# Retrospective facilitation framework

class RetrospectiveFacilitator:
    FORMATS = {
        'Start-Stop-Continue': {
            'description': 'What should we start, stop, continue doing?',
            'duration_minutes': 45,
            'best_for': 'Process improvements'
        },
        'Went-Well-Improve': {
            'description': 'What went well? What can we improve?',
            'duration_minutes': 45,
            'best_for': 'General retrospectives'
        },
        'Sailboat': {
            'description': 'Wind (helping), Anchor (hindering), Rocks (risks)',
            'duration_minutes': 60,
            'best_for': 'Identifying blockers and enablers'
        },
        'Timeline': {
            'description': 'Walk through sprint chronologically',
            'duration_minutes': 60,
            'best_for': 'Complex sprints with incidents'
        }
    }

    def __init__(self, team_size, format_type='Went-Well-Improve'):
        self.team_size = team_size
        self.format = format_type
        self.duration = self.FORMATS[format_type]['duration_minutes']
        self.agenda = self.create_agenda()

    def create_agenda(self):
        """Create timed agenda"""
        return {
            'Opening': {
                'duration_minutes': 5,
                'activities': [
                    'Welcome and goals',
                    'Set psychological safety',
                    'Explain format'
                ]
            },
            'Data Gathering': {
                'duration_minutes': 15,
                'activities': [
                    'Individual reflection (5 min)',
                    'Silent brainstorming on board (10 min)'
                ]
            },
            'Discussion': {
                'duration_minutes': 20,
                'activities': [
                    'Group clustering similar items',
                    'Discuss themes and patterns',
                    'Ask clarifying questions'
                ]
            },
            'Improvement Planning': {
                'duration_minutes': 15,
                'activities': [
                    'Vote on priority items',
                    'Create action items',
                    'Assign owners'
                ]
            },
            'Closing': {
                'duration_minutes': 5,
                'activities': [
                    'Summarize decisions',
                    'Commit to improvements',
                    'Appreciate team'
                ]
            }
        }

    def facilitate_discussion(self, feedback_items):
        """Guide productive discussion"""
        return {
            'structure': [
                {
                    'step': 'Clustering',
                    'action': 'Group similar items together',
                    'facilitation_tip': 'Ask "Are these related?"'
                },
                {
                    'step': 'Exploration',
                    'action': 'Understand root causes',
                    'facilitation_tip': 'Ask "Why?" 5 times'
                },
                {
                    'step': 'Solution Generation',
                    'action': 'Brainstorm solutions',
                    'facilitation_tip': 'No criticism, defer judgment'
                },
                {
                    'step': 'Prioritization',
                    'action': 'Vote on what matters most',
                    'facilitation_tip': 'Use dot voting'
                }
            ],
            'facilitation_questions': [
                'Can you help us understand what happened?',
                'Why do you think this happened?',
                'How can we prevent this next time?',
                'What would success look like?'
            ]
        }

    def ensure_psychological_safety(self):
        """Create safe environment for honest feedback"""
        return {
            'opening_statement': '''
            This is a safe space. There's no blame here. We're all
            learning together. Everything shared stays confidential.
            ''',
            'ground_rules': [
                'Assume positive intent',
                'Criticize ideas, not people',
                'Everyone participates',
                'Listen without interrupting',
                'No side conversations'
            ],
            'practices': [
                'Use anonymous input for sensitive topics',
                'Give balanced feedback (positive & improvement)',
                'Acknowledge emotions and concerns',
                'Thank people for vulnerability'
            ]
        }

3. Action Item Tracking

// Converting retrospective insights to action items

class ActionItemManagement {
  createActionItem(feedback, team) {
    return {
      id: `ACTION-${Date.now()}`,
      title: feedback.title,
      description: feedback.description,
      priority: feedback.priority || 'Medium',
      owner: feedback.owner,
      dueDate: this.calculateDueDate(feedback),
      successCriteria: [
        `${feedback.title} completed`,
        'Results verified in next sprint',
        'Team confirms improvement'
      ],
      resources: feedback.estimatedHours || 4,
      dependencies: feedback.dependencies || [],
      status: 'New',
      createdDate: new Date()
    };
  }

  calculateDueDate(item) {
    // High priority: before next sprint starts
    // Medium: during next sprint
    // Low: next 2 sprints
    const daysFromNow = {
      'High': 7,
      'Medium': 14,
      'Low': 21
    };

    const dueDate = new Date();
    dueDate.setDate(dueDate.getDate() + (daysFromNow[item.priority] || 14));
    return dueDate;
  }

  trackActionItems(items) {
    return {
      total: items.length,
      byStatus: {
        new: items.filter(i => i.status === 'New').length,
        inProgress: items.filter(i => i.status === 'In Progress').length,
        completed: items.filter(i => i.status === 'Completed').length,
        blockedPercent: (items.filter(i => i.status === 'Blocked').length / items.length * 100).toFixed(1)
      },
      summary: items.map(item => ({
        id: item.id,
        title: item.title,
        owner: item.owner,
        dueDate: item.dueDate,
        status: item.status,
        completion: item.completion || 0
      }))
    };
  }

  reviewCompletedItems(previousRetro) {
    return {
      totalCommitted: previousRetro.actionItems.length,
      completed: previousRetro.actionItems.filter(i => i.status === 'Completed').length,
      completionRate: `${(previousRetro.actionItems.filter(i => i.status === 'Completed').length / previousRetro.actionItems.length * 100).toFixed(1)}%`,
      celebration: 'Celebrate completed items!',
      carryOver: previousRetro.actionItems.filter(i => i.status !== 'Completed').map(i => ({
        ...i,
        reason: 'Not completed',
        recommendation: 'Revisit in next retrospective'
      }))
    };
  }
}

4. Retrospective Templates

Retrospective Report:

Sprint: Sprint 23 (Jan 7 - Jan 17, 2025)
Facilitator: Sarah
Attendees: 8 engineers, 1 PM
Duration: 60 minutes

---

What Went Well:
  - Shipped feature 3 days early
  - Zero critical bugs in production
  - Great collaboration between frontend/backend
  - Mentoring of new team member
  - Faster code review cycle (2 → 1 day avg)

Celebrated:
  - Front-end team for UI excellence
  - DevOps for infrastructure stability
  - QA for thorough testing

---

What Could Be Improved:
  1. Unclear requirements caused rework (2 developers, 8 hours)
     Root Cause: PO wasn't available early in sprint
     Severity: Medium

  2. Testing infrastructure flaky (3 instances)
     Root Cause: Increased test load, needs optimization
     Severity: High

  3. Documentation gaps in API changes
     Root Cause: Developers focused on feature delivery
     Severity: Low

  4. Long standup meetings (averaging 20 mins)
     Root Cause: Too many status details
     Severity: Medium

---

Action Items Committed:

1. Daily PO availability window (9-10am)
   Owner: Product Manager
   Due: Sprint 24 Start (Jan 21)
   Priority: High

2. Optimize test infrastructure
   Owner: DevOps Lead
   Due: Sprint 24 Mid-point (Jan 28)
   Priority: High
   Estimated Effort: 16 hours

3. Standup time-boxing
   Owner: Scrum Master
   Due: Next Sprint (Jan 21)
   Priority: Medium
   Method: 5-minute timebox, detailed issues in follow-up

4. API documentation template
   Owner: Tech Lead
   Due: Sprint 24 Start (Jan 21)
   Priority: Low

---

Metrics:
  Velocity: 85 story points (vs 80 planned)
  Bugs Found: 2 (both fixed in sprint)
  Code Review Cycle: 23 hours avg (target: 24)
  Team Morale (1-5): 4.2/5

---

Team Feedback:
  "Best sprint in a while!"
  "Would like more focus on code quality"
  "Great support from the team"

Best Practices

✅ DO

  • Hold retrospectives regularly (every sprint)
  • Create psychological safety upfront
  • Use varied formats to maintain engagement
  • Include the whole team
  • Focus on systems, not individuals
  • Convert insights to specific action items
  • Assign clear owners and due dates
  • Track and celebrate completed actions
  • Review previous actions at start
  • Thank people for participation and honesty

❌ DON'T

  • Blame individuals or teams
  • Let dominant voices control discussion
  • Create action items without owners
  • Have retrospectives without follow-up
  • Ignore difficult feedback
  • Focus only on what went wrong
  • Hold retrospectives when people are tired/stressed
  • Skip closing/celebration
  • Mix retrospectives with status meetings
  • Ignore patterns across multiple retrospectives

Retrospective Tips

  • Rotate formats every 3-4 sprints to maintain engagement
  • Use anonymous input for sensitive feedback
  • Time-box discussion to stay focused
  • Focus on 3-5 improvements, not 20 action items
  • Review and celebrate progress on previous actions

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/retrospective-facilitation-mma3jswd' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/retrospective-facilitation-mma3jswd/download' --output '.skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md.part' && mv '.skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md.part' '.skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md' && test -s '.skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/retrospective-facilitation' && cp -R '.skill-downloads/retrospective-facilitation-mma3jswd' '.claude/skills/retrospective-facilitation'

Cursor
test -f '.skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md' && test -s '.skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/retrospective-facilitation' && cp -R '.skill-downloads/retrospective-facilitation-mma3jswd' '.cursor/skills/retrospective-facilitation'

Codex
test -f '.skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md' && test -s '.skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/retrospective-facilitation' && cp -R '.skill-downloads/retrospective-facilitation-mma3jswd' '.agents/skills/retrospective-facilitation'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/retrospective-facilitation-mma3jswd'

openskills read 'retrospective-facilitation-mma3jswd'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/retrospective-facilitation-mma3jswd/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills