ma-agents 3.4.8 → 3.5.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 (762) hide show
  1. package/AiAudit.md +7 -0
  2. package/README.md +78 -29
  3. package/_bmad-output/implementation-artifacts/17-10-rework-generate-backlog.md +237 -0
  4. package/_bmad-output/implementation-artifacts/17-11-rework-add-to-sprint.md +339 -0
  5. package/_bmad-output/implementation-artifacts/17-12-rework-remove-from-sprint.md +348 -0
  6. package/_bmad-output/implementation-artifacts/17-13-rework-sprint-status-view.md +383 -0
  7. package/_bmad-output/implementation-artifacts/17-14-rework-cleanup-done.md +348 -0
  8. package/_bmad-output/implementation-artifacts/17-15-rework-bmad-sprint-planning.md +385 -0
  9. package/_bmad-output/implementation-artifacts/17-16-rework-add-sprint.md +362 -0
  10. package/_bmad-output/implementation-artifacts/17-17-rework-modify-sprint.md +477 -0
  11. package/_bmad-output/implementation-artifacts/17-18-rework-bmad-dev-story.md +377 -0
  12. package/_bmad-output/implementation-artifacts/17-19-rework-story-status-lookup.md +301 -0
  13. package/_bmad-output/implementation-artifacts/17-20-rework-bmad-sprint-status.md +508 -0
  14. package/_bmad-output/implementation-artifacts/17-21-new-close-sprint.md +455 -0
  15. package/_bmad-output/implementation-artifacts/17-22-jira-adapter-pattern.md +325 -0
  16. package/_bmad-output/implementation-artifacts/17-23-migration-deprecation-old-files.md +403 -0
  17. package/_bmad-output/implementation-artifacts/17-24-rework-prioritize-backlog.md +344 -0
  18. package/_bmad-output/implementation-artifacts/17-9-unified-sprint-status-schema.md +279 -0
  19. package/_bmad-output/implementation-artifacts/4-1-vs-agent-registry-entry.md +173 -0
  20. package/_bmad-output/implementation-artifacts/4-2-vs-skill-template-format.md +129 -0
  21. package/_bmad-output/implementation-artifacts/5-5-explicit-parameter-passing.md +274 -0
  22. package/_bmad-output/implementation-artifacts/5-6-fix-space-in-path-bug.md +186 -0
  23. package/_bmad-output/implementation-artifacts/7-1-test-infrastructure-setup.md +144 -0
  24. package/_bmad-output/implementation-artifacts/7-2-installer-pipeline-tests.md +132 -0
  25. package/_bmad-output/implementation-artifacts/7-3-bmad-pipeline-tests.md +119 -0
  26. package/_bmad-output/implementation-artifacts/7-4-cli-command-routing-tests.md +162 -0
  27. package/_bmad-output/implementation-artifacts/deferred-work.md +9 -0
  28. package/_bmad-output/implementation-artifacts/done/1-1-ci-cd-yes-flag.md +200 -0
  29. package/_bmad-output/implementation-artifacts/done/10-1-ensure-bmad-output-not-gitignored.md +172 -0
  30. package/_bmad-output/implementation-artifacts/done/10-2-document-bmad-output-policy.md +102 -0
  31. package/_bmad-output/implementation-artifacts/done/11-1-auto-bug-detection-skill.md +119 -0
  32. package/_bmad-output/implementation-artifacts/done/11-2-bug-story-extension-workflow.md +132 -0
  33. package/_bmad-output/implementation-artifacts/done/11-3-integrate-bug-detection-code-review.md +111 -0
  34. package/_bmad-output/implementation-artifacts/done/12-1-add-sprint-workflow.md +126 -0
  35. package/_bmad-output/implementation-artifacts/done/12-2-add-to-sprint-workflow.md +137 -0
  36. package/_bmad-output/implementation-artifacts/done/12-3-modify-sprint-workflow.md +127 -0
  37. package/_bmad-output/implementation-artifacts/done/12-4-sprint-status-assigned-items.md +129 -0
  38. package/_bmad-output/implementation-artifacts/done/13-1-project-context-template-and-generator.md +179 -0
  39. package/_bmad-output/implementation-artifacts/done/13-2-install-pipeline-integration.md +138 -0
  40. package/_bmad-output/implementation-artifacts/done/13-3-bmad-critical-actions-update.md +150 -0
  41. package/_bmad-output/implementation-artifacts/done/13-4-retrospective-expansion-trigger.md +128 -0
  42. package/_bmad-output/implementation-artifacts/done/13-5-document-project-context-generation.md +118 -0
  43. package/_bmad-output/implementation-artifacts/done/15-1-bump-bmad-method-to-6-2-1.md +132 -0
  44. package/_bmad-output/implementation-artifacts/done/15-2-restructure-extension-module.md +174 -0
  45. package/_bmad-output/implementation-artifacts/done/15-3-convert-custom-agents-to-skill-folders.md +183 -0
  46. package/_bmad-output/implementation-artifacts/done/15-4-convert-mil498-workflows-to-skill-md.md +252 -0
  47. package/_bmad-output/implementation-artifacts/done/15-5-convert-sre-devops-cyber-workflows.md +232 -0
  48. package/_bmad-output/implementation-artifacts/done/15-6-separate-built-in-agent-customizations.md +163 -0
  49. package/_bmad-output/implementation-artifacts/done/15-7-migration-detection-and-upgrade-path.md +133 -0
  50. package/_bmad-output/implementation-artifacts/done/15-8-validate-migrated-agents-and-workflows.md +172 -0
  51. package/_bmad-output/implementation-artifacts/done/15-8-validation-report.md +342 -0
  52. package/_bmad-output/implementation-artifacts/done/16-1-repository-layout-wizard.md +223 -0
  53. package/_bmad-output/implementation-artifacts/done/16-2-config-storage-and-cross-reference.md +180 -0
  54. package/_bmad-output/implementation-artifacts/done/16-3-project-context-multi-repo-section.md +136 -0
  55. package/_bmad-output/implementation-artifacts/done/16-4-validate-cross-repo-path-resolution.md +137 -0
  56. package/_bmad-output/implementation-artifacts/done/16-4-validation-report.md +79 -0
  57. package/_bmad-output/implementation-artifacts/done/16-5-fix-config-lost-on-update.md +110 -0
  58. package/_bmad-output/implementation-artifacts/done/16-6-repo-sync-check-skill.md +116 -0
  59. package/_bmad-output/implementation-artifacts/done/16-7-portable-path-storage.md +109 -0
  60. package/_bmad-output/implementation-artifacts/done/16-8-cicd-remote-mode.md +97 -0
  61. package/_bmad-output/implementation-artifacts/done/16-9-reconfigure-layout-workflow.md +125 -0
  62. package/_bmad-output/implementation-artifacts/done/17-1-sprint-entity-model.md +322 -0
  63. package/_bmad-output/implementation-artifacts/done/17-2-flat-backlog-model.md +264 -0
  64. package/_bmad-output/implementation-artifacts/done/17-3-bug-as-story-type.md +208 -0
  65. package/_bmad-output/implementation-artifacts/done/17-4-backlog-to-sprint-workflow.md +209 -0
  66. package/_bmad-output/implementation-artifacts/done/17-5-sprint-to-backlog-workflow.md +221 -0
  67. package/_bmad-output/implementation-artifacts/done/17-6-done-item-cleanup.md +273 -0
  68. package/_bmad-output/implementation-artifacts/done/17-7-multi-criteria-prioritization.md +235 -0
  69. package/_bmad-output/implementation-artifacts/done/17-8-rework-sprint-status-display.md +285 -0
  70. package/_bmad-output/implementation-artifacts/done/2-1-cpp-coding-standards-skill.md +188 -0
  71. package/_bmad-output/implementation-artifacts/done/2-2-csharp-coding-standards-skill.md +211 -0
  72. package/_bmad-output/implementation-artifacts/done/2-3-python-coding-standards-skill.md +189 -0
  73. package/_bmad-output/implementation-artifacts/done/3-1-skill-scaffolding-tool.md +184 -0
  74. package/_bmad-output/implementation-artifacts/done/3-2-skill-validation-tool.md +178 -0
  75. package/_bmad-output/implementation-artifacts/done/3-3-mandatory-skill-designation.md +136 -0
  76. package/_bmad-output/implementation-artifacts/done/3-4-bmad-persona-customization-tooling.md +141 -0
  77. package/_bmad-output/implementation-artifacts/done/3-5-specialized-agent-development-tooling.md +145 -0
  78. package/_bmad-output/implementation-artifacts/done/5-1-bmad-method-direct-dependency.md +188 -0
  79. package/_bmad-output/implementation-artifacts/done/5-2-bmad-cache-build-script.md +219 -0
  80. package/_bmad-output/implementation-artifacts/done/5-3-pre-populate-bmad-cache.md +234 -0
  81. package/_bmad-output/implementation-artifacts/done/5-4-validate-bundled-installation.md +274 -0
  82. package/_bmad-output/implementation-artifacts/done/6-1-methodology-presentation-bundle.md +173 -0
  83. package/_bmad-output/implementation-artifacts/done/8-1-move-instruction-injection-to-top.md +131 -0
  84. package/_bmad-output/implementation-artifacts/done/8-2-agent-aware-injection-strategy.md +124 -0
  85. package/_bmad-output/implementation-artifacts/done/8-3-create-bmad-extension-module.md +187 -0
  86. package/_bmad-output/implementation-artifacts/done/8-4-integration-verification.md +102 -0
  87. package/_bmad-output/implementation-artifacts/done/8-5-per-agent-enforcement-hooks-research.md +126 -0
  88. package/_bmad-output/implementation-artifacts/done/8-6-context-persistence-research.md +101 -0
  89. package/_bmad-output/implementation-artifacts/done/9-1-register-opencode-agent.md +73 -0
  90. package/_bmad-output/implementation-artifacts/done/9-2-json-merge-injection.md +91 -0
  91. package/_bmad-output/implementation-artifacts/done/9-3-json-merge-existing.md +113 -0
  92. package/_bmad-output/implementation-artifacts/done/9-4-json-error-handling.md +90 -0
  93. package/_bmad-output/implementation-artifacts/epic-11-12-shared-guardrails.md +53 -0
  94. package/_bmad-output/implementation-artifacts/epic-15-adversarial-fixes.md +287 -0
  95. package/_bmad-output/implementation-artifacts/epic-16-adversarial-review.md +49 -0
  96. package/_bmad-output/implementation-artifacts/epic-16-edge-case-review.md +230 -0
  97. package/_bmad-output/implementation-artifacts/epic-17-adversarial-review.md +37 -0
  98. package/_bmad-output/implementation-artifacts/epic-17-edge-case-review.md +140 -0
  99. package/_bmad-output/implementation-artifacts/sprint-status.yaml +83 -0
  100. package/_bmad-output/methodology/BMAD_AI_Development_Training.pptx +0 -0
  101. package/_bmad-output/methodology/version.json +7 -0
  102. package/_bmad-output/planning-artifacts/adapter-pattern-spec.md +508 -0
  103. package/_bmad-output/planning-artifacts/architecture.md +1619 -0
  104. package/_bmad-output/planning-artifacts/domain-research-roocode-2026-03-31.md +295 -0
  105. package/_bmad-output/planning-artifacts/epics.md +3287 -0
  106. package/_bmad-output/planning-artifacts/mil498-workflow-audit.md +290 -0
  107. package/_bmad-output/planning-artifacts/prd.md +684 -0
  108. package/_bmad-output/planning-artifacts/product-brief-agents-2026-03-08.md +214 -0
  109. package/_bmad-output/planning-artifacts/sprint-status-schema.md +506 -0
  110. package/_bmad-output/project-context.md +47 -0
  111. package/bin/cli.js +5 -4
  112. package/lib/agents.js +16 -1
  113. package/lib/bmad-extension/module-help.csv +27 -22
  114. package/lib/bmad-extension/skills/add-sprint/SKILL.md +120 -152
  115. package/lib/bmad-extension/skills/add-to-sprint/SKILL.md +170 -116
  116. package/{.opencode/skills/add-to-sprint → lib/bmad-extension/skills/bmad-dev-story}/bmad-skill-manifest.yaml +1 -1
  117. package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/checklist.md +13 -13
  118. package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/workflow.md +103 -44
  119. package/lib/bmad-extension/skills/bmad-ma-agent-mil498/SKILL.md +2 -1
  120. package/lib/bmad-extension/skills/bmad-sprint-planning/SKILL.md +6 -0
  121. package/{.opencode/skills/create-bug-story → lib/bmad-extension/skills/bmad-sprint-planning}/bmad-skill-manifest.yaml +1 -1
  122. package/lib/bmad-extension/skills/bmad-sprint-planning/checklist.md +74 -0
  123. package/lib/bmad-extension/skills/bmad-sprint-planning/sprint-status-template.yaml +89 -0
  124. package/lib/bmad-extension/skills/bmad-sprint-planning/workflow.md +372 -0
  125. package/lib/bmad-extension/skills/bmad-sprint-status/SKILL.md +6 -0
  126. package/{.opencode/skills/cleanup-done → lib/bmad-extension/skills/bmad-sprint-status}/bmad-skill-manifest.yaml +1 -1
  127. package/lib/bmad-extension/skills/bmad-sprint-status/workflow.md +434 -0
  128. package/lib/bmad-extension/skills/cleanup-done/SKILL.md +154 -98
  129. package/lib/bmad-extension/skills/close-sprint/SKILL.md +379 -0
  130. package/{.opencode/skills/add-sprint → lib/bmad-extension/skills/close-sprint}/bmad-skill-manifest.yaml +1 -1
  131. package/lib/bmad-extension/skills/create-bug-story/SKILL.md +7 -75
  132. package/lib/bmad-extension/skills/generate-backlog/SKILL.md +152 -140
  133. package/lib/bmad-extension/skills/mil498-requirement-quality/SKILL.md +105 -0
  134. package/lib/bmad-extension/skills/mil498-requirement-quality/bmad-skill-manifest.yaml +5 -0
  135. package/lib/bmad-extension/skills/mil498-ssdd/prompts/05-validate.md +4 -0
  136. package/lib/bmad-extension/skills/modify-sprint/SKILL.md +224 -235
  137. package/lib/bmad-extension/skills/prioritize-backlog/SKILL.md +157 -135
  138. package/lib/bmad-extension/skills/remove-from-sprint/SKILL.md +125 -104
  139. package/lib/bmad-extension/skills/sprint-status-view/SKILL.md +153 -239
  140. package/lib/bmad-extension/workflows/add-sprint/workflow.md +119 -155
  141. package/lib/bmad-extension/workflows/add-to-sprint/workflow.md +233 -3
  142. package/lib/bmad-extension/workflows/modify-sprint/workflow.md +228 -181
  143. package/lib/bmad-extension/workflows/remove-from-sprint/workflow.md +164 -0
  144. package/lib/bmad-extension/workflows/sprint-status-view/workflow.md +165 -3
  145. package/mil498/README.md +4 -0
  146. package/out.txt +0 -0
  147. package/package.json +1 -1
  148. package/skills/add-sprint/SKILL.md +165 -0
  149. package/skills/add-sprint/skill.json +7 -0
  150. package/skills/add-to-sprint/SKILL.md +231 -0
  151. package/skills/add-to-sprint/skill.json +7 -0
  152. package/skills/bmad-sprint-planning/SKILL.md +321 -0
  153. package/skills/bmad-sprint-planning/skill.json +7 -0
  154. package/skills/bmad-sprint-status/SKILL.md +273 -0
  155. package/skills/bmad-sprint-status/skill.json +7 -0
  156. package/skills/cleanup-done/SKILL.md +203 -0
  157. package/skills/cleanup-done/skill.json +7 -0
  158. package/skills/close-sprint/SKILL.md +370 -0
  159. package/skills/close-sprint/skill.json +7 -0
  160. package/skills/generate-backlog/SKILL.md +178 -0
  161. package/skills/generate-backlog/skill.json +7 -0
  162. package/skills/modify-sprint/SKILL.md +302 -0
  163. package/skills/modify-sprint/skill.json +7 -0
  164. package/skills/prioritize-backlog/SKILL.md +203 -0
  165. package/skills/prioritize-backlog/skill.json +7 -0
  166. package/skills/remove-from-sprint/SKILL.md +174 -0
  167. package/skills/remove-from-sprint/skill.json +7 -0
  168. package/skills/sprint-status-view/SKILL.md +173 -0
  169. package/skills/sprint-status-view/skill.json +7 -0
  170. package/skills/story-status-lookup/SKILL.md +21 -6
  171. package/skills/story-status-lookup/skill.json +2 -2
  172. package/test/extension-module-restructure.test.js +12 -11
  173. package/test/migration-validation.test.js +10 -10
  174. package/.opencode/skills/.ma-agents.json +0 -122
  175. package/.opencode/skills/MANIFEST.yaml +0 -126
  176. package/.opencode/skills/add-sprint/SKILL.md +0 -207
  177. package/.opencode/skills/add-to-sprint/SKILL.md +0 -189
  178. package/.opencode/skills/bmad-advanced-elicitation/SKILL.md +0 -137
  179. package/.opencode/skills/bmad-advanced-elicitation/methods.csv +0 -51
  180. package/.opencode/skills/bmad-agent-analyst/SKILL.md +0 -56
  181. package/.opencode/skills/bmad-agent-analyst/bmad-skill-manifest.yaml +0 -11
  182. package/.opencode/skills/bmad-agent-architect/SKILL.md +0 -52
  183. package/.opencode/skills/bmad-agent-architect/bmad-skill-manifest.yaml +0 -11
  184. package/.opencode/skills/bmad-agent-dev/SKILL.md +0 -62
  185. package/.opencode/skills/bmad-agent-dev/bmad-skill-manifest.yaml +0 -11
  186. package/.opencode/skills/bmad-agent-pm/SKILL.md +0 -57
  187. package/.opencode/skills/bmad-agent-pm/bmad-skill-manifest.yaml +0 -11
  188. package/.opencode/skills/bmad-agent-qa/SKILL.md +0 -59
  189. package/.opencode/skills/bmad-agent-qa/bmad-skill-manifest.yaml +0 -11
  190. package/.opencode/skills/bmad-agent-quick-flow-solo-dev/SKILL.md +0 -51
  191. package/.opencode/skills/bmad-agent-quick-flow-solo-dev/bmad-skill-manifest.yaml +0 -11
  192. package/.opencode/skills/bmad-agent-sm/SKILL.md +0 -53
  193. package/.opencode/skills/bmad-agent-sm/bmad-skill-manifest.yaml +0 -11
  194. package/.opencode/skills/bmad-agent-tech-writer/SKILL.md +0 -55
  195. package/.opencode/skills/bmad-agent-tech-writer/bmad-skill-manifest.yaml +0 -11
  196. package/.opencode/skills/bmad-agent-tech-writer/explain-concept.md +0 -20
  197. package/.opencode/skills/bmad-agent-tech-writer/mermaid-gen.md +0 -20
  198. package/.opencode/skills/bmad-agent-tech-writer/validate-doc.md +0 -19
  199. package/.opencode/skills/bmad-agent-tech-writer/write-document.md +0 -20
  200. package/.opencode/skills/bmad-agent-ux-designer/SKILL.md +0 -53
  201. package/.opencode/skills/bmad-agent-ux-designer/bmad-skill-manifest.yaml +0 -11
  202. package/.opencode/skills/bmad-brainstorming/SKILL.md +0 -6
  203. package/.opencode/skills/bmad-brainstorming/brain-methods.csv +0 -62
  204. package/.opencode/skills/bmad-brainstorming/steps/step-01-session-setup.md +0 -214
  205. package/.opencode/skills/bmad-brainstorming/steps/step-01b-continue.md +0 -124
  206. package/.opencode/skills/bmad-brainstorming/steps/step-02a-user-selected.md +0 -229
  207. package/.opencode/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -239
  208. package/.opencode/skills/bmad-brainstorming/steps/step-02c-random-selection.md +0 -211
  209. package/.opencode/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -266
  210. package/.opencode/skills/bmad-brainstorming/steps/step-03-technique-execution.md +0 -401
  211. package/.opencode/skills/bmad-brainstorming/steps/step-04-idea-organization.md +0 -305
  212. package/.opencode/skills/bmad-brainstorming/template.md +0 -15
  213. package/.opencode/skills/bmad-brainstorming/workflow.md +0 -53
  214. package/.opencode/skills/bmad-check-implementation-readiness/SKILL.md +0 -6
  215. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -179
  216. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -168
  217. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -169
  218. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -129
  219. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -241
  220. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -126
  221. package/.opencode/skills/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -4
  222. package/.opencode/skills/bmad-check-implementation-readiness/workflow.md +0 -49
  223. package/.opencode/skills/bmad-cis-design-thinking/SKILL.md +0 -6
  224. package/.opencode/skills/bmad-cis-design-thinking/bmad-skill-manifest.yaml +0 -1
  225. package/.opencode/skills/bmad-cis-design-thinking/design-methods.csv +0 -31
  226. package/.opencode/skills/bmad-cis-design-thinking/template.md +0 -111
  227. package/.opencode/skills/bmad-cis-design-thinking/workflow.md +0 -242
  228. package/.opencode/skills/bmad-cis-innovation-strategy/SKILL.md +0 -6
  229. package/.opencode/skills/bmad-cis-innovation-strategy/bmad-skill-manifest.yaml +0 -1
  230. package/.opencode/skills/bmad-cis-innovation-strategy/innovation-frameworks.csv +0 -31
  231. package/.opencode/skills/bmad-cis-innovation-strategy/template.md +0 -189
  232. package/.opencode/skills/bmad-cis-innovation-strategy/workflow.md +0 -315
  233. package/.opencode/skills/bmad-cis-problem-solving/SKILL.md +0 -6
  234. package/.opencode/skills/bmad-cis-problem-solving/bmad-skill-manifest.yaml +0 -1
  235. package/.opencode/skills/bmad-cis-problem-solving/solving-methods.csv +0 -31
  236. package/.opencode/skills/bmad-cis-problem-solving/template.md +0 -165
  237. package/.opencode/skills/bmad-cis-problem-solving/workflow.md +0 -291
  238. package/.opencode/skills/bmad-cis-storytelling/SKILL.md +0 -6
  239. package/.opencode/skills/bmad-cis-storytelling/bmad-skill-manifest.yaml +0 -1
  240. package/.opencode/skills/bmad-cis-storytelling/story-types.csv +0 -26
  241. package/.opencode/skills/bmad-cis-storytelling/template.md +0 -113
  242. package/.opencode/skills/bmad-cis-storytelling/workflow.md +0 -321
  243. package/.opencode/skills/bmad-code-review/SKILL.md +0 -6
  244. package/.opencode/skills/bmad-code-review/steps/step-01-gather-context.md +0 -62
  245. package/.opencode/skills/bmad-code-review/steps/step-02-review.md +0 -34
  246. package/.opencode/skills/bmad-code-review/steps/step-03-triage.md +0 -49
  247. package/.opencode/skills/bmad-code-review/steps/step-04-present.md +0 -129
  248. package/.opencode/skills/bmad-code-review/workflow.md +0 -55
  249. package/.opencode/skills/bmad-correct-course/SKILL.md +0 -6
  250. package/.opencode/skills/bmad-correct-course/checklist.md +0 -288
  251. package/.opencode/skills/bmad-correct-course/workflow.md +0 -267
  252. package/.opencode/skills/bmad-create-architecture/SKILL.md +0 -6
  253. package/.opencode/skills/bmad-create-architecture/architecture-decision-template.md +0 -12
  254. package/.opencode/skills/bmad-create-architecture/data/domain-complexity.csv +0 -13
  255. package/.opencode/skills/bmad-create-architecture/data/project-types.csv +0 -7
  256. package/.opencode/skills/bmad-create-architecture/steps/step-01-init.md +0 -153
  257. package/.opencode/skills/bmad-create-architecture/steps/step-01b-continue.md +0 -173
  258. package/.opencode/skills/bmad-create-architecture/steps/step-02-context.md +0 -224
  259. package/.opencode/skills/bmad-create-architecture/steps/step-03-starter.md +0 -329
  260. package/.opencode/skills/bmad-create-architecture/steps/step-04-decisions.md +0 -318
  261. package/.opencode/skills/bmad-create-architecture/steps/step-05-patterns.md +0 -359
  262. package/.opencode/skills/bmad-create-architecture/steps/step-06-structure.md +0 -379
  263. package/.opencode/skills/bmad-create-architecture/steps/step-07-validation.md +0 -359
  264. package/.opencode/skills/bmad-create-architecture/steps/step-08-complete.md +0 -76
  265. package/.opencode/skills/bmad-create-architecture/workflow.md +0 -38
  266. package/.opencode/skills/bmad-create-epics-and-stories/SKILL.md +0 -6
  267. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -255
  268. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -212
  269. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -255
  270. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -131
  271. package/.opencode/skills/bmad-create-epics-and-stories/templates/epics-template.md +0 -61
  272. package/.opencode/skills/bmad-create-epics-and-stories/workflow.md +0 -53
  273. package/.opencode/skills/bmad-create-prd/SKILL.md +0 -6
  274. package/.opencode/skills/bmad-create-prd/data/domain-complexity.csv +0 -15
  275. package/.opencode/skills/bmad-create-prd/data/prd-purpose.md +0 -197
  276. package/.opencode/skills/bmad-create-prd/data/project-types.csv +0 -11
  277. package/.opencode/skills/bmad-create-prd/steps-c/step-01-init.md +0 -178
  278. package/.opencode/skills/bmad-create-prd/steps-c/step-01b-continue.md +0 -161
  279. package/.opencode/skills/bmad-create-prd/steps-c/step-02-discovery.md +0 -208
  280. package/.opencode/skills/bmad-create-prd/steps-c/step-02b-vision.md +0 -142
  281. package/.opencode/skills/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -158
  282. package/.opencode/skills/bmad-create-prd/steps-c/step-03-success.md +0 -214
  283. package/.opencode/skills/bmad-create-prd/steps-c/step-04-journeys.md +0 -201
  284. package/.opencode/skills/bmad-create-prd/steps-c/step-05-domain.md +0 -194
  285. package/.opencode/skills/bmad-create-prd/steps-c/step-06-innovation.md +0 -211
  286. package/.opencode/skills/bmad-create-prd/steps-c/step-07-project-type.md +0 -222
  287. package/.opencode/skills/bmad-create-prd/steps-c/step-08-scoping.md +0 -216
  288. package/.opencode/skills/bmad-create-prd/steps-c/step-09-functional.md +0 -219
  289. package/.opencode/skills/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -230
  290. package/.opencode/skills/bmad-create-prd/steps-c/step-11-polish.md +0 -221
  291. package/.opencode/skills/bmad-create-prd/steps-c/step-12-complete.md +0 -115
  292. package/.opencode/skills/bmad-create-prd/templates/prd-template.md +0 -10
  293. package/.opencode/skills/bmad-create-prd/workflow.md +0 -62
  294. package/.opencode/skills/bmad-create-story/SKILL.md +0 -6
  295. package/.opencode/skills/bmad-create-story/checklist.md +0 -357
  296. package/.opencode/skills/bmad-create-story/discover-inputs.md +0 -88
  297. package/.opencode/skills/bmad-create-story/template.md +0 -49
  298. package/.opencode/skills/bmad-create-story/workflow.md +0 -380
  299. package/.opencode/skills/bmad-create-ux-design/SKILL.md +0 -6
  300. package/.opencode/skills/bmad-create-ux-design/steps/step-01-init.md +0 -135
  301. package/.opencode/skills/bmad-create-ux-design/steps/step-01b-continue.md +0 -127
  302. package/.opencode/skills/bmad-create-ux-design/steps/step-02-discovery.md +0 -190
  303. package/.opencode/skills/bmad-create-ux-design/steps/step-03-core-experience.md +0 -217
  304. package/.opencode/skills/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -220
  305. package/.opencode/skills/bmad-create-ux-design/steps/step-05-inspiration.md +0 -235
  306. package/.opencode/skills/bmad-create-ux-design/steps/step-06-design-system.md +0 -253
  307. package/.opencode/skills/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -255
  308. package/.opencode/skills/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -225
  309. package/.opencode/skills/bmad-create-ux-design/steps/step-09-design-directions.md +0 -225
  310. package/.opencode/skills/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -242
  311. package/.opencode/skills/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -249
  312. package/.opencode/skills/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -238
  313. package/.opencode/skills/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -265
  314. package/.opencode/skills/bmad-create-ux-design/steps/step-14-complete.md +0 -171
  315. package/.opencode/skills/bmad-create-ux-design/ux-design-template.md +0 -13
  316. package/.opencode/skills/bmad-create-ux-design/workflow.md +0 -36
  317. package/.opencode/skills/bmad-distillator/SKILL.md +0 -178
  318. package/.opencode/skills/bmad-distillator/agents/distillate-compressor.md +0 -116
  319. package/.opencode/skills/bmad-distillator/agents/round-trip-reconstructor.md +0 -68
  320. package/.opencode/skills/bmad-distillator/resources/compression-rules.md +0 -51
  321. package/.opencode/skills/bmad-distillator/resources/distillate-format-reference.md +0 -227
  322. package/.opencode/skills/bmad-distillator/resources/splitting-strategy.md +0 -78
  323. package/.opencode/skills/bmad-distillator/scripts/analyze_sources.py +0 -300
  324. package/.opencode/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -204
  325. package/.opencode/skills/bmad-document-project/SKILL.md +0 -6
  326. package/.opencode/skills/bmad-document-project/checklist.md +0 -245
  327. package/.opencode/skills/bmad-document-project/documentation-requirements.csv +0 -12
  328. package/.opencode/skills/bmad-document-project/instructions.md +0 -128
  329. package/.opencode/skills/bmad-document-project/templates/deep-dive-template.md +0 -345
  330. package/.opencode/skills/bmad-document-project/templates/index-template.md +0 -169
  331. package/.opencode/skills/bmad-document-project/templates/project-overview-template.md +0 -103
  332. package/.opencode/skills/bmad-document-project/templates/project-scan-report-schema.json +0 -160
  333. package/.opencode/skills/bmad-document-project/templates/source-tree-template.md +0 -135
  334. package/.opencode/skills/bmad-document-project/workflow.md +0 -27
  335. package/.opencode/skills/bmad-document-project/workflows/deep-dive-instructions.md +0 -299
  336. package/.opencode/skills/bmad-document-project/workflows/deep-dive-workflow.md +0 -34
  337. package/.opencode/skills/bmad-document-project/workflows/full-scan-instructions.md +0 -1107
  338. package/.opencode/skills/bmad-document-project/workflows/full-scan-workflow.md +0 -34
  339. package/.opencode/skills/bmad-domain-research/SKILL.md +0 -6
  340. package/.opencode/skills/bmad-domain-research/domain-steps/step-01-init.md +0 -137
  341. package/.opencode/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -229
  342. package/.opencode/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -238
  343. package/.opencode/skills/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -206
  344. package/.opencode/skills/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -234
  345. package/.opencode/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -444
  346. package/.opencode/skills/bmad-domain-research/research.template.md +0 -29
  347. package/.opencode/skills/bmad-domain-research/workflow.md +0 -49
  348. package/.opencode/skills/bmad-edit-prd/SKILL.md +0 -6
  349. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01-discovery.md +0 -242
  350. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +0 -204
  351. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-02-review.md +0 -245
  352. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-03-edit.md +0 -250
  353. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-04-complete.md +0 -165
  354. package/.opencode/skills/bmad-edit-prd/workflow.md +0 -63
  355. package/.opencode/skills/bmad-editorial-review-prose/SKILL.md +0 -86
  356. package/.opencode/skills/bmad-editorial-review-structure/SKILL.md +0 -179
  357. package/.opencode/skills/bmad-generate-project-context/SKILL.md +0 -6
  358. package/.opencode/skills/bmad-generate-project-context/project-context-template.md +0 -21
  359. package/.opencode/skills/bmad-generate-project-context/steps/step-01-discover.md +0 -186
  360. package/.opencode/skills/bmad-generate-project-context/steps/step-02-generate.md +0 -321
  361. package/.opencode/skills/bmad-generate-project-context/steps/step-03-complete.md +0 -278
  362. package/.opencode/skills/bmad-generate-project-context/workflow.md +0 -43
  363. package/.opencode/skills/bmad-help/SKILL.md +0 -73
  364. package/.opencode/skills/bmad-index-docs/SKILL.md +0 -66
  365. package/.opencode/skills/bmad-init/SKILL.md +0 -100
  366. package/.opencode/skills/bmad-init/resources/core-module.yaml +0 -25
  367. package/.opencode/skills/bmad-init/scripts/bmad_init.py +0 -593
  368. package/.opencode/skills/bmad-init/scripts/tests/test_bmad_init.py +0 -329
  369. package/.opencode/skills/bmad-ma-agent-cyber/SKILL.md +0 -49
  370. package/.opencode/skills/bmad-ma-agent-cyber/bmad-skill-manifest.yaml +0 -11
  371. package/.opencode/skills/bmad-ma-agent-devops/SKILL.md +0 -49
  372. package/.opencode/skills/bmad-ma-agent-devops/bmad-skill-manifest.yaml +0 -11
  373. package/.opencode/skills/bmad-ma-agent-mil498/SKILL.md +0 -53
  374. package/.opencode/skills/bmad-ma-agent-mil498/bmad-skill-manifest.yaml +0 -11
  375. package/.opencode/skills/bmad-ma-agent-ml/.gitkeep +0 -0
  376. package/.opencode/skills/bmad-ma-agent-ml/SKILL.md +0 -59
  377. package/.opencode/skills/bmad-ma-agent-ml/bmad-skill-manifest.yaml +0 -11
  378. package/.opencode/skills/bmad-ma-agent-sre/.gitkeep +0 -0
  379. package/.opencode/skills/bmad-ma-agent-sre/SKILL.md +0 -49
  380. package/.opencode/skills/bmad-ma-agent-sre/bmad-skill-manifest.yaml +0 -11
  381. package/.opencode/skills/bmad-market-research/SKILL.md +0 -6
  382. package/.opencode/skills/bmad-market-research/research.template.md +0 -29
  383. package/.opencode/skills/bmad-market-research/steps/step-01-init.md +0 -184
  384. package/.opencode/skills/bmad-market-research/steps/step-02-customer-behavior.md +0 -239
  385. package/.opencode/skills/bmad-market-research/steps/step-03-customer-pain-points.md +0 -251
  386. package/.opencode/skills/bmad-market-research/steps/step-04-customer-decisions.md +0 -261
  387. package/.opencode/skills/bmad-market-research/steps/step-05-competitive-analysis.md +0 -173
  388. package/.opencode/skills/bmad-market-research/steps/step-06-research-completion.md +0 -478
  389. package/.opencode/skills/bmad-market-research/workflow.md +0 -49
  390. package/.opencode/skills/bmad-party-mode/SKILL.md +0 -6
  391. package/.opencode/skills/bmad-party-mode/steps/step-01-agent-loading.md +0 -138
  392. package/.opencode/skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +0 -187
  393. package/.opencode/skills/bmad-party-mode/steps/step-03-graceful-exit.md +0 -167
  394. package/.opencode/skills/bmad-party-mode/workflow.md +0 -190
  395. package/.opencode/skills/bmad-product-brief/SKILL.md +0 -87
  396. package/.opencode/skills/bmad-product-brief/agents/artifact-analyzer.md +0 -60
  397. package/.opencode/skills/bmad-product-brief/agents/opportunity-reviewer.md +0 -44
  398. package/.opencode/skills/bmad-product-brief/agents/skeptic-reviewer.md +0 -44
  399. package/.opencode/skills/bmad-product-brief/agents/web-researcher.md +0 -49
  400. package/.opencode/skills/bmad-product-brief/bmad-manifest.json +0 -17
  401. package/.opencode/skills/bmad-product-brief/prompts/contextual-discovery.md +0 -57
  402. package/.opencode/skills/bmad-product-brief/prompts/draft-and-review.md +0 -86
  403. package/.opencode/skills/bmad-product-brief/prompts/finalize.md +0 -75
  404. package/.opencode/skills/bmad-product-brief/prompts/guided-elicitation.md +0 -70
  405. package/.opencode/skills/bmad-product-brief/resources/brief-template.md +0 -60
  406. package/.opencode/skills/bmad-qa-generate-e2e-tests/SKILL.md +0 -6
  407. package/.opencode/skills/bmad-qa-generate-e2e-tests/checklist.md +0 -33
  408. package/.opencode/skills/bmad-qa-generate-e2e-tests/workflow.md +0 -136
  409. package/.opencode/skills/bmad-quick-dev/SKILL.md +0 -6
  410. package/.opencode/skills/bmad-quick-dev/spec-template.md +0 -88
  411. package/.opencode/skills/bmad-quick-dev/step-01-clarify-and-route.md +0 -64
  412. package/.opencode/skills/bmad-quick-dev/step-02-plan.md +0 -35
  413. package/.opencode/skills/bmad-quick-dev/step-03-implement.md +0 -37
  414. package/.opencode/skills/bmad-quick-dev/step-04-review.md +0 -49
  415. package/.opencode/skills/bmad-quick-dev/step-05-present.md +0 -63
  416. package/.opencode/skills/bmad-quick-dev/step-oneshot.md +0 -49
  417. package/.opencode/skills/bmad-quick-dev/workflow.md +0 -79
  418. package/.opencode/skills/bmad-retrospective/SKILL.md +0 -6
  419. package/.opencode/skills/bmad-retrospective/workflow.md +0 -1479
  420. package/.opencode/skills/bmad-review-adversarial-general/SKILL.md +0 -37
  421. package/.opencode/skills/bmad-review-edge-case-hunter/SKILL.md +0 -67
  422. package/.opencode/skills/bmad-shard-doc/SKILL.md +0 -105
  423. package/.opencode/skills/bmad-sprint-planning/SKILL.md +0 -6
  424. package/.opencode/skills/bmad-sprint-planning/checklist.md +0 -33
  425. package/.opencode/skills/bmad-sprint-planning/sprint-status-template.yaml +0 -56
  426. package/.opencode/skills/bmad-sprint-planning/workflow.md +0 -263
  427. package/.opencode/skills/bmad-sprint-status/SKILL.md +0 -6
  428. package/.opencode/skills/bmad-sprint-status/workflow.md +0 -261
  429. package/.opencode/skills/bmad-technical-research/SKILL.md +0 -6
  430. package/.opencode/skills/bmad-technical-research/research.template.md +0 -29
  431. package/.opencode/skills/bmad-technical-research/technical-steps/step-01-init.md +0 -137
  432. package/.opencode/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -239
  433. package/.opencode/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -248
  434. package/.opencode/skills/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -202
  435. package/.opencode/skills/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -233
  436. package/.opencode/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -487
  437. package/.opencode/skills/bmad-technical-research/workflow.md +0 -50
  438. package/.opencode/skills/bmad-validate-prd/SKILL.md +0 -6
  439. package/.opencode/skills/bmad-validate-prd/data/domain-complexity.csv +0 -15
  440. package/.opencode/skills/bmad-validate-prd/data/prd-purpose.md +0 -197
  441. package/.opencode/skills/bmad-validate-prd/data/project-types.csv +0 -11
  442. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -221
  443. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -188
  444. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -206
  445. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -171
  446. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -211
  447. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -225
  448. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -214
  449. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -202
  450. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -240
  451. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -260
  452. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -206
  453. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -261
  454. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -239
  455. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -229
  456. package/.opencode/skills/bmad-validate-prd/workflow.md +0 -62
  457. package/.opencode/skills/cleanup-done/.gitkeep +0 -0
  458. package/.opencode/skills/cleanup-done/SKILL.md +0 -159
  459. package/.opencode/skills/create-bug-story/.gitkeep +0 -0
  460. package/.opencode/skills/create-bug-story/SKILL.md +0 -263
  461. package/.opencode/skills/cyber-generate-certs/.gitkeep +0 -0
  462. package/.opencode/skills/cyber-generate-certs/SKILL.md +0 -27
  463. package/.opencode/skills/cyber-generate-certs/bmad-skill-manifest.yaml +0 -3
  464. package/.opencode/skills/cyber-immunity-estimation/.gitkeep +0 -0
  465. package/.opencode/skills/cyber-immunity-estimation/SKILL.md +0 -29
  466. package/.opencode/skills/cyber-immunity-estimation/bmad-skill-manifest.yaml +0 -3
  467. package/.opencode/skills/cyber-security-audit/.gitkeep +0 -0
  468. package/.opencode/skills/cyber-security-audit/SKILL.md +0 -27
  469. package/.opencode/skills/cyber-security-audit/bmad-skill-manifest.yaml +0 -3
  470. package/.opencode/skills/cyber-vault-secrets/.gitkeep +0 -0
  471. package/.opencode/skills/cyber-vault-secrets/SKILL.md +0 -28
  472. package/.opencode/skills/cyber-vault-secrets/bmad-skill-manifest.yaml +0 -3
  473. package/.opencode/skills/cyber-verify-docker-users/.gitkeep +0 -0
  474. package/.opencode/skills/cyber-verify-docker-users/SKILL.md +0 -23
  475. package/.opencode/skills/cyber-verify-docker-users/bmad-skill-manifest.yaml +0 -3
  476. package/.opencode/skills/cyber-verify-image-signature/.gitkeep +0 -0
  477. package/.opencode/skills/cyber-verify-image-signature/SKILL.md +0 -22
  478. package/.opencode/skills/cyber-verify-image-signature/bmad-skill-manifest.yaml +0 -3
  479. package/.opencode/skills/cyber-vulnerability-scan/.gitkeep +0 -0
  480. package/.opencode/skills/cyber-vulnerability-scan/SKILL.md +0 -28
  481. package/.opencode/skills/cyber-vulnerability-scan/bmad-skill-manifest.yaml +0 -3
  482. package/.opencode/skills/devops-configure-infrastructure/.gitkeep +0 -0
  483. package/.opencode/skills/devops-configure-infrastructure/SKILL.md +0 -27
  484. package/.opencode/skills/devops-configure-infrastructure/bmad-skill-manifest.yaml +0 -3
  485. package/.opencode/skills/devops-disconnected-deployment/.gitkeep +0 -0
  486. package/.opencode/skills/devops-disconnected-deployment/SKILL.md +0 -27
  487. package/.opencode/skills/devops-disconnected-deployment/bmad-skill-manifest.yaml +0 -3
  488. package/.opencode/skills/devops-docker-compose-setup/.gitkeep +0 -0
  489. package/.opencode/skills/devops-docker-compose-setup/SKILL.md +0 -26
  490. package/.opencode/skills/devops-docker-compose-setup/bmad-skill-manifest.yaml +0 -3
  491. package/.opencode/skills/devops-manage-helm/.gitkeep +0 -0
  492. package/.opencode/skills/devops-manage-helm/SKILL.md +0 -28
  493. package/.opencode/skills/devops-manage-helm/bmad-skill-manifest.yaml +0 -3
  494. package/.opencode/skills/devops-sign-docker-image/.gitkeep +0 -0
  495. package/.opencode/skills/devops-sign-docker-image/SKILL.md +0 -24
  496. package/.opencode/skills/devops-sign-docker-image/bmad-skill-manifest.yaml +0 -3
  497. package/.opencode/skills/generate-backlog/.gitkeep +0 -0
  498. package/.opencode/skills/generate-backlog/SKILL.md +0 -183
  499. package/.opencode/skills/generate-backlog/bmad-skill-manifest.yaml +0 -3
  500. package/.opencode/skills/git-workflow-skill/SKILL.md +0 -194
  501. package/.opencode/skills/git-workflow-skill/hooks/commit-msg +0 -61
  502. package/.opencode/skills/git-workflow-skill/hooks/pre-commit +0 -38
  503. package/.opencode/skills/git-workflow-skill/hooks/prepare-commit-msg +0 -56
  504. package/.opencode/skills/git-workflow-skill/scripts/finish-feature.sh +0 -192
  505. package/.opencode/skills/git-workflow-skill/scripts/install-hooks.sh +0 -55
  506. package/.opencode/skills/git-workflow-skill/scripts/start-feature.sh +0 -110
  507. package/.opencode/skills/git-workflow-skill/scripts/validate-workflow.sh +0 -229
  508. package/.opencode/skills/js-ts-dependency-mgmt/SKILL.md +0 -49
  509. package/.opencode/skills/js-ts-dependency-mgmt/examples/dependency_mgmt.md +0 -60
  510. package/.opencode/skills/js-ts-security-skill/SKILL.md +0 -64
  511. package/.opencode/skills/js-ts-security-skill/scripts/verify-security.sh +0 -136
  512. package/.opencode/skills/logging-best-practices/SKILL.md +0 -50
  513. package/.opencode/skills/logging-best-practices/examples/cpp.md +0 -36
  514. package/.opencode/skills/logging-best-practices/examples/csharp.md +0 -49
  515. package/.opencode/skills/logging-best-practices/examples/javascript.md +0 -77
  516. package/.opencode/skills/logging-best-practices/examples/python.md +0 -57
  517. package/.opencode/skills/logging-best-practices/references/logging-standards.md +0 -29
  518. package/.opencode/skills/mil498-ocd/.gitkeep +0 -0
  519. package/.opencode/skills/mil498-ocd/SKILL.md +0 -30
  520. package/.opencode/skills/mil498-ocd/bmad-skill-manifest.yaml +0 -5
  521. package/.opencode/skills/mil498-ocd/prompts/01-discover-project-artifacts.md +0 -26
  522. package/.opencode/skills/mil498-ocd/prompts/02-load-template.md +0 -10
  523. package/.opencode/skills/mil498-ocd/prompts/03-generate-document.md +0 -90
  524. package/.opencode/skills/mil498-ocd/prompts/04-validate.md +0 -14
  525. package/.opencode/skills/mil498-ocd/prompts/05-review.md +0 -15
  526. package/.opencode/skills/mil498-ocd/prompts/06-save.md +0 -15
  527. package/.opencode/skills/mil498-sdd/.gitkeep +0 -0
  528. package/.opencode/skills/mil498-sdd/SKILL.md +0 -30
  529. package/.opencode/skills/mil498-sdd/bmad-skill-manifest.yaml +0 -5
  530. package/.opencode/skills/mil498-sdd/prompts/01-discover-project-artifacts.md +0 -50
  531. package/.opencode/skills/mil498-sdd/prompts/02-load-template.md +0 -10
  532. package/.opencode/skills/mil498-sdd/prompts/03-generate-document.md +0 -98
  533. package/.opencode/skills/mil498-sdd/prompts/04-validate.md +0 -16
  534. package/.opencode/skills/mil498-sdd/prompts/05-review.md +0 -15
  535. package/.opencode/skills/mil498-sdd/prompts/06-save.md +0 -19
  536. package/.opencode/skills/mil498-sdd/template.md +0 -163
  537. package/.opencode/skills/mil498-sdp/.gitkeep +0 -0
  538. package/.opencode/skills/mil498-sdp/SKILL.md +0 -30
  539. package/.opencode/skills/mil498-sdp/bmad-skill-manifest.yaml +0 -5
  540. package/.opencode/skills/mil498-sdp/prompts/01-discover-project-artifacts.md +0 -32
  541. package/.opencode/skills/mil498-sdp/prompts/02-load-template.md +0 -10
  542. package/.opencode/skills/mil498-sdp/prompts/03-generate-document.md +0 -187
  543. package/.opencode/skills/mil498-sdp/prompts/04-validate.md +0 -13
  544. package/.opencode/skills/mil498-sdp/prompts/05-review.md +0 -15
  545. package/.opencode/skills/mil498-sdp/prompts/06-save.md +0 -14
  546. package/.opencode/skills/mil498-srs/.gitkeep +0 -0
  547. package/.opencode/skills/mil498-srs/SKILL.md +0 -30
  548. package/.opencode/skills/mil498-srs/bmad-skill-manifest.yaml +0 -5
  549. package/.opencode/skills/mil498-srs/prompts/01-discover-project-artifacts.md +0 -42
  550. package/.opencode/skills/mil498-srs/prompts/02-load-template.md +0 -10
  551. package/.opencode/skills/mil498-srs/prompts/03-generate-document.md +0 -100
  552. package/.opencode/skills/mil498-srs/prompts/04-validate.md +0 -16
  553. package/.opencode/skills/mil498-srs/prompts/05-review.md +0 -15
  554. package/.opencode/skills/mil498-srs/prompts/06-save.md +0 -18
  555. package/.opencode/skills/mil498-ssdd/.gitkeep +0 -0
  556. package/.opencode/skills/mil498-ssdd/SKILL.md +0 -32
  557. package/.opencode/skills/mil498-ssdd/bmad-skill-manifest.yaml +0 -5
  558. package/.opencode/skills/mil498-ssdd/prompts/01-discover-project-artifacts.md +0 -32
  559. package/.opencode/skills/mil498-ssdd/prompts/02-load-template.md +0 -10
  560. package/.opencode/skills/mil498-ssdd/prompts/03-csci-discovery-interview.md +0 -43
  561. package/.opencode/skills/mil498-ssdd/prompts/04-generate-document.md +0 -96
  562. package/.opencode/skills/mil498-ssdd/prompts/05-validate.md +0 -14
  563. package/.opencode/skills/mil498-ssdd/prompts/06-review.md +0 -16
  564. package/.opencode/skills/mil498-ssdd/prompts/07-save.md +0 -16
  565. package/.opencode/skills/mil498-sss/.gitkeep +0 -0
  566. package/.opencode/skills/mil498-sss/SKILL.md +0 -31
  567. package/.opencode/skills/mil498-sss/bmad-skill-manifest.yaml +0 -5
  568. package/.opencode/skills/mil498-sss/prompts/01-discover-project-artifacts.md +0 -31
  569. package/.opencode/skills/mil498-sss/prompts/02-load-template.md +0 -10
  570. package/.opencode/skills/mil498-sss/prompts/03-generate-document.md +0 -108
  571. package/.opencode/skills/mil498-sss/prompts/04-validate.md +0 -16
  572. package/.opencode/skills/mil498-sss/prompts/05-review.md +0 -15
  573. package/.opencode/skills/mil498-sss/prompts/06-save.md +0 -15
  574. package/.opencode/skills/mil498-std/.gitkeep +0 -0
  575. package/.opencode/skills/mil498-std/SKILL.md +0 -30
  576. package/.opencode/skills/mil498-std/bmad-skill-manifest.yaml +0 -5
  577. package/.opencode/skills/mil498-std/prompts/01-discover-project-artifacts.md +0 -42
  578. package/.opencode/skills/mil498-std/prompts/02-load-template.md +0 -10
  579. package/.opencode/skills/mil498-std/prompts/03-generate-document.md +0 -117
  580. package/.opencode/skills/mil498-std/prompts/04-validate.md +0 -15
  581. package/.opencode/skills/mil498-std/prompts/05-review.md +0 -15
  582. package/.opencode/skills/mil498-std/prompts/06-save.md +0 -15
  583. package/.opencode/skills/ml-advise/.gitkeep +0 -0
  584. package/.opencode/skills/ml-advise/SKILL.md +0 -76
  585. package/.opencode/skills/ml-advise/bmad-skill-manifest.yaml +0 -3
  586. package/.opencode/skills/ml-advise/skill.json +0 -7
  587. package/.opencode/skills/ml-analysis/.gitkeep +0 -0
  588. package/.opencode/skills/ml-analysis/SKILL.md +0 -60
  589. package/.opencode/skills/ml-analysis/bmad-skill-manifest.yaml +0 -3
  590. package/.opencode/skills/ml-analysis/skill.json +0 -7
  591. package/.opencode/skills/ml-architecture/.gitkeep +0 -0
  592. package/.opencode/skills/ml-architecture/SKILL.md +0 -55
  593. package/.opencode/skills/ml-architecture/bmad-skill-manifest.yaml +0 -3
  594. package/.opencode/skills/ml-architecture/skill.json +0 -7
  595. package/.opencode/skills/ml-detailed-design/.gitkeep +0 -0
  596. package/.opencode/skills/ml-detailed-design/SKILL.md +0 -67
  597. package/.opencode/skills/ml-detailed-design/bmad-skill-manifest.yaml +0 -3
  598. package/.opencode/skills/ml-detailed-design/skill.json +0 -7
  599. package/.opencode/skills/ml-eda/.gitkeep +0 -0
  600. package/.opencode/skills/ml-eda/SKILL.md +0 -56
  601. package/.opencode/skills/ml-eda/bmad-skill-manifest.yaml +0 -3
  602. package/.opencode/skills/ml-eda/scripts/baseline_classifier.py +0 -522
  603. package/.opencode/skills/ml-eda/scripts/class_weights_calculator.py +0 -295
  604. package/.opencode/skills/ml-eda/scripts/clustering_explorer.py +0 -383
  605. package/.opencode/skills/ml-eda/scripts/eda_analyzer.py +0 -654
  606. package/.opencode/skills/ml-eda/skill.json +0 -7
  607. package/.opencode/skills/ml-experiment/.gitkeep +0 -0
  608. package/.opencode/skills/ml-experiment/SKILL.md +0 -74
  609. package/.opencode/skills/ml-experiment/assets/advanced_trainer_configs.py +0 -430
  610. package/.opencode/skills/ml-experiment/assets/quick_trainer_setup.py +0 -233
  611. package/.opencode/skills/ml-experiment/assets/template_datamodule.py +0 -219
  612. package/.opencode/skills/ml-experiment/assets/template_gnn_module.py +0 -341
  613. package/.opencode/skills/ml-experiment/assets/template_lightning_module.py +0 -158
  614. package/.opencode/skills/ml-experiment/bmad-skill-manifest.yaml +0 -3
  615. package/.opencode/skills/ml-experiment/skill.json +0 -7
  616. package/.opencode/skills/ml-hparam/.gitkeep +0 -0
  617. package/.opencode/skills/ml-hparam/SKILL.md +0 -81
  618. package/.opencode/skills/ml-hparam/bmad-skill-manifest.yaml +0 -3
  619. package/.opencode/skills/ml-hparam/skill.json +0 -7
  620. package/.opencode/skills/ml-ideation/.gitkeep +0 -0
  621. package/.opencode/skills/ml-ideation/SKILL.md +0 -50
  622. package/.opencode/skills/ml-ideation/bmad-skill-manifest.yaml +0 -3
  623. package/.opencode/skills/ml-ideation/scripts/validate_ml_prd.py +0 -287
  624. package/.opencode/skills/ml-ideation/skill.json +0 -7
  625. package/.opencode/skills/ml-infra/.gitkeep +0 -0
  626. package/.opencode/skills/ml-infra/SKILL.md +0 -58
  627. package/.opencode/skills/ml-infra/bmad-skill-manifest.yaml +0 -3
  628. package/.opencode/skills/ml-infra/skill.json +0 -7
  629. package/.opencode/skills/ml-retrospective/.gitkeep +0 -0
  630. package/.opencode/skills/ml-retrospective/SKILL.md +0 -63
  631. package/.opencode/skills/ml-retrospective/bmad-skill-manifest.yaml +0 -3
  632. package/.opencode/skills/ml-retrospective/skill.json +0 -7
  633. package/.opencode/skills/ml-revision/.gitkeep +0 -0
  634. package/.opencode/skills/ml-revision/SKILL.md +0 -82
  635. package/.opencode/skills/ml-revision/bmad-skill-manifest.yaml +0 -3
  636. package/.opencode/skills/ml-revision/skill.json +0 -7
  637. package/.opencode/skills/ml-techspec/.gitkeep +0 -0
  638. package/.opencode/skills/ml-techspec/SKILL.md +0 -80
  639. package/.opencode/skills/ml-techspec/bmad-skill-manifest.yaml +0 -3
  640. package/.opencode/skills/ml-techspec/skill.json +0 -7
  641. package/.opencode/skills/modify-sprint/.gitkeep +0 -0
  642. package/.opencode/skills/modify-sprint/SKILL.md +0 -322
  643. package/.opencode/skills/modify-sprint/bmad-skill-manifest.yaml +0 -3
  644. package/.opencode/skills/open-presentation/SKILL.md +0 -35
  645. package/.opencode/skills/opentelemetry-best-practices/SKILL.md +0 -34
  646. package/.opencode/skills/opentelemetry-best-practices/examples/go.md +0 -32
  647. package/.opencode/skills/opentelemetry-best-practices/examples/javascript.md +0 -58
  648. package/.opencode/skills/opentelemetry-best-practices/examples/python.md +0 -37
  649. package/.opencode/skills/opentelemetry-best-practices/references/otel-standards.md +0 -37
  650. package/.opencode/skills/prioritize-backlog/.gitkeep +0 -0
  651. package/.opencode/skills/prioritize-backlog/SKILL.md +0 -195
  652. package/.opencode/skills/prioritize-backlog/bmad-skill-manifest.yaml +0 -3
  653. package/.opencode/skills/project-context-expansion/.gitkeep +0 -0
  654. package/.opencode/skills/project-context-expansion/SKILL.md +0 -238
  655. package/.opencode/skills/project-context-expansion/bmad-skill-manifest.yaml +0 -3
  656. package/.opencode/skills/python-best-practices/SKILL.md +0 -385
  657. package/.opencode/skills/python-dependency-mgmt/SKILL.md +0 -42
  658. package/.opencode/skills/python-dependency-mgmt/examples/dependency_mgmt.md +0 -67
  659. package/.opencode/skills/python-security-skill/SKILL.md +0 -56
  660. package/.opencode/skills/python-security-skill/examples/security.md +0 -56
  661. package/.opencode/skills/remove-from-sprint/.gitkeep +0 -0
  662. package/.opencode/skills/remove-from-sprint/SKILL.md +0 -163
  663. package/.opencode/skills/remove-from-sprint/bmad-skill-manifest.yaml +0 -3
  664. package/.opencode/skills/self-signed-cert/SKILL.md +0 -42
  665. package/.opencode/skills/self-signed-cert/scripts/generate-cert.ps1 +0 -45
  666. package/.opencode/skills/self-signed-cert/scripts/generate-cert.sh +0 -43
  667. package/.opencode/skills/skill-creator/SKILL.md +0 -196
  668. package/.opencode/skills/skill-creator/references/output-patterns.md +0 -82
  669. package/.opencode/skills/skill-creator/references/workflows.md +0 -28
  670. package/.opencode/skills/skill-creator/scripts/init_skill.py +0 -208
  671. package/.opencode/skills/skill-creator/scripts/package_skill.py +0 -99
  672. package/.opencode/skills/skill-creator/scripts/quick_validate.py +0 -113
  673. package/.opencode/skills/sprint-status-view/.gitkeep +0 -0
  674. package/.opencode/skills/sprint-status-view/SKILL.md +0 -263
  675. package/.opencode/skills/sprint-status-view/bmad-skill-manifest.yaml +0 -3
  676. package/.opencode/skills/sre-check-deployment-status/.gitkeep +0 -0
  677. package/.opencode/skills/sre-check-deployment-status/SKILL.md +0 -32
  678. package/.opencode/skills/sre-check-deployment-status/bmad-skill-manifest.yaml +0 -3
  679. package/.opencode/skills/sre-check-secrets/.gitkeep +0 -0
  680. package/.opencode/skills/sre-check-secrets/SKILL.md +0 -23
  681. package/.opencode/skills/sre-check-secrets/bmad-skill-manifest.yaml +0 -3
  682. package/.opencode/skills/sre-check-system-status/.gitkeep +0 -0
  683. package/.opencode/skills/sre-check-system-status/SKILL.md +0 -27
  684. package/.opencode/skills/sre-check-system-status/bmad-skill-manifest.yaml +0 -3
  685. package/.opencode/skills/sre-day-2-ops/.gitkeep +0 -0
  686. package/.opencode/skills/sre-day-2-ops/SKILL.md +0 -26
  687. package/.opencode/skills/sre-day-2-ops/bmad-skill-manifest.yaml +0 -3
  688. package/.opencode/skills/sre-deployment-strategies/.gitkeep +0 -0
  689. package/.opencode/skills/sre-deployment-strategies/SKILL.md +0 -28
  690. package/.opencode/skills/sre-deployment-strategies/bmad-skill-manifest.yaml +0 -3
  691. package/.opencode/skills/sre-fix-deployments/.gitkeep +0 -0
  692. package/.opencode/skills/sre-fix-deployments/SKILL.md +0 -25
  693. package/.opencode/skills/sre-fix-deployments/bmad-skill-manifest.yaml +0 -3
  694. package/.opencode/skills/sre-gitops-status/.gitkeep +0 -0
  695. package/.opencode/skills/sre-gitops-status/SKILL.md +0 -25
  696. package/.opencode/skills/sre-gitops-status/bmad-skill-manifest.yaml +0 -3
  697. package/.opencode/skills/story-status-lookup/SKILL.md +0 -78
  698. package/.opencode/skills/test-accompanied-development/SKILL.md +0 -50
  699. package/.opencode/skills/test-generator/SKILL.md +0 -65
  700. package/.opencode/skills/vercel-react-best-practices/SKILL.md +0 -109
  701. package/.opencode/skills/verify-hardened-docker-skill/SKILL.md +0 -442
  702. package/.opencode/skills/verify-hardened-docker-skill/scripts/verify-docker-hardening.sh +0 -439
  703. package/.roo/rules/00-ma-agents.md +0 -13
  704. package/.roo/skills/.ma-agents.json +0 -122
  705. package/.roo/skills/MANIFEST.yaml +0 -126
  706. package/.roo/skills/git-workflow-skill/SKILL.md +0 -194
  707. package/.roo/skills/git-workflow-skill/hooks/commit-msg +0 -61
  708. package/.roo/skills/git-workflow-skill/hooks/pre-commit +0 -38
  709. package/.roo/skills/git-workflow-skill/hooks/prepare-commit-msg +0 -56
  710. package/.roo/skills/git-workflow-skill/scripts/finish-feature.sh +0 -192
  711. package/.roo/skills/git-workflow-skill/scripts/install-hooks.sh +0 -55
  712. package/.roo/skills/git-workflow-skill/scripts/start-feature.sh +0 -110
  713. package/.roo/skills/git-workflow-skill/scripts/validate-workflow.sh +0 -229
  714. package/.roo/skills/js-ts-dependency-mgmt/SKILL.md +0 -49
  715. package/.roo/skills/js-ts-dependency-mgmt/examples/dependency_mgmt.md +0 -60
  716. package/.roo/skills/js-ts-security-skill/SKILL.md +0 -64
  717. package/.roo/skills/js-ts-security-skill/scripts/verify-security.sh +0 -136
  718. package/.roo/skills/logging-best-practices/SKILL.md +0 -50
  719. package/.roo/skills/logging-best-practices/examples/cpp.md +0 -36
  720. package/.roo/skills/logging-best-practices/examples/csharp.md +0 -49
  721. package/.roo/skills/logging-best-practices/examples/javascript.md +0 -77
  722. package/.roo/skills/logging-best-practices/examples/python.md +0 -57
  723. package/.roo/skills/logging-best-practices/references/logging-standards.md +0 -29
  724. package/.roo/skills/open-presentation/SKILL.md +0 -35
  725. package/.roo/skills/opentelemetry-best-practices/SKILL.md +0 -34
  726. package/.roo/skills/opentelemetry-best-practices/examples/go.md +0 -32
  727. package/.roo/skills/opentelemetry-best-practices/examples/javascript.md +0 -58
  728. package/.roo/skills/opentelemetry-best-practices/examples/python.md +0 -37
  729. package/.roo/skills/opentelemetry-best-practices/references/otel-standards.md +0 -37
  730. package/.roo/skills/python-best-practices/SKILL.md +0 -385
  731. package/.roo/skills/python-dependency-mgmt/SKILL.md +0 -42
  732. package/.roo/skills/python-dependency-mgmt/examples/dependency_mgmt.md +0 -67
  733. package/.roo/skills/python-security-skill/SKILL.md +0 -56
  734. package/.roo/skills/python-security-skill/examples/security.md +0 -56
  735. package/.roo/skills/self-signed-cert/SKILL.md +0 -42
  736. package/.roo/skills/self-signed-cert/scripts/generate-cert.ps1 +0 -45
  737. package/.roo/skills/self-signed-cert/scripts/generate-cert.sh +0 -43
  738. package/.roo/skills/skill-creator/SKILL.md +0 -196
  739. package/.roo/skills/skill-creator/references/output-patterns.md +0 -82
  740. package/.roo/skills/skill-creator/references/workflows.md +0 -28
  741. package/.roo/skills/skill-creator/scripts/init_skill.py +0 -208
  742. package/.roo/skills/skill-creator/scripts/package_skill.py +0 -99
  743. package/.roo/skills/skill-creator/scripts/quick_validate.py +0 -113
  744. package/.roo/skills/story-status-lookup/SKILL.md +0 -78
  745. package/.roo/skills/test-accompanied-development/SKILL.md +0 -50
  746. package/.roo/skills/test-generator/SKILL.md +0 -65
  747. package/.roo/skills/vercel-react-best-practices/SKILL.md +0 -109
  748. package/.roo/skills/verify-hardened-docker-skill/SKILL.md +0 -442
  749. package/.roo/skills/verify-hardened-docker-skill/scripts/verify-docker-hardening.sh +0 -439
  750. package/opencode.json +0 -5
  751. /package/{.opencode/skills/add-sprint → lib/bmad-extension/skills/bmad-dev-story}/.gitkeep +0 -0
  752. /package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/SKILL.md +0 -0
  753. /package/{.opencode/skills/add-to-sprint → lib/bmad-extension/skills/bmad-sprint-planning}/.gitkeep +0 -0
  754. /package/{.opencode/skills/bmad-ma-agent-cyber → lib/bmad-extension/skills/bmad-sprint-status}/.gitkeep +0 -0
  755. /package/{.opencode/skills/bmad-ma-agent-devops → lib/bmad-extension/skills/close-sprint}/.gitkeep +0 -0
  756. /package/{.opencode/skills/bmad-ma-agent-mil498 → lib/bmad-extension/skills/mil498-requirement-quality}/.gitkeep +0 -0
  757. /package/{.opencode/skills/mil498-ocd/template.md → mil498/OCD.md} +0 -0
  758. /package/{.opencode/skills/mil498-sdp/template.md → mil498/SDP.md} +0 -0
  759. /package/{.opencode/skills/mil498-srs/template.md → mil498/SRS.md} +0 -0
  760. /package/{.opencode/skills/mil498-ssdd/template.md → mil498/SSDD.md} +0 -0
  761. /package/{.opencode/skills/mil498-sss/template.md → mil498/SSS.md} +0 -0
  762. /package/{.opencode/skills/mil498-std/template.md → mil498/STD.md} +0 -0
@@ -0,0 +1,127 @@
1
+ # Story 12.3: Create Modify Sprint Extension Workflow
2
+
3
+ Status: done
4
+
5
+ <!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
6
+
7
+ ## Story
8
+
9
+ As a **Scrum Master**,
10
+ I want an extension workflow to modify existing sprints,
11
+ So that scope can be adjusted when priorities change mid-sprint.
12
+
13
+ ## Acceptance Criteria
14
+
15
+ 1. **Given** modify-sprint workflow exists in lib/bmad-extension/workflows/modify-sprint/workflow.md,
16
+ **When** invoked (NFR19),
17
+ **Then** it allows: adding items, removing items, changing capacity, updating metadata
18
+
19
+ 2. **Given** sprint modification requested,
20
+ **When** items added or removed,
21
+ **Then** sprint status reflects updated item list and remaining capacity (FR71)
22
+
23
+ ## Tasks / Subtasks
24
+
25
+ - [x] Task 1: Create modify-sprint workflow (AC: #1, #2)
26
+ - [x] 1.1: Create directory `lib/bmad-extension/workflows/modify-sprint/`
27
+ - [x] 1.2: Create `lib/bmad-extension/workflows/modify-sprint/workflow.md` with guided flow
28
+
29
+ - [x] Task 2: Implement sprint selection step (AC: #1)
30
+ - [x] 2.1: Workflow step 1: List available sprints by reading `_bmad-output/implementation-artifacts/sprint-plan-*.yaml`
31
+ - [x] 2.2: Workflow step 2: User selects sprint to modify
32
+ - [x] 2.3: Workflow step 3: Display current sprint state — name, capacity, assigned items with status, remaining capacity
33
+
34
+ - [x] Task 3: Implement modification operations (AC: #1, #2)
35
+ - [x] 3.1: Workflow step 4: Present modification menu — add item, remove item, change capacity, update metadata
36
+ - [x] 3.2: **Add item:** Present unassigned backlog items (from sprint-status.yaml), user selects item, add to sprint assigned_items list, check capacity
37
+ - [x] 3.3: **Remove item:** List currently assigned items, user selects item to remove, remove from assigned_items list, item returns to unassigned backlog
38
+ - [x] 3.4: **Change capacity:** Prompt for new capacity (positive integer), validate, update sprint artifact
39
+ - [x] 3.5: **Update metadata:** Allow updating sprint name, start/end context, status (planning/active/completed)
40
+
41
+ - [x] Task 4: Implement capacity feedback after each modification (AC: #2)
42
+ - [x] 4.1: After every modification, display updated remaining capacity (capacity - assigned_items count)
43
+ - [x] 4.2: If adding an item exceeds capacity, warn user and require confirmation or capacity increase
44
+ - [x] 4.3: Allow multiple modifications in sequence before finalizing
45
+
46
+ - [x] Task 5: Persist changes to sprint artifact with concurrency guard (AC: #2)
47
+ - [x] 5.1: Before writing, re-read the sprint artifact file and compare its `last_modified` timestamp to the value read at the start of the workflow session. If the timestamp differs, the file was modified externally — halt and display: *"Sprint artifact was modified since this session started. Re-read the current state below and confirm your changes before proceeding."* Then redisplay the current state and await user confirmation.
48
+ - [x] 5.2: Write updated sprint data back to the sprint YAML artifact file, updating `last_modified` to the current ISO timestamp.
49
+ - **Data authority note:** Do NOT write sprint assignments to sprint-status.yaml. Sprint membership is owned exclusively by sprint-plan-{n}.yaml. sprint-status.yaml is read-only from the perspective of sprint management workflows.
50
+
51
+ - [x] Task 6: Register workflow in module-help.csv (AC: #1)
52
+ - [x] 6.1: Add entry to `lib/bmad-extension/module-help.csv` for modify-sprint workflow
53
+ - [x] 6.2: Entry must include: workflow name, slash command `/modify-sprint`, description, phase association
54
+
55
+ ## Dev Notes
56
+
57
+ ### Architecture Compliance
58
+
59
+ - **Extension module pattern:** Workflow lives in lib/bmad-extension/workflows/modify-sprint/
60
+ - **Sprint artifact format:** Reads and writes the same YAML format defined in 12-1 (sprint-plan-{number}.yaml), including the `last_modified` timestamp field
61
+ - **Capacity as item count:** Consistent with FR66 — capacity is always an integer item count
62
+ - **Remaining capacity display (FR71):** After every modification, show remaining capacity
63
+ - **Concurrency guard:** Re-read artifact before write and compare `last_modified`. Abort write if file changed externally.
64
+ - **Data authority:** sprint-plan-{n}.yaml is authoritative for sprint membership. Do not modify sprint-status.yaml from this workflow.
65
+
66
+ ### Shared Guardrails
67
+
68
+ See `_bmad-output/implementation-artifacts/epic-11-12-shared-guardrails.md` for universal constraints, data authority rules, sprint artifact naming, and concurrency guard requirements.
69
+
70
+ ### Critical Guardrails (story-specific)
71
+
72
+ - Do NOT place workflow in `_bmad/bmm/workflows/` — use `lib/bmad-extension/workflows/`
73
+ - Do NOT modify any existing BMAD base module files
74
+ - Do NOT add npm dependencies
75
+ - Do NOT allow capacity to be set to zero or negative values
76
+ - Do NOT silently exceed capacity when adding items — always warn
77
+ - Do NOT modify lib/installer.js, lib/agents.js, or bin/cli.js
78
+ - Do NOT delete sprint artifact files — only modify their contents
79
+
80
+ ### Project Structure Notes
81
+
82
+ - **Files to create:**
83
+ - `lib/bmad-extension/workflows/modify-sprint/workflow.md`
84
+ - **Files to update:**
85
+ - `lib/bmad-extension/module-help.csv` — add workflow registration entry
86
+ - **Files to read/write (at runtime):**
87
+ - `_bmad-output/implementation-artifacts/sprint-plan-*.yaml` — sprint artifact files
88
+ - `_bmad-output/implementation-artifacts/sprint-status.yaml` — backlog item status
89
+
90
+ ### References
91
+
92
+ - [Source: lib/bmad-extension/workflows/add-sprint/workflow.md] — Sprint artifact format (created in 12-1)
93
+ - [Source: lib/bmad-extension/workflows/add-to-sprint/workflow.md] — Item assignment pattern (created in 12-2)
94
+ - [Source: _bmad-output/implementation-artifacts/sprint-status.yaml] — Backlog status file
95
+
96
+ ## Dev Agent Record
97
+
98
+ ### Agent Model Used
99
+ claude-sonnet-4-6
100
+
101
+ ### Debug Log References
102
+ None — clean implementation.
103
+
104
+ ### Completion Notes List
105
+ - Created `lib/bmad-extension/workflows/modify-sprint/workflow.md` with looping multi-step menu workflow
106
+ - Step 1: Sprint discovery via sprint-plan-*.yaml glob; stores session_last_modified for concurrency guard
107
+ - Step 2: Displays current sprint state with capacity/remaining
108
+ - Step 3: Modification menu loops — supports multiple modifications before save
109
+ - Step 3a (Add item): reads sprint-status.yaml + bug-*.md glob for unassigned items; capacity over-limit warning with options (add anyway/skip/change capacity)
110
+ - Step 3b (Remove item): lists assigned items, removes from working state
111
+ - Step 3c (Change capacity): validates positive integer; updates working state
112
+ - Step 3d (Update metadata): name, start/end context, status (planning/active/completed)
113
+ - Step 4 (Concurrency guard): re-reads file before write, compares last_modified; on conflict offers overwrite/merge/cancel
114
+ - Step 5: Writes updated YAML preserving sprint_number and created_date; updates last_modified to current ISO timestamp; sprint-status.yaml not modified
115
+ - Registered in module-help.csv with `/modify-sprint` command
116
+ - Post-review fixes: {{working_assigned_items}} explicitly initialized from {{target_sprint.assigned_items}} in step 2 (M1); step 3b adds identifier resolution to titles/types before displaying Remove table (M2); step 3a cross-references ALL sprint plans to filter already-assigned items (H1); step 3d choice 5 now has explicit check block (L5)
117
+
118
+ ### File List
119
+ - `lib/bmad-extension/workflows/modify-sprint/workflow.md` (created)
120
+ - `lib/bmad-extension/module-help.csv` (updated — added modify-sprint entry)
121
+ - `_bmad-output/implementation-artifacts/12-3-modify-sprint-workflow.md` (updated — status, tasks, record)
122
+ - `_bmad-output/implementation-artifacts/sprint-status.yaml` (updated — 12-3 in-progress→review)
123
+
124
+ ## Change Log
125
+
126
+ - 2026-03-18: Story 12.3 implemented — modify-sprint extension workflow created and registered
127
+ - 2026-03-18: Addressed code review findings — H1 (cross-sprint filter in 3a), M1 (working_assigned_items init), M2 (identifier resolution in 3b), L5 (explicit choice 5 handler in 3d)
@@ -0,0 +1,129 @@
1
+ # Story 12.4: Update Sprint Status with Assigned Items
2
+
3
+ Status: done
4
+
5
+ <!-- Note: Validation is optional. Run validate-create-story for quality check before dev-story. -->
6
+
7
+ ## Story
8
+
9
+ As a **Scrum Master**,
10
+ I want sprint status workflow to show assigned items per sprint,
11
+ So that sprint progress is visible with all stories and bugs listed.
12
+
13
+ ## Acceptance Criteria
14
+
15
+ 0. **Architecture mandate:**
16
+ Implementation MUST create a new extension workflow at `lib/bmad-extension/workflows/sprint-status-view/workflow.md`. Do NOT modify any files under `_bmad/bmm/workflows/`. This is not a decision left to the implementing developer — the extension approach is required.
17
+
18
+ 1. **Given** existing sprint status workflow,
19
+ **When** it displays sprint information,
20
+ **Then** it shows all assigned items (stories + bugs) with their current status (FR71),
21
+ **And** remaining capacity visible,
22
+ **And** bugs and stories distinguishable in listing
23
+
24
+ ## Tasks / Subtasks
25
+
26
+ - [x] Task 1: Prepare extension workflow — **architecture is pre-decided: create extension only** (AC: #0)
27
+ - [x] 1.1: Read existing sprint-status workflow in `_bmad/bmm/workflows/` to understand current format for reference only — do NOT modify it
28
+ - [x] 1.2: Read existing `_bmad-output/implementation-artifacts/sprint-status.yaml` to understand current data structure
29
+ - [x] 1.3: Create `lib/bmad-extension/workflows/sprint-status-view/workflow.md` — this is the mandated approach. Do not modify base module files.
30
+
31
+ - [x] Task 2: Create sprint-status-view extension workflow (AC: #1)
32
+ - [x] 2.1: Create `lib/bmad-extension/workflows/sprint-status-view/workflow.md`
33
+ - [x] 2.2: Workflow step 1: Read all sprint artifact files from `_bmad-output/implementation-artifacts/sprint-plan-*.yaml`
34
+ - [x] 2.3: Workflow step 2: For each sprint, display: sprint name/number, capacity, status (planning/active/completed)
35
+ - [x] 2.4: Workflow step 3: For each sprint, list assigned items with: item identifier, title, type (story or bug), current status
36
+ - [x] 2.5: Workflow step 4: Display remaining capacity per sprint (capacity - assigned items count)
37
+
38
+ - [x] Task 3: Implement type distinction for stories vs bugs (AC: #1)
39
+ - [x] 3.1: Stories and bugs must be visually distinguishable in the listing — use type labels or markers
40
+ - [x] 3.2: Bug items should show severity alongside status
41
+ - [x] 3.3: Story items should show standard status (not-started/in-progress/done)
42
+
43
+ - [x] Task 4: Integrate with sprint-status.yaml data (AC: #1)
44
+ - [x] 4.1: Cross-reference sprint assigned_items (from sprint-plan-*.yaml) with sprint-status.yaml to get current item execution statuses. Data authority: sprint-plan-{n}.yaml owns membership; sprint-status.yaml owns execution status.
45
+ - [x] 4.2: For bug items (discovered via `bug-*.md` glob): execution status comes from the bug file's YAML frontmatter (or shows as "not-started" if no status field present — bugs start unstarted).
46
+ - [x] 4.3: Handle items that exist in a sprint plan but have no entry in sprint-status.yaml (user stories only): display a **data integrity warning** — *"Item {id} has no status entry in sprint-status.yaml — run /sprint-planning to initialize status tracking for this item."* Do NOT silently show "status unknown."
47
+ - [x] 4.4: Handle items in sprint-status.yaml not assigned to any sprint: show in an "Unassigned Backlog" summary section.
48
+
49
+ - [x] Task 5: Register workflow in module-help.csv (AC: #1)
50
+ - [x] 5.1: Add entry to `lib/bmad-extension/module-help.csv` for sprint-status-view workflow
51
+ - [x] 5.2: Entry must include: workflow name, slash command `/sprint-status-view`, description, phase association
52
+
53
+ ## Dev Notes
54
+
55
+ ### Architecture Compliance
56
+
57
+ - **Extension workflow mandatory:** Implementation MUST be a new extension workflow at `lib/bmad-extension/workflows/sprint-status-view/workflow.md`. This is not a preference — it is required. The base `_bmad/bmm/workflows/` must not be modified.
58
+ - **Sprint artifact integration:** Reads sprint-plan-{n}.yaml files created by add-sprint (12-1) and modified by add-to-sprint (12-2) and modify-sprint (12-3)
59
+ - **Flat listing (FR65):** Items displayed in a flat list within each sprint — no epic grouping
60
+ - **Remaining capacity (FR71):** Must be prominently displayed per sprint
61
+ - **Item type distinction:** Stories and bugs are clearly labeled — bugs show severity, stories show status
62
+ - **Data authority split:** sprint-plan-{n}.yaml owns sprint membership. sprint-status.yaml owns user story execution status. Bug execution status comes from bug file frontmatter. Never conflate these sources.
63
+ - **Bug story discovery:** Bug stories are discovered via glob `_bmad-output/implementation-artifacts/bug-*.md` with YAML frontmatter parsing. They are NOT in sprint-status.yaml.
64
+ - **Data integrity warnings:** Items in sprint plan but missing from sprint-status.yaml must surface as an actionable warning (run /sprint-planning), not silently as "status unknown."
65
+
66
+ ### Shared Guardrails
67
+
68
+ See `_bmad-output/implementation-artifacts/epic-11-12-shared-guardrails.md` for universal constraints, data authority rules, sprint artifact naming, and bug story discovery contract.
69
+
70
+ ### Critical Guardrails (story-specific)
71
+
72
+ - Do NOT modify `_bmad/bmm/workflows/` base module files — extension workflow is mandatory (see AC #0)
73
+ - Do NOT add npm dependencies
74
+ - Do NOT modify lib/installer.js, lib/agents.js, or bin/cli.js
75
+ - Do NOT group items by epic — maintain flat backlog view within sprints
76
+ - Do NOT hide unassigned items — surface them in a summary section
77
+
78
+ ### Project Structure Notes
79
+
80
+ - **Files to create (likely):**
81
+ - `lib/bmad-extension/workflows/sprint-status-view/workflow.md` (or similar name)
82
+ - **Files to update:**
83
+ - `lib/bmad-extension/module-help.csv` — add workflow registration entry (if new workflow)
84
+ - **Files to read (at runtime):**
85
+ - `_bmad-output/implementation-artifacts/sprint-plan-*.yaml` — sprint artifact files
86
+ - `_bmad-output/implementation-artifacts/sprint-status.yaml` — item statuses
87
+ - **Existing files to review (not modify):**
88
+ - `_bmad/bmm/workflows/` — existing sprint-status workflow for reference
89
+
90
+ ### References
91
+
92
+ - [Source: _bmad-output/implementation-artifacts/sprint-status.yaml] — Current sprint status data
93
+ - [Source: _bmad/bmm/workflows/] — Existing sprint-status workflow for pattern reference
94
+ - [Source: lib/bmad-extension/workflows/add-sprint/workflow.md] — Sprint artifact format (created in 12-1)
95
+ - [Source: lib/bmad-extension/workflows/add-to-sprint/workflow.md] — Item assignment format (created in 12-2)
96
+
97
+ ## Dev Agent Record
98
+
99
+ ### Agent Model Used
100
+ claude-sonnet-4-6
101
+
102
+ ### Debug Log References
103
+ None — clean implementation. Extension workflow approach confirmed mandated by AC #0.
104
+
105
+ ### Completion Notes List
106
+ - Read existing sprint-status workflow at `_bmad/bmm/workflows/4-implementation/sprint-status/instructions.md` for reference only (not modified)
107
+ - Created `lib/bmad-extension/workflows/sprint-status-view/workflow.md` as new extension (not modifying base module)
108
+ - Step 1: Globs sprint-plan-*.yaml sorted by sprint_number
109
+ - Step 2: Loads sprint-status.yaml into story_status_map (story key → status); excludes epic-* and *-retrospective keys
110
+ - Step 3: Globs bug-*.md into bug_metadata_map (basename → severity/title)
111
+ - Step 4: Per sprint — displays capacity/remaining; resolves each assigned_items entry:
112
+ - Stories (regex `^\d+-\d+-.+`): status from story_status_map; DATA INTEGRITY WARNING if missing (not silent "unknown")
113
+ - Bugs (regex `^bug-.+`): severity from bug_metadata_map frontmatter; execution status from bug frontmatter or "not-started"
114
+ - Type distinction: 📋 Story vs 🐛 Bug markers in table
115
+ - Step 5: Unassigned Backlog — stories grouped by status count + full unassigned bug table (id/title/severity)
116
+ - Step 6: Interactive next-action menu — option 1 now shows full unassigned item list (stories + bugs) with details
117
+ - Registered in module-help.csv with `/sprint-status-view` command; output_type: display (read-only workflow)
118
+ - Post-review fixes: story/bug patterns use explicit regex (L3); unassigned bugs show full table not count (M6); step 6 option 1 replaced with genuinely additive full backlog detail view (L4); output_type corrected to display (M7)
119
+
120
+ ### File List
121
+ - `lib/bmad-extension/workflows/sprint-status-view/workflow.md` (created)
122
+ - `lib/bmad-extension/module-help.csv` (updated — added sprint-status-view entry)
123
+ - `_bmad-output/implementation-artifacts/12-4-sprint-status-assigned-items.md` (updated — status, tasks, record)
124
+ - `_bmad-output/implementation-artifacts/sprint-status.yaml` (updated — 12-4 in-progress→review, epic-12 in-progress)
125
+
126
+ ## Change Log
127
+
128
+ - 2026-03-18: Story 12.4 implemented — sprint-status-view extension workflow created and registered
129
+ - 2026-03-18: Addressed code review findings — M6 (full unassigned bug table), M7 (output_type: display), L3 (explicit regex patterns), L4 (step 6 option 1 replaced)
@@ -0,0 +1,179 @@
1
+ # Story 13.1: Create Project-Context Template and Generator Function
2
+
3
+ Status: done
4
+
5
+ ## Story
6
+
7
+ As a **Chief Architect**,
8
+ I want a standalone project-context template and a `generateProjectContext()` function in the installer,
9
+ So that a constitutional document can be generated with correct platform-specific content at install time.
10
+
11
+ ## Acceptance Criteria
12
+
13
+ 1. `lib/templates/project-context.template.md` exists as a standalone file (not an inline string in code) containing all mandatory rule sections (NFR24)
14
+ 2. The template contains a `## AI Agent Mandatory Rules` section with:
15
+ - Pre-task rules: read MANIFEST.yaml (`{{MANIFEST_PATHS_LIST}}` placeholder), load all `always_load: true` skills, select task-relevant skills (FR80)
16
+ - Git workflow rules: create fresh worktree per mission (not just a branch), all work in worktree, conventional commits, PR to main, worktree cleanup post-merge (FR80)
17
+ - Full 8-step mission lifecycle documented in sequence (FR83)
18
+ 3. The template contains `{{MANIFEST_PATHS_LIST}}` exactly once — no hardcoded platform paths anywhere in the template source (NFR22)
19
+ 4. The template contains the machine-readable version comment `<!-- ma-agents-template-version: 1.0 -->` on line 2 (NFR25)
20
+ 5. The template contains inline expansion comments referencing `bmad-generate-project-context`, `bmad-retrospective`, and manual additions (FR85)
21
+ 6. The template contains empty `## Technology Stack` and `## Project-Specific Rules` placeholder sections with TODO comments
22
+ 7. `generateProjectContext(projectRoot, installedAgents)` is implemented in `installer.js` — `installedAgents` receives ALL agents from the project manifest, not just those installed in the current run
23
+ 8. The function reads the template from `TEMPLATE_PATH` constant (resolved via `path.join(__dirname, 'templates', 'project-context.template.md')`, not hardcoded inline)
24
+ 9. The function resolves relative MANIFEST.yaml paths for each agent: `agent.skillsDir + '/MANIFEST.yaml'` — relative to project root, no `path.resolve()` or absolute prefixes (NFR22 for generated output)
25
+ 10. The function replaces `{{MANIFEST_PATHS_LIST}}` with a markdown bullet list: one ` - \`<path>\`` line per agent (FR81, FR82)
26
+ 11. The function returns the stamped content string — it does NOT write any file (writing is Story 13.2's responsibility)
27
+ 12. When `installedAgents` is empty, `{{MANIFEST_PATHS_LIST}}` is replaced with ` - (no agents installed — run ma-agents to install skills)`
28
+ 13. When the template file cannot be read (missing, permission error), the function throws an `Error` with message including the template path and the underlying cause — it never swallows errors silently
29
+ 14. With one installed platform, the returned content contains exactly one MANIFEST path entry (FR81)
30
+ 15. With multiple installed platforms, the returned content contains one entry per platform in the order they appear in the manifest (FR82)
31
+
32
+ ## Tasks / Subtasks
33
+
34
+ - [x] Task 1: Create `lib/templates/` directory and template file (AC: #1-#4)
35
+ - [x] 1.1 Create `lib/templates/` directory in the project
36
+ - [x] 1.2 Create `lib/templates/project-context.template.md` with the full template structure (see Dev Notes for exact content)
37
+ - [x] 1.3 Verify template contains `{{MANIFEST_PATHS_LIST}}` placeholder
38
+ - [x] 1.4 Verify template contains all three mandatory rule sections: pre-task, git workflow, mission lifecycle
39
+ - [x] 1.5 Verify template contains expansion guidance comments
40
+ - [x] 1.6 Verify template contains empty Technology Stack and Project-Specific Rules sections
41
+
42
+ - [x] Task 2: Implement `generateProjectContext()` in `installer.js` (AC: #5-#9)
43
+ - [x] 2.1 Add `TEMPLATE_PATH` constant near top of `installer.js`: `const TEMPLATE_PATH = path.join(__dirname, 'templates', 'project-context.template.md')`
44
+ - [x] 2.2 Implement `async function generateProjectContext(projectRoot, installedAgents)`:
45
+ - [x] 2.2.1 Read template file with `await fs.readFile(TEMPLATE_PATH, 'utf8')`
46
+ - [x] 2.2.2 Map `installedAgents` to manifest paths: `agent.skillsDir + '/MANIFEST.yaml'` (relative paths — no `path.join(projectRoot, ...)`)
47
+ - [x] 2.2.3 Format paths as markdown list: ` - \`${path}\``
48
+ - [x] 2.2.4 Replace `{{MANIFEST_PATHS_LIST}}` in template with formatted list
49
+ - [x] 2.2.5 Return stamped content string
50
+ - [x] 2.3 Wrap `fs.readFile` in try/catch — if template file missing, throw clear error: `"project-context template not found at ${TEMPLATE_PATH} — ma-agents installation may be corrupted"`
51
+
52
+ - [x] Task 3: Unit tests (AC: all)
53
+ - [x] 3.1 Test: single platform → one MANIFEST path in output (AC: #14)
54
+ - [x] 3.2 Test: multiple platforms → correct count of paths in manifest order (AC: #15)
55
+ - [x] 3.3 Test: all relative paths — no absolute path segments in output (AC: #9)
56
+ - [x] 3.4 Test: `{{MANIFEST_PATHS_LIST}}` placeholder fully replaced — not present in output (AC: #10)
57
+ - [x] 3.5 Test: empty agents array → fallback message appears, no error thrown (AC: #12)
58
+ - [x] 3.6 Test: missing template file → Error thrown with path in message (AC: #13)
59
+ - [x] 3.7 Test: template version comment present in output (AC: #4, NFR25)
60
+ - [x] 3.8 Test: function does NOT call fs.writeFile or fs.pathExists (AC: #11 — pure content generator)
61
+
62
+ ## Dev Notes
63
+
64
+ ### Template File Content
65
+
66
+ `lib/templates/project-context.template.md` should contain:
67
+
68
+ ```markdown
69
+ # Project Context
70
+ <!-- Generated by ma-agents at install time — this is a living document -->
71
+ <!--
72
+ EXPAND THIS FILE over time:
73
+ - After architecture phase: run /bmad-generate-project-context
74
+ - After each sprint: run /bmad-retrospective (includes context update step)
75
+ - Manually: add conventions you notice agents getting wrong
76
+ -->
77
+
78
+ ## AI Agent Mandatory Rules
79
+
80
+ ### Pre-Task (EVERY task, no exceptions)
81
+
82
+ 1. Read the MANIFEST.yaml for your platform:
83
+ {{MANIFEST_PATHS_LIST}}
84
+ 2. Load ALL skills marked `always_load: true` completely before doing anything
85
+ 3. Select additional skills relevant to the specific task type
86
+
87
+ ### Git Workflow (ALL file-changing tasks)
88
+
89
+ 1. Create a fresh worktree: `git worktree add ../<project>-<branch> -b <branch>`
90
+ 2. ALL work happens inside that worktree — never in the main working tree
91
+ 3. Use conventional commits: `feat/fix/chore/docs/refactor`
92
+ 4. Open a PR to main — never commit directly to main, never auto-merge
93
+ 5. After human approval and merge: `git worktree remove ../<project>-<branch>`
94
+
95
+ ### Agent Mission Lifecycle
96
+
97
+ 1. **Pre-flight:** Read MANIFEST.yaml, load always_load skills, select task skills
98
+ 2. **Worktree:** `git worktree add` creates fresh, isolated working surface
99
+ 3. **Implementation:** Execute task within the worktree
100
+ 4. **Self-review:** Run `code-review` skill on own output before opening PR
101
+ 5. **PR:** Conventional commit + PR opened — clear title and description
102
+ 6. **Human review gate:** Await approval — do NOT auto-merge under any circumstance
103
+ 7. **Merge + cleanup:** After approval: merge, `git worktree remove`, delete branch
104
+ 8. **Post-mission:** Update story status to done, append session to AiAudit.md
105
+
106
+ ## Technology Stack
107
+ <!-- TODO: Populated after architecture phase via /bmad-generate-project-context -->
108
+ <!-- Run: /bmad-generate-project-context to auto-detect your stack -->
109
+
110
+ ## Project-Specific Rules
111
+ <!-- TODO: Grows through retrospectives and manual additions -->
112
+ <!-- Run: /bmad-retrospective after each sprint to surface new conventions -->
113
+ ```
114
+
115
+ ### Architecture Compliance
116
+
117
+ - **Decision P2-7** (Project Context Auto-Generation): This story implements the template creation and generator function. Story 13.2 handles pipeline integration (writing the file).
118
+ - **NFR22** (Relative paths only): `agent.skillsDir` values in the agent registry are already relative project paths (e.g., `.claude/skills`). Appending `/MANIFEST.yaml` keeps them relative. Do NOT resolve to absolute paths.
119
+ - **NFR24** (Template as separate file): The template MUST be a file in `lib/templates/`, not a template literal in installer.js code.
120
+
121
+ ### Source Tree Components to Touch
122
+
123
+ | File | Change |
124
+ |------|--------|
125
+ | `lib/templates/project-context.template.md` | CREATE — new template file |
126
+ | `lib/installer.js` | ADD — `TEMPLATE_PATH` constant + `generateProjectContext()` function |
127
+
128
+ ### Agent Registry `skillsDir` Values
129
+
130
+ From `lib/agents.js`, the relevant `skillsDir` values for path resolution:
131
+ - Claude Code: `.claude/skills`
132
+ - Cursor: `.cursor/skills`
133
+ - Cline: `.cline/skills`
134
+ - Copilot: `.github/copilot/skills`
135
+ - Gemini: `.gemini/skills`
136
+ - Kilocode: `.kilocode/skills`
137
+ - OpenCode: `.opencode/skills`
138
+ - Antigravity: `.antigravity/skills`
139
+
140
+ Verify actual values by reading `lib/agents.js` before implementation.
141
+
142
+ ### Testing Standards
143
+
144
+ Epic 7 test suite is not yet complete. Manual verification is acceptable. If tests/installer.test.js exists, add unit tests there. Otherwise document manual test steps.
145
+
146
+ ### Epic 13 Cross-Story Context
147
+
148
+ **Story 13.1** (this): Create template file and generator function — returns stamped content string
149
+ **Story 13.2**: Call `generateProjectContext()` in install pipeline, handle file write + idempotency
150
+ **Story 13.3**: Update all 11 BMAD agent `critical_actions` to load project-context.md
151
+ **Story 13.4**: Add expansion trigger to retrospective workflow
152
+
153
+ ## Dev Agent Record
154
+
155
+ ### Agent Model Used
156
+ claude-sonnet-4-6
157
+
158
+ ### Debug Log References
159
+ - Test 3.1/3.2 initially failed: template itself contains "MANIFEST.yaml" in header text. Fixed test helper to count only backtick-wrapped path entries (`/MANIFEST.yaml`) not all occurrences of "MANIFEST.yaml".
160
+ - Tests 3.6 and 3.8 raced when Promise.all ran them in parallel (3.6 temporarily renames template file). Fixed by running tests sequentially with async/await instead of Promise.all over parallel promises.
161
+ - `skillsDir` property added to all agent definitions in `lib/agents.js` (not in original source tree spec) — required for `agent.skillsDir + '/MANIFEST.yaml'` pattern. All relative paths derived from agent definitions match the Dev Notes table.
162
+
163
+ ### Completion Notes List
164
+ - `lib/templates/project-context.template.md` created with all mandatory rule sections, version comment on line 2, `{{MANIFEST_PATHS_LIST}}` placeholder (exactly once), expansion guidance comments, and empty Technology Stack / Project-Specific Rules sections.
165
+ - `TEMPLATE_PATH` constant added near top of `lib/installer.js`.
166
+ - `generateProjectContext(projectRoot, installedAgents)` implemented: reads template, maps agents to relative MANIFEST paths via `agent.skillsDir`, replaces placeholder, returns content string. Throws descriptive Error on missing template.
167
+ - `skillsDir` property added to all 12 agent definitions in `lib/agents.js` for clean relative-path access.
168
+ - `generateProjectContext` and `_TEMPLATE_PATH` exported from `lib/installer.js`.
169
+ - 9 unit tests written in `test/generate-project-context.test.js` covering all 8 ACs. All pass. Full regression suite (84 tests) passes with no regressions.
170
+
171
+ ### File List
172
+ - `lib/templates/project-context.template.md` — CREATED
173
+ - `lib/installer.js` — MODIFIED (TEMPLATE_PATH constant, generateProjectContext function, exports)
174
+ - `lib/agents.js` — MODIFIED (skillsDir property added to all 12 agent definitions)
175
+ - `test/generate-project-context.test.js` — CREATED
176
+
177
+ ## Change Log
178
+ - 2026-03-19: Story created (Epic 13, Story 13.1)
179
+ - 2026-03-20: Story implemented — template file created, generateProjectContext() implemented, 9 unit tests passing, no regressions
@@ -0,0 +1,138 @@
1
+ # Story 13.2: Integrate Project-Context Generation into Install Pipeline
2
+
3
+ Status: done
4
+
5
+ ## Story
6
+
7
+ As a **DevOps Engineer**,
8
+ I want project-context.md generated automatically at the end of every project-level skill installation,
9
+ So that every ma-agents project has the constitutional document without any manual step.
10
+
11
+ ## Acceptance Criteria
12
+
13
+ 1. `generateProjectContext()` (from Story 13.1) is called at the end of the install pipeline for project-level installs
14
+ 2. After a successful project-level install, `_bmad-output/project-context.md` exists on disk
15
+ 3. The generated file contains the stamped template content with correct MANIFEST paths for all installed platforms
16
+ 4. When `_bmad-output/project-context.md` does NOT exist before install: the file is created and a success message is logged: `✓ project-context.md generated at _bmad-output/project-context.md` (FR79)
17
+ 5. When `_bmad-output/project-context.md` ALREADY EXISTS before install: the MANIFEST paths section (between `<!-- ma-agents:manifest-paths-start -->` and `<!-- ma-agents:manifest-paths-end -->` markers) is updated if new agents have been added — all other content is preserved (NFR23). If paths are already current, an info message is logged: `ℹ project-context.md already up to date`. If paths were updated, a success message is logged: `✓ project-context.md manifest paths updated` (FR84)
18
+ 6. Global installs (targeting `~/.config/<agent>/` or equivalent user-level paths) do NOT trigger project-context generation — only project-level installs do
19
+ 7. Non-interactive CI/CD mode (`--yes` flag) produces identical project-context behaviour — no interactive prompts, generation fires automatically (FR84)
20
+ 8. If `_bmad-output/` directory does not exist, it is created before writing the file (consistent with existing `_bmad-output` policy from Epic 10)
21
+ 9. The write operation is additive-only — it does not modify any other file in `_bmad-output/` (NFR23)
22
+ 10. If `generateProjectContext()` throws (e.g., template file missing), the error is logged with context but does NOT abort the entire install — project-context generation failure is non-fatal
23
+
24
+ ## Tasks / Subtasks
25
+
26
+ - [x] Task 1: Identify the correct integration point in `installer.js` (AC: #1, #6)
27
+ - [x] 1.1 Read `lib/installer.js` to find where project-level installation completes (after manifest update, after skill copy)
28
+ - [x] 1.2 Identify how to detect project-level vs global install (check for `projectRoot` vs user home detection, or existing `isProjectInstall` logic)
29
+ - [x] 1.3 Confirm `installedAgents` list is available at that point (or can be derived from manifest state)
30
+
31
+ - [x] Task 2: Implement the pipeline integration (AC: #1-#5, #7-#10)
32
+ - [x] 2.1 After manifest update step, read ALL currently-installed agents from the updated manifest (`.ma-agents.json`) — this is the `installedAgentConfigs` passed to `generateProjectContext()`. Never pass only the current-run agents; the manifest is the source of truth for completeness (architecture Decision P2-7)
33
+ - [x] 2.2 Add call using the two-layer pattern from architecture P2-7:
34
+ ```javascript
35
+ if (isProjectInstall) {
36
+ const outputPath = path.join(projectRoot, '_bmad-output', 'project-context.md');
37
+ if (await fs.pathExists(outputPath)) {
38
+ console.log(chalk.blue('ℹ project-context.md already exists — skipping generation'));
39
+ } else {
40
+ try {
41
+ const allAgents = readAllAgentsFromManifest(projectRoot); // read .ma-agents.json
42
+ await fs.ensureDir(path.join(projectRoot, '_bmad-output'));
43
+ const content = await generateProjectContext(projectRoot, allAgents);
44
+ await fs.writeFile(outputPath, content, 'utf8');
45
+ console.log(chalk.green('✓ project-context.md generated at _bmad-output/project-context.md'));
46
+ } catch (err) {
47
+ console.log(chalk.yellow(`⚠ project-context generation failed: ${err.message} — continuing install`));
48
+ }
49
+ }
50
+ }
51
+ ```
52
+ - [x] 2.3 Verify `fs.ensureDir` is already available (it is — `fs-extra` is a dependency)
53
+
54
+ - [x] Task 3: Validate global install exclusion (AC: #6)
55
+ - [x] 3.1 Read how installer.js currently distinguishes project-level vs global install
56
+ - [x] 3.2 Ensure the `isProjectInstall` condition (or equivalent) correctly gates project-context generation
57
+ - [x] 3.3 Manually test: run `npx ma-agents install --global` (if supported) and confirm no `_bmad-output/project-context.md` is created in home directory
58
+
59
+ - [x] Task 4: Idempotency verification (AC: #5)
60
+ - [x] 4.1 Create a test project with existing `_bmad-output/project-context.md` (any content)
61
+ - [x] 4.2 Run `npx ma-agents install` on that project
62
+ - [x] 4.3 Confirm the existing file content is unchanged
63
+ - [x] 4.4 Confirm the info message appears in output
64
+
65
+ - [x] Task 5: CI/CD mode verification (AC: #7)
66
+ - [x] 5.1 Run `npx ma-agents install --yes` on a project without existing project-context.md
67
+ - [x] 5.2 Confirm `_bmad-output/project-context.md` is generated without interactive prompts
68
+ - [x] 5.3 Run again — confirm idempotency in `--yes` mode
69
+
70
+ ## Dev Notes
71
+
72
+ ### Architecture Compliance
73
+
74
+ - **Decision P2-7**: Story 13.2 implements the "write file" half of the two-part generation pattern. Story 13.1 implemented the "return stamped content" half.
75
+ - **NFR23** (Additive-only): `fs.pathExists` check before write is the enforcement mechanism. The write path only triggers if the file does not exist.
76
+ - **Epic 10** (`_bmad-output` policy): `_bmad-output/` is never gitignored (enforced by Epic 10). `fs.ensureDir` creates it if absent — this is consistent with existing policy.
77
+
78
+ ### Install Pipeline Stage
79
+
80
+ The call to `generateProjectContext()` belongs **after** the manifest update stage (Stage 5 of the install pipeline) but before the final success message. This ensures:
81
+ 1. All agent configs are finalized in the manifest before we read them
82
+ 2. The MANIFEST.yaml files have already been written to the agent skill directories
83
+ 3. The user sees project-context generation as the final step of a successful install
84
+
85
+ ### Project-Level Detection
86
+
87
+ Read `installer.js` to verify the current detection mechanism. Likely candidates:
88
+ - Presence of a `package.json` or `.git` directory in `projectRoot`
89
+ - A `--project` flag vs `--global` flag in CLI arguments
90
+ - The existing install path resolution logic that distinguishes project vs user-level paths
91
+
92
+ Do NOT assume — read the code first.
93
+
94
+ ### `installedAgentConfigs` Composition
95
+
96
+ Pass the agent config objects that were actually installed in this run. Each must have a `skillsDir` property (relative path from project root to that agent's skills directory). If the installer already tracks which agents were installed, use that list. If not, derive from the manifest.
97
+
98
+ ### Error Handling Philosophy
99
+
100
+ Project-context generation is a **convenience feature**, not a critical install step. A template file corruption or disk permission error should log a warning but never roll back skills that were successfully installed. This is the same philosophy as the audit trail — helpful but not blocking.
101
+
102
+ ### Source Tree Components to Touch
103
+
104
+ | File | Change |
105
+ |------|--------|
106
+ | `lib/installer.js` | ADD — integration call at end of project-level install pipeline |
107
+
108
+ ### Epic 13 Cross-Story Context
109
+
110
+ **Story 13.1** (prerequisite): Created `generateProjectContext()` function and template file
111
+ **Story 13.2** (this): Wires the generator into the install pipeline with file write + idempotency
112
+ **Story 13.3**: Updates BMAD critical_actions to load project-context.md at agent activation
113
+ **Story 13.4**: Adds expansion trigger to retrospective workflow
114
+
115
+ ## Dev Agent Record
116
+
117
+ ### Agent Model Used
118
+ claude-sonnet-4-6
119
+
120
+ ### Debug Log References
121
+ - Integration point: inside `if (scope === 'project')` block in `installSkill`, after the Claude Code hook deployment. The `manifest` variable is already in scope at that point, allowing direct use of `getManifestAgents(manifest)` without re-reading the file.
122
+ - Project-level detection: `scope === 'project'` parameter controls whether project-context generation fires. Global installs use `scope === 'global'` and are excluded automatically.
123
+ - First run created `_bmad-output/project-context.md`; subsequent runs log "already exists — skipping generation". Confirmed via yes-flag integration test passing (111/111 total tests pass).
124
+
125
+ ### Completion Notes List
126
+ - Added project-context generation call inside `if (scope === 'project')` block in `installSkill` in `lib/installer.js`.
127
+ - Uses `getManifestAgents(manifest).map(id => getAgent(id)).filter(Boolean)` to get ALL installed agent configs from manifest (source of truth per P2-7).
128
+ - `fs.pathExists` check gates first-install vs update path (AC #8). `fs.ensureDir` creates `_bmad-output/` if absent. Full try/catch makes generation non-fatal (AC #10).
129
+ - **`updateProjectContextManifestPaths(outputPath, installedAgents)`** added to `lib/installer.js`: on subsequent installs, updates only the MANIFEST paths section between `<!-- ma-agents:manifest-paths-start -->` / `<!-- ma-agents:manifest-paths-end -->` markers. Returns `true` if file was written, `false` if already up-to-date or no markers (old-format backward compat). This extends AC #5 — the file IS updated when new agents are added, but only the paths section, preserving all user edits.
130
+ - `projectContextHandled` guard added to `installSkill` to prevent redundant project-context operations when multiple path groups share a skill install.
131
+ - All tests pass (no regressions).
132
+
133
+ ### File List
134
+ - `lib/installer.js` — MODIFIED (project-context generation call in installSkill; `updateProjectContextManifestPaths` function added for idempotent subsequent-install path updates)
135
+
136
+ ## Change Log
137
+ - 2026-03-19: Story created (Epic 13, Story 13.2)
138
+ - 2026-03-20: Story implemented — pipeline integration added to installSkill, all tests pass