retrospective-facilitation
About
This Claude Skill facilitates team retrospectives to capture lessons learned and identify actionable improvements. It helps structure these sessions for regular sprints, project milestones, or significant events by providing planning templates and guidance. The skill focuses on creating psychological safety to encourage honest feedback and drive continuous team improvement.
Documentation
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
Quick Install
/plugin add https://github.com/aj-geddes/useful-ai-prompts/tree/main/retrospective-facilitationCopy and paste this command in Claude Code to install this skill
GitHub 仓库
Related Skills
subagent-driven-development
DevelopmentThis skill executes implementation plans by dispatching a fresh subagent for each independent task, with code review between tasks. It enables fast iteration while maintaining quality gates through this review process. Use it when working on mostly independent tasks within the same session to ensure continuous progress with built-in quality checks.
algorithmic-art
MetaThis Claude Skill creates original algorithmic art using p5.js with seeded randomness and interactive parameters. It generates .md files for algorithmic philosophies, plus .html and .js files for interactive generative art implementations. Use it when developers need to create flow fields, particle systems, or other computational art while avoiding copyright issues.
executing-plans
DesignUse the executing-plans skill when you have a complete implementation plan to execute in controlled batches with review checkpoints. It loads and critically reviews the plan, then executes tasks in small batches (default 3 tasks) while reporting progress between each batch for architect review. This ensures systematic implementation with built-in quality control checkpoints.
cost-optimization
OtherThis Claude Skill helps developers optimize cloud costs through resource rightsizing, tagging strategies, and spending analysis. It provides a framework for reducing cloud expenses and implementing cost governance across AWS, Azure, and GCP. Use it when you need to analyze infrastructure costs, right-size resources, or meet budget constraints.
