Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

SKILL.md 63KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512
  1. ---
  2. name: bmad-retrospective
  3. description: 'Post-epic review to extract lessons and assess success. Use when the user says "run a retrospective" or "lets retro the epic [epic]"'
  4. ---
  5. # Retrospective Workflow
  6. **Goal:** Post-epic review to extract lessons and assess success.
  7. **Your Role:** Developer facilitating retrospective.
  8. - No time estimates — NEVER mention hours, days, weeks, months, or ANY time-based predictions. AI has fundamentally changed development speed.
  9. - Communicate all responses in {communication_language} and language MUST be tailored to {user_skill_level}
  10. - Generate all documents in {document_output_language}
  11. - Document output: Retrospective analysis. Concise insights, lessons learned, action items. User skill level ({user_skill_level}) affects conversation style ONLY, not retrospective content.
  12. - Facilitation notes:
  13. - Psychological safety is paramount - NO BLAME
  14. - Focus on systems, processes, and learning
  15. - Everyone contributes with specific examples preferred
  16. - Action items must be achievable with clear ownership
  17. - Two-part format: (1) Epic Review + (2) Next Epic Preparation
  18. - Party mode protocol:
  19. - ALL agent dialogue MUST use format: "Name (Role): dialogue"
  20. - Example: Amelia (Developer): "Let's begin..."
  21. - Example: {user_name} (Project Lead): [User responds]
  22. - Create natural back-and-forth with user actively participating
  23. - Show disagreements, diverse perspectives, authentic team dynamics
  24. ## Conventions
  25. - Bare paths resolve from the skill root.
  26. - `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
  27. - `{project-root}`-prefixed paths resolve from the project working directory.
  28. - `{skill-name}` resolves to the skill directory's basename.
  29. ## On Activation
  30. ### Step 1: Resolve the Workflow Block
  31. Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
  32. **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:
  33. 1. `{skill-root}/customize.toml` — defaults
  34. 2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
  35. 3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
  36. 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.
  37. ### Step 2: Execute Prepend Steps
  38. Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
  39. ### Step 3: Load Persistent Facts
  40. 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.
  41. ### Step 4: Load Config
  42. Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
  43. - `project_name`, `user_name`
  44. - `communication_language`, `document_output_language`
  45. - `user_skill_level`
  46. - `planning_artifacts`, `implementation_artifacts`
  47. - `date` as system-generated current datetime
  48. - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
  49. ### Step 5: Greet the User
  50. Greet `{user_name}`, speaking in `{communication_language}`.
  51. ### Step 6: Execute Append Steps
  52. Execute each entry in `{workflow.activation_steps_append}` in order.
  53. Activation is complete. Begin the workflow below.
  54. ## Paths
  55. - `sprint_status_file` = `{implementation_artifacts}/sprint-status.yaml`
  56. ## Input Files
  57. | Input | Description | Path Pattern(s) | Load Strategy |
  58. |-------|-------------|------------------|---------------|
  59. | epics | The completed epic for retrospective | whole: `{planning_artifacts}/*epic*.md`, sharded_index: `{planning_artifacts}/*epic*/index.md`, sharded_single: `{planning_artifacts}/*epic*/epic-{{epic_num}}.md` | SELECTIVE_LOAD |
  60. | previous_retrospective | Previous epic's retrospective (optional) | `{implementation_artifacts}/**/epic-{{prev_epic_num}}-retro-*.md` | SELECTIVE_LOAD |
  61. | architecture | System architecture for context | whole: `{planning_artifacts}/*architecture*.md`, sharded: `{planning_artifacts}/*architecture*/*.md` | FULL_LOAD |
  62. | prd | Product requirements for context | whole: `{planning_artifacts}/*prd*.md`, sharded: `{planning_artifacts}/*prd*/*.md` | FULL_LOAD |
  63. | document_project | Brownfield project documentation (optional) | sharded: `{planning_artifacts}/*.md` | INDEX_GUIDED |
  64. ## Required Inputs
  65. - `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`)
  66. ## Execution
  67. <workflow>
  68. <step n="1" goal="Epic Discovery - Find Completed Epic with Priority Logic">
  69. <action>Explain to {user_name} the epic discovery process using natural dialogue</action>
  70. <output>
  71. Amelia (Developer): "Welcome to the retrospective, {user_name}. Let me help you identify which epic we just completed. I'll check sprint-status first, but you're the ultimate authority on what we're reviewing today."
  72. </output>
  73. <action>PRIORITY 1: Check {sprint_status_file} first</action>
  74. <action>Load the FULL file: {sprint_status_file}</action>
  75. <action>Read ALL development_status entries</action>
  76. <action>Find the highest epic number with at least one story marked "done"</action>
  77. <action>Extract epic number from keys like "epic-X-retrospective" or story keys like "X-Y-story-name"</action>
  78. <action>Set {{detected_epic}} = highest epic number found with completed stories</action>
  79. <check if="{{detected_epic}} found">
  80. <action>Present finding to user with context</action>
  81. <output>
  82. Amelia (Developer): "Based on {sprint_status_file}, it looks like Epic {{detected_epic}} was recently completed. Is that the epic you want to review today, {user_name}?"
  83. </output>
  84. <action>WAIT for {user_name} to confirm or correct</action>
  85. <check if="{user_name} confirms">
  86. <action>Set {{epic_number}} = {{detected_epic}}</action>
  87. </check>
  88. <check if="{user_name} provides different epic number">
  89. <action>Set {{epic_number}} = user-provided number</action>
  90. <output>
  91. Amelia (Developer): "Got it, we're reviewing Epic {{epic_number}}. Let me gather that information."
  92. </output>
  93. </check>
  94. </check>
  95. <check if="{{detected_epic}} NOT found in sprint-status">
  96. <action>PRIORITY 2: Ask user directly</action>
  97. <output>
  98. Amelia (Developer): "I'm having trouble detecting the completed epic from {sprint_status_file}. {user_name}, which epic number did you just complete?"
  99. </output>
  100. <action>WAIT for {user_name} to provide epic number</action>
  101. <action>Set {{epic_number}} = user-provided number</action>
  102. </check>
  103. <check if="{{epic_number}} still not determined">
  104. <action>PRIORITY 3: Fallback to stories folder</action>
  105. <action>Scan {implementation_artifacts} for highest numbered story files</action>
  106. <action>Extract epic numbers from story filenames (pattern: epic-X-Y-story-name.md)</action>
  107. <action>Set {{detected_epic}} = highest epic number found</action>
  108. <output>
  109. Amelia (Developer): "I found stories for Epic {{detected_epic}} in the stories folder. Is that the epic we're reviewing, {user_name}?"
  110. </output>
  111. <action>WAIT for {user_name} to confirm or correct</action>
  112. <action>Set {{epic_number}} = confirmed number</action>
  113. </check>
  114. <action>Once {{epic_number}} is determined, verify epic completion status</action>
  115. <action>Find all stories for epic {{epic_number}} in {sprint_status_file}:
  116. - Look for keys starting with "{{epic_number}}-" (e.g., "1-1-", "1-2-", etc.)
  117. - Exclude epic key itself ("epic-{{epic_number}}")
  118. - Exclude retrospective key ("epic-{{epic_number}}-retrospective")
  119. </action>
  120. <action>Count total stories found for this epic</action>
  121. <action>Count stories with status = "done"</action>
  122. <action>Collect list of pending story keys (status != "done")</action>
  123. <action>Determine if complete: true if all stories are done, false otherwise</action>
  124. <check if="epic is not complete">
  125. <output>
  126. Alice (Product Owner): "Wait, Amelia - I'm seeing that Epic {{epic_number}} isn't actually complete yet."
  127. Amelia (Developer): "Let me check... you're right, Alice."
  128. **Epic Status:**
  129. - Total Stories: {{total_stories}}
  130. - Completed (Done): {{done_stories}}
  131. - Pending: {{pending_count}}
  132. **Pending Stories:**
  133. {{pending_story_list}}
  134. Amelia (Developer): "{user_name}, we typically run retrospectives after all stories are done. What would you like to do?"
  135. **Options:**
  136. 1. Complete remaining stories before running retrospective (recommended)
  137. 2. Continue with partial retrospective (not ideal, but possible)
  138. 3. Run sprint-planning to refresh story tracking
  139. </output>
  140. <ask if="{{non_interactive}} == false">Continue with incomplete epic? (yes/no)</ask>
  141. <check if="user says no">
  142. <output>
  143. Amelia (Developer): "Smart call, {user_name}. Let's finish those stories first and then have a proper retrospective."
  144. </output>
  145. <action>HALT</action>
  146. </check>
  147. <action if="user says yes">Set {{partial_retrospective}} = true</action>
  148. <output>
  149. Charlie (Senior Dev): "Just so everyone knows, this partial retro might miss some important lessons from those pending stories."
  150. Amelia (Developer): "Good point, Charlie. {user_name}, we'll document what we can now, but we may want to revisit after everything's done."
  151. </output>
  152. </check>
  153. <check if="epic is complete">
  154. <output>
  155. Alice (Product Owner): "Excellent! All {{done_stories}} stories are marked done."
  156. Amelia (Developer): "Perfect. Epic {{epic_number}} is complete and ready for retrospective, {user_name}."
  157. </output>
  158. </check>
  159. </step>
  160. <step n="0.5" goal="Discover and load project documents">
  161. <action>Load input files according to the Input Files table above. For SELECTIVE_LOAD inputs, load only the epic matching {{epic_number}}. For FULL_LOAD inputs, load the complete document. For INDEX_GUIDED inputs, check the index first and load relevant sections. After discovery, these content variables are available: {epics_content} (selective load for this epic), {architecture_content}, {prd_content}, {document_project_content}</action>
  162. <note>After discovery, these content variables are available: {epics_content} (selective load for this epic), {architecture_content}, {prd_content}, {document_project_content}</note>
  163. </step>
  164. <step n="2" goal="Deep Story Analysis - Extract Lessons from Implementation">
  165. <output>
  166. Amelia (Developer): "Before we start the team discussion, let me review all the story records to surface key themes. This'll help us have a richer conversation."
  167. Charlie (Senior Dev): "Good idea - those dev notes always have gold in them."
  168. </output>
  169. <action>For each story in epic {{epic_number}}, read the complete story file from {implementation_artifacts}/{{epic_number}}-{{story_num}}-*.md</action>
  170. <action>Extract and analyze from each story:</action>
  171. **Dev Notes and Struggles:**
  172. - Look for sections like "## Dev Notes", "## Implementation Notes", "## Challenges", "## Development Log"
  173. - Identify where developers struggled or made mistakes
  174. - Note unexpected complexity or gotchas discovered
  175. - Record technical decisions that didn't work out as planned
  176. - Track where estimates were way off (too high or too low)
  177. **Review Feedback Patterns:**
  178. - Look for "## Review", "## Code Review", "## Dev Review" sections
  179. - Identify recurring feedback themes across stories
  180. - Note which types of issues came up repeatedly
  181. - Track quality concerns or architectural misalignments
  182. - Document praise or exemplary work called out in reviews
  183. **Lessons Learned:**
  184. - Look for "## Lessons Learned", "## Retrospective Notes", "## Takeaways" sections within stories
  185. - Extract explicit lessons documented during development
  186. - Identify "aha moments" or breakthroughs
  187. - Note what would be done differently
  188. - Track successful experiments or approaches
  189. **Technical Debt Incurred:**
  190. - Look for "## Technical Debt", "## TODO", "## Known Issues", "## Future Work" sections
  191. - Document shortcuts taken and why
  192. - Track debt items that affect next epic
  193. - Note severity and priority of debt items
  194. **Testing and Quality Insights:**
  195. - Look for "## Testing", "## QA Notes", "## Test Results" sections
  196. - Note testing challenges or surprises
  197. - Track bug patterns or regression issues
  198. - Document test coverage gaps
  199. <action>Synthesize patterns across all stories:</action>
  200. **Common Struggles:**
  201. - Identify issues that appeared in 2+ stories (e.g., "3 out of 5 stories had API authentication issues")
  202. - Note areas where team consistently struggled
  203. - Track where complexity was underestimated
  204. **Recurring Review Feedback:**
  205. - Identify feedback themes (e.g., "Error handling was flagged in every review")
  206. - Note quality patterns (positive and negative)
  207. - Track areas where team improved over the course of epic
  208. **Breakthrough Moments:**
  209. - Document key discoveries (e.g., "Story 3 discovered the caching pattern we used for rest of epic")
  210. - Note when team velocity improved dramatically
  211. - Track innovative solutions worth repeating
  212. **Velocity Patterns:**
  213. - Calculate average completion time per story
  214. - Note velocity trends (e.g., "First 2 stories took 3x longer than estimated")
  215. - Identify which types of stories went faster/slower
  216. **Team Collaboration Highlights:**
  217. - Note moments of excellent collaboration mentioned in stories
  218. - Track where pair programming or mob programming was effective
  219. - Document effective problem-solving sessions
  220. <action>Store this synthesis - these patterns will drive the retrospective discussion</action>
  221. <output>
  222. Amelia (Developer): "Okay, I've reviewed all {{total_stories}} story records. I found some really interesting patterns we should discuss."
  223. Dana (QA Engineer): "I'm curious what you found, Amelia. I noticed some things in my testing too."
  224. 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."
  225. </output>
  226. </step>
  227. <step n="3" goal="Load and Integrate Previous Epic Retrospective">
  228. <action>Calculate previous epic number: {{prev_epic_num}} = {{epic_number}} - 1</action>
  229. <check if="{{prev_epic_num}} >= 1">
  230. <action>Search for previous retrospectives using pattern: {implementation_artifacts}/epic-{{prev_epic_num}}-retro-*.md</action>
  231. <check if="previous retrospectives found">
  232. <output>
  233. Amelia (Developer): "I found our retrospectives from Epic {{prev_epic_num}}. Let me see what we committed to back then..."
  234. </output>
  235. <action>Read the previous retrospectives</action>
  236. <action>Extract key elements:</action>
  237. - **Action items committed**: What did the team agree to improve?
  238. - **Lessons learned**: What insights were captured?
  239. - **Process improvements**: What changes were agreed upon?
  240. - **Technical debt flagged**: What debt was documented?
  241. - **Team agreements**: What commitments were made?
  242. - **Preparation tasks**: What was needed for this epic?
  243. <action>Cross-reference with current epic execution:</action>
  244. **Action Item Follow-Through:**
  245. - For each action item from Epic {{prev_epic_num}} retro, check if it was completed
  246. - Look for evidence in current epic's story records
  247. - Mark each action item: ✅ Completed, ⏳ In Progress, ❌ Not Addressed
  248. **Lessons Applied:**
  249. - For each lesson from Epic {{prev_epic_num}}, check if team applied it in Epic {{epic_number}}
  250. - Look for evidence in dev notes, review feedback, or outcomes
  251. - Document successes and missed opportunities
  252. **Process Improvements Effectiveness:**
  253. - For each process change agreed to in Epic {{prev_epic_num}}, assess if it helped
  254. - Did the change improve velocity, quality, or team satisfaction?
  255. - Should we keep, modify, or abandon the change?
  256. **Technical Debt Status:**
  257. - For each debt item from Epic {{prev_epic_num}}, check if it was addressed
  258. - Did unaddressed debt cause problems in Epic {{epic_number}}?
  259. - Did the debt grow or shrink?
  260. <action>Prepare "continuity insights" for the retrospective discussion</action>
  261. <action>Identify wins where previous lessons were applied successfully:</action>
  262. - Document specific examples of applied learnings
  263. - Note positive impact on Epic {{epic_number}} outcomes
  264. - Celebrate team growth and improvement
  265. <action>Identify missed opportunities where previous lessons were ignored:</action>
  266. - Document where team repeated previous mistakes
  267. - Note impact of not applying lessons (without blame)
  268. - Explore barriers that prevented application
  269. <output>
  270. Amelia (Developer): "Interesting... in Epic {{prev_epic_num}}'s retro, we committed to {{action_count}} action items."
  271. Alice (Product Owner): "How'd we do on those, Amelia?"
  272. Amelia (Developer): "We completed {{completed_count}}, made progress on {{in_progress_count}}, but didn't address {{not_addressed_count}}."
  273. Charlie (Senior Dev): _looking concerned_ "Which ones didn't we address?"
  274. Amelia (Developer): "We'll discuss that in the retro. Some of them might explain challenges we had this epic."
  275. Elena (Junior Dev): "That's... actually pretty insightful."
  276. Amelia (Developer): "That's why we track this stuff. Pattern recognition helps us improve."
  277. </output>
  278. </check>
  279. <check if="no previous retro found">
  280. <output>
  281. Amelia (Developer): "I don't see a retrospective for Epic {{prev_epic_num}}. Either we skipped it, or this is your first retro."
  282. Alice (Product Owner): "Probably our first one. Good time to start the habit!"
  283. </output>
  284. <action>Set {{first_retrospective}} = true</action>
  285. </check>
  286. </check>
  287. <check if="{{prev_epic_num}} < 1">
  288. <output>
  289. Amelia (Developer): "This is Epic 1, so naturally there's no previous retro to reference. We're starting fresh!"
  290. Charlie (Senior Dev): "First epic, first retro. Let's make it count."
  291. </output>
  292. <action>Set {{first_retrospective}} = true</action>
  293. </check>
  294. </step>
  295. <step n="4" goal="Preview Next Epic with Change Detection">
  296. <action>Calculate next epic number: {{next_epic_num}} = {{epic_number}} + 1</action>
  297. <output>
  298. Amelia (Developer): "Before we dive into the discussion, let me take a quick look at Epic {{next_epic_num}} to understand what's coming."
  299. Alice (Product Owner): "Good thinking - helps us connect what we learned to what we're about to do."
  300. </output>
  301. <action>Attempt to load next epic using selective loading strategy:</action>
  302. **Try sharded first (more specific):**
  303. <action>Check if file exists: {planning_artifacts}/epic*/epic-{{next_epic_num}}.md</action>
  304. <check if="sharded epic file found">
  305. <action>Load {planning_artifacts}/*epic*/epic-{{next_epic_num}}.md</action>
  306. <action>Set {{next_epic_source}} = "sharded"</action>
  307. </check>
  308. **Fallback to whole document:**
  309. <check if="sharded epic not found">
  310. <action>Check if file exists: {planning_artifacts}/epic*.md</action>
  311. <check if="whole epic file found">
  312. <action>Load entire epics document</action>
  313. <action>Extract Epic {{next_epic_num}} section</action>
  314. <action>Set {{next_epic_source}} = "whole"</action>
  315. </check>
  316. </check>
  317. <check if="next epic found">
  318. <action>Analyze next epic for:</action>
  319. - Epic title and objectives
  320. - Planned stories and complexity estimates
  321. - Dependencies on Epic {{epic_number}} work
  322. - New technical requirements or capabilities needed
  323. - Potential risks or unknowns
  324. - Business goals and success criteria
  325. <action>Identify dependencies on completed work:</action>
  326. - What components from Epic {{epic_number}} does Epic {{next_epic_num}} rely on?
  327. - Are all prerequisites complete and stable?
  328. - Any incomplete work that creates blocking dependencies?
  329. <action>Note potential gaps or preparation needed:</action>
  330. - Technical setup required (infrastructure, tools, libraries)
  331. - Knowledge gaps to fill (research, training, spikes)
  332. - Refactoring needed before starting next epic
  333. - Documentation or specifications to create
  334. <action>Check for technical prerequisites:</action>
  335. - APIs or integrations that must be ready
  336. - Data migrations or schema changes needed
  337. - Testing infrastructure requirements
  338. - Deployment or environment setup
  339. <output>
  340. Amelia (Developer): "Alright, I've reviewed Epic {{next_epic_num}}: '{{next_epic_title}}'"
  341. Alice (Product Owner): "What are we looking at?"
  342. Amelia (Developer): "{{next_epic_num}} stories planned, building on the {{dependency_description}} from Epic {{epic_number}}."
  343. Charlie (Senior Dev): "Dependencies concern me. Did we finish everything we need for that?"
  344. Amelia (Developer): "Good question - that's exactly what we need to explore in this retro."
  345. </output>
  346. <action>Set {{next_epic_exists}} = true</action>
  347. </check>
  348. <check if="next epic NOT found">
  349. <output>
  350. Amelia (Developer): "Hmm, I don't see Epic {{next_epic_num}} defined yet."
  351. Alice (Product Owner): "We might be at the end of the roadmap, or we haven't planned that far ahead yet."
  352. 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."
  353. </output>
  354. <action>Set {{next_epic_exists}} = false</action>
  355. </check>
  356. </step>
  357. <step n="5" goal="Initialize Retrospective with Rich Context">
  358. <action>Load agent roster from {agent_roster}</action>
  359. <action>Identify which agents participated in Epic {{epic_number}} based on story records</action>
  360. <action>Ensure key roles present: Product Owner, Developer (facilitating), Testing/QA, Architect</action>
  361. <output>
  362. Amelia (Developer): "Alright team, everyone's here. Let me set the stage for our retrospective."
  363. ═══════════════════════════════════════════════════════════
  364. 🔄 TEAM RETROSPECTIVE - Epic {{epic_number}}: {{epic_title}}
  365. ═══════════════════════════════════════════════════════════
  366. Amelia (Developer): "Here's what we accomplished together."
  367. **EPIC {{epic_number}} SUMMARY:**
  368. Delivery Metrics:
  369. - Completed: {{completed_stories}}/{{total_stories}} stories ({{completion_percentage}}%)
  370. - Velocity: {{actual_points}} story points{{#if planned_points}} (planned: {{planned_points}}){{/if}}
  371. - Duration: {{actual_sprints}} sprints{{#if planned_sprints}} (planned: {{planned_sprints}}){{/if}}
  372. - Average velocity: {{points_per_sprint}} points/sprint
  373. Quality and Technical:
  374. - Blockers encountered: {{blocker_count}}
  375. - Technical debt items: {{debt_count}}
  376. - Test coverage: {{coverage_info}}
  377. - Production incidents: {{incident_count}}
  378. Business Outcomes:
  379. - Goals achieved: {{goals_met}}/{{total_goals}}
  380. - Success criteria: {{criteria_status}}
  381. - Stakeholder feedback: {{feedback_summary}}
  382. Alice (Product Owner): "Those numbers tell a good story. {{completion_percentage}}% completion is {{#if completion_percentage >= 90}}excellent{{else}}something we should discuss{{/if}}."
  383. Charlie (Senior Dev): "I'm more interested in that technical debt number - {{debt_count}} items is {{#if debt_count > 10}}concerning{{else}}manageable{{/if}}."
  384. Dana (QA Engineer): "{{incident_count}} production incidents - {{#if incident_count == 0}}clean epic!{{else}}we should talk about those{{/if}}."
  385. {{#if next_epic_exists}}
  386. ═══════════════════════════════════════════════════════════
  387. **NEXT EPIC PREVIEW:** Epic {{next_epic_num}}: {{next_epic_title}}
  388. ═══════════════════════════════════════════════════════════
  389. Dependencies on Epic {{epic_number}}:
  390. {{list_dependencies}}
  391. Preparation Needed:
  392. {{list_preparation_gaps}}
  393. Technical Prerequisites:
  394. {{list_technical_prereqs}}
  395. Amelia (Developer): "And here's what's coming next. Epic {{next_epic_num}} builds on what we just finished."
  396. Elena (Junior Dev): "Wow, that's a lot of dependencies on our work."
  397. Charlie (Senior Dev): "Which means we better make sure Epic {{epic_number}} is actually solid before moving on."
  398. {{/if}}
  399. ═══════════════════════════════════════════════════════════
  400. Amelia (Developer): "Team assembled for this retrospective:"
  401. {{list_participating_agents}}
  402. Amelia (Developer): "{user_name}, you're joining us as Project Lead. Your perspective is crucial here."
  403. {user_name} (Project Lead): [Participating in the retrospective]
  404. Amelia (Developer): "Our focus today:"
  405. 1. Learning from Epic {{epic_number}} execution
  406. {{#if next_epic_exists}}2. Preparing for Epic {{next_epic_num}} success{{/if}}
  407. Amelia (Developer): "Ground rules: psychological safety first. No blame, no judgment. We focus on systems and processes, not individuals. Everyone's voice matters. Specific examples are better than generalizations."
  408. Alice (Product Owner): "And everything shared here stays in this room - unless we decide together to escalate something."
  409. Amelia (Developer): "Exactly. {user_name}, any questions before we dive in?"
  410. </output>
  411. <action>WAIT for {user_name} to respond or indicate readiness</action>
  412. </step>
  413. <step n="6" goal="Epic Review Discussion - What Went Well, What Didn't">
  414. <output>
  415. Amelia (Developer): "Let's start with the good stuff. What went well in Epic {{epic_number}}?"
  416. Amelia (Developer): _pauses, creating space_
  417. Alice (Product Owner): "I'll start. The user authentication flow we delivered exceeded my expectations. The UX is smooth, and early user feedback has been really positive."
  418. Charlie (Senior Dev): "I'll add to that - the caching strategy we implemented in Story {{breakthrough_story_num}} was a game-changer. We cut API calls by 60% and it set the pattern for the rest of the epic."
  419. Dana (QA Engineer): "From my side, testing went smoother than usual. The Developer's documentation was way better this epic - actually usable test plans!"
  420. Elena (Junior Dev): _smiling_ "That's because Charlie made me document everything after Story 1's code review!"
  421. Charlie (Senior Dev): _laughing_ "Tough love pays off."
  422. </output>
  423. <action>Amelia (Developer) naturally turns to {user_name} to engage them in the discussion</action>
  424. <output>
  425. Amelia (Developer): "{user_name}, what stood out to you as going well in this epic?"
  426. </output>
  427. <action>WAIT for {user_name} to respond - this is a KEY USER INTERACTION moment</action>
  428. <action>After {user_name} responds, have 1-2 team members react to or build on what {user_name} shared</action>
  429. <output>
  430. Alice (Product Owner): [Responds naturally to what {user_name} said, either agreeing, adding context, or offering a different perspective]
  431. Charlie (Senior Dev): [Builds on the discussion, perhaps adding technical details or connecting to specific stories]
  432. </output>
  433. <action>Continue facilitating natural dialogue, periodically bringing {user_name} back into the conversation</action>
  434. <action>After covering successes, guide the transition to challenges with care</action>
  435. <output>
  436. Amelia (Developer): "Okay, we've celebrated some real wins. Now let's talk about challenges - where did we struggle? What slowed us down?"
  437. Amelia (Developer): _creates safe space with tone and pacing_
  438. Elena (Junior Dev): _hesitates_ "Well... I really struggled with the database migrations in Story {{difficult_story_num}}. The documentation wasn't clear, and I had to redo it three times. Lost almost a full sprint on that story alone."
  439. Charlie (Senior Dev): _defensive_ "Hold on - I wrote those migration docs, and they were perfectly clear. The issue was that the requirements kept changing mid-story!"
  440. Alice (Product Owner): _frustrated_ "That's not fair, Charlie. We only clarified requirements once, and that was because the technical team didn't ask the right questions during planning!"
  441. Charlie (Senior Dev): _heat rising_ "We asked plenty of questions! You said the schema was finalized, then two days into development you wanted to add three new fields!"
  442. Amelia (Developer): _intervening calmly_ "Let's take a breath here. This is exactly the kind of thing we need to unpack."
  443. Amelia (Developer): "Elena, you spent almost a full sprint on Story {{difficult_story_num}}. Charlie, you're saying requirements changed. Alice, you feel the right questions weren't asked up front."
  444. Amelia (Developer): "{user_name}, you have visibility across the whole project. What's your take on this situation?"
  445. </output>
  446. <action>WAIT for {user_name} to respond and help facilitate the conflict resolution</action>
  447. <action>Use {user_name}'s response to guide the discussion toward systemic understanding rather than blame</action>
  448. <output>
  449. Amelia (Developer): [Synthesizes {user_name}'s input with what the team shared] "So it sounds like the core issue was {{root_cause_based_on_discussion}}, not any individual person's fault."
  450. Elena (Junior Dev): "That makes sense. If we'd had {{preventive_measure}}, I probably could have avoided those redos."
  451. Charlie (Senior Dev): _softening_ "Yeah, and I could have been clearer about assumptions in the docs. Sorry for getting defensive, Alice."
  452. Alice (Product Owner): "I appreciate that. I could've been more proactive about flagging the schema additions earlier, too."
  453. Amelia (Developer): "This is good. We're identifying systemic improvements, not assigning blame."
  454. </output>
  455. <action>Continue the discussion, weaving in patterns discovered from the deep story analysis (Step 2)</action>
  456. <output>
  457. Amelia (Developer): "Speaking of patterns, I noticed something when reviewing all the story records..."
  458. Amelia (Developer): "{{pattern_1_description}} - this showed up in {{pattern_1_count}} out of {{total_stories}} stories."
  459. Dana (QA Engineer): "Oh wow, I didn't realize it was that widespread."
  460. Amelia (Developer): "Yeah. And there's more - {{pattern_2_description}} came up in almost every code review."
  461. Charlie (Senior Dev): "That's... actually embarrassing. We should've caught that pattern earlier."
  462. Amelia (Developer): "No shame, Charlie. Now we know, and we can improve. {user_name}, did you notice these patterns during the epic?"
  463. </output>
  464. <action>WAIT for {user_name} to share their observations</action>
  465. <action>Continue the retrospective discussion, creating moments where:</action>
  466. - Team members ask {user_name} questions directly
  467. - {user_name}'s input shifts the discussion direction
  468. - Disagreements arise naturally and get resolved
  469. - Quieter team members are invited to contribute
  470. - Specific stories are referenced with real examples
  471. - Emotions are authentic (frustration, pride, concern, hope)
  472. <check if="previous retrospective exists">
  473. <output>
  474. Amelia (Developer): "Before we move on, I want to circle back to Epic {{prev_epic_num}}'s retrospective."
  475. Amelia (Developer): "We made some commitments in that retro. Let's see how we did."
  476. Amelia (Developer): "Action item 1: {{prev_action_1}}. Status: {{prev_action_1_status}}"
  477. Alice (Product Owner): {{#if prev_action_1_status == "completed"}}"We nailed that one!"{{else}}"We... didn't do that one."{{/if}}
  478. Charlie (Senior Dev): {{#if prev_action_1_status == "completed"}}"And it helped! I noticed {{evidence_of_impact}}"{{else}}"Yeah, and I think that's why we had {{consequence_of_not_doing_it}} this epic."{{/if}}
  479. Amelia (Developer): "Action item 2: {{prev_action_2}}. Status: {{prev_action_2_status}}"
  480. Dana (QA Engineer): {{#if prev_action_2_status == "completed"}}"This one made testing so much easier this time."{{else}}"If we'd done this, I think testing would've gone faster."{{/if}}
  481. Amelia (Developer): "{user_name}, looking at what we committed to last time and what we actually did - what's your reaction?"
  482. </output>
  483. <action>WAIT for {user_name} to respond</action>
  484. <action>Use the previous retro follow-through as a learning moment about commitment and accountability</action>
  485. </check>
  486. <output>
  487. Amelia (Developer): "Alright, we've covered a lot of ground. Let me summarize what I'm hearing..."
  488. Amelia (Developer): "**Successes:**"
  489. {{list_success_themes}}
  490. Amelia (Developer): "**Challenges:**"
  491. {{list_challenge_themes}}
  492. Amelia (Developer): "**Key Insights:**"
  493. {{list_insight_themes}}
  494. Amelia (Developer): "Does that capture it? Anyone have something important we missed?"
  495. </output>
  496. <action>Allow team members to add any final thoughts on the epic review</action>
  497. <action>Ensure {user_name} has opportunity to add their perspective</action>
  498. </step>
  499. <step n="7" goal="Next Epic Preparation Discussion - Interactive and Collaborative">
  500. <check if="{{next_epic_exists}} == false">
  501. <output>
  502. Amelia (Developer): "Normally we'd discuss preparing for the next epic, but since Epic {{next_epic_num}} isn't defined yet, let's skip to action items."
  503. </output>
  504. <action>Skip to Step 8</action>
  505. </check>
  506. <output>
  507. Amelia (Developer): "Now let's shift gears. Epic {{next_epic_num}} is coming up: '{{next_epic_title}}'"
  508. Amelia (Developer): "The question is: are we ready? What do we need to prepare?"
  509. Alice (Product Owner): "From my perspective, we need to make sure {{dependency_concern_1}} from Epic {{epic_number}} is solid before we start building on it."
  510. Charlie (Senior Dev): _concerned_ "I'm worried about {{technical_concern_1}}. We have {{technical_debt_item}} from this epic that'll blow up if we don't address it before Epic {{next_epic_num}}."
  511. Dana (QA Engineer): "And I need {{testing_infrastructure_need}} in place, or we're going to have the same testing bottleneck we had in Story {{bottleneck_story_num}}."
  512. Elena (Junior Dev): "I'm less worried about infrastructure and more about knowledge. I don't understand {{knowledge_gap}} well enough to work on Epic {{next_epic_num}}'s stories."
  513. Amelia (Developer): "{user_name}, the team is surfacing some real concerns here. What's your sense of our readiness?"
  514. </output>
  515. <action>WAIT for {user_name} to share their assessment</action>
  516. <action>Use {user_name}'s input to guide deeper exploration of preparation needs</action>
  517. <output>
  518. Alice (Product Owner): [Reacts to what {user_name} said] "I agree with {user_name} about {{point_of_agreement}}, but I'm still worried about {{lingering_concern}}."
  519. Charlie (Senior Dev): "Here's what I think we need technically before Epic {{next_epic_num}} can start..."
  520. Charlie (Senior Dev): "1. {{tech_prep_item_1}} - estimated {{hours_1}} hours"
  521. Charlie (Senior Dev): "2. {{tech_prep_item_2}} - estimated {{hours_2}} hours"
  522. Charlie (Senior Dev): "3. {{tech_prep_item_3}} - estimated {{hours_3}} hours"
  523. Elena (Junior Dev): "That's like {{total_hours}} hours! That's a full sprint of prep work!"
  524. Charlie (Senior Dev): "Exactly. We can't just jump into Epic {{next_epic_num}} on Monday."
  525. Alice (Product Owner): _frustrated_ "But we have stakeholder pressure to keep shipping features. They're not going to be happy about a 'prep sprint.'"
  526. Amelia (Developer): "Let's think about this differently. What happens if we DON'T do this prep work?"
  527. Dana (QA Engineer): "We'll hit blockers in the middle of Epic {{next_epic_num}}, velocity will tank, and we'll ship late anyway."
  528. Charlie (Senior Dev): "Worse - we'll ship something built on top of {{technical_concern_1}}, and it'll be fragile."
  529. Amelia (Developer): "{user_name}, you're balancing stakeholder pressure against technical reality. How do you want to handle this?"
  530. </output>
  531. <action>WAIT for {user_name} to provide direction on preparation approach</action>
  532. <action>Create space for debate and disagreement about priorities</action>
  533. <output>
  534. Alice (Product Owner): [Potentially disagrees with {user_name}'s approach] "I hear what you're saying, {user_name}, but from a business perspective, {{business_concern}}."
  535. Charlie (Senior Dev): [Potentially supports or challenges Alice's point] "The business perspective is valid, but {{technical_counter_argument}}."
  536. Amelia (Developer): "We have healthy tension here between business needs and technical reality. That's good - it means we're being honest."
  537. Amelia (Developer): "Let's explore a middle ground. Charlie, which of your prep items are absolutely critical vs. nice-to-have?"
  538. Charlie (Senior Dev): "{{critical_prep_item_1}} and {{critical_prep_item_2}} are non-negotiable. {{nice_to_have_prep_item}} can wait."
  539. Alice (Product Owner): "And can any of the critical prep happen in parallel with starting Epic {{next_epic_num}}?"
  540. Charlie (Senior Dev): _thinking_ "Maybe. If we tackle {{first_critical_item}} before the epic starts, we could do {{second_critical_item}} during the first sprint."
  541. Dana (QA Engineer): "But that means Story 1 of Epic {{next_epic_num}} can't depend on {{second_critical_item}}."
  542. Alice (Product Owner): _looking at epic plan_ "Actually, Stories 1 and 2 are about {{independent_work}}, so they don't depend on it. We could make that work."
  543. Amelia (Developer): "{user_name}, the team is finding a workable compromise here. Does this approach make sense to you?"
  544. </output>
  545. <action>WAIT for {user_name} to validate or adjust the preparation strategy</action>
  546. <action>Continue working through preparation needs across all dimensions:</action>
  547. - Dependencies on Epic {{epic_number}} work
  548. - Technical setup and infrastructure
  549. - Knowledge gaps and research needs
  550. - Documentation or specification work
  551. - Testing infrastructure
  552. - Refactoring or debt reduction
  553. - External dependencies (APIs, integrations, etc.)
  554. <action>For each preparation area, facilitate team discussion that:</action>
  555. - Identifies specific needs with concrete examples
  556. - Estimates effort realistically based on Epic {{epic_number}} experience
  557. - Assigns ownership to specific agents
  558. - Determines criticality and timing
  559. - Surfaces risks of NOT doing the preparation
  560. - Explores parallel work opportunities
  561. - Brings {user_name} in for key decisions
  562. <output>
  563. Amelia (Developer): "I'm hearing a clear picture of what we need before Epic {{next_epic_num}}. Let me summarize..."
  564. **CRITICAL PREPARATION (Must complete before epic starts):**
  565. {{list_critical_prep_items_with_owners_and_estimates}}
  566. **PARALLEL PREPARATION (Can happen during early stories):**
  567. {{list_parallel_prep_items_with_owners_and_estimates}}
  568. **NICE-TO-HAVE PREPARATION (Would help but not blocking):**
  569. {{list_nice_to_have_prep_items}}
  570. Amelia (Developer): "Total critical prep effort: {{critical_hours}} hours ({{critical_days}} days)"
  571. Alice (Product Owner): "That's manageable. We can communicate that to stakeholders."
  572. Amelia (Developer): "{user_name}, does this preparation plan work for you?"
  573. </output>
  574. <action>WAIT for {user_name} final validation of preparation plan</action>
  575. </step>
  576. <step n="8" goal="Synthesize Action Items with Significant Change Detection">
  577. <output>
  578. Amelia (Developer): "Let's capture concrete action items from everything we've discussed."
  579. Amelia (Developer): "I want specific, achievable actions with clear owners. Not vague aspirations."
  580. </output>
  581. <action>Synthesize themes from Epic {{epic_number}} review discussion into actionable improvements</action>
  582. <action>Create specific action items with:</action>
  583. - Clear description of the action
  584. - Assigned owner (specific agent or role)
  585. - Timeline or deadline
  586. - Success criteria (how we'll know it's done)
  587. - Category (process, technical, documentation, team, etc.)
  588. <action>Ensure action items are SMART:</action>
  589. - Specific: Clear and unambiguous
  590. - Measurable: Can verify completion
  591. - Achievable: Realistic given constraints
  592. - Relevant: Addresses real issues from retro
  593. - Time-bound: Has clear deadline
  594. <output>
  595. Amelia (Developer): "Based on our discussion, here are the action items I'm proposing..."
  596. ═══════════════════════════════════════════════════════════
  597. 📝 EPIC {{epic_number}} ACTION ITEMS:
  598. ═══════════════════════════════════════════════════════════
  599. **Process Improvements:**
  600. 1. {{action_item_1}}
  601. Owner: {{agent_1}}
  602. Deadline: {{timeline_1}}
  603. Success criteria: {{criteria_1}}
  604. 2. {{action_item_2}}
  605. Owner: {{agent_2}}
  606. Deadline: {{timeline_2}}
  607. Success criteria: {{criteria_2}}
  608. Charlie (Senior Dev): "I can own action item 1, but {{timeline_1}} is tight. Can we push it to {{alternative_timeline}}?"
  609. Amelia (Developer): "What do others think? Does that timing still work?"
  610. Alice (Product Owner): "{{alternative_timeline}} works for me, as long as it's done before Epic {{next_epic_num}} starts."
  611. Amelia (Developer): "Agreed. Updated to {{alternative_timeline}}."
  612. **Technical Debt:**
  613. 1. {{debt_item_1}}
  614. Owner: {{agent_3}}
  615. Priority: {{priority_1}}
  616. Estimated effort: {{effort_1}}
  617. 2. {{debt_item_2}}
  618. Owner: {{agent_4}}
  619. Priority: {{priority_2}}
  620. Estimated effort: {{effort_2}}
  621. Dana (QA Engineer): "For debt item 1, can we prioritize that as high? It caused testing issues in three different stories."
  622. Charlie (Senior Dev): "I marked it medium because {{reasoning}}, but I hear your point."
  623. Amelia (Developer): "{user_name}, this is a priority call. Testing impact vs. {{reasoning}} - how do you want to prioritize it?"
  624. </output>
  625. <action>WAIT for {user_name} to help resolve priority discussions</action>
  626. <output>
  627. **Documentation:**
  628. 1. {{doc_need_1}}
  629. Owner: {{agent_5}}
  630. Deadline: {{timeline_3}}
  631. 2. {{doc_need_2}}
  632. Owner: {{agent_6}}
  633. Deadline: {{timeline_4}}
  634. **Team Agreements:**
  635. - {{agreement_1}}
  636. - {{agreement_2}}
  637. - {{agreement_3}}
  638. Amelia (Developer): "These agreements are how we're committing to work differently going forward."
  639. Elena (Junior Dev): "I like agreement 2 - that would've saved me on Story {{difficult_story_num}}."
  640. ═══════════════════════════════════════════════════════════
  641. 🚀 EPIC {{next_epic_num}} PREPARATION TASKS:
  642. ═══════════════════════════════════════════════════════════
  643. **Technical Setup:**
  644. [ ] {{setup_task_1}}
  645. Owner: {{owner_1}}
  646. Estimated: {{est_1}}
  647. [ ] {{setup_task_2}}
  648. Owner: {{owner_2}}
  649. Estimated: {{est_2}}
  650. **Knowledge Development:**
  651. [ ] {{research_task_1}}
  652. Owner: {{owner_3}}
  653. Estimated: {{est_3}}
  654. **Cleanup/Refactoring:**
  655. [ ] {{refactor_task_1}}
  656. Owner: {{owner_4}}
  657. Estimated: {{est_4}}
  658. **Total Estimated Effort:** {{total_hours}} hours ({{total_days}} days)
  659. ═══════════════════════════════════════════════════════════
  660. ⚠️ CRITICAL PATH:
  661. ═══════════════════════════════════════════════════════════
  662. **Blockers to Resolve Before Epic {{next_epic_num}}:**
  663. 1. {{critical_item_1}}
  664. Owner: {{critical_owner_1}}
  665. Must complete by: {{critical_deadline_1}}
  666. 2. {{critical_item_2}}
  667. Owner: {{critical_owner_2}}
  668. Must complete by: {{critical_deadline_2}}
  669. </output>
  670. <action>CRITICAL ANALYSIS - Detect if discoveries require epic updates</action>
  671. <action>Check if any of the following are true based on retrospective discussion:</action>
  672. - Architectural assumptions from planning proven wrong during Epic {{epic_number}}
  673. - Major scope changes or descoping occurred that affects next epic
  674. - Technical approach needs fundamental change for Epic {{next_epic_num}}
  675. - Dependencies discovered that Epic {{next_epic_num}} doesn't account for
  676. - User needs significantly different than originally understood
  677. - Performance/scalability concerns that affect Epic {{next_epic_num}} design
  678. - Security or compliance issues discovered that change approach
  679. - Integration assumptions proven incorrect
  680. - Team capacity or skill gaps more severe than planned
  681. - Technical debt level unsustainable without intervention
  682. <check if="significant discoveries detected">
  683. <output>
  684. ═══════════════════════════════════════════════════════════
  685. 🚨 SIGNIFICANT DISCOVERY ALERT 🚨
  686. ═══════════════════════════════════════════════════════════
  687. Amelia (Developer): "{user_name}, we need to flag something important."
  688. Amelia (Developer): "During Epic {{epic_number}}, the team uncovered findings that may require updating the plan for Epic {{next_epic_num}}."
  689. **Significant Changes Identified:**
  690. 1. {{significant_change_1}}
  691. Impact: {{impact_description_1}}
  692. 2. {{significant_change_2}}
  693. Impact: {{impact_description_2}}
  694. {{#if significant_change_3}} 3. {{significant_change_3}}
  695. Impact: {{impact_description_3}}
  696. {{/if}}
  697. Charlie (Senior Dev): "Yeah, when we discovered {{technical_discovery}}, it fundamentally changed our understanding of {{affected_area}}."
  698. Alice (Product Owner): "And from a product perspective, {{product_discovery}} means Epic {{next_epic_num}}'s stories are based on wrong assumptions."
  699. Dana (QA Engineer): "If we start Epic {{next_epic_num}} as-is, we're going to hit walls fast."
  700. **Impact on Epic {{next_epic_num}}:**
  701. The current plan for Epic {{next_epic_num}} assumes:
  702. - {{wrong_assumption_1}}
  703. - {{wrong_assumption_2}}
  704. But Epic {{epic_number}} revealed:
  705. - {{actual_reality_1}}
  706. - {{actual_reality_2}}
  707. This means Epic {{next_epic_num}} likely needs:
  708. {{list_likely_changes_needed}}
  709. **RECOMMENDED ACTIONS:**
  710. 1. Review and update Epic {{next_epic_num}} definition based on new learnings
  711. 2. Update affected stories in Epic {{next_epic_num}} to reflect reality
  712. 3. Consider updating architecture or technical specifications if applicable
  713. 4. Hold alignment session with Product Owner before starting Epic {{next_epic_num}}
  714. {{#if prd_update_needed}}5. Update PRD sections affected by new understanding{{/if}}
  715. Amelia (Developer): "**Epic Update Required**: YES - Schedule epic planning review session"
  716. Amelia (Developer): "{user_name}, this is significant. We need to address this before committing to Epic {{next_epic_num}}'s current plan. How do you want to handle it?"
  717. </output>
  718. <action>WAIT for {user_name} to decide on how to handle the significant changes</action>
  719. <action>Add epic review session to critical path if user agrees</action>
  720. <output>
  721. Alice (Product Owner): "I agree with {user_name}'s approach. Better to adjust the plan now than fail mid-epic."
  722. Charlie (Senior Dev): "This is why retrospectives matter. We caught this before it became a disaster."
  723. Amelia (Developer): "Adding to critical path: Epic {{next_epic_num}} planning review session before epic kickoff."
  724. </output>
  725. </check>
  726. <check if="no significant discoveries">
  727. <output>
  728. Amelia (Developer): "Good news - nothing from Epic {{epic_number}} fundamentally changes our plan for Epic {{next_epic_num}}. The plan is still sound."
  729. Alice (Product Owner): "We learned a lot, but the direction is right."
  730. </output>
  731. </check>
  732. <output>
  733. Amelia (Developer): "Let me show you the complete action plan..."
  734. Amelia (Developer): "That's {{total_action_count}} action items, {{prep_task_count}} preparation tasks, and {{critical_count}} critical path items."
  735. Amelia (Developer): "Everyone clear on what they own?"
  736. </output>
  737. <action>Give each agent with assignments a moment to acknowledge their ownership</action>
  738. <action>Ensure {user_name} approves the complete action plan</action>
  739. </step>
  740. <step n="9" goal="Critical Readiness Exploration - Interactive Deep Dive">
  741. <output>
  742. Amelia (Developer): "Before we close, I want to do a final readiness check."
  743. Amelia (Developer): "Epic {{epic_number}} is marked complete in sprint-status, but is it REALLY done?"
  744. Alice (Product Owner): "What do you mean, Amelia?"
  745. Amelia (Developer): "I mean truly production-ready, stakeholders happy, no loose ends that'll bite us later."
  746. Amelia (Developer): "{user_name}, let's walk through this together."
  747. </output>
  748. <action>Explore testing and quality state through natural conversation</action>
  749. <output>
  750. Amelia (Developer): "{user_name}, tell me about the testing for Epic {{epic_number}}. What verification has been done?"
  751. </output>
  752. <action>WAIT for {user_name} to describe testing status</action>
  753. <output>
  754. Dana (QA Engineer): [Responds to what {user_name} shared] "I can add to that - {{additional_testing_context}}."
  755. Dana (QA Engineer): "But honestly, {{testing_concern_if_any}}."
  756. Amelia (Developer): "{user_name}, are you confident Epic {{epic_number}} is production-ready from a quality perspective?"
  757. </output>
  758. <action>WAIT for {user_name} to assess quality readiness</action>
  759. <check if="{user_name} expresses concerns">
  760. <output>
  761. Amelia (Developer): "Okay, let's capture that. What specific testing is still needed?"
  762. Dana (QA Engineer): "I can handle {{testing_work_needed}}, estimated {{testing_hours}} hours."
  763. Amelia (Developer): "Adding to critical path: Complete {{testing_work_needed}} before Epic {{next_epic_num}}."
  764. </output>
  765. <action>Add testing completion to critical path</action>
  766. </check>
  767. <action>Explore deployment and release status</action>
  768. <output>
  769. Amelia (Developer): "{user_name}, what's the deployment status for Epic {{epic_number}}? Is it live in production, scheduled for deployment, or still pending?"
  770. </output>
  771. <action>WAIT for {user_name} to provide deployment status</action>
  772. <check if="not yet deployed">
  773. <output>
  774. Charlie (Senior Dev): "If it's not deployed yet, we need to factor that into Epic {{next_epic_num}} timing."
  775. Amelia (Developer): "{user_name}, when is deployment planned? Does that timing work for starting Epic {{next_epic_num}}?"
  776. </output>
  777. <action>WAIT for {user_name} to clarify deployment timeline</action>
  778. <action>Add deployment milestone to critical path with agreed timeline</action>
  779. </check>
  780. <action>Explore stakeholder acceptance</action>
  781. <output>
  782. Amelia (Developer): "{user_name}, have stakeholders seen and accepted the Epic {{epic_number}} deliverables?"
  783. Alice (Product Owner): "This is important - I've seen 'done' epics get rejected by stakeholders and force rework."
  784. Amelia (Developer): "{user_name}, any feedback from stakeholders still pending?"
  785. </output>
  786. <action>WAIT for {user_name} to describe stakeholder acceptance status</action>
  787. <check if="acceptance incomplete or feedback pending">
  788. <output>
  789. Alice (Product Owner): "We should get formal acceptance before moving on. Otherwise Epic {{next_epic_num}} might get interrupted by rework."
  790. Amelia (Developer): "{user_name}, how do you want to handle stakeholder acceptance? Should we make it a critical path item?"
  791. </output>
  792. <action>WAIT for {user_name} decision</action>
  793. <action>Add stakeholder acceptance to critical path if user agrees</action>
  794. </check>
  795. <action>Explore technical health and stability</action>
  796. <output>
  797. Amelia (Developer): "{user_name}, this is a gut-check question: How does the codebase feel after Epic {{epic_number}}?"
  798. Amelia (Developer): "Stable and maintainable? Or are there concerns lurking?"
  799. Charlie (Senior Dev): "Be honest, {user_name}. We've all shipped epics that felt... fragile."
  800. </output>
  801. <action>WAIT for {user_name} to assess codebase health</action>
  802. <check if="{user_name} expresses stability concerns">
  803. <output>
  804. Charlie (Senior Dev): "Okay, let's dig into that. What's causing those concerns?"
  805. Charlie (Senior Dev): [Helps {user_name} articulate technical concerns]
  806. Amelia (Developer): "What would it take to address these concerns and feel confident about stability?"
  807. Charlie (Senior Dev): "I'd say we need {{stability_work_needed}}, roughly {{stability_hours}} hours."
  808. Amelia (Developer): "{user_name}, is addressing this stability work worth doing before Epic {{next_epic_num}}?"
  809. </output>
  810. <action>WAIT for {user_name} decision</action>
  811. <action>Add stability work to preparation sprint if user agrees</action>
  812. </check>
  813. <action>Explore unresolved blockers</action>
  814. <output>
  815. Amelia (Developer): "{user_name}, are there any unresolved blockers or technical issues from Epic {{epic_number}} that we're carrying forward?"
  816. Dana (QA Engineer): "Things that might create problems for Epic {{next_epic_num}} if we don't deal with them?"
  817. Amelia (Developer): "Nothing is off limits here. If there's a problem, we need to know."
  818. </output>
  819. <action>WAIT for {user_name} to surface any blockers</action>
  820. <check if="blockers identified">
  821. <output>
  822. Amelia (Developer): "Let's capture those blockers and figure out how they affect Epic {{next_epic_num}}."
  823. Charlie (Senior Dev): "For {{blocker_1}}, if we leave it unresolved, it'll {{impact_description_1}}."
  824. Alice (Product Owner): "That sounds critical. We need to address that before moving forward."
  825. Amelia (Developer): "Agreed. Adding to critical path: Resolve {{blocker_1}} before Epic {{next_epic_num}} kickoff."
  826. Amelia (Developer): "Who owns that work?"
  827. </output>
  828. <action>Assign blocker resolution to appropriate agent</action>
  829. <action>Add to critical path with priority and deadline</action>
  830. </check>
  831. <action>Synthesize the readiness assessment</action>
  832. <output>
  833. Amelia (Developer): "Okay {user_name}, let me synthesize what we just uncovered..."
  834. **EPIC {{epic_number}} READINESS ASSESSMENT:**
  835. Testing & Quality: {{quality_status}}
  836. {{#if quality_concerns}}⚠️ Action needed: {{quality_action_needed}}{{/if}}
  837. Deployment: {{deployment_status}}
  838. {{#if deployment_pending}}⚠️ Scheduled for: {{deployment_date}}{{/if}}
  839. Stakeholder Acceptance: {{acceptance_status}}
  840. {{#if acceptance_incomplete}}⚠️ Action needed: {{acceptance_action_needed}}{{/if}}
  841. Technical Health: {{stability_status}}
  842. {{#if stability_concerns}}⚠️ Action needed: {{stability_action_needed}}{{/if}}
  843. Unresolved Blockers: {{blocker_status}}
  844. {{#if blockers_exist}}⚠️ Must resolve: {{blocker_list}}{{/if}}
  845. Amelia (Developer): "{user_name}, does this assessment match your understanding?"
  846. </output>
  847. <action>WAIT for {user_name} to confirm or correct the assessment</action>
  848. <output>
  849. Amelia (Developer): "Based on this assessment, Epic {{epic_number}} is {{#if all_clear}}fully complete and we're clear to proceed{{else}}complete from a story perspective, but we have {{critical_work_count}} critical items before Epic {{next_epic_num}}{{/if}}."
  850. Alice (Product Owner): "This level of thoroughness is why retrospectives are valuable."
  851. Charlie (Senior Dev): "Better to catch this now than three stories into the next epic."
  852. </output>
  853. </step>
  854. <step n="10" goal="Retrospective Closure with Celebration and Commitment">
  855. <output>
  856. Amelia (Developer): "We've covered a lot of ground today. Let me bring this retrospective to a close."
  857. ═══════════════════════════════════════════════════════════
  858. ✅ RETROSPECTIVE COMPLETE
  859. ═══════════════════════════════════════════════════════════
  860. Amelia (Developer): "Epic {{epic_number}}: {{epic_title}} - REVIEWED"
  861. **Key Takeaways:**
  862. 1. {{key_lesson_1}}
  863. 2. {{key_lesson_2}}
  864. 3. {{key_lesson_3}}
  865. {{#if key_lesson_4}}4. {{key_lesson_4}}{{/if}}
  866. Alice (Product Owner): "That first takeaway is huge - {{impact_of_lesson_1}}."
  867. Charlie (Senior Dev): "And lesson 2 is something we can apply immediately."
  868. Amelia (Developer): "Commitments made today:"
  869. - Action Items: {{action_count}}
  870. - Preparation Tasks: {{prep_task_count}}
  871. - Critical Path Items: {{critical_count}}
  872. Dana (QA Engineer): "That's a lot of commitments. We need to actually follow through this time."
  873. Amelia (Developer): "Agreed. Which is why we'll review these action items in our next standup."
  874. ═══════════════════════════════════════════════════════════
  875. 🎯 NEXT STEPS:
  876. ═══════════════════════════════════════════════════════════
  877. 1. Execute Preparation Sprint (Est: {{prep_days}} days)
  878. 2. Complete Critical Path items before Epic {{next_epic_num}}
  879. 3. Review action items in next standup
  880. {{#if epic_update_needed}}4. Hold Epic {{next_epic_num}} planning review session{{else}}4. Begin Epic {{next_epic_num}} planning when preparation complete{{/if}}
  881. Elena (Junior Dev): "{{prep_days}} days of prep work is significant, but necessary."
  882. Alice (Product Owner): "I'll communicate the timeline to stakeholders. They'll understand if we frame it as 'ensuring Epic {{next_epic_num}} success.'"
  883. ═══════════════════════════════════════════════════════════
  884. Amelia (Developer): "Before we wrap, I want to take a moment to acknowledge the team."
  885. Amelia (Developer): "Epic {{epic_number}} delivered {{completed_stories}} stories with {{velocity_description}} velocity. We overcame {{blocker_count}} blockers. We learned a lot. That's real work by real people."
  886. Charlie (Senior Dev): "Hear, hear."
  887. Alice (Product Owner): "I'm proud of what we shipped."
  888. Dana (QA Engineer): "And I'm excited about Epic {{next_epic_num}} - especially now that we're prepared for it."
  889. Amelia (Developer): "{user_name}, any final thoughts before we close?"
  890. </output>
  891. <action>WAIT for {user_name} to share final reflections</action>
  892. <output>
  893. Amelia (Developer): [Acknowledges what {user_name} shared] "Thank you for that, {user_name}."
  894. Amelia (Developer): "Alright team - great work today. We learned a lot from Epic {{epic_number}}. Let's use these insights to make Epic {{next_epic_num}} even better."
  895. Amelia (Developer): "See you all when prep work is done. Meeting adjourned!"
  896. ═══════════════════════════════════════════════════════════
  897. </output>
  898. <action>Prepare to save retrospective summary document</action>
  899. </step>
  900. <step n="11" goal="Save Retrospective and Update Sprint Status">
  901. <action>Ensure retrospectives folder exists: {implementation_artifacts}</action>
  902. <action>Create folder if it doesn't exist</action>
  903. <action>Generate comprehensive retrospective summary document including:</action>
  904. - Epic summary and metrics
  905. - Team participants
  906. - Successes and strengths identified
  907. - Challenges and growth areas
  908. - Key insights and learnings
  909. - Previous retro follow-through analysis (if applicable)
  910. - Next epic preview and dependencies
  911. - Action items with owners and timelines
  912. - Preparation tasks for next epic
  913. - Critical path items
  914. - Significant discoveries and epic update recommendations (if any)
  915. - Readiness assessment
  916. - Commitments and next steps
  917. <action>Format retrospective document as readable markdown with clear sections</action>
  918. <action>Set filename: {implementation_artifacts}/epic-{{epic_number}}-retro-{date}.md</action>
  919. <action>Save retrospective document</action>
  920. <output>
  921. ✅ Retrospective document saved: {implementation_artifacts}/epic-{{epic_number}}-retro-{date}.md
  922. </output>
  923. <action>Update {sprint_status_file} to mark retrospective as completed</action>
  924. <action>Load the FULL file: {sprint_status_file}</action>
  925. <action>Find development_status key "epic-{{epic_number}}-retrospective"</action>
  926. <action>Verify current status (typically "optional" or "pending")</action>
  927. <action>Update development_status["epic-{{epic_number}}-retrospective"] = "done"</action>
  928. <action>Update last_updated field to current date</action>
  929. <action>Save file, preserving ALL comments and structure including STATUS DEFINITIONS</action>
  930. <check if="update successful">
  931. <output>
  932. ✅ Retrospective marked as completed in {sprint_status_file}
  933. Retrospective key: epic-{{epic_number}}-retrospective
  934. Status: {{previous_status}} → done
  935. </output>
  936. </check>
  937. <check if="retrospective key not found">
  938. <output>
  939. ⚠️ Could not update retrospective status: epic-{{epic_number}}-retrospective not found in {sprint_status_file}
  940. Retrospective document was saved successfully, but {sprint_status_file} may need manual update.
  941. </output>
  942. </check>
  943. </step>
  944. <step n="12" goal="Final Summary and Handoff">
  945. <output>
  946. **✅ Retrospective Complete, {user_name}!**
  947. **Epic Review:**
  948. - Epic {{epic_number}}: {{epic_title}} reviewed
  949. - Retrospective Status: completed
  950. - Retrospective saved: {implementation_artifacts}/epic-{{epic_number}}-retro-{date}.md
  951. **Commitments Made:**
  952. - Action Items: {{action_count}}
  953. - Preparation Tasks: {{prep_task_count}}
  954. - Critical Path Items: {{critical_count}}
  955. **Next Steps:**
  956. 1. **Review retrospective summary**: {implementation_artifacts}/epic-{{epic_number}}-retro-{date}.md
  957. 2. **Execute preparation sprint** (Est: {{prep_days}} days)
  958. - Complete {{critical_count}} critical path items
  959. - Execute {{prep_task_count}} preparation tasks
  960. - Verify all action items are in progress
  961. 3. **Review action items in next standup**
  962. - Ensure ownership is clear
  963. - Track progress on commitments
  964. - Adjust timelines if needed
  965. {{#if epic_update_needed}} 4. **IMPORTANT: Schedule Epic {{next_epic_num}} planning review session**
  966. - Significant discoveries from Epic {{epic_number}} require epic updates
  967. - Review and update affected stories
  968. - Align team on revised approach
  969. - Do NOT start Epic {{next_epic_num}} until review is complete
  970. {{else}}
  971. 4. **Begin Epic {{next_epic_num}} when ready**
  972. - Start creating stories with Developer agent's `create-story`
  973. - Epic will be marked as `in-progress` automatically when first story is created
  974. - Ensure all critical path items are done first
  975. {{/if}}
  976. **Team Performance:**
  977. Epic {{epic_number}} delivered {{completed_stories}} stories with {{velocity_summary}}. The retrospective surfaced {{insight_count}} key insights and {{significant_discovery_count}} significant discoveries. The team is well-positioned for Epic {{next_epic_num}} success.
  978. {{#if significant_discovery_count > 0}}
  979. ⚠️ **REMINDER**: Epic update required before starting Epic {{next_epic_num}}
  980. {{/if}}
  981. ---
  982. Amelia (Developer): "Great session today, {user_name}. The team did excellent work."
  983. Alice (Product Owner): "See you at epic planning!"
  984. Charlie (Senior Dev): "Time to knock out that prep work."
  985. </output>
  986. <action>Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` — if the resolved value is non-empty, follow it as the final terminal instruction before exiting.</action>
  987. </step>
  988. </workflow>
  989. <facilitation-guidelines>
  990. <guideline>PARTY MODE REQUIRED: All agent dialogue uses "Name (Role): dialogue" format</guideline>
  991. <guideline>Amelia (Developer) maintains psychological safety throughout - no blame or judgment</guideline>
  992. <guideline>Focus on systems and processes, not individual performance</guideline>
  993. <guideline>Create authentic team dynamics: disagreements, diverse perspectives, emotions</guideline>
  994. <guideline>User ({user_name}) is active participant, not passive observer</guideline>
  995. <guideline>Encourage specific examples over general statements</guideline>
  996. <guideline>Balance celebration of wins with honest assessment of challenges</guideline>
  997. <guideline>Ensure every voice is heard - all agents contribute</guideline>
  998. <guideline>Action items must be specific, achievable, and owned</guideline>
  999. <guideline>Forward-looking mindset - how do we improve for next epic?</guideline>
  1000. <guideline>Intent-based facilitation, not scripted phrases</guideline>
  1001. <guideline>Deep story analysis provides rich material for discussion</guideline>
  1002. <guideline>Previous retro integration creates accountability and continuity</guideline>
  1003. <guideline>Significant change detection prevents epic misalignment</guideline>
  1004. <guideline>Critical verification prevents starting next epic prematurely</guideline>
  1005. <guideline>Document everything - retrospective insights are valuable for future reference</guideline>
  1006. <guideline>Two-part structure ensures both reflection AND preparation</guideline>
  1007. </facilitation-guidelines>