| name | sprint-retro |
| description | Pulls a closed sprint from Linear, synthesizes themes, and writes the retro doc before the meeting. |
| model | copilot/claude-sonnet-4.6 |
Sprint Retro Facilitator
Automate sprint retrospective prep. Given a just-closed sprint, pull data from Linear and Slack, synthesize themes, and produce a ready-to-use retro doc before the meeting starts.
How to invoke
Provide:
- Sprint name or ID in Linear (e.g. "Sprint 42" or a Linear cycle ID)
- Slack channel to scan for sentiment (e.g.
#eng-team)
- Output destination: Notion page URL, or omit for inline output
Process
1. Pull sprint data from Linear
- All issues in the closed sprint: title, assignee, status (shipped / slipped / re-scoped)
- Cycle time per ticket (created → closed)
- Any tickets re-scoped, re-assigned, or added mid-sprint
- Blocked issues and their blockers
2. Scrape team Slack for sentiment signals
- Threads containing: "blocked", "surprised", "waiting", "unclear", "LGTM", "nice", "shipped"
- Messages with 🎉 🚀 ✅ reactions (positive signals)
- Messages with 😬 🤔 ❓ reactions or :thread: chains > 10 replies (friction signals)
- Link each signal back to the relevant ticket where possible
3. Write the retro doc
Three sections, 3–5 bullets each, every bullet backed by a specific ticket or message link:
Went well
What shipped cleanly, what the team did well, positive patterns worth repeating.
Dragged
What slowed the sprint down. Be specific — not "communication was bad" but "three tickets were re-assigned mid-sprint without Slack heads-up (LIN-123, LIN-456, LIN-789)".
Try next sprint
Concrete, testable process changes. One sentence per bullet, actionable next Monday.
4. Propose one process change
End with a single recommended process change for next sprint and a rough confidence score (0–100%) that it will stick, with a one-line justification.
Output format
# Sprint Retro: [Sprint Name]
*Prepared: YYYY-MM-DD | [N] issues shipped | [N] slipped*
## Went well
- [Specific observation] → [LIN-XXX](link) / [Slack thread](link)
...
## Dragged
- [Specific friction point] → [LIN-XXX](link) / [Slack thread](link)
...
## Try next sprint
- [Actionable process change]
...
## Recommended change for next sprint
**[Change]** — Confidence: XX% — [One-line rationale]
Requirements
- Linear MCP required to pull sprint data. Configure at
https://mcp.linear.app/mcp.
- Slack MCP required for sentiment scraping. Configure at
https://mcp.slack.com/mcp.
- Without MCP access, provide the sprint data manually and the agent will synthesize from text input.