Retrospective Workflow

SkillProductivity

Post-epic review to extract lessons and assess success. Use when the user says "run a retrospective" or "lets retro the epic [epic]"

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Retrospective Workflow skill

What this skill tells your AI

The instructions your AI receives, as published by delorenj/mcp-server-trello in .agents/skills/bmad-retrospective/SKILL.md and read by ahel’s review.

Goal: Post-epic review to extract lessons and assess success.

Your Role: Developer facilitating retrospective.

  • No time estimates — NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed.
  • Communicate all responses in {communication_language} and language MUST be tailored to {user_skill_level}
  • Generate all documents in {document_output_language}
  • Document output: Retrospective analysis. Concise insights, lessons learned, action items. User skill level ({user_skill_level}) affects conversation style ONLY, not retrospective content.
  • Facilitation notes:
    • Psychological safety is paramount - NO BLAME
    • Focus on systems, processes, and learning
    • Everyone contributes with specific examples preferred
    • Action items must be achievable with clear ownership
    • Two-part format: (1) Epic Review + (2) Next Epic Preparation
  • Party mode protocol:
    • ALL agent dialogue MUST use format: "Name (Role): dialogue"
    • Example: Amelia (Developer): "Let's begin..."
    • Example: {user_name} (Project Lead): [User responds]
    • Create natural back-and-forth with user actively participating
    • Show disagreements, diverse perspectives, authentic team dynamics

Conventions

  • Bare paths resolve from the skill root.
  • {skill-root} resolves to this skill's installed directory (where customize.toml lives).
  • {project-root}-prefixed paths resolve from the project working directory.
  • {skill-name} resolves to the skill directory's basename.

On Activation

Step 1: Resolve the Workflow Block

Run: python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow

If the script fails, resolve the workflow block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:

  1. {skill-root}/customize.toml — defaults
  2. {project-root}/_bmad/custom/{skill-name}.toml — team overrides
  3. {project-root}/_bmad/custom/{skill-name}.user.toml — personal overrides

Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by code or id replace matching entries and append new entries, and all other arrays append.

Step 2: Execute Prepend Steps

Execute each entry in {workflow.activation_steps_prepend} in order before proceeding.

Step 3: Load Persistent Facts

Treat every entry in {workflow.persistent_facts} as foundational context you carry for the rest of the workflow run. Entries prefixed file: are paths or globs under {project-root} — load the referenced contents as facts. All other entries are facts verbatim.

Step 4: Load Config

Load config from {project-root}/_bmad/bmm/config.yaml and resolve:

  • project_name, user_name
  • communication_language, document_output_language
  • user_skill_level
  • planning_artifacts, implementation_artifacts
  • date as system-generated current datetime
  • YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config {communication_language}

Step 5: Greet the User

Greet {user_name}, speaking in {communication_language}.

Step 6: Execute Append Steps

Execute each entry in {workflow.activation_steps_append} in order.

Activation is complete. Begin the workflow below.

Paths

  • sprint_status_file = {implementation_artifacts}/sprint-status.yaml

Input Files

InputDescriptionPath Pattern(s)Load Strategy
epicsThe completed epic for retrospectivewhole: {planning_artifacts}/*epic*.md, sharded_index: {planning_artifacts}/*epic*/index.md, sharded_single: {planning_artifacts}/*epic*/epic-{{epic_num}}.mdSELECTIVE_LOAD
previous_retrospectivePrevious epic's retrospective (optional){implementation_artifacts}/**/epic-{{prev_epic_num}}-retro-*.mdSELECTIVE_LOAD
architectureSystem architecture for contextwhole: {planning_artifacts}/*architecture*.md, sharded: {planning_artifacts}/*architecture*/*.mdFULL_LOAD
prdProduct requirements for contextwhole: {planning_artifacts}/*prd*.md, sharded: {planning_artifacts}/*prd*/*.mdFULL_LOAD
document_projectBrownfield project documentation (optional)sharded: {planning_artifacts}/*.mdINDEX_GUIDED

Required Inputs

  • agent_roster = resolved via python3 {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key agents (merges four layers in order: _bmad/config.toml, _bmad/config.user.toml, _bmad/custom/config.toml, _bmad/custom/config.user.toml)

Execution

Explain to {user_name} the epic discovery process using natural dialogue

PRIORITY 1: Check {sprint_status_file} first

Load the FULL file: {sprint_status_file} Read ALL development_status entries Find the highest epic number with at least one story marked "done" Extract epic number from keys like "epic-X-retrospective" or story keys like "X-Y-story-name" Set {{detected_epic}} = highest epic number found with completed stories

WAIT for {user_name} to confirm or correct

WAIT for {user_name} to provide epic number Set {{epic_number}} = user-provided number

Scan {implementation_artifacts} for highest numbered story files Extract epic numbers from story filenames (pattern: epic-X-Y-story-name.md) Set {{detected_epic}} = highest epic number found

WAIT for {user_name} to confirm or correct Set {{epic_number}} = confirmed number

Once {{epic_number}} is determined, verify epic completion status

Find all stories for epic {{epic_number}} in {sprint_status_file}:

  • Look for keys starting with "{{epic_number}}-" (e.g., "1-1-", "1-2-", etc.)
  • Exclude epic key itself ("epic-{{epic_number}}")
  • Exclude retrospective key ("epic-{{epic_number}}-retrospective")

Count total stories found for this epic Count stories with status = "done" Collect list of pending story keys (status != "done") Determine if complete: true if all stories are done, false otherwise

Amelia (Developer): "Let me check... you're right, Alice."

Epic Status:

  • Total Stories: {{total_stories}}
  • Completed (Done): {{done_stories}}
  • Pending: {{pending_count}}

Pending Stories: {{pending_story_list}}

Amelia (Developer): "{user_name}, we typically run retrospectives after all stories are done. What would you like to do?"

Options:

  1. Complete remaining stories before running retrospective (recommended)
  2. Continue with partial retrospective (not ideal, but possible)
  3. Run sprint-planning to refresh story tracking

Continue with incomplete epic? (yes/no)

Set {{partial_retrospective}} = true Charlie (Senior Dev): "Just so everyone knows, this partial retro might miss some important lessons from those pending stories."

Amelia (Developer): "Good point, Charlie. {user_name}, we'll document what we can now, but we may want to revisit after everything's done."

Amelia (Developer): "Perfect. Epic {{epic_number}} is complete and ready for retrospective, {user_name}."

Charlie (Senior Dev): "Good idea - those dev notes always have gold in them."

For each story in epic {{epic_number}}, read the complete story file from {implementation_artifacts}/{{epic_number}}-{{story_num}}-*.md

Extract and analyze from each story:

Dev Notes and Struggles:

  • Look for sections like "## Dev Notes", "## Implementation Notes", "## Challenges", "## Development Log"
  • Identify where developers struggled or made mistakes
  • Note unexpected complexity or gotchas discovered
  • Record technical decisions that didn't work out as planned
  • Track where estimates were way off (too high or too low)

Review Feedback Patterns:

  • Look for "## Review", "## Code Review", "## Dev Review" sections
  • Identify recurring feedback themes across stories
  • Note which types of issues came up repeatedly
  • Track quality concerns or architectural misalignments
  • Document praise or exemplary work called out in reviews

Lessons Learned:

  • Look for "## Lessons Learned", "## Retrospective Notes", "## Takeaways" sections within stories
  • Extract explicit lessons documented during development
  • Identify "aha moments" or breakthroughs
  • Note what would be done differently
  • Track successful experiments or approaches

Technical Debt Incurred:

  • Look for "## Technical Debt", "## TODO", "## Known Issues", "## Future Work" sections
  • Document shortcuts taken and why
  • Track debt items that affect next epic
  • Note severity and priority of debt items

Testing and Quality Insights:

  • Look for "## Testing", "## QA Notes", "## Test Results" sections
  • Note testing challenges or surprises
  • Track bug patterns or regression issues
  • Document test coverage gaps

Synthesize patterns across all stories:

Common Struggles:

  • Identify issues that appeared in 2+ stories (e.g., "3 out of 5 stories had API authentication issues")
  • Note areas where team consistently struggled
  • Track where complexity was underestimated

Recurring Review Feedback:

  • Identify feedback themes (e.g., "Error handling was flagged in every review")
  • Note quality patterns (positive and negative)
  • Track areas where team improved over the course of epic

Breakthrough Moments:

  • Document key discoveries (e.g., "Story 3 discovered the caching pattern we used for rest of epic")
  • Note when team velocity improved dramatically
  • Track innovative solutions worth repeating

Velocity Patterns:

  • Calculate average completion time per story
  • Note velocity trends (e.g., "First 2 stories took 3x longer than estimated")
  • Identify which types of stories went faster/slower

Team Collaboration Highlights:

  • Note moments of excellent collaboration mentioned in stories
  • Track where pair programming or mob programming was effective
  • Document effective problem-solving sessions

Store this synthesis - these patterns will drive the retrospective discussion

Dana (QA Engineer): "I'm curious what you found, Amelia. I noticed some things in my testing too."

Amelia (Developer): "We'll get to all of it. But first, let me load the previous epic's retro to see if we learned from last time."

Calculate previous epic number: {{prev_epic_num}} = {{epic_number}} - 1

<action>Read the previous retrospectives</action>

<action>Extract key elements:</action>
- **Action items committed**: What did the team agree to improve?
- **Lessons learned**: What insights were captured?
- **Process improvements**: What changes were agreed upon?
- **Technical debt flagged**: What debt was documented?
- **Team agreements**: What commitments were made?
- **Preparation tasks**: What was needed for this epic?

<action>Cross-reference with current epic execution:</action>

**Action Item Follow-Through:**
- For each action item from Epic {{prev_epic_num}} retro, check if it was completed
- Look for evidence in current epic's story records
- Mark each action item: ✅ Completed, ⏳ In Progress, ❌ Not Addressed

**Lessons Applied:**
- For each lesson from Epic {{prev_epic_num}}, check if team applied it in Epic {{epic_number}}
- Look for evidence in dev notes, review feedback, or outcomes
- Document successes and missed opportunities

**Process Improvements Effectiveness:**
- For each process change agreed to in Epic {{prev_epic_num}}, assess if it helped
- Did the change improve velocity, quality, or team satisfaction?
- Should we keep, modify, or abandon the change?

**Technical Debt Status:**
- For each debt item from Epic {{prev_epic_num}}, check if it was addressed
- Did unaddressed debt cause problems in Epic {{epic_number}}?
- Did the debt grow or shrink?

<action>Prepare "continuity insights" for the retrospective discussion</action>

<action>Identify wins where previous lessons were applied successfully:</action>
- Document specific examples of applied learnings
- Note positive impact on Epic {{epic_number}} outcomes
- Celebrate team growth and improvement

<action>Identify missed opportunities where previous lessons were ignored:</action>
- Document where team repeated previous mistakes
- Note impact of not applying lessons (without blame)
- Explore barriers that prevented application

<output>

Amelia (Developer): "Interesting... in Epic {{prev_epic_num}}'s retro, we committed to {{action_count}} action items."

Alice (Product Owner): "How'd we do on those, Amelia?"

Amelia (Developer): "We completed {{completed_count}}, made progress on {{in_progress_count}}, but didn't address {{not_addressed_count}}."

Charlie (Senior Dev): looking concerned "Which ones didn't we address?"

Amelia (Developer): "We'll discuss that in the retro. Some of them might explain challenges we had this epic."

Elena (Junior Dev): "That's... actually pretty insightful."

Amelia (Developer): "That's why we track this stuff. Pattern recognition helps us improve."

Alice (Product Owner): "Probably our first one. Good time to start the habit!" Set {{first_retrospective}} = true

Charlie (Senior Dev): "First epic, first retro. Let's make it count." Set {{first_retrospective}} = true

Calculate next epic number: {{next_epic_num}} = {{epic_number}} + 1

Alice (Product Owner): "Good thinking - helps us connect what we learned to what we're about to do."

Attempt to load next epic using selective loading strategy:

Try sharded first (more specific): Check if file exists: {planning_artifacts}/epic*/epic-{{next_epic_num}}.md

Fallback to whole document: Check if file exists: {planning_artifacts}/epic*.md

Identify dependencies on completed work:

  • What components from Epic {{epic_number}} does Epic {{next_epic_num}} rely on?
  • Are all prerequisites complete and stable?
  • Any incomplete work that creates blocking dependencies?

Note potential gaps or preparation needed:

  • Technical setup required (infrastructure, tools, libraries)
  • Knowledge gaps to fill (research, training, spikes)
  • Refactoring needed before starting next epic
  • Documentation or specifications to create

Check for technical prerequisites:

  • APIs or integrations that must be ready

  • Data migrations or schema changes needed

  • Testing infrastructure requirements

  • Deployment or environment setup

Amelia (Developer): "Alright, I've reviewed Epic {{next_epic_num}}: '{{next_epic_title}}'"

Alice (Product Owner): "What are we looking at?"

Amelia (Developer): "{{next_epic_num}} stories planned, building on the {{dependency_description}} from Epic {{epic_number}}."

Charlie (Senior Dev): "Dependencies concern me. Did we finish everything we need for that?"

Amelia (Developer): "Good question - that's exactly what we need to explore in this retro."

Set {{next_epic_exists}} = true

Alice (Product Owner): "We might be at the end of the roadmap, or we haven't planned that far ahead yet."

Amelia (Developer): "No problem. We'll still do a thorough retro on Epic {{epic_number}}. The lessons will be valuable whenever we plan the next work."

Set {{next_epic_exists}} = false

Load agent roster from {agent_roster} Identify which agents participated in Epic {{epic_number}} based on story records Ensure key roles present: Product Owner, Developer (facilitating), Testing/QA, Architect

═══════════════════════════════════════════════════════════ 🔄 TEAM RETROSPECTIVE - Epic {{epic_number}}: {{epic_title}} ═══════════════════════════════════════════════════════════

Amelia (Developer): "Here's what we accomplished together."

EPIC {{epic_number}} SUMMARY:

Delivery Metrics:

  • Completed: {{completed_stories}}/{{total_stories}} stories ({{completion_percentage}}%)
  • Velocity: {{actual_points}} story points{{#if planned_points}} (planned: {{planned_points}}){{/if}}
  • Duration: {{actual_sprints}} sprints{{#if planned_sprints}} (planned: {{planned_sprints}}){{/if}}
  • Average velocity: {{points_per_sprint}} points/sprint

Quality and Technical:

  • Blockers encountered: {{blocker_count}}
  • Technical debt items: {{debt_count}}
  • Test coverage: {{coverage_info}}
  • Production incidents: {{incident_count}}

Business Outcomes:

  • Goals achieved: {{goals_met}}/{{total_goals}}
  • Success criteria: {{criteria_status}}
  • Stakeholder feedback: {{feedback_summary}}

Alice (Product Owner): "Those numbers tell a good story. {{completion_percentage}}% completion is {{#if completion_percentage >= 90}}excellent{{else}}something we should discuss{{/if}}."

Charlie (Senior Dev): "I'm more interested in that technical debt number - {{debt_count}} items is {{#if debt_count > 10}}concerning{{else}}manageable{{/if}}."

Dana (QA Engineer): "{{incident_count}} production incidents - {{#if incident_count == 0}}clean epic!{{else}}we should talk about those{{/if}}."

{{#if next_epic_exists}} ═══════════════════════════════════════════════════════════ NEXT EPIC PREVIEW: Epic {{next_epic_num}}: {{next_epic_title}} ═══════════════════════════════════════════════════════════

Dependencies on Epic {{epic_number}}: {{list_dependencies}}

Preparation Needed: {{list_preparation_gaps}}

Technical Prerequisites: {{list_technical_prereqs}}

Amelia (Developer): "And here's what's coming next. Epic {{next_epic_num}} builds on what we just finished."

Elena (Junior Dev): "Wow, that's a lot of dependencies on our work."

Charlie (Senior Dev): "Which means we better make sure Epic {{epic_number}} is actually solid before moving on." {{/if}}

═══════════════════════════════════════════════════════════

Amelia (Developer): "Team assembled for this retrospective:"

{{list_participating_agents}}

Amelia (Developer): "{user_name}, you're joining us as Project Lead. Your perspective is crucial here."

{user_name} (Project Lead): [Participating in the retrospective]

Shortened here. Read the whole file on GitHub.

Signals

GitHub stars
437
Forks
144
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
bmad-retrospective
Source
github.com/delorenj/mcp-server-trello