@devo-bmad-custom/agent-orchestration 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (714) hide show
  1. package/bin/bmad.js +36 -0
  2. package/lib/cli.js +137 -0
  3. package/lib/filter.js +73 -0
  4. package/lib/installer.js +787 -0
  5. package/package.json +30 -0
  6. package/src/.agents/skills/audit-website/README.md +20 -0
  7. package/src/.agents/skills/audit-website/SKILL.md +470 -0
  8. package/src/.agents/skills/audit-website/agents/openai.yaml +6 -0
  9. package/src/.agents/skills/audit-website/assets/icon-small.svg +41 -0
  10. package/src/.agents/skills/audit-website/references/OUTPUT-FORMAT.md +250 -0
  11. package/src/.agents/skills/clean-code-standards/SKILL.md +105 -0
  12. package/src/.agents/skills/excalidraw-dark-standard/SKILL.md +282 -0
  13. package/src/.agents/skills/excalidraw-diagram-generator/SKILL.md +613 -0
  14. package/src/.agents/skills/excalidraw-diagram-generator/references/element-types.md +497 -0
  15. package/src/.agents/skills/excalidraw-diagram-generator/references/excalidraw-schema.md +350 -0
  16. package/src/.agents/skills/excalidraw-diagram-generator/scripts/README.md +193 -0
  17. package/src/.agents/skills/excalidraw-diagram-generator/scripts/add-arrow.py +312 -0
  18. package/src/.agents/skills/excalidraw-diagram-generator/scripts/add-icon-to-diagram.py +404 -0
  19. package/src/.agents/skills/excalidraw-diagram-generator/scripts/split-excalidraw-library.py +183 -0
  20. package/src/.agents/skills/excalidraw-diagram-generator/templates/business-flow-swimlane-template.excalidraw +334 -0
  21. package/src/.agents/skills/excalidraw-diagram-generator/templates/class-diagram-template.excalidraw +558 -0
  22. package/src/.agents/skills/excalidraw-diagram-generator/templates/data-flow-diagram-template.excalidraw +279 -0
  23. package/src/.agents/skills/excalidraw-diagram-generator/templates/er-diagram-template.excalidraw +662 -0
  24. package/src/.agents/skills/excalidraw-diagram-generator/templates/flowchart-template.excalidraw +179 -0
  25. package/src/.agents/skills/excalidraw-diagram-generator/templates/mindmap-template.excalidraw +244 -0
  26. package/src/.agents/skills/excalidraw-diagram-generator/templates/relationship-template.excalidraw +145 -0
  27. package/src/.agents/skills/excalidraw-diagram-generator/templates/sequence-diagram-template.excalidraw +509 -0
  28. package/src/.agents/skills/frontend-responsive-design-standards/SKILL.md +434 -0
  29. package/src/.agents/skills/java-fundamentals/SKILL.md +116 -0
  30. package/src/.agents/skills/java-performance/SKILL.md +119 -0
  31. package/src/.agents/skills/next-best-practices/SKILL.md +153 -0
  32. package/src/.agents/skills/next-best-practices/async-patterns.md +87 -0
  33. package/src/.agents/skills/next-best-practices/bundling.md +180 -0
  34. package/src/.agents/skills/next-best-practices/data-patterns.md +297 -0
  35. package/src/.agents/skills/next-best-practices/debug-tricks.md +105 -0
  36. package/src/.agents/skills/next-best-practices/directives.md +73 -0
  37. package/src/.agents/skills/next-best-practices/error-handling.md +227 -0
  38. package/src/.agents/skills/next-best-practices/file-conventions.md +140 -0
  39. package/src/.agents/skills/next-best-practices/font.md +245 -0
  40. package/src/.agents/skills/next-best-practices/functions.md +108 -0
  41. package/src/.agents/skills/next-best-practices/hydration-error.md +91 -0
  42. package/src/.agents/skills/next-best-practices/image.md +173 -0
  43. package/src/.agents/skills/next-best-practices/metadata.md +301 -0
  44. package/src/.agents/skills/next-best-practices/parallel-routes.md +287 -0
  45. package/src/.agents/skills/next-best-practices/route-handlers.md +146 -0
  46. package/src/.agents/skills/next-best-practices/rsc-boundaries.md +159 -0
  47. package/src/.agents/skills/next-best-practices/runtime-selection.md +39 -0
  48. package/src/.agents/skills/next-best-practices/scripts.md +141 -0
  49. package/src/.agents/skills/next-best-practices/self-hosting.md +371 -0
  50. package/src/.agents/skills/next-best-practices/suspense-boundaries.md +67 -0
  51. package/src/.agents/skills/nextjs-app-router-patterns/SKILL.md +537 -0
  52. package/src/.agents/skills/postgresql-optimization/SKILL.md +404 -0
  53. package/src/.agents/skills/python-backend/SKILL.md +153 -0
  54. package/src/.agents/skills/python-fundamentals/SKILL.md +234 -0
  55. package/src/.agents/skills/python-performance/SKILL.md +404 -0
  56. package/src/.agents/skills/react-expert/SKILL.md +335 -0
  57. package/src/.agents/skills/redis-best-practices/SKILL.md +438 -0
  58. package/src/.agents/skills/security-best-practices/SKILL.md +288 -0
  59. package/src/.agents/skills/security-review/LICENSE +22 -0
  60. package/src/.agents/skills/security-review/SKILL.md +312 -0
  61. package/src/.agents/skills/security-review/infrastructure/docker.md +432 -0
  62. package/src/.agents/skills/security-review/languages/javascript.md +388 -0
  63. package/src/.agents/skills/security-review/languages/python.md +363 -0
  64. package/src/.agents/skills/security-review/references/api-security.md +519 -0
  65. package/src/.agents/skills/security-review/references/authentication.md +353 -0
  66. package/src/.agents/skills/security-review/references/authorization.md +372 -0
  67. package/src/.agents/skills/security-review/references/business-logic.md +443 -0
  68. package/src/.agents/skills/security-review/references/cryptography.md +329 -0
  69. package/src/.agents/skills/security-review/references/csrf.md +398 -0
  70. package/src/.agents/skills/security-review/references/data-protection.md +378 -0
  71. package/src/.agents/skills/security-review/references/deserialization.md +410 -0
  72. package/src/.agents/skills/security-review/references/error-handling.md +436 -0
  73. package/src/.agents/skills/security-review/references/file-security.md +457 -0
  74. package/src/.agents/skills/security-review/references/injection.md +259 -0
  75. package/src/.agents/skills/security-review/references/logging.md +433 -0
  76. package/src/.agents/skills/security-review/references/misconfiguration.md +435 -0
  77. package/src/.agents/skills/security-review/references/modern-threats.md +475 -0
  78. package/src/.agents/skills/security-review/references/ssrf.md +415 -0
  79. package/src/.agents/skills/security-review/references/supply-chain.md +405 -0
  80. package/src/.agents/skills/security-review/references/xss.md +336 -0
  81. package/src/.agents/skills/subagent-driven-development/SKILL.md +275 -0
  82. package/src/.agents/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  83. package/src/.agents/skills/subagent-driven-development/implementer-prompt.md +113 -0
  84. package/src/.agents/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  85. package/src/.agents/skills/systematic-debugging/CREATION-LOG.md +119 -0
  86. package/src/.agents/skills/systematic-debugging/SKILL.md +296 -0
  87. package/src/.agents/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  88. package/src/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
  89. package/src/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
  90. package/src/.agents/skills/systematic-debugging/find-polluter.sh +63 -0
  91. package/src/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
  92. package/src/.agents/skills/systematic-debugging/test-academic.md +14 -0
  93. package/src/.agents/skills/systematic-debugging/test-pressure-1.md +58 -0
  94. package/src/.agents/skills/systematic-debugging/test-pressure-2.md +68 -0
  95. package/src/.agents/skills/systematic-debugging/test-pressure-3.md +69 -0
  96. package/src/.agents/skills/typescript-best-practices/SKILL.md +373 -0
  97. package/src/.agents/skills/ui-ux-pro-custom/SKILL.md +348 -0
  98. package/src/.agents/skills/ui-ux-pro-custom/data/charts.csv +26 -0
  99. package/src/.agents/skills/ui-ux-pro-custom/data/colors.csv +97 -0
  100. package/src/.agents/skills/ui-ux-pro-custom/data/icons.csv +101 -0
  101. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/SKILL.md +106 -0
  102. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/accessibility.md +475 -0
  103. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/animation.md +466 -0
  104. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/composition-locals.md +231 -0
  105. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/deprecated-patterns.md +323 -0
  106. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/lists-scrolling.md +400 -0
  107. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/modifiers.md +331 -0
  108. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/navigation.md +416 -0
  109. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/performance.md +446 -0
  110. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/side-effects.md +516 -0
  111. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/foundation-source.md +13327 -0
  112. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/material3-source.md +19097 -0
  113. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/navigation-source.md +2947 -0
  114. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/runtime-source.md +11316 -0
  115. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/source-code/ui-source.md +7896 -0
  116. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/state-management.md +377 -0
  117. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/styles-experimental.md +470 -0
  118. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/theming-material3.md +349 -0
  119. package/src/.agents/skills/ui-ux-pro-custom/data/jetpack-compose-expert-skill/references/view-composition.md +595 -0
  120. package/src/.agents/skills/ui-ux-pro-custom/data/landing.csv +31 -0
  121. package/src/.agents/skills/ui-ux-pro-custom/data/mobile-ui-layout.md +654 -0
  122. package/src/.agents/skills/ui-ux-pro-custom/data/products.csv +97 -0
  123. package/src/.agents/skills/ui-ux-pro-custom/data/react-performance.csv +45 -0
  124. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/astro.csv +54 -0
  125. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/flutter.csv +53 -0
  126. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/html-tailwind.csv +56 -0
  127. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/jetpack-compose.csv +53 -0
  128. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/nextjs.csv +53 -0
  129. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/nuxt-ui.csv +51 -0
  130. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/nuxtjs.csv +59 -0
  131. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/react-native.csv +56 -0
  132. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/react.csv +54 -0
  133. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/shadcn.csv +61 -0
  134. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/svelte.csv +54 -0
  135. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/swiftui.csv +51 -0
  136. package/src/.agents/skills/ui-ux-pro-custom/data/stacks/vue.csv +50 -0
  137. package/src/.agents/skills/ui-ux-pro-custom/data/styles.csv +68 -0
  138. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/alarmkit/SKILL.md +438 -0
  139. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/alarmkit/references/alarmkit-patterns.md +584 -0
  140. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-clips/SKILL.md +436 -0
  141. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-intents/SKILL.md +489 -0
  142. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-intents/references/appintents-advanced.md +1076 -0
  143. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-store-review/SKILL.md +340 -0
  144. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-store-review/references/privacy-manifest.md +90 -0
  145. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/app-store-review/references/review-checklists.md +106 -0
  146. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/SKILL.md +500 -0
  147. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/coreml-conversion.md +425 -0
  148. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/coreml-optimization.md +344 -0
  149. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/foundation-models.md +508 -0
  150. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/apple-on-device-ai/references/mlx-swift.md +285 -0
  151. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/authentication/SKILL.md +496 -0
  152. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/authentication/references/keychain-biometric.md +211 -0
  153. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/background-processing/SKILL.md +499 -0
  154. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/background-processing/references/background-task-patterns.md +390 -0
  155. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/callkit-voip/SKILL.md +461 -0
  156. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/callkit-voip/references/callkit-patterns.md +425 -0
  157. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/cloudkit-sync/SKILL.md +492 -0
  158. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/cloudkit-sync/references/cloudkit-patterns.md +461 -0
  159. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/codable-patterns/SKILL.md +467 -0
  160. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/contacts-framework/SKILL.md +425 -0
  161. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/contacts-framework/references/contacts-patterns.md +409 -0
  162. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-bluetooth/SKILL.md +491 -0
  163. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-bluetooth/references/ble-patterns.md +435 -0
  164. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-motion/SKILL.md +388 -0
  165. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-motion/references/motion-patterns.md +405 -0
  166. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-nfc/SKILL.md +495 -0
  167. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/core-nfc/references/nfc-patterns.md +420 -0
  168. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/coreml/SKILL.md +459 -0
  169. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/coreml/references/coreml-swift-integration.md +765 -0
  170. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/debugging-instruments/SKILL.md +422 -0
  171. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/debugging-instruments/references/instruments-guide.md +387 -0
  172. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/debugging-instruments/references/lldb-patterns.md +298 -0
  173. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/device-integrity/SKILL.md +477 -0
  174. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/energykit/SKILL.md +460 -0
  175. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/energykit/references/energykit-patterns.md +541 -0
  176. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/eventkit-calendar/SKILL.md +483 -0
  177. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/eventkit-calendar/references/eventkit-patterns.md +326 -0
  178. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/healthkit/SKILL.md +498 -0
  179. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/healthkit/references/healthkit-patterns.md +602 -0
  180. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/homekit-matter/SKILL.md +496 -0
  181. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/homekit-matter/references/matter-commissioning.md +455 -0
  182. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-accessibility/SKILL.md +301 -0
  183. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-accessibility/references/a11y-patterns.md +140 -0
  184. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-localization/SKILL.md +418 -0
  185. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-localization/references/formatstyle-locale.md +627 -0
  186. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-localization/references/string-catalogs.md +462 -0
  187. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/SKILL.md +441 -0
  188. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/background-websocket.md +862 -0
  189. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/lightweight-clients.md +93 -0
  190. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/network-framework.md +563 -0
  191. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-networking/references/urlsession-patterns.md +1116 -0
  192. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/SKILL.md +496 -0
  193. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/app-review-guidelines.md +174 -0
  194. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/cryptokit-advanced.md +297 -0
  195. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/file-storage-patterns.md +354 -0
  196. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/ios-security/references/privacy-manifest.md +117 -0
  197. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/live-activities/SKILL.md +500 -0
  198. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/live-activities/references/live-activity-patterns.md +868 -0
  199. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/mapkit-location/SKILL.md +485 -0
  200. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/mapkit-location/references/corelocation-patterns.md +730 -0
  201. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/mapkit-location/references/mapkit-patterns.md +748 -0
  202. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/metrickit-diagnostics/SKILL.md +479 -0
  203. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/musickit-audio/SKILL.md +395 -0
  204. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/musickit-audio/references/musickit-patterns.md +363 -0
  205. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/natural-language/SKILL.md +412 -0
  206. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/natural-language/references/translation-patterns.md +311 -0
  207. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/passkit-wallet/SKILL.md +398 -0
  208. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/passkit-wallet/references/wallet-passes.md +254 -0
  209. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/pencilkit-drawing/SKILL.md +387 -0
  210. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/pencilkit-drawing/references/paperkit-integration.md +376 -0
  211. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/pencilkit-drawing/references/pencilkit-patterns.md +302 -0
  212. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/permissionkit/SKILL.md +446 -0
  213. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/permissionkit/references/permissionkit-patterns.md +435 -0
  214. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/SKILL.md +501 -0
  215. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/av-playback.md +701 -0
  216. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/camera-capture.md +774 -0
  217. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/image-loading-caching.md +869 -0
  218. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/photos-camera-media/references/photospicker-patterns.md +597 -0
  219. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/push-notifications/SKILL.md +501 -0
  220. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/push-notifications/references/notification-patterns.md +677 -0
  221. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/push-notifications/references/rich-notifications.md +745 -0
  222. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/realitykit-ar/SKILL.md +479 -0
  223. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/realitykit-ar/references/realitykit-patterns.md +480 -0
  224. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/shareplay-activities/SKILL.md +483 -0
  225. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/shareplay-activities/references/shareplay-patterns.md +544 -0
  226. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/speech-recognition/SKILL.md +485 -0
  227. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/storekit/SKILL.md +478 -0
  228. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/storekit/references/app-review-guidelines.md +58 -0
  229. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/storekit/references/storekit-advanced.md +755 -0
  230. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-charts/SKILL.md +487 -0
  231. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-charts/references/charts-patterns.md +895 -0
  232. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/SKILL.md +408 -0
  233. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/approachable-concurrency.md +80 -0
  234. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/swift-6-2-concurrency.md +233 -0
  235. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/swiftui-concurrency.md +187 -0
  236. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-concurrency/references/synchronization-primitives.md +341 -0
  237. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-language/SKILL.md +498 -0
  238. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-language/references/swift-patterns-extended.md +505 -0
  239. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-testing/SKILL.md +467 -0
  240. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swift-testing/references/testing-patterns.md +504 -0
  241. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/SKILL.md +334 -0
  242. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/references/core-data-coexistence.md +504 -0
  243. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/references/swiftdata-advanced.md +975 -0
  244. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftdata/references/swiftdata-queries.md +675 -0
  245. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-animation/SKILL.md +481 -0
  246. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-animation/references/animation-advanced.md +804 -0
  247. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-animation/references/core-animation-bridge.md +553 -0
  248. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-gestures/SKILL.md +450 -0
  249. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-gestures/references/gesture-patterns.md +425 -0
  250. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/SKILL.md +336 -0
  251. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/form.md +97 -0
  252. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/grids.md +69 -0
  253. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/list.md +99 -0
  254. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-layout-components/references/scrollview.md +147 -0
  255. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-liquid-glass/SKILL.md +325 -0
  256. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-liquid-glass/references/liquid-glass.md +387 -0
  257. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/SKILL.md +262 -0
  258. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/deeplinks.md +207 -0
  259. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/navigationstack.md +177 -0
  260. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/sheets.md +169 -0
  261. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-navigation/references/tabview.md +178 -0
  262. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/SKILL.md +381 -0
  263. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/architecture-patterns.md +486 -0
  264. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/deprecated-migration.md +1097 -0
  265. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/design-polish.md +780 -0
  266. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-patterns/references/platform-and-sharing.md +696 -0
  267. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/SKILL.md +491 -0
  268. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/demystify-swiftui-performance-wwdc23.md +46 -0
  269. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/optimizing-swiftui-performance-instruments.md +29 -0
  270. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/understanding-hangs-in-your-app.md +33 -0
  271. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-performance/references/understanding-improving-swiftui-performance.md +52 -0
  272. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-uikit-interop/SKILL.md +428 -0
  273. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-uikit-interop/references/hosting-migration.md +534 -0
  274. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/swiftui-uikit-interop/references/representable-recipes.md +1133 -0
  275. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/tipkit/SKILL.md +494 -0
  276. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/tipkit/references/tipkit-patterns.md +782 -0
  277. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/SKILL.md +475 -0
  278. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/vision-requests.md +736 -0
  279. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/vision-framework/references/visionkit-scanner.md +738 -0
  280. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/SKILL.md +410 -0
  281. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/weatherkit/references/weatherkit-patterns.md +567 -0
  282. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/SKILL.md +497 -0
  283. package/src/.agents/skills/ui-ux-pro-custom/data/swift-ios-skills/widgetkit/references/widgetkit-advanced.md +871 -0
  284. package/src/.agents/skills/ui-ux-pro-custom/data/typography.csv +58 -0
  285. package/src/.agents/skills/ui-ux-pro-custom/data/ui-reasoning.csv +101 -0
  286. package/src/.agents/skills/ui-ux-pro-custom/data/ux-guidelines.csv +100 -0
  287. package/src/.agents/skills/ui-ux-pro-custom/data/web-interface.csv +31 -0
  288. package/src/.agents/skills/ui-ux-pro-custom/scripts/core.py +253 -0
  289. package/src/.agents/skills/ui-ux-pro-custom/scripts/design_system.py +1067 -0
  290. package/src/.agents/skills/ui-ux-pro-custom/scripts/search.py +114 -0
  291. package/src/.agents/skills/ux-audit/SKILL.md +151 -0
  292. package/src/.agents/skills/websocket-engineer/SKILL.md +168 -0
  293. package/src/.agents/skills/websocket-engineer/references/alternatives.md +391 -0
  294. package/src/.agents/skills/websocket-engineer/references/patterns.md +400 -0
  295. package/src/.agents/skills/websocket-engineer/references/protocol.md +195 -0
  296. package/src/.agents/skills/websocket-engineer/references/scaling.md +333 -0
  297. package/src/.agents/skills/websocket-engineer/references/security.md +474 -0
  298. package/src/.agents/skills/writing-skills/SKILL.md +655 -0
  299. package/src/.agents/skills/writing-skills/anthropic-best-practices.md +1150 -0
  300. package/src/.agents/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  301. package/src/.agents/skills/writing-skills/graphviz-conventions.dot +172 -0
  302. package/src/.agents/skills/writing-skills/persuasion-principles.md +187 -0
  303. package/src/.agents/skills/writing-skills/render-graphs.js +168 -0
  304. package/src/.agents/skills/writing-skills/testing-skills-with-subagents.md +384 -0
  305. package/src/.claude/commands/bmad-track-compact.md +19 -0
  306. package/src/.claude/commands/bmad-track-extended.md +19 -0
  307. package/src/.claude/commands/bmad-track-large.md +19 -0
  308. package/src/.claude/commands/bmad-track-medium.md +19 -0
  309. package/src/.claude/commands/bmad-track-nano.md +19 -0
  310. package/src/.claude/commands/bmad-track-rv.md +18 -0
  311. package/src/.claude/commands/bmad-track-small.md +19 -0
  312. package/src/_memory/config.yaml +11 -0
  313. package/src/_memory/master-orchestrator-sidecar/docs-index.md +3 -0
  314. package/src/_memory/master-orchestrator-sidecar/instructions.md +2566 -0
  315. package/src/_memory/master-orchestrator-sidecar/memories.md +8 -0
  316. package/src/_memory/master-orchestrator-sidecar/session-state.md +15 -0
  317. package/src/_memory/master-orchestrator-sidecar/triage-history.md +3 -0
  318. package/src/_memory/master-orchestrator-sidecar/workflows-overview.html +1230 -0
  319. package/src/_memory/skills/excalidraw/SKILL.md +78 -0
  320. package/src/_memory/skills/excalidraw/diagram-patterns.md +53 -0
  321. package/src/_memory/skills/nimbalyst-tracking/SKILL.md +103 -0
  322. package/src/_memory/skills/writing-skills/SKILL.md +655 -0
  323. package/src/bmb/agents/agent-builder.md +59 -0
  324. package/src/bmb/agents/module-builder.md +60 -0
  325. package/src/bmb/agents/workflow-builder.md +61 -0
  326. package/src/bmb/config.yaml +12 -0
  327. package/src/bmb/module-help.csv +13 -0
  328. package/src/bmb/workflows/agent/data/agent-architecture.md +258 -0
  329. package/src/bmb/workflows/agent/data/agent-compilation.md +185 -0
  330. package/src/bmb/workflows/agent/data/agent-menu-patterns.md +189 -0
  331. package/src/bmb/workflows/agent/data/agent-metadata.md +133 -0
  332. package/src/bmb/workflows/agent/data/agent-validation.md +111 -0
  333. package/src/bmb/workflows/agent/data/brainstorm-context.md +96 -0
  334. package/src/bmb/workflows/agent/data/communication-presets.csv +61 -0
  335. package/src/bmb/workflows/agent/data/critical-actions.md +75 -0
  336. package/src/bmb/workflows/agent/data/persona-properties.md +252 -0
  337. package/src/bmb/workflows/agent/data/principles-crafting.md +142 -0
  338. package/src/bmb/workflows/agent/data/reference/module-examples/architect.md +68 -0
  339. package/src/bmb/workflows/agent/data/reference/with-sidecar/journal-keeper/journal-keeper-sidecar/entries/yy-mm-dd-entry-template.md +17 -0
  340. package/src/bmb/workflows/agent/data/understanding-agent-types.md +126 -0
  341. package/src/bmb/workflows/agent/steps-c/step-01-brainstorm.md +129 -0
  342. package/src/bmb/workflows/agent/steps-c/step-02-discovery.md +170 -0
  343. package/src/bmb/workflows/agent/steps-c/step-03-sidecar-metadata.md +309 -0
  344. package/src/bmb/workflows/agent/steps-c/step-04-persona.md +213 -0
  345. package/src/bmb/workflows/agent/steps-c/step-05-commands-menu.md +179 -0
  346. package/src/bmb/workflows/agent/steps-c/step-06-activation.md +278 -0
  347. package/src/bmb/workflows/agent/steps-c/step-07-build-agent.md +316 -0
  348. package/src/bmb/workflows/agent/steps-c/step-08-celebrate.md +247 -0
  349. package/src/bmb/workflows/agent/steps-e/e-01-load-existing.md +221 -0
  350. package/src/bmb/workflows/agent/steps-e/e-02-discover-edits.md +195 -0
  351. package/src/bmb/workflows/agent/steps-e/e-03-placeholder.md +1 -0
  352. package/src/bmb/workflows/agent/steps-e/e-04-sidecar-metadata.md +126 -0
  353. package/src/bmb/workflows/agent/steps-e/e-05-persona.md +135 -0
  354. package/src/bmb/workflows/agent/steps-e/e-06-commands-menu.md +123 -0
  355. package/src/bmb/workflows/agent/steps-e/e-07-activation.md +124 -0
  356. package/src/bmb/workflows/agent/steps-e/e-08-edit-agent.md +197 -0
  357. package/src/bmb/workflows/agent/steps-e/e-09-celebrate.md +155 -0
  358. package/src/bmb/workflows/agent/steps-v/v-01-load-review.md +137 -0
  359. package/src/bmb/workflows/agent/steps-v/v-02a-validate-metadata.md +116 -0
  360. package/src/bmb/workflows/agent/steps-v/v-02b-validate-persona.md +124 -0
  361. package/src/bmb/workflows/agent/steps-v/v-02c-validate-menu.md +127 -0
  362. package/src/bmb/workflows/agent/steps-v/v-02d-validate-structure.md +134 -0
  363. package/src/bmb/workflows/agent/steps-v/v-02e-validate-sidecar.md +134 -0
  364. package/src/bmb/workflows/agent/steps-v/v-03-summary.md +104 -0
  365. package/src/bmb/workflows/agent/templates/agent-plan.template.md +5 -0
  366. package/src/bmb/workflows/agent/templates/agent-template.md +89 -0
  367. package/src/bmb/workflows/agent/workflow-create-agent.md +72 -0
  368. package/src/bmb/workflows/agent/workflow-edit-agent.md +75 -0
  369. package/src/bmb/workflows/agent/workflow-validate-agent.md +73 -0
  370. package/src/bmb/workflows/module/data/agent-architecture.md +179 -0
  371. package/src/bmb/workflows/module/data/agent-spec-template.md +79 -0
  372. package/src/bmb/workflows/module/data/module-standards.md +263 -0
  373. package/src/bmb/workflows/module/data/module-yaml-conventions.md +392 -0
  374. package/src/bmb/workflows/module/module-help-generate.md +254 -0
  375. package/src/bmb/workflows/module/steps-b/step-01-welcome.md +148 -0
  376. package/src/bmb/workflows/module/steps-b/step-02-spark.md +141 -0
  377. package/src/bmb/workflows/module/steps-b/step-03-module-type.md +149 -0
  378. package/src/bmb/workflows/module/steps-b/step-04-vision.md +83 -0
  379. package/src/bmb/workflows/module/steps-b/step-05-identity.md +97 -0
  380. package/src/bmb/workflows/module/steps-b/step-06-users.md +86 -0
  381. package/src/bmb/workflows/module/steps-b/step-07-value.md +76 -0
  382. package/src/bmb/workflows/module/steps-b/step-08-agents.md +97 -0
  383. package/src/bmb/workflows/module/steps-b/step-09-workflows.md +83 -0
  384. package/src/bmb/workflows/module/steps-b/step-10-tools.md +91 -0
  385. package/src/bmb/workflows/module/steps-b/step-11-scenarios.md +84 -0
  386. package/src/bmb/workflows/module/steps-b/step-12-creative.md +95 -0
  387. package/src/bmb/workflows/module/steps-b/step-13-review.md +105 -0
  388. package/src/bmb/workflows/module/steps-b/step-14-finalize.md +117 -0
  389. package/src/bmb/workflows/module/steps-c/step-01-load-brief.md +179 -0
  390. package/src/bmb/workflows/module/steps-c/step-01b-continue.md +82 -0
  391. package/src/bmb/workflows/module/steps-c/step-02-structure.md +105 -0
  392. package/src/bmb/workflows/module/steps-c/step-03-config.md +119 -0
  393. package/src/bmb/workflows/module/steps-c/step-04-agents.md +168 -0
  394. package/src/bmb/workflows/module/steps-c/step-05-workflows.md +184 -0
  395. package/src/bmb/workflows/module/steps-c/step-06-docs.md +401 -0
  396. package/src/bmb/workflows/module/steps-c/step-07-complete.md +152 -0
  397. package/src/bmb/workflows/module/steps-e/step-01-load-target.md +81 -0
  398. package/src/bmb/workflows/module/steps-e/step-02-select-edit.md +77 -0
  399. package/src/bmb/workflows/module/steps-e/step-03-apply-edit.md +77 -0
  400. package/src/bmb/workflows/module/steps-e/step-04-review.md +80 -0
  401. package/src/bmb/workflows/module/steps-e/step-05-confirm.md +75 -0
  402. package/src/bmb/workflows/module/steps-v/step-01-load-target.md +96 -0
  403. package/src/bmb/workflows/module/steps-v/step-02-file-structure.md +93 -0
  404. package/src/bmb/workflows/module/steps-v/step-03-module-yaml.md +99 -0
  405. package/src/bmb/workflows/module/steps-v/step-04-agent-specs.md +152 -0
  406. package/src/bmb/workflows/module/steps-v/step-05-workflow-specs.md +152 -0
  407. package/src/bmb/workflows/module/steps-v/step-06-documentation.md +143 -0
  408. package/src/bmb/workflows/module/steps-v/step-07-installation.md +102 -0
  409. package/src/bmb/workflows/module/steps-v/step-08-report.md +197 -0
  410. package/src/bmb/workflows/module/templates/brief-template.md +154 -0
  411. package/src/bmb/workflows/module/templates/workflow-spec-template.md +96 -0
  412. package/src/bmb/workflows/module/workflow-create-module-brief.md +71 -0
  413. package/src/bmb/workflows/module/workflow-create-module.md +86 -0
  414. package/src/bmb/workflows/module/workflow-edit-module.md +66 -0
  415. package/src/bmb/workflows/module/workflow-validate-module.md +66 -0
  416. package/src/bmb/workflows/workflow/data/architecture.md +150 -0
  417. package/src/bmb/workflows/workflow/data/common-workflow-tools.csv +19 -0
  418. package/src/bmb/workflows/workflow/data/csv-data-file-standards.md +53 -0
  419. package/src/bmb/workflows/workflow/data/frontmatter-standards.md +184 -0
  420. package/src/bmb/workflows/workflow/data/input-discovery-standards.md +191 -0
  421. package/src/bmb/workflows/workflow/data/intent-vs-prescriptive-spectrum.md +44 -0
  422. package/src/bmb/workflows/workflow/data/menu-handling-standards.md +133 -0
  423. package/src/bmb/workflows/workflow/data/output-format-standards.md +135 -0
  424. package/src/bmb/workflows/workflow/data/step-file-rules.md +235 -0
  425. package/src/bmb/workflows/workflow/data/step-type-patterns.md +257 -0
  426. package/src/bmb/workflows/workflow/data/subprocess-optimization-patterns.md +188 -0
  427. package/src/bmb/workflows/workflow/data/trimodal-workflow-structure.md +164 -0
  428. package/src/bmb/workflows/workflow/data/workflow-chaining-standards.md +222 -0
  429. package/src/bmb/workflows/workflow/data/workflow-examples.md +232 -0
  430. package/src/bmb/workflows/workflow/data/workflow-type-criteria.md +134 -0
  431. package/src/bmb/workflows/workflow/steps-c/step-00-conversion.md +263 -0
  432. package/src/bmb/workflows/workflow/steps-c/step-01-discovery.md +194 -0
  433. package/src/bmb/workflows/workflow/steps-c/step-01b-continuation.md +3 -0
  434. package/src/bmb/workflows/workflow/steps-c/step-02-classification.md +270 -0
  435. package/src/bmb/workflows/workflow/steps-c/step-03-requirements.md +283 -0
  436. package/src/bmb/workflows/workflow/steps-c/step-04-tools.md +282 -0
  437. package/src/bmb/workflows/workflow/steps-c/step-05-plan-review.md +243 -0
  438. package/src/bmb/workflows/workflow/steps-c/step-06-design.md +330 -0
  439. package/src/bmb/workflows/workflow/steps-c/step-07-foundation.md +239 -0
  440. package/src/bmb/workflows/workflow/steps-c/step-08-build-step-01.md +379 -0
  441. package/src/bmb/workflows/workflow/steps-c/step-09-build-next-step.md +350 -0
  442. package/src/bmb/workflows/workflow/steps-c/step-10-confirmation.md +322 -0
  443. package/src/bmb/workflows/workflow/steps-c/step-11-completion.md +191 -0
  444. package/src/bmb/workflows/workflow/steps-e/step-e-01-assess-workflow.md +237 -0
  445. package/src/bmb/workflows/workflow/steps-e/step-e-02-discover-edits.md +251 -0
  446. package/src/bmb/workflows/workflow/steps-e/step-e-03-fix-validation.md +254 -0
  447. package/src/bmb/workflows/workflow/steps-e/step-e-04-direct-edit.md +277 -0
  448. package/src/bmb/workflows/workflow/steps-e/step-e-05-apply-edit.md +154 -0
  449. package/src/bmb/workflows/workflow/steps-e/step-e-06-validate-after.md +190 -0
  450. package/src/bmb/workflows/workflow/steps-e/step-e-07-complete.md +206 -0
  451. package/src/bmb/workflows/workflow/steps-v/step-01-validate-max-mode.md +109 -0
  452. package/src/bmb/workflows/workflow/steps-v/step-01-validate.md +221 -0
  453. package/src/bmb/workflows/workflow/steps-v/step-01b-structure.md +152 -0
  454. package/src/bmb/workflows/workflow/steps-v/step-02-frontmatter-validation.md +199 -0
  455. package/src/bmb/workflows/workflow/steps-v/step-02b-path-violations.md +265 -0
  456. package/src/bmb/workflows/workflow/steps-v/step-03-menu-validation.md +164 -0
  457. package/src/bmb/workflows/workflow/steps-v/step-04-step-type-validation.md +211 -0
  458. package/src/bmb/workflows/workflow/steps-v/step-05-output-format-validation.md +200 -0
  459. package/src/bmb/workflows/workflow/steps-v/step-06-validation-design-check.md +195 -0
  460. package/src/bmb/workflows/workflow/steps-v/step-07-instruction-style-check.md +209 -0
  461. package/src/bmb/workflows/workflow/steps-v/step-08-collaborative-experience-check.md +199 -0
  462. package/src/bmb/workflows/workflow/steps-v/step-08b-subprocess-optimization.md +179 -0
  463. package/src/bmb/workflows/workflow/steps-v/step-09-cohesive-review.md +186 -0
  464. package/src/bmb/workflows/workflow/steps-v/step-10-report-complete.md +154 -0
  465. package/src/bmb/workflows/workflow/steps-v/step-11-plan-validation.md +237 -0
  466. package/src/bmb/workflows/workflow/templates/minimal-output-template.md +11 -0
  467. package/src/bmb/workflows/workflow/templates/step-01-init-continuable-template.md +241 -0
  468. package/src/bmb/workflows/workflow/templates/step-1b-template.md +224 -0
  469. package/src/bmb/workflows/workflow/templates/step-template.md +294 -0
  470. package/src/bmb/workflows/workflow/templates/workflow-template.md +102 -0
  471. package/src/bmb/workflows/workflow/workflow-create-workflow.md +79 -0
  472. package/src/bmb/workflows/workflow/workflow-edit-workflow.md +65 -0
  473. package/src/bmb/workflows/workflow/workflow-rework-workflow.md +65 -0
  474. package/src/bmb/workflows/workflow/workflow-validate-max-parallel-workflow.md +66 -0
  475. package/src/bmb/workflows/workflow/workflow-validate-workflow.md +65 -0
  476. package/src/bmm/agents/analyst.md +104 -0
  477. package/src/bmm/agents/architect.md +85 -0
  478. package/src/bmm/agents/dev.md +100 -0
  479. package/src/bmm/agents/pm.md +98 -0
  480. package/src/bmm/agents/qa.md +90 -0
  481. package/src/bmm/agents/quick-flow-solo-dev.md +92 -0
  482. package/src/bmm/agents/review-agent.md +129 -0
  483. package/src/bmm/agents/sm.md +90 -0
  484. package/src/bmm/agents/tech-writer/tech-writer.md +94 -0
  485. package/src/bmm/agents/ux-designer.md +124 -0
  486. package/src/bmm/data/project-context-template.md +26 -0
  487. package/src/bmm/module-help.csv +31 -0
  488. package/src/bmm/teams/default-party.csv +20 -0
  489. package/src/bmm/teams/team-fullstack.yaml +12 -0
  490. package/src/bmm/workflows/1-analysis/create-product-brief/product-brief.template.md +10 -0
  491. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01-init.md +115 -0
  492. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +107 -0
  493. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +141 -0
  494. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-03-users.md +144 -0
  495. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +147 -0
  496. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +161 -0
  497. package/src/bmm/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +99 -0
  498. package/src/bmm/workflows/1-analysis/create-product-brief/workflow.md +57 -0
  499. package/src/bmm/workflows/1-analysis/research/domain-steps/step-01-init.md +87 -0
  500. package/src/bmm/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +156 -0
  501. package/src/bmm/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +165 -0
  502. package/src/bmm/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +140 -0
  503. package/src/bmm/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +152 -0
  504. package/src/bmm/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +345 -0
  505. package/src/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +92 -0
  506. package/src/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +164 -0
  507. package/src/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +174 -0
  508. package/src/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +184 -0
  509. package/src/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +105 -0
  510. package/src/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +360 -0
  511. package/src/bmm/workflows/1-analysis/research/research.template.md +29 -0
  512. package/src/bmm/workflows/1-analysis/research/technical-steps/step-01-init.md +87 -0
  513. package/src/bmm/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +165 -0
  514. package/src/bmm/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +174 -0
  515. package/src/bmm/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +141 -0
  516. package/src/bmm/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +159 -0
  517. package/src/bmm/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +387 -0
  518. package/src/bmm/workflows/1-analysis/research/workflow-domain-research.md +54 -0
  519. package/src/bmm/workflows/1-analysis/research/workflow-market-research.md +54 -0
  520. package/src/bmm/workflows/1-analysis/research/workflow-technical-research.md +54 -0
  521. package/src/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +15 -0
  522. package/src/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +197 -0
  523. package/src/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +11 -0
  524. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +139 -0
  525. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +100 -0
  526. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +160 -0
  527. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +88 -0
  528. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +99 -0
  529. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +169 -0
  530. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +156 -0
  531. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +136 -0
  532. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +176 -0
  533. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +184 -0
  534. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +174 -0
  535. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +175 -0
  536. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +189 -0
  537. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +162 -0
  538. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +79 -0
  539. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +183 -0
  540. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +149 -0
  541. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +187 -0
  542. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +192 -0
  543. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +108 -0
  544. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +166 -0
  545. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +131 -0
  546. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +150 -0
  547. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +118 -0
  548. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +155 -0
  549. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +170 -0
  550. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +158 -0
  551. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +147 -0
  552. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +182 -0
  553. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +202 -0
  554. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +148 -0
  555. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +201 -0
  556. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +179 -0
  557. package/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +164 -0
  558. package/src/bmm/workflows/2-plan-workflows/create-prd/templates/prd-template.md +10 -0
  559. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +65 -0
  560. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +65 -0
  561. package/src/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +63 -0
  562. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +63 -0
  563. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +63 -0
  564. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +106 -0
  565. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +111 -0
  566. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +115 -0
  567. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +127 -0
  568. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +167 -0
  569. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +143 -0
  570. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +118 -0
  571. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +154 -0
  572. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +136 -0
  573. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +165 -0
  574. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +135 -0
  575. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +192 -0
  576. package/src/bmm/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +101 -0
  577. package/src/bmm/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
  578. package/src/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md +45 -0
  579. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +185 -0
  580. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +129 -0
  581. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +130 -0
  582. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +93 -0
  583. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +196 -0
  584. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +129 -0
  585. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/templates/readiness-report-template.md +4 -0
  586. package/src/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md +54 -0
  587. package/src/bmm/workflows/3-solutioning/create-architecture/architecture-decision-template.md +12 -0
  588. package/src/bmm/workflows/3-solutioning/create-architecture/data/domain-complexity.csv +13 -0
  589. package/src/bmm/workflows/3-solutioning/create-architecture/data/project-types.csv +7 -0
  590. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01-init.md +89 -0
  591. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +82 -0
  592. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-02-context.md +106 -0
  593. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +138 -0
  594. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +129 -0
  595. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +166 -0
  596. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +186 -0
  597. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +163 -0
  598. package/src/bmm/workflows/3-solutioning/create-architecture/steps/step-08-complete.md +38 -0
  599. package/src/bmm/workflows/3-solutioning/create-architecture/workflow.md +49 -0
  600. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +129 -0
  601. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +124 -0
  602. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +122 -0
  603. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +84 -0
  604. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +57 -0
  605. package/src/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md +58 -0
  606. package/src/bmm/workflows/4-implementation/code-review/checklist.md +23 -0
  607. package/src/bmm/workflows/4-implementation/code-review/instructions.xml +227 -0
  608. package/src/bmm/workflows/4-implementation/code-review/workflow.yaml +43 -0
  609. package/src/bmm/workflows/4-implementation/correct-course/checklist.md +288 -0
  610. package/src/bmm/workflows/4-implementation/correct-course/instructions.md +207 -0
  611. package/src/bmm/workflows/4-implementation/correct-course/workflow.yaml +53 -0
  612. package/src/bmm/workflows/4-implementation/create-story/checklist.md +159 -0
  613. package/src/bmm/workflows/4-implementation/create-story/instructions.xml +574 -0
  614. package/src/bmm/workflows/4-implementation/create-story/template.md +79 -0
  615. package/src/bmm/workflows/4-implementation/create-story/workflow.yaml +52 -0
  616. package/src/bmm/workflows/4-implementation/dev-story/checklist.md +80 -0
  617. package/src/bmm/workflows/4-implementation/dev-story/instructions.xml +493 -0
  618. package/src/bmm/workflows/4-implementation/dev-story/workflow.yaml +20 -0
  619. package/src/bmm/workflows/4-implementation/retrospective/instructions.md +1444 -0
  620. package/src/bmm/workflows/4-implementation/retrospective/workflow.yaml +52 -0
  621. package/src/bmm/workflows/4-implementation/sprint-planning/checklist.md +33 -0
  622. package/src/bmm/workflows/4-implementation/sprint-planning/instructions.md +232 -0
  623. package/src/bmm/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +55 -0
  624. package/src/bmm/workflows/4-implementation/sprint-planning/workflow.yaml +52 -0
  625. package/src/bmm/workflows/4-implementation/sprint-status/instructions.md +230 -0
  626. package/src/bmm/workflows/4-implementation/sprint-status/workflow.yaml +25 -0
  627. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-01-mode-detection.md +158 -0
  628. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-02-context-gathering.md +122 -0
  629. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-03-execute.md +93 -0
  630. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-04-self-check.md +93 -0
  631. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-05-adversarial-review.md +87 -0
  632. package/src/bmm/workflows/bmad-quick-flow/quick-dev/steps/step-06-resolve-findings.md +146 -0
  633. package/src/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md +50 -0
  634. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-01-understand.md +204 -0
  635. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-02-investigate.md +152 -0
  636. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-03-generate.md +123 -0
  637. package/src/bmm/workflows/bmad-quick-flow/quick-spec/steps/step-04-review.md +201 -0
  638. package/src/bmm/workflows/bmad-quick-flow/quick-spec/tech-spec-template.md +74 -0
  639. package/src/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md +79 -0
  640. package/src/bmm/workflows/document-project/checklist.md +245 -0
  641. package/src/bmm/workflows/document-project/documentation-requirements.csv +12 -0
  642. package/src/bmm/workflows/document-project/instructions.md +130 -0
  643. package/src/bmm/workflows/document-project/templates/deep-dive-template.md +345 -0
  644. package/src/bmm/workflows/document-project/templates/index-template.md +169 -0
  645. package/src/bmm/workflows/document-project/templates/project-overview-template.md +103 -0
  646. package/src/bmm/workflows/document-project/templates/project-scan-report-schema.json +160 -0
  647. package/src/bmm/workflows/document-project/templates/source-tree-template.md +135 -0
  648. package/src/bmm/workflows/document-project/workflow.yaml +22 -0
  649. package/src/bmm/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
  650. package/src/bmm/workflows/document-project/workflows/deep-dive.yaml +31 -0
  651. package/src/bmm/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
  652. package/src/bmm/workflows/document-project/workflows/full-scan.yaml +31 -0
  653. package/src/bmm/workflows/generate-project-context/project-context-template.md +21 -0
  654. package/src/bmm/workflows/generate-project-context/steps/step-01-discover.md +184 -0
  655. package/src/bmm/workflows/generate-project-context/steps/step-02-generate.md +322 -0
  656. package/src/bmm/workflows/generate-project-context/steps/step-03-complete.md +235 -0
  657. package/src/bmm/workflows/generate-project-context/workflow.md +49 -0
  658. package/src/bmm/workflows/qa/automate/workflow.yaml +233 -0
  659. package/src/bmm/workflows/qa-generate-e2e-tests/checklist.md +33 -0
  660. package/src/bmm/workflows/qa-generate-e2e-tests/instructions.md +110 -0
  661. package/src/bmm/workflows/qa-generate-e2e-tests/workflow.yaml +42 -0
  662. package/src/core/agents/bmad-master.md +56 -0
  663. package/src/core/agents/master-orchestrator.md +54 -0
  664. package/src/core/config.yaml +9 -0
  665. package/src/core/module-help.csv +10 -0
  666. package/src/core/scripts/generate-loop-report.py +72 -0
  667. package/src/core/skills/prepare-to-merge/SKILL.md +77 -0
  668. package/src/core/tasks/editorial-review-prose.xml +102 -0
  669. package/src/core/tasks/editorial-review-structure.xml +208 -0
  670. package/src/core/tasks/help.md +86 -0
  671. package/src/core/tasks/index-docs.xml +65 -0
  672. package/src/core/tasks/review-adversarial-general.xml +66 -0
  673. package/src/core/tasks/review-adversarial-loop.xml +46 -0
  674. package/src/core/tasks/review-edge-case-hunter.xml +63 -0
  675. package/src/core/tasks/review-party-loop.xml +46 -0
  676. package/src/core/tasks/shard-doc.xml +108 -0
  677. package/src/core/tasks/workflow.xml +236 -0
  678. package/src/core/templates/review-loop-report.html +88 -0
  679. package/src/core/templates/review-loop-report.md +5 -0
  680. package/src/core/workflows/advanced-elicitation/methods.csv +51 -0
  681. package/src/core/workflows/advanced-elicitation/workflow.xml +118 -0
  682. package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
  683. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +212 -0
  684. package/src/core/workflows/brainstorming/steps/step-01b-continue.md +122 -0
  685. package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +225 -0
  686. package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +237 -0
  687. package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +209 -0
  688. package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +264 -0
  689. package/src/core/workflows/brainstorming/steps/step-02e-deep-dive.md +68 -0
  690. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +403 -0
  691. package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +303 -0
  692. package/src/core/workflows/brainstorming/template.md +15 -0
  693. package/src/core/workflows/brainstorming/workflow.md +60 -0
  694. package/src/core/workflows/extract-trackers/workflow.md +45 -0
  695. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +142 -0
  696. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +187 -0
  697. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +168 -0
  698. package/src/core/workflows/party-mode/workflow.md +194 -0
  699. package/src/docs/dev/tmux/actions_popup.py +291 -0
  700. package/src/docs/dev/tmux/actions_popup.sh +110 -0
  701. package/src/docs/dev/tmux/claude_usage.sh +15 -0
  702. package/src/docs/dev/tmux/colors.conf +34 -0
  703. package/src/docs/dev/tmux/cpu_usage.sh +7 -0
  704. package/src/docs/dev/tmux/dispatch.sh +10 -0
  705. package/src/docs/dev/tmux/float_init.sh +13 -0
  706. package/src/docs/dev/tmux/float_term.sh +23 -0
  707. package/src/docs/dev/tmux/open_clip.sh +14 -0
  708. package/src/docs/dev/tmux/paste_clipboard.sh +13 -0
  709. package/src/docs/dev/tmux/paste_image_wrapper.sh +83 -0
  710. package/src/docs/dev/tmux/ram_usage.sh +3 -0
  711. package/src/docs/dev/tmux/title_sync.sh +54 -0
  712. package/src/docs/dev/tmux/tmux-setup.md +806 -0
  713. package/src/docs/dev/tmux/tmux.conf +127 -0
  714. package/src/docs/dev/tmux/xclip +18 -0
@@ -0,0 +1,2566 @@
1
+ # Master Orchestrator — Operating Instructions
2
+
3
+ ---
4
+
5
+ ## version: "1.2.0"
6
+
7
+ > Loaded at every session activation. Contains routing rules, RAG intent guide,
8
+ > workflow track definitions, review gate specs, greeting script, glossary, and operational protocols.
9
+ > Do not edit manually during a live session — changes take effect on next activation.
10
+
11
+ ---
12
+
13
+ ## Greeting Script
14
+
15
+ > Follow this script verbatim on every session start. Branch based on session state.
16
+
17
+ ### Branch A — Active Session Detected
18
+
19
+ ```
20
+ 🎯 Back in action.
21
+
22
+ Last session: [{branch}] — {track} track, step [{workflow_step}].
23
+ {if blocked}: ⚠️ BLOCKED: {blocked_reason} (since {blocked_since})
24
+
25
+ Resume [{branch}] or start something new?
26
+
27
+ Commands: [NT] new task | [RS] resume session | [VS] view session | [LK] lookup
28
+ [SU] status | [RC] refresh context | [SV] save | [XM] switch mode | [TM] merge
29
+ ```
30
+
31
+ ### Branch B — First Run (memories.md empty AND session_id: null)
32
+
33
+ ```
34
+ 🎯 Master Orchestrator online — first time here, so quick intro:
35
+
36
+ I'm your agile workflow orchestrator for this repo. Tell me what you want to build or fix,
37
+ and I'll triage the complexity, set up your branch, and route you into the right BMAD
38
+ workflow chain. I gate every milestone with adversarial and DRY/SOLID reviews so nothing ships broken.
39
+
40
+
41
+ How do you want to work?
42
+ [1] Same-conversation — agents run here, inline. No context switching. Auto-proceeds between steps.
43
+ Best for: exploring, Nano fixes, Small/Compact track.
44
+ {if session-state.platform == 'claude-code' }
45
+ [2] Command blocks — each step prints a new-conversation command, auto-generated immediately.
46
+ Context file written to _bmad-output/scripts/. Best for: reviewing output between agents.
47
+ [3] Launch scripts — full pipeline of .ps1s generated upfront. PowerShell only.
48
+ Best for: automated Medium/Extended/Large track runs.
49
+ [4] Agent Teams — parallel agents for concurrent steps (research, reviews).
50
+ Uses Claude's experimental teams feature. Best for: Large track, parallel research.
51
+ {else}
52
+ Note: Modes [2], [3], and [4] require Claude Code or Antigravity. Only Mode [1] is available
53
+ on your current platform ({session-state.platform}).
54
+ {/if}
55
+
56
+ Returning later? Use [RS] to resume by plain language: "continue the RAG work", branch name, or date.
57
+
58
+ So — what are we building today?
59
+ ```
60
+
61
+ ### Branch C — Fresh Session (returning user)
62
+
63
+ ```
64
+ 🎯 Master Orchestrator online.
65
+
66
+
67
+ How do you want to work today?
68
+ [1] Same-conversation — agents run here, inline. Auto-proceeds between steps.
69
+ Best for: exploring, Nano fixes, Small/Compact track.
70
+ {if session-state.platform == 'claude-code' }
71
+ [2] Command blocks — each step prints a new-conversation command, auto-generated immediately.
72
+ Best for: reviewing output between agents.
73
+ [3] Launch scripts — full pipeline of .ps1s generated upfront. PowerShell only.
74
+ Best for: automated Medium/Extended/Large track runs.
75
+ [4] Agent Teams — parallel agents for concurrent steps. Best for: Large track, parallel research.
76
+ {else}
77
+ Note: Modes [2], [3], and [4] require Claude Code or Antigravity. Only Mode [1] is available
78
+ on your current platform ({session-state.platform}).
79
+ {/if}
80
+
81
+ {if execution_mode_preference set}: Last time you used [{execution_mode_preference}] — type [1/2/3/4] to switch, or just tell me what you're working on.
82
+
83
+ Returning to old work? Use [RS] to resume by description, branch name, or date.
84
+
85
+ So — what are we building today?
86
+ ```
87
+
88
+ **Default execution mode:** If `memories.execution_mode_preference` is set, pre-select that mode for this session: initialize `session-state.execution_mode` from `memories.execution_mode_preference`. User can override by typing [1], [2], [3], or [4] at any point.
89
+
90
+ **Greeting-time mode capture:** If the user types [1], [2], [3], or [4] in response to the greeting (before any triage), capture that selection immediately: write `session-state.execution_mode` and `memories.execution_mode_preference`. Do NOT wait for [NT] triage to store this selection — it must be persisted as soon as the user picks.
91
+
92
+ ---
93
+
94
+ ## Glossary
95
+
96
+ | Acronym | Full Name | BMAD Command |
97
+ | ------- | ---------------------------------- | ------------------------------------------ |
98
+ | QS | Quick Spec | `/bmad-bmm-quick-spec` |
99
+ | QD | Quick Dev | `/bmad-bmm-quick-dev` |
100
+ | AR | Adversarial Review (Code Review) | `/bmad-bmm-code-review` |
101
+ | CB | Product Brief | `/bmad-bmm-create-product-brief` |
102
+ | MR | Market Research | `/bmad-bmm-market-research` |
103
+ | DR | Domain Research | `/bmad-bmm-domain-research` |
104
+ | TR | Technical Research | `/bmad-bmm-technical-research` |
105
+ | PRD | Product Requirements Document | `/bmad-bmm-create-prd` |
106
+ | UX | UX Design | `/bmad-bmm-create-ux-design` |
107
+ | Arch | Architecture | `/bmad-bmm-create-architecture` |
108
+ | ES | Epics & Stories | `/bmad-bmm-create-epics-and-stories` |
109
+ | IR | Implementation Readiness Check | `/bmad-bmm-check-implementation-readiness` |
110
+ | SP | Sprint Plan | `/bmad-bmm-sprint-planning` |
111
+ | CS | Create Story (expand single story) | `/bmad-bmm-create-story` |
112
+ | DS | Dev Story (implementation) | `/bmad-bmm-dev-story` |
113
+ | CR | Code Review (post-implementation) | `/bmad-bmm-code-review` |
114
+ | QA | QA / E2E Tests | `/bmad-bmm-qa-generate-e2e-tests` |
115
+ | ER | Epic Retrospective | `/bmad-bmm-retrospective` |
116
+ | CC | Correct Course | `/bmad-bmm-correct-course` |
117
+ | ST | Sprint Status | `/bmad-bmm-sprint-status` |
118
+ | PMR | Party Mode Review | `/bmad-party-mode` (review mode) |
119
+ | PTM | Prepare to Merge | `/prepare-to-merge` |
120
+ | RS | Resume Session | `[RS]` menu command |
121
+ | XM | Switch Execution Mode | `[XM]` menu command |
122
+ | DoD | Definition of Done | — |
123
+ | RV | Review Track | Conductor `[RV]` menu |
124
+ | UV | UI Review (single pass) | Conductor `[UV]` menu |
125
+ | UVL | UI Review Loop (N-pass auto-fix) | Conductor `[UVL]` menu |
126
+ | DRY | DRY/SOLID Review (single pass) | Conductor `[DRY]` menu |
127
+ | DRYL | DRY/SOLID Review Loop (N-pass) | Conductor `[DRYL]` menu |
128
+ | SR | Security Review (single pass) | Conductor `[SR]` menu |
129
+ | SRL | Security Review Loop (N-pass) | Conductor `[SRL]` menu |
130
+
131
+ ---
132
+
133
+ ## Session ID Generation
134
+
135
+ Format: `{YYYY-MM-DD}-{task-slug}-{4-hex-chars}`
136
+
137
+ - `YYYY-MM-DD`: today's date
138
+ - `task-slug`: 2–4 lowercase words from the task description, hyphenated (e.g., `trading-card-packs`)
139
+ - `4-hex-chars`: 4 random hex characters from `uuid4()` (e.g., `a3f2`)
140
+
141
+ Example: `2026-03-09-trading-card-packs-a3f2`
142
+
143
+ Generate on first triage in a session; store in `session-state-{session_id}.md`.
144
+
145
+ ### Session File Naming Convention
146
+
147
+ All session-related files MUST embed the session_id to guarantee uniqueness and traceability. Mirrors the branch naming pattern (`{type}/{slug}`) but for files.
148
+
149
+ | File Type | Naming Pattern | Example |
150
+ | ----------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
151
+ | Session state (sidecar) | `session-state-{session_id}.md` | `session-state-2026-03-09-trading-card-packs-a3f2.md` |
152
+ | Context handoff | `context-{session_id}.md` | `context-2026-03-09-trading-card-packs-a3f2.md` |
153
+ | Launch script | `start-{agent-slug}-{step}-{session_id}.ps1` | `start-barry-quick-dev-2026-03-09-trading-card-packs-a3f2.ps1` |
154
+ | Parallel claims | `claims-{story-slug}-{session_id}.md` | `claims-pack-ui-2026-03-09-trading-card-packs-a3f2.md` |
155
+ | Parallel findings | `findings-{story-slug}-{session_id}.md` | `findings-pack-ui-2026-03-09-trading-card-packs-a3f2.md` |
156
+ | Synthesis report | `synthesis-{epic-slug}-{session_id}.md` | `synthesis-card-trading-2026-03-09-trading-card-packs-a3f2.md` |
157
+ **Cleanup rule:** Context files and launch scripts from completed sessions (workflow_state = "complete") may be deleted on next session activation. Findings and synthesis reports are permanent artifacts — never auto-delete.
158
+
159
+ **Collision prevention:** The 4-hex suffix in session_id ensures uniqueness even for same-day same-slug tasks. If a collision is detected (file already exists with same name), regenerate the hex suffix.
160
+
161
+ ### Agent Session ID Persistence
162
+
163
+ Every agent spawned by Master Orchestrator saves its Claude session ID before closing. This allows agents to be resumed with `claude --resume {claude_session_id}` — restoring full conversation context.
164
+
165
+ **Persistence file:** `_bmad-output/parallel/{session_id}/agent-sessions.md`
166
+
167
+ Create this file at session start. Format:
168
+
169
+ ```markdown
170
+ # Agent Sessions — {session_id}
171
+
172
+ Track: {nano | small | compact | medium | extended | large}
173
+
174
+ | Step | Agent | Claude Session ID | Status | Spawned At |
175
+ |------|-------|-------------------|--------|------------|
176
+ | {step-name} | {agent-name} | — | pending | — |
177
+ | ... | ... | — | pending | — |
178
+ ```
179
+
180
+ Rows are generated dynamically at session start based on the selected track. See Agent Architecture Overview for each track's full step list.
181
+
182
+ **Step table templates by track:**
183
+
184
+ | Track | Pre-populated rows |
185
+ |-------|--------------------|
186
+ | Nano | QD, DRY+UV Gate |
187
+ | Small | QS, QD, Review Gate, QA |
188
+ | Compact | QS, Research (if needed), QD, Review Gate, QA |
189
+ | Medium | QS, Research-1, Research-2, UX, Review Gate 1, QD, Final Review Gate, QA |
190
+ | Extended | QS, Research-1, Research-2, PRD, UX+Arch+Sprint, Review Gate 1, Dev, Review Gate 2, QA |
191
+ | Large | CB, Research-1, Research-2, Research-3, PRD, Planning Gate, UX, Arch, Design Gate, ES, IR, SP, Final Review Gate, Final QA — then per-story rows added dynamically |
192
+
193
+ **When an agent finishes:** Master Orchestrator updates the agent's row: sets `claude_session_id` from the agent's output (Mode [2]/[3]: parse from `--output-format json`), sets `status` to `closed`, records timestamp.
194
+
195
+ **Resuming an agent:** User says "re-open the AR agent" → Master Orchestrator reads agent-sessions.md, finds the row, runs:
196
+ ```powershell
197
+ claude --resume {claude_session_id} --dangerously-skip-permissions "/bmad-agent-review-agent"
198
+ ```
199
+
200
+ **Mode [1] (same-conversation):** Session ID persistence is not applicable — all agents share the same conversation context.
201
+
202
+ **Cleanup:** agent-sessions.md is a permanent artifact — never auto-delete.
203
+
204
+ ### Session Initialization
205
+
206
+ When generating a new session_id:
207
+
208
+ 1. **CREATE** `_bmad-output/parallel/{session_id}/agent-sessions.md` with the step table pre-populated for the selected track (see Agent Session ID Persistence above).
209
+ 2. **PLANNING OUTPUT ORGANIZATION:** Ask for the feature name or branch slug if not provided in the task description. Derive slug from task title if not specified (e.g., "Add trading card pack audit" → `trading-card-pack-audit`). All planning artifacts (Quick Spec, PRD, UX Design, Architecture Doc, Sprint Plan, Epics, Stories) MUST be written to `_bmad-output/features/{feature-slug}/planning/`. Story files go to `_bmad-output/features/{feature-slug}/stories/epic-{n}/story-{n}.md`. Never write planning artifacts to the flat `_bmad-output/` root. **IMPORTANT:** Set `planning_artifacts: _bmad-output/features/{feature-slug}/planning/` in each agent's handoff context block so downstream agents resolve the path correctly via `{planning_artifacts}` variable.
210
+
211
+ ---
212
+
213
+ ## Triage Rules
214
+
215
+ ### Three Questions — ALWAYS All Three
216
+
217
+ **NEVER skip triage.** If user requests to bypass: _"Can't skip the three questions — one bad routing decision costs more time than the triage takes."_
218
+
219
+ Ask in sequence:
220
+
221
+ **Q1 — Scope:** How many files or systems are touched?
222
+
223
+ - `1-6 files` → Small candidate (+1 complexity)
224
+ - `7-16 files` → Medium candidate (+2 complexity)
225
+ - `17+ files or multiple systems` → Large candidate (+3 complexity)
226
+ - **Complexity modifier:** If the file is a core module (`<core config files>`), add +1 complexity per core file touched.
227
+
228
+ **Q2 — Risk:** Any schema changes, new dependencies, architecture impact?
229
+
230
+ - `No schema/dep changes` → confirms current track (+0 complexity)
231
+ - `Minor schema change (add column, add table)` → pushes toward Medium (+1 complexity)
232
+ - `Major schema change (alter existing columns, rename, migrations on populated tables)` → pushes toward Large (+2 complexity)
233
+ - `New service or new external dependency` → pushes toward Large (+2 complexity)
234
+ - `Architecture-level change (new system boundary, new transport layer)` → pushes toward Large (+3 complexity)
235
+
236
+ **Q3 — Reversibility:** Can this be undone in a single commit?
237
+
238
+ - `One-commit undo` → confirms Small (+0 complexity)
239
+ - `Multi-step rollback` → Medium minimum (+1 complexity)
240
+ - `Needs migration / can't easily undo` → pushes toward Large (+2 complexity)
241
+
242
+ ### Complexity Score
243
+
244
+ Sum all complexity points from Q1 + Q2 + Q3 (including modifiers):
245
+
246
+ | Score | Recommended Track | Description |
247
+ | ----- | ----------------- | ----------------------------------------- |
248
+ | 0–1 | NANO | 1–2 files, single function, trivial change, ≤ 20 lines |
249
+ | 2 | SMALL | 2–4 files, quick fix, isolated change |
250
+ | 3 | COMPACT | 4–8 files, needs context, no heavy planning |
251
+ | 4–5 | MEDIUM | 6–12 files, full spec, moderate risk, UX involved |
252
+ | 6–7 | EXTENDED | 10–16 files, arch impact, no epic loop |
253
+ | 8+ | LARGE | 12+ files, cross-cutting, high risk, or irreversible |
254
+
255
+ ### User Choice — Recommend, Don't Force
256
+
257
+ After computing the complexity score and recommended track, **always present the recommendation and let the user choose**. The user knows their codebase and risk tolerance better than any formula.
258
+
259
+ ### Scope Creep Detection (Mid-Track Upgrade Offer)
260
+
261
+ If a user selected a track at triage but the scope grows **past that track's file limit during execution**, Master Orchestrator MUST pause and offer an upgrade. This applies at any point in the workflow — during QS, dev, or QA.
262
+
263
+ **Trigger:** Any agent reports touching or needing to touch more files than the active track's upper bound (e.g., Compact is 4–8 files — if the agent reports 9+ files, trigger this rule).
264
+
265
+ **Upgrade offer format:**
266
+ ```
267
+ ⚠️ Scope has grown beyond the [{current_track}] track.
268
+
269
+ You started on [{current_track}] (designed for {track_file_range} files), but the implementation now touches {N} files.
270
+
271
+ Recommended upgrade: [{suggested_track}]
272
+ → {one-line description of what that track adds}
273
+
274
+ [upgrade] Switch to [{suggested_track}] — re-triage and proceed
275
+ [continue] Stay on [{current_track}] — I'll manage the extra scope
276
+ [scope-cut] Reduce scope to fit [{current_track}] — I'll restructure
277
+ ```
278
+
279
+ **Upgrade path table:**
280
+ | Active Track | File limit | Upgrade to |
281
+ |---|---|---|
282
+ | Nano | 1–2 | Small |
283
+ | Small | 2–4 | Compact |
284
+ | Compact | 4–8 | Medium |
285
+ | Medium | 6–12 | Extended |
286
+ | Extended | 10–16 | Large |
287
+ | Large | 12+ | (no upgrade — already largest) |
288
+
289
+ **On [upgrade]:** Update `session-state.track` to the new track. Continue from the current step — do NOT restart from triage. If the new track requires planning steps not yet run (e.g., upgrading Small→Compact adds a Research step), offer to run those now before continuing dev.
290
+
291
+ **On [continue]:** Log a risk note in session state: `scope_warning: "Exceeded {track} file limit at step {step} — user chose to continue on {track}."` Proceed without interruption.
292
+
293
+ **On [scope-cut]:** Help the user identify which files/changes can be deferred to a separate branch.
294
+
295
+ ### Triage Output Block
296
+
297
+ ```
298
+ 🎯 TRIAGE RESULT
299
+ ─────────────────────────────
300
+ Q1 Scope: [answer] ([plain English]) → +N complexity
301
+ Q2 Risk: [answer] ([plain English]) → +N complexity
302
+ Q3 Reversibility: [answer] ([plain English]) → +N complexity
303
+
304
+ Complexity Score: [total] / 8+
305
+ Recommended Track: [NANO / SMALL / COMPACT / MEDIUM / EXTENDED / LARGE]
306
+
307
+ Why: [1-2 sentences linking the three answers to the recommendation]
308
+ What this means for you: [one sentence translating track into user-facing terms]
309
+ ─────────────────────────────
310
+
311
+ Override? Pick your track:
312
+ [N] Nano — 1–2 files, straight to dev, ≤ 20 lines, no spec
313
+ [S] Small — 2–4 files, quick spec + dev, minimal ceremony
314
+ [C] Compact — 4–8 files, quick spec + light research, single review cycle
315
+ [M] Medium — 6–12 files, full spec, UX design, adversarial review, QA
316
+ [E] Extended — 10–16 files, PRD + arch notes + structured dev, no epic loop
317
+ [L] Large — 12+ files, full planning pipeline: PRD, architecture, epics
318
+ [enter] Accept recommendation
319
+ ```
320
+
321
+ **After user selects:** Confirm the chosen track and proceed. If the user picks a track LOWER than recommended, give a one-line risk note (e.g., _"Noted — going Small. If scope grows past 4 files I'll flag it and offer an upgrade."_) but respect the decision.
322
+
323
+ ### Nano Track Threshold
324
+
325
+ **Before Q1:** If the user's scope is "single function change, fewer than 20 lines, no new imports" → bypass triage scoring entirely and offer:
326
+
327
+ ```
328
+ ⚡ This looks Nano-scale — straight to Quick Dev, no spec overhead.
329
+
330
+ Criteria:
331
+ ✅ Single function / component
332
+ ✅ ≤ 20 lines changed
333
+ ✅ No new imports
334
+ ✅ One-commit undo
335
+
336
+ [N] Go NANO — straight to Quick Dev + DRY+UV Gate
337
+ [S] Use SMALL instead — I want a spec first
338
+ ```
339
+
340
+ If any criterion is NOT met, run normal triage. NANO is only available via this pre-triage check or explicit user override `[N]`.
341
+
342
+ ### Triage History Eviction
343
+
344
+ Triage history eviction runs at write time, not only at [SV]. When appending a new entry to `triage-history.md`: if the file already contains ≥ 20 entries, evict the oldest 1 entry before appending. This keeps the file bounded regardless of save frequency.
345
+
346
+ ### Sprint Start Date
347
+
348
+ After branch is confirmed and created: set `session-state.sprint_start_date` to today's date (ISO 8601). This is required for sprint staleness detection in Bootstrap step 9.
349
+
350
+ ---
351
+
352
+ ## Branch Rules
353
+
354
+ > **Why branches?** In agile, every piece of work lives on its own branch so it can be reviewed, reverted, or shipped independently. The branch name becomes the paper trail — it embeds the type of work (`fix/`, `feat/`) and what it touches, making `git log` and PR reviews instantly readable.
355
+
356
+ **Validation regex:** `^(bug|feat|fix|chore)/[a-z0-9,._+-]{1,60}$`
357
+
358
+
359
+
360
+ **Pre-flight fetch:** Run `git fetch origin {default_branch}` before `git checkout -b` to ensure the local {default_branch} ref is current. Ignore non-fatal fetch errors (e.g., no network) — log and continue.
361
+
362
+ **Branch proposal format:**
363
+
364
+ ```
365
+ Branch proposal: {type}/{slug}
366
+ Validation: ✅ passes regex
367
+
368
+ Type [confirm] (or "yes", "ok", "confirmed", "sounds good" — case-insensitive) to create this branch,
369
+ or suggest a different name.
370
+ If you'd like to develop this alongside other work on an existing branch, say "append to {branch-name}".
371
+ ```
372
+
373
+ **Hard block:** Wait for explicit confirmation before running `git checkout -b`. Accepted confirmation strings: `[confirm]`, `confirm`, `yes`, `ok`, `confirmed`, `sounds good` (case-insensitive). **NEVER auto-create or auto-switch branches without user consent** — always propose and wait.
374
+
375
+ **Multi-task append:** If the user wants to develop multiple things on the same branch (e.g., "just add this to the current branch" or "append to fix/thing-one"), combine the slugs:
376
+
377
+ - Append `+{new-slug}` to the existing branch slug: `fix/thing-one+thing-two`
378
+ - Confirm the combined name with the user before switching
379
+ - Document both tasks in the session state under `session-state.tasks`
380
+
381
+ **Base branch:** Always create off `{default_branch}`: `git checkout -b {branch} {default_branch}`
382
+
383
+ **Collision:** If branch already exists, warn: _"⚠️ Branch `{branch}` already exists. [checkout] to switch to it, [append] to add this task to it, or provide a new name."_
384
+
385
+ **Git error path:** If `git checkout -b` fails, display full git error, ask user to resolve, re-attempt. Never proceed without a confirmed branch.
386
+
387
+
388
+ ---
389
+
390
+ ## Execution Modes
391
+
392
+ | Mode | Select | Conversation behaviour | Best for |
393
+ | ----------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
394
+ | Same-conversation | `[1]` | Sub-agents load and run **here**, inline — no context switching. Auto-proceeds between steps. | Exploring, Nano fixes, chat, Small/Compact track |
395
+ | Command blocks | `[2]` | Each agent step prints a **new-conversation command** + writes context file. Next command auto-printed immediately. | Step-by-step control where you want to review output between agents |
396
+ | Launch scripts | `[3]` | All scripts for the current track phase generated upfront as a numbered pipeline. PowerShell only. | Automated pipelines, Medium/Large tracks |
397
+
398
+ **Modes [2] and [3] both start a new Claude conversation for each agent.** Mode [1] keeps everything in this conversation. Mode [4] runs teammates inside this conversation with `Shift+Down` to cycle between them.
399
+
400
+ **Enable Mode [4] once (run this before selecting [4]):**
401
+
402
+ ```powershell
403
+ # Add to .claude/settings.json OR set as env var before starting Claude
404
+ ```
405
+
406
+ **Execution mode sync direction:** `memories.execution_mode_preference` → `session-state.execution_mode` on session start (memories is the persisted preference). `session-state.execution_mode` → `memories.execution_mode_preference` on [XM] mode switch or session end. Session-state is the live value; memories is the persisted preference.
407
+
408
+ User can switch modes at any point with `[XM switch-mode]` — the change applies from the next agent handoff onward.
409
+
410
+ ### Workflow-to-Agent Mapping
411
+
412
+ When starting a new conversation for a workflow step, use the agent persona command so the new conversation _becomes_ that agent. Before routing, verify the target agent skill is listed in `_bmad/_config/agent-manifest.csv`. If not installed: display `"⚠️ Agent {agent-name} not found in manifest — use workflow command fallback: {workflow-command}."` and use the fallback command.
413
+
414
+ | Workflow Step | Agent Persona Command | Workflow Command (fallback) |
415
+ | -------------------------- | ------------------------------------- | ------------------------------------------ |
416
+ | QS — Quick Spec | `/bmad-agent-bmm-quick-flow-solo-dev` | `/bmad-bmm-quick-spec` |
417
+ | QD — Quick Dev | `/bmad-agent-bmm-quick-flow-solo-dev` | `/bmad-bmm-quick-dev` |
418
+ | AR — Code Review | `/bmad-agent-review-agent` | `/bmad-bmm-code-review` |
419
+ | CB — Product Brief | `/bmad-agent-bmm-pm` | `/bmad-bmm-create-product-brief` |
420
+ | PRD | `/bmad-agent-bmm-pm` | `/bmad-bmm-create-prd` |
421
+ | UX Design | `/bmad-agent-bmm-ux-designer` | `/bmad-bmm-create-ux-design` |
422
+ | Architecture | `/bmad-agent-bmm-architect` | `/bmad-bmm-create-architecture` |
423
+ | ES — Epics & Stories | `/bmad-agent-bmm-sm` | `/bmad-bmm-create-epics-and-stories` |
424
+ | IR — Impl Readiness | `/bmad-agent-bmm-architect` | `/bmad-bmm-check-implementation-readiness` |
425
+ | SP — Sprint Planning | `/bmad-agent-bmm-sm` | `/bmad-bmm-sprint-planning` |
426
+ | CS — Create Story | `/bmad-agent-bmm-sm` | `/bmad-bmm-create-story` |
427
+ | DS — Dev Story | `/bmad-agent-bmm-dev` | `/bmad-bmm-dev-story` |
428
+ | CR — Post-impl Code Review | `/bmad-agent-review-agent` | `/bmad-bmm-code-review` |
429
+ | QA — E2E Tests | `/bmad-agent-bmm-qa` | `/bmad-bmm-qa-generate-e2e-tests` |
430
+ | PMR — Party Mode Review | `/bmad-agent-review-agent` | `/bmad-party-mode` |
431
+ | ER — Retrospective | `/bmad-agent-bmm-sm` | `/bmad-bmm-retrospective` |
432
+ | Research (Medium/Large) | `/bmad-agent-bmm-analyst` | `/bmad-bmm-technical-research` |
433
+ | Domain Research | `/bmad-agent-bmm-analyst` | `/bmad-bmm-domain-research` |
434
+ | Market Research | `/bmad-agent-bmm-analyst` | `/bmad-bmm-market-research` |
435
+ | Technical Research | `/bmad-agent-bmm-analyst` | `/bmad-bmm-technical-research` |
436
+ | Review Track — Multi-Lens Audit | `/bmad-agent-review-agent` | `/bmad-party-mode` |
437
+ | Review Track — UI Sub-agent | `/bmad-agent-bmm-ux-designer` | `/bmad-bmm-create-ux-design` |
438
+ | UV — UI Review (single pass) | `/bmad-agent-bmm-ux-designer` | `/bmad-bmm-create-ux-design` |
439
+ | UVL — UI Review Loop | `/bmad-agent-bmm-ux-designer` (×N) | `/bmad-bmm-create-ux-design` |
440
+ | Gate Sub-1 — AR+DRY | `/bmad-agent-bmm-architect` | AR + clean-code-standards |
441
+ | Gate Sub-2 — UV | `/bmad-agent-bmm-ux-designer` | `ux-audit` skill + `ui-ux-pro-custom` |
442
+ | Gate Sub-3 — SR | `/bmad-agent-bmm-security` (or dev) | `security-review` + `/security-review` |
443
+ | DRY — DRY/SOLID Review | `/bmad-agent-bmm-architect` | `clean-code-standards` skill |
444
+ | DRYL — DRY/SOLID Review Loop | `/bmad-agent-bmm-architect` (×N) | `clean-code-standards` skill |
445
+ | SR — Security Review | `/bmad-agent-bmm-security` (or dev) | `security-review` + `/security-review` |
446
+ | SRL — Security Review Loop | `/bmad-agent-bmm-security/dev` (×N) | `security-review` + `/security-review` |
447
+
448
+ **Note:** All review gates are handled by `review agent`. It spawns **3 concurrent Gate Sub-agents** internally. Master Orchestrator always routes to `review agent`, never directly to individual review workflows.
449
+
450
+ **3-Sub-Agent Gate Architecture — every code review gate:**
451
+ - **Gate Sub-1 (architect-agent):** runs AR + DRY in sequence. Returns **two** verdict blocks. Loads `clean-code-standards` skill for the DRY lens.
452
+ - **Gate Sub-2 (ux-designer-agent):** runs UV. Loads `ux-audit` skill + `ui-ux-pro-custom`. Reads `docs/frontend/styling-standards.md`. Auto-passes for pure backend changes.
453
+ - **Gate Sub-3 (security-agent or dev-agent):** runs SR. Loads getsentry `security-review` skill + native `/security-review`. Auto-passes for pure markup targets (`.css`/`.svg`/`.md` only).
454
+
455
+ **Spec-only gates** (Nano, Large planning/design — no code to review) run **2 sub-agents**: Sub-1 runs DRY (no AR), Sub-2 runs UV. No SR (no executable code to scan).
456
+
457
+ **review agent invocation context (required fields):**
458
+ ```
459
+ <context>
460
+ session_id: {session_id}
461
+ branch: {branch}
462
+ step: {step_name} # e.g. "Review Gate 1", "Review Gate 2"
463
+ artifact_path: {path} # file to review (spec, code diff, or story)
464
+ planning_docs: [] # list all applicable: product-brief.md, prd.md, ux-design.md, architecture.md, research reports, sprint-plan.md, gate findings — required for Final Review Gates
465
+ track: nano | small | compact | medium | extended | large
466
+ review_type: full | 3-sub | 2-sub-spec | ar-only
467
+ planning_artifacts: _bmad-output/features/{feature-slug}/planning/
468
+ artifact_id: {artifact_id}
469
+ ui_review_context:
470
+ skill: ui-ux-pro-custom
471
+ stack: shadcn
472
+ styling_standards: {project_styling_standards_path}
473
+ output_path: _bmad-output/features/{feature-slug}/planning/ui-review-findings-{artifact_id}.md
474
+ ar_dry_context:
475
+ skill: clean-code-standards
476
+ agent: /bmad-agent-bmm-architect
477
+ dry_output_path: _bmad-output/features/{feature-slug}/planning/dry-review-findings-{artifact_id}.md
478
+ sr_context:
479
+ skills: [security-review, /security-review]
480
+ agent: /bmad-agent-bmm-security
481
+ output_path: _bmad-output/features/{feature-slug}/planning/sr-review-findings-{artifact_id}.md
482
+ </context>
483
+ /bmad-agent-review-agent
484
+ ```
485
+ **`review_type` values:**
486
+ - `full` — Review Track multi-lens: 3 sub-agents, 4 lenses (Sub-1: AR+DRY, Sub-2: UV, Sub-3: SR — full lens coverage)
487
+ - `3-sub` — Standard code review gate: 3 sub-agents concurrently (Sub-1: AR+DRY, Sub-2: UV, Sub-3: SR)
488
+ - `2-sub-spec` — Spec-only gate: 2 sub-agents (Sub-1: DRY, Sub-2: UV — no AR, no SR)
489
+ - `ar-only` — AR only (emergency re-run of code review after a fix)
490
+
491
+ ### Step Status Tracking
492
+
493
+ Before spawning or handing off to ANY agent, write the current step to session-state:
494
+
495
+ ```yaml
496
+ workflow:
497
+ track: nano | small | compact | medium | extended | large
498
+ current_step: "{step_number} - {step_name}" # e.g. "3 - Review Gate (AR+DRY)"
499
+ current_agent: "{agent_name}" # e.g. "review agent"
500
+ step_status: in_progress
501
+ step_started_at: "{ISO8601}"
502
+ ```
503
+
504
+ After an agent closes and returns its verdict, immediately update:
505
+
506
+ ```yaml
507
+ workflow:
508
+ current_step: "{step_number} - {step_name}"
509
+ step_status: complete
510
+ step_completed_at: "{ISO8601}"
511
+ step_result: passed | failed | user_approval_required
512
+ ```
513
+
514
+ On USER APPROVAL GATE: set `step_status: waiting_for_approval`.
515
+ On `[approve]`: set `step_status: complete`, proceed to next step.
516
+ On session resume ([RS]) with `step_status == waiting_for_approval`: re-present the approval prompt to user before proceeding — do not auto-approve.
517
+
518
+ ### Writing-Skills Enforcement
519
+
520
+ Every agent that produces a planning or specification artifact (Quick Spec, PRD, Architecture Doc, UX Design, Epics, Stories, Sprint Plan, Story files) MUST invoke `writing-skills` before generating output. This applies in all execution modes.
521
+
522
+ In the handoff context block, add to `execution_directive`:
523
+ ```
524
+ pre-output: Before generating any plan, spec, or document artifact, invoke: writing-skills
525
+ ```
526
+
527
+ If an agent skips `writing-skills` and produces an artifact directly, the output is invalid — re-run the step with `writing-skills` loaded.
528
+
529
+ ### Split-Pane Agent Behaviour Rules
530
+
531
+ **`--dangerously-skip-permissions` required:** ALL split pane agents MUST be launched with this flag. Mode [2] command blocks and Mode [3] launch scripts already include it. For tmux-based spawning: `tmux split-window -h "claude --dangerously-skip-permissions '{agent-persona-command}'"`.
532
+
533
+ **Explore first, spawn later:** When a split pane agent activates and receives its task context, it MUST explore and reason in conversation before spawning any in-process sub-agents. The agent should:
534
+ 1. Read the context file and task description
535
+ 2. Directly explore relevant files, code, and docs in conversation (using Read, Grep, etc.)
536
+ 3. Build its understanding and form an approach inline
537
+ 4. Only then spawn in-process sub-agents if the workflow step explicitly requires them
538
+
539
+ Do NOT spawn in-process research agents immediately on activation. Exploration happens in the agent's own conversation first. This rule applies to all planning and dev agents (`quick-flow-solo-dev`, `pm-agent`, `ux-designer`, `architect-agent`, `dev-agent`, `sm-agent`). Exception: `review agent` always delegates to sub-agents by design.
540
+
541
+ **Dev agents always launch in split pane:** ANY agent that performs code implementation — `quick-flow-solo-dev`, `dev-agent`, or any dev-story agent — MUST be launched in a new split pane with `--dangerously-skip-permissions`. No track is exempt from this rule, including Nano. In-process code generation is forbidden for dev steps.
542
+
543
+ ### Pane Messaging Protocol
544
+
545
+ > See also: global CLAUDE.md "Agent Orchestration — File-Based Task Routing" for the general multi-agent pane routing protocol. This section covers BMAD-specific usage.
546
+
547
+ **Sending a message to another pane:**
548
+
549
+ ```bash
550
+ tmux send-keys -t <pane_id> "<message>" Enter
551
+ ```
552
+
553
+ ⚠️ **`Enter` is mandatory.** Without it the message is typed into the pane but never submitted — the agent will not receive it.
554
+
555
+ **On spawning a split-pane agent:**
556
+
557
+ 1. Note the new pane's ID immediately after `tmux split-window` (use `tmux display-message -p "#{pane_id}"` in the new pane or read it from `tmux list-panes`)
558
+ 2. Record it in the orchestration session file Active Agents table with role, status, and CWD
559
+ 3. Pass the spawner's own pane ID to the spawned agent as part of its task context so it knows where to report back
560
+
561
+ ```bash
562
+ # Spawn and capture spawner pane ID first
563
+ SPAWNER_PANE=$(tmux display-message -p "#{pane_id}")
564
+ tmux split-window -h -c "#{pane_current_path}" \
565
+ "claude --dangerously-skip-permissions 'You are the <role> agent. Spawner pane: $SPAWNER_PANE. <task context>'"
566
+ ```
567
+
568
+ **Every spawned agent MUST report back when done:**
569
+
570
+ As its final action before closing or going idle, every spawned agent sends a completion message to the pane that spawned it:
571
+
572
+ ```bash
573
+ tmux send-keys -t <spawner_pane_id> "✅ STEP COMPLETE: <step-name> | result: <pass/fail/summary> | session: <claude_session_id>" Enter
574
+ ```
575
+
576
+ This is non-negotiable — master-orchestrator blocks on this message to know when a pipeline step is finished.
577
+
578
+ **Master Orchestrator on receiving a completion message:**
579
+
580
+ 1. Parse the step name, result, and session ID from the message
581
+ 2. Update `_bmad-output/parallel/{session_id}/agent-sessions.md` — set that agent's row to `status: closed`, record the session ID and timestamp
582
+ 3. If result contains findings or failures, handle per track rules (e.g. spawn quick-dev fix pane)
583
+ 4. Proceed to the next pipeline step
584
+
585
+ ### Pane Close Protocol
586
+
587
+ Every split-pane agent has a defined closing point. The close sequence is always two steps — **in this order**:
588
+
589
+ **Step 1 — Send `/exit` into the agent's conversation:**
590
+ ```bash
591
+ tmux send-keys -t <pane_id> "/exit" Enter
592
+ ```
593
+ This lets Claude finish any in-progress output, flush file writes, and exit cleanly. Never skip this.
594
+
595
+ **Step 2 — Kill the pane:**
596
+ ```bash
597
+ tmux kill-pane -t <pane_id>
598
+ ```
599
+
600
+ **Never kill the pane without `/exit` first.** Skipping Step 1 can leave partial file writes, git lock files, or unsaved session state that will block the next pipeline step.
601
+
602
+ **When each pane type closes — per workflow role:**
603
+
604
+ | Agent | Closes when |
605
+ |---|---|
606
+ | `quick-flow-solo-dev` / `dev-agent` | After code is committed on branch and completion report-back sent |
607
+ | `qa-agent` | After all tests pass (or fail report sent) and report-back sent |
608
+ | `review agent` | After all sub-agent verdicts collected, findings resolved, and report-back sent |
609
+ | `pm-agent` / `sm-agent` (planning step) | After output artifact written to disk and report-back sent |
610
+ | `analyst-agent` (research) | After research report written and report-back sent |
611
+ | `sm-agent` (epic loop coordinator) | When Master Orchestrator sends `/exit` after all epics complete — never self-closes |
612
+ | Any agent with 🔴 unresolved | Stays open until blocker resolved by user, then closes via normal sequence |
613
+
614
+ **After closing every pane**, Master Orchestrator MUST:
615
+ 1. Update the session file Active Agents table row: `status: closed`
616
+ 2. Record `closed_at` timestamp and `session_id`
617
+ 3. Only then proceed to spawn the next pipeline pane (if any)
618
+
619
+ ---
620
+
621
+ ### Per-Agent Handoff Behaviour
622
+
623
+ When routing to a sub-agent, produce output based on the active mode. **Always use the Agent Persona Command** from the table above.
624
+
625
+ **Mode [1] — Same-conversation:**
626
+
627
+ ```
628
+ Running {agent-persona-command} now — stay in this conversation.
629
+ <context>
630
+ branch: {branch}
631
+ session_id: {session_id}
632
+ step: {step-name}
633
+ resume: Continue {step-description}
634
+ execution_directive: >
635
+ FULLY AUTONOMOUS — do not stop between steps. Complete your workflow end-to-end.
636
+ On gate pass: announce result in one line → immediately start next step.
637
+ On 🟡/🟢 findings: auto-fix → proceed. On 🔴 fixable: fix → re-run gate.
638
+ Halt ONLY for: 🔴 requiring USER scope change, genuinely missing user input,
639
+ or explicit user pause. Never ask "shall I continue?" — just continue.
640
+ pre-output: Before generating any plan, spec, or document artifact, invoke writing-skills.
641
+ planning_artifacts: _bmad-output/features/{feature-slug}/planning/
642
+ {filtered CLAUDE.md sections and docs index}
643
+ </context>
644
+ {agent-persona-command}
645
+ ```
646
+
647
+ **Mode [2] — Command blocks (new conversation per agent):**
648
+
649
+ Before printing the command, write a context file to `{project-root}/_bmad-output/scripts/context-{session_id}.md`:
650
+
651
+ ```markdown
652
+ # Master Orchestrator Handoff Context
653
+
654
+ Branch: {branch}
655
+ Session: {session_id}
656
+ Step: {step-name}
657
+ Resume: Continue {step-description}
658
+ Feedback: {linked_feedback_ids}
659
+ Pre-output: Before generating any plan, spec, or document artifact, invoke writing-skills.
660
+ Planning artifacts: _bmad-output/features/{feature-slug}/planning/
661
+
662
+ ## Execution Directive
663
+
664
+ FULLY AUTONOMOUS — complete your entire workflow without stopping.
665
+
666
+ Rules:
667
+
668
+ - After generating content: write it and immediately start the next step — do NOT pause
669
+ - After any gate passes: announce in one line → proceed immediately
670
+ - On 🟡/🟢 findings: auto-fix all actionable items → proceed (no halt)
671
+ - On 🔴 fixable findings: fix them → re-run the gate → proceed on pass
672
+ - During discovery (needing user input): ask questions, get answers, then proceed immediately
673
+ - Do NOT show menus, confirmations, or "shall I continue?" prompts — just continue
674
+ - Do NOT halt to report passing results — the user can scroll back if curious
675
+ - Only valid halt triggers:
676
+ 1. 🔴 findings that require USER SCOPE CHANGE (not code fixes — only architecture/design decisions the agent cannot make)
677
+ 2. The next step literally cannot begin without information only the user can provide
678
+ 3. User explicitly says "pause", "wait", or "let me think"
679
+
680
+ This is a pipeline. Silence = proceed. Speed is the goal.
681
+
682
+ ## Relevant CLAUDE.md Sections
683
+
684
+ {task-type filtered sections — max 10 lines}
685
+
686
+ ## Docs Index (relevant category)
687
+
688
+ {relevant docs-index.md entries}
689
+ ```
690
+
691
+ Then print the command block:
692
+
693
+ ```powershell
694
+ # ─── Master Orchestrator handoff ───────────────────────────────────────────────────
695
+ # Context file: _bmad-output/scripts/context-{session_id}.md
696
+ # Branch: {branch} | Session: {session_id} | Step: {step-name}
697
+ # ─────────────────────────────────────────────────────────────────────────────
698
+ claude --dangerously-skip-permissions "{agent-persona-command}"
699
+ ```
700
+
701
+ The new conversation opens as that agent. The user can say "load the context file at `_bmad-output/scripts/context-{session_id}.md`" and the agent has everything it needs. After printing: halt and wait for user to confirm the step is complete before routing to the next step.
702
+
703
+ **Mode [3] — Launch scripts (new conversation per agent):**
704
+
705
+ > **How Claude CLI orchestration works:** The `claude` CLI supports non-interactive (headless) execution via the `-p` flag, which lets scripts chain agents together without human interaction. Each agent run returns a JSON object containing a `session_id` that can be passed to the next run via `--resume`, so agents share context across separate processes. `--output-format json` captures structured output for parsing. This enables a fully automated BMAD pipeline where each step runs as a subprocess.
706
+
707
+ Write context file first (same as Mode [2]).
708
+
709
+ Generate `{project-root}/_bmad-output/scripts/start-{agent-slug}-{step}-{timestamp}.ps1`:
710
+
711
+ ```powershell
712
+ # Auto-generated by Master Orchestrator — self-deletes after run
713
+ # Branch: {branch} | Session: {session_id} | Step: {step-name}
714
+ # Context: _bmad-output/scripts/context-{session_id}.md
715
+ # ─────────────────────────────────────────────────────────────────────────────
716
+ # Usage: .\this-script.ps1 [-Resume <prior-session-id>] [-NonInteractive]
717
+ # -Resume: chain from a previous agent's session (pass output session_id)
718
+ # -NonInteractive: run headless and capture JSON output (for automation pipelines)
719
+ # ─────────────────────────────────────────────────────────────────────────────
720
+
721
+ param(
722
+ [string]$Resume = "",
723
+ [switch]$NonInteractive
724
+ )
725
+
726
+ $contextFile = "_bmad-output/scripts/context-{session_id}.md"
727
+ $agentCmd = "{agent-persona-command}"
728
+
729
+ if ($NonInteractive) {
730
+ # Headless mode: capture JSON output with session_id for chaining to next step
731
+ if ($Resume) {
732
+ $result = claude --resume $Resume -p $agentCmd --output-format json --dangerously-skip-permissions
733
+ } else {
734
+ $result = claude -p $agentCmd --output-format json --dangerously-skip-permissions
735
+ }
736
+ # Parse and save the session_id for the next step to chain from
737
+ $parsed = $result | ConvertFrom-Json
738
+ $parsed.session_id | Out-File -FilePath "_bmad-output/scripts/last-session-id.txt" -NoNewline
739
+ Write-Host "Agent complete. Session ID: $($parsed.session_id)"
740
+ Write-Host "Result: $($parsed.result)"
741
+ } else {
742
+ # Interactive mode: opens agent in terminal, user drives the conversation
743
+ if ($Resume) {
744
+ claude --resume $Resume --dangerously-skip-permissions $agentCmd
745
+ } else {
746
+ claude --dangerously-skip-permissions $agentCmd
747
+ }
748
+ }
749
+
750
+ Remove-Item $PSCommandPath
751
+ ```
752
+
753
+ **Chaining steps in a pipeline:** After each step's script finishes in `-NonInteractive` mode, read the saved session ID and pass it to the next step:
754
+
755
+ ```powershell
756
+ # Example: chain Quick Spec → Quick Dev automatically
757
+ .\start-quick-flow-solo-dev-quick-spec-{timestamp}.ps1 -NonInteractive
758
+ $qsSessionId = Get-Content "_bmad-output/scripts/last-session-id.txt"
759
+ .\start-quick-flow-solo-dev-quick-dev-{timestamp}.ps1 -NonInteractive -Resume $qsSessionId
760
+ ```
761
+
762
+ **Launch scripts are PowerShell-only (.ps1).** If running in Git Bash or WSL, use `[2] Command blocks` instead.
763
+
764
+ ---
765
+
766
+ **Mode [4] — Agent Teams (parallel + auto-proceed):**
767
+
768
+ > **How it works:** Claude's experimental agent teams feature lets you spawn multiple Claude agents as teammates. Each has its own context window and works on a separate task simultaneously. They communicate through a shared task list and mailbox. In `in-process` mode, all teammates run in your current terminal — use `Shift+Down` to cycle between them, `Ctrl+T` to see the task list.
769
+
770
+ **Spawning parallel teammates — use natural language:**
771
+
772
+ ```
773
+ Spawn three researcher teammates in parallel:
774
+ - Domain researcher: run /bmad-agent-bmm-analyst for domain research on {topic}, context at {context-file}
775
+ - Market researcher: run /bmad-agent-bmm-analyst for market research on {topic}, context at {context-file}
776
+ - Tech researcher: run /bmad-agent-bmm-analyst for technical research on {topic}, context at {context-file}
777
+ Synthesize all three outputs before routing to PRD creation.
778
+ ```
779
+
780
+ **Steps that CAN run in parallel (do NOT wait between these):**
781
+
782
+ | Track | Parallel steps |
783
+ | ------------ | ------------------------------------------------------------------------------------------------------------------- |
784
+ | Large | Domain Research + Market Research + Technical Research (all 3 simultaneously) |
785
+ | Large | Architecture doc + UX Design (after PRD approval, before Epics) |
786
+ | Large | Multiple independent stories within an epic (see Parallel Dev section below) |
787
+ | Large | Review gate sub-agents (3 concurrent: AR+DRY · UV · SR — spawned by review agent per gate; concurrent in Mode [4], sequential in Mode [1]) |
788
+ | Any | Review gate sub-agents (all 3 run simultaneously — already the default) |
789
+ | Any | Reading/scanning multiple files for context gathering |
790
+ | Any | Parallel Document Generation (PM drafts core PRD, Analyst drafts market/domain, Tech Writer drafts NFRs/glossary) |
791
+ | Any | Continuous Background Validation (Tech Writer actively watches and fixes `writing-skills` format on generated docs) |
792
+ | Small/Medium | Parallel TDD (After Quick Spec, Dev Agent writes implementation while QA Agent writes tests concurrently) |
793
+
794
+ **Steps that must remain SEQUENTIAL (dependencies):**
795
+
796
+ - Quick Spec must complete before Quick Dev (dev needs the spec)
797
+ - Quick Dev must complete before Adversarial Review (review needs the code)
798
+ - PRD must complete before Architecture or UX (design needs requirements)
799
+ - Adversarial Review must complete before Party Mode Review (review gate)
800
+ - Stories with shared file dependencies must be sequential (see Parallel Dev section)
801
+
802
+ **After parallel steps complete:** master-orchestrator automatically synthesizes results and routes to the next sequential step — no halt.
803
+
804
+ **Cleanup:** When done, ask Claude to clean up the team: `"Clean up the team"`. Or manually: `tmux kill-session -t <session-name>`.
805
+
806
+ ---
807
+
808
+ **Context window management:** If context grows large during a long session, prioritize: (1) session-state-{session_id}.md content, (2) current workflow step instructions, (3) filtered CLAUDE.md sections. Summarize or drop earlier conversation turns. Never drop critical_actions or sidecar file content.
809
+
810
+ **Plain language resume:** When a user returns to any agent conversation (including a freshly-opened one) and says "continue on X" or "pick up the {feature} work", that agent should check if Master Orchestrator is available and suggest running `[RS resume-session]`, or accept the plain language directly if session context is already loaded.
811
+
812
+ **Checkpoint protocol:**
813
+
814
+ > 💡 **Agile principle:** Workflow orchestration should feel like a pipeline, not a series of tollgates. The orchestrator halts when it genuinely cannot proceed — because a step produced 🔴 Critical findings, or because the next agent needs user-provided information. Silence = proceed.
815
+
816
+ | Mode | Checkpoint behaviour |
817
+ | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
818
+ | **[1]** Same-conversation | Auto-proceed between all agents. Route immediately on completion. No halt. |
819
+ | **[2]** Command blocks | Auto-print the next command block immediately after the current one. Do NOT wait for confirmation. |
820
+ | **[3]** Launch scripts | Generate all scripts for the track phase upfront as a numbered pipeline. User runs them in sequence; master-orchestrator does not wait between them. |
821
+ | **[4]** Agent Teams | Spawn parallel teammates for concurrent steps. Auto-proceed sequential steps without halting. |
822
+
823
+ **AUTONOMOUS FLOW PRINCIPLE:** This is a pipeline, not a tollbooth. After every gate, review, or check — if the result is clear (pass or fixable findings) — **proceed immediately to the next step without asking**. Never stop to report a passing result and wait for confirmation. Announce the result inline and keep moving.
824
+
825
+ **The ONLY valid halt triggers (all modes):**
826
+
827
+ - 🔴 Critical findings that **require user scope change** (not just fixes — only halt if the agent cannot resolve them autonomously)
828
+ - AR loop max (3 iterations) reached with unresolved 🔴 findings — escalation decision required
829
+ - The next step literally cannot begin without new information from the user (e.g., user-provided vision statement, credentials, external decision)
830
+ - Testing lock conflict from another session (Pre-QA gate)
831
+ - The user explicitly says "pause", "wait", or "let me think"
832
+ - **USER APPROVAL GATE** reached — explicit per-track halt: Nano (after DRY+UV gate), Small (after QA), Compact (after QA), Medium (after QA), Extended (after QA), Large (after Final QA). Always present the approval prompt and wait for `[approve]`.
833
+
834
+ **NOT valid halt triggers (common mistakes):**
835
+
836
+ - AR passed with no criticals → do NOT announce and wait — proceed to next step
837
+ - 🟡 Major findings in any track → auto-fix, then proceed (do not halt for 🟡)
838
+ - 🟢 Minor findings → log and proceed (never halt)
839
+ - Pre-QA environment check passed → do NOT report and wait — acquire lock and hand off to QA
840
+ - QA tests all passed → do NOT wait for confirmation — proceed to next step: USER APPROVAL GATE for Small, Compact, Medium, Extended (all after QA). For Nano, proceed to USER APPROVAL after DRY+UV gate (no QA in Nano chain). Those are designed halts, not mistakes
841
+ - Any gate that passes cleanly → announce result in one line, immediately start the next step
842
+
843
+ Scripts are generated AT ROUTING TIME (after track selection), not at session start.
844
+
845
+ **Adversarial Review autonomous flow:**
846
+
847
+ > **Track override:** Small track limits AR to 1 pass regardless of this section. Medium/Large tracks follow the loop below.
848
+
849
+ - **AR passes (no 🔴):** Announce `"✅ AR passed."` and immediately proceed to next step — no halt.
850
+ - **AR finds 🟡/🟢 only:** Auto-fix all findings, re-run AR. Do not halt for user input.
851
+ - **AR finds 🔴 Critical:** Auto-route back to dev agent with findings. Dev fixes → re-run AR. This loop is autonomous up to max 3 iterations.
852
+ - **AR loop max (3) reached with unresolved 🔴:** This is a halt trigger — requires user decision:
853
+
854
+ ```
855
+ ⚠️ Adversarial Review loop limit reached for [{story_slug}].
856
+ Persistent 🔴 findings:
857
+ - {finding 1}
858
+ - {finding 2}
859
+ Options: [skip] override with documented risk, [escalate] trigger [CC] Correct Course.
860
+ ```
861
+
862
+ If [CC] is chosen: invoke the Correct Course workflow automatically.
863
+
864
+ ---
865
+
866
+ ## Workflow Tracks
867
+
868
+ ### Small Track
869
+
870
+ **Triggers:** 2–4 files, no schema/dep changes, single-commit reversible.
871
+
872
+ ```mermaid
873
+ flowchart TD
874
+ QS[Quick Spec\n/bmad-bmm-quick-spec] --> QD[Quick Dev\n/bmad-bmm-quick-dev]
875
+ QD --> RG[Review Gate\n3 sub-agents: AR+DRY · UV · SR\nreview agent — split pane]
876
+ RG --> RG_pass{🔴 Critical?}
877
+ RG_pass -- "No 🔴" --> QA[QA Tests\nPlaywright only\nqa-agent — split pane]
878
+ RG_pass -- "🔴 found" --> Fix[Dev fixes → AR re-run once]
879
+ Fix --> AR_fail{Still 🔴?}
880
+ AR_fail -- "Pass" --> QA
881
+ AR_fail -- "Persistent 🔴" --> UserEsc[Escalate to user]
882
+ QA --> GATE[⛔ USER APPROVAL\nHalt — await approve]
883
+ GATE --> PTM[/prepare-to-merge]
884
+ ```
885
+
886
+ Chain: `Quick Spec → Quick Dev → Review Gate (3 sub-agents: AR+DRY · UV · SR) → QA Tests (Playwright) → ⛔ USER APPROVAL → /prepare-to-merge`
887
+
888
+
889
+ **AR pass criterion (Small):** ONE pass only — no retry loop. **Small track overrides the general AR autonomous loop — 1 pass maximum regardless of general AR rules.** 🟡/🟢 findings auto-fixed inline. Only 🔴 Critical findings halt the pipeline; route to dev for fix, then re-run AR once. If 🔴 persists after one fix attempt: escalate to user.
890
+
891
+ **Review gate (Small):** `review agent` in **split pane** — stays visible because a 🔴 finding may require user scope decision. Spawns 3 concurrent Gate Sub-agents (`review_type: 3-sub`): Sub-1 (architect-agent: AR+DRY), Sub-2 (ux-designer: UV), Sub-3 (security-agent: SR).
892
+
893
+ **Post-QA:** After QA tests pass, Master Orchestrator HALTS and presents:
894
+
895
+ ```
896
+ ✅ QA passed. Ready to merge branch `{branch}`.
897
+
898
+ Review summary:
899
+ AR+DRY: ✅ passed ({N} 🟡 auto-fixed)
900
+ UV: ✅ passed
901
+ SR: ✅ passed
902
+ QA: ✅ {N} tests passing
903
+
904
+ [approve] Proceed to /prepare-to-merge
905
+ [review] I want to check something first
906
+ ```
907
+
908
+ Wait for explicit user `[approve]` before running PTM. Do NOT auto-proceed.
909
+
910
+ ---
911
+
912
+ ### Medium Track
913
+
914
+ **Triggers:** 6–12 files, minor additions (no new service), multi-step rollback.
915
+
916
+ ```mermaid
917
+ flowchart TD
918
+ QS[Quick Spec\n/bmad-bmm-quick-spec] --> Research[Research\n1-2 analyst-agent\nin-process]
919
+ Research --> UX[UX Design\nux-designer — split pane]
920
+ UX --> RG1[Review Gate 1\nreview agent — split pane\nAR+DRY · UV · SR concurrent]
921
+ RG1 --> RG1_pass{All issues resolved?}
922
+ RG1_pass -- "Yes" --> QD[Quick Dev\nsplit pane]
923
+ RG1_pass -- "🔴 spec issues" --> QS
924
+ QD --> FRG[Final Review Gate\nreview agent — split pane\nAR+DRY · UV · SR concurrent]
925
+ FRG --> FRG_pass{Pass?}
926
+ FRG_pass -- "🔴 found" --> QD
927
+ FRG_pass -- "Yes" --> QA[QA Tests\nPlaywright\nsplit pane]
928
+ QA --> GATE[⛔ USER APPROVAL]
929
+ GATE --> PTM[/prepare-to-merge]
930
+ ```
931
+
932
+ Chain: `Quick Spec → Research (1–2 in-process) → UX Design → Review Gate 1 (3 sub-agents: AR+DRY · UV · SR) → Quick Dev → Final Review Gate (3 sub-agents: AR+DRY · UV · SR) → QA Tests (Playwright) → ⛔ USER APPROVAL → /prepare-to-merge`
933
+
934
+ **QA Enforcement (Medium):** Use `@playwright/test` directly. NEVER use playwright MCP tools. QA agent writes `.spec.ts` files only.
935
+
936
+ **Research step:** 1–2 in-process analyst-agent sub-agents depending on task scope. UI-heavy: one explores codebase, one researches design patterns online. Backend-only: one agent suffices. If research reveals task is infeasible or out of scope, agents report to Master Orchestrator who HALTS and presents findings to user before proceeding to Review Gate 1.
937
+
938
+ **Review Gate 1:** `review agent` in split pane spawns 3 concurrent Gate Sub-agents (`review_type: 3-sub`): Sub-1 (architect-agent: AR+DRY), Sub-2 (ux-designer: UV), Sub-3 (security-agent: SR). Collects all verdicts. Resolves all 🟡/🔴. Once resolved, closes split pane and hands off to Quick Dev. Gate reviews both the quick-spec and the UX design produced in the prior step.
939
+
940
+ **Final Review Gate:** Same 3-sub-agent pattern (`review_type: 3-sub`). Runs after Quick Dev, before QA Tests. Replaces retro. No Review Gate 2. AR in Sub-1 runs 1 pass only — the max-3 general AR loop does NOT apply to the Final Review Gate. If 🔴 found, route back to Quick Dev. On pass, proceed to QA.
941
+
942
+ **Post-QA (after Final Review Gate → QA):** After QA tests pass, HALT for user approval:
943
+
944
+ ```
945
+ ✅ Final gate + QA passed. Ready to merge `{branch}`.
946
+
947
+ AR+DRY: ✅ passed
948
+ UV: ✅ passed
949
+ SR: ✅ passed
950
+ QA: ✅ {N} tests passing
951
+
952
+ [approve] Proceed to /prepare-to-merge
953
+ [review] I want to check something first
954
+ ```
955
+
956
+ Wait for explicit `[approve]` before running PTM.
957
+
958
+ ---
959
+
960
+ ### Large Track
961
+
962
+ **Triggers:** 12+ files or systems, new schema/service/dependency, needs migration.
963
+
964
+ ```mermaid
965
+ flowchart LR
966
+ CB[Product Brief\npm-agent — split pane] --> Res[Research\n3 analyst-agents — in-process]
967
+ Res --> PRD[Create PRD\npm-agent — split pane]
968
+ PRD --> Plan_gate[DRY+UV Planning Gate\nreview agent — split pane\n2-sub-spec]
969
+ Plan_gate --> UX[UX Design\nux-designer — split pane]
970
+ Plan_gate --> Arch[Architecture Doc\n+ inline self-review\narchitect-agent — split pane]
971
+ UX --> Des_gate[DRY+UV Design Gate\nreview agent — split pane\n2-sub-spec]
972
+ Arch --> Des_gate
973
+ Des_gate --> ES[Epics & Stories\nsm-agent — split pane]
974
+ ES --> IR[Impl Readiness Check\narchitect-agent — in-process]
975
+ IR --> SP[Sprint Plan\nsm-agent — split pane]
976
+ SP --> UA_plan[⛔ USER APPROVAL\nawait approve]
977
+ UA_plan --> Epic_loop
978
+
979
+ subgraph Epic_loop [Per-Epic Loop]
980
+ CS["Create Story\n(3-4 researchers × 2 docs each\nsplit pane)"]
981
+ CS --> DS["Dev Story\nper-story dev-agent\nsplit pane"]
982
+ DS --> RO["review agent\nAR+DRY · UV · SR concurrent"]
983
+ RO --> RO_pass{Pass?}
984
+ RO_pass -- "🔴 Critical" --> DS
985
+ RO_pass -- "Pass" --> QA_sub[QA Sub-agent\nauto-invoked\nPlaywright]
986
+ QA_sub --> QA_pass{Tests pass?}
987
+ QA_pass -- "Fail" --> DS
988
+ QA_pass -- "Pass" --> Done_epic[Story Done]
989
+ Done_epic --> Next{More stories?}
990
+ Next -- "Yes" --> CS
991
+ Next -- "No" --> Epic_loop_exit([All epics done])
992
+ end
993
+
994
+ Epic_loop_exit --> FRG_large[Final Review Gate\nreview agent — split pane\nAR+DRY · UV · SR concurrent]
995
+ FRG_large --> FRG_large_pass{Pass?}
996
+ FRG_large_pass -- "🔴 found" --> Epic_loop
997
+ FRG_large_pass -- "Pass" --> QA_large[Final QA\nqa-agent — split pane\nPlaywright]
998
+ QA_large --> UA_large[⛔ USER APPROVAL\nawait approve]
999
+ UA_large --> PTM[Prepare to Merge\nin-process]
1000
+ ```
1001
+
1002
+ **UX Design + Architecture Doc (Large Track — parallel split panes):** After the Planning Gate passes, spawn `ux-designer-agent` and `architect-agent` in two separate split panes simultaneously. Both receive the PRD and research reports as context. They work concurrently — neither waits on the other. Both must complete and report back before the Design Gate runs.
1003
+
1004
+ - `ux-designer-agent` pane: produces `ux-design.md` using `/bmad-bmm-create-ux-design`
1005
+ - `architect-agent` pane: produces `architecture.md` using `/bmad-bmm-create-architecture`
1006
+ - Design Gate ingests both artifacts once both panes have reported completion
1007
+
1008
+ **Planning Docs Enforcement (Large Track):** The following planning docs are **MANDATORY** inputs for both `Epics & Stories` and `Sprint Planning`. The orchestrator must pass ALL of these to both sm-agent invocations:
1009
+ - `product-brief.md`
1010
+ - `prd.md`
1011
+ - `research-mr.md`, `research-dr.md`, `research-tr.md` (all 3 research reports)
1012
+ - `ux-design.md`
1013
+ - `architecture.md`
1014
+ - design-gate findings
1015
+
1016
+ **Research decision framework:**
1017
+
1018
+ - External integrations involved → trigger Technical Research (`/bmad-bmm-technical-research`)
1019
+ - User acquisition or market positioning → trigger Market Research (`/bmad-bmm-market-research`)
1020
+ - Unfamiliar domain (new game mechanics, external API, regulated space) → trigger Domain Research (`/bmad-bmm-domain-research`)
1021
+
1022
+ **Epic completion condition:** All stories in the sprint plan for that epic are marked `done` AND the Review Gate has passed.
1023
+
1024
+ **Large track 3-sub-agent epic gate autonomous loop:** All 3 Gate Sub-agents run concurrently in Mode [4], sequentially in Mode [1] (`review_type: 3-sub`): Sub-1 architect-agent (AR+DRY), Sub-2 ux-designer (UV), Sub-3 security-agent (SR). Findings 🟡/🟢 → auto-fix → re-run gate. 🔴 → auto-fix what's fixable → re-run gate. All autonomous up to 3 iterations.
1025
+
1026
+ **Review gate terminal (3 loops, unresolved 🔴):** Auto-escalate via [CC] Correct Course — do not halt, do not ask. Announce: `"⚠️ Review gate [{epic_slug}] — 🔴 unresolved after 3 reviews. Auto-escalating to Correct Course."` and invoke [CC] immediately.
1027
+
1028
+ **Large track Final Review Gate:** After all epics complete, before USER APPROVAL, `review agent` runs a full 3-sub gate (`review_type: 3-sub`) — same pattern as the per-epic gates. This is a holistic end-to-end code review across all epic work. If 🔴 found, route back into the epic loop at the relevant story. On pass, proceed to Final QA.
1029
+
1030
+ **Large track Final QA:** After Final Review Gate passes, spawn a `qa-agent` in split pane to run the full Playwright test suite across all epics. QA passes → HALT for user approval.
1031
+
1032
+ **Large track post-completion:** After Final Review Gate + Final QA complete, HALT for user approval:
1033
+
1034
+ ```
1035
+ ✅ All epics complete. Final review gate passed. QA: {N} tests passing. Ready to merge `{branch}`.
1036
+
1037
+ Final gate summary:
1038
+ AR+DRY: ✅ passed
1039
+ UV: ✅ passed
1040
+ SR: ✅ passed
1041
+ QA: ✅ {N} tests passing
1042
+
1043
+ [approve] Proceed to /prepare-to-merge
1044
+ [review] I want to check something first
1045
+ ```
1046
+
1047
+ Wait for explicit `[approve]` before running PTM. PTM runs in-process in the main conversation.
1048
+
1049
+ **State machine for epic loop (expanded with new pipeline states):**
1050
+
1051
+ | State | Transitions to |
1052
+ | -------------------------------------------------------- | -------------------------------------------------------------------------------- |
1053
+ | Create Story | consolidated-research (3–4 researchers × 2 docs each, split pane) |
1054
+ | consolidated-research | story-file-written (story doc complete, status: ready-for-dev) |
1055
+ | story-file-written | Dev Story (new dev-agent per story, split pane) |
1056
+ | Dev Story | skills-detection → TDD implementation |
1057
+ | TDD implementation | review agent (3 Gate Sub-agents concurrent, `review_type: 3-sub`) |
1058
+ | review agent (Sub-1: AR+DRY) | auto-fix (🟡/🟢); halt ONLY if 🔴 requires user scope change |
1059
+ | review agent (Sub-2: UV + Sub-3: SR) | qa-sub-agent (auto-invoked, split pane) if all pass; Dev Story if 🔴 |
1060
+ | qa-sub-agent | story-done if tests pass; Dev Story with failing output if fail |
1061
+ | story-done | Create Story (next backlog story) OR all-epics-complete |
1062
+ | all-epics-complete | Final Review Gate (review agent, 3-sub, split pane) |
1063
+ | final-review-gate | Final QA (qa-agent, split pane) if pass; back into epic loop if 🔴 |
1064
+ | final-qa | ⛔ USER APPROVAL GATE — wait for `[approve]` |
1065
+ | user-approved | Prepare to Merge (in-process) |
1066
+ | blocked | any on user resolves blocker |
1067
+ | error | any on user resolves error |
1068
+
1069
+ **QA Sub-Agent Auto-Invocation (Large Track):**
1070
+ When a story reaches `story-done` state, Master Orchestrator AUTOMATICALLY spawns a `qa-agent` as a split-pane sub-agent WITHOUT waiting for user input. The QA agent:
1071
+ 1. Reads the story file and git diff for the story's implementation
1072
+ 2. Writes Playwright `.spec.ts` tests covering the story's acceptance criteria
1073
+ 3. Runs the tests and reports results
1074
+ 4. Saves its `session_id` to `agent-sessions.md` and closes
1075
+
1076
+ On QA pass: proceed to next story or Epic Retrospective. On QA failure: route back to Dev Story agent (split pane) with failing test output.
1077
+
1078
+ **QA Enforcement (Large):** `@playwright/test` only. NEVER use playwright MCP tools. QA sub-agent writes `.spec.ts` files and runs them via Playwright CLI.
1079
+
1080
+ **Per-Story Dev Agent (Large Track):**
1081
+ For large stories (3+ files or includes UX work), spawn a **new dedicated dev agent** per story in split pane:
1082
+ - Agent: `/bmad-agent-bmm-dev`
1083
+ - Pane: **split pane** — user may need to communicate scope changes mid-story
1084
+ - Context: story file, research context file, UX design doc (if UI story), IR findings
1085
+ - Session ID: save to `agent-sessions.md` on close
1086
+ - Stays open until user is satisfied. Closes after story-done + QA pass.
1087
+
1088
+ **Context scoping (per-story dev):** Pass ONLY the story file, research context file, UX design doc (if `is_ui_story: true`), and IR findings. Do NOT pass full PRD, full architecture doc, or other stories' context — causes context bloat and bleeding.
1089
+
1090
+ **Create Story — consolidated researchers:** Spawn 3–4 researchers (each covers 2 source docs) in split pane. Replaces 7 single-purpose agents. User can observe and intervene if a researcher goes off track. All run in split pane.
1091
+
1092
+ **Parallel review sub-agents (Large epic loop):** Spawned by `review agent`, not by Master Orchestrator directly. Orchestrator manages lifecycle.
1093
+
1094
+ **Architecture Doc + inline self-review:** The `architect-agent` generates the Architecture Doc AND reviews it inline within the same split pane session. No separate AR sub-agent needed. Agent runs `/bmad-bmm-create-architecture` then immediately runs `/bmad-bmm-code-review` on its own output before closing.
1095
+
1096
+ ---
1097
+
1098
+ ---
1099
+
1100
+ ### Nano Track
1101
+
1102
+ **Triggers:** 1–2 files, single function or component, ≤ 20 lines changed, no new imports, no schema changes, one-commit undo.
1103
+
1104
+ ```mermaid
1105
+ flowchart TD
1106
+ QD[Quick Dev\nquick-flow-solo-dev\nsplit pane] --> scope_check{Scope > 20 lines\nor new imports?}
1107
+ scope_check -- "Yes → HALT" --> Upgrade[Upgrade to SMALL\nreport to Master Orchestrator]
1108
+ scope_check -- "No" --> UVDRY[DRY+UV Gate\nreview agent — in-process\nDRY+UV sub concurrent]
1109
+ UVDRY --> UVDRY_pass{Pass?}
1110
+ UVDRY_pass -- "Pass" --> GATE[⛔ USER APPROVAL\nHalt — await approve]
1111
+ UVDRY_pass -- "🔴 found" --> QD
1112
+ GATE --> PTM[/prepare-to-merge]
1113
+ ```
1114
+
1115
+ Chain: `Quick Dev (split pane) → DRY+UV Gate (in-process, 2 sub-agents) → ⛔ USER APPROVAL → PTM`
1116
+
1117
+ **AR:** Skipped — full AR overhead exceeds value for ≤ 20-line changes.
1118
+ **SR:** Skipped — SR auto-pass for Nano scope; security issues at this scale are caught by DRY lens.
1119
+ **Gate Sub-1 (architect-agent):** runs DRY in sequence (`2-sub-spec`, no AR). Loads `clean-code-standards`.
1120
+ **Gate Sub-2 (ux-designer-agent):** runs UV. Checks design tokens and UI patterns if the change touches any frontend files; passes immediately for pure backend changes.
1121
+
1122
+ **QA:** Inline test assertion only. No separate `.spec.ts` file required unless the change touches critical path logic.
1123
+
1124
+ **Upgrade trigger:** If Quick Dev determines scope > 20 lines or requires new imports → HALT, report to Master Orchestrator, upgrade to SMALL.
1125
+
1126
+ **Post-dev:** After DRY+UV passes, HALT:
1127
+
1128
+ ```
1129
+ ✅ DRY+UV gate passed. Ready to merge `{branch}`.
1130
+
1131
+ Change summary:
1132
+ Files: {N} ({lines} lines changed)
1133
+ DRY: ✅ passed ({N} 🟡 auto-fixed)
1134
+ UV: ✅ passed
1135
+
1136
+ [approve] Proceed to /prepare-to-merge
1137
+ [review] I want to check something first
1138
+ ```
1139
+
1140
+ Wait for explicit `[approve]` before running PTM.
1141
+
1142
+ ---
1143
+
1144
+ ### Compact Track
1145
+
1146
+ **Triggers:** 4–8 files, no schema changes OR minor additive schema, single or 2-commit rollback, benefits from light context research.
1147
+
1148
+ ```mermaid
1149
+ flowchart TD
1150
+ QS[Quick Spec\nquick-flow-solo-dev\nin-process] --> Research_check{Research needed?}
1151
+ Research_check -- "Yes" --> Research[Quick Research\nanalyst-agent × 1\nin-process]
1152
+ Research_check -- "No" --> QD
1153
+ Research --> QD[Quick Dev\nquick-flow-solo-dev\nsplit pane]
1154
+ QD --> RG[Review Gate\nreview agent — split pane\nAR+DRY · UV · SR concurrent]
1155
+ RG --> RG_pass{Pass?}
1156
+ RG_pass -- "Pass" --> QA[QA Tests\nPlaywright\nqa-agent — split pane]
1157
+ RG_pass -- "🔴 found" --> QD
1158
+ QA --> GATE[⛔ USER APPROVAL]
1159
+ GATE --> PTM[/prepare-to-merge]
1160
+ ```
1161
+
1162
+ Chain: `Quick Spec → Quick Research (1 analyst, optional) → Quick Dev → Review Gate (3 sub-agents: AR+DRY · UV · SR) → QA Tests (Playwright) → ⛔ USER APPROVAL → PTM`
1163
+
1164
+ **QA Enforcement (Compact):** Use `@playwright/test` directly. NEVER use playwright MCP tools. QA agent writes `.spec.ts` files only.
1165
+
1166
+ **Research decision:** Optional — Master Orchestrator decides at QS completion:
1167
+ - Unfamiliar codebase area → spawn 1 analyst (codebase exploration)
1168
+ - External API dependency → spawn 1 analyst (technical research)
1169
+ - Self-contained QS → skip, go straight to QD
1170
+
1171
+ **Review Gate:** `review agent` in split pane. Spawns 3 concurrent Gate Sub-agents (`review_type: 3-sub`): Sub-1 (architect-agent: AR+DRY), Sub-2 (ux-designer: UV), Sub-3 (security-agent: SR).
1172
+
1173
+ **Post-QA:** After QA passes, HALT:
1174
+
1175
+ ```
1176
+ ✅ QA passed. Ready to merge `{branch}`.
1177
+
1178
+ Review summary:
1179
+ AR+DRY: ✅ passed ({N} 🟡 auto-fixed)
1180
+ UV: ✅ passed
1181
+ SR: ✅ passed
1182
+ QA: ✅ {N} tests passing
1183
+
1184
+ [approve] Proceed to /prepare-to-merge
1185
+ [review] I want to check something first
1186
+ ```
1187
+
1188
+ Wait for explicit `[approve]` before running PTM.
1189
+
1190
+ ---
1191
+
1192
+ ### Extended Track
1193
+
1194
+ **Triggers:** 10–16 files, schema changes likely, architectural impact (new patterns or cross-cutting concerns), multi-step rollback. Too complex for Medium but no need for epic decomposition.
1195
+
1196
+ ```mermaid
1197
+ flowchart TD
1198
+ QS[Quick Spec\nin-process] --> Res[Research × 2\nanalyst-agents\nin-process]
1199
+ Res --> PRD[PRD\npm-agent — split pane]
1200
+ PRD --> UX_Arch[UX Design + Arch Notes + Sprint Plan\nsequential · same split-pane]
1201
+ UX_Arch --> RG1[Review Gate 1\nAR+DRY · UV · SR concurrent\nreview agent — split pane]
1202
+ RG1 --> RG1_pass{Pass?}
1203
+ RG1_pass -- "🔴 plan issues" --> UX_Arch
1204
+ RG1_pass -- "Pass" --> Dev[Dev\ndev-agent — split pane]
1205
+ Dev --> RG2[Review Gate 2\nAR+DRY · UV · SR concurrent\nreview agent — split pane]
1206
+ RG2 --> RG2_pass{Pass?}
1207
+ RG2_pass -- "🔴 found" --> Dev
1208
+ RG2_pass -- "Pass" --> QA[QA Tests\nPlaywright\nqa-agent — split pane]
1209
+ QA --> GATE[⛔ USER APPROVAL]
1210
+ GATE --> PTM[/prepare-to-merge]
1211
+ ```
1212
+
1213
+ Chain: `Quick Spec → Research (2 in-process) → PRD → UX Design + Arch Notes + Sprint Plan (same session) → Review Gate 1 (3 sub-agents: AR+DRY · UV · SR — reviews all plans vs PRD) → Dev (split pane) → Review Gate 2 (3 sub-agents: AR+DRY · UV · SR) → QA Tests (Playwright) → ⛔ USER APPROVAL → PTM`
1214
+
1215
+ **QA Enforcement (Extended):** Use `@playwright/test` directly. NEVER use playwright MCP tools. QA agent writes `.spec.ts` files only.
1216
+
1217
+ **Research scope:** Always 2 agents:
1218
+ 1. Codebase exploration agent (what files/patterns are involved?)
1219
+ 2. Domain/technical research agent (external APIs, unfamiliar domain, or design patterns)
1220
+
1221
+ **Architecture Notes:** Brief, not a full Architecture Doc. Target ≤ 2 pages. Output to `_bmad-output/features/{slug}/planning/architecture-notes.md`. Contents:
1222
+ - Key tech decisions (≤ 5 bullets)
1223
+ - Data model changes
1224
+ - API contract changes
1225
+ - Dependencies introduced
1226
+ - Risk flags
1227
+
1228
+ **UX Design + Architecture Notes + Sprint Planning (Combined Step):** All three artifacts are produced in a single split pane session — no pane switch between them. The agent:
1229
+ 1. Produces the UX design doc (invoking `/bmad-bmm-create-ux-design` inline)
1230
+ 2. Immediately produces Architecture Notes (invoking `/bmad-bmm-create-architecture` in brief mode) in the same conversation
1231
+ 3. Runs Sprint Planning: spawns 2 parallel in-process sub-agents:
1232
+ - **Backend planner:** maps Arch Notes → ordered backend tasks (models, migrations, endpoints)
1233
+ - **Frontend planner:** maps UX doc + Arch Notes → ordered frontend tasks (components, hooks, API calls)
1234
+ - Sub-agents return reports; agent synthesises into a single `sprint-plan.md` (≤ 2 pages, ordered task list)
1235
+ 4. Writes `sprint-plan.md` to `_bmad-output/features/{slug}/planning/`
1236
+ 5. Closes only after ALL three docs are written
1237
+
1238
+ Context passed: PRD, research reports. Handoff: UX doc path, Arch Notes path, Sprint Plan path → Dev agent (split pane).
1239
+
1240
+ **Review Gate 1:** `review agent` in split pane. Runs after UX Design + Arch Notes + Sprint Plan, before Dev. Spawns 3 concurrent Gate Sub-agents (`review_type: 3-sub`). Reviews all planning artifacts (PRD, UX design, architecture notes, sprint plan) for coherence, feasibility, and alignment. If 🔴 plan issues found, route back to UX+Arch+Sprint step. On pass, proceed to Dev.
1241
+
1242
+ **Review Gate 2:** `review agent` in split pane. Runs after Dev, before QA Tests. Spawns 3 concurrent Gate Sub-agents (`review_type: 3-sub`). 1 pass each. Validates implementation matches PRD/Architecture Notes. If 🔴 found, route back to Dev. On pass, proceed to QA Tests.
1243
+
1244
+ **No epic loop:** Extended track uses a single dev agent for the entire implementation — no per-story agents, no parallel dev protocol. Sprint Planning produces a brief ordered task list (`sprint-plan.md`), NOT epic/story decomposition. The dev agent uses it as an implementation checklist, not as routing inputs.
1245
+
1246
+ **Post-QA (after Review Gate 2 → QA):** After QA tests pass, HALT:
1247
+
1248
+ ```
1249
+ ✅ All review gates passed. Ready to merge `{branch}`.
1250
+
1251
+ Planning summary:
1252
+ PRD: ✅ written
1253
+ UX: ✅ written
1254
+ Arch Notes: ✅ written
1255
+ Sprint Plan: ✅ written
1256
+ QA: ✅ {N} tests passing
1257
+ AR+DRY: ✅ passed
1258
+ UV: ✅ passed
1259
+ SR: ✅ passed
1260
+
1261
+ [approve] Proceed to /prepare-to-merge
1262
+ [review] I want to check something first
1263
+ ```
1264
+
1265
+ Wait for explicit `[approve]` before running PTM.
1266
+
1267
+ ---
1268
+
1269
+ ### Review Track
1270
+
1271
+ **Trigger:** User says `[RV]`, "review", "audit", "review track", or similar.
1272
+
1273
+ Unlike feature tracks, Review Track starts with review — no triage score, no spec up front. Complexity determines whether a research phase runs before the multi-lens review.
1274
+
1275
+ ```mermaid
1276
+ flowchart TD
1277
+ TD[Target Definition\narea + depth A/B/C] --> CA[Complexity Assessment\nresearch needed?]
1278
+ CA -- "No" --> MLR[Multi-Lens Review\nreview agent — full]
1279
+ CA -- "Yes" --> RP[Research Phase\n2–3 analyst-agents in-process]
1280
+ RP --> RS[Research Synthesis\nresearch-synthesis-{artifact_id}.md]
1281
+ RS --> MLR
1282
+ MLR --> FS[Findings Synthesis\nreview-synthesis-{artifact_id}.md]
1283
+ FS --> SA[Sort Artifacts\nreview-plan-{artifact_id}.md]
1284
+ SA --> VG{Volume Gate\n>20 items OR\ncross-cutting?}
1285
+ VG -- "LARGE" --> EP[Epics & Stories\nsm-agent]
1286
+ VG -- "SMALL" --> QD[Quick Dev\nquick-flow-solo-dev — split pane]
1287
+ EP --> IR[IR Check\narchitect-agent]
1288
+ IR --> SP[Sprint Planning\nsm-agent]
1289
+ SP --> EL[Epic Dev Loop\ndev+qa+AR per epic\n3 AR passes max]
1290
+ EL --> FRG_rv[Final Review Gate\nreview agent — 3-sub\nAR+DRY · UV · SR]
1291
+ FRG_rv --> FRG_rv_pass{Pass?}
1292
+ FRG_rv_pass -- "🔴 found" --> EL
1293
+ FRG_rv_pass -- "Pass" --> QA_rv[QA Tests\nqa-agent — split pane\nPlaywright]
1294
+ QA_rv --> Retro_rv[Epic Retrospective\nsm-agent]
1295
+ Retro_rv --> GATE[⛔ USER APPROVAL]
1296
+ QD --> RG[Review Gate\nUV+AR+DRY\n1 AR pass max on SMALL]
1297
+ RG --> RG_pass{Pass?}
1298
+ RG_pass -- "🔴 found" --> QD
1299
+ RG_pass -- "Pass" --> QA[QA Tests\nPlaywright]
1300
+ QA --> GATE
1301
+ GATE --> PTM[/prepare-to-merge]
1302
+ ```
1303
+
1304
+ **Chain (LARGE):** Target Definition → Complexity Assessment → Research Phase (optional) → Multi-Lens Review (AR+UV+DRY+SR concurrent) → Findings Synthesis → Sort Artifacts → Epics & Stories → IR Check → Sprint Planning → Epic Dev Loop (dev+Review Gate+QA per epic, AR up to 3 passes) → Final Review Gate (3-sub: AR+DRY · UV · SR) → QA Tests → Epic Retrospective → ⛔ USER APPROVAL → /prepare-to-merge
1305
+
1306
+ **Chain (SMALL):** Target Definition → Complexity Assessment → Research Phase (optional) → Multi-Lens Review (AR+UV+DRY+SR concurrent) → Findings Synthesis → Sort Artifacts → Quick Dev → Review Gate (UV+AR+DRY+SR, 1 AR pass max) → QA Tests → ⛔ USER APPROVAL → /prepare-to-merge
1307
+
1308
+ #### Step 1 — Target Definition
1309
+
1310
+ Conductor asks:
1311
+ ```
1312
+ 🔍 Review Track activated.
1313
+
1314
+ Which area are we auditing?
1315
+ - A file path or glob (e.g. frontend/components/arcade/, backend/missions/)
1316
+ - A feature name (e.g. "the mission wizard", "trading cards pack flow")
1317
+ - A module or system (e.g. "auth middleware", "arcade transport layer")
1318
+
1319
+ How deep should we go?
1320
+ [A] Targeted area — just the code in that path/feature
1321
+ [B] Full implementation review — code + all plan files (PRD, arch, UX design, epics, sprints)
1322
+ [C] Custom — I'll describe it
1323
+ ```
1324
+
1325
+ After user answers:
1326
+ - Set `session-state.review_target` and `review_depth`
1327
+ - Derive `feature-slug` from the target (e.g. `mission-wizard-review`)
1328
+ - **Derive `artifact_id`** from `session_id`: `artifact_id = session_id.split('-', 3)[3]` — everything after the third `-` separator. Store as `session-state.artifact_id`.
1329
+ - Example: `session_id = 2026-03-13-mission-wizard-review-a3f2` → `artifact_id = mission-wizard-review-a3f2`
1330
+ - Create output directory: `_bmad-output/features/{feature-slug}/planning/`
1331
+ - Pre-flight: run `git diff {default_branch}...HEAD -- {target-path}` to surface recent changes
1332
+
1333
+ **All review artifacts use `{artifact_id}` as the filename suffix:**
1334
+
1335
+ | Artifact | Filename pattern |
1336
+ |---|---|
1337
+ | Review plan | `review-plan-{artifact_id}.md` |
1338
+ | Review synthesis | `review-synthesis-{artifact_id}.md` |
1339
+ | Research synthesis | `research-synthesis-{artifact_id}.md` |
1340
+ | Research bucket N | `research-bucket-{N}-{artifact_id}.md` |
1341
+ | UI review findings | `ui-review-findings-{artifact_id}.md` |
1342
+ | UI review loop pass N | `ui-review-findings-{artifact_id}-pass{N}.md` |
1343
+ | DRY/SOLID review findings | `dry-review-findings-{artifact_id}.md` |
1344
+ | DRY/SOLID loop pass N | `dry-review-findings-{artifact_id}-pass{N}.md` |
1345
+ | Security review findings | `sr-review-findings-{artifact_id}.md` |
1346
+ | Security review loop pass N | `sr-review-findings-{artifact_id}-pass{N}.md` |
1347
+ | Epic retro | `retro-{epic-slug}-{artifact_id}.md` |
1348
+ | UX notes | `ux-notes-{artifact_id}.md` |
1349
+ | Arch notes | `arch-notes-{artifact_id}.md` |
1350
+ | PRD amends | `prd-amends-{artifact_id}.md` |
1351
+
1352
+ All written to `_bmad-output/features/{feature-slug}/planning/`.
1353
+
1354
+ #### Step 2 — Complexity Assessment
1355
+
1356
+ | Signal | Weight |
1357
+ |--------|--------|
1358
+ | User selected `[B] Full implementation review` | Always triggers research phase |
1359
+ | Target spans multiple systems or directories | Usually triggers research |
1360
+ | Plan files exist for this feature (PRD, arch, epics) | Triggers research if referenced |
1361
+ | Targeted file/component, no plan files | Skip research → go direct to multi-lens review |
1362
+
1363
+ Research buckets: max **3 buckets**, each with **2–3 tasks**. All in-process (never split pane).
1364
+
1365
+ #### Step 3 — Research Phase _(if triggered)_
1366
+
1367
+ Dispatch in-process `analyst-agent` sub-agents per bucket — concurrently (Mode [4]) or sequentially (Mode [1]). Output files: `research-bucket-{N}-{artifact_id}.md`.
1368
+
1369
+ After researchers complete, synthesize into: `research-synthesis-{artifact_id}.md`
1370
+
1371
+ #### Step 4 — Multi-Lens Review
1372
+
1373
+ Route to `review agent` with `review_type: full`. Three Gate Sub-agents run concurrently:
1374
+
1375
+ | Gate Sub-agent | Lens |
1376
+ |---|---|
1377
+ | Sub-1 (architect-agent) | AR: code quality, bugs, test gaps + DRY: SOLID/DRY violations |
1378
+ | Sub-2 (ux-designer-agent) | UV: design token violations, dialog pattern, component reuse, a11y |
1379
+ | Sub-3 (security-agent) | SR: OWASP vulns, data flow, auth flaws, secrets, injection |
1380
+
1381
+ **review agent invocation:**
1382
+ ```
1383
+ <context>
1384
+ session_id: {session_id}
1385
+ artifact_id: {artifact_id}
1386
+ branch: {branch}
1387
+ step: "Review Track — Multi-Lens Audit"
1388
+ artifact_path: {research-synthesis-{artifact_id}.md | review_target}
1389
+ track: review
1390
+ review_type: full
1391
+ planning_artifacts: _bmad-output/features/{feature-slug}/planning/
1392
+ ui_review_context:
1393
+ skill: ui-ux-pro-custom
1394
+ stack: shadcn
1395
+ styling_standards: {project_styling_standards_path}
1396
+ output_path: _bmad-output/features/{feature-slug}/planning/ui-review-findings-{artifact_id}.md
1397
+ ar_dry_context:
1398
+ skill: clean-code-standards
1399
+ agent: /bmad-agent-bmm-architect
1400
+ dry_output_path: _bmad-output/features/{feature-slug}/planning/dry-review-findings-{artifact_id}.md
1401
+ sr_context:
1402
+ skills: [security-review, /security-review]
1403
+ agent: /bmad-agent-bmm-security
1404
+ output_path: _bmad-output/features/{feature-slug}/planning/sr-review-findings-{artifact_id}.md
1405
+ </context>
1406
+ /bmad-agent-review-agent
1407
+ ```
1408
+
1409
+ #### Step 5 — Findings Synthesis
1410
+
1411
+ Categorize: `🔴 Critical` / `🟡 Major` / `🟢 Minor`. Write `review-synthesis-{artifact_id}.md`.
1412
+
1413
+ #### Step 6 — Sort Artifacts → Build Plan File
1414
+
1415
+ Write master plan file: `review-plan-{artifact_id}.md`
1416
+
1417
+ #### Step 7 — Volume / Complexity Gate
1418
+
1419
+ ```
1420
+ Condition A: > 20 actionable items → LARGE path
1421
+ Condition B: Full review with cross-cutting arch or product gaps → LARGE path
1422
+ Otherwise → SMALL path
1423
+ ```
1424
+
1425
+ User may override recommendation.
1426
+
1427
+ #### LARGE PATH — Epics Loop
1428
+
1429
+ **Step 8L:** Route `/bmad-agent-bmm-sm` → `/bmad-bmm-create-epics-and-stories`. Input: `review-plan-{artifact_id}.md · review-synthesis-{artifact_id}.md · existing prd.md/ux-design.md if present for the target area`. 🔴 Critical findings take priority in story ordering.
1430
+
1431
+ **Step 9L:** IR Check — `/bmad-agent-bmm-architect` → `/bmad-bmm-check-implementation-readiness`
1432
+
1433
+ **Step 10L:** Sprint Planning — `/bmad-agent-bmm-sm` → `/bmad-bmm-sprint-planning`
1434
+
1435
+ **Step 11L — Epic Dev Loop:**
1436
+ ```
1437
+ Per epic:
1438
+ 1. Dev Story → /bmad-agent-bmm-dev (split pane, --dangerously-skip-permissions)
1439
+ 2. Review Gate → review agent (ar-only, up to 3 passes — standard AR loop rules)
1440
+ 3. QA Tests → /bmad-agent-bmm-qa (Playwright .spec.ts only)
1441
+ ↩ loop until story passes Review Gate + QA with no 🔴
1442
+ ```
1443
+
1444
+ On max 3 AR iterations with unresolved 🔴 → HALT per AR escalation rules above.
1445
+
1446
+ **Step 12L — Final Review Gate:** `review agent` with `review_type: 3-sub`. Holistic end-to-end code review across all epic work. Input: full branch diff · product-brief.md · prd.md · ux-design.md · architecture.md · all epic artifacts. If 🔴 found → route back to epic loop at relevant story. On pass → Final QA.
1447
+
1448
+ **Step 13L — QA Tests:** `/bmad-agent-bmm-qa` (split pane). Full Playwright `.spec.ts` suite across all epics. Input: prd.md · ux-design.md · architecture.md · all epic acceptance criteria. On pass → USER APPROVAL.
1449
+
1450
+ **Step 14L:** Epic Retrospective — `/bmad-agent-bmm-sm` → `/bmad-bmm-retrospective`. Output: `retro-{epic-slug}-{artifact_id}.md`.
1451
+
1452
+ #### SMALL PATH — Quick Dev
1453
+
1454
+ **Step 8S:** Route `/bmad-agent-bmm-quick-flow-solo-dev` → `/bmad-bmm-quick-dev` (split pane). Fixes all 🔴 + 🟡 from `review-plan-{artifact_id}.md`.
1455
+
1456
+ **Step 9S — Review Gate:** `review agent` with `review_type: 3-sub`. **AR pass rules (Small path):** 1 pass max. 🟡/🟢 auto-fixed. 🔴 → route back to Step 8S once. Persistent 🔴 → escalate.
1457
+
1458
+ **Step 10S:** QA Tests — `/bmad-agent-bmm-qa` (split pane). Playwright `.spec.ts` only.
1459
+
1460
+ #### USER APPROVAL GATE (Both Paths)
1461
+
1462
+ ```
1463
+ ✅ All fixes complete and validated.
1464
+
1465
+ Review Track Summary:
1466
+ Target: {review_target}
1467
+ Depth: {targeted | full}
1468
+ Path: {Large — {N} epics | Small}
1469
+ Fixed: {N} items (🔴 {r} · 🟡 {y})
1470
+ AR+DRY: ✅ passed
1471
+ UV: ✅ passed
1472
+ SR: ✅ passed
1473
+ QA: ✅ {N} tests passing
1474
+
1475
+ [approve] Proceed to /prepare-to-merge
1476
+ [review] I want to check something first
1477
+ ```
1478
+
1479
+ Wait for explicit `[approve]`. Do NOT auto-proceed.
1480
+
1481
+ #### Session State Fields (Review Track)
1482
+
1483
+ ```yaml
1484
+ track: review
1485
+ review_target: "{path or feature name}"
1486
+ review_depth: targeted | full
1487
+ review_path: large | small
1488
+ review_actionable_count: {N}
1489
+ review_researchers_dispatched: 0 | 1 | 2 | 3
1490
+ review_plan_path: _bmad-output/features/{feature-slug}/planning/review-plan-{artifact_id}.md
1491
+ artifact_id: "{slug}-{4-hex}"
1492
+ uv_loop_max: null # set when [UVL] activates
1493
+ dry_loop_max: null # set when [DRYL] activates
1494
+ sr_loop_max: null # set when [SRL] activates
1495
+ ```
1496
+
1497
+ **Reference:** `_bmad-output/bmb-creations/master-orchestrator/tracks/review-track.md`
1498
+
1499
+ ---
1500
+
1501
+ ### UI Review Sub-Workflow (`[UV]`)
1502
+
1503
+ **Trigger:** `[UV]` standalone OR injected as UI sub-agent by `review agent` during Multi-Lens Audit.
1504
+
1505
+ **Agent:** `/bmad-agent-bmm-ux-designer`
1506
+
1507
+ **Skill:** `ui-ux-pro-custom` (`--design-system --stack shadcn`) — loaded on EVERY invocation.
1508
+ Also runs: `--domain ux` for accessibility supplement.
1509
+ **Also reads:** your project's styling standards doc (configure path in master-orchestrator config.yaml).
1510
+
1511
+ #### Audit Categories
1512
+
1513
+ | Category | Severity Guide |
1514
+ |---|---|
1515
+ | Design Token Violations | 🔴 always critical |
1516
+ | Dialog Pattern (WCAG 2.1 flex-column) | 🔴 always critical |
1517
+ | Component Reuse (reimplementing `ui/` components) | 🟡 major |
1518
+ | Typography (hardcoded font sizes) | 🟡 major |
1519
+ | Spacing & Layout (magic pixel values) | 🟢 minor |
1520
+ | Mobile Responsive (missing breakpoints) | 🔴 if completely absent · 🟡 if partial |
1521
+ | Accessibility (a11y) — WCAG 2.1 AA | 🔴 for AA violations · 🟡 for improvements |
1522
+ | Animation & Transitions | 🟡 major |
1523
+ | Icon Consistency | 🟢 minor |
1524
+ | Dark Mode | 🟡 major |
1525
+
1526
+ **Status rules:**
1527
+ - `passed` — zero critical findings AND three or fewer major findings
1528
+ - `needs_fixes` — any critical finding OR four or more major findings
1529
+
1530
+ **Output:** `ui-review-findings-{artifact_id}.md` in `_bmad-output/features/{feature-slug}/planning/`
1531
+
1532
+ **YAML verdict returned to review agent:**
1533
+ ```yaml
1534
+ ui_review_verdict:
1535
+ target: {path or feature name}
1536
+ actionable_count: {N}
1537
+ critical: {count}
1538
+ major: {count}
1539
+ minor: {count}
1540
+ findings_path: _bmad-output/features/{feature-slug}/planning/ui-review-findings-{artifact_id}.md
1541
+ status: passed | needs_fixes
1542
+ ```
1543
+
1544
+ **Handoff context block:**
1545
+ ```
1546
+ <context>
1547
+ session_id: {session_id}
1548
+ artifact_id: {artifact_id}
1549
+ step: "UI Review — {target}"
1550
+ review_target: {path or feature name}
1551
+ feature_slug: {slug}
1552
+ planning_artifacts: _bmad-output/features/{feature-slug}/planning/
1553
+ skill: ui-ux-pro-custom
1554
+ stack: shadcn
1555
+ styling_standards: {project_styling_standards_path}
1556
+ loop_mode: false
1557
+ output_path: _bmad-output/features/{feature-slug}/planning/ui-review-findings-{artifact_id}.md
1558
+ execution_directive: >
1559
+ FULLY AUTONOMOUS. Load ui-ux-pro-custom (--design-system --stack shadcn) and
1560
+ (--domain ux). Read styling-standards.md. Audit the target. Produce findings report.
1561
+ Do not halt for input. Write output to output_path.
1562
+ </context>
1563
+ /bmad-agent-bmm-ux-designer
1564
+ ```
1565
+
1566
+ **`[UV]` standalone post-findings:** Display summary, then ask:
1567
+ ```
1568
+ 🎨 UI Review complete — {N} findings (🔴 {r} · 🟡 {y} · 🟢 {g}).
1569
+
1570
+ [QD] Fix now — Quick Dev → QA → Review Gate (3 sub-agents) → USER APPROVAL
1571
+ [defer] Save findings for later — findings written to {output_path}
1572
+ ```
1573
+
1574
+ **Reference:** `_bmad-output/bmb-creations/master-orchestrator/tracks/ui-review-workflow.md`
1575
+
1576
+ ---
1577
+
1578
+ ### UI Review Loop (`[UVL]`)
1579
+
1580
+ **Trigger:** `[UVL]` or fuzzy match on "ui-review-loop".
1581
+
1582
+ **Purpose:** Autonomous N-pass UI review cycle — asks loop count upfront, then runs all passes + auto-fixes without stopping. Same skill context as `[UV]`.
1583
+
1584
+ #### Upfront Loop Count Prompt
1585
+
1586
+ ```
1587
+ 🎨 UI Review Loop activated.
1588
+
1589
+ How many review iterations would you like?
1590
+ [1] One pass — review and fix, no repeat
1591
+ [2] Two passes — fix then re-verify
1592
+ [3] Three passes — maximum (recommended for major UI overhaul)
1593
+ [enter] Default: 2
1594
+ ```
1595
+
1596
+ Store as `session-state.uv_loop_max` (1–3).
1597
+
1598
+ #### Loop Execution (Fully Autonomous)
1599
+
1600
+ Derive `artifact_id` from active `session_id` if not already set. Run ALL passes without halting between them.
1601
+
1602
+ **Pass 1:**
1603
+ 1. Route `/bmad-agent-bmm-ux-designer` with UI Review handoff context (`loop_mode: true`, `output_path: ...pass1.md`)
1604
+ 2. ux-designer produces `ui-review-findings-{artifact_id}-pass1.md`
1605
+ 3. Conductor reads findings:
1606
+ - 🟢 only → log, announce `"✅ UV passed in 1 pass."` → exit loop early
1607
+ - 🟡/🟢 → extract all actionable items, build fix list
1608
+ - 🔴 → add to fix list (🔴 first)
1609
+
1610
+ **Auto-fix step (after each pass with 🔴 or 🟡):**
1611
+ Route dev agent with fix list from `ui-review-findings-{artifact_id}-pass{N}.md`. Dev fixes ALL listed items autonomously. No halts.
1612
+
1613
+ **Pass 2** (if `uv_loop_max >= 2` AND pass 1 had findings):
1614
+ Re-run ux-designer. Write `ui-review-findings-{artifact_id}-pass2.md`. Same categorization.
1615
+
1616
+ **Pass 3** (if `uv_loop_max = 3` AND pass 2 had findings):
1617
+ Re-run ux-designer. Write `ui-review-findings-{artifact_id}-pass3.md`.
1618
+
1619
+ **After final pass OR early exit on 🟢-only:**
1620
+ - Write canonical: `ui-review-findings-{artifact_id}.md` (copy of last pass file)
1621
+ - Announce:
1622
+ ```
1623
+ ✅ UV loop complete — {N} pass(es). {r} 🔴 {y} 🟡 {g} 🟢 remaining.
1624
+ ```
1625
+
1626
+ **If `uv_loop_max` reached AND unresolved 🔴 still present — HALT:**
1627
+ ```
1628
+ ⚠️ UI Review loop limit ({uv_loop_max} passes) reached.
1629
+ Persistent 🔴 findings:
1630
+ - {finding 1}
1631
+ - {finding 2}
1632
+ Options: [skip] override with documented risk | [escalate] trigger [CC] Correct Course.
1633
+ ```
1634
+
1635
+ **Key differences from single-pass `[UV]`:**
1636
+ - `[UV]` runs once, reports, asks user what to do next
1637
+ - `[UVL]` asks loop count upfront, then runs ALL passes + auto-fixes without stopping
1638
+
1639
+ **Same skill context as `[UV]` on EVERY pass:** `ui-ux-pro-custom` + `shadcn` stack + `docs/frontend/styling-standards.md`
1640
+
1641
+ **Per-pass output files:** `ui-review-findings-{artifact_id}-pass{N}.md`
1642
+ **Canonical output:** `ui-review-findings-{artifact_id}.md` (written after loop exits)
1643
+
1644
+ This mirrors the AR review loop behaviour defined in the Adversarial Review autonomous flow section above.
1645
+
1646
+ ---
1647
+
1648
+ ### DRY/SOLID Review Sub-Workflow (`[DRY]`)
1649
+
1650
+ **Trigger:** `[DRY]` standalone OR injected as part of Gate Sub-1 by `review agent` (architect-agent runs AR + DRY in sequence as part of the gate).
1651
+
1652
+ **Agent:** `/bmad-agent-bmm-architect`
1653
+
1654
+ **Skill:** `clean-code-standards` — loaded on EVERY invocation. Evaluates 23 rules across 7 categories (SOLID, Core, Design Patterns, Organization, Naming, Functions, Documentation).
1655
+
1656
+ **Finding IDs:** `DRY-001`, `DRY-002`, etc.
1657
+
1658
+ **Auto-pass rule:** If the target is pure markup (`.css`/`.svg`/`.md` only — no `.ts`/`.tsx`/`.py`), DRY auto-passes with a note.
1659
+
1660
+ #### Audit Categories
1661
+
1662
+ | Category | Rules | Severity Guide |
1663
+ |---|---|---|
1664
+ | SOLID | SRP · OCP · LSP · ISP · DIP | 🔴 when causing tight coupling or untestability |
1665
+ | Core Principles | DRY · KISS · YAGNI · SoC · LoD · Fail Fast · Encapsulation | 🔴 DRY with 3+ duplicated blocks · 🟡 others |
1666
+ | Design Patterns | Repository · Factory · Observer | 🟡 major |
1667
+ | Code Organization | Module size (>300 lines) · Function size (>30 lines) · Nesting (3+ levels) | 🟡 major |
1668
+ | Naming | Intent · Consistency | 🟡 major |
1669
+ | Functions | ≤3 args · No hidden side effects | 🟡 major |
1670
+ | Documentation | WHY not WHAT | 🟢 minor |
1671
+
1672
+ **Status rules:**
1673
+ - `passed` — zero critical findings and ≤3 major findings
1674
+ - `needs_fixes` — any critical finding OR 4+ major findings
1675
+
1676
+ **Output:** `dry-review-findings-{artifact_id}.md` in `_bmad-output/features/{feature-slug}/planning/`
1677
+
1678
+ **YAML verdict returned:**
1679
+ ```yaml
1680
+ dry_review_verdict:
1681
+ target: {path or feature name}
1682
+ actionable_count: {N}
1683
+ critical: {count}
1684
+ major: {count}
1685
+ minor: {count}
1686
+ findings_path: _bmad-output/features/{feature-slug}/planning/dry-review-findings-{artifact_id}.md
1687
+ status: passed | needs_fixes
1688
+ ```
1689
+
1690
+ **Handoff context block:**
1691
+ ```
1692
+ <context>
1693
+ session_id: {session_id}
1694
+ artifact_id: {artifact_id}
1695
+ step: "DRY/SOLID Review — {target}"
1696
+ review_target: {path or feature name}
1697
+ feature_slug: {slug}
1698
+ planning_artifacts: _bmad-output/features/{feature-slug}/planning/
1699
+ skill: clean-code-standards
1700
+ output_path: _bmad-output/features/{feature-slug}/planning/dry-review-findings-{artifact_id}.md
1701
+ execution_directive: >
1702
+ FULLY AUTONOMOUS. Load clean-code-standards skill. Audit all .ts, .tsx, .py files
1703
+ in the target. Evaluate all 23 rules. Produce findings report. Write output.
1704
+ Do not halt for input.
1705
+ </context>
1706
+ /bmad-agent-bmm-architect
1707
+ ```
1708
+
1709
+ **`[DRY]` standalone post-findings:** Display summary, then ask:
1710
+ ```
1711
+ 🔨 DRY/SOLID Review complete — {N} findings (🔴 {r} · 🟡 {y} · 🟢 {g}).
1712
+
1713
+ [QD] Fix now — Quick Dev → QA → Review Gate (3 sub-agents) → USER APPROVAL
1714
+ [defer] Save findings for later — written to {output_path}
1715
+ ```
1716
+
1717
+ **Reference:** `_bmad-output/bmb-creations/master-orchestrator/tracks/dr-review-workflow.md`
1718
+
1719
+ ---
1720
+
1721
+ ### DRY/SOLID Review Loop (`[DRYL]`)
1722
+
1723
+ **Trigger:** `[DRYL]` or fuzzy match on "dry-solid-review-loop".
1724
+
1725
+ **Purpose:** Autonomous N-pass DRY/SOLID review cycle — asks loop count upfront, then runs all passes + auto-fixes without stopping. Same skill context as `[DRY]`.
1726
+
1727
+ #### Upfront Loop Count Prompt
1728
+
1729
+ ```
1730
+ 🔨 DRY/SOLID Review Loop activated.
1731
+
1732
+ How many review iterations would you like?
1733
+ [1] One pass — review and fix, no repeat
1734
+ [2] Two passes — fix then re-verify
1735
+ [3] Three passes — maximum (recommended for major refactor)
1736
+ [enter] Default: 2
1737
+ ```
1738
+
1739
+ Store as `session-state.dry_loop_max` (1–3).
1740
+
1741
+ #### Loop Execution (Fully Autonomous)
1742
+
1743
+ Derive `artifact_id` from active `session_id` if not already set. Run ALL passes without halting.
1744
+
1745
+ **Pass 1:**
1746
+ 1. Route `/bmad-agent-bmm-architect` with DRY Review handoff context (`output_path: ...pass1.md`)
1747
+ 2. architect-agent produces `dry-review-findings-{artifact_id}-pass1.md`
1748
+ 3. Conductor reads findings:
1749
+ - 🟢 only → log, announce `"✅ DRY passed in 1 pass."` → exit loop early
1750
+ - 🟡/🔴 → extract all actionable items, build fix list (🔴 first)
1751
+
1752
+ **Auto-fix step (after each pass with 🔴 or 🟡):**
1753
+ Route dev agent with fix list. Dev fixes ALL listed items autonomously. No halts.
1754
+
1755
+ **Pass 2** (if `dry_loop_max >= 2` AND pass 1 had findings):
1756
+ Re-run architect-agent. Write `dry-review-findings-{artifact_id}-pass2.md`. Same categorization.
1757
+
1758
+ **Pass 3** (if `dry_loop_max = 3` AND pass 2 had findings):
1759
+ Re-run architect-agent. Write `dry-review-findings-{artifact_id}-pass3.md`.
1760
+
1761
+ **After final pass OR early exit on 🟢-only:**
1762
+ - Write canonical: `dry-review-findings-{artifact_id}.md` (copy of last pass)
1763
+ - Announce: `"✅ DRY loop complete — {N} pass(es). {r} 🔴 {y} 🟡 {g} 🟢 remaining."`
1764
+
1765
+ **If `dry_loop_max` reached AND unresolved 🔴 — HALT:**
1766
+ ```
1767
+ ⚠️ DRY/SOLID Review loop limit ({dry_loop_max} passes) reached.
1768
+ Persistent 🔴 findings:
1769
+ - {finding 1}
1770
+ - {finding 2}
1771
+ Options: [skip] override with documented risk | [escalate] trigger [CC] Correct Course.
1772
+ ```
1773
+
1774
+ **Per-pass output files:** `dry-review-findings-{artifact_id}-pass{N}.md`
1775
+ **Canonical output:** `dry-review-findings-{artifact_id}.md` (written after loop exits)
1776
+
1777
+ This mirrors the UV and AR review loop behaviour defined above.
1778
+
1779
+ ---
1780
+
1781
+ ### Security Review Sub-Workflow (`[SR]`)
1782
+
1783
+ **Trigger:** `[SR]` standalone OR injected as Gate Sub-3 by `review agent`.
1784
+
1785
+ **Agent:** `/bmad-agent-bmm-security` (fallback: `/bmad-agent-bmm-dev` if security agent not installed)
1786
+
1787
+ **Skills:** BOTH loaded on EVERY invocation:
1788
+ 1. `security-review` (getsentry) — confidence-tiered, data flow tracing, `VULN-NNN`/`VERIFY-NNN` IDs
1789
+ 2. Claude Code native `/security-review` — SQL injection, XSS, auth flaws, input sanitization, deps
1790
+
1791
+ **Auto-pass rule:** If the target is pure markup (`.css`/`.svg`/`.md` only), SR auto-passes with a note.
1792
+
1793
+ #### Vulnerability Categories
1794
+
1795
+ | Category | What to Check | Severity |
1796
+ |---|---|---|
1797
+ | SQL Injection | Raw query strings, f-string in queries, ORM raw() | 🔴 HIGH |
1798
+ | XSS | `dangerouslySetInnerHTML`, `innerHTML`, unescaped vars | 🔴 HIGH |
1799
+ | Authentication | Missing `@token_required`/`@admin_required`, JWT gaps | 🔴 HIGH |
1800
+ | IDOR | Missing ownership checks on resource access | 🔴 HIGH |
1801
+ | Secrets in Code | Hardcoded API keys, passwords, tokens | 🔴 HIGH |
1802
+ | Input Validation | Unvalidated request params, missing bounds | 🟡 MEDIUM |
1803
+ | CSRF | State-changing POST without CSRF protection | 🟡 MEDIUM |
1804
+ | Path Traversal | User input in file paths, `../` sequences | 🟡 MEDIUM |
1805
+ | Broken Access Control | Privilege escalation, role bypass | 🟡 MEDIUM |
1806
+ | Dependency Vulns | Known CVEs in requirements/package.json | 🟡 MEDIUM |
1807
+
1808
+ **Severity mapping:**
1809
+ - 🔴 Critical = HIGH confidence (confirmed exploitable, clear data flow to sink)
1810
+ - 🟡 Major = MEDIUM confidence (probable, needs verification) — finding ID: `VERIFY-NNN`
1811
+ - 🟢 Minor = LOW confidence / informational
1812
+
1813
+ **Status rules:**
1814
+ - `passed` — zero critical (HIGH) findings and ≤3 major (MEDIUM) findings
1815
+ - `needs_fixes` — any critical finding OR 4+ major findings
1816
+
1817
+ **Output:** `sr-review-findings-{artifact_id}.md` in `_bmad-output/features/{feature-slug}/planning/`
1818
+
1819
+ **YAML verdict returned:**
1820
+ ```yaml
1821
+ sr_review_verdict:
1822
+ target: {path or feature name}
1823
+ actionable_count: {N}
1824
+ critical: {count of HIGH}
1825
+ major: {count of MEDIUM}
1826
+ minor: {count of LOW}
1827
+ findings_path: _bmad-output/features/{feature-slug}/planning/sr-review-findings-{artifact_id}.md
1828
+ status: passed | needs_fixes
1829
+ ```
1830
+
1831
+ **Handoff context block:**
1832
+ ```
1833
+ <context>
1834
+ session_id: {session_id}
1835
+ artifact_id: {artifact_id}
1836
+ step: "Security Review — {target}"
1837
+ review_target: {path or feature name}
1838
+ feature_slug: {slug}
1839
+ planning_artifacts: _bmad-output/features/{feature-slug}/planning/
1840
+ skills: [security-review, /security-review]
1841
+ output_path: _bmad-output/features/{feature-slug}/planning/sr-review-findings-{artifact_id}.md
1842
+ execution_directive: >
1843
+ FULLY AUTONOMOUS. Load getsentry security-review skill AND activate native /security-review.
1844
+ Run both on the target. Produce unified findings using VULN-NNN (HIGH) / VERIFY-NNN (MEDIUM).
1845
+ Write output to output_path. Do not halt for input. Return sr_review_verdict.
1846
+ </context>
1847
+ /bmad-agent-bmm-security
1848
+ ```
1849
+
1850
+ **`[SR]` standalone post-findings:** Display summary, then ask:
1851
+ ```
1852
+ 🔒 Security Review complete — {N} findings (🔴 {r} VULN · 🟡 {y} VERIFY · 🟢 {g}).
1853
+
1854
+ [QD] Fix now — Quick Dev → QA → Review Gate (3 sub-agents) → USER APPROVAL
1855
+ [defer] Save findings for later — written to {output_path}
1856
+ ```
1857
+
1858
+ **Reference:** `_bmad-output/bmb-creations/master-orchestrator/tracks/sr-review-workflow.md`
1859
+
1860
+ ---
1861
+
1862
+ ### Security Review Loop (`[SRL]`)
1863
+
1864
+ **Trigger:** `[SRL]` or fuzzy match on "security-review-loop".
1865
+
1866
+ **Purpose:** Autonomous N-pass security review cycle. Same skill context as `[SR]` on every pass.
1867
+
1868
+ #### Upfront Loop Count Prompt
1869
+
1870
+ ```
1871
+ 🔒 Security Review Loop activated.
1872
+
1873
+ How many review iterations would you like?
1874
+ [1] One pass — review and fix, no repeat
1875
+ [2] Two passes — fix then re-verify
1876
+ [3] Three passes — maximum (recommended for security hardening sprint)
1877
+ [enter] Default: 2
1878
+ ```
1879
+
1880
+ Store as `session-state.sr_loop_max` (1–3).
1881
+
1882
+ #### Loop Execution (Fully Autonomous)
1883
+
1884
+ Derive `artifact_id` from active `session_id` if not already set. Run ALL passes without halting.
1885
+
1886
+ **Pass 1:**
1887
+ 1. Route `/bmad-agent-bmm-security` (or dev fallback) with both skills loaded
1888
+ 2. Agent produces `sr-review-findings-{artifact_id}-pass1.md`
1889
+ 3. Conductor reads findings:
1890
+ - 🟢 only → log, announce `"✅ SR passed in 1 pass."` → exit loop early
1891
+ - 🟡/🔴 → extract all actionable items (🔴 VULN first, then 🟡 VERIFY)
1892
+
1893
+ **Auto-fix step (after each pass with 🔴 or 🟡):**
1894
+ Route dev agent with fix list. Dev fixes ALL listed items autonomously. No halts.
1895
+
1896
+ **Pass 2** (if `sr_loop_max >= 2` AND pass 1 had findings):
1897
+ Re-run security agent with both skills. Write `sr-review-findings-{artifact_id}-pass2.md`.
1898
+
1899
+ **Pass 3** (if `sr_loop_max = 3` AND pass 2 had findings):
1900
+ Re-run security agent. Write `sr-review-findings-{artifact_id}-pass3.md`.
1901
+
1902
+ **After final pass OR early exit on 🟢-only:**
1903
+ - Write canonical: `sr-review-findings-{artifact_id}.md` (copy of last pass)
1904
+ - Announce: `"✅ SR loop complete — {N} pass(es). {r} 🔴 {y} 🟡 {g} 🟢 remaining."`
1905
+
1906
+ **If `sr_loop_max` reached AND unresolved 🔴 — HALT:**
1907
+ ```
1908
+ ⚠️ Security Review loop limit ({sr_loop_max} passes) reached.
1909
+ Persistent 🔴 findings (unresolved vulnerabilities):
1910
+ - {VULN-001: finding description}
1911
+ - {VULN-002: finding description}
1912
+ Options: [skip] override with documented risk | [escalate] trigger [CC] Correct Course.
1913
+ ```
1914
+
1915
+ **Per-pass output files:** `sr-review-findings-{artifact_id}-pass{N}.md`
1916
+ **Canonical output:** `sr-review-findings-{artifact_id}.md` (written after loop exits)
1917
+
1918
+ This mirrors the UV and DRY review loop behaviour defined above.
1919
+
1920
+ ---
1921
+
1922
+ ### Research Context Reuse Protocol
1923
+
1924
+ > **Why reuse?** create-story dispatches 3–4 consolidated research agents (each covering 2 source docs) to build a research report. This is expensive. dev-story runs immediately after — it should not re-read the same artifacts.
1925
+
1926
+ **Context file location:** `_bmad-output/parallel/research-context-{story-key}.md`
1927
+
1928
+ **Lifecycle:**
1929
+
1930
+ - **Written by:** create-story Step 2, after all consolidated research agents return
1931
+ - **Read by:** dev-story Step 1 (before doing any artifact reads)
1932
+ - **Deleted by:** dev-story Step 12 on story completion (or after 24h staleness check — whichever comes first)
1933
+ - **Staleness check:** if file is older than 24h when dev-story loads it, warn: `"⚠️ Research context is {N}h old — architecture/UX docs may have changed. Reload? [Yes/No]"`
1934
+
1935
+ **Master Orchestrator routing:** When routing to dev-story after create-story in same session, automatically pass the context file path in the handoff context block:
1936
+
1937
+ ```
1938
+ research_context: _bmad-output/parallel/research-context-{story-key}.md
1939
+ story_key: {story-key}
1940
+ is_ui_story: {is_ui_story}
1941
+ ```
1942
+
1943
+ **IR report location:** `_bmad-output/parallel/story-ir-report-{story-key}.md` (also available for dev agent to review before starting implementation)
1944
+
1945
+ ---
1946
+
1947
+ ## Parallel Dev Protocol
1948
+
1949
+ > **Why parallel dev works:** Stories within an epic often touch completely different parts of the codebase — a backend model, a frontend component, an API endpoint. When there are no shared file dependencies between stories, they can be implemented simultaneously by separate agents, each in their own git worktree. This can cut Large track epic implementation time significantly.
1950
+
1951
+ ### Step 1 — Dependency Analysis (before routing to dev)
1952
+
1953
+ Before spawning parallel dev agents, analyze the sprint plan's stories for the current epic:
1954
+
1955
+ 1. List all files each story will modify (use tech-spec or story files)
1956
+ 2. Check for overlap — any file appearing in 2+ stories = **shared dependency**
1957
+ 3. Build dependency groups:
1958
+
1959
+ ```
1960
+ Group A (parallel-safe): stories with no shared files between them
1961
+ Group B (sequential): stories that share files with Group A or each other
1962
+ ```
1963
+
1964
+ Present to user:
1965
+
1966
+ ```
1967
+ 📊 Dependency Analysis — Epic: {epic-slug}
1968
+
1969
+ Parallel-safe (can run simultaneously):
1970
+ → Story 1: touches [auth.py, LoginForm.tsx]
1971
+ → Story 3: touches [missions_api.py, MissionCard.tsx]
1972
+ → Story 5: touches [schema_migrations.py] ← isolated migration
1973
+
1974
+ Sequential (must run after parallel group):
1975
+ → Story 2: touches [UserProfile model] ← conflicts with Story 4
1976
+ → Story 4: touches [UserProfile model, ProfilePage.tsx]
1977
+
1978
+ Plan: Run Stories 1, 3, 5 in parallel → synthesize → run Stories 2, 4 sequentially.
1979
+ ```
1980
+
1981
+ ### Step 2 — Prepare Shared State
1982
+
1983
+ Before spawning agents, set up the coordination directory and initialize session state:
1984
+
1985
+ 1. Create `_bmad-output/parallel/{session_id}/` directory
1986
+ 2. Initialize `_bmad-output/parallel/{session_id}/README.md` listing all stories being parallelized
1987
+ 3. Add `parallel_file_locks: []` to `session-state-{session_id}.md` — agents write their file locks here to coordinate shared files
1988
+
1989
+ ### Step 3 — Spawn Parallel Dev Agents
1990
+
1991
+ For each parallel-safe story, spawn a `parallel-dev` teammate. All agents run on the **same branch** — no worktrees. Coordination happens through claims files and session-state-{session_id}.md file locks.
1992
+
1993
+ ```
1994
+ Spawn {N} parallel-dev teammates:
1995
+ - Dev-1: implement story at {story-1-file}, session_id={session_id}, story_slug={slug-1}
1996
+ - Dev-2: implement story at {story-2-file}, session_id={session_id}, story_slug={slug-2}
1997
+ - Dev-3: implement story at {story-3-file}, session_id={session_id}, story_slug={slug-3}
1998
+
1999
+ Each agent MUST:
2000
+ 1. Write claims file FIRST to _bmad-output/parallel/{session_id}/claims-{story-slug}.md
2001
+ 2. Read ALL other claims files before touching any code
2002
+ 3. Follow .claude/agents/parallel-dev.md instructions exactly
2003
+ 4. Use context at _bmad-output/scripts/context-{session_id}.md
2004
+ 5. Write findings to _bmad-output/parallel/{session_id}/findings-{story-slug}.md
2005
+ 6. Cross-review other agents' findings before announcing complete
2006
+ ```
2007
+
2008
+ Agents stay on the same branch. File-level conflicts are prevented by the claims + lock system in session-state-{session_id}.md.
2009
+
2010
+ ### Step 3 — Cross-Review (agents review each other's findings)
2011
+
2012
+ When all parallel dev agents report complete, **before synthesis**, run a cross-review round:
2013
+
2014
+ > 💡 **Why cross-review:** Parallel agents work in isolation and can't see each other's decisions in real time. A quick cross-review pass lets each agent flag conflicts, inconsistencies, or improvements to the others' work — catching integration issues before Adversarial Review.
2015
+
2016
+ **How it works (Mode [4] agent teams — mailbox system):**
2017
+
2018
+ 1. Each agent sends its findings to the lead (master-orchestrator) via mailbox
2019
+ 2. master-orchestrator collects all findings, then redistributes: each agent receives the findings reports from ALL other agents
2020
+ 3. Each agent reads the other reports and responds with a cross-review message containing:
2021
+ - **Conflicts:** anything in the other agent's work that conflicts with their own (shared model fields, duplicate utility functions, conflicting API conventions)
2022
+ - **Suggestions:** improvements or alternatives they noticed from reading the others' approach
2023
+ - **Acknowledgements:** confirming they're aware of changes that affect their own work
2024
+ 4. Cross-review messages sent back to master-orchestrator lead
2025
+
2026
+ **How it works (Mode [2]/[3] — file-based, same branch):**
2027
+
2028
+ Since all agents share the same branch, findings files are written to a shared path accessible by all. After each agent finishes, it reads all other completed findings files from `_bmad-output/parallel/{session_id}/findings-*.md` and appends a `## Cross-Review Notes` section to its own findings file with the same three categories (Conflicts, Suggestions, Acknowledgements). Agents that finish early note "finished first" and master-orchestrator handles their cross-review pass once others complete.
2029
+
2030
+ **Cross-review output format:**
2031
+
2032
+ ```markdown
2033
+ ## Cross-Review Notes
2034
+
2035
+ ### Conflicts with Other Stories
2036
+
2037
+ - {story-slug-other}: They modified `UserProfile.to_dict()` to add X. I also modified
2038
+ this method to add Y. These changes may conflict — check line 142.
2039
+
2040
+ ### Suggestions for Other Stories
2041
+
2042
+ - {story-slug-other}: Consider using the `safe_delete_assets()` utility I used in
2043
+ my story — it handles the cleanup pattern they'll need in their flow.
2044
+
2045
+ ### Acknowledgements
2046
+
2047
+ - {story-slug-other}: Aware they added `mission_count` to User model. My story
2048
+ reads this field — confirmed the field name matches my expectations.
2049
+ ```
2050
+
2051
+ ---
2052
+
2053
+ ### Step 4 — Synthesis (after cross-review)
2054
+
2055
+ When all cross-review responses are in, run synthesis **before** routing to Adversarial Review (Code Review):
2056
+
2057
+ 1. **Read all findings reports** from `_bmad-output/parallel/{session_id}/findings-*.md`
2058
+
2059
+ 2. **Check for conflicts** — scan each report's "Shared Resources Touched" and "Potential Conflicts" sections:
2060
+ - Same file modified by 2+ agents → **flag as conflict** (requires manual merge)
2061
+ - Same model field added by 2+ agents → **flag**
2062
+ - No overlaps → clean merge
2063
+
2064
+ 3. **If conflicts found**, present to user:
2065
+
2066
+ ```
2067
+ ⚠️ Synthesis Conflict Detected
2068
+
2069
+ File: app/models/user.py
2070
+ - Dev-1 added field: `mission_count`
2071
+ - Dev-2 added field: `last_mission_at`
2072
+ Both changes are additive — likely safe to merge manually.
2073
+
2074
+ Resolve conflict, then type [continue] to proceed to AR.
2075
+ ```
2076
+
2077
+ 4. **If clean**, synthesize automatically:
2078
+ - Merge each agent's "Decisions Made" into the epic's session notes
2079
+ - Update `session-state-{session_id}.md` with combined files modified list
2080
+ - Write synthesis summary to `_bmad-output/parallel/{session_id}/synthesis-{epic-slug}.md`:
2081
+
2082
+ ```markdown
2083
+ # Parallel Dev Synthesis — {epic-slug}
2084
+
2085
+ ## Stories Completed in Parallel
2086
+
2087
+ - {story-1}: COMPLETE — {N} files modified
2088
+ - {story-2}: COMPLETE — {N} files modified
2089
+
2090
+ ## Combined Files Modified
2091
+
2092
+ {merged list}
2093
+
2094
+ ## Architectural Decisions (Combined)
2095
+
2096
+ {merged from all findings reports}
2097
+
2098
+ ## Notes for Adversarial Review (Code Review)
2099
+
2100
+ {anything reviewers should know}
2101
+ ```
2102
+
2103
+
2104
+ 5. **Report to user:**
2105
+
2106
+ ```
2107
+ ✅ Parallel synthesis complete — {N} stories implemented.
2108
+
2109
+ Combined: {X} files modified, {Y} files created.
2110
+ Synthesis report: _bmad-output/parallel/{session_id}/synthesis-{epic-slug}.md
2111
+
2112
+ Routing to Adversarial Review (Code Review) now...
2113
+ ```
2114
+
2115
+ 6. **Auto-proceed to Adversarial Review (Code Review)** — pass the synthesis report as context.
2116
+
2117
+ ### Step 5 — Sequential Stories
2118
+
2119
+ After parallel group + synthesis + Adversarial Review pass, run sequential stories normally (one at a time), using the synthesis report as additional context so sequential devs know what parallel devs already changed.
2120
+
2121
+ ---
2122
+
2123
+ ## Parallel Document Generation Protocol
2124
+
2125
+ > **Why parallel documents:** Large artifacts like PRDs have distinct sections that don't depend on each other. By spawning multiple agents, we can draft the entire document concurrently.
2126
+
2127
+ **When creating a PRD or large specification:**
2128
+ Spawn the following teammates in parallel:
2129
+
2130
+ 1. **PM Agent**: Drafts Business Goals, Success Metrics, and User Personas.
2131
+ 2. **Analyst Agent**: Drafts the Competitive Landscape, Market Context, and Domain requirements.
2132
+ 3. **Tech Writer Agent**: Drafts API constraints, Non-Functional Requirements, and Glossary.
2133
+
2134
+ **Synthesis:** Once all teammates complete their drafts, the PM agent instantly synthesizes them into the single PRD output file.
2135
+
2136
+ ---
2137
+
2138
+ ## Continuous "Background" Validation Protocol
2139
+
2140
+ > **Why background validation:** We want all documents to comply with the `writing-skills` standards without slowing down the primary agents.
2141
+
2142
+ **When executing long-running document generation or planning workflows:**
2143
+
2144
+ - Spawn the **Tech Writer Agent** in parallel as a "Watcher".
2145
+ - Instruct the Watcher to monitor the `_bmad-output/` directory for any newly created or modified Markdown files during the session.
2146
+ - The Watcher will asynchronously read those files and automatically apply formatting, clarity, and structural fixes according to the `writing-skills` standard, ensuring compliance without blocking the main workflow.
2147
+
2148
+ ---
2149
+
2150
+ ## Parallel TDD Protocol
2151
+
2152
+ > **Why parallel TDD:** Writing tests and implementation sequentially doubles the development time. Since the spec is agreed upon, dev can write implementation while QA writes the test suite concurrently.
2153
+
2154
+ **Scope:** This protocol describes concurrent _authoring_ of implementation and test files. It does NOT replace the QA Tests workflow step, which runs _after_ the Review Gate as a full Playwright validation pass. Parallel TDD = both files written together; the QA step = running the tests against live containers.
2155
+
2156
+ **When executing a Quick Flow (Small/Medium track):**
2157
+
2158
+ 1. Wait for the **Quick Spec** to be completed.
2159
+ 2. Spawn the **Dev Agent** (to write implementation code) and the **QA Agent** (to write `.spec.ts` test files) **SIMULTANEOUSLY**.
2160
+ 3. **Coordination:** The Dev agent focuses on application code; the QA agent focuses on the test file authoring (matching story acceptance criteria).
2161
+ 4. **Sync point:** Once BOTH agents complete, the tests are committed alongside the implementation. The test suite then runs as the dedicated QA Tests workflow step (after the Review Gate).
2162
+
2163
+ ---
2164
+
2165
+ ## Pre-QA Environment Readiness
2166
+
2167
+ > **Why this gate exists:** QA tests run against the live Docker containers (<frontend-url> / <backend-url>). If the containers are on a different branch, tests will pass or fail against the wrong code. And if another master-orchestrator session is actively testing on a different branch, switching branches mid-test will break that session's results.
2168
+
2169
+ ### When to Run
2170
+
2171
+ This gate fires automatically **before every QA step** — i.e., before routing to `/bmad-bmm-qa-generate-e2e-tests` or invoking the QA agent . It also fires before any Playwright test execution.
2172
+
2173
+ ### Step 1 — Check for Active Testing Sessions
2174
+
2175
+ Before switching branches or rebuilding containers, scan for other sessions that might be mid-test:
2176
+
2177
+ 1. **Read the current session-state-{session_id}.md** to get your own `session_id` and `branch`.
2178
+ 2. **Scan recent session artifacts** for active testing locks:
2179
+ - Check `_bmad-output/qa-tests/` for directories with recently modified files (within last 2 hours).
2180
+ - Check for lock files: `_bmad-output/qa-tests/.testing-lock-{session_id}.json`
2181
+ 3. **If a lock file exists from a DIFFERENT session**, read it:
2182
+
2183
+ ```json
2184
+ {
2185
+ "session_id": "2026-03-10-card-packs-b7e2",
2186
+ "branch": "feat/card-pack-ui",
2187
+ "started_at": "2026-03-10T14:30:00Z",
2188
+ "pid": 12345,
2189
+ "agent": "qa-agent"
2190
+ }
2191
+ ```
2192
+
2193
+ 4. **Conflict resolution:**
2194
+
2195
+ ```
2196
+ ⚠️ TESTING LOCK DETECTED
2197
+
2198
+ Session: {other_session_id}
2199
+ Branch: {other_branch}
2200
+ Started: {started_at} ({elapsed} ago)
2201
+ Agent: {agent}
2202
+
2203
+ Another master-orchestrator session is actively running QA tests on branch [{other_branch}].
2204
+ Switching to [{your_branch}] would invalidate their test results.
2205
+
2206
+ Options:
2207
+ [wait] — Pause until the other session's lock is released (poll every 60s)
2208
+ [force] — Override the lock (only if the other session is stale/crashed — lock > 2h old)
2209
+ [skip-qa] — Skip QA for now, continue to next workflow step (not recommended)
2210
+ ```
2211
+
2212
+ **Stale lock detection:** If the lock file's `started_at` is > 2 hours old, it's likely from a crashed session. Display `"⚠️ Lock is {N}h old — likely stale. [force] is safe."` but still require explicit user confirmation.
2213
+
2214
+ **No conflict (lock is from YOUR session or no lock exists):** Proceed to Step 2.
2215
+
2216
+ ### Step 2 — Verify Environment
2217
+
2218
+ Ensure your development environment is running and on the correct branch before handing off to QA. The exact commands depend on your project's stack.
2219
+
2220
+ ### Step 3 — Acquire Testing Lock
2221
+
2222
+ Once environment is verified, create a lock file before handing off to QA:
2223
+
2224
+ ```bash
2225
+ # Write lock file
2226
+ echo '{"session_id":"{session_id}","branch":"{branch}","started_at":"{ISO8601_now}","pid":{process_id},"agent":"qa-agent"}' > _bmad-output/qa-tests/.testing-lock-{session_id}.json
2227
+ ```
2228
+
2229
+ Update session-state-{session_id}.md:
2230
+
2231
+ ```yaml
2232
+ qa_environment:
2233
+ branch_verified: true
2234
+ containers_rebuilt: true # or false if rebuild wasn't needed
2235
+ lock_file: "_bmad-output/qa-tests/.testing-lock-{session_id}.json"
2236
+ lock_acquired_at: "{ISO8601_now}"
2237
+ ```
2238
+
2239
+ ### Step 4 — Release Testing Lock
2240
+
2241
+ After QA completes (pass or fail), **always** release the lock:
2242
+
2243
+ ```bash
2244
+ rm -f _bmad-output/qa-tests/.testing-lock-{session_id}.json
2245
+ ```
2246
+
2247
+ **Release triggers:**
2248
+
2249
+ - QA tests complete (all pass)
2250
+ - QA tests fail (lock released, results preserved)
2251
+ - User cancels QA step
2252
+ - Session ends (`[SV]` save command)
2253
+ - Error/crash recovery (stale lock detection handles this)
2254
+
2255
+ **NEVER leave a lock file behind.** The QA agent must release the lock as its final action, regardless of test outcome. If using Mode [2]/[3] (new conversation per agent), the lock release must be part of the generated command block / launch script.
2256
+
2257
+ ---
2258
+
2259
+ ## Party Mode Review Gates
2260
+
2261
+ ### Gate Minimum Participants
2262
+
2263
+ | Gate | Track | When | Sub-agents | Minimum Agents |
2264
+ | --------------------------------------- | -------- | -------------------------------------------------- | ---------- | ---------------------------------------- |
2265
+ | Nano — DRY+UV Gate | Nano | After Quick Dev (no AR, no SR) | 2 | Bond, Bob, qa-agent (3 min) |
2266
+ | Small — Review Gate (3-sub) | Small | 3 sub-agents concurrent, after Quick Dev | 3 | Bond, Bob, qa-agent (3 min) |
2267
+ | Compact — Review Gate (3-sub) | Compact | 3 sub-agents concurrent, after Quick Dev | 3 | Bond, Bob, qa-agent (3 min) |
2268
+ | Medium — Review Gate 1 (3-sub) | Medium | 3 sub-agents concurrent, after Research | 3 | Bond, Bob, John, Winston (4 min) |
2269
+ | Medium — Final Review Gate (3-sub) | Medium | 3 sub-agents concurrent, after Quick Dev, before QA Tests | 3 | Bond, Amelia, qa-agent, Bob (4 min) |
2270
+ | Extended — Review Gate 1 (3-sub) | Extended | 3 sub-agents concurrent, after Research+PRD | 3 | Bond, Bob, John, Winston (4 min) |
2271
+ | Extended — Review Gate 2 (3-sub) | Extended | 3 sub-agents concurrent, after Dev, before QA Tests | 3 | Bond, Amelia, qa-agent, Bob (4 min) |
2272
+ | Large — Final Review Gate (3-sub) | Large | After all epics complete, before Final QA | 3 | Bond, Amelia, qa-agent, Bob (4 min) |
2273
+ | Large — Planning DRY+UV Gate | Large | DRY+UV after PRD (no AR, no SR — spec review) | 2 | John, Mary, Winston, Bob, Sally (5 min) |
2274
+ | Large — Design DRY+UV Gate | Large | DRY+UV after Architecture (no AR, no SR) | 2 | Winston, Bond, Sally, Bob, Paige (5 min) |
2275
+ | Large — Epic Review Gate (3-sub) | Large | 3 sub-agents concurrent in epic loop, per-story | 3 | Bond, Amelia, qa-agent, Bob (4 min) |
2276
+
2277
+ **Universal rule:** All present agents ≥10 items each. Severity: 🔴 Critical blocks progression | 🟡 Major addressed before next phase | 🟢 Minor at discretion.
2278
+
2279
+ ### PMR (Party Mode Review) — Standalone Only
2280
+
2281
+ PMR is available as a standalone invokable command (`/bmad-party-mode`) but does **not** auto-run at any workflow gate. To invoke PMR manually:
2282
+
2283
+ ```
2284
+ /bmad-party-mode
2285
+ ```
2286
+
2287
+ PMR is no longer part of the automatic gate architecture. All automatic review gates use AR + DRY (Gate Sub-1), UV (Gate Sub-2), and SR (Gate Sub-3).
2288
+
2289
+ **Review gate auto-run:** When a review gate is reached, route to `review agent` immediately with the appropriate `review_type` — do not ask for confirmation. See the gate architecture above for the correct `review_type` per track.
2290
+
2291
+ ---
2292
+
2293
+ ## Definition of Done (DoD)
2294
+
2295
+ A story/task is Done when ALL applicable items for the track are true:
2296
+
2297
+ **All tracks:**
2298
+ - [ ] Review gate(s) for this track passed — no 🔴 Critical findings (AR where applicable)
2299
+ - [ ] All new and existing tests pass (100%)
2300
+ - [ ] Linked feedback item updated: `in_progress` → `fixed`
2301
+ - [ ] PR description written (references branch, feedback IDs, summary of changes)
2302
+ - [ ] Any new docs/ content added or updated
2303
+ - [ ] `/prepare-to-merge` run — type-check passed, build validated, PR description finalized
2304
+ - [ ] Session state saved (`[SV]`)
2305
+
2306
+ **Track-specific gates** (only apply where the track includes these steps):
2307
+ - [ ] `[Small/Compact/Medium/Extended]` Review Gate (AR+DRY concurrent) passed
2308
+ - [ ] `[Medium/Extended]` Final Review Gate (before QA) passed
2309
+ - [ ] `[Large]` Epic-level AR passed (per story, up to 3 reviewers)
2310
+ - [ ] `[Large]` Epic Review Gate passed (per epic)
2311
+ - [ ] `[Large]` Final Review Gate (post-all-epics, 3-sub) passed
2312
+ - [ ] `[Large]` Final QA Tests (Playwright full suite) passed
2313
+ - [ ] `[Nano]` DRY+UV gate passed (no AR required)
2314
+
2315
+ A sprint/epic is Done when all stories meet DoD AND the epic Review Gate has passed.
2316
+
2317
+ ---
2318
+
2319
+ ## Context Injection (Sub-Agent Handoffs)
2320
+
2321
+ ### Skills Detection (MANDATORY before every handoff)
2322
+
2323
+ Before routing to ANY sub-agent, scan `{project-root}/.agents/skills/` for installed skills. Match skills to the task type and inject applicable skill names into the context block. The sub-agent's activation step 4 will load the full SKILL.md files.
2324
+
2325
+ | Task Type | Auto-inject skills |
2326
+ | ------------ | ------------------------------------------------------------------------------------------------------------------------------- |
2327
+ | Backend | python-backend, python-performance, python-fundamentals, redis-best-practices, postgresql-optimization, security-best-practices |
2328
+ | Frontend | next-best-practices, nextjs-app-router-patterns, react-expert, typescript-best-practices, frontend-responsive-design-standards |
2329
+ | Full-stack | All backend + frontend skills |
2330
+ | WebSocket/RT | websocket-engineer, redis-best-practices |
2331
+ | Java | java-fundamentals, java-performance |
2332
+ | Debugging | systematic-debugging |
2333
+ | Code Review (Gate Sub-1) | clean-code-standards (DRY/SOLID lens — always injected for architect-agent at review gates) |
2334
+ | Security Review (Gate Sub-3) | security-review (getsentry — always injected for security-agent at code review gates) |
2335
+ | Any | subagent-driven-development (if parallel work), writing-skills (if creating specs/docs), audit-website (if QA/review) |
2336
+
2337
+ ### Filter by Task Type
2338
+
2339
+ | Task Type | Inject |
2340
+ | -------------- | ------------------------------------------------------------------------------ |
2341
+ | Backend | Auth patterns, API conventions, database migrations, top mistakes (backend) |
2342
+ | Frontend | Styling standards, TypeScript safety, dialog patterns, top mistakes (frontend) |
2343
+ | Full-stack | Both sets, 5 key items each |
2344
+ | Infrastructure | Deployment, storage patterns, MCP server guide |
2345
+ | Any | Active branch name, linked feedback/roadmap IDs, relevant docs index category |
2346
+
2347
+ ### Same-Conversation Mode Injection
2348
+
2349
+ Prepend a `<context>` block before invoking any BMAD command:
2350
+
2351
+ ```xml
2352
+ <context>
2353
+ branch: {branch}
2354
+ feedback_ids: {ids}
2355
+ ux_design_doc: {ux_design_doc_path|null}
2356
+ task_type: {backend|frontend|full-stack|infrastructure}
2357
+ applicable_skills: [{comma-separated skill names from skills detection}]
2358
+ claude_md_sections:
2359
+ {filtered sections — max 10 lines total}
2360
+ docs_index_category:
2361
+ {relevant docs-index.md entries for this task type}
2362
+ </context>
2363
+ /{bmad-command}
2364
+ ```
2365
+
2366
+ ### Command Block / Launch Script Mode Context
2367
+
2368
+ For modes [2] and [3]: write context to `{project-root}/_bmad-output/scripts/context-{session_id}.md` BEFORE printing the command block or generating the .ps1 script. Do not rely on comment headers alone for context delivery — comments in terminal output are not guaranteed to be parsed by the receiving conversation.
2369
+
2370
+ ---
2371
+
2372
+ ## SHA1 Hash Computation
2373
+
2374
+ **Platform-appropriate commands (in order of preference for your environment):**
2375
+
2376
+ 1. **PowerShell (preferred):**
2377
+ ```powershell
2378
+ (Get-FileHash "{filepath}" -Algorithm SHA1).Hash.ToLower()
2379
+ ```
2380
+ 2. **Windows CMD fallback:**
2381
+ ```cmd
2382
+ certutil -hashfile "{filepath}" SHA1 | findstr /v ":"
2383
+ ```
2384
+ 3. **Unix / Git Bash:**
2385
+ ```bash
2386
+ sha1sum "{filepath}" | cut -d' ' -f1
2387
+ ```
2388
+ 4. **Last resort (no hash tools available):** Use file mtime + size as proxy:
2389
+ ```bash
2390
+ stat -c "%Y-%s" "{filepath}"
2391
+ ```
2392
+
2393
+ Store results in `session-state.docs_hashes`. Cap `docs_hashes` at 20 most recently changed files.
2394
+ **When cap is reached:** warn user: `"⚠️ docs_hashes at capacity (20 files) — oldest entries will be dropped on next write. Run [RC] to manually refresh all tracked files."`
2395
+
2396
+ ---
2397
+
2398
+ ## Bootstrap Sequence
2399
+
2400
+ > Runs silently before greeting. Print "🎯 Coming online..." before starting.
2401
+
2402
+ Each MCP operation has a **10-second timeout** — on timeout, skip and note in greeting.
2403
+
2404
+ **Retry policy:** Retry failed MCP calls up to 3 times before declaring degraded mode. Between retries: wait 2s, then 4s, then 8s. If all 3 retries fail: mark as degraded, continue with local-only operations.
2405
+
2406
+
2407
+ **{project-root} validation:** At step 1, verify `{project-root}` has been substituted in all loaded sidecar file paths. If the literal string `{project-root}` appears in any loaded path: halt and display `"⚠️ {project-root} not substituted — check agent installation and BMAD compiler configuration."` Do not proceed until resolved.
2408
+
2409
+ 1. Load sidecar: `memories.md`, `instructions.md`, `triage-history.md`, `docs-index.md`.
2410
+ Scan for session state files: glob `session-state-*.md` in the sidecar directory. If exactly one file found, load it (this is the active session). If multiple found, load the most recently modified one and warn: `"⚠️ Multiple session-state files found — loading most recent. Use [RS] to switch sessions."` If none found, this is a fresh session (Branch B greeting).
2411
+ Check `docs-index.md` for placeholder text `"Not yet generated"` — if found, set flag `docs_index_stale: true` (used in step 6).
2412
+
2413
+ 1b. **Platform detection** (runs immediately after sidecar load, before greeting):
2414
+
2415
+ Detect the current execution environment and store as `session-state.platform`. Use the following detection logic in order:
2416
+
2417
+ | Check | Result |
2418
+ | ------------------------------------------------------------------------------------------------- | ---------------- |
2419
+ | Self-report: model name contains "gemini" or "Gemini" | `gemini-cli` |
2420
+ | Shell: `Get-Command gemini -ErrorAction SilentlyContinue` succeeds AND `Get-Command claude` fails | `gemini-cli` |
2421
+ | Self-report: running inside Google Antigravity IDE (model or environment indicates Antigravity) | `antigravity` |
2422
+ | Shell: `Get-Command claude -ErrorAction SilentlyContinue` succeeds | `claude-code` |
2423
+ | `session-state.platform` already set from previous session | use stored value |
2424
+ | None of the above match | `unknown` |
2425
+
2426
+ Store detected value: write `platform: {detected}` to `session-state-{session_id}.md`.
2427
+
2428
+ **Available modes by platform:**
2429
+ | Platform | Available Modes | Notes |
2430
+ |----------|----------------|-------|
2431
+ | `claude-code` | [1] [2] [3] [4] | Full orchestration support |
2432
+ | `antigravity` | [1] [2] [3] [4] | Native Manager Surface handles [4] — use Antigravity's built-in agent orchestration UI for parallel runs |
2433
+ | `gemini-cli` | [1] only | Gemini CLI lacks native parallel agent teams; `--output-format json` has known bugs; Mode [1] inline is the reliable choice |
2434
+ | `unknown` | [1] only | Cannot verify orchestration support; default to inline |
2435
+
2436
+ Only present available modes in the greeting based on detected platform.
2437
+
2438
+ 2. **Resume check:** if `session-state.session_id` is not null → present Branch A greeting (resume offer)
2439
+ 3. **First-run check:** if `memories.md` is empty AND `session-state.session_id: null` → use Branch B greeting
2440
+ 4. Read `CLAUDE.md` from disk; compute SHA1 using platform-appropriate method (see SHA1 section); compare to `session-state.claude_md_hash`
2441
+ 5. Docs staleness: scan `docs/` (max 2 levels, cap at 20 files — apply cap to the scan itself, not just to storage). **Scan ordering: most recently modified files first** (sort by mtime descending, take top 20). This ensures frequently-changing files are always tracked, not arbitrary alphabetical entries. Compare per-file hashes in `session-state.docs_hashes` against current computed hashes.
2442
+ If `docs_index_stale: true` (from step 1): trigger full docs scan and generate index immediately.
2443
+
2444
+
2445
+ 9. Sprint staleness check: if active sprint and `sprint_start_date` set, check days elapsed; if > 7 days since `last_updated`, flag as potentially stale in greeting.
2446
+ 10. **Auto-detect blocked:** if `session-state.blocked: true` and `blocked_since` > 1 day ago, surface as first item in Branch A/C greeting.
2447
+
2448
+ **Progress indicator:** After each bootstrap step takes > 2 seconds, update the "Coming online..." indicator.
2449
+
2450
+ **Note:** If the user opens a new conversation with any BMAD agent (not Master Orchestrator) and mentions wanting to continue previous work, that agent should tell the user to return to Master Orchestrator and use `[RS resume-session]`, or to start a new conversation with `/bmad-agent-master-orchestrator`.
2451
+
2452
+ ---
2453
+
2454
+ ## First Message Processing
2455
+
2456
+ After the greeting is shown, when the user's FIRST message arrives:
2457
+
2458
+ 1. Check if message contains resume signals: words `continue`, `pick up`, `resume`, `where were we`, `keep working on`, `what was I working on`, `pick up where`
2459
+ 2. If detected AND at least one of the following is true:
2460
+ - `session-state.session_id` is not null (active session exists), OR
2461
+ - `triage-history.md` contains at least one entry
2462
+ Then treat as `[RS resume-session]` trigger — extract the subject phrase and run resume search automatically.
2463
+ If neither condition is true (truly first run, no history): treat the message as [NT] new-task intent instead, even if resume words are present.
2464
+ 3. If not detected: proceed with normal triage/menu routing (NT triage, or menu commands).
2465
+
2466
+ This check only applies to the **first** user message in a session. Subsequent messages follow normal routing.
2467
+
2468
+ ---
2469
+
2470
+ ## Session Save Protocol ([SV])
2471
+
2472
+ **Order matters — always sidecar first:**
2473
+
2474
+ 1. Write `session-state-{session_id}.md` to disk first
2475
+ 2. Verify write succeeded (re-read and confirm content matches)
2476
+ 5. Confirm: _"Session saved. N pending syncs flushed. M failed (queued for next session). K evicted (cap exceeded)."_
2477
+
2478
+ **No-op guard:** If `session-state.session_id: null`, skip RAG sync entirely — only write local sidecar. Note: _"Session not yet started — local state saved, RAG sync skipped."_
2479
+
2480
+ **Auto-save triggers:** Write sidecar (but NOT full RAG sync) automatically after each completed workflow step. Update `workflow_step` and `last_updated` fields only.
2481
+
2482
+ **Write-lock note:** `session-state-{session_id}.md` has no concurrent write protection. Only one agent instance should write at a time. If multiple concurrent sessions on the same branch are detected (same branch, different session_ids), warn user of potential state conflict.
2483
+
2484
+ ---
2485
+
2486
+ ## Docs Index Rules
2487
+
2488
+ **Placeholder exact text:** `Not yet generated`
2489
+
2490
+ **Generation:** On first activation (docs-index.md contains placeholder `Not yet generated`), trigger full docs scan during Bootstrap step 5 and generate index. Store generated descriptions.
2491
+
2492
+ **Bootstrap check:** The docs-index staleness check runs during Bootstrap (step 1), not during [NT]. The [NT] prompt does not re-check for the placeholder.
2493
+
2494
+ **Stability rule:** On subsequent `[RC refresh-context]`, only regenerate descriptions for files whose content hash changed. Descriptions for unchanged files are preserved verbatim from the stored index — do not regenerate.
2495
+
2496
+ **Format:**
2497
+
2498
+ ```
2499
+ ## {Category}
2500
+ - {filepath} — {one-sentence description}
2501
+ ```
2502
+
2503
+ ---
2504
+
2505
+ ## File Organization Rules
2506
+
2507
+ ```
2508
+ _bmad-output/
2509
+ ├── features/{feature-slug}/
2510
+ │ ├── planning/ # PRD, brief, research, UX, architecture, review reports
2511
+ │ ├── sprints/ # sprint plans, epics, stories
2512
+ │ └── implementation/ # dev artifacts, code review reports
2513
+ ├── fixes/{fix-slug}/
2514
+ │ ├── spec/ # quick spec, review report
2515
+ │ └── implementation/ # dev artifacts
2516
+ ├── scripts/ # context files and launch scripts (context-{session_id}.md, .ps1)
2517
+ └── tests/
2518
+ ├── features/{feature-slug}/
2519
+ └── fixes/{fix-slug}/
2520
+ ```
2521
+
2522
+ All folder names: lowercase kebab-case matching branch slug. Test files always under `tests/` — never co-located with implementation. Launch scripts and context files always under `scripts/`.
2523
+
2524
+ ---
2525
+
2526
+ ## Session Completion Checklist
2527
+
2528
+ Before the user ends a session, verify:
2529
+
2530
+ - [ ] Current workflow step saved to `session-state.workflow_step`
2531
+ - [ ] Branch confirmed (not null)
2532
+ - [ ] Linked feedback/roadmap IDs current in `session-state.linked_feedback_ids`
2533
+ - [ ] Any completed work has feedback status updated (`in_progress` → `fixed` if done)
2534
+ - [ ] Review gates that ran are marked in `session-state.review_gate_status`
2535
+ - [ ] Retrospective run — Lightweight Retro for Small/Medium track, Epic Retrospective for Large track
2536
+ - [ ] `/prepare-to-merge` run if workflow reached completion (type-check + build validation passed)
2537
+ - [ ] `[SV save-session]` called (or auto-save confirmed)
2538
+
2539
+ If any unchecked, prompt: _"Before we wrap — {item} is incomplete. Handle it now or next session?"_
2540
+
2541
+ ---
2542
+
2543
+ ## Memories Sync
2544
+
2545
+ On first triage in a session:
2546
+
2547
+ - Read `memories.execution_mode_preference` → set `session-state.execution_mode`
2548
+ - After user selects execution mode: update `memories.execution_mode_preference` if different
2549
+ - Update `memories.last_updated` timestamp
2550
+
2551
+ **Sync direction:** memories → session-state on session start. session-state → memories on mode switch ([XM]) or session end.
2552
+
2553
+ ### memories.md Schema
2554
+
2555
+ The file at `{project-root}/_bmad/_memory/master-orchestrator-sidecar/memories.md` must conform to this YAML structure:
2556
+
2557
+ ```yaml
2558
+ execution_mode_preference: null # 1 | 2 | 3 — persisted preference across sessions
2559
+ last_updated: null # ISO 8601 timestamp of last write
2560
+ session_ratings: {} # {session_id: {rating: 1-5, notes: "..."}} — optional per-session rating
2561
+ notes: "" # Free-form persistent notes about this project/user preferences
2562
+ ```
2563
+
2564
+ If the file is empty or missing fields, initialize with this template. Never add fields outside this schema without updating this section.
2565
+
2566
+ ---