ma-agents 3.4.7 → 3.4.9

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 (517) hide show
  1. package/.opencode/skills/.ma-agents.json +134 -134
  2. package/.opencode/skills/add-sprint/SKILL.md +207 -0
  3. package/.opencode/skills/add-sprint/bmad-skill-manifest.yaml +3 -0
  4. package/.opencode/skills/add-to-sprint/SKILL.md +189 -0
  5. package/.opencode/skills/add-to-sprint/bmad-skill-manifest.yaml +3 -0
  6. package/.opencode/skills/bmad-advanced-elicitation/SKILL.md +137 -0
  7. package/.opencode/skills/bmad-advanced-elicitation/methods.csv +51 -0
  8. package/.opencode/skills/bmad-agent-analyst/SKILL.md +56 -0
  9. package/.opencode/skills/bmad-agent-analyst/bmad-skill-manifest.yaml +11 -0
  10. package/.opencode/skills/bmad-agent-architect/SKILL.md +52 -0
  11. package/.opencode/skills/bmad-agent-architect/bmad-skill-manifest.yaml +11 -0
  12. package/.opencode/skills/bmad-agent-dev/SKILL.md +62 -0
  13. package/.opencode/skills/bmad-agent-dev/bmad-skill-manifest.yaml +11 -0
  14. package/.opencode/skills/bmad-agent-pm/SKILL.md +57 -0
  15. package/.opencode/skills/bmad-agent-pm/bmad-skill-manifest.yaml +11 -0
  16. package/.opencode/skills/bmad-agent-qa/SKILL.md +59 -0
  17. package/.opencode/skills/bmad-agent-qa/bmad-skill-manifest.yaml +11 -0
  18. package/.opencode/skills/bmad-agent-quick-flow-solo-dev/SKILL.md +51 -0
  19. package/.opencode/skills/bmad-agent-quick-flow-solo-dev/bmad-skill-manifest.yaml +11 -0
  20. package/.opencode/skills/bmad-agent-sm/SKILL.md +53 -0
  21. package/.opencode/skills/bmad-agent-sm/bmad-skill-manifest.yaml +11 -0
  22. package/.opencode/skills/bmad-agent-tech-writer/SKILL.md +55 -0
  23. package/.opencode/skills/bmad-agent-tech-writer/bmad-skill-manifest.yaml +11 -0
  24. package/.opencode/skills/bmad-agent-tech-writer/explain-concept.md +20 -0
  25. package/.opencode/skills/bmad-agent-tech-writer/mermaid-gen.md +20 -0
  26. package/.opencode/skills/bmad-agent-tech-writer/validate-doc.md +19 -0
  27. package/.opencode/skills/bmad-agent-tech-writer/write-document.md +20 -0
  28. package/.opencode/skills/bmad-agent-ux-designer/SKILL.md +53 -0
  29. package/.opencode/skills/bmad-agent-ux-designer/bmad-skill-manifest.yaml +11 -0
  30. package/.opencode/skills/bmad-brainstorming/SKILL.md +6 -0
  31. package/.opencode/skills/bmad-brainstorming/brain-methods.csv +62 -0
  32. package/.opencode/skills/bmad-brainstorming/steps/step-01-session-setup.md +214 -0
  33. package/.opencode/skills/bmad-brainstorming/steps/step-01b-continue.md +124 -0
  34. package/.opencode/skills/bmad-brainstorming/steps/step-02a-user-selected.md +229 -0
  35. package/.opencode/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +239 -0
  36. package/.opencode/skills/bmad-brainstorming/steps/step-02c-random-selection.md +211 -0
  37. package/.opencode/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +266 -0
  38. package/.opencode/skills/bmad-brainstorming/steps/step-03-technique-execution.md +401 -0
  39. package/.opencode/skills/bmad-brainstorming/steps/step-04-idea-organization.md +305 -0
  40. package/.opencode/skills/bmad-brainstorming/template.md +15 -0
  41. package/.opencode/skills/bmad-brainstorming/workflow.md +53 -0
  42. package/.opencode/skills/bmad-check-implementation-readiness/SKILL.md +6 -0
  43. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +179 -0
  44. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +168 -0
  45. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +169 -0
  46. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +129 -0
  47. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +241 -0
  48. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +126 -0
  49. package/.opencode/skills/bmad-check-implementation-readiness/templates/readiness-report-template.md +4 -0
  50. package/.opencode/skills/bmad-check-implementation-readiness/workflow.md +49 -0
  51. package/.opencode/skills/bmad-cis-design-thinking/SKILL.md +6 -0
  52. package/.opencode/skills/bmad-cis-design-thinking/bmad-skill-manifest.yaml +1 -0
  53. package/.opencode/skills/bmad-cis-design-thinking/design-methods.csv +31 -0
  54. package/.opencode/skills/bmad-cis-design-thinking/template.md +111 -0
  55. package/.opencode/skills/bmad-cis-design-thinking/workflow.md +242 -0
  56. package/.opencode/skills/bmad-cis-innovation-strategy/SKILL.md +6 -0
  57. package/.opencode/skills/bmad-cis-innovation-strategy/bmad-skill-manifest.yaml +1 -0
  58. package/.opencode/skills/bmad-cis-innovation-strategy/innovation-frameworks.csv +31 -0
  59. package/.opencode/skills/bmad-cis-innovation-strategy/template.md +189 -0
  60. package/.opencode/skills/bmad-cis-innovation-strategy/workflow.md +315 -0
  61. package/.opencode/skills/bmad-cis-problem-solving/SKILL.md +6 -0
  62. package/.opencode/skills/bmad-cis-problem-solving/bmad-skill-manifest.yaml +1 -0
  63. package/.opencode/skills/bmad-cis-problem-solving/solving-methods.csv +31 -0
  64. package/.opencode/skills/bmad-cis-problem-solving/template.md +165 -0
  65. package/.opencode/skills/bmad-cis-problem-solving/workflow.md +291 -0
  66. package/.opencode/skills/bmad-cis-storytelling/SKILL.md +6 -0
  67. package/.opencode/skills/bmad-cis-storytelling/bmad-skill-manifest.yaml +1 -0
  68. package/.opencode/skills/bmad-cis-storytelling/story-types.csv +26 -0
  69. package/.opencode/skills/bmad-cis-storytelling/template.md +113 -0
  70. package/.opencode/skills/bmad-cis-storytelling/workflow.md +321 -0
  71. package/.opencode/skills/bmad-code-review/SKILL.md +6 -0
  72. package/.opencode/skills/bmad-code-review/steps/step-01-gather-context.md +62 -0
  73. package/.opencode/skills/bmad-code-review/steps/step-02-review.md +34 -0
  74. package/.opencode/skills/bmad-code-review/steps/step-03-triage.md +49 -0
  75. package/.opencode/skills/bmad-code-review/steps/step-04-present.md +129 -0
  76. package/.opencode/skills/bmad-code-review/workflow.md +55 -0
  77. package/.opencode/skills/bmad-correct-course/SKILL.md +6 -0
  78. package/.opencode/skills/bmad-correct-course/checklist.md +288 -0
  79. package/.opencode/skills/bmad-correct-course/workflow.md +267 -0
  80. package/.opencode/skills/bmad-create-architecture/SKILL.md +6 -0
  81. package/.opencode/skills/bmad-create-architecture/architecture-decision-template.md +12 -0
  82. package/.opencode/skills/bmad-create-architecture/data/domain-complexity.csv +13 -0
  83. package/.opencode/skills/bmad-create-architecture/data/project-types.csv +7 -0
  84. package/.opencode/skills/bmad-create-architecture/steps/step-01-init.md +153 -0
  85. package/.opencode/skills/bmad-create-architecture/steps/step-01b-continue.md +173 -0
  86. package/.opencode/skills/bmad-create-architecture/steps/step-02-context.md +224 -0
  87. package/.opencode/skills/bmad-create-architecture/steps/step-03-starter.md +329 -0
  88. package/.opencode/skills/bmad-create-architecture/steps/step-04-decisions.md +318 -0
  89. package/.opencode/skills/bmad-create-architecture/steps/step-05-patterns.md +359 -0
  90. package/.opencode/skills/bmad-create-architecture/steps/step-06-structure.md +379 -0
  91. package/.opencode/skills/bmad-create-architecture/steps/step-07-validation.md +359 -0
  92. package/.opencode/skills/bmad-create-architecture/steps/step-08-complete.md +76 -0
  93. package/.opencode/skills/bmad-create-architecture/workflow.md +38 -0
  94. package/.opencode/skills/bmad-create-epics-and-stories/SKILL.md +6 -0
  95. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +255 -0
  96. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-02-design-epics.md +212 -0
  97. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
  98. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-04-final-validation.md +131 -0
  99. package/.opencode/skills/bmad-create-epics-and-stories/templates/epics-template.md +61 -0
  100. package/.opencode/skills/bmad-create-epics-and-stories/workflow.md +53 -0
  101. package/.opencode/skills/bmad-create-prd/SKILL.md +6 -0
  102. package/.opencode/skills/bmad-create-prd/data/domain-complexity.csv +15 -0
  103. package/.opencode/skills/bmad-create-prd/data/prd-purpose.md +197 -0
  104. package/.opencode/skills/bmad-create-prd/data/project-types.csv +11 -0
  105. package/.opencode/skills/bmad-create-prd/steps-c/step-01-init.md +178 -0
  106. package/.opencode/skills/bmad-create-prd/steps-c/step-01b-continue.md +161 -0
  107. package/.opencode/skills/bmad-create-prd/steps-c/step-02-discovery.md +208 -0
  108. package/.opencode/skills/bmad-create-prd/steps-c/step-02b-vision.md +142 -0
  109. package/.opencode/skills/bmad-create-prd/steps-c/step-02c-executive-summary.md +158 -0
  110. package/.opencode/skills/bmad-create-prd/steps-c/step-03-success.md +214 -0
  111. package/.opencode/skills/bmad-create-prd/steps-c/step-04-journeys.md +201 -0
  112. package/.opencode/skills/bmad-create-prd/steps-c/step-05-domain.md +194 -0
  113. package/.opencode/skills/bmad-create-prd/steps-c/step-06-innovation.md +211 -0
  114. package/.opencode/skills/bmad-create-prd/steps-c/step-07-project-type.md +222 -0
  115. package/.opencode/skills/bmad-create-prd/steps-c/step-08-scoping.md +216 -0
  116. package/.opencode/skills/bmad-create-prd/steps-c/step-09-functional.md +219 -0
  117. package/.opencode/skills/bmad-create-prd/steps-c/step-10-nonfunctional.md +230 -0
  118. package/.opencode/skills/bmad-create-prd/steps-c/step-11-polish.md +221 -0
  119. package/.opencode/skills/bmad-create-prd/steps-c/step-12-complete.md +115 -0
  120. package/.opencode/skills/bmad-create-prd/templates/prd-template.md +10 -0
  121. package/.opencode/skills/bmad-create-prd/workflow.md +62 -0
  122. package/.opencode/skills/bmad-create-story/SKILL.md +6 -0
  123. package/.opencode/skills/bmad-create-story/checklist.md +357 -0
  124. package/.opencode/skills/bmad-create-story/discover-inputs.md +88 -0
  125. package/.opencode/skills/bmad-create-story/template.md +49 -0
  126. package/.opencode/skills/bmad-create-story/workflow.md +380 -0
  127. package/.opencode/skills/bmad-create-ux-design/SKILL.md +6 -0
  128. package/.opencode/skills/bmad-create-ux-design/steps/step-01-init.md +135 -0
  129. package/.opencode/skills/bmad-create-ux-design/steps/step-01b-continue.md +127 -0
  130. package/.opencode/skills/bmad-create-ux-design/steps/step-02-discovery.md +190 -0
  131. package/.opencode/skills/bmad-create-ux-design/steps/step-03-core-experience.md +217 -0
  132. package/.opencode/skills/bmad-create-ux-design/steps/step-04-emotional-response.md +220 -0
  133. package/.opencode/skills/bmad-create-ux-design/steps/step-05-inspiration.md +235 -0
  134. package/.opencode/skills/bmad-create-ux-design/steps/step-06-design-system.md +253 -0
  135. package/.opencode/skills/bmad-create-ux-design/steps/step-07-defining-experience.md +255 -0
  136. package/.opencode/skills/bmad-create-ux-design/steps/step-08-visual-foundation.md +225 -0
  137. package/.opencode/skills/bmad-create-ux-design/steps/step-09-design-directions.md +225 -0
  138. package/.opencode/skills/bmad-create-ux-design/steps/step-10-user-journeys.md +242 -0
  139. package/.opencode/skills/bmad-create-ux-design/steps/step-11-component-strategy.md +249 -0
  140. package/.opencode/skills/bmad-create-ux-design/steps/step-12-ux-patterns.md +238 -0
  141. package/.opencode/skills/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +265 -0
  142. package/.opencode/skills/bmad-create-ux-design/steps/step-14-complete.md +171 -0
  143. package/.opencode/skills/bmad-create-ux-design/ux-design-template.md +13 -0
  144. package/.opencode/skills/bmad-create-ux-design/workflow.md +36 -0
  145. package/.opencode/skills/bmad-dev-story/SKILL.md +6 -0
  146. package/.opencode/skills/bmad-dev-story/checklist.md +80 -0
  147. package/.opencode/skills/bmad-dev-story/workflow.md +450 -0
  148. package/.opencode/skills/bmad-distillator/SKILL.md +178 -0
  149. package/.opencode/skills/bmad-distillator/agents/distillate-compressor.md +116 -0
  150. package/.opencode/skills/bmad-distillator/agents/round-trip-reconstructor.md +68 -0
  151. package/.opencode/skills/bmad-distillator/resources/compression-rules.md +51 -0
  152. package/.opencode/skills/bmad-distillator/resources/distillate-format-reference.md +227 -0
  153. package/.opencode/skills/bmad-distillator/resources/splitting-strategy.md +78 -0
  154. package/.opencode/skills/bmad-distillator/scripts/analyze_sources.py +300 -0
  155. package/.opencode/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +204 -0
  156. package/.opencode/skills/bmad-document-project/SKILL.md +6 -0
  157. package/.opencode/skills/bmad-document-project/checklist.md +245 -0
  158. package/.opencode/skills/bmad-document-project/documentation-requirements.csv +12 -0
  159. package/.opencode/skills/bmad-document-project/instructions.md +128 -0
  160. package/.opencode/skills/bmad-document-project/templates/deep-dive-template.md +345 -0
  161. package/.opencode/skills/bmad-document-project/templates/index-template.md +169 -0
  162. package/.opencode/skills/bmad-document-project/templates/project-overview-template.md +103 -0
  163. package/.opencode/skills/bmad-document-project/templates/project-scan-report-schema.json +160 -0
  164. package/.opencode/skills/bmad-document-project/templates/source-tree-template.md +135 -0
  165. package/.opencode/skills/bmad-document-project/workflow.md +27 -0
  166. package/.opencode/skills/bmad-document-project/workflows/deep-dive-instructions.md +299 -0
  167. package/.opencode/skills/bmad-document-project/workflows/deep-dive-workflow.md +34 -0
  168. package/.opencode/skills/bmad-document-project/workflows/full-scan-instructions.md +1107 -0
  169. package/.opencode/skills/bmad-document-project/workflows/full-scan-workflow.md +34 -0
  170. package/.opencode/skills/bmad-domain-research/SKILL.md +6 -0
  171. package/.opencode/skills/bmad-domain-research/domain-steps/step-01-init.md +137 -0
  172. package/.opencode/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md +229 -0
  173. package/.opencode/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +238 -0
  174. package/.opencode/skills/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +206 -0
  175. package/.opencode/skills/bmad-domain-research/domain-steps/step-05-technical-trends.md +234 -0
  176. package/.opencode/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md +444 -0
  177. package/.opencode/skills/bmad-domain-research/research.template.md +29 -0
  178. package/.opencode/skills/bmad-domain-research/workflow.md +49 -0
  179. package/.opencode/skills/bmad-edit-prd/SKILL.md +6 -0
  180. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01-discovery.md +242 -0
  181. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +204 -0
  182. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-02-review.md +245 -0
  183. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-03-edit.md +250 -0
  184. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-04-complete.md +165 -0
  185. package/.opencode/skills/bmad-edit-prd/workflow.md +63 -0
  186. package/.opencode/skills/bmad-editorial-review-prose/SKILL.md +86 -0
  187. package/.opencode/skills/bmad-editorial-review-structure/SKILL.md +179 -0
  188. package/.opencode/skills/bmad-generate-project-context/SKILL.md +6 -0
  189. package/.opencode/skills/bmad-generate-project-context/project-context-template.md +21 -0
  190. package/.opencode/skills/bmad-generate-project-context/steps/step-01-discover.md +186 -0
  191. package/.opencode/skills/bmad-generate-project-context/steps/step-02-generate.md +321 -0
  192. package/.opencode/skills/bmad-generate-project-context/steps/step-03-complete.md +278 -0
  193. package/.opencode/skills/bmad-generate-project-context/workflow.md +43 -0
  194. package/.opencode/skills/bmad-help/SKILL.md +73 -0
  195. package/.opencode/skills/bmad-index-docs/SKILL.md +66 -0
  196. package/.opencode/skills/bmad-init/SKILL.md +100 -0
  197. package/.opencode/skills/bmad-init/resources/core-module.yaml +25 -0
  198. package/.opencode/skills/bmad-init/scripts/bmad_init.py +593 -0
  199. package/.opencode/skills/bmad-init/scripts/tests/test_bmad_init.py +329 -0
  200. package/.opencode/skills/bmad-ma-agent-cyber/SKILL.md +49 -0
  201. package/.opencode/skills/bmad-ma-agent-cyber/bmad-skill-manifest.yaml +11 -0
  202. package/.opencode/skills/bmad-ma-agent-devops/SKILL.md +49 -0
  203. package/.opencode/skills/bmad-ma-agent-devops/bmad-skill-manifest.yaml +11 -0
  204. package/.opencode/skills/bmad-ma-agent-mil498/.gitkeep +0 -0
  205. package/.opencode/skills/bmad-ma-agent-mil498/SKILL.md +53 -0
  206. package/.opencode/skills/bmad-ma-agent-mil498/bmad-skill-manifest.yaml +11 -0
  207. package/.opencode/skills/bmad-ma-agent-ml/.gitkeep +0 -0
  208. package/.opencode/skills/bmad-ma-agent-ml/SKILL.md +59 -0
  209. package/.opencode/skills/bmad-ma-agent-ml/bmad-skill-manifest.yaml +11 -0
  210. package/.opencode/skills/bmad-ma-agent-sre/.gitkeep +0 -0
  211. package/.opencode/skills/bmad-ma-agent-sre/SKILL.md +49 -0
  212. package/.opencode/skills/bmad-ma-agent-sre/bmad-skill-manifest.yaml +11 -0
  213. package/.opencode/skills/bmad-market-research/SKILL.md +6 -0
  214. package/.opencode/skills/bmad-market-research/research.template.md +29 -0
  215. package/.opencode/skills/bmad-market-research/steps/step-01-init.md +184 -0
  216. package/.opencode/skills/bmad-market-research/steps/step-02-customer-behavior.md +239 -0
  217. package/.opencode/skills/bmad-market-research/steps/step-03-customer-pain-points.md +251 -0
  218. package/.opencode/skills/bmad-market-research/steps/step-04-customer-decisions.md +261 -0
  219. package/.opencode/skills/bmad-market-research/steps/step-05-competitive-analysis.md +173 -0
  220. package/.opencode/skills/bmad-market-research/steps/step-06-research-completion.md +478 -0
  221. package/.opencode/skills/bmad-market-research/workflow.md +49 -0
  222. package/.opencode/skills/bmad-party-mode/SKILL.md +6 -0
  223. package/.opencode/skills/bmad-party-mode/steps/step-01-agent-loading.md +138 -0
  224. package/.opencode/skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +187 -0
  225. package/.opencode/skills/bmad-party-mode/steps/step-03-graceful-exit.md +167 -0
  226. package/.opencode/skills/bmad-party-mode/workflow.md +190 -0
  227. package/.opencode/skills/bmad-product-brief/SKILL.md +87 -0
  228. package/.opencode/skills/bmad-product-brief/agents/artifact-analyzer.md +60 -0
  229. package/.opencode/skills/bmad-product-brief/agents/opportunity-reviewer.md +44 -0
  230. package/.opencode/skills/bmad-product-brief/agents/skeptic-reviewer.md +44 -0
  231. package/.opencode/skills/bmad-product-brief/agents/web-researcher.md +49 -0
  232. package/.opencode/skills/bmad-product-brief/bmad-manifest.json +17 -0
  233. package/.opencode/skills/bmad-product-brief/prompts/contextual-discovery.md +57 -0
  234. package/.opencode/skills/bmad-product-brief/prompts/draft-and-review.md +86 -0
  235. package/.opencode/skills/bmad-product-brief/prompts/finalize.md +75 -0
  236. package/.opencode/skills/bmad-product-brief/prompts/guided-elicitation.md +70 -0
  237. package/.opencode/skills/bmad-product-brief/resources/brief-template.md +60 -0
  238. package/.opencode/skills/bmad-qa-generate-e2e-tests/SKILL.md +6 -0
  239. package/.opencode/skills/bmad-qa-generate-e2e-tests/checklist.md +33 -0
  240. package/.opencode/skills/bmad-qa-generate-e2e-tests/workflow.md +136 -0
  241. package/.opencode/skills/bmad-quick-dev/SKILL.md +6 -0
  242. package/.opencode/skills/bmad-quick-dev/spec-template.md +88 -0
  243. package/.opencode/skills/bmad-quick-dev/step-01-clarify-and-route.md +64 -0
  244. package/.opencode/skills/bmad-quick-dev/step-02-plan.md +35 -0
  245. package/.opencode/skills/bmad-quick-dev/step-03-implement.md +37 -0
  246. package/.opencode/skills/bmad-quick-dev/step-04-review.md +49 -0
  247. package/.opencode/skills/bmad-quick-dev/step-05-present.md +63 -0
  248. package/.opencode/skills/bmad-quick-dev/step-oneshot.md +49 -0
  249. package/.opencode/skills/bmad-quick-dev/workflow.md +79 -0
  250. package/.opencode/skills/bmad-retrospective/SKILL.md +6 -0
  251. package/.opencode/skills/bmad-retrospective/workflow.md +1479 -0
  252. package/.opencode/skills/bmad-review-adversarial-general/SKILL.md +37 -0
  253. package/.opencode/skills/bmad-review-edge-case-hunter/SKILL.md +67 -0
  254. package/.opencode/skills/bmad-shard-doc/SKILL.md +105 -0
  255. package/.opencode/skills/bmad-sprint-planning/SKILL.md +6 -0
  256. package/.opencode/skills/bmad-sprint-planning/checklist.md +33 -0
  257. package/.opencode/skills/bmad-sprint-planning/sprint-status-template.yaml +56 -0
  258. package/.opencode/skills/bmad-sprint-planning/workflow.md +263 -0
  259. package/.opencode/skills/bmad-sprint-status/SKILL.md +6 -0
  260. package/.opencode/skills/bmad-sprint-status/workflow.md +261 -0
  261. package/.opencode/skills/bmad-technical-research/SKILL.md +6 -0
  262. package/.opencode/skills/bmad-technical-research/research.template.md +29 -0
  263. package/.opencode/skills/bmad-technical-research/technical-steps/step-01-init.md +137 -0
  264. package/.opencode/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md +239 -0
  265. package/.opencode/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md +248 -0
  266. package/.opencode/skills/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +202 -0
  267. package/.opencode/skills/bmad-technical-research/technical-steps/step-05-implementation-research.md +233 -0
  268. package/.opencode/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md +487 -0
  269. package/.opencode/skills/bmad-technical-research/workflow.md +50 -0
  270. package/.opencode/skills/bmad-validate-prd/SKILL.md +6 -0
  271. package/.opencode/skills/bmad-validate-prd/data/domain-complexity.csv +15 -0
  272. package/.opencode/skills/bmad-validate-prd/data/prd-purpose.md +197 -0
  273. package/.opencode/skills/bmad-validate-prd/data/project-types.csv +11 -0
  274. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-01-discovery.md +221 -0
  275. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02-format-detection.md +188 -0
  276. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +206 -0
  277. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-03-density-validation.md +171 -0
  278. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +211 -0
  279. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +225 -0
  280. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +214 -0
  281. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +202 -0
  282. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +240 -0
  283. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +260 -0
  284. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +206 -0
  285. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +261 -0
  286. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +239 -0
  287. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-13-report-complete.md +229 -0
  288. package/.opencode/skills/bmad-validate-prd/workflow.md +62 -0
  289. package/.opencode/skills/cleanup-done/.gitkeep +0 -0
  290. package/.opencode/skills/create-bug-story/.gitkeep +0 -0
  291. package/.opencode/skills/create-bug-story/SKILL.md +263 -0
  292. package/.opencode/skills/create-bug-story/bmad-skill-manifest.yaml +3 -0
  293. package/.opencode/skills/cyber-generate-certs/.gitkeep +0 -0
  294. package/.opencode/skills/cyber-generate-certs/SKILL.md +27 -0
  295. package/.opencode/skills/cyber-generate-certs/bmad-skill-manifest.yaml +3 -0
  296. package/.opencode/skills/cyber-immunity-estimation/.gitkeep +0 -0
  297. package/.opencode/skills/cyber-immunity-estimation/SKILL.md +29 -0
  298. package/.opencode/skills/cyber-immunity-estimation/bmad-skill-manifest.yaml +3 -0
  299. package/.opencode/skills/cyber-security-audit/.gitkeep +0 -0
  300. package/.opencode/skills/cyber-security-audit/SKILL.md +27 -0
  301. package/.opencode/skills/cyber-security-audit/bmad-skill-manifest.yaml +3 -0
  302. package/.opencode/skills/cyber-vault-secrets/.gitkeep +0 -0
  303. package/.opencode/skills/cyber-vault-secrets/SKILL.md +28 -0
  304. package/.opencode/skills/cyber-vault-secrets/bmad-skill-manifest.yaml +3 -0
  305. package/.opencode/skills/cyber-verify-docker-users/.gitkeep +0 -0
  306. package/.opencode/skills/cyber-verify-docker-users/SKILL.md +23 -0
  307. package/.opencode/skills/cyber-verify-docker-users/bmad-skill-manifest.yaml +3 -0
  308. package/.opencode/skills/cyber-verify-image-signature/.gitkeep +0 -0
  309. package/.opencode/skills/cyber-verify-image-signature/SKILL.md +22 -0
  310. package/.opencode/skills/cyber-verify-image-signature/bmad-skill-manifest.yaml +3 -0
  311. package/.opencode/skills/cyber-vulnerability-scan/.gitkeep +0 -0
  312. package/.opencode/skills/cyber-vulnerability-scan/SKILL.md +28 -0
  313. package/.opencode/skills/cyber-vulnerability-scan/bmad-skill-manifest.yaml +3 -0
  314. package/.opencode/skills/devops-configure-infrastructure/.gitkeep +0 -0
  315. package/.opencode/skills/devops-configure-infrastructure/SKILL.md +27 -0
  316. package/.opencode/skills/devops-configure-infrastructure/bmad-skill-manifest.yaml +3 -0
  317. package/.opencode/skills/devops-disconnected-deployment/.gitkeep +0 -0
  318. package/.opencode/skills/devops-disconnected-deployment/SKILL.md +27 -0
  319. package/.opencode/skills/devops-disconnected-deployment/bmad-skill-manifest.yaml +3 -0
  320. package/.opencode/skills/devops-docker-compose-setup/.gitkeep +0 -0
  321. package/.opencode/skills/devops-docker-compose-setup/SKILL.md +26 -0
  322. package/.opencode/skills/devops-docker-compose-setup/bmad-skill-manifest.yaml +3 -0
  323. package/.opencode/skills/devops-manage-helm/.gitkeep +0 -0
  324. package/.opencode/skills/devops-manage-helm/SKILL.md +28 -0
  325. package/.opencode/skills/devops-manage-helm/bmad-skill-manifest.yaml +3 -0
  326. package/.opencode/skills/devops-sign-docker-image/.gitkeep +0 -0
  327. package/.opencode/skills/devops-sign-docker-image/SKILL.md +24 -0
  328. package/.opencode/skills/devops-sign-docker-image/bmad-skill-manifest.yaml +3 -0
  329. package/.opencode/skills/generate-backlog/.gitkeep +0 -0
  330. package/.opencode/skills/mil498-ocd/.gitkeep +0 -0
  331. package/.opencode/skills/mil498-ocd/SKILL.md +30 -0
  332. package/.opencode/skills/mil498-ocd/bmad-skill-manifest.yaml +5 -0
  333. package/.opencode/skills/mil498-ocd/prompts/01-discover-project-artifacts.md +26 -0
  334. package/.opencode/skills/mil498-ocd/prompts/02-load-template.md +10 -0
  335. package/.opencode/skills/mil498-ocd/prompts/03-generate-document.md +90 -0
  336. package/.opencode/skills/mil498-ocd/prompts/04-validate.md +14 -0
  337. package/.opencode/skills/mil498-ocd/prompts/05-review.md +15 -0
  338. package/.opencode/skills/mil498-ocd/prompts/06-save.md +15 -0
  339. package/.opencode/skills/mil498-ocd/template.md +169 -0
  340. package/.opencode/skills/mil498-sdd/.gitkeep +0 -0
  341. package/.opencode/skills/mil498-sdd/SKILL.md +30 -0
  342. package/.opencode/skills/mil498-sdd/bmad-skill-manifest.yaml +5 -0
  343. package/.opencode/skills/mil498-sdd/prompts/01-discover-project-artifacts.md +50 -0
  344. package/.opencode/skills/mil498-sdd/prompts/02-load-template.md +10 -0
  345. package/.opencode/skills/mil498-sdd/prompts/03-generate-document.md +98 -0
  346. package/.opencode/skills/mil498-sdd/prompts/04-validate.md +16 -0
  347. package/.opencode/skills/mil498-sdd/prompts/05-review.md +15 -0
  348. package/.opencode/skills/mil498-sdd/prompts/06-save.md +19 -0
  349. package/.opencode/skills/mil498-sdd/template.md +163 -0
  350. package/.opencode/skills/mil498-sdp/.gitkeep +0 -0
  351. package/.opencode/skills/mil498-sdp/SKILL.md +30 -0
  352. package/.opencode/skills/mil498-sdp/bmad-skill-manifest.yaml +5 -0
  353. package/.opencode/skills/mil498-sdp/prompts/01-discover-project-artifacts.md +32 -0
  354. package/.opencode/skills/mil498-sdp/prompts/02-load-template.md +10 -0
  355. package/.opencode/skills/mil498-sdp/prompts/03-generate-document.md +187 -0
  356. package/.opencode/skills/mil498-sdp/prompts/04-validate.md +13 -0
  357. package/.opencode/skills/mil498-sdp/prompts/05-review.md +15 -0
  358. package/.opencode/skills/mil498-sdp/prompts/06-save.md +14 -0
  359. package/.opencode/skills/mil498-sdp/template.md +307 -0
  360. package/.opencode/skills/mil498-srs/.gitkeep +0 -0
  361. package/.opencode/skills/mil498-srs/SKILL.md +30 -0
  362. package/.opencode/skills/mil498-srs/bmad-skill-manifest.yaml +5 -0
  363. package/.opencode/skills/mil498-srs/prompts/01-discover-project-artifacts.md +42 -0
  364. package/.opencode/skills/mil498-srs/prompts/02-load-template.md +10 -0
  365. package/.opencode/skills/mil498-srs/prompts/03-generate-document.md +100 -0
  366. package/.opencode/skills/mil498-srs/prompts/04-validate.md +16 -0
  367. package/.opencode/skills/mil498-srs/prompts/05-review.md +15 -0
  368. package/.opencode/skills/mil498-srs/prompts/06-save.md +18 -0
  369. package/.opencode/skills/mil498-srs/template.md +219 -0
  370. package/.opencode/skills/mil498-ssdd/.gitkeep +0 -0
  371. package/.opencode/skills/mil498-ssdd/SKILL.md +32 -0
  372. package/.opencode/skills/mil498-ssdd/bmad-skill-manifest.yaml +5 -0
  373. package/.opencode/skills/mil498-ssdd/prompts/01-discover-project-artifacts.md +32 -0
  374. package/.opencode/skills/mil498-ssdd/prompts/02-load-template.md +10 -0
  375. package/.opencode/skills/mil498-ssdd/prompts/03-csci-discovery-interview.md +43 -0
  376. package/.opencode/skills/mil498-ssdd/prompts/04-generate-document.md +96 -0
  377. package/.opencode/skills/mil498-ssdd/prompts/05-validate.md +14 -0
  378. package/.opencode/skills/mil498-ssdd/prompts/06-review.md +16 -0
  379. package/.opencode/skills/mil498-ssdd/prompts/07-save.md +16 -0
  380. package/.opencode/skills/mil498-ssdd/template.md +154 -0
  381. package/.opencode/skills/mil498-sss/.gitkeep +0 -0
  382. package/.opencode/skills/mil498-sss/SKILL.md +31 -0
  383. package/.opencode/skills/mil498-sss/bmad-skill-manifest.yaml +5 -0
  384. package/.opencode/skills/mil498-sss/prompts/01-discover-project-artifacts.md +31 -0
  385. package/.opencode/skills/mil498-sss/prompts/02-load-template.md +10 -0
  386. package/.opencode/skills/mil498-sss/prompts/03-generate-document.md +108 -0
  387. package/.opencode/skills/mil498-sss/prompts/04-validate.md +16 -0
  388. package/.opencode/skills/mil498-sss/prompts/05-review.md +15 -0
  389. package/.opencode/skills/mil498-sss/prompts/06-save.md +15 -0
  390. package/.opencode/skills/mil498-sss/template.md +225 -0
  391. package/.opencode/skills/mil498-std/.gitkeep +0 -0
  392. package/.opencode/skills/mil498-std/SKILL.md +30 -0
  393. package/.opencode/skills/mil498-std/bmad-skill-manifest.yaml +5 -0
  394. package/.opencode/skills/mil498-std/prompts/01-discover-project-artifacts.md +42 -0
  395. package/.opencode/skills/mil498-std/prompts/02-load-template.md +10 -0
  396. package/.opencode/skills/mil498-std/prompts/03-generate-document.md +117 -0
  397. package/.opencode/skills/mil498-std/prompts/04-validate.md +15 -0
  398. package/.opencode/skills/mil498-std/prompts/05-review.md +15 -0
  399. package/.opencode/skills/mil498-std/prompts/06-save.md +15 -0
  400. package/.opencode/skills/mil498-std/template.md +188 -0
  401. package/.opencode/skills/ml-advise/.gitkeep +0 -0
  402. package/.opencode/skills/ml-advise/SKILL.md +76 -0
  403. package/.opencode/skills/ml-advise/bmad-skill-manifest.yaml +3 -0
  404. package/.opencode/skills/ml-advise/skill.json +7 -0
  405. package/.opencode/skills/ml-analysis/.gitkeep +0 -0
  406. package/.opencode/skills/ml-analysis/SKILL.md +60 -0
  407. package/.opencode/skills/ml-analysis/bmad-skill-manifest.yaml +3 -0
  408. package/.opencode/skills/ml-analysis/skill.json +7 -0
  409. package/.opencode/skills/ml-architecture/.gitkeep +0 -0
  410. package/.opencode/skills/ml-architecture/SKILL.md +55 -0
  411. package/.opencode/skills/ml-architecture/bmad-skill-manifest.yaml +3 -0
  412. package/.opencode/skills/ml-architecture/skill.json +7 -0
  413. package/.opencode/skills/ml-detailed-design/.gitkeep +0 -0
  414. package/.opencode/skills/ml-detailed-design/SKILL.md +67 -0
  415. package/.opencode/skills/ml-detailed-design/bmad-skill-manifest.yaml +3 -0
  416. package/.opencode/skills/ml-detailed-design/skill.json +7 -0
  417. package/.opencode/skills/ml-eda/.gitkeep +0 -0
  418. package/.opencode/skills/ml-eda/SKILL.md +56 -0
  419. package/.opencode/skills/ml-eda/bmad-skill-manifest.yaml +3 -0
  420. package/.opencode/skills/ml-eda/scripts/baseline_classifier.py +522 -0
  421. package/.opencode/skills/ml-eda/scripts/class_weights_calculator.py +295 -0
  422. package/.opencode/skills/ml-eda/scripts/clustering_explorer.py +383 -0
  423. package/.opencode/skills/ml-eda/scripts/eda_analyzer.py +654 -0
  424. package/.opencode/skills/ml-eda/skill.json +7 -0
  425. package/.opencode/skills/ml-experiment/.gitkeep +0 -0
  426. package/.opencode/skills/ml-experiment/SKILL.md +74 -0
  427. package/.opencode/skills/ml-experiment/assets/advanced_trainer_configs.py +430 -0
  428. package/.opencode/skills/ml-experiment/assets/quick_trainer_setup.py +233 -0
  429. package/.opencode/skills/ml-experiment/assets/template_datamodule.py +219 -0
  430. package/.opencode/skills/ml-experiment/assets/template_gnn_module.py +341 -0
  431. package/.opencode/skills/ml-experiment/assets/template_lightning_module.py +158 -0
  432. package/.opencode/skills/ml-experiment/bmad-skill-manifest.yaml +3 -0
  433. package/.opencode/skills/ml-experiment/skill.json +7 -0
  434. package/.opencode/skills/ml-hparam/.gitkeep +0 -0
  435. package/.opencode/skills/ml-hparam/SKILL.md +81 -0
  436. package/.opencode/skills/ml-hparam/bmad-skill-manifest.yaml +3 -0
  437. package/.opencode/skills/ml-hparam/skill.json +7 -0
  438. package/.opencode/skills/ml-ideation/.gitkeep +0 -0
  439. package/.opencode/skills/ml-ideation/SKILL.md +50 -0
  440. package/.opencode/skills/ml-ideation/bmad-skill-manifest.yaml +3 -0
  441. package/.opencode/skills/ml-ideation/scripts/validate_ml_prd.py +287 -0
  442. package/.opencode/skills/ml-ideation/skill.json +7 -0
  443. package/.opencode/skills/ml-infra/.gitkeep +0 -0
  444. package/.opencode/skills/ml-infra/SKILL.md +58 -0
  445. package/.opencode/skills/ml-infra/bmad-skill-manifest.yaml +3 -0
  446. package/.opencode/skills/ml-infra/skill.json +7 -0
  447. package/.opencode/skills/ml-retrospective/.gitkeep +0 -0
  448. package/.opencode/skills/ml-retrospective/SKILL.md +63 -0
  449. package/.opencode/skills/ml-retrospective/bmad-skill-manifest.yaml +3 -0
  450. package/.opencode/skills/ml-retrospective/skill.json +7 -0
  451. package/.opencode/skills/ml-revision/.gitkeep +0 -0
  452. package/.opencode/skills/ml-revision/SKILL.md +82 -0
  453. package/.opencode/skills/ml-revision/bmad-skill-manifest.yaml +3 -0
  454. package/.opencode/skills/ml-revision/skill.json +7 -0
  455. package/.opencode/skills/ml-techspec/.gitkeep +0 -0
  456. package/.opencode/skills/ml-techspec/SKILL.md +80 -0
  457. package/.opencode/skills/ml-techspec/bmad-skill-manifest.yaml +3 -0
  458. package/.opencode/skills/ml-techspec/skill.json +7 -0
  459. package/.opencode/skills/modify-sprint/.gitkeep +0 -0
  460. package/.opencode/skills/modify-sprint/SKILL.md +322 -0
  461. package/.opencode/skills/modify-sprint/bmad-skill-manifest.yaml +3 -0
  462. package/.opencode/skills/prioritize-backlog/.gitkeep +0 -0
  463. package/.opencode/skills/project-context-expansion/.gitkeep +0 -0
  464. package/.opencode/skills/project-context-expansion/SKILL.md +238 -0
  465. package/.opencode/skills/project-context-expansion/bmad-skill-manifest.yaml +3 -0
  466. package/.opencode/skills/remove-from-sprint/.gitkeep +0 -0
  467. package/.opencode/skills/sprint-status-view/.gitkeep +0 -0
  468. package/.opencode/skills/sprint-status-view/SKILL.md +263 -0
  469. package/.opencode/skills/sprint-status-view/bmad-skill-manifest.yaml +3 -0
  470. package/.opencode/skills/sre-check-deployment-status/.gitkeep +0 -0
  471. package/.opencode/skills/sre-check-deployment-status/SKILL.md +32 -0
  472. package/.opencode/skills/sre-check-deployment-status/bmad-skill-manifest.yaml +3 -0
  473. package/.opencode/skills/sre-check-secrets/.gitkeep +0 -0
  474. package/.opencode/skills/sre-check-secrets/SKILL.md +23 -0
  475. package/.opencode/skills/sre-check-secrets/bmad-skill-manifest.yaml +3 -0
  476. package/.opencode/skills/sre-check-system-status/.gitkeep +0 -0
  477. package/.opencode/skills/sre-check-system-status/SKILL.md +27 -0
  478. package/.opencode/skills/sre-check-system-status/bmad-skill-manifest.yaml +3 -0
  479. package/.opencode/skills/sre-day-2-ops/.gitkeep +0 -0
  480. package/.opencode/skills/sre-day-2-ops/SKILL.md +26 -0
  481. package/.opencode/skills/sre-day-2-ops/bmad-skill-manifest.yaml +3 -0
  482. package/.opencode/skills/sre-deployment-strategies/.gitkeep +0 -0
  483. package/.opencode/skills/sre-deployment-strategies/SKILL.md +28 -0
  484. package/.opencode/skills/sre-deployment-strategies/bmad-skill-manifest.yaml +3 -0
  485. package/.opencode/skills/sre-fix-deployments/.gitkeep +0 -0
  486. package/.opencode/skills/sre-fix-deployments/SKILL.md +25 -0
  487. package/.opencode/skills/sre-fix-deployments/bmad-skill-manifest.yaml +3 -0
  488. package/.opencode/skills/sre-gitops-status/.gitkeep +0 -0
  489. package/.opencode/skills/sre-gitops-status/SKILL.md +25 -0
  490. package/.opencode/skills/sre-gitops-status/bmad-skill-manifest.yaml +3 -0
  491. package/.roo/skills/.ma-agents.json +134 -134
  492. package/bin/cli.js +25 -10
  493. package/lib/agents.js +21 -51
  494. package/lib/bmad-extension/module-help.csv +4 -21
  495. package/lib/bmad-extension/skills/add-sprint/SKILL.md +40 -126
  496. package/lib/bmad-extension/skills/add-to-sprint/SKILL.md +142 -116
  497. package/lib/bmad-extension/skills/create-bug-story/SKILL.md +7 -75
  498. package/lib/bmad-extension/skills/modify-sprint/SKILL.md +0 -63
  499. package/lib/bmad-extension/skills/sprint-status-view/SKILL.md +138 -199
  500. package/lib/bmad-extension/workflows/add-sprint/workflow.md +39 -129
  501. package/lib/bmad-extension/workflows/add-to-sprint/workflow.md +205 -3
  502. package/lib/bmad-extension/workflows/modify-sprint/workflow.md +0 -5
  503. package/lib/bmad-extension/workflows/sprint-status-view/workflow.md +192 -3
  504. package/lib/installer.js +13 -5
  505. package/package.json +1 -1
  506. /package/{lib/bmad-extension/skills/cleanup-done → .opencode/skills/add-sprint}/.gitkeep +0 -0
  507. /package/{lib/bmad-extension/skills/generate-backlog → .opencode/skills/add-to-sprint}/.gitkeep +0 -0
  508. /package/{lib/bmad-extension/skills/prioritize-backlog → .opencode/skills/bmad-ma-agent-cyber}/.gitkeep +0 -0
  509. /package/{lib/bmad-extension/skills/remove-from-sprint → .opencode/skills/bmad-ma-agent-devops}/.gitkeep +0 -0
  510. /package/{lib/bmad-extension → .opencode}/skills/cleanup-done/SKILL.md +0 -0
  511. /package/{lib/bmad-extension → .opencode}/skills/cleanup-done/bmad-skill-manifest.yaml +0 -0
  512. /package/{lib/bmad-extension → .opencode}/skills/generate-backlog/SKILL.md +0 -0
  513. /package/{lib/bmad-extension → .opencode}/skills/generate-backlog/bmad-skill-manifest.yaml +0 -0
  514. /package/{lib/bmad-extension → .opencode}/skills/prioritize-backlog/SKILL.md +0 -0
  515. /package/{lib/bmad-extension → .opencode}/skills/prioritize-backlog/bmad-skill-manifest.yaml +0 -0
  516. /package/{lib/bmad-extension → .opencode}/skills/remove-from-sprint/SKILL.md +0 -0
  517. /package/{lib/bmad-extension → .opencode}/skills/remove-from-sprint/bmad-skill-manifest.yaml +0 -0
@@ -29,26 +29,9 @@ ma-skills,4-implementation,Vault Secrets,cyber-vault-secrets,,skill:cyber-vault-
29
29
  ma-skills,4-implementation,Verify Docker Users,cyber-verify-docker-users,,skill:cyber-verify-docker-users,bmad-cyber-verify-docker-users,false,bmm-cyber,,"Verify Docker image user configurations and hardening compliance.",output_folder,"verification report",
30
30
  ma-skills,4-implementation,Verify Image Signature,cyber-verify-image-signature,,skill:cyber-verify-image-signature,bmad-cyber-verify-image-signature,false,bmm-cyber,,"Verify Docker image signatures for supply chain integrity.",output_folder,"verification report",
31
31
  ma-skills,4-implementation,Vulnerability Scan,cyber-vulnerability-scan,,skill:cyber-vulnerability-scan,bmad-cyber-vulnerability-scan,false,bmm-cyber,,"Orchestrate vulnerability scanning across project components.",output_folder,"scan report",
32
- ma-skills,4-implementation,Create Bug Story,create-bug-story,,skill:create-bug-story,create-bug-story,false,bmm-dev,,"Create a structured bug story with severity and type classification, add to backlog.yaml.",_bmad-output/implementation-artifacts,"bug story",
33
- ma-skills,4-implementation,Add Sprint,add-sprint,,skill:add-sprint,add-sprint,false,bmm-sm,,"Create a new sprint entity with capacity limits and optional ISO dates (YAML schema).",_bmad-output/implementation-artifacts/sprints,"sprint entity",
32
+ ma-skills,4-implementation,Create Bug Story,create-bug-story,,skill:create-bug-story,create-bug-story,false,bmm-dev,,"Create a structured bug story from a detected defect and add to backlog.",_bmad-output/implementation-artifacts,"bug story",
33
+ ma-skills,4-implementation,Add Sprint,add-sprint,,skill:add-sprint,add-sprint,false,bmm-sm,,"Create a new sprint with capacity limits and optional start/end context.",_bmad-output/implementation-artifacts,"sprint plan",
34
34
  ma-skills,4-implementation,Modify Sprint,modify-sprint,,skill:modify-sprint,modify-sprint,false,bmm-sm,,"Modify existing sprint — add/remove items, change capacity, update metadata.",_bmad-output/implementation-artifacts,"sprint plan",
35
- ma-skills,4-implementation,Add to Sprint,add-to-sprint,,skill:add-to-sprint,add-to-sprint,false,bmm-sm,,"Assign backlog items to a sprint from flat prioritized backlog.",_bmad-output/implementation-artifacts,"sprint plan",
35
+ ma-skills,4-implementation,Add to Sprint,add-to-sprint,,skill:add-to-sprint,add-to-sprint,false,bmm-sm,,"Assign backlog items (stories + bugs) to a sprint using multi-criteria prioritization.",_bmad-output/implementation-artifacts,"sprint plan",
36
36
  ma-skills,4-implementation,Project Context Expansion,project-context-expansion,,skill:project-context-expansion,project-context-expansion,false,bmm-sm,,"Post-retrospective companion to update project-context.md with new rules.",_bmad-output,"project context",
37
- ma-skills,4-implementation,Sprint Status View,sprint-status-view,,skill:sprint-status-view,sprint-status-view,false,bmm-sm,,"View sprint status with capacity, items, and backlog. Regenerates sprint-status.yaml.",_bmad-output/implementation-artifacts,"status display",
38
- ma-skills,4-implementation,Generate Backlog,generate-backlog,,skill:generate-backlog,generate-backlog,false,bmm-sm,,"Generate or refresh flat backlog from epics and bug stories.",_bmad-output/implementation-artifacts,"backlog",
39
- ma-skills,4-implementation,Remove from Sprint,remove-from-sprint,,skill:remove-from-sprint,remove-from-sprint,false,bmm-sm,,"Remove items from a sprint and return to unassigned backlog.",_bmad-output/implementation-artifacts,"sprint plan",
40
- ma-skills,4-implementation,Cleanup Done,cleanup-done,,skill:cleanup-done,cleanup-done,false,bmm-sm,,"Archive done items — move files to done/ and remove from sprint/backlog.",_bmad-output/implementation-artifacts,"archived items",
41
- ma-skills,4-implementation,Prioritize Backlog,prioritize-backlog,,skill:prioritize-backlog,prioritize-backlog,false,bmm-sm,,"Reprioritize backlog using multiple criteria — severity, value, dependencies.",_bmad-output/implementation-artifacts,"backlog",
42
- ma-skills,anytime,ML Agent (Demerzel),bmad-ma-agent-ml,,skill:bmad-ma-agent-ml,bmad-ma-agent-ml,false,bmm-demerzel,,"Machine Learning Scientist specializing in falsifiable hypothesis validation and failure-cost analysis.",output_folder,"agent customization",
43
- ma-skills,1-research,ML Ideation & PRD,ml-ideation,,skill:ml-ideation,ml-ideation,false,bmm-demerzel,,"Frame ML research problem, define requirements, and produce Research Thesis and PRD.",_bmad-output/planning-artifacts,"ML documents",
44
- ma-skills,1-research,ML EDA & Research,ml-eda,,skill:ml-eda,ml-eda,false,bmm-demerzel,,"Perform exploratory data analysis, establish baselines, and produce EDA report.",_bmad-output/planning-artifacts,"EDA report",
45
- ma-skills,1-research,ML Architecture Design,ml-architecture,,skill:ml-architecture,ml-architecture,false,bmm-demerzel,,"Design model architecture, stack, and experiment tracking strategy.",_bmad-output/planning-artifacts,"arch design",
46
- ma-skills,4-implementation,ML Detailed Design,ml-detailed-design,,skill:ml-detailed-design,ml-detailed-design,false,bmm-demerzel,,"Break down infrastructure and experiment tasks from architecture.",_bmad-output/planning-artifacts,"task breakdown",
47
- ma-skills,4-implementation,ML TechSpec (Contract),ml-techspec,,skill:ml-techspec,ml-techspec,false,bmm-demerzel,,"Lock experiment parameters and performance tiers before training.",_bmad-output/planning-artifacts,"techspec contract",
48
- ma-skills,4-implementation,ML Infra & Sync,ml-infra,,skill:ml-infra,ml-infra,false,bmm-demerzel,,"Build ML infrastructure, manage dependencies, and run smoke tests.",_bmad-output/implementation-artifacts,"infra status",
49
- ma-skills,4-implementation,ML Experiment,ml-experiment,,skill:ml-experiment,ml-experiment,false,bmm-demerzel,,"Execute training experiments against locked TechSpec and log metrics.",_bmad-output/implementation-artifacts,"experiments log",
50
- ma-skills,4-implementation,ML Results Analysis,ml-analysis,,skill:ml-analysis,ml-analysis,false,bmm-demerzel,,"Evaluate experiment outcomes against TechSpec success tiers.",_bmad-output/implementation-artifacts,"analysis report",
51
- ma-skills,4-implementation,ML HPO (Tuning),ml-hparam,,skill:ml-hparam,ml-hparam,false,bmm-demerzel,,"Perform automated hyperparameter optimization (conditional).",_bmad-output/implementation-artifacts,"tuning results",
52
- ma-skills,4-implementation,ML Iterative Revision,ml-revision,,skill:ml-revision,ml-revision,false,bmm-demerzel,,"Amend hypothesis and requirements based on experiment findings.",_bmad-output/planning-artifacts,"amended docs",
53
- ma-skills,anytime,ML Advise & Search,ml-advise,,skill:ml-advise,ml-advise,false,bmm-demerzel,,"Search past experiments and surface findings or failure warnings.",_bmad-output,"findings report",
54
- ma-skills,anytime,ML Retrospective,ml-retrospective,,skill:ml-retrospective,ml-retrospective,false,bmm-demerzel,,"Capture session learnings and update project context.",_bmad-output,"session learnings",
37
+ ma-skills,4-implementation,Sprint Status View,sprint-status-view,,skill:sprint-status-view,sprint-status-view,false,bmm-sm,,"View sprint progress with assigned items and remaining capacity.",_bmad-output/implementation-artifacts,"status display",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: add-sprint
3
- description: Guided workflow to create a new sprint entity with capacity limits, optional ISO dates, and structured YAML schema for sprint planning
3
+ description: Guided workflow to create a new sprint with capacity limits for realistic sprint planning
4
4
  type: skill
5
5
  triggers:
6
6
  - "add sprint"
@@ -9,35 +9,17 @@ triggers:
9
9
 
10
10
  # Add Sprint Workflow
11
11
 
12
- Guided workflow to create a new sprint entity with capacity limits, optional ISO dates, and structured YAML schema.
12
+ Guided workflow to create a new sprint with capacity limits for realistic sprint planning.
13
13
 
14
14
  <workflow>
15
15
 
16
- <step n="1" goal="Gather and validate sprint number and name">
17
- <action>Ask the user for the sprint number</action>
18
- <ask>What is the sprint number? (positive integer, e.g., 1, 2, 3)</ask>
19
- <action>Store input as {{sprint_number_input}}</action>
20
- <action>Validate {{sprint_number_input}} matches `^[1-9]\d*$` (positive integer, no leading zeros, no non-numeric characters)</action>
21
- <action>Validate {{sprint_number_input}} is <= 9999</action>
22
- <check if="{{sprint_number_input}} fails validation (zero, negative, non-numeric, leading zeros like '03', or > 9999)">
23
- <output>❌ Invalid sprint number: "{{sprint_number_input}}". Must be a positive integer (1-9999), no leading zeros.</output>
24
- <goto step="1" />
25
- </check>
26
- <action>Store as {{sprint_number}} (integer)</action>
27
- <action>Construct {{sprint_id}} = "sprint-{{sprint_number}}"</action>
28
-
29
- <!-- Smart default name: detect naming patterns from existing sprints -->
30
- <action>Glob `_bmad-output/implementation-artifacts/sprints/sprint-*.yaml` to discover existing sprint files</action>
31
- <action>If existing sprints found, read the `name` field from the most recent one (highest sprint number)</action>
32
- <action>Infer a smart default name:
33
- - If previous name follows a sequential pattern with a numeric suffix (e.g., "app04"), suggest the next increment (e.g., "app05")
34
- - If previous name follows a date pattern (e.g., "2026-W14"), suggest the next date interval
35
- - If previous name is "Sprint {n}", suggest "Sprint {{sprint_number}}"
36
- - If no pattern detected or no existing sprints, default to "Sprint {{sprint_number}}"
37
- </action>
38
- <ask>Sprint name? (press Enter for "{{default_name}}", or type a custom name):</ask>
39
- <action>If user presses Enter or leaves blank, set {{sprint_name}} = "{{default_name}}"</action>
40
- <action>If user provides input, store as {{sprint_name}}</action>
16
+ <step n="1" goal="Gather sprint number and name">
17
+ <action>Ask the user for the sprint number (e.g., 1, 2, 3)</action>
18
+ <ask>What is the sprint number? (e.g., 1)</ask>
19
+ <action>Store as {{sprint_number}}</action>
20
+ <ask>What is the sprint name? (e.g., "Sprint 1 Foundation") press Enter to use "Sprint {{sprint_number}}"</ask>
21
+ <action>If user presses Enter or leaves blank, default to "Sprint {{sprint_number}}"</action>
22
+ <action>Store as {{sprint_name}}</action>
41
23
  </step>
42
24
 
43
25
  <step n="2" goal="Gather capacity as positive integer">
@@ -52,71 +34,32 @@ Guided workflow to create a new sprint entity with capacity limits, optional ISO
52
34
  <action>Store as {{capacity}} (integer)</action>
53
35
  </step>
54
36
 
55
- <step n="3a" goal="Gather optional start date (ISO format)">
56
- <action>Explain: start and end dates are optional ISO dates (YYYY-MM-DD format). Press Enter to skip.</action>
57
- <ask>Optional — Sprint start date (YYYY-MM-DD, press Enter to skip):</ask>
58
- <action>Store input as {{start_input}}</action>
59
- <check if="{{start_input}} is not empty">
60
- <action>Validate {{start_input}} matches regex `^\d{4}-\d{2}-\d{2}$`</action>
61
- <action>Verify {{start_input}} resolves to a real calendar date (reject impossible dates like 2026-02-30, 2026-13-45, etc.)</action>
62
- <check if="{{start_input}} fails date validation">
63
- <output>❌ Invalid date: "{{start_input}}". Must be a valid date in YYYY-MM-DD format (e.g., 2026-04-01).</output>
64
- <goto step="3a" />
65
- </check>
66
- </check>
67
- <action>Store as {{start_date}} (valid ISO date string, or empty string "" if skipped)</action>
68
- </step>
69
-
70
- <step n="3b" goal="Gather optional end date (ISO format)">
71
- <ask>Optional — Sprint end date (YYYY-MM-DD, press Enter to skip):</ask>
72
- <action>Store input as {{end_input}}</action>
73
- <check if="{{end_input}} is not empty">
74
- <action>Validate {{end_input}} matches regex `^\d{4}-\d{2}-\d{2}$`</action>
75
- <action>Verify {{end_input}} resolves to a real calendar date</action>
76
- <check if="{{end_input}} fails date validation">
77
- <output>❌ Invalid date: "{{end_input}}". Must be a valid date in YYYY-MM-DD format (e.g., 2026-04-14).</output>
78
- <goto step="3b" />
79
- </check>
80
- </check>
81
- <action>Store as {{end_date}} (valid ISO date string, or empty string "" if skipped)</action>
82
-
83
- <check if="both {{start_date}} and {{end_date}} are non-empty AND {{start_date}} > {{end_date}}">
84
- <output>❌ Invalid date range: start date ({{start_date}}) is after end date ({{end_date}}). Start must be on or before end.</output>
85
- <goto step="3a" />
86
- </check>
37
+ <step n="3" goal="Gather optional start and end context">
38
+ <action>Explain: start/end context can be dates (e.g., "2026-03-18") or milestone descriptions (e.g., "Q1 Planning Complete")</action>
39
+ <ask>Optional — Sprint start context (date or milestone, press Enter to skip):</ask>
40
+ <action>Store as {{start_context}} (empty string if skipped)</action>
41
+ <ask>Optional Sprint end context (date or milestone, press Enter to skip):</ask>
42
+ <action>Store as {{end_context}} (empty string if skipped)</action>
87
43
  </step>
88
44
 
89
45
  <step n="4" goal="Confirm and validate all inputs">
90
46
  <output>
91
47
  ## Sprint Summary — Please Confirm
92
48
 
93
- - **Sprint ID:** {{sprint_id}}
94
- - **Sprint Name:** "{{sprint_name}}"
95
- - **Status:** planning
49
+ - **Sprint Number:** {{sprint_number}}
50
+ - **Sprint Name:** {{sprint_name}}
96
51
  - **Capacity (max items):** {{capacity}}
97
- - **Start Date:** {{start_date}} *(empty if skipped)*
98
- - **End Date:** {{end_date}} *(empty if skipped)*
99
- - **Items:** [] *(empty — items assigned via /add-to-sprint)*
100
- - **Output File:** `_bmad-output/implementation-artifacts/sprints/{{sprint_id}}.yaml`
52
+ - **Start Context:** {{start_context}} *(empty if skipped)*
53
+ - **End Context:** {{end_context}} *(empty if skipped)*
54
+ - **Output File:** `_bmad-output/implementation-artifacts/sprint-plan-{{sprint_number}}.yaml`
101
55
  </output>
102
56
  <ask>Confirm creation? [y] Yes / [n] Cancel / [e] Edit a field:</ask>
103
57
  <check if="user selects 'e'">
104
58
  <ask>Which field to edit? (number / name / capacity / start / end)</ask>
105
59
  <check if="field == 'number'">
106
- <ask>New sprint number? (positive integer, 1-9999)</ask>
107
- <action>Store input as {{sprint_number_input}}</action>
108
- <action>Validate {{sprint_number_input}} matches `^[1-9]\d*$` and is <= 9999</action>
109
- <check if="{{sprint_number_input}} fails validation">
110
- <output>❌ Invalid sprint number: "{{sprint_number_input}}". Must be a positive integer (1-9999), no leading zeros.</output>
111
- <goto step="4" />
112
- </check>
113
- <action>Store as {{sprint_number}} (integer)</action>
114
- <action>Construct {{sprint_id}} = "sprint-{{sprint_number}}"</action>
115
- <action>If sprint name was using previous default "Sprint {old_n}", update to "Sprint {{sprint_number}}"</action>
116
- <action>Check if file exists at `_bmad-output/implementation-artifacts/sprints/{{sprint_id}}.yaml`</action>
117
- <check if="file already exists at new path">
118
- <output>⚠️ A sprint entity already exists at `_bmad-output/implementation-artifacts/sprints/{{sprint_id}}.yaml`. You will be prompted to overwrite at creation.</output>
119
- </check>
60
+ <ask>New sprint number:</ask>
61
+ <action>Store as {{sprint_number}}</action>
62
+ <action>If sprint name was auto-defaulted to the old "Sprint {n}", update it to "Sprint {{sprint_number}}"</action>
120
63
  <goto step="4" />
121
64
  </check>
122
65
  <check if="field == 'name'">
@@ -125,74 +68,45 @@ Guided workflow to create a new sprint entity with capacity limits, optional ISO
125
68
  <goto step="4" />
126
69
  </check>
127
70
  <check if="field == 'capacity'"><goto step="2" /></check>
128
- <check if="field == 'start'"><goto step="3a" /></check>
129
- <check if="field == 'end'"><goto step="3b" /></check>
130
- <check if="field is not recognized">
131
- <output>❌ Unrecognized field: "{{field}}". Valid options: number, name, capacity, start, end.</output>
132
- <goto step="4" />
133
- </check>
71
+ <check if="field == 'start'"><goto step="3" /></check>
72
+ <check if="field == 'end'"><goto step="3" /></check>
134
73
  </check>
135
74
  <check if="user selects 'n'">
136
75
  <output>❌ Sprint creation cancelled.</output>
137
76
  <action>Exit workflow</action>
138
77
  </check>
139
- <check if="user input is not 'y', 'n', or 'e'">
140
- <output>❌ Unrecognized option: "{{user_input}}". Please enter [y] Yes, [n] Cancel, or [e] Edit a field.</output>
141
- <goto step="4" />
142
- </check>
143
78
  </step>
144
79
 
145
- <step n="5" goal="Generate sprint entity YAML file">
146
- <action>Determine output path: `_bmad-output/implementation-artifacts/sprints/{{sprint_id}}.yaml`</action>
147
- <action>Ensure directory `_bmad-output/implementation-artifacts/sprints/` exists (create if needed)</action>
148
-
149
- <!-- Overwrite protection for new path -->
150
- <action>Check if file already exists at `_bmad-output/implementation-artifacts/sprints/{{sprint_id}}.yaml`</action>
151
- <check if="file already exists at new path">
152
- <anchor id="overwrite_prompt" />
153
- <output>⚠️ A sprint entity already exists at `_bmad-output/implementation-artifacts/sprints/{{sprint_id}}.yaml`.</output>
154
- <ask>Overwrite existing sprint? [y] Yes / [n] Cancel:</ask>
80
+ <step n="5" goal="Generate sprint artifact file">
81
+ <action>Determine output path: `_bmad-output/implementation-artifacts/sprint-plan-{{sprint_number}}.yaml`</action>
82
+ <action>Check if file already exists at output path</action>
83
+ <check if="file already exists">
84
+ <output>⚠️ A sprint plan already exists at `_bmad-output/implementation-artifacts/sprint-plan-{{sprint_number}}.yaml`.</output>
85
+ <ask>Overwrite existing sprint plan? [y] Yes / [n] Cancel:</ask>
155
86
  <check if="user selects 'n'">
156
- <output>❌ Sprint creation cancelled to preserve existing sprint.</output>
87
+ <output>❌ Sprint creation cancelled to preserve existing sprint plan.</output>
157
88
  <action>Exit workflow</action>
158
89
  </check>
159
- <check if="user input is not 'y' or 'n'">
160
- <output>❌ Unrecognized option: "{{user_input}}". Please enter [y] Yes or [n] Cancel.</output>
161
- <goto anchor="overwrite_prompt" />
162
- </check>
163
90
  </check>
164
-
165
- <!-- Advisory check for old-format file -->
166
- <action>Check if file exists at old path: `_bmad-output/implementation-artifacts/sprint-plan-{{sprint_number}}.yaml`</action>
167
- <check if="old-format file exists">
168
- <output>ℹ️ **Note:** An old-format sprint file exists at `_bmad-output/implementation-artifacts/sprint-plan-{{sprint_number}}.yaml`. The new sprint will be created at the new path. The old file is NOT auto-migrated — review or remove it manually if no longer needed.</output>
169
- </check>
170
-
171
91
  <action>Get current ISO timestamp for created_date and last_modified</action>
172
- <action>Write sprint entity YAML to `_bmad-output/implementation-artifacts/sprints/{{sprint_id}}.yaml` with this structure:
92
+ <action>Write sprint artifact YAML to `_bmad-output/implementation-artifacts/sprint-plan-{{sprint_number}}.yaml` with this structure:
173
93
 
174
94
  ```yaml
175
- id: {{sprint_id}}
176
- name: "{{sprint_name}}"
177
- status: planning
95
+ sprint_number: {{sprint_number}}
96
+ sprint_name: "{{sprint_name}}"
178
97
  capacity: {{capacity}}
179
- start: "{{start_date}}"
180
- end: "{{end_date}}"
181
- items: []
98
+ assigned_items: []
99
+ status: planning
100
+ start_context: "{{start_context}}"
101
+ end_context: "{{end_context}}"
182
102
  created_date: "{{current_iso_timestamp}}"
183
103
  last_modified: "{{current_iso_timestamp}}"
184
104
  ```
185
-
186
- **YAML output rules:**
187
- - Always quote the `name` field to handle special characters
188
- - `start` and `end` are empty string `""` if skipped
189
- - `items` is always empty array `[]` at creation
190
- - `status` is always `planning` at creation (never `active` or `closed`)
191
105
  </action>
192
106
  <output>
193
107
  ✅ **Sprint created successfully!**
194
108
 
195
- - **File:** `_bmad-output/implementation-artifacts/sprints/{{sprint_id}}.yaml`
109
+ - **File:** `_bmad-output/implementation-artifacts/sprint-plan-{{sprint_number}}.yaml`
196
110
  - **Sprint:** {{sprint_name}}
197
111
  - **Capacity:** {{capacity}} items
198
112
  - **Status:** planning
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: add-to-sprint
3
- description: Guided workflow to assign backlog items to a sprint from the flat prioritized backlog
3
+ description: Guided workflow to assign backlog items to a sprint using multi-criteria prioritization
4
4
  type: skill
5
5
  triggers:
6
6
  - "add to sprint"
@@ -9,178 +9,204 @@ triggers:
9
9
 
10
10
  # Add-to-Sprint Workflow
11
11
 
12
- Guided workflow to assign unassigned backlog items to a sprint from the flat prioritized backlog.
12
+ Guided workflow to assign backlog items (stories + bugs) to a sprint using multi-criteria prioritization.
13
13
 
14
14
  <workflow>
15
15
 
16
- <step n="1" goal="Load backlog and identify unassigned items">
17
- <action>Read `_bmad-output/implementation-artifacts/backlog.yaml`</action>
18
- <action>Parse the `backlog` array. Filter items where `sprint` is `null` (unassigned).</action>
19
- <action>Sort filtered items by `priority` ascending (lowest number = highest priority).</action>
20
- <action>Store as {{unassigned_items}} list.</action>
21
- <check if="no unassigned items remain">
22
- <output>All backlog items are already assigned to sprints. Nothing to assign.</output>
23
- <action>Exit workflow</action>
16
+ <step n="1a" goal="Discover user story backlog items from sprint-status.yaml">
17
+ <action>Read `_bmad-output/implementation-artifacts/sprint-status.yaml` — authoritative source for user story execution status</action>
18
+ <action>Parse the development_status section. For each entry:
19
+ - Skip epic keys (keys matching `epic-*`)
20
+ - Skip retrospective keys (keys ending with `-retrospective`)
21
+ - Collect story keys and their current status (backlog, ready-for-dev, in-progress, review, done)
22
+ </action>
23
+ <action>Store as {{user_stories}} — list of objects with: key, status</action>
24
+ <action>Infer story title from key (e.g., `12-1-add-sprint-workflow` → "Add Sprint Workflow")</action>
25
+ </step>
26
+
27
+ <step n="1b" goal="Discover bug story backlog items">
28
+ <action>Glob `_bmad-output/implementation-artifacts/bug-*.md` to discover all bug story files</action>
29
+ <check if="no bug files found">
30
+ <action>Set {{bug_stories}} = [] (empty list)</action>
31
+ </check>
32
+ <check if="bug files found">
33
+ <action>For each bug file, parse YAML frontmatter to extract: `type`, `severity`, `title`</action>
34
+ <action>Store as {{bug_stories}} — list of objects with: file, type (bug), severity, title</action>
24
35
  </check>
25
36
  </step>
26
37
 
27
- <step n="2" goal="Load sprints and select target">
28
- <action>Glob `_bmad-output/implementation-artifacts/sprints/sprint-*.yaml` to discover all sprint files</action>
38
+ <step n="1c" goal="Filter out items already assigned to any sprint">
39
+ <action>Glob `_bmad-output/implementation-artifacts/sprint-plan-*.yaml` to discover all existing sprint artifact files</action>
40
+ <action>For each sprint file found, read its assigned_items list</action>
41
+ <action>Build {{all_assigned_items}} = flat set of every item identifier (story keys and bug basenames) across ALL sprint plans</action>
42
+ <action>Filter {{user_stories}}: remove any story whose key is present in {{all_assigned_items}}</action>
43
+ <action>Filter {{bug_stories}}: remove any bug whose file basename is present in {{all_assigned_items}}</action>
44
+ <action>Items already assigned to any sprint will NOT appear in the backlog — this prevents duplicate assignment</action>
29
45
  <check if="no sprint files found">
30
- <output>No sprints exist. Run `/add-sprint` first to create a sprint before assigning items.</output>
31
- <action>Exit workflow</action>
46
+ <action>Set {{all_assigned_items}} = [] no filtering needed when no sprints exist yet</action>
32
47
  </check>
33
- <action>Read each sprint file; extract: id, name, status, capacity, items (array length = assigned count)</action>
34
- <action>Sort sprints by status: `active` first, then `planning`, then `closed`</action>
35
- <action>Display sprints table (closed sprints shown but marked as not selectable):</action>
48
+ </step>
49
+
50
+ <step n="2" goal="Present flat backlog combining stories and bugs">
51
+ <action>Combine {{user_stories}} and {{bug_stories}} into a flat backlog list</action>
52
+ <action>Stories and bugs are peers — no epic grouping (FR65)</action>
36
53
  <output>
37
- ## Available Sprints
54
+ ## 📋 Backlog Items
38
55
 
39
- | # | ID | Name | Status | Capacity | Assigned | Remaining |
40
- |---|---|---|---|---|---|---|
41
- {{#each sprints}}
42
- | {{@index+1}} | {{id}} | {{name}} | {{status}} | {{capacity}} | {{assigned_count}} | {{remaining}} |
56
+ | # | ID / File | Title | Type | Status/Severity |
57
+ |---|---|---|---|---|
58
+ {{#each backlog_items}}
59
+ | {{@index+1}} | {{id}} | {{title}} | {{type}} | {{status_or_severity}} |
43
60
  {{/each}}
44
61
 
45
- *Closed sprints are shown for reference but cannot be selected.*
62
+ *Total: {{story_count}} stories, {{bug_count}} bugs*
46
63
  </output>
47
- <check if="exactly one active sprint exists">
48
- <output>Auto-selecting active sprint: {{active_sprint.name}} ({{active_sprint.id}})</output>
49
- <ask>Proceed with this sprint? [y] Yes / [n] Choose a different sprint:</ask>
50
- <check if="user selects 'y'">
51
- <action>Set {{target_sprint}} = the active sprint</action>
52
- </check>
53
- <check if="user selects 'n'">
54
- <ask>Select target sprint by number (active or planning only):</ask>
55
- <action>Validate selection is not a closed sprint</action>
56
- <action>Store as {{target_sprint}}</action>
57
- </check>
58
- </check>
59
- <check if="no active sprint exists OR multiple active/planning sprints">
60
- <ask>Select target sprint by number (active or planning only):</ask>
61
- <action>Validate selection is not a closed sprint</action>
62
- <check if="user selected a closed sprint">
63
- <output>Closed sprints cannot receive new items. Select an active or planning sprint.</output>
64
- <goto step="2" />
65
- </check>
66
- <action>Store as {{target_sprint}}</action>
64
+ </step>
65
+
66
+ <step n="3" goal="List available sprints and select target sprint">
67
+ <action>Glob `_bmad-output/implementation-artifacts/sprint-plan-*.yaml` to discover all sprint artifact files</action>
68
+ <check if="no sprint files found">
69
+ <output>❌ No sprint plans found. Run `/add-sprint` first to create a sprint before assigning items.</output>
70
+ <action>Exit workflow</action>
67
71
  </check>
72
+ <action>For each sprint file found, read and extract: sprint_number, sprint_name, capacity, assigned_items count, status</action>
73
+ <output>
74
+ ## 🏃 Available Sprints
75
+
76
+ | # | Sprint | Status | Capacity | Assigned | Remaining |
77
+ |---|---|---|---|---|---|
78
+ {{#each sprints}}
79
+ | {{@index+1}} | {{sprint_name}} | {{status}} | {{capacity}} | {{assigned_count}} | {{remaining}} |
80
+ {{/each}}
81
+ </output>
82
+ <ask>Select target sprint (enter number):</ask>
83
+ <action>Store selected sprint data as {{target_sprint}}</action>
68
84
  </step>
69
85
 
70
- <step n="3" goal="Display sprint capacity and unassigned backlog items">
71
- <action>Calculate: {{assigned_count}} = length of {{target_sprint.items}}</action>
86
+ <step n="4" goal="Display current sprint capacity usage">
87
+ <action>Calculate: {{assigned_count}} = length of {{target_sprint.assigned_items}}</action>
72
88
  <action>Calculate: {{remaining_capacity}} = {{target_sprint.capacity}} - {{assigned_count}}</action>
73
89
  <output>
74
- ## Sprint Capacity: {{target_sprint.name}} ({{target_sprint.id}})
90
+ ## Sprint Capacity: {{target_sprint.sprint_name}}
75
91
 
76
- [{{capacity_bar}}] {{assigned_count}}/{{target_sprint.capacity}} items ({{remaining_capacity}} remaining)
92
+ - **Capacity:** {{target_sprint.capacity}} items
93
+ - **Assigned:** {{assigned_count}} items
94
+ - **Remaining:** {{remaining_capacity}} slots
77
95
 
78
96
  {{#if remaining_capacity <= 0}}
79
- Warning: This sprint is at or over capacity. Adding items will exceed the limit.
97
+ ⚠️ This sprint is **at or over capacity**. Adding items will exceed the limit.
80
98
  {{/if}}
81
99
  </output>
100
+ </step>
101
+
102
+ <step n="5" goal="Select candidate items for this sprint">
103
+ <ask>Which backlog items do you want to consider for this sprint? Enter item numbers (comma-separated), or "all" to evaluate the full backlog:</ask>
104
+ <check if="user enters 'all'">
105
+ <action>Set {{candidate_items}} = all items in {{backlog_items}} (the full filtered backlog list from step 2)</action>
106
+ </check>
107
+ <check if="user enters item numbers">
108
+ <action>Resolve the entered numbers against the backlog table from step 2 and set {{candidate_items}} = those specific items</action>
109
+ </check>
110
+ </step>
82
111
 
83
- <action>Take the top 20 items from {{unassigned_items}} (or all if fewer than 20)</action>
112
+ <step n="6" goal="Multi-criteria prioritization guidance">
113
+ <action>For each item in {{candidate_items}}, evaluate and score across criteria:
114
+ - **Business value:** High (H) / Medium (M) / Low (L) — impact on users or project goals
115
+ - **Dependency status:** Blocked (blocked by another item) / Blocking (blocks other items) / Independent
116
+ - **Severity** (bugs only): Critical / High / Medium / Low — N/A for stories
117
+ - **Effort estimation:** Small (S ≤ 1 day) / Medium (M 2–3 days) / Large (L 4+ days)
118
+ </action>
119
+ <action>Generate a ranked ordering recommendation, factoring in:
120
+ 1. Blocking dependencies first (items that unlock others)
121
+ 2. High business value + low/medium effort (quick wins)
122
+ 3. Critical/High bugs ahead of Medium/Low bugs
123
+ 4. Avoid blocked items unless capacity allows waiting
124
+ </action>
84
125
  <output>
85
- ## Unassigned Backlog Items
126
+ ## 🎯 Prioritization Analysis
86
127
 
87
- | # | ID | Title | Type | Priority | Severity |
88
- |---|---|---|---|---|---|
89
- {{#each displayed_items}}
90
- | {{@index+1}} | {{id}} | {{title}} | {{type}} | {{priority}} | {{severity_or_na}} |
128
+ | Rank | ID / File | Title | Type | Business Value | Dependencies | Severity | Effort | Rationale |
129
+ |---|---|---|---|---|---|---|---|---|
130
+ {{#each ranked_items}}
131
+ | {{rank}} | {{id}} | {{title}} | {{type}} | {{business_value}} | {{dependency_status}} | {{severity}} | {{effort}} | {{rationale}} |
91
132
  {{/each}}
92
133
 
93
- *Showing {{displayed_count}} of {{total_unassigned}} unassigned items.*
134
+ **Recommended selection** (up to {{remaining_capacity}} items to stay within capacity): {{recommended_selection}}
94
135
  </output>
95
136
  </step>
96
137
 
97
- <step n="4" goal="Prompt for item selection">
98
- <ask>Select items to add (comma-separated numbers, 'all' for all shown, or 'q' to cancel):</ask>
99
- <check if="user enters 'q'">
100
- <output>Assignment cancelled -- no changes made.</output>
138
+ <step n="7" goal="User confirms or adjusts ranking">
139
+ <ask>Review the ranking above. Options:
140
+ - [c] Confirm recommended selection as-is
141
+ - [m] Modify selection (specify item numbers to include)
142
+ - [r] Re-rank items (provide new priority order)
143
+ - [x] Cancel without assigning
144
+
145
+ Choice:</ask>
146
+ <check if="user selects 'x'">
147
+ <output>❌ Assignment cancelled — no changes made.</output>
101
148
  <action>Exit workflow</action>
102
149
  </check>
103
- <check if="user enters 'all'">
104
- <action>Set {{selected_items}} = all displayed items from step 3</action>
150
+ <check if="user selects 'm'">
151
+ <ask>Enter item numbers to assign (comma-separated):</ask>
152
+ <action>Update {{confirmed_items}} with user selection</action>
105
153
  </check>
106
- <check if="user enters comma-separated numbers">
107
- <action>Parse and validate each number is within the displayed list range</action>
108
- <check if="any number is invalid or out of range">
109
- <output>Invalid selection: {{invalid_numbers}}. Enter numbers from the list above.</output>
110
- <goto step="4" />
111
- </check>
112
- <action>Set {{selected_items}} = the items corresponding to the entered numbers</action>
154
+ <check if="user selects 'r'">
155
+ <ask>Enter item numbers in your preferred priority order (comma-separated). Only items you include will be assigned — items not listed will be excluded from this session and remain in the unassigned backlog:</ask>
156
+ <action>Set {{confirmed_items}} = only the items matching the user-provided numbers, in the order provided. Items from {{candidate_items}} NOT mentioned are excluded from assignment in this session (they remain available in the backlog for future sprints).</action>
157
+ </check>
158
+ <check if="user selects 'c'">
159
+ <action>Set {{confirmed_items}} = recommended selection</action>
113
160
  </check>
161
+ <action>Store confirmed ranking in {{confirmed_ranking}} for auditability (included in workflow output)</action>
114
162
  </step>
115
163
 
116
- <step n="5" goal="Capacity check and assignment">
117
- <action>For each item in {{selected_items}}, in order:</action>
118
- <action>Re-calculate current assigned count (accounts for items already added in this session)</action>
119
- <check if="adding this item would exceed capacity">
120
- <output>Capacity Warning: Adding "{{item.title}}" ({{item.id}}) would bring assigned items to {{new_count}}/{{target_sprint.capacity}} -- exceeding sprint capacity by {{overage}}.</output>
164
+ <step n="8" goal="Assign selected items to sprint with capacity enforcement">
165
+ <action>For each item in {{confirmed_items}}, in confirmed ranking order:</action>
166
+ <action>Re-calculate current assigned count (in case multiple items are being added)</action>
167
+ <check if="assigning this item would exceed capacity">
168
+ <output>⚠️ **Capacity Warning:** Adding "{{item.title}}" would bring assigned items to {{new_count}}/{{target_sprint.capacity}} exceeding sprint capacity by {{overage}}.</output>
121
169
  <ask>Options:
122
170
  - [a] Add anyway (over-capacity acknowledged)
123
171
  - [s] Skip this item
124
- - [q] Quit (stop assigning, keep items already assigned this session)
172
+ - [m] Modify sprint capacity first via `/modify-sprint`
125
173
 
126
174
  Choice:</ask>
127
175
  <check if="user selects 's'">
128
- <action>Skip this item -- do not add to sprint. Continue to next item.</action>
129
- </check>
130
- <check if="user selects 'q'">
131
- <action>Stop processing remaining items. Proceed to step 6 with items confirmed so far.</action>
176
+ <action>Skip this item do not add to sprint. Continue to next item in the {{confirmed_items}} loop.</action>
132
177
  </check>
133
- <check if="user selects 'a'">
134
- <action>Proceed with adding this item despite over-capacity.</action>
178
+ <check if="user selects 'm'">
179
+ <output>💡 Run `/modify-sprint` to increase capacity for {{target_sprint.sprint_name}}, then re-run `/add-to-sprint`.</output>
180
+ <action>Exit workflow</action>
135
181
  </check>
136
182
  </check>
137
- <action>For each confirmed item:
138
- - Add item ID to {{target_sprint}}.items array
139
- - Set item's `sprint` field in backlog.yaml to {{target_sprint.id}}
140
- - Update {{target_sprint}}.last_modified to current ISO timestamp
141
- </action>
142
- <action>Store all confirmed items as {{assigned_items}} for the summary.</action>
183
+ <action>Add item identifier to {{target_sprint.assigned_items}} list in the sprint-plan-{{target_sprint.sprint_number}}.yaml artifact</action>
184
+ <action>Item identifier format: story key for user stories (e.g., `12-1-add-sprint-workflow`), file basename for bugs (e.g., `bug-login-crash`)</action>
143
185
  </step>
144
186
 
145
- <step n="6" goal="Persist changes and display summary">
146
- <check if="no items were confirmed for assignment">
147
- <output>No items were assigned. No files modified.</output>
148
- <action>Exit workflow</action>
149
- </check>
150
- <action>**Dual-write — both files must be updated for consistency:**</action>
151
- <action>Write updated `_bmad-output/implementation-artifacts/backlog.yaml`:
152
- - Preserve all existing fields on all items
153
- - Only the `sprint` field changes on assigned items (set to {{target_sprint.id}})
154
- </action>
155
- <check if="backlog.yaml write fails">
156
- <output>**Error:** Failed to write backlog.yaml. No changes persisted. Sprint file NOT modified.</output>
157
- <action>Exit workflow</action>
158
- </check>
159
- <action>Write updated `_bmad-output/implementation-artifacts/sprints/{{target_sprint.id}}.yaml`:
160
- - Append confirmed item IDs to the `items` array
187
+ <step n="9" goal="Persist changes and display confirmed ranking for auditability">
188
+ <action>Update `_bmad-output/implementation-artifacts/sprint-plan-{{target_sprint.sprint_number}}.yaml`:
189
+ - Update `assigned_items` list with all newly assigned item identifiers
161
190
  - Update `last_modified` to current ISO timestamp
162
- - Preserve all other fields unchanged
163
191
  </action>
164
- <check if="sprint file write fails">
165
- <output>**Warning: Inconsistent state!** backlog.yaml was updated but sprint file write failed. The `sprint` field in backlog.yaml now references {{target_sprint.id}} but the sprint file's `items` array is stale. Re-run `/add-to-sprint` or manually fix `sprints/{{target_sprint.id}}.yaml`.</output>
166
- </check>
167
- <action>**Do NOT read or write sprint-plan-*.yaml or sprint-status.yaml**</action>
192
+ <action>**Do NOT modify sprint-status.yaml** sprint membership is exclusively tracked in sprint-plan-{n}.yaml</action>
168
193
  <output>
169
- ## Assignment Complete
194
+ ## Assignment Complete
170
195
 
171
- **Sprint:** {{target_sprint.name}} ({{target_sprint.id}})
172
- **Items assigned this session:** {{assigned_count_this_session}}
196
+ **Sprint:** {{target_sprint.sprint_name}}
197
+ **Items assigned this session:** {{assigned_this_session}}
173
198
 
174
- | # | ID | Title | Type | Priority |
175
- |---|---|---|---|---|
176
- {{#each assigned_items}}
177
- | {{@index+1}} | {{id}} | {{title}} | {{type}} | {{priority}} |
199
+ ### Confirmed Ranking (Audit Record)
200
+
201
+ | Rank | ID | Title | Type | Business Value | Dependencies | Severity | Effort |
202
+ |---|---|---|---|---|---|---|---|
203
+ {{#each confirmed_ranking}}
204
+ | {{rank}} | {{id}} | {{title}} | {{type}} | {{business_value}} | {{dependency_status}} | {{severity}} | {{effort}} |
178
205
  {{/each}}
179
206
 
180
- **Capacity Usage:** {{new_assigned_total}}/{{target_sprint.capacity}} items ({{new_remaining}} remaining)
207
+ **Updated Capacity:** {{new_assigned_count}}/{{target_sprint.capacity}} items used ({{new_remaining}} remaining)
181
208
 
182
209
  **Next Steps:**
183
- - Use `/add-to-sprint` again to assign more items
184
210
  - Use `/modify-sprint` to adjust capacity or remove items
185
211
  - Use `/sprint-status-view` to view the full sprint with all assigned items
186
212
  </output>