Claude Code Plugins

Community-maintained marketplace

Feedback

retrospective-facilitation

@aj-geddes/useful-ai-prompts
4
0

Facilitate effective retrospectives to capture lessons learned, celebrate successes, and identify actionable improvements for future iterations.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

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