ma-agents 3.4.9 → 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 (826) 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/lib/bmad-extension/module-help.csv +26 -4
  112. package/lib/bmad-extension/skills/add-sprint/SKILL.md +126 -72
  113. package/lib/bmad-extension/skills/add-to-sprint/SKILL.md +124 -96
  114. package/{.opencode/skills/add-to-sprint → lib/bmad-extension/skills/bmad-dev-story}/bmad-skill-manifest.yaml +1 -1
  115. package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/checklist.md +13 -13
  116. package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/workflow.md +103 -44
  117. package/lib/bmad-extension/skills/bmad-ma-agent-mil498/SKILL.md +2 -1
  118. package/lib/bmad-extension/skills/bmad-sprint-planning/SKILL.md +6 -0
  119. package/lib/bmad-extension/skills/bmad-sprint-planning/bmad-skill-manifest.yaml +3 -0
  120. package/lib/bmad-extension/skills/bmad-sprint-planning/checklist.md +74 -0
  121. package/lib/bmad-extension/skills/bmad-sprint-planning/sprint-status-template.yaml +89 -0
  122. package/lib/bmad-extension/skills/bmad-sprint-planning/workflow.md +372 -0
  123. package/lib/bmad-extension/skills/bmad-sprint-status/SKILL.md +6 -0
  124. package/{.opencode/skills/create-bug-story → lib/bmad-extension/skills/bmad-sprint-status}/bmad-skill-manifest.yaml +1 -1
  125. package/lib/bmad-extension/skills/bmad-sprint-status/workflow.md +434 -0
  126. package/lib/bmad-extension/skills/cleanup-done/SKILL.md +215 -0
  127. package/lib/bmad-extension/skills/close-sprint/SKILL.md +379 -0
  128. package/{.opencode/skills/add-sprint → lib/bmad-extension/skills/close-sprint}/bmad-skill-manifest.yaml +1 -1
  129. package/lib/bmad-extension/skills/generate-backlog/SKILL.md +195 -0
  130. package/lib/bmad-extension/skills/mil498-requirement-quality/SKILL.md +105 -0
  131. package/lib/bmad-extension/skills/mil498-requirement-quality/bmad-skill-manifest.yaml +5 -0
  132. package/lib/bmad-extension/skills/mil498-ssdd/prompts/05-validate.md +4 -0
  133. package/lib/bmad-extension/skills/modify-sprint/SKILL.md +227 -175
  134. package/lib/bmad-extension/skills/prioritize-backlog/SKILL.md +217 -0
  135. package/lib/bmad-extension/skills/remove-from-sprint/SKILL.md +184 -0
  136. package/lib/bmad-extension/skills/sprint-status-view/SKILL.md +165 -190
  137. package/lib/bmad-extension/workflows/add-sprint/workflow.md +125 -71
  138. package/lib/bmad-extension/workflows/add-to-sprint/workflow.md +123 -95
  139. package/lib/bmad-extension/workflows/modify-sprint/workflow.md +228 -176
  140. package/lib/bmad-extension/workflows/remove-from-sprint/workflow.md +164 -0
  141. package/lib/bmad-extension/workflows/sprint-status-view/workflow.md +162 -189
  142. package/mil498/README.md +4 -0
  143. package/out.txt +0 -0
  144. package/package.json +1 -1
  145. package/skills/add-sprint/SKILL.md +165 -0
  146. package/skills/add-sprint/skill.json +7 -0
  147. package/skills/add-to-sprint/SKILL.md +231 -0
  148. package/skills/add-to-sprint/skill.json +7 -0
  149. package/skills/bmad-sprint-planning/SKILL.md +321 -0
  150. package/skills/bmad-sprint-planning/skill.json +7 -0
  151. package/skills/bmad-sprint-status/SKILL.md +273 -0
  152. package/skills/bmad-sprint-status/skill.json +7 -0
  153. package/skills/cleanup-done/SKILL.md +203 -0
  154. package/skills/cleanup-done/skill.json +7 -0
  155. package/skills/close-sprint/SKILL.md +370 -0
  156. package/skills/close-sprint/skill.json +7 -0
  157. package/skills/generate-backlog/SKILL.md +178 -0
  158. package/skills/generate-backlog/skill.json +7 -0
  159. package/skills/modify-sprint/SKILL.md +302 -0
  160. package/skills/modify-sprint/skill.json +7 -0
  161. package/skills/prioritize-backlog/SKILL.md +203 -0
  162. package/skills/prioritize-backlog/skill.json +7 -0
  163. package/skills/remove-from-sprint/SKILL.md +174 -0
  164. package/skills/remove-from-sprint/skill.json +7 -0
  165. package/skills/sprint-status-view/SKILL.md +173 -0
  166. package/skills/sprint-status-view/skill.json +7 -0
  167. package/skills/story-status-lookup/SKILL.md +21 -6
  168. package/skills/story-status-lookup/skill.json +2 -2
  169. package/test/extension-module-restructure.test.js +12 -11
  170. package/test/migration-validation.test.js +10 -10
  171. package/.opencode/skills/.ma-agents.json +0 -241
  172. package/.opencode/skills/MANIFEST.yaml +0 -254
  173. package/.opencode/skills/add-sprint/SKILL.md +0 -207
  174. package/.opencode/skills/add-to-sprint/SKILL.md +0 -189
  175. package/.opencode/skills/ai-audit-trail/SKILL.md +0 -23
  176. package/.opencode/skills/auto-bug-detection/SKILL.md +0 -169
  177. package/.opencode/skills/bmad-advanced-elicitation/SKILL.md +0 -137
  178. package/.opencode/skills/bmad-advanced-elicitation/methods.csv +0 -51
  179. package/.opencode/skills/bmad-agent-analyst/SKILL.md +0 -56
  180. package/.opencode/skills/bmad-agent-analyst/bmad-skill-manifest.yaml +0 -11
  181. package/.opencode/skills/bmad-agent-architect/SKILL.md +0 -52
  182. package/.opencode/skills/bmad-agent-architect/bmad-skill-manifest.yaml +0 -11
  183. package/.opencode/skills/bmad-agent-dev/SKILL.md +0 -62
  184. package/.opencode/skills/bmad-agent-dev/bmad-skill-manifest.yaml +0 -11
  185. package/.opencode/skills/bmad-agent-pm/SKILL.md +0 -57
  186. package/.opencode/skills/bmad-agent-pm/bmad-skill-manifest.yaml +0 -11
  187. package/.opencode/skills/bmad-agent-qa/SKILL.md +0 -59
  188. package/.opencode/skills/bmad-agent-qa/bmad-skill-manifest.yaml +0 -11
  189. package/.opencode/skills/bmad-agent-quick-flow-solo-dev/SKILL.md +0 -51
  190. package/.opencode/skills/bmad-agent-quick-flow-solo-dev/bmad-skill-manifest.yaml +0 -11
  191. package/.opencode/skills/bmad-agent-sm/SKILL.md +0 -53
  192. package/.opencode/skills/bmad-agent-sm/bmad-skill-manifest.yaml +0 -11
  193. package/.opencode/skills/bmad-agent-tech-writer/SKILL.md +0 -55
  194. package/.opencode/skills/bmad-agent-tech-writer/bmad-skill-manifest.yaml +0 -11
  195. package/.opencode/skills/bmad-agent-tech-writer/explain-concept.md +0 -20
  196. package/.opencode/skills/bmad-agent-tech-writer/mermaid-gen.md +0 -20
  197. package/.opencode/skills/bmad-agent-tech-writer/validate-doc.md +0 -19
  198. package/.opencode/skills/bmad-agent-tech-writer/write-document.md +0 -20
  199. package/.opencode/skills/bmad-agent-ux-designer/SKILL.md +0 -53
  200. package/.opencode/skills/bmad-agent-ux-designer/bmad-skill-manifest.yaml +0 -11
  201. package/.opencode/skills/bmad-brainstorming/SKILL.md +0 -6
  202. package/.opencode/skills/bmad-brainstorming/brain-methods.csv +0 -62
  203. package/.opencode/skills/bmad-brainstorming/steps/step-01-session-setup.md +0 -214
  204. package/.opencode/skills/bmad-brainstorming/steps/step-01b-continue.md +0 -124
  205. package/.opencode/skills/bmad-brainstorming/steps/step-02a-user-selected.md +0 -229
  206. package/.opencode/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -239
  207. package/.opencode/skills/bmad-brainstorming/steps/step-02c-random-selection.md +0 -211
  208. package/.opencode/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -266
  209. package/.opencode/skills/bmad-brainstorming/steps/step-03-technique-execution.md +0 -401
  210. package/.opencode/skills/bmad-brainstorming/steps/step-04-idea-organization.md +0 -305
  211. package/.opencode/skills/bmad-brainstorming/template.md +0 -15
  212. package/.opencode/skills/bmad-brainstorming/workflow.md +0 -53
  213. package/.opencode/skills/bmad-check-implementation-readiness/SKILL.md +0 -6
  214. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -179
  215. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -168
  216. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -169
  217. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -129
  218. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -241
  219. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -126
  220. package/.opencode/skills/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -4
  221. package/.opencode/skills/bmad-check-implementation-readiness/workflow.md +0 -49
  222. package/.opencode/skills/bmad-cis-design-thinking/SKILL.md +0 -6
  223. package/.opencode/skills/bmad-cis-design-thinking/bmad-skill-manifest.yaml +0 -1
  224. package/.opencode/skills/bmad-cis-design-thinking/design-methods.csv +0 -31
  225. package/.opencode/skills/bmad-cis-design-thinking/template.md +0 -111
  226. package/.opencode/skills/bmad-cis-design-thinking/workflow.md +0 -242
  227. package/.opencode/skills/bmad-cis-innovation-strategy/SKILL.md +0 -6
  228. package/.opencode/skills/bmad-cis-innovation-strategy/bmad-skill-manifest.yaml +0 -1
  229. package/.opencode/skills/bmad-cis-innovation-strategy/innovation-frameworks.csv +0 -31
  230. package/.opencode/skills/bmad-cis-innovation-strategy/template.md +0 -189
  231. package/.opencode/skills/bmad-cis-innovation-strategy/workflow.md +0 -315
  232. package/.opencode/skills/bmad-cis-problem-solving/SKILL.md +0 -6
  233. package/.opencode/skills/bmad-cis-problem-solving/bmad-skill-manifest.yaml +0 -1
  234. package/.opencode/skills/bmad-cis-problem-solving/solving-methods.csv +0 -31
  235. package/.opencode/skills/bmad-cis-problem-solving/template.md +0 -165
  236. package/.opencode/skills/bmad-cis-problem-solving/workflow.md +0 -291
  237. package/.opencode/skills/bmad-cis-storytelling/SKILL.md +0 -6
  238. package/.opencode/skills/bmad-cis-storytelling/bmad-skill-manifest.yaml +0 -1
  239. package/.opencode/skills/bmad-cis-storytelling/story-types.csv +0 -26
  240. package/.opencode/skills/bmad-cis-storytelling/template.md +0 -113
  241. package/.opencode/skills/bmad-cis-storytelling/workflow.md +0 -321
  242. package/.opencode/skills/bmad-code-review/SKILL.md +0 -6
  243. package/.opencode/skills/bmad-code-review/steps/step-01-gather-context.md +0 -62
  244. package/.opencode/skills/bmad-code-review/steps/step-02-review.md +0 -34
  245. package/.opencode/skills/bmad-code-review/steps/step-03-triage.md +0 -49
  246. package/.opencode/skills/bmad-code-review/steps/step-04-present.md +0 -129
  247. package/.opencode/skills/bmad-code-review/workflow.md +0 -55
  248. package/.opencode/skills/bmad-correct-course/SKILL.md +0 -6
  249. package/.opencode/skills/bmad-correct-course/checklist.md +0 -288
  250. package/.opencode/skills/bmad-correct-course/workflow.md +0 -267
  251. package/.opencode/skills/bmad-create-architecture/SKILL.md +0 -6
  252. package/.opencode/skills/bmad-create-architecture/architecture-decision-template.md +0 -12
  253. package/.opencode/skills/bmad-create-architecture/data/domain-complexity.csv +0 -13
  254. package/.opencode/skills/bmad-create-architecture/data/project-types.csv +0 -7
  255. package/.opencode/skills/bmad-create-architecture/steps/step-01-init.md +0 -153
  256. package/.opencode/skills/bmad-create-architecture/steps/step-01b-continue.md +0 -173
  257. package/.opencode/skills/bmad-create-architecture/steps/step-02-context.md +0 -224
  258. package/.opencode/skills/bmad-create-architecture/steps/step-03-starter.md +0 -329
  259. package/.opencode/skills/bmad-create-architecture/steps/step-04-decisions.md +0 -318
  260. package/.opencode/skills/bmad-create-architecture/steps/step-05-patterns.md +0 -359
  261. package/.opencode/skills/bmad-create-architecture/steps/step-06-structure.md +0 -379
  262. package/.opencode/skills/bmad-create-architecture/steps/step-07-validation.md +0 -359
  263. package/.opencode/skills/bmad-create-architecture/steps/step-08-complete.md +0 -76
  264. package/.opencode/skills/bmad-create-architecture/workflow.md +0 -38
  265. package/.opencode/skills/bmad-create-epics-and-stories/SKILL.md +0 -6
  266. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -255
  267. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -212
  268. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -255
  269. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -131
  270. package/.opencode/skills/bmad-create-epics-and-stories/templates/epics-template.md +0 -61
  271. package/.opencode/skills/bmad-create-epics-and-stories/workflow.md +0 -53
  272. package/.opencode/skills/bmad-create-prd/SKILL.md +0 -6
  273. package/.opencode/skills/bmad-create-prd/data/domain-complexity.csv +0 -15
  274. package/.opencode/skills/bmad-create-prd/data/prd-purpose.md +0 -197
  275. package/.opencode/skills/bmad-create-prd/data/project-types.csv +0 -11
  276. package/.opencode/skills/bmad-create-prd/steps-c/step-01-init.md +0 -178
  277. package/.opencode/skills/bmad-create-prd/steps-c/step-01b-continue.md +0 -161
  278. package/.opencode/skills/bmad-create-prd/steps-c/step-02-discovery.md +0 -208
  279. package/.opencode/skills/bmad-create-prd/steps-c/step-02b-vision.md +0 -142
  280. package/.opencode/skills/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -158
  281. package/.opencode/skills/bmad-create-prd/steps-c/step-03-success.md +0 -214
  282. package/.opencode/skills/bmad-create-prd/steps-c/step-04-journeys.md +0 -201
  283. package/.opencode/skills/bmad-create-prd/steps-c/step-05-domain.md +0 -194
  284. package/.opencode/skills/bmad-create-prd/steps-c/step-06-innovation.md +0 -211
  285. package/.opencode/skills/bmad-create-prd/steps-c/step-07-project-type.md +0 -222
  286. package/.opencode/skills/bmad-create-prd/steps-c/step-08-scoping.md +0 -216
  287. package/.opencode/skills/bmad-create-prd/steps-c/step-09-functional.md +0 -219
  288. package/.opencode/skills/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -230
  289. package/.opencode/skills/bmad-create-prd/steps-c/step-11-polish.md +0 -221
  290. package/.opencode/skills/bmad-create-prd/steps-c/step-12-complete.md +0 -115
  291. package/.opencode/skills/bmad-create-prd/templates/prd-template.md +0 -10
  292. package/.opencode/skills/bmad-create-prd/workflow.md +0 -62
  293. package/.opencode/skills/bmad-create-story/SKILL.md +0 -6
  294. package/.opencode/skills/bmad-create-story/checklist.md +0 -357
  295. package/.opencode/skills/bmad-create-story/discover-inputs.md +0 -88
  296. package/.opencode/skills/bmad-create-story/template.md +0 -49
  297. package/.opencode/skills/bmad-create-story/workflow.md +0 -380
  298. package/.opencode/skills/bmad-create-ux-design/SKILL.md +0 -6
  299. package/.opencode/skills/bmad-create-ux-design/steps/step-01-init.md +0 -135
  300. package/.opencode/skills/bmad-create-ux-design/steps/step-01b-continue.md +0 -127
  301. package/.opencode/skills/bmad-create-ux-design/steps/step-02-discovery.md +0 -190
  302. package/.opencode/skills/bmad-create-ux-design/steps/step-03-core-experience.md +0 -217
  303. package/.opencode/skills/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -220
  304. package/.opencode/skills/bmad-create-ux-design/steps/step-05-inspiration.md +0 -235
  305. package/.opencode/skills/bmad-create-ux-design/steps/step-06-design-system.md +0 -253
  306. package/.opencode/skills/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -255
  307. package/.opencode/skills/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -225
  308. package/.opencode/skills/bmad-create-ux-design/steps/step-09-design-directions.md +0 -225
  309. package/.opencode/skills/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -242
  310. package/.opencode/skills/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -249
  311. package/.opencode/skills/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -238
  312. package/.opencode/skills/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -265
  313. package/.opencode/skills/bmad-create-ux-design/steps/step-14-complete.md +0 -171
  314. package/.opencode/skills/bmad-create-ux-design/ux-design-template.md +0 -13
  315. package/.opencode/skills/bmad-create-ux-design/workflow.md +0 -36
  316. package/.opencode/skills/bmad-distillator/SKILL.md +0 -178
  317. package/.opencode/skills/bmad-distillator/agents/distillate-compressor.md +0 -116
  318. package/.opencode/skills/bmad-distillator/agents/round-trip-reconstructor.md +0 -68
  319. package/.opencode/skills/bmad-distillator/resources/compression-rules.md +0 -51
  320. package/.opencode/skills/bmad-distillator/resources/distillate-format-reference.md +0 -227
  321. package/.opencode/skills/bmad-distillator/resources/splitting-strategy.md +0 -78
  322. package/.opencode/skills/bmad-distillator/scripts/analyze_sources.py +0 -300
  323. package/.opencode/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -204
  324. package/.opencode/skills/bmad-document-project/SKILL.md +0 -6
  325. package/.opencode/skills/bmad-document-project/checklist.md +0 -245
  326. package/.opencode/skills/bmad-document-project/documentation-requirements.csv +0 -12
  327. package/.opencode/skills/bmad-document-project/instructions.md +0 -128
  328. package/.opencode/skills/bmad-document-project/templates/deep-dive-template.md +0 -345
  329. package/.opencode/skills/bmad-document-project/templates/index-template.md +0 -169
  330. package/.opencode/skills/bmad-document-project/templates/project-overview-template.md +0 -103
  331. package/.opencode/skills/bmad-document-project/templates/project-scan-report-schema.json +0 -160
  332. package/.opencode/skills/bmad-document-project/templates/source-tree-template.md +0 -135
  333. package/.opencode/skills/bmad-document-project/workflow.md +0 -27
  334. package/.opencode/skills/bmad-document-project/workflows/deep-dive-instructions.md +0 -299
  335. package/.opencode/skills/bmad-document-project/workflows/deep-dive-workflow.md +0 -34
  336. package/.opencode/skills/bmad-document-project/workflows/full-scan-instructions.md +0 -1107
  337. package/.opencode/skills/bmad-document-project/workflows/full-scan-workflow.md +0 -34
  338. package/.opencode/skills/bmad-domain-research/SKILL.md +0 -6
  339. package/.opencode/skills/bmad-domain-research/domain-steps/step-01-init.md +0 -137
  340. package/.opencode/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -229
  341. package/.opencode/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -238
  342. package/.opencode/skills/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -206
  343. package/.opencode/skills/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -234
  344. package/.opencode/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -444
  345. package/.opencode/skills/bmad-domain-research/research.template.md +0 -29
  346. package/.opencode/skills/bmad-domain-research/workflow.md +0 -49
  347. package/.opencode/skills/bmad-edit-prd/SKILL.md +0 -6
  348. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01-discovery.md +0 -242
  349. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +0 -204
  350. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-02-review.md +0 -245
  351. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-03-edit.md +0 -250
  352. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-04-complete.md +0 -165
  353. package/.opencode/skills/bmad-edit-prd/workflow.md +0 -63
  354. package/.opencode/skills/bmad-editorial-review-prose/SKILL.md +0 -86
  355. package/.opencode/skills/bmad-editorial-review-structure/SKILL.md +0 -179
  356. package/.opencode/skills/bmad-generate-project-context/SKILL.md +0 -6
  357. package/.opencode/skills/bmad-generate-project-context/project-context-template.md +0 -21
  358. package/.opencode/skills/bmad-generate-project-context/steps/step-01-discover.md +0 -186
  359. package/.opencode/skills/bmad-generate-project-context/steps/step-02-generate.md +0 -321
  360. package/.opencode/skills/bmad-generate-project-context/steps/step-03-complete.md +0 -278
  361. package/.opencode/skills/bmad-generate-project-context/workflow.md +0 -43
  362. package/.opencode/skills/bmad-help/SKILL.md +0 -73
  363. package/.opencode/skills/bmad-index-docs/SKILL.md +0 -66
  364. package/.opencode/skills/bmad-init/SKILL.md +0 -100
  365. package/.opencode/skills/bmad-init/resources/core-module.yaml +0 -25
  366. package/.opencode/skills/bmad-init/scripts/bmad_init.py +0 -593
  367. package/.opencode/skills/bmad-init/scripts/tests/test_bmad_init.py +0 -329
  368. package/.opencode/skills/bmad-ma-agent-cyber/SKILL.md +0 -49
  369. package/.opencode/skills/bmad-ma-agent-cyber/bmad-skill-manifest.yaml +0 -11
  370. package/.opencode/skills/bmad-ma-agent-devops/SKILL.md +0 -49
  371. package/.opencode/skills/bmad-ma-agent-devops/bmad-skill-manifest.yaml +0 -11
  372. package/.opencode/skills/bmad-ma-agent-mil498/SKILL.md +0 -53
  373. package/.opencode/skills/bmad-ma-agent-mil498/bmad-skill-manifest.yaml +0 -11
  374. package/.opencode/skills/bmad-ma-agent-ml/SKILL.md +0 -59
  375. package/.opencode/skills/bmad-ma-agent-ml/bmad-skill-manifest.yaml +0 -11
  376. package/.opencode/skills/bmad-ma-agent-sre/SKILL.md +0 -49
  377. package/.opencode/skills/bmad-ma-agent-sre/bmad-skill-manifest.yaml +0 -11
  378. package/.opencode/skills/bmad-market-research/SKILL.md +0 -6
  379. package/.opencode/skills/bmad-market-research/research.template.md +0 -29
  380. package/.opencode/skills/bmad-market-research/steps/step-01-init.md +0 -184
  381. package/.opencode/skills/bmad-market-research/steps/step-02-customer-behavior.md +0 -239
  382. package/.opencode/skills/bmad-market-research/steps/step-03-customer-pain-points.md +0 -251
  383. package/.opencode/skills/bmad-market-research/steps/step-04-customer-decisions.md +0 -261
  384. package/.opencode/skills/bmad-market-research/steps/step-05-competitive-analysis.md +0 -173
  385. package/.opencode/skills/bmad-market-research/steps/step-06-research-completion.md +0 -478
  386. package/.opencode/skills/bmad-market-research/workflow.md +0 -49
  387. package/.opencode/skills/bmad-party-mode/SKILL.md +0 -6
  388. package/.opencode/skills/bmad-party-mode/steps/step-01-agent-loading.md +0 -138
  389. package/.opencode/skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +0 -187
  390. package/.opencode/skills/bmad-party-mode/steps/step-03-graceful-exit.md +0 -167
  391. package/.opencode/skills/bmad-party-mode/workflow.md +0 -190
  392. package/.opencode/skills/bmad-product-brief/SKILL.md +0 -87
  393. package/.opencode/skills/bmad-product-brief/agents/artifact-analyzer.md +0 -60
  394. package/.opencode/skills/bmad-product-brief/agents/opportunity-reviewer.md +0 -44
  395. package/.opencode/skills/bmad-product-brief/agents/skeptic-reviewer.md +0 -44
  396. package/.opencode/skills/bmad-product-brief/agents/web-researcher.md +0 -49
  397. package/.opencode/skills/bmad-product-brief/bmad-manifest.json +0 -17
  398. package/.opencode/skills/bmad-product-brief/prompts/contextual-discovery.md +0 -57
  399. package/.opencode/skills/bmad-product-brief/prompts/draft-and-review.md +0 -86
  400. package/.opencode/skills/bmad-product-brief/prompts/finalize.md +0 -75
  401. package/.opencode/skills/bmad-product-brief/prompts/guided-elicitation.md +0 -70
  402. package/.opencode/skills/bmad-product-brief/resources/brief-template.md +0 -60
  403. package/.opencode/skills/bmad-qa-generate-e2e-tests/SKILL.md +0 -6
  404. package/.opencode/skills/bmad-qa-generate-e2e-tests/checklist.md +0 -33
  405. package/.opencode/skills/bmad-qa-generate-e2e-tests/workflow.md +0 -136
  406. package/.opencode/skills/bmad-quick-dev/SKILL.md +0 -6
  407. package/.opencode/skills/bmad-quick-dev/spec-template.md +0 -88
  408. package/.opencode/skills/bmad-quick-dev/step-01-clarify-and-route.md +0 -64
  409. package/.opencode/skills/bmad-quick-dev/step-02-plan.md +0 -35
  410. package/.opencode/skills/bmad-quick-dev/step-03-implement.md +0 -37
  411. package/.opencode/skills/bmad-quick-dev/step-04-review.md +0 -49
  412. package/.opencode/skills/bmad-quick-dev/step-05-present.md +0 -63
  413. package/.opencode/skills/bmad-quick-dev/step-oneshot.md +0 -49
  414. package/.opencode/skills/bmad-quick-dev/workflow.md +0 -79
  415. package/.opencode/skills/bmad-retrospective/SKILL.md +0 -6
  416. package/.opencode/skills/bmad-retrospective/workflow.md +0 -1479
  417. package/.opencode/skills/bmad-review-adversarial-general/SKILL.md +0 -37
  418. package/.opencode/skills/bmad-review-edge-case-hunter/SKILL.md +0 -67
  419. package/.opencode/skills/bmad-shard-doc/SKILL.md +0 -105
  420. package/.opencode/skills/bmad-sprint-planning/SKILL.md +0 -6
  421. package/.opencode/skills/bmad-sprint-planning/checklist.md +0 -33
  422. package/.opencode/skills/bmad-sprint-planning/sprint-status-template.yaml +0 -56
  423. package/.opencode/skills/bmad-sprint-planning/workflow.md +0 -263
  424. package/.opencode/skills/bmad-sprint-status/SKILL.md +0 -6
  425. package/.opencode/skills/bmad-sprint-status/workflow.md +0 -261
  426. package/.opencode/skills/bmad-technical-research/SKILL.md +0 -6
  427. package/.opencode/skills/bmad-technical-research/research.template.md +0 -29
  428. package/.opencode/skills/bmad-technical-research/technical-steps/step-01-init.md +0 -137
  429. package/.opencode/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -239
  430. package/.opencode/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -248
  431. package/.opencode/skills/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -202
  432. package/.opencode/skills/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -233
  433. package/.opencode/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -487
  434. package/.opencode/skills/bmad-technical-research/workflow.md +0 -50
  435. package/.opencode/skills/bmad-validate-prd/SKILL.md +0 -6
  436. package/.opencode/skills/bmad-validate-prd/data/domain-complexity.csv +0 -15
  437. package/.opencode/skills/bmad-validate-prd/data/prd-purpose.md +0 -197
  438. package/.opencode/skills/bmad-validate-prd/data/project-types.csv +0 -11
  439. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -221
  440. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -188
  441. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -206
  442. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -171
  443. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -211
  444. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -225
  445. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -214
  446. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -202
  447. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -240
  448. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -260
  449. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -206
  450. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -261
  451. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -239
  452. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -229
  453. package/.opencode/skills/bmad-validate-prd/workflow.md +0 -62
  454. package/.opencode/skills/cleanup-done/SKILL.md +0 -159
  455. package/.opencode/skills/cmake-best-practices/SKILL.md +0 -64
  456. package/.opencode/skills/cmake-best-practices/examples/cmake.md +0 -59
  457. package/.opencode/skills/code-documentation/SKILL.md +0 -57
  458. package/.opencode/skills/code-documentation/examples/cpp.md +0 -29
  459. package/.opencode/skills/code-documentation/examples/csharp.md +0 -28
  460. package/.opencode/skills/code-documentation/examples/javascript_typescript.md +0 -28
  461. package/.opencode/skills/code-documentation/examples/python.md +0 -57
  462. package/.opencode/skills/code-review/SKILL.md +0 -43
  463. package/.opencode/skills/commit-message/SKILL.md +0 -79
  464. package/.opencode/skills/cpp-best-practices/SKILL.md +0 -234
  465. package/.opencode/skills/cpp-best-practices/examples/modern-idioms.md +0 -189
  466. package/.opencode/skills/cpp-best-practices/examples/naming-and-organization.md +0 -102
  467. package/.opencode/skills/cpp-concurrency-safety/SKILL.md +0 -60
  468. package/.opencode/skills/cpp-concurrency-safety/examples/concurrency.md +0 -73
  469. package/.opencode/skills/cpp-const-correctness/SKILL.md +0 -63
  470. package/.opencode/skills/cpp-const-correctness/examples/const_correctness.md +0 -54
  471. package/.opencode/skills/cpp-memory-handling/SKILL.md +0 -42
  472. package/.opencode/skills/cpp-memory-handling/examples/modern-cpp.md +0 -49
  473. package/.opencode/skills/cpp-memory-handling/examples/smart-pointers.md +0 -46
  474. package/.opencode/skills/cpp-modern-composition/SKILL.md +0 -64
  475. package/.opencode/skills/cpp-modern-composition/examples/composition.md +0 -51
  476. package/.opencode/skills/cpp-robust-interfaces/SKILL.md +0 -55
  477. package/.opencode/skills/cpp-robust-interfaces/examples/interfaces.md +0 -56
  478. package/.opencode/skills/create-bug-story/SKILL.md +0 -263
  479. package/.opencode/skills/create-hardened-docker-skill/SKILL.md +0 -637
  480. package/.opencode/skills/create-hardened-docker-skill/scripts/create-all.sh +0 -489
  481. package/.opencode/skills/csharp-best-practices/SKILL.md +0 -278
  482. package/.opencode/skills/cyber-generate-certs/.gitkeep +0 -0
  483. package/.opencode/skills/cyber-generate-certs/SKILL.md +0 -27
  484. package/.opencode/skills/cyber-generate-certs/bmad-skill-manifest.yaml +0 -3
  485. package/.opencode/skills/cyber-immunity-estimation/.gitkeep +0 -0
  486. package/.opencode/skills/cyber-immunity-estimation/SKILL.md +0 -29
  487. package/.opencode/skills/cyber-immunity-estimation/bmad-skill-manifest.yaml +0 -3
  488. package/.opencode/skills/cyber-security-audit/.gitkeep +0 -0
  489. package/.opencode/skills/cyber-security-audit/SKILL.md +0 -27
  490. package/.opencode/skills/cyber-security-audit/bmad-skill-manifest.yaml +0 -3
  491. package/.opencode/skills/cyber-vault-secrets/.gitkeep +0 -0
  492. package/.opencode/skills/cyber-vault-secrets/SKILL.md +0 -28
  493. package/.opencode/skills/cyber-vault-secrets/bmad-skill-manifest.yaml +0 -3
  494. package/.opencode/skills/cyber-verify-docker-users/.gitkeep +0 -0
  495. package/.opencode/skills/cyber-verify-docker-users/SKILL.md +0 -23
  496. package/.opencode/skills/cyber-verify-docker-users/bmad-skill-manifest.yaml +0 -3
  497. package/.opencode/skills/cyber-verify-image-signature/.gitkeep +0 -0
  498. package/.opencode/skills/cyber-verify-image-signature/SKILL.md +0 -22
  499. package/.opencode/skills/cyber-verify-image-signature/bmad-skill-manifest.yaml +0 -3
  500. package/.opencode/skills/cyber-vulnerability-scan/.gitkeep +0 -0
  501. package/.opencode/skills/cyber-vulnerability-scan/SKILL.md +0 -28
  502. package/.opencode/skills/cyber-vulnerability-scan/bmad-skill-manifest.yaml +0 -3
  503. package/.opencode/skills/devops-configure-infrastructure/.gitkeep +0 -0
  504. package/.opencode/skills/devops-configure-infrastructure/SKILL.md +0 -27
  505. package/.opencode/skills/devops-configure-infrastructure/bmad-skill-manifest.yaml +0 -3
  506. package/.opencode/skills/devops-disconnected-deployment/.gitkeep +0 -0
  507. package/.opencode/skills/devops-disconnected-deployment/SKILL.md +0 -27
  508. package/.opencode/skills/devops-disconnected-deployment/bmad-skill-manifest.yaml +0 -3
  509. package/.opencode/skills/devops-docker-compose-setup/.gitkeep +0 -0
  510. package/.opencode/skills/devops-docker-compose-setup/SKILL.md +0 -26
  511. package/.opencode/skills/devops-docker-compose-setup/bmad-skill-manifest.yaml +0 -3
  512. package/.opencode/skills/devops-manage-helm/.gitkeep +0 -0
  513. package/.opencode/skills/devops-manage-helm/SKILL.md +0 -28
  514. package/.opencode/skills/devops-manage-helm/bmad-skill-manifest.yaml +0 -3
  515. package/.opencode/skills/devops-sign-docker-image/.gitkeep +0 -0
  516. package/.opencode/skills/devops-sign-docker-image/SKILL.md +0 -24
  517. package/.opencode/skills/devops-sign-docker-image/bmad-skill-manifest.yaml +0 -3
  518. package/.opencode/skills/docker-hardening-verification/SKILL.md +0 -28
  519. package/.opencode/skills/docker-hardening-verification/scripts/verify-hardening.sh +0 -39
  520. package/.opencode/skills/docker-image-signing/SKILL.md +0 -28
  521. package/.opencode/skills/docker-image-signing/scripts/sign-image.sh +0 -33
  522. package/.opencode/skills/document-revision-history/SKILL.md +0 -104
  523. package/.opencode/skills/generate-backlog/.gitkeep +0 -0
  524. package/.opencode/skills/generate-backlog/SKILL.md +0 -183
  525. package/.opencode/skills/git-workflow-skill/SKILL.md +0 -194
  526. package/.opencode/skills/git-workflow-skill/hooks/commit-msg +0 -61
  527. package/.opencode/skills/git-workflow-skill/hooks/pre-commit +0 -38
  528. package/.opencode/skills/git-workflow-skill/hooks/prepare-commit-msg +0 -56
  529. package/.opencode/skills/git-workflow-skill/scripts/finish-feature.sh +0 -192
  530. package/.opencode/skills/git-workflow-skill/scripts/install-hooks.sh +0 -55
  531. package/.opencode/skills/git-workflow-skill/scripts/start-feature.sh +0 -110
  532. package/.opencode/skills/git-workflow-skill/scripts/validate-workflow.sh +0 -229
  533. package/.opencode/skills/js-ts-dependency-mgmt/SKILL.md +0 -49
  534. package/.opencode/skills/js-ts-dependency-mgmt/examples/dependency_mgmt.md +0 -60
  535. package/.opencode/skills/js-ts-security-skill/SKILL.md +0 -64
  536. package/.opencode/skills/js-ts-security-skill/scripts/verify-security.sh +0 -136
  537. package/.opencode/skills/logging-best-practices/SKILL.md +0 -50
  538. package/.opencode/skills/logging-best-practices/examples/cpp.md +0 -36
  539. package/.opencode/skills/logging-best-practices/examples/csharp.md +0 -49
  540. package/.opencode/skills/logging-best-practices/examples/javascript.md +0 -77
  541. package/.opencode/skills/logging-best-practices/examples/python.md +0 -57
  542. package/.opencode/skills/logging-best-practices/references/logging-standards.md +0 -29
  543. package/.opencode/skills/mil498-ocd/.gitkeep +0 -0
  544. package/.opencode/skills/mil498-ocd/SKILL.md +0 -30
  545. package/.opencode/skills/mil498-ocd/bmad-skill-manifest.yaml +0 -5
  546. package/.opencode/skills/mil498-ocd/prompts/01-discover-project-artifacts.md +0 -26
  547. package/.opencode/skills/mil498-ocd/prompts/02-load-template.md +0 -10
  548. package/.opencode/skills/mil498-ocd/prompts/03-generate-document.md +0 -90
  549. package/.opencode/skills/mil498-ocd/prompts/04-validate.md +0 -14
  550. package/.opencode/skills/mil498-ocd/prompts/05-review.md +0 -15
  551. package/.opencode/skills/mil498-ocd/prompts/06-save.md +0 -15
  552. package/.opencode/skills/mil498-sdd/.gitkeep +0 -0
  553. package/.opencode/skills/mil498-sdd/SKILL.md +0 -30
  554. package/.opencode/skills/mil498-sdd/bmad-skill-manifest.yaml +0 -5
  555. package/.opencode/skills/mil498-sdd/prompts/01-discover-project-artifacts.md +0 -50
  556. package/.opencode/skills/mil498-sdd/prompts/02-load-template.md +0 -10
  557. package/.opencode/skills/mil498-sdd/prompts/03-generate-document.md +0 -98
  558. package/.opencode/skills/mil498-sdd/prompts/04-validate.md +0 -16
  559. package/.opencode/skills/mil498-sdd/prompts/05-review.md +0 -15
  560. package/.opencode/skills/mil498-sdd/prompts/06-save.md +0 -19
  561. package/.opencode/skills/mil498-sdd/template.md +0 -163
  562. package/.opencode/skills/mil498-sdp/.gitkeep +0 -0
  563. package/.opencode/skills/mil498-sdp/SKILL.md +0 -30
  564. package/.opencode/skills/mil498-sdp/bmad-skill-manifest.yaml +0 -5
  565. package/.opencode/skills/mil498-sdp/prompts/01-discover-project-artifacts.md +0 -32
  566. package/.opencode/skills/mil498-sdp/prompts/02-load-template.md +0 -10
  567. package/.opencode/skills/mil498-sdp/prompts/03-generate-document.md +0 -187
  568. package/.opencode/skills/mil498-sdp/prompts/04-validate.md +0 -13
  569. package/.opencode/skills/mil498-sdp/prompts/05-review.md +0 -15
  570. package/.opencode/skills/mil498-sdp/prompts/06-save.md +0 -14
  571. package/.opencode/skills/mil498-srs/.gitkeep +0 -0
  572. package/.opencode/skills/mil498-srs/SKILL.md +0 -30
  573. package/.opencode/skills/mil498-srs/bmad-skill-manifest.yaml +0 -5
  574. package/.opencode/skills/mil498-srs/prompts/01-discover-project-artifacts.md +0 -42
  575. package/.opencode/skills/mil498-srs/prompts/02-load-template.md +0 -10
  576. package/.opencode/skills/mil498-srs/prompts/03-generate-document.md +0 -100
  577. package/.opencode/skills/mil498-srs/prompts/04-validate.md +0 -16
  578. package/.opencode/skills/mil498-srs/prompts/05-review.md +0 -15
  579. package/.opencode/skills/mil498-srs/prompts/06-save.md +0 -18
  580. package/.opencode/skills/mil498-ssdd/.gitkeep +0 -0
  581. package/.opencode/skills/mil498-ssdd/SKILL.md +0 -32
  582. package/.opencode/skills/mil498-ssdd/bmad-skill-manifest.yaml +0 -5
  583. package/.opencode/skills/mil498-ssdd/prompts/01-discover-project-artifacts.md +0 -32
  584. package/.opencode/skills/mil498-ssdd/prompts/02-load-template.md +0 -10
  585. package/.opencode/skills/mil498-ssdd/prompts/03-csci-discovery-interview.md +0 -43
  586. package/.opencode/skills/mil498-ssdd/prompts/04-generate-document.md +0 -96
  587. package/.opencode/skills/mil498-ssdd/prompts/05-validate.md +0 -14
  588. package/.opencode/skills/mil498-ssdd/prompts/06-review.md +0 -16
  589. package/.opencode/skills/mil498-ssdd/prompts/07-save.md +0 -16
  590. package/.opencode/skills/mil498-sss/.gitkeep +0 -0
  591. package/.opencode/skills/mil498-sss/SKILL.md +0 -31
  592. package/.opencode/skills/mil498-sss/bmad-skill-manifest.yaml +0 -5
  593. package/.opencode/skills/mil498-sss/prompts/01-discover-project-artifacts.md +0 -31
  594. package/.opencode/skills/mil498-sss/prompts/02-load-template.md +0 -10
  595. package/.opencode/skills/mil498-sss/prompts/03-generate-document.md +0 -108
  596. package/.opencode/skills/mil498-sss/prompts/04-validate.md +0 -16
  597. package/.opencode/skills/mil498-sss/prompts/05-review.md +0 -15
  598. package/.opencode/skills/mil498-sss/prompts/06-save.md +0 -15
  599. package/.opencode/skills/mil498-std/.gitkeep +0 -0
  600. package/.opencode/skills/mil498-std/SKILL.md +0 -30
  601. package/.opencode/skills/mil498-std/bmad-skill-manifest.yaml +0 -5
  602. package/.opencode/skills/mil498-std/prompts/01-discover-project-artifacts.md +0 -42
  603. package/.opencode/skills/mil498-std/prompts/02-load-template.md +0 -10
  604. package/.opencode/skills/mil498-std/prompts/03-generate-document.md +0 -117
  605. package/.opencode/skills/mil498-std/prompts/04-validate.md +0 -15
  606. package/.opencode/skills/mil498-std/prompts/05-review.md +0 -15
  607. package/.opencode/skills/mil498-std/prompts/06-save.md +0 -15
  608. package/.opencode/skills/ml-advise/.gitkeep +0 -0
  609. package/.opencode/skills/ml-advise/SKILL.md +0 -76
  610. package/.opencode/skills/ml-advise/bmad-skill-manifest.yaml +0 -3
  611. package/.opencode/skills/ml-advise/skill.json +0 -7
  612. package/.opencode/skills/ml-analysis/.gitkeep +0 -0
  613. package/.opencode/skills/ml-analysis/SKILL.md +0 -60
  614. package/.opencode/skills/ml-analysis/bmad-skill-manifest.yaml +0 -3
  615. package/.opencode/skills/ml-analysis/skill.json +0 -7
  616. package/.opencode/skills/ml-architecture/.gitkeep +0 -0
  617. package/.opencode/skills/ml-architecture/SKILL.md +0 -55
  618. package/.opencode/skills/ml-architecture/bmad-skill-manifest.yaml +0 -3
  619. package/.opencode/skills/ml-architecture/skill.json +0 -7
  620. package/.opencode/skills/ml-detailed-design/.gitkeep +0 -0
  621. package/.opencode/skills/ml-detailed-design/SKILL.md +0 -67
  622. package/.opencode/skills/ml-detailed-design/bmad-skill-manifest.yaml +0 -3
  623. package/.opencode/skills/ml-detailed-design/skill.json +0 -7
  624. package/.opencode/skills/ml-eda/.gitkeep +0 -0
  625. package/.opencode/skills/ml-eda/SKILL.md +0 -56
  626. package/.opencode/skills/ml-eda/bmad-skill-manifest.yaml +0 -3
  627. package/.opencode/skills/ml-eda/scripts/baseline_classifier.py +0 -522
  628. package/.opencode/skills/ml-eda/scripts/class_weights_calculator.py +0 -295
  629. package/.opencode/skills/ml-eda/scripts/clustering_explorer.py +0 -383
  630. package/.opencode/skills/ml-eda/scripts/eda_analyzer.py +0 -654
  631. package/.opencode/skills/ml-eda/skill.json +0 -7
  632. package/.opencode/skills/ml-experiment/.gitkeep +0 -0
  633. package/.opencode/skills/ml-experiment/SKILL.md +0 -74
  634. package/.opencode/skills/ml-experiment/assets/advanced_trainer_configs.py +0 -430
  635. package/.opencode/skills/ml-experiment/assets/quick_trainer_setup.py +0 -233
  636. package/.opencode/skills/ml-experiment/assets/template_datamodule.py +0 -219
  637. package/.opencode/skills/ml-experiment/assets/template_gnn_module.py +0 -341
  638. package/.opencode/skills/ml-experiment/assets/template_lightning_module.py +0 -158
  639. package/.opencode/skills/ml-experiment/bmad-skill-manifest.yaml +0 -3
  640. package/.opencode/skills/ml-experiment/skill.json +0 -7
  641. package/.opencode/skills/ml-hparam/.gitkeep +0 -0
  642. package/.opencode/skills/ml-hparam/SKILL.md +0 -81
  643. package/.opencode/skills/ml-hparam/bmad-skill-manifest.yaml +0 -3
  644. package/.opencode/skills/ml-hparam/skill.json +0 -7
  645. package/.opencode/skills/ml-ideation/.gitkeep +0 -0
  646. package/.opencode/skills/ml-ideation/SKILL.md +0 -50
  647. package/.opencode/skills/ml-ideation/bmad-skill-manifest.yaml +0 -3
  648. package/.opencode/skills/ml-ideation/scripts/validate_ml_prd.py +0 -287
  649. package/.opencode/skills/ml-ideation/skill.json +0 -7
  650. package/.opencode/skills/ml-infra/.gitkeep +0 -0
  651. package/.opencode/skills/ml-infra/SKILL.md +0 -58
  652. package/.opencode/skills/ml-infra/bmad-skill-manifest.yaml +0 -3
  653. package/.opencode/skills/ml-infra/skill.json +0 -7
  654. package/.opencode/skills/ml-retrospective/.gitkeep +0 -0
  655. package/.opencode/skills/ml-retrospective/SKILL.md +0 -63
  656. package/.opencode/skills/ml-retrospective/bmad-skill-manifest.yaml +0 -3
  657. package/.opencode/skills/ml-retrospective/skill.json +0 -7
  658. package/.opencode/skills/ml-revision/.gitkeep +0 -0
  659. package/.opencode/skills/ml-revision/SKILL.md +0 -82
  660. package/.opencode/skills/ml-revision/bmad-skill-manifest.yaml +0 -3
  661. package/.opencode/skills/ml-revision/skill.json +0 -7
  662. package/.opencode/skills/ml-techspec/.gitkeep +0 -0
  663. package/.opencode/skills/ml-techspec/SKILL.md +0 -80
  664. package/.opencode/skills/ml-techspec/bmad-skill-manifest.yaml +0 -3
  665. package/.opencode/skills/ml-techspec/skill.json +0 -7
  666. package/.opencode/skills/modify-sprint/.gitkeep +0 -0
  667. package/.opencode/skills/modify-sprint/SKILL.md +0 -322
  668. package/.opencode/skills/modify-sprint/bmad-skill-manifest.yaml +0 -3
  669. package/.opencode/skills/open-presentation/SKILL.md +0 -35
  670. package/.opencode/skills/opentelemetry-best-practices/SKILL.md +0 -34
  671. package/.opencode/skills/opentelemetry-best-practices/examples/go.md +0 -32
  672. package/.opencode/skills/opentelemetry-best-practices/examples/javascript.md +0 -58
  673. package/.opencode/skills/opentelemetry-best-practices/examples/python.md +0 -37
  674. package/.opencode/skills/opentelemetry-best-practices/references/otel-standards.md +0 -37
  675. package/.opencode/skills/prioritize-backlog/.gitkeep +0 -0
  676. package/.opencode/skills/prioritize-backlog/SKILL.md +0 -195
  677. package/.opencode/skills/project-context-expansion/.gitkeep +0 -0
  678. package/.opencode/skills/project-context-expansion/SKILL.md +0 -238
  679. package/.opencode/skills/project-context-expansion/bmad-skill-manifest.yaml +0 -3
  680. package/.opencode/skills/python-best-practices/SKILL.md +0 -385
  681. package/.opencode/skills/python-dependency-mgmt/SKILL.md +0 -42
  682. package/.opencode/skills/python-dependency-mgmt/examples/dependency_mgmt.md +0 -67
  683. package/.opencode/skills/python-security-skill/SKILL.md +0 -56
  684. package/.opencode/skills/python-security-skill/examples/security.md +0 -56
  685. package/.opencode/skills/remove-from-sprint/.gitkeep +0 -0
  686. package/.opencode/skills/remove-from-sprint/SKILL.md +0 -163
  687. package/.opencode/skills/self-signed-cert/SKILL.md +0 -42
  688. package/.opencode/skills/self-signed-cert/scripts/generate-cert.ps1 +0 -45
  689. package/.opencode/skills/self-signed-cert/scripts/generate-cert.sh +0 -43
  690. package/.opencode/skills/skill-creator/SKILL.md +0 -196
  691. package/.opencode/skills/skill-creator/references/output-patterns.md +0 -82
  692. package/.opencode/skills/skill-creator/references/workflows.md +0 -28
  693. package/.opencode/skills/skill-creator/scripts/init_skill.py +0 -208
  694. package/.opencode/skills/skill-creator/scripts/package_skill.py +0 -99
  695. package/.opencode/skills/skill-creator/scripts/quick_validate.py +0 -113
  696. package/.opencode/skills/sprint-status-view/.gitkeep +0 -0
  697. package/.opencode/skills/sprint-status-view/SKILL.md +0 -263
  698. package/.opencode/skills/sprint-status-view/bmad-skill-manifest.yaml +0 -3
  699. package/.opencode/skills/sre-check-deployment-status/.gitkeep +0 -0
  700. package/.opencode/skills/sre-check-deployment-status/SKILL.md +0 -32
  701. package/.opencode/skills/sre-check-deployment-status/bmad-skill-manifest.yaml +0 -3
  702. package/.opencode/skills/sre-check-secrets/.gitkeep +0 -0
  703. package/.opencode/skills/sre-check-secrets/SKILL.md +0 -23
  704. package/.opencode/skills/sre-check-secrets/bmad-skill-manifest.yaml +0 -3
  705. package/.opencode/skills/sre-check-system-status/.gitkeep +0 -0
  706. package/.opencode/skills/sre-check-system-status/SKILL.md +0 -27
  707. package/.opencode/skills/sre-check-system-status/bmad-skill-manifest.yaml +0 -3
  708. package/.opencode/skills/sre-day-2-ops/.gitkeep +0 -0
  709. package/.opencode/skills/sre-day-2-ops/SKILL.md +0 -26
  710. package/.opencode/skills/sre-day-2-ops/bmad-skill-manifest.yaml +0 -3
  711. package/.opencode/skills/sre-deployment-strategies/.gitkeep +0 -0
  712. package/.opencode/skills/sre-deployment-strategies/SKILL.md +0 -28
  713. package/.opencode/skills/sre-deployment-strategies/bmad-skill-manifest.yaml +0 -3
  714. package/.opencode/skills/sre-fix-deployments/.gitkeep +0 -0
  715. package/.opencode/skills/sre-fix-deployments/SKILL.md +0 -25
  716. package/.opencode/skills/sre-fix-deployments/bmad-skill-manifest.yaml +0 -3
  717. package/.opencode/skills/sre-gitops-status/.gitkeep +0 -0
  718. package/.opencode/skills/sre-gitops-status/SKILL.md +0 -25
  719. package/.opencode/skills/sre-gitops-status/bmad-skill-manifest.yaml +0 -3
  720. package/.opencode/skills/story-status-lookup/SKILL.md +0 -78
  721. package/.opencode/skills/test-accompanied-development/SKILL.md +0 -50
  722. package/.opencode/skills/test-generator/SKILL.md +0 -65
  723. package/.opencode/skills/vercel-react-best-practices/SKILL.md +0 -109
  724. package/.opencode/skills/verify-hardened-docker-skill/SKILL.md +0 -442
  725. package/.opencode/skills/verify-hardened-docker-skill/scripts/verify-docker-hardening.sh +0 -439
  726. package/.roo/rules/00-ma-agents.md +0 -13
  727. package/.roo/skills/.ma-agents.json +0 -241
  728. package/.roo/skills/MANIFEST.yaml +0 -254
  729. package/.roo/skills/ai-audit-trail/SKILL.md +0 -23
  730. package/.roo/skills/auto-bug-detection/SKILL.md +0 -169
  731. package/.roo/skills/cmake-best-practices/SKILL.md +0 -64
  732. package/.roo/skills/cmake-best-practices/examples/cmake.md +0 -59
  733. package/.roo/skills/code-documentation/SKILL.md +0 -57
  734. package/.roo/skills/code-documentation/examples/cpp.md +0 -29
  735. package/.roo/skills/code-documentation/examples/csharp.md +0 -28
  736. package/.roo/skills/code-documentation/examples/javascript_typescript.md +0 -28
  737. package/.roo/skills/code-documentation/examples/python.md +0 -57
  738. package/.roo/skills/code-review/SKILL.md +0 -43
  739. package/.roo/skills/commit-message/SKILL.md +0 -79
  740. package/.roo/skills/cpp-best-practices/SKILL.md +0 -234
  741. package/.roo/skills/cpp-best-practices/examples/modern-idioms.md +0 -189
  742. package/.roo/skills/cpp-best-practices/examples/naming-and-organization.md +0 -102
  743. package/.roo/skills/cpp-concurrency-safety/SKILL.md +0 -60
  744. package/.roo/skills/cpp-concurrency-safety/examples/concurrency.md +0 -73
  745. package/.roo/skills/cpp-const-correctness/SKILL.md +0 -63
  746. package/.roo/skills/cpp-const-correctness/examples/const_correctness.md +0 -54
  747. package/.roo/skills/cpp-memory-handling/SKILL.md +0 -42
  748. package/.roo/skills/cpp-memory-handling/examples/modern-cpp.md +0 -49
  749. package/.roo/skills/cpp-memory-handling/examples/smart-pointers.md +0 -46
  750. package/.roo/skills/cpp-modern-composition/SKILL.md +0 -64
  751. package/.roo/skills/cpp-modern-composition/examples/composition.md +0 -51
  752. package/.roo/skills/cpp-robust-interfaces/SKILL.md +0 -55
  753. package/.roo/skills/cpp-robust-interfaces/examples/interfaces.md +0 -56
  754. package/.roo/skills/create-hardened-docker-skill/SKILL.md +0 -637
  755. package/.roo/skills/create-hardened-docker-skill/scripts/create-all.sh +0 -489
  756. package/.roo/skills/csharp-best-practices/SKILL.md +0 -278
  757. package/.roo/skills/docker-hardening-verification/SKILL.md +0 -28
  758. package/.roo/skills/docker-hardening-verification/scripts/verify-hardening.sh +0 -39
  759. package/.roo/skills/docker-image-signing/SKILL.md +0 -28
  760. package/.roo/skills/docker-image-signing/scripts/sign-image.sh +0 -33
  761. package/.roo/skills/document-revision-history/SKILL.md +0 -104
  762. package/.roo/skills/git-workflow-skill/SKILL.md +0 -194
  763. package/.roo/skills/git-workflow-skill/hooks/commit-msg +0 -61
  764. package/.roo/skills/git-workflow-skill/hooks/pre-commit +0 -38
  765. package/.roo/skills/git-workflow-skill/hooks/prepare-commit-msg +0 -56
  766. package/.roo/skills/git-workflow-skill/scripts/finish-feature.sh +0 -192
  767. package/.roo/skills/git-workflow-skill/scripts/install-hooks.sh +0 -55
  768. package/.roo/skills/git-workflow-skill/scripts/start-feature.sh +0 -110
  769. package/.roo/skills/git-workflow-skill/scripts/validate-workflow.sh +0 -229
  770. package/.roo/skills/js-ts-dependency-mgmt/SKILL.md +0 -49
  771. package/.roo/skills/js-ts-dependency-mgmt/examples/dependency_mgmt.md +0 -60
  772. package/.roo/skills/js-ts-security-skill/SKILL.md +0 -64
  773. package/.roo/skills/js-ts-security-skill/scripts/verify-security.sh +0 -136
  774. package/.roo/skills/logging-best-practices/SKILL.md +0 -50
  775. package/.roo/skills/logging-best-practices/examples/cpp.md +0 -36
  776. package/.roo/skills/logging-best-practices/examples/csharp.md +0 -49
  777. package/.roo/skills/logging-best-practices/examples/javascript.md +0 -77
  778. package/.roo/skills/logging-best-practices/examples/python.md +0 -57
  779. package/.roo/skills/logging-best-practices/references/logging-standards.md +0 -29
  780. package/.roo/skills/open-presentation/SKILL.md +0 -35
  781. package/.roo/skills/opentelemetry-best-practices/SKILL.md +0 -34
  782. package/.roo/skills/opentelemetry-best-practices/examples/go.md +0 -32
  783. package/.roo/skills/opentelemetry-best-practices/examples/javascript.md +0 -58
  784. package/.roo/skills/opentelemetry-best-practices/examples/python.md +0 -37
  785. package/.roo/skills/opentelemetry-best-practices/references/otel-standards.md +0 -37
  786. package/.roo/skills/python-best-practices/SKILL.md +0 -385
  787. package/.roo/skills/python-dependency-mgmt/SKILL.md +0 -42
  788. package/.roo/skills/python-dependency-mgmt/examples/dependency_mgmt.md +0 -67
  789. package/.roo/skills/python-security-skill/SKILL.md +0 -56
  790. package/.roo/skills/python-security-skill/examples/security.md +0 -56
  791. package/.roo/skills/self-signed-cert/SKILL.md +0 -42
  792. package/.roo/skills/self-signed-cert/scripts/generate-cert.ps1 +0 -45
  793. package/.roo/skills/self-signed-cert/scripts/generate-cert.sh +0 -43
  794. package/.roo/skills/skill-creator/SKILL.md +0 -196
  795. package/.roo/skills/skill-creator/references/output-patterns.md +0 -82
  796. package/.roo/skills/skill-creator/references/workflows.md +0 -28
  797. package/.roo/skills/skill-creator/scripts/init_skill.py +0 -208
  798. package/.roo/skills/skill-creator/scripts/package_skill.py +0 -99
  799. package/.roo/skills/skill-creator/scripts/quick_validate.py +0 -113
  800. package/.roo/skills/story-status-lookup/SKILL.md +0 -78
  801. package/.roo/skills/test-accompanied-development/SKILL.md +0 -50
  802. package/.roo/skills/test-generator/SKILL.md +0 -65
  803. package/.roo/skills/vercel-react-best-practices/SKILL.md +0 -109
  804. package/.roo/skills/verify-hardened-docker-skill/SKILL.md +0 -442
  805. package/.roo/skills/verify-hardened-docker-skill/scripts/verify-docker-hardening.sh +0 -439
  806. package/opencode.json +0 -5
  807. /package/{.opencode/skills/add-sprint → lib/bmad-extension/skills/bmad-dev-story}/.gitkeep +0 -0
  808. /package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/SKILL.md +0 -0
  809. /package/{.opencode/skills/add-to-sprint → lib/bmad-extension/skills/bmad-sprint-planning}/.gitkeep +0 -0
  810. /package/{.opencode/skills/bmad-ma-agent-cyber → lib/bmad-extension/skills/bmad-sprint-status}/.gitkeep +0 -0
  811. /package/{.opencode/skills/bmad-ma-agent-devops → lib/bmad-extension/skills/cleanup-done}/.gitkeep +0 -0
  812. /package/{.opencode → lib/bmad-extension}/skills/cleanup-done/bmad-skill-manifest.yaml +0 -0
  813. /package/{.opencode/skills/bmad-ma-agent-mil498 → lib/bmad-extension/skills/close-sprint}/.gitkeep +0 -0
  814. /package/{.opencode/skills/bmad-ma-agent-ml → lib/bmad-extension/skills/generate-backlog}/.gitkeep +0 -0
  815. /package/{.opencode → lib/bmad-extension}/skills/generate-backlog/bmad-skill-manifest.yaml +0 -0
  816. /package/{.opencode/skills/bmad-ma-agent-sre → lib/bmad-extension/skills/mil498-requirement-quality}/.gitkeep +0 -0
  817. /package/{.opencode/skills/cleanup-done → lib/bmad-extension/skills/prioritize-backlog}/.gitkeep +0 -0
  818. /package/{.opencode → lib/bmad-extension}/skills/prioritize-backlog/bmad-skill-manifest.yaml +0 -0
  819. /package/{.opencode/skills/create-bug-story → lib/bmad-extension/skills/remove-from-sprint}/.gitkeep +0 -0
  820. /package/{.opencode → lib/bmad-extension}/skills/remove-from-sprint/bmad-skill-manifest.yaml +0 -0
  821. /package/{.opencode/skills/mil498-ocd/template.md → mil498/OCD.md} +0 -0
  822. /package/{.opencode/skills/mil498-sdp/template.md → mil498/SDP.md} +0 -0
  823. /package/{.opencode/skills/mil498-srs/template.md → mil498/SRS.md} +0 -0
  824. /package/{.opencode/skills/mil498-ssdd/template.md → mil498/SSDD.md} +0 -0
  825. /package/{.opencode/skills/mil498-sss/template.md → mil498/SSS.md} +0 -0
  826. /package/{.opencode/skills/mil498-std/template.md → mil498/STD.md} +0 -0
@@ -0,0 +1,1619 @@
1
+ ---
2
+ stepsCompleted: ['step-01-init', 'step-02-context', 'step-03-starter', 'step-04-decisions', 'step-05-patterns', 'step-06-structure', 'step-07-validation', 'step-08-complete']
3
+ phase2StepsCompleted: ['step-02-context', 'step-04-decisions', 'step-05-patterns', 'step-06-structure', 'step-07-validation', 'step-08-complete']
4
+ phase2CompletedAt: '2026-03-11'
5
+ phase2cStepsCompleted: ['step-02-context', 'step-04-decisions', 'step-06-structure', 'step-07-validation', 'step-08-complete']
6
+ phase2cCompletedAt: '2026-03-26'
7
+ phase2bEditHistory:
8
+ - date: '2026-04-03'
9
+ changes: 'Added P2-11: Unified Sprint-Status File Architecture — single sprint-status.yaml replaces 3-file model (backlog.yaml + sprints/sprint-N.yaml + sprint-status.yaml). Movement semantics, atomic operations, close-sprint lifecycle, done archival, Jira adapter pattern. Updated P2-5 to include close-sprint and remove-from-sprint workflows (6 extension workflows, up from 4). Updated extension module structure trees, skill counts (44, up from 42), project structure, FR coverage tables, and validation sections. Added prioritize-backlog to skill integration map (13 skills). Fixed FR count to 141. Fixed sprint-status.yaml canonical path to implementation-artifacts/. Marked P2-3 as superseded by P2-9.'
10
+ - date: '2026-03-26'
11
+ changes: 'Revised P2-6: Explicit CLI parameter passing replaces silent install (FR123-FR127). Added P2-9: BMAD 6.2.0 Migration — agents as skill folders, 34 workflows as SKILL.md packages, module.yaml with code field, --custom-content deployment, .customize.yaml for 8 built-in agents only. Added P2-10: Multi-repo project layout — config-driven path resolution, project-layout.yaml cross-reference. Verified architecture against CIS module source and BMAD 6.2.0 customize docs. Updated project structure tree, implementation sequence, cross-component dependencies. Moved F8 Dashboard to Phase 3. Added wds to bmad-cache, bumped bmad-method pin to 6.2.0.'
12
+ - date: '2026-03-19'
13
+ changes: 'Added Decision P2-7: Project Context Auto-Generation (FR79-FR86, NFR22-NFR25). Two-layer design: generator returns content, pipeline writes. Platform paths sourced from full manifest. Critical_actions update for 12 BMM+master agents; CIS agents explicitly excluded. NFR25 adds template version comment for upgrade detection.'
14
+ - date: '2026-03-15'
15
+ changes: 'Added Decision P2-6: Bundled BMAD Installation. Added bmad-cache bundling architecture, bmad-method as npm dependency. Updated project structure, patterns, and validation.'
16
+ - date: '2026-03-15'
17
+ changes: 'Simplified P2-6: Removed --offline flag (bundled is the only mode), removed standalone binary option, removed Option B (vendored copy), renumbered Epic 13 to Epic 5. Swept all stale references.'
18
+ - date: '2026-03-15'
19
+ changes: 'Fixed stale counts in Project Context Analysis: FR count 50→76 (Phase 1+2 minus deleted FR77-FR78), NFR count 15→21 (original 15 + Phase 2 NFR16-NFR21).'
20
+ inputDocuments: ['_bmad-output/planning-artifacts/prd.md', 'docs/index.md', 'docs/project-overview.md', 'docs/architecture.md', 'docs/source-tree-analysis.md', 'docs/development-guide.md', 'README.md']
21
+ workflowType: 'architecture'
22
+ status: 'complete'
23
+ completedAt: '2026-03-07'
24
+ project_name: 'agents'
25
+ user_name: 'Alon'
26
+ date: '2026-03-05'
27
+ ---
28
+
29
+ # Architecture Decision Document
30
+
31
+ _This document builds collaboratively through step-by-step discovery. Sections are appended as we work through each architectural decision together._
32
+
33
+ ## Project Context Analysis
34
+
35
+ ### Requirements Overview
36
+
37
+ **Functional Requirements:**
38
+ 141 FRs across 14 capability areas (Phase 1: 50 FRs across 8 areas + Phase 2: 91 FRs across 6 areas, minus FR77-FR78 deleted). The architecture must support: (1) a content transformation pipeline that translates skills into agent-native formats, (2) a BMAD lifecycle management subsystem, (3) MIL-STD-498 document generation workflows delivered via BMAD, (4) manifest-based version tracking across multi-agent installs, (5) skill authoring and governance capabilities, and (6) unified sprint-status management with movement semantics and tracking-system adapter pattern.
39
+
40
+ **Non-Functional Requirements:**
41
+ 21 NFRs across 6 categories driving architectural decisions (original 15 + Phase 2 NFR16-NFR21):
42
+ - **Security** — no data exfiltration, inspectable content, offline operation (NFR1-4)
43
+ - **Integration reliability** — additive-only installs, atomic manifest operations, strict pipeline ordering (NFR5-8)
44
+ - **Portability** — cross-platform identical results, write-once skills, extensible agent targets (NFR9-12)
45
+ - **Maintainability** — configuration-driven extensibility for agents and skills, backward compatibility (NFR13-15)
46
+
47
+ **Scale & Complexity:**
48
+ - Primary domain: CLI tool / build-time packaging pipeline
49
+ - Complexity level: Medium-High
50
+ - Estimated architectural components: 6 (CLI Router, Installer Engine, Agent Registry, BMAD Integration, Skill Library, Manifest Manager)
51
+
52
+ ### Technical Constraints & Dependencies
53
+
54
+ - Node.js runtime (LTS versions) — no native dependencies
55
+ - Zero runtime component — install-time only execution
56
+ - Cross-platform file system operations (Windows, macOS, Linux)
57
+ - Air-gapped operation — no network calls during skill installation
58
+ - npm as primary distribution channel (bundled BMAD installation planned for Phase 2)
59
+
60
+ ### Cross-Cutting Concerns Identified
61
+
62
+ - **Path normalization** — every module touches the file system; platform-aware path handling affects all components
63
+ - **Agent format translation** — the template resolution priority chain (agent-template.md → generic.md → SKILL.md) spans installer, agent registry, and skill library
64
+ - **Manifest consistency** — version tracking, upgrade detection, and multi-agent deduplication affect install, uninstall, and status operations
65
+ - **BMAD ordering constraints** — the 6-step customization pipeline (YAML configs before recompile, workflows/templates/agents after) cuts across BMAD integration and installer modules
66
+ - **Skill enforcement** — instruction injection priority, BMAD extension module deployment, and per-agent enforcement hooks span installer, BMAD integration, and agent registry
67
+
68
+ ### Phase 2 Requirements Analysis (2026-03-11)
69
+
70
+ **New Functional Requirements (FR51-FR76):**
71
+ 26 FRs across 6 capability areas. The architecture must additionally support: (6) instruction injection priority management (TOP placement, JSON injection for OpenCode), (7) a BMAD extension module that injects skill-loading `critical_actions` into BMAD agents, (8) bug entity management and auto-detection skills, (9) sprint management workflows as BMAD extensions, (10) bundled BMAD installation with bundled external modules.
72
+
73
+ **New Non-Functional Requirements (NFR16-NFR21):**
74
+ 6 NFRs adding BMAD extension compatibility and bundled installation requirements:
75
+ - Extension module must survive BMAD updates (`extends-module` identity persistence) (NFR16)
76
+ - Zero bmad-method core modifications — extension APIs only (NFR17)
77
+ - OpenCode JSON injection must be additive-only — merge, not replace (NFR18)
78
+ - Extension workflows must work via both agent menu and direct slash command (NFR19)
79
+
80
+ **New Cross-Cutting Concern: Enforcement**
81
+ Skill enforcement touches multiple architectural boundaries:
82
+ - `installer.js` — instruction injection position (top vs bottom), JSON injection for OpenCode
83
+ - `agents.js` — OpenCode agent registration, enforcement hook configuration
84
+ - `bmad.js` — extension module deployment, `.customize.yaml` updates with `critical_actions`
85
+ - New artifact: BMAD extension module (`module.yaml`, `module-help.csv`, extension workflows)
86
+
87
+ **Architectural Impact Assessment:**
88
+ - 2 new injection strategies (TOP placement, JSON merge)
89
+ - 1 new shipped artifact type (BMAD extension module)
90
+ - 1 new agent (OpenCode) in registry
91
+ - 6 new BMAD extension workflows (bug story, add sprint, modify sprint, add items to sprint, remove from sprint, close sprint)
92
+ - 1 new skill (`auto-bug-detection`)
93
+ - 4 updated `.customize.yaml` files (SRE, DevOps, Cyber, MIL-498) with skill-loading `critical_actions`
94
+ - 1 new bundled dependency (bmad-method v6.0.4)
95
+ - 1 new build artifact directory (`lib/bmad-cache/` with 4 pre-cloned external modules)
96
+ - 0 new CLI flags (bundled installation is the default and only mode)
97
+
98
+ ## Technology Foundation (Established)
99
+
100
+ ### Primary Technology Domain
101
+
102
+ CLI tool / build-time packaging pipeline — established brownfield project (v2.19.2)
103
+
104
+ ### Current Technology Stack
105
+
106
+ | Layer | Technology | Status |
107
+ |-------|-----------|--------|
108
+ | Runtime | Node.js (JavaScript ES modules) | Established |
109
+ | CLI interface | Custom argument parser + interactive wizard (inquirer) | Established |
110
+ | Distribution | npm registry via `npx ma-agents` | Established |
111
+ | File operations | Node.js fs (cross-platform path handling) | Established |
112
+ | Build tooling | None — no transpilation, no bundling | By design |
113
+ | Testing framework | Not formalized | Gap |
114
+ | Type system | None (plain JavaScript) | Current state |
115
+
116
+ ### Rationale
117
+
118
+ - **No TypeScript:** Keeps the tool dependency-free and simple for air-gapped deployment. The codebase is small enough (~1,700 lines across 4 files) that type safety is manageable without a type system
119
+ - **No build step:** Skills and BMAD content are plain text (markdown/JSON/YAML). The installer is pure Node.js. No transpilation needed means simpler deployment and debugging
120
+ - **No framework:** The tool's job is file copying and text transformation — a framework would add complexity without value
121
+ - **Starter template: N/A** — brownfield project, technology decisions are established
122
+
123
+ ## Core Architectural Decisions
124
+
125
+ ### Decision Priority Analysis
126
+
127
+ **Critical Decisions (Established — Formalized Here):**
128
+ - Skill data flow and schema contract
129
+ - Agent extensibility model (configuration-driven registry)
130
+ - Install pipeline stage architecture
131
+ - Template resolution priority chain
132
+ - Manifest versioning contract
133
+
134
+ **Important Decisions (Shape Phase 2):**
135
+ - Bundled BMAD installer packaging approach
136
+ - Visual Studio agent integration mechanism
137
+ - Testing strategy formalization
138
+
139
+ **Deferred Decisions (Phase 3):**
140
+ - Central skill registry architecture
141
+ - Cross-project analytics collection
142
+ - Skill marketplace distribution model
143
+
144
+ ### Data Architecture
145
+
146
+ **Skill Schema Contract:**
147
+ Every skill is a directory containing:
148
+ - `skill.json` — metadata SSoT (name, version, description, category, tags, always_load flag)
149
+ - `SKILL.md` — canonical skill content (fallback if no agent template exists)
150
+ - `templates/<agent-name>.md` — agent-specific content with frontmatter injection
151
+ - `references/` and `assets/` — optional supporting files (mapped per agent resource rules)
152
+
153
+ **Manifest Schema (v1.1.0):**
154
+ `.ma-agents.json` per project root tracks:
155
+ - `version` — manifest schema version
156
+ - `agents` — map of agent-name → installed skills with versions
157
+ - Supports multi-agent installs sharing one project directory
158
+
159
+ **Data Flow:** `skill.json` → installer reads metadata → resolves template (agent-specific → generic → SKILL.md) → injects frontmatter → copies to agent config directory → updates manifest → generates MANIFEST.yaml
160
+
161
+ ### Extensibility Model
162
+
163
+ **Agent Registry (agents.js):**
164
+ - Each agent is a configuration object: name, category, platform paths, instruction file, resource map
165
+ - Adding a new agent = adding one object to the registry array (NFR13 satisfied)
166
+ - No installer code changes needed — the installer iterates the registry dynamically
167
+
168
+ **Skill Library:**
169
+ - Skills are self-contained directories under `skills/`
170
+ - Adding a new skill = adding the directory with skill.json + SKILL.md (NFR14 satisfied)
171
+ - The installer discovers skills by scanning the directory — no hardcoded skill list
172
+
173
+ **Template Resolution Priority:**
174
+ 1. `templates/<agent-name>.md` — agent-specific (highest priority)
175
+ 2. `templates/generic.md` — cross-agent fallback
176
+ 3. `SKILL.md` — canonical content (lowest priority)
177
+
178
+ This chain satisfies NFR10 (write-once skills) and NFR11 (new agents need only a template mapping).
179
+
180
+ ### Pipeline Architecture
181
+
182
+ **Install Pipeline (5 stages):**
183
+ 1. **Discovery** — scan skill library, read skill.json metadata
184
+ 2. **Selection** — user selects skills (interactive or --yes flag)
185
+ 3. **Resolution** — resolve template per agent using priority chain
186
+ 4. **Installation** — copy resolved content to agent config directory, inject frontmatter
187
+ 5. **Manifest Update** — atomic write to .ma-agents.json, regenerate MANIFEST.yaml
188
+
189
+ **BMAD Pipeline (6 stages, strictly ordered per NFR8):**
190
+ 1. Install BMAD core files
191
+ 2. Apply YAML config customizations
192
+ 3. Trigger recompile
193
+ 4. Apply workflow customizations
194
+ 5. Apply template customizations
195
+ 6. Apply agent customizations
196
+
197
+ **Error Handling:** Each stage validates preconditions before execution. Manifest writes use read-modify-write with JSON validation before write (NFR7). Install operations are additive-only — existing files are not removed unless explicitly uninstalling (NFR5).
198
+
199
+ ### Infrastructure & Deployment
200
+
201
+ **Current (Phase 1):**
202
+ - Distribution: npm registry, `npx ma-agents` (zero-install)
203
+ - CI/CD: `npx ma-agents install --yes --force` for non-interactive pipeline use
204
+ - Cross-platform: Node.js path.join/path.resolve for all file operations (NFR9)
205
+
206
+ **Phase 2 Decisions:**
207
+
208
+ | Decision | Options | Status |
209
+ |----------|---------|--------|
210
+ | Bundled BMAD installation | Bundle bmad-method as npm dependency + pre-clone external modules into `lib/bmad-cache/` | **DECIDED** (P2-6) — bmad-method v6.0.4 pinned, cache pre-population before install |
211
+ | Project context auto-generation | Generate `_bmad-output/project-context.md` at install time with platform-aware manifest paths | **DECIDED** (P2-7) — template-based, idempotent, all BMAD critical_actions updated |
212
+ | Visual Studio integration | VS Copilot Chat extensions, .vs/ directory, custom mechanism | Needs investigation — depends on VS AI agent config model |
213
+ | Testing framework | Node.js built-in test runner, Jest, Vitest | Needs decision — recommend Node.js built-in (no dependencies, aligns with minimal approach) |
214
+
215
+ ### Decision Impact Analysis
216
+
217
+ **Implementation Sequence:**
218
+ 1. Extensibility model → enables all skill/agent additions
219
+ 2. Install pipeline stages → core user-facing workflow
220
+ 3. BMAD pipeline ordering → enterprise integration reliability
221
+ 4. Manifest contract → version tracking across all operations
222
+ 5. (Phase 2) Testing framework → enables regression protection
223
+ 6. (Phase 2) Bundled BMAD installation → air-gapped deployment
224
+ 7. (Phase 2) Visual Studio integration → new agent target
225
+
226
+ **Cross-Component Dependencies:**
227
+ - Template resolution spans installer + agent registry + skill library
228
+ - Manifest operations span install + uninstall + status commands
229
+ - BMAD pipeline depends on installer for file operations but has its own ordering constraints
230
+
231
+ ### Phase 2 Architectural Decisions (2026-03-11)
232
+
233
+ #### Decision P2-1: Instruction Injection Priority (FR51)
234
+
235
+ **Decision:** Agent-aware TOP injection with skip patterns
236
+
237
+ The agent registry in `agents.js` gains an `injectionStrategy` property per agent:
238
+
239
+ ```javascript
240
+ {
241
+ name: 'claude-code',
242
+ instructionFile: 'CLAUDE.md',
243
+ injectionStrategy: {
244
+ position: 'top',
245
+ skipPatterns: ['---'] // skip YAML frontmatter block if present
246
+ }
247
+ }
248
+ ```
249
+
250
+ **Behavior:**
251
+ - `installer.js` reads the target instruction file
252
+ - Parses file headers based on agent-specific `skipPatterns` (frontmatter, shebang, etc.)
253
+ - Injects `<!-- MA-AGENTS-START -->` block after any required file headers but before all other content
254
+ - If block already exists (update scenario), removes old block first then injects at top
255
+ - Format awareness is centralized in `agents.js` — installer logic is format-agnostic
256
+
257
+ **Rationale:** Different agents have different file header conventions. Placing the block before a required header would cause the agent to ignore it. The skip patterns keep format knowledge in the agent registry where it belongs.
258
+
259
+ **Affects:** `installer.js` (injection logic), `agents.js` (registry schema extension)
260
+
261
+ #### Decision P2-2: OpenCode JSON Injection (FR56-FR57)
262
+
263
+ **Decision:** Create-if-absent, merge-if-exists
264
+
265
+ **Behavior:**
266
+ - If no `opencode.json` exists: create with ma-agents configuration including `instructions` array pointing to skill files in `.opencode/skills/`
267
+ - If `opencode.json` exists: read, parse JSON, merge `instructions` array (append ma-agents entries, preserve all existing entries and keys), write back
268
+ - Merge is additive-only — never removes or overwrites existing configuration (NFR18)
269
+ - Uses the same read-validate-write pattern as manifest management (NFR7)
270
+
271
+ **OpenCode agent registry entry:**
272
+ ```javascript
273
+ {
274
+ name: 'opencode',
275
+ category: 'ide',
276
+ configDir: '.opencode',
277
+ skillsDir: '.opencode/skills',
278
+ instructionFile: 'opencode.json',
279
+ injectionStrategy: {
280
+ position: 'json-merge',
281
+ targetKey: 'instructions'
282
+ }
283
+ }
284
+ ```
285
+
286
+ **Affects:** `agents.js` (new agent entry), `installer.js` (JSON injection path alongside markdown injection)
287
+
288
+ #### Decision P2-3: BMAD Extension Module Structure (FR52, NFR16-NFR17) **[SUPERSEDED by P2-9]**
289
+
290
+ **Decision:** Consolidated extension module in `lib/bmad-extension/`
291
+
292
+ All BMAD extension content ships as a single module:
293
+
294
+ ```
295
+ lib/bmad-extension/
296
+ module.yaml — extends-module: bmm, module identity
297
+ module-help.csv — phase registration for extension workflows
298
+ workflows/
299
+ create-bug-story/ — bug story generation from bug report (FR61)
300
+ workflow.md
301
+ add-sprint/ — add sprint with capacity (FR68)
302
+ workflow.md
303
+ modify-sprint/ — change/modify sprint (FR70)
304
+ workflow.md
305
+ add-to-sprint/ — add stories/bugs to sprint (FR69)
306
+ workflow.md
307
+ agents/
308
+ # Custom agents (full customization: persona + menu + critical_actions)
309
+ bmm-sre.customize.yaml
310
+ bmm-devops.customize.yaml
311
+ bmm-cyber.customize.yaml
312
+ bmm-mil498.customize.yaml
313
+ # Built-in BMM agents (critical_actions only — no persona/menu override)
314
+ bmm-pm.customize.yaml
315
+ bmm-architect.customize.yaml
316
+ bmm-dev.customize.yaml
317
+ bmm-qa.customize.yaml
318
+ bmm-sm.customize.yaml
319
+ bmm-tech-writer.customize.yaml
320
+ bmm-ux-designer.customize.yaml
321
+ ```
322
+
323
+ **Deployment:** `bmad.js` copies `lib/bmad-extension/` to the BMAD installation directory as a registered extension module. The existing `lib/bmad-customizations/` content migrates into this structure.
324
+
325
+ **Survival:** The `extends-module: bmm` declaration in `module.yaml` gives the extension an independent identity. BMAD updates (`npx bmad-method install --action update`) preserve extension modules (NFR16).
326
+
327
+ **Affects:** `bmad.js` (extension deployment), `lib/bmad-extension/` (new directory), `lib/bmad-customizations/` (migrated into extension)
328
+
329
+ #### Decision P2-4: `critical_actions` for All BMAD Agents (FR52-FR53)
330
+
331
+ **Decision:** Ship `critical_actions` for all 11 BMAD agents (4 custom + 7 built-in)
332
+
333
+ **`critical_actions` pattern for all agents:**
334
+ ```yaml
335
+ critical_actions:
336
+ 1: "Read the skills MANIFEST at {project-root}/skills/MANIFEST.yaml"
337
+ 2: "For each skill marked always_load: true, read the skill file completely"
338
+ 3: "Follow all skill directives during this session"
339
+ ```
340
+
341
+ **Custom agents** (SRE, DevOps, Cyber, MIL-498): Full `.customize.yaml` with persona, menu, AND `critical_actions`. These already exist — `critical_actions` are added.
342
+
343
+ **Built-in BMM agents** (PM, Architect, Dev, QA, SM, Tech Writer, UX Designer): Minimal `.customize.yaml` with ONLY `critical_actions`. No persona or menu overrides — preserves the built-in agent behavior while injecting skill loading.
344
+
345
+ **Scope expansion:** FR53 in PRD says "All 4 BMAD agents" but the architecture covers all 11 to close the enforcement gap for built-in agents too.
346
+
347
+ **Affects:** `lib/bmad-extension/agents/` (11 customize files), `bmad.js` (deployment)
348
+
349
+ #### Decision P2-5: Pre-built Extension Workflows (FR61, FR68-FR70)
350
+
351
+ **Decision:** Author workflows directly in `lib/bmad-extension/skills/` as static content
352
+
353
+ 6 workflows shipped as pre-built BMAD skill files:
354
+ 1. `create-bug-story` — generates a structured bug story from a bug report (FR61)
355
+ 2. `add-sprint` — creates a new sprint entry in the unified `sprint-status.yaml` with capacity and iteration ID (FR68)
356
+ 3. `add-to-sprint` — moves items from `backlog:` section to a sprint's `items:` in unified `sprint-status.yaml` (FR69)
357
+ 4. `modify-sprint` — updates sprint metadata, reorder items, adjust capacity in unified `sprint-status.yaml` (FR70)
358
+ 5. `close-sprint` — sprint close lifecycle: archive done items, handle canceled items, disposition remaining items (new — see P2-11)
359
+ 6. `remove-from-sprint` — moves items from a sprint's `items:` back to `backlog:` section in unified `sprint-status.yaml`
360
+
361
+ All sprint management workflows operate on the unified `sprint-status.yaml` file (see P2-11 for data architecture). Workflows are registered in `module-help.csv` for phase discovery. They function identically whether invoked via BMAD agent menu or direct slash command (NFR19).
362
+
363
+ **Affects:** `lib/bmad-extension/skills/` (6 workflow directories), `lib/bmad-extension/module-help.csv`
364
+
365
+ #### Decision P2-6: Bundled BMAD Installation with Explicit Parameter Passing (FR74-FR76, FR123-FR127, NFR20-NFR21)
366
+
367
+ **Decision:** Bundle bmad-method as npm dependency, pre-clone external modules, and invoke bmad-method with explicit CLI parameters instead of silent mode
368
+
369
+ **Problem (original):** bmad-method's external module installation uses `git clone` to fetch modules (bmb, cis, tea, gds, wds) from GitHub into `~/.bmad/cache/external-modules/`. This fails in air-gapped environments. Additionally, `npx bmad-method` itself requires npm registry access.
370
+
371
+ **Problem (updated — FR123-FR127):** The current silent install (`--yes` flag) skips critical configuration: selected tools/platforms are not passed to bmad-method (OpenCode not configured even when selected in ma-agents), and paths with spaces break due to improper quoting in `execSync` calls. The fix is not to invoke setup skills programmatically — bmad-method already supports full parameterized invocation via CLI flags.
372
+
373
+ **Architecture — Bundling (unchanged):**
374
+
375
+ ```
376
+ lib/
377
+ ├── bmad-cache/ — pre-cloned external module repos
378
+ │ ├── bmb/ — bmad-builder module (full git repo snapshot)
379
+ │ │ ├── src/
380
+ │ │ ├── package.json
381
+ │ │ └── node_modules/ — pre-installed production dependencies
382
+ │ ├── cis/ — bmad-creative-intelligence-suite
383
+ │ ├── tea/ — bmad-method-test-architecture-enterprise
384
+ │ ├── gds/ — bmad-game-dev-studio
385
+ │ └── wds/ — bmad-whiteport-design-studio
386
+ ```
387
+
388
+ **Architecture — Invocation (revised):**
389
+
390
+ ma-agents maps its collected installation answers to bmad-method CLI parameters:
391
+
392
+ ```javascript
393
+ // In bmad.js — buildBmadArgs() constructs the full parameter list
394
+ function buildBmadArgs(installContext) {
395
+ const bmadPath = require.resolve('bmad-method/tools/bmad-npx-wrapper.js');
396
+ const args = [
397
+ 'node', `"${bmadPath}"`, 'install',
398
+ '--directory', `"${installContext.projectRoot}"`, // FR123: project path (quoted for spaces)
399
+ '--modules', installContext.selectedModules.join(','), // e.g., "bmm,bmb,cis,tea,gds,wds"
400
+ '--tools', installContext.selectedTools.join(','), // FR123: e.g., "claude-code,cursor,opencode"
401
+ '--user-name', `"${installContext.userName}"`, // FR123: from ma-agents wizard
402
+ '--communication-language', installContext.commLang, // FR123: default "English"
403
+ '--document-output-language', installContext.docLang, // FR123: default "English"
404
+ '--output-folder', installContext.outputFolder, // default "_bmad-output"
405
+ '--custom-content', `"${installContext.extensionPath}"`, // path to lib/bmad-extension/
406
+ '--yes', // FR126: skip prompts for params already provided
407
+ ];
408
+ if (installContext.isUpdate) {
409
+ args.push('--action', 'update'); // FR107: upgrade detection
410
+ }
411
+ return args;
412
+ }
413
+ ```
414
+
415
+ **Parameter mapping table (FR123):**
416
+
417
+ | ma-agents collects | bmad-method flag | Source |
418
+ |---|---|---|
419
+ | Project path | `--directory` | Detected from cwd / package.json / .git |
420
+ | Selected platforms (claude-code, cursor, opencode...) | `--tools` | Interactive wizard or `--yes` defaults |
421
+ | BMAD modules to install | `--modules` | Always "bmm,bmb,cis,tea,gds,wds" (full bundle) |
422
+ | User name | `--user-name` | Wizard prompt or system username |
423
+ | Communication language | `--communication-language` | Wizard prompt or "English" default |
424
+ | Document output language | `--document-output-language` | Wizard prompt or "English" default |
425
+ | Output folder | `--output-folder` | Always "_bmad-output" |
426
+ | Extension module | `--custom-content` | Always `lib/bmad-extension/` path |
427
+ | Fresh vs upgrade | `--action` | Detected: "install" if no `_bmad/`, "update" if exists |
428
+
429
+ **How this solves the three bugs:**
430
+ 1. **OpenCode not configured** → `--tools` explicitly lists all selected platforms including opencode
431
+ 2. **Spaces in paths** → all path arguments are quoted: `--directory "d:\My Projects\agents"`
432
+ 3. **Silent install skips config** → `--yes` only suppresses prompts for parameters already supplied via flags — it doesn't skip configuration
433
+
434
+ **Default handling (FR125):** When bmad-method introduces new CLI parameters that ma-agents hasn't mapped, the `--yes` flag causes bmad-method to apply its own defaults for those parameters. No configuration is ever skipped — it's either explicitly provided by ma-agents or defaulted by bmad-method.
435
+
436
+ **Single wizard UX (FR126):** The user interacts only with ma-agents' wizard. bmad-method runs non-interactively with full explicit parameters. No second wizard prompt ever appears.
437
+
438
+ **CI/CD mode (FR127):** `npx ma-agents install --yes --force` → ma-agents uses its own defaults for all parameters → passes those defaults to bmad-method via the same `buildBmadArgs()` function → identical code path, just with pre-determined answers.
439
+
440
+ **Mechanism — 2 steps in `bmad.js` (cache + invoke):**
441
+
442
+ 1. **Pre-populate cache:** Before calling bmad-method, copy `lib/bmad-cache/*` to `~/.bmad/cache/external-modules/` (only if target directory doesn't exist or `--force`). bmad-method's `cloneExternalModule()` checks `fs.pathExists(moduleCacheDir)` — if the cache directory exists, it skips git clone and uses the cached copy.
443
+
444
+ 2. **Invoke bmad-method with explicit params:** `execSync(buildBmadArgs(installContext).join(' '))` — bmad-method is a direct npm dependency, resolved via `require.resolve()`. No `npx` download at runtime.
445
+
446
+ **Pre-cloned cache creation (build step):**
447
+ A new `npm run build:bmad-cache` script:
448
+ 1. For each module in `external-official-modules.yaml`: `git clone --depth 1 <url> lib/bmad-cache/<code>/`
449
+ 2. Run `npm install --omit=dev` in each cloned directory
450
+ 3. Remove `.git/` directories to reduce package size
451
+ 4. This script runs on a connected machine; the output is committed to the repo
452
+
453
+ **npm package size impact:**
454
+ - bmad-method: ~555 KB (v6.2.0 optimized — 91% smaller than 6.0.x)
455
+ - External modules: estimated 2-5 MB each with node_modules
456
+ - Total package size increase: ~10-20 MB — acceptable for enterprise/air-gapped use case
457
+
458
+ **Version pinning (NFR20):**
459
+ - `package.json` pins `bmad-method` to exact version: `"6.2.0"`
460
+ - `lib/bmad-cache/` modules are pinned at clone time
461
+ - Upgrading is a deliberate operation: update version pin, re-run `npm run build:bmad-cache`, test, release
462
+
463
+ **Affects:** `bmad.js` (cache pre-population + parameterized invocation), `package.json` (dependency pinned to 6.2.0), `lib/bmad-cache/` (5 modules incl. wds), build script
464
+
465
+ #### Decision P2-7: Project Context Auto-Generation (FR79-FR86, NFR22-NFR25)
466
+
467
+ **Decision:** Template-based generation at install time with platform-aware manifest path resolution and idempotency guard
468
+
469
+ **Problem:** BMAD agents and IDE agents installed via ma-agents have skills available but lack a *constitutional document* that mandates their use. The CLAUDE.md/platform-instruction-file contains the skill-loading rule, but: (1) it only fires reliably for the primary agent session — BMAD workflow-invoked agents may not inherit it; (2) it says nothing about worktree-based git workflows; (3) it has no platform-agnostic path to MANIFEST.yaml when multiple platforms are installed. The `project-context.md` concept from BMAD closes this gap — it is a living document loaded by BMAD workflows (`dev-story`, `code-review`, `create-architecture`, etc.) that acts as persistent behavioral governance across all sessions.
470
+
471
+ **Architecture:**
472
+
473
+ The template is maintained as a standalone file, not an inline string:
474
+
475
+ ```
476
+ lib/
477
+ ├── templates/
478
+ │ └── project-context.template.md — canonical template (not embedded in code)
479
+ ```
480
+
481
+ **Two-layer design — generator returns content, pipeline handles write:**
482
+
483
+ ```javascript
484
+ // Layer 1: generateProjectContext() — pure content generator, no file I/O (Story 13.1)
485
+ // installedAgents = ALL agents present in the project manifest (not just current run)
486
+ // This ensures project-context.md always lists every installed platform's MANIFEST path.
487
+ async function generateProjectContext(projectRoot, installedAgents) {
488
+ const template = await fs.readFile(TEMPLATE_PATH, 'utf8');
489
+
490
+ // Resolve relative manifest paths per platform (FR81, FR82) — relative to project root
491
+ const pathLines = installedAgents
492
+ .map(agent => ` - \`${agent.skillsDir}/MANIFEST.yaml\``)
493
+ .join('\n');
494
+
495
+ return template.replace('{{MANIFEST_PATHS_LIST}}', pathLines || ' - (no agents installed)');
496
+ }
497
+
498
+ // Layer 2: install pipeline integration (Story 13.2)
499
+ // Idempotency guard + file write live here, not in the generator
500
+ async function writeProjectContextIfAbsent(projectRoot, installedAgents) {
501
+ const outputPath = path.join(projectRoot, '_bmad-output', 'project-context.md');
502
+ if (await fs.pathExists(outputPath)) {
503
+ console.log(chalk.blue('ℹ project-context.md already exists — skipping generation'));
504
+ return;
505
+ }
506
+ try {
507
+ const content = await generateProjectContext(projectRoot, installedAgents);
508
+ await fs.ensureDir(path.dirname(outputPath));
509
+ await fs.writeFile(outputPath, content, 'utf8');
510
+ console.log(chalk.green('✓ project-context.md generated at _bmad-output/project-context.md'));
511
+ } catch (err) {
512
+ console.log(chalk.yellow(`⚠ project-context generation failed: ${err.message} — continuing`));
513
+ }
514
+ }
515
+ ```
516
+
517
+ **Template structure (`lib/templates/project-context.template.md`):**
518
+
519
+ ```markdown
520
+ # Project Context
521
+ <!-- Generated by ma-agents at install time — this is a living document -->
522
+ <!--
523
+ EXPAND THIS FILE over time:
524
+ - After architecture: run /bmad-generate-project-context
525
+ - After each sprint: run /bmad-retrospective (includes context update step)
526
+ - Manually: add conventions you notice agents getting wrong
527
+ -->
528
+
529
+ ## AI Agent Mandatory Rules
530
+
531
+ ### Pre-Task (EVERY task, no exceptions)
532
+ 1. Read the MANIFEST.yaml for your platform:
533
+ {{MANIFEST_PATHS_LIST}}
534
+ 2. Load ALL skills marked `always_load: true` completely
535
+ 3. Select additional skills relevant to the specific task
536
+
537
+ ### Git Workflow (ALL file-changing tasks)
538
+ 1. Create a fresh worktree: `git worktree add ../{{project}}-{{branch}} -b {{branch}}`
539
+ 2. ALL work happens inside that worktree — never in the main working tree
540
+ 3. Use conventional commits: feat/fix/chore/docs/refactor
541
+ 4. Open a PR to main — never merge directly
542
+ 5. After merge: `git worktree remove ../{{project}}-{{branch}}`
543
+
544
+ ### Agent Mission Lifecycle
545
+ 1. Pre-flight: manifest read, always_load skills loaded, task skills selected
546
+ 2. Fresh worktree + feature branch created
547
+ 3. Implementation executed
548
+ 4. Self-review: run code-review skill on own output before PR
549
+ 5. PR opened with conventional commit message
550
+ 6. Human review gate: await approval — do NOT auto-merge
551
+ 7. After merge: worktree removed, branch deleted
552
+ 8. Post-mission: story status updated, AiAudit.md logged
553
+
554
+ ## Technology Stack
555
+ <!-- TODO: Populated by /bmad-generate-project-context after architecture phase -->
556
+
557
+ ## Project-Specific Rules
558
+ <!-- TODO: Grows through retrospectives and manual additions -->
559
+ ```
560
+
561
+ **Platform path resolution (FR81-FR82):**
562
+
563
+ The `{{MANIFEST_PATHS_LIST}}` placeholder is replaced at generation time with the actual paths for each installed platform, sourced from the **full project manifest** (`.ma-agents.json`) — not just the agents installed in the current run. This ensures that if Claude Code was installed last week and Cursor today, project-context.md lists both paths. If only Claude Code is installed: ` - \`.claude/skills/MANIFEST.yaml\``. If both are installed, both appear. Paths are relative to project root (NFR22 applies to the template, not the generated output).
564
+
565
+ **`installedAgents` parameter contract:** Always pass all agents currently recorded in the project manifest. The generator reads `agent.skillsDir` from each entry. Never pass only the current-run agents — incomplete path lists break sessions on any excluded platform.
566
+
567
+ **BMAD critical_actions update (FR86):**
568
+
569
+ All **BMM agent** `.customize.yaml` files in `lib/bmad-extension/agents/` (12 total: 4 custom + 7 built-in + bmad-master) gain a new `critical_actions` entry after the MANIFEST step:
570
+
571
+ ```yaml
572
+ critical_actions:
573
+ 1: "Read the skills MANIFEST at {project-root}/<platform>/skills/MANIFEST.yaml"
574
+ 2: "For each skill marked always_load: true, read the skill file completely"
575
+ 3: "If _bmad-output/project-context.md exists, read it completely"
576
+ 4: "Follow all skill directives and project-context rules during this session"
577
+ ```
578
+
579
+ Step 3 uses `if exists` phrasing — graceful degradation for projects that have not yet generated project-context.
580
+
581
+ **CIS module agents (brainstorming-coach, creative-problem-solver, design-thinking-coach, innovation-strategist, presentation-master, storyteller) are deliberately excluded.** Project-context rules govern software development workflows (git worktrees, code review, mission lifecycle). CIS agents conduct creative and innovation sessions that are orthogonal to these rules. Including project-context in CIS sessions would add irrelevant noise to creative workflows. This is an explicit architecture decision, not an oversight.
582
+
583
+ **Idempotency (FR82, NFR23):**
584
+
585
+ `fs.pathExists(outputPath)` check before any write. If the file exists — regardless of content — generation is skipped. A log message notifies the user: `ℹ project-context.md already exists — skipping generation`.
586
+
587
+ **Global vs project-level install:**
588
+
589
+ Project-context generation fires only on project-level installs (where a `package.json` or `.git` directory is detected as the project root). Global installs (`~/.config/<agent>/`) do not generate project-context.
590
+
591
+ **Affects:** `installer.js` (new `generateProjectContext()` function called at end of install pipeline), new `lib/templates/project-context.template.md`, `lib/bmad-extension/agents/*.customize.yaml` (all 11 updated with step 3 in `critical_actions`)
592
+
593
+ #### Decision P2-9: BMAD 6.2.0 Agent Architecture Migration (FR94-FR110, NFR29-NFR33)
594
+
595
+ **Decision:** Restructure the extension module to follow BMAD 6.2.0 module conventions — agents as skill folders, workflows as skill folders, `module.yaml` with `code` field, deployed via `--custom-content`
596
+
597
+ **Problem:** The 4 custom agents (SRE, DevOps, Cyber, MIL-498) are currently delivered via `.customize.yaml` files. BMAD 6.2.0 modules deliver agents as skills (`SKILL.md` + `bmad-skill-manifest.yaml` with `type: agent`). `.customize.yaml` is for END-USER customization of other modules' agents, not for delivering module-owned agents. Additionally, MIL-498 workflows use the legacy YAML/XML workflow engine which is removed in 6.2.0.
598
+
599
+ **Verified pattern (from CIS module source):**
600
+ - Agents in modules: `skills/<agent-name>/SKILL.md` + `bmad-skill-manifest.yaml` (type: agent)
601
+ - Workflows in modules: `skills/<workflow-name>/SKILL.md` + `bmad-skill-manifest.yaml` (type: skill)
602
+ - Module identity: `module.yaml` with `code` field
603
+ - Deployment: `--custom-content <module-path>`
604
+
605
+ **Revised extension module structure:**
606
+
607
+ ```
608
+ lib/bmad-extension/
609
+ ├── module.yaml — code: ma-skills, name, description
610
+ ├── module-help.csv — capability registry for all agents + workflows
611
+ └── skills/
612
+
613
+ │ ── Agent Skills (type: agent) ──
614
+ ├── bmad-ma-agent-sre/
615
+ │ ├── SKILL.md — Alex: full agent instructions (persona, menu, activation, critical_actions)
616
+ │ └── bmad-skill-manifest.yaml — type: agent, displayName: Alex, role: SRE, module: ma-skills
617
+ ├── bmad-ma-agent-devops/
618
+ │ ├── SKILL.md — Amit: DevOps agent
619
+ │ └── bmad-skill-manifest.yaml
620
+ ├── bmad-ma-agent-cyber/
621
+ │ ├── SKILL.md — Yael: Cyber Security Analyst
622
+ │ └── bmad-skill-manifest.yaml
623
+ ├── bmad-ma-agent-mil498/
624
+ │ ├── SKILL.md — Joseph: MIL-STD-498 Expert
625
+ │ └── bmad-skill-manifest.yaml
626
+
627
+ │ ── MIL-498 DID Workflows (type: skill, Complex Workflow) ──
628
+ ├── mil498-sss/
629
+ │ ├── SKILL.md — SSS generation entrypoint
630
+ │ ├── bmad-skill-manifest.yaml — type: skill
631
+ │ ├── template.md — SSS DID template
632
+ │ └── prompts/ — step files (progressive disclosure)
633
+ │ ├── 01-discovery.md
634
+ │ ├── 02-requirements.md
635
+ │ └── ...
636
+ ├── mil498-ssdd/ — SSDD generation
637
+ ├── mil498-ocd/ — OCD generation
638
+ ├── mil498-sdp/ — SDP generation
639
+ ├── mil498-srs/ — SRS generation
640
+ ├── mil498-sdd/ — SDD generation
641
+ ├── mil498-std/ — STD generation
642
+ ├── mil498-str/ — STR generation
643
+ ├── mil498-idd/ — IDD generation
644
+ ├── mil498-irs/ — IRS generation
645
+ ├── mil498-hrs/ — HRS generation
646
+
647
+ │ ── SRE Playbooks (type: skill) ──
648
+ ├── sre-health-check/
649
+ │ ├── SKILL.md — health check workflow
650
+ │ └── bmad-skill-manifest.yaml
651
+ ├── sre-fix-deployments/
652
+ ├── sre-performance-opt/
653
+ ├── sre-check-deployment-status/
654
+ ├── sre-check-secrets/
655
+ ├── sre-day-2-ops/
656
+ ├── sre-deployment-strategies/
657
+ ├── sre-gitops-status/
658
+ │ └── (1 more — 9 SRE workflows total)
659
+
660
+ │ ── DevOps Playbooks (type: skill) ──
661
+ ├── devops-configure-infrastructure/
662
+ ├── devops-optimize-pipelines/
663
+ ├── devops-manage-helm/
664
+ ├── devops-disconnected-deployment/
665
+ ├── devops-docker-compose-setup/
666
+ ├── devops-sign-docker-image/
667
+ │ └── (6 DevOps workflows total)
668
+
669
+ │ ── Cyber Playbooks (type: skill) ──
670
+ ├── cyber-vulnerability-scan/
671
+ ├── cyber-security-audit/
672
+ ├── cyber-threat-modeling/
673
+ ├── cyber-generate-certs/
674
+ ├── cyber-immunity-estimation/
675
+ ├── cyber-vault-secrets/
676
+ ├── cyber-verify-docker-users/
677
+ ├── cyber-verify-image-signature/
678
+ │ └── (8 Cyber workflows total)
679
+
680
+ │ ── BMAD Extension Workflows (type: skill) ──
681
+ ├── create-bug-story/ — bug story from report (FR61)
682
+ │ ├── SKILL.md
683
+ │ └── bmad-skill-manifest.yaml
684
+ ├── add-sprint/ — new sprint entry in unified sprint-status.yaml (FR68)
685
+ ├── modify-sprint/ — update sprint metadata/items in unified file (FR70)
686
+ ├── add-to-sprint/ — move items from backlog to sprint in unified file (FR69)
687
+ ├── close-sprint/ — sprint close lifecycle: archive done, disposition remaining (P2-11)
688
+ │ ├── SKILL.md
689
+ │ └── bmad-skill-manifest.yaml
690
+ └── remove-from-sprint/ — move items from sprint back to backlog
691
+ ├── SKILL.md
692
+ └── bmad-skill-manifest.yaml
693
+ ```
694
+
695
+ **Total skills in module:** 4 agents + 11 MIL-498 + 9 SRE + 6 DevOps + 8 Cyber + 6 extension workflows = **44 skills**
696
+
697
+ **`bmad-skill-manifest.yaml` patterns:**
698
+
699
+ Agent skill manifest:
700
+ ```yaml
701
+ type: agent
702
+ name: bmad-ma-agent-sre
703
+ displayName: Alex
704
+ title: Site Reliability Engineer
705
+ icon: "🔧"
706
+ capabilities: "system availability, Kubernetes ops, SLO/SLA management, deployment strategies"
707
+ role: "Site Reliability Engineer"
708
+ identity: "Experienced SRE focused on system reliability and operational excellence"
709
+ communicationStyle: "Direct, data-driven, alert to risks"
710
+ principles: "Reliability first. Automate everything. Measure what matters."
711
+ module: ma-skills
712
+ ```
713
+
714
+ Workflow skill manifest:
715
+ ```yaml
716
+ type: skill
717
+ name: mil498-srs
718
+ module: ma-skills
719
+ ```
720
+
721
+ **`module.yaml` update:**
722
+ ```yaml
723
+ code: ma-skills
724
+ name: "MA-Agents Skills & Agents"
725
+ description: "Enterprise methodology enforcement, specialized agents, and operational workflows"
726
+ extends-module: bmm
727
+ default_selected: false
728
+ ```
729
+
730
+ The `code` field is required for `--custom-content` deployment. `extends-module: bmm` is retained to indicate this module builds on BMM.
731
+
732
+ **Agent SKILL.md content:** Each agent's `SKILL.md` contains the full agent definition that was previously split across `.customize.yaml` + XML `<agent>` definition:
733
+ - Persona (role, identity, communication style, principles)
734
+ - Menu items with trigger phrases
735
+ - Activation sequence (including skill-loading critical_actions)
736
+ - References to the agent's workflow skills (e.g., SRE agent's menu references `sre-health-check`, `sre-fix-deployments`, etc.)
737
+
738
+ **Built-in BMM agent customization (7 agents + bmad-master):**
739
+ The 8 built-in BMM agents that ma-agents does NOT own still use `.customize.yaml` files — these are deployed by `bmad.js` to `_bmad/_config/agents/` AFTER `--custom-content` installs the module. These files add `critical_actions` for skill loading only (no persona/menu override):
740
+
741
+ ```yaml
742
+ # MA-AGENTS: skill enforcement for bmm-pm
743
+ critical_actions:
744
+ - "Read the skills MANIFEST at {project-root}/skills/MANIFEST.yaml"
745
+ - "For each skill marked always_load: true, read the skill file completely"
746
+ - "If _bmad-output/project-context.md exists, read it completely"
747
+ - "Follow all skill directives and project-context rules during this session"
748
+ ```
749
+
750
+ **Note:** In 6.2.0, `critical_actions` in `.customize.yaml` uses array syntax (list of strings), not numbered map syntax. Updated to match current BMAD documentation.
751
+
752
+ **Deployment sequence in `bmad.js`:**
753
+ 1. Pre-populate `~/.bmad/cache/external-modules/` from `lib/bmad-cache/`
754
+ 2. Invoke bmad-method with `--custom-content "lib/bmad-extension/"` — installs the module including 4 agents and all workflow skills
755
+ 3. Deploy `.customize.yaml` files for 8 built-in BMM agents to `_bmad/_config/agents/`
756
+ 4. Run `--action quick-update` to apply customizations
757
+
758
+ **MIL-498 workflow conversion detail (FR98-FR100):**
759
+ Each DID workflow converts from `workflow.yaml` + `instructions.md` (legacy engine) to:
760
+ - `SKILL.md` — workflow entrypoint with frontmatter triggers and routing logic
761
+ - `prompts/` — step files for progressive disclosure (Layer 4), preserving strict sequential execution
762
+ - `template.md` — DID output template (same content, new location)
763
+ - The legacy `<template-output>` checkpoints become explicit user confirmation gates in step files
764
+
765
+ **SRE/DevOps/Cyber workflow conversion detail (FR101-FR103):**
766
+ These workflows are already `.md` files. Conversion is lighter:
767
+ - Wrap existing `.md` content in `SKILL.md` with proper frontmatter
768
+ - Add `bmad-skill-manifest.yaml` with `type: skill`
769
+ - Multi-step workflows get `prompts/` for progressive disclosure
770
+ - Single-pass playbooks remain as simple `SKILL.md` files
771
+
772
+ **Migration detection and upgrade path (FR107-FR110):**
773
+
774
+ ```javascript
775
+ // In bmad.js — detect BMAD version and migration need
776
+ function detectMigrationNeed(projectRoot) {
777
+ const configPath = path.join(projectRoot, '_bmad', 'core', 'config.yaml');
778
+ if (!fs.existsSync(configPath)) return { action: 'install', migrate: false };
779
+
780
+ const config = yaml.load(fs.readFileSync(configPath, 'utf8'));
781
+ const version = config?.version || '0.0.0';
782
+
783
+ if (semver.lt(version, '6.2.0')) {
784
+ return { action: 'update', migrate: true, fromVersion: version };
785
+ }
786
+ return { action: 'update', migrate: false };
787
+ }
788
+ ```
789
+
790
+ **Migration steps (when upgrading from 6.0.4):**
791
+ 1. Detect old version from `_bmad/core/config.yaml`
792
+ 2. Back up existing `_bmad/_config/agents/*.customize.yaml` (user customizations to preserve)
793
+ 3. Invoke bmad-method with `--action update` + `--custom-content` — bmad-method handles the core upgrade
794
+ 4. Deploy new `.customize.yaml` files for built-in agents
795
+ 5. Merge user customizations back: if user had added custom `memories` or extra `critical_actions` to any of the 4 custom agents, carry those forward into the new agent SKILL.md
796
+ 6. Clean up legacy artifacts: old `.customize.yaml` files for custom agents (now replaced by module agent skills), XML agent definitions in `_bmad/custom/agents/`, YAML workflow files in `lib/bmad-workflows/mil498/`
797
+
798
+ **Rollback (NFR29):** If bmad-method update fails, `bmad.js` restores the backed-up `.customize.yaml` files and logs the error. The project remains on the old version. Full atomicity is achieved by backing up before and restoring on failure.
799
+
800
+ **Affects:** `lib/bmad-extension/` (complete restructure), `bmad.js` (migration detection, `--custom-content` deployment, `.customize.yaml` deployment for built-ins), `lib/bmad-workflows/` (migrated into extension module skills), `lib/bmad-customizations/` (eliminated — content moved to extension module)
801
+
802
+ #### Decision P2-10: Multi-Repository Project Layout (FR111-FR122, NFR34-NFR37)
803
+
804
+ **Decision:** Config-driven path resolution with `project-layout.yaml` cross-reference file
805
+
806
+ **Problem:** Enterprise projects separate planning docs, sprint management, and code across repositories. BMAD workflows that produce/consume artifacts need to resolve paths to the correct repository. Agents operating in the code repo need to discover where planning and sprint data live.
807
+
808
+ **Architecture:**
809
+
810
+ **Installation flow (FR111-FR116):**
811
+ ```javascript
812
+ // In cli.js — new wizard section after agent selection
813
+ async function collectRepoLayout() {
814
+ const layout = { knowledgebase: null, sprintManagement: null };
815
+
816
+ for (const concern of ['knowledgebase', 'sprintManagement']) {
817
+ const mode = await prompt({
818
+ type: 'list',
819
+ message: `Where is your ${concern} managed?`,
820
+ choices: [
821
+ { name: 'Current repository (default)', value: 'same' },
822
+ { name: 'Local path', value: 'local' },
823
+ { name: 'Remote git repository', value: 'remote' },
824
+ ]
825
+ });
826
+
827
+ if (mode === 'same') {
828
+ layout[concern] = { mode: 'same', path: '.' };
829
+ } else if (mode === 'local') {
830
+ const localPath = await prompt({ message: 'Local path:' });
831
+ if (!fs.existsSync(localPath)) {
832
+ console.log(chalk.yellow(`⚠ Path does not exist: ${localPath}`));
833
+ const confirmed = await prompt({ type: 'confirm', message: 'Use this path anyway?' });
834
+ if (!confirmed) continue; // re-ask
835
+ }
836
+ layout[concern] = { mode: 'local', path: path.resolve(localPath) };
837
+ } else if (mode === 'remote') {
838
+ const gitUrl = await prompt({ message: 'Git URL:' });
839
+ const destPath = await prompt({ message: 'Local destination for cloning:' });
840
+ if (fs.existsSync(destPath)) {
841
+ console.log(chalk.blue(`ℹ Directory already exists: ${destPath}`));
842
+ const confirmed = await prompt({ type: 'confirm', message: 'Use existing directory?' });
843
+ if (!confirmed) continue;
844
+ } else {
845
+ execSync(`git clone "${gitUrl}" "${destPath}"`);
846
+ }
847
+ layout[concern] = { mode: 'remote', path: path.resolve(destPath), gitUrl };
848
+ }
849
+ }
850
+ return layout;
851
+ }
852
+ ```
853
+
854
+ **Config storage (FR117):**
855
+ Repo paths are written to `_bmad/core/config.yaml` (shared, git-committed) alongside existing BMAD config:
856
+
857
+ ```yaml
858
+ # Added by ma-agents installer
859
+ knowledgebase_path: "d:/Code/agents-knowledgebase" # or "." for same-repo
860
+ sprint_management_path: "d:/Code/agents-sprints" # or "." for same-repo
861
+ ```
862
+
863
+ These values are also passed to bmad-method via `--custom-content` module config or written directly after installation.
864
+
865
+ **Cross-reference file (FR122):**
866
+ In multi-repo mode, the installer creates `_bmad-output/project-layout.yaml` in the CODE repository:
867
+
868
+ ```yaml
869
+ # Generated by ma-agents — do not edit manually
870
+ # Tells agents where to find planning and sprint data
871
+ generated: '2026-03-26'
872
+ knowledgebase:
873
+ mode: remote # or local, or same
874
+ path: "d:/Code/agents-knowledgebase"
875
+ gitUrl: "https://github.com/org/agents-knowledgebase.git" # only if remote
876
+ sprint_management:
877
+ mode: local
878
+ path: "d:/Code/agents-sprints"
879
+ ```
880
+
881
+ **Deterministic output (NFR36):** Same inputs → same file content. The `generated` date is the only varying field.
882
+
883
+ **BMAD workflow path resolution (FR119-FR120):**
884
+ BMAD workflows resolve artifact paths by reading config at runtime. The resolution chain:
885
+
886
+ 1. Workflow reads `knowledgebase_path` from `_bmad/core/config.yaml` (or equivalent module config)
887
+ 2. If value is `"."` → current repo (default, backward compatible)
888
+ 3. If value is an absolute path → use that path
889
+ 4. All planning artifact output goes to `{knowledgebase_path}/_bmad-output/planning-artifacts/`
890
+ 5. Sprint tracking lives at `{sprint_management_path}/_bmad-output/implementation-artifacts/sprint-status.yaml` (unified file per P2-11)
891
+
892
+ **Implementation note:** The actual path resolution happens inside BMAD workflows, not in ma-agents code. ma-agents' job is to (1) collect the paths during installation, (2) store them in config, and (3) stamp them into `project-context.md`. BMAD workflows use the config values. This means no changes to `installer.js`, `agents.js`, or `bmad.js` beyond the wizard collection and config write.
893
+
894
+ **Project-context integration (FR118):**
895
+ The `project-context.template.md` gains a new section when multi-repo is configured:
896
+
897
+ ```markdown
898
+ ### Repository Layout
899
+ - **Knowledgebase:** {{KNOWLEDGEBASE_PATH}}
900
+ - **Sprint Management:** {{SPRINT_MANAGEMENT_PATH}}
901
+ - When creating or reading planning artifacts, use the knowledgebase path
902
+ - When creating or reading sprint/story artifacts, use the sprint management path
903
+ ```
904
+
905
+ Single-repo mode omits this section entirely (NFR34 backward compatibility).
906
+
907
+ **CI/CD mode (FR127 integration):**
908
+ In `--yes` mode, both concerns default to "current repository" — no repo layout prompts. Multi-repo is interactive-only configuration.
909
+
910
+ **Affects:** `cli.js` (new wizard section), `_bmad/core/config.yaml` (new fields), `_bmad-output/project-layout.yaml` (new file), `lib/templates/project-context.template.md` (new section), BMAD workflows (path resolution from config — not ma-agents code changes)
911
+
912
+ #### Decision P2-11: Unified Sprint-Status File Architecture (2026-04-03)
913
+
914
+ **Decision:** Consolidate sprint/backlog management into a single `sprint-status.yaml` file with structured sections, movement semantics, and a tracking-system adapter pattern
915
+
916
+ **Problem:** The previous sprint management design used 3 separate files: `backlog.yaml` (flat prioritized story list), `sprints/sprint-N.yaml` (individual sprint entity files), and `sprint-status.yaml` (status tracking). Multiple files create consistency issues — dual-writes fail, status diverges across files, and users encounter contradictory data. Skills that read or write sprint data must cross-reference multiple sources, increasing complexity and error surface.
917
+
918
+ **Architecture — Unified File Schema:**
919
+
920
+ All sprint and backlog data lives in a single `sprint-status.yaml`:
921
+
922
+ ```yaml
923
+ generated: "2026-04-03T12:00:00Z"
924
+ last_updated: "2026-04-03T12:00:00Z"
925
+ project: ProjectName
926
+ project_key: KEY
927
+ tracking_system: file-system # or "jira" — see adapter pattern below
928
+ story_location: _bmad-output/implementation-artifacts
929
+
930
+ epics:
931
+ epic-1:
932
+ status: in-progress # backlog → in-progress → done
933
+ retrospective: optional # link to retrospective artifact
934
+
935
+ backlog:
936
+ - id: "3-1-story-name"
937
+ type: story # story | bug
938
+ epic: 3
939
+ title: "Story Title"
940
+ priority: 1
941
+ status: backlog # backlog → ready-for-dev → in-progress → review → done
942
+ severity: null # only for bugs: critical | high | medium | low
943
+
944
+ sprints:
945
+ sprint-1:
946
+ name: "Foundation Sprint"
947
+ status: active # planning → active → closed
948
+ capacity: 21
949
+ start: "2026-04-03"
950
+ end: "2026-04-14"
951
+ items:
952
+ - id: "1-2-story-name"
953
+ type: story
954
+ epic: 1
955
+ title: "Story Title"
956
+ status: in-progress
957
+ severity: null
958
+ ```
959
+
960
+ **Core Design Principles:**
961
+
962
+ 1. **Single file, atomic operations** — all reads and writes target one file, eliminating dual-write consistency bugs. Skills use read-modify-write with YAML validation before write.
963
+
964
+ 2. **Movement semantics** — an item exists in exactly ONE section at any time: either `backlog:` or a specific sprint's `items:` list. Moving an item means removing it from the source section and appending it to the target section in a single atomic write. No item duplication, no cross-reference reconciliation.
965
+
966
+ 3. **Status progression on items:**
967
+ - `backlog` → `ready-for-dev` → `in-progress` → `review` → `done` (plus `on-hold` and `cancelled` — see schema spec)
968
+ - Items in `backlog:` section typically have status `backlog`, but may have other statuses (e.g., `ready-for-dev` awaiting sprint assignment)
969
+ - Items in a sprint's `items:` may have any status from `ready-for-dev` through `done`
970
+ - Only items with status `ready-for-dev` may be added to a sprint via `add-to-sprint`
971
+
972
+ 4. **Epic status in structured section:**
973
+ - `backlog` → `in-progress` → `done`
974
+ - Epic status is derived from constituent story progress but stored explicitly for fast lookup
975
+ - Each epic key holds a map with `status` and optional `retrospective` link
976
+
977
+ 5. **Sprint lifecycle states:**
978
+ - `planning` → `active` → `closed`
979
+ - Only one sprint may be `active` at a time
980
+ - `planning` sprints can receive items via `add-to-sprint`
981
+ - `closed` sprints are immutable — no item changes allowed
982
+
983
+ **Close-Sprint Lifecycle Workflow:**
984
+
985
+ The `close-sprint` skill implements a structured sprint closure:
986
+
987
+ 1. **Done items → archive:** Items with status `done` are removed from the sprint's `items:` list. Their corresponding story files are moved from `{story_location}/` to `{story_location}/done/`.
988
+
989
+ 2. **Canceled items → archive separately:** Items explicitly marked as canceled are removed and their story files moved to `{story_location}/done/` with a canceled notation.
990
+
991
+ 3. **Remaining items → user decides:** For each item still in-progress, review, or ready-for-dev, the user is prompted:
992
+ - Move to next sprint (if one exists in `planning` state)
993
+ - Return to backlog (resets status to `backlog`, item moves to `backlog:` section)
994
+ - Decide per-item (interactive item-by-item disposition)
995
+
996
+ 4. **Sprint status → closed:** After all items are dispositioned, the sprint's `status` is set to `closed`. The sprint entry remains in the file as historical record (no deletion).
997
+
998
+ 5. **Timestamps updated:** `last_updated` is refreshed. Sprint `end` date is set to actual close date if different from planned.
999
+
1000
+ **Done Archival Pattern:**
1001
+
1002
+ When items are archived (removed from `sprint-status.yaml`):
1003
+ - The item is deleted from the sprint's `items:` list
1004
+ - The corresponding story file at `{story_location}/{id}.md` is moved to `{story_location}/done/{id}.md`
1005
+ - No trace of the item remains in `sprint-status.yaml` — the `done/` folder is the archive
1006
+ - This keeps the active file lean and focused on current work
1007
+
1008
+ **Jira Adapter Pattern:**
1009
+
1010
+ The `tracking_system` field switches between backends:
1011
+
1012
+ ```yaml
1013
+ tracking_system: file-system # default — all operations read/write sprint-status.yaml
1014
+ tracking_system: jira # future — operations proxy to Jira API
1015
+ ```
1016
+
1017
+ - **`file-system` backend (current):** All 13 affected skills read/write `sprint-status.yaml` directly. The file is the single source of truth.
1018
+ - **`jira` backend (future):** Skills detect `tracking_system: jira` and delegate to a Jira adapter module. The adapter translates unified data model operations (move item, update status, close sprint) into Jira API calls. The `sprint-status.yaml` schema is the canonical data contract — Jira responses are mapped into the same structure.
1019
+ - **Same data model:** Both backends expose identical data shapes. Skills never branch on backend type for business logic — only the I/O layer differs.
1020
+
1021
+ **Skill Integration Map (13 skills affected):**
1022
+
1023
+ | Skill | Rework Level | Operation | Section(s) Touched |
1024
+ |-------|-------------|-----------|-------------------|
1025
+ | `generate-backlog` | Heavy | Writes items to `backlog:` section from epics | `backlog:`, `epics:` |
1026
+ | `add-to-sprint` | Heavy | Moves item from `backlog:` to sprint `items:` | `backlog:`, `sprints:` |
1027
+ | `remove-from-sprint` | Heavy | Moves item from sprint `items:` back to `backlog:` | `sprints:`, `backlog:` |
1028
+ | `sprint-status-view` | Heavy | Reads single file, renders progress | All sections (read-only) |
1029
+ | `cleanup-done` | Heavy | Scans for done items, archives, removes from file | `sprints:`, file system |
1030
+ | `bmad-sprint-planning` | Heavy | Bootstraps unified file from epics data | Creates entire file |
1031
+ | `add-sprint` | Moderate | Adds sprint entry to `sprints:` section | `sprints:` |
1032
+ | `modify-sprint` | Moderate | Updates sprint entry in-place (metadata, items) | `sprints:` |
1033
+ | `bmad-dev-story` | Moderate | Finds item across sections, updates status field | `backlog:` or `sprints:` |
1034
+ | `story-status-lookup` | Light | Searches `backlog:` + all sprint `items:` for item | All sections (read-only) |
1035
+ | `bmad-sprint-status` | Light | Reads structured sections for summary | All sections (read-only) |
1036
+ | `prioritize-backlog` | Light | Reads/writes `backlog:` section to reorder items by priority criteria | `backlog:` |
1037
+ | `close-sprint` | New | Full sprint close lifecycle (see above) | `sprints:`, `backlog:`, file system |
1038
+
1039
+ **Note on skill ownership:** Of the 13 affected skills, 6 are extension module skills delivered via `lib/bmad-extension/skills/` (add-sprint, add-to-sprint, remove-from-sprint, modify-sprint, close-sprint, cleanup-done) and 7 are existing BMAD/ma-agents skills being reworked (generate-backlog, sprint-status-view, bmad-sprint-planning, bmad-dev-story, story-status-lookup, bmad-sprint-status, prioritize-backlog).
1040
+
1041
+ **File Location Resolution:**
1042
+
1043
+ In single-repo mode, `sprint-status.yaml` lives at:
1044
+ ```
1045
+ {sprint_management_path}/_bmad-output/implementation-artifacts/sprint-status.yaml
1046
+ ```
1047
+
1048
+ In multi-repo mode (P2-10), `sprint_management_path` from `_bmad/core/config.yaml` resolves to the sprint management repository. The file path is always `_bmad-output/implementation-artifacts/sprint-status.yaml` relative to that root.
1049
+
1050
+ **Migration from 3-file model:**
1051
+
1052
+ If a project has existing `backlog.yaml`, `sprints/sprint-N.yaml`, or the old `sprint-status.yaml`:
1053
+ 1. `bmad-sprint-planning` detects the legacy files and offers to migrate
1054
+ 2. Items from `backlog.yaml` are loaded into the `backlog:` section
1055
+ 3. Sprint entities from `sprints/sprint-N.yaml` are loaded into `sprints:` with their items
1056
+ 4. Status data from old `sprint-status.yaml` is used to set item statuses
1057
+ 5. Legacy files are renamed with `.legacy` suffix (not deleted — user can verify and remove)
1058
+
1059
+ **Affects:** All 13 skills listed in the integration map above, `sprint-status.yaml` (new unified file), `{story_location}/done/` (archive directory)
1060
+
1061
+ #### Phase 2 Decision Impact Analysis (Updated 2026-04-03)
1062
+
1063
+ **Implementation Sequence:**
1064
+ 1. Agent registry extension (`agents.js`) — add OpenCode + `injectionStrategy` to all agents
1065
+ 2. Instruction injection refactor (`installer.js`) — TOP placement + JSON injection path
1066
+ 3. Extension module restructure (`lib/bmad-extension/`) — 6.2.0 module pattern with `code` field, agents as skill folders, workflows as skill folders (P2-9)
1067
+ 4. MIL-498 workflow conversion — 11 YAML/XML workflows → SKILL.md packages with progressive disclosure step files (P2-9)
1068
+ 5. SRE/DevOps/Cyber workflow packaging — 23 `.md` workflows → SKILL.md skill packages (P2-9)
1069
+ 6. Extension deployment via `--custom-content` (`bmad.js`) — replaces manual copy (P2-9)
1070
+ 7. Built-in agent `.customize.yaml` deployment (`bmad.js`) — 8 files to `_bmad/_config/agents/` for critical_actions (P2-9)
1071
+ 8. Explicit parameter passing (`bmad.js`) — replace silent install with `buildBmadArgs()` (P2-6 rev)
1072
+ 9. `auto-bug-detection` skill creation (`skills/auto-bug-detection/`)
1073
+ 10. `.gitignore` update logic (`installer.js`) — don't add `_bmad-output`
1074
+ 11. Bundled BMAD installation (`bmad.js`, `package.json`, `lib/bmad-cache/`) — bmad-method v6.2.0 + 5 external modules (bmb, cis, tea, gds, wds)
1075
+ 12. Project context auto-generation (`installer.js`, `lib/templates/project-context.template.md`)
1076
+ 13. Multi-repo layout wizard (`cli.js`) — collect knowledgebase/sprint paths, write config + project-layout.yaml (P2-10)
1077
+ 14. Migration detection (`bmad.js`) — detect 6.0.4, back up, upgrade, merge customizations (P2-9)
1078
+ 15. Unified sprint-status file architecture — consolidate 3-file model into single `sprint-status.yaml`, update 13 skills (P2-11)
1079
+ 16. Close-sprint workflow skill — sprint close lifecycle with done archival and item disposition (P2-11)
1080
+
1081
+ **New Cross-Component Dependencies:**
1082
+ - `injectionStrategy` in `agents.js` drives `installer.js` injection behavior
1083
+ - `bmad.js` deploys `lib/bmad-extension/` via `--custom-content` — all extension content moves together
1084
+ - `bmad.js` separately deploys `.customize.yaml` for 8 built-in agents AFTER `--custom-content`
1085
+ - `critical_actions` in agent SKILL.md and `.customize.yaml` reference `skills/MANIFEST.yaml` — depends on skill installation completing first
1086
+ - All sprint management skills read/write the unified `sprint-status.yaml` — single file eliminates cross-file consistency concerns
1087
+ - `close-sprint` skill depends on `story_location` field in `sprint-status.yaml` to resolve archive paths
1088
+ - `sprint-status.yaml` location depends on `sprint_management_path` from P2-10 multi-repo config
1089
+ - Multi-repo config in `_bmad/core/config.yaml` is read by BMAD workflows at runtime — ma-agents writes it, BMAD workflows consume it
1090
+ - `project-layout.yaml` in code repo enables agents to discover cross-repo paths without re-running installation
1091
+
1092
+ ## Implementation Patterns & Consistency Rules
1093
+
1094
+ ### Critical Conflict Points
1095
+
1096
+ 6 areas where AI agents working on the ma-agents codebase could make incompatible choices:
1097
+
1098
+ ### Naming Patterns
1099
+
1100
+ **File & Module Naming:**
1101
+ - Source files: `kebab-case.js` (e.g., `cli.js`, `installer.js`, `agents.js`)
1102
+ - Skill directories: `kebab-case` (e.g., `security-skill`, `cpp-best-practices`)
1103
+ - BMAD agents: `kebab-case` with role prefix (e.g., `bmm-sre`, `bmm-devops`, `cis-storyteller`)
1104
+ - Templates: `<agent-name>.md` matching the agent registry key exactly
1105
+
1106
+ **Code Naming:**
1107
+ - Functions: `camelCase` (e.g., `installSkills`, `getAgentPath`, `applyCustomizations`)
1108
+ - Variables: `camelCase` (e.g., `skillList`, `agentConfig`, `manifestData`)
1109
+ - Constants: `UPPER_SNAKE_CASE` only for true constants (e.g., `MANIFEST_VERSION`)
1110
+ - No class-based patterns — the codebase uses plain functions and objects
1111
+
1112
+ **JSON/YAML Fields:**
1113
+ - `skill.json`: `snake_case` keys (e.g., `always_load`, `skill_name`) — established convention
1114
+ - `.ma-agents.json` manifest: `camelCase` keys — established convention
1115
+ - `config.yaml`: `snake_case` keys — BMAD convention
1116
+
1117
+ ### Structure Patterns
1118
+
1119
+ **Project Organization (established, do not restructure):**
1120
+ ```
1121
+ bin/cli.js — CLI entry point and command routing
1122
+ lib/installer.js — Core installation engine
1123
+ lib/agents.js — Agent registry and configuration
1124
+ lib/bmad.js — BMAD integration subsystem
1125
+ skills/ — Skill library (self-contained directories)
1126
+ index.js — Programmatic API exports
1127
+ ```
1128
+
1129
+ **Skill Directory Structure (mandatory for all new skills):**
1130
+ ```
1131
+ skills/<skill-name>/
1132
+ skill.json — metadata SSoT (REQUIRED)
1133
+ SKILL.md — canonical content (REQUIRED)
1134
+ templates/ — agent-specific templates (optional)
1135
+ claude-code.md
1136
+ generic.md
1137
+ references/ — supporting docs (optional)
1138
+ assets/ — templates/configs (optional)
1139
+ ```
1140
+
1141
+ **Where tests go:** `tests/` directory at project root, mirroring source structure (e.g., `tests/installer.test.js`). Co-located tests are not used.
1142
+
1143
+ ### Format Patterns
1144
+
1145
+ **Console Output:**
1146
+ - User-facing messages: plain text with chalk colors (green=success, yellow=warning, red=error)
1147
+ - Progress indicators: simple line-by-line output, no spinners or progress bars
1148
+ - List output: indented with ` - ` prefix
1149
+ - No emoji in CLI output unless explicitly requested
1150
+
1151
+ **Error Messages:**
1152
+ - Format: `Error: <what went wrong>` followed by ` Hint: <how to fix>` on next line
1153
+ - Never expose stack traces to users — log to debug only
1154
+ - Always suggest a recovery action when possible
1155
+
1156
+ **Skill Metadata (skill.json):**
1157
+ ```json
1158
+ {
1159
+ "name": "skill-name",
1160
+ "version": "1.0.0",
1161
+ "description": "One-line description",
1162
+ "category": "one of: security|architecture|testing|documentation|workflow|language",
1163
+ "tags": ["tag1", "tag2"],
1164
+ "always_load": false
1165
+ }
1166
+ ```
1167
+
1168
+ ### Process Patterns
1169
+
1170
+ **Adding a New Agent:**
1171
+ 1. Add configuration object to `agents.js` registry array
1172
+ 2. Define: name, category, platform paths, instruction file, resource map
1173
+ 3. No changes to `installer.js` or other modules (NFR13)
1174
+ 4. Test: install a skill targeting the new agent, verify file placement
1175
+
1176
+ **Adding a New Skill:**
1177
+ 1. Create skill directory under `skills/`
1178
+ 2. Add `skill.json` (metadata) and `SKILL.md` (content) — both required
1179
+ 3. Optionally add `templates/<agent>.md` for agent-specific content
1180
+ 4. No changes to installer or any other module (NFR14)
1181
+ 5. Test: `npx ma-agents list` shows the skill, install works for target agents
1182
+
1183
+ **Modifying the Install Pipeline:**
1184
+ 1. Changes to `installer.js` must preserve the 5-stage pipeline order
1185
+ 2. Manifest writes must remain atomic (read → validate → write)
1186
+ 3. All file operations must use `path.join()` — never string concatenation for paths
1187
+ 4. New operations must be additive-only unless explicitly implementing uninstall
1188
+
1189
+ **Modifying BMAD Integration:**
1190
+ 1. Changes to `bmad.js` must preserve the 6-stage pipeline order
1191
+ 2. YAML configs always before recompile, workflows/templates/agents always after
1192
+ 3. Never skip the recompile step — downstream customizations depend on it
1193
+
1194
+ ### Enforcement Guidelines
1195
+
1196
+ **All AI Agents Working on This Codebase MUST:**
1197
+ - Use `path.join()` for all file path construction — never `/` or `\\` concatenation
1198
+ - Preserve existing module boundaries — no merging modules or moving functions between files without explicit instruction
1199
+ - Keep the codebase dependency-minimal — no new npm dependencies without explicit approval
1200
+ - Follow the established 4-module architecture — new functionality goes into the most relevant existing module or a new module if genuinely needed
1201
+
1202
+ **Anti-Patterns (Never Do):**
1203
+ - Adding TypeScript, build steps, or transpilation
1204
+ - Importing external frameworks (Express, Commander, etc.)
1205
+ - Creating class hierarchies — use plain functions and objects
1206
+ - Hardcoding agent names or skill names in installer logic
1207
+ - Using `process.platform` checks outside of `agents.js` — platform awareness is centralized there
1208
+
1209
+ ### Phase 2 Implementation Patterns (2026-03-11)
1210
+
1211
+ #### Injection Strategy Patterns
1212
+
1213
+ **Markdown Injection (TOP placement):**
1214
+ ```
1215
+ <!-- MA-AGENTS-START -->
1216
+ <injected skill-loading instructions>
1217
+ <!-- MA-AGENTS-END -->
1218
+ ```
1219
+ - `skipPatterns: ['---']` means skip the entire delimited block (e.g., YAML frontmatter between `---` pairs), not just the delimiter line
1220
+ - **Update scenario:** Find existing `MA-AGENTS-START` → `MA-AGENTS-END` block, replace in-place at the same position
1221
+ - **New injection:** Insert block after skipped headers, before all other content
1222
+ - Injection logic in `installer.js` is format-agnostic — all format knowledge lives in `agents.js` via `injectionStrategy`
1223
+
1224
+ **JSON Injection (OpenCode):**
1225
+ - No comment markers — JSON doesn't support comments
1226
+ - **Detection:** ma-agents entries in the `instructions` array are identified by a known prefix (e.g., entries containing `[ma-agents]` tag)
1227
+ - **Update scenario:** Filter out existing ma-agents entries from `instructions` array, then append fresh entries
1228
+ - **New file:** Create `opencode.json` with complete ma-agents configuration
1229
+ - **Existing file:** Read → parse → merge `instructions` array (additive-only, NFR18) → preserve all other keys → write back
1230
+ - Uses same read-validate-write pattern as manifest management (NFR7)
1231
+
1232
+ #### Extension Module Authoring Patterns
1233
+
1234
+ **Built-in Agent `.customize.yaml` (critical_actions only):**
1235
+ ```yaml
1236
+ # MA-AGENTS: skill enforcement for bmm-<role>
1237
+ critical_actions:
1238
+ 1: "Read the skills MANIFEST at {project-root}/skills/MANIFEST.yaml"
1239
+ 2: "For each skill marked always_load: true, read the skill file completely"
1240
+ 3: "Follow all skill directives during this session"
1241
+ ```
1242
+
1243
+ **Custom Agent `.customize.yaml` (full customization):**
1244
+ ```yaml
1245
+ # MA-AGENTS: full customization for bmm-<role>
1246
+ persona: |
1247
+ <persona content>
1248
+ menu:
1249
+ <menu entries>
1250
+ critical_actions:
1251
+ 1: "Read the skills MANIFEST at {project-root}/skills/MANIFEST.yaml"
1252
+ 2: "For each skill marked always_load: true, read the skill file completely"
1253
+ 3: "Follow all skill directives during this session"
1254
+ 4: "<agent-specific action if needed>"
1255
+ ```
1256
+
1257
+ **Rules:**
1258
+ - Always use YAML block style (not flow style)
1259
+ - Always quote action string values
1260
+ - `critical_actions` 1-3 are identical across all 11 agents — treat as a template constant
1261
+ - Custom agents MAY add actions 4+ for agent-specific needs
1262
+ - Built-in agents MUST NOT include persona or menu overrides — only `critical_actions`
1263
+
1264
+ #### Extension Workflow Patterns
1265
+
1266
+ - Each workflow directory: `workflows/<workflow-name>/workflow.md`
1267
+ - Follows existing BMAD workflow conventions (same structure as `_bmad/bmm/workflows/`)
1268
+ - `module-help.csv` entries follow BMAD's established CSV schema for phase registration
1269
+ - NFR19 compliance is automatic — BMAD's registration system supports both menu and slash command invocation for all registered workflows
1270
+ - No custom invocation handling needed
1271
+
1272
+ #### `_bmad-output` Gitignore Patterns
1273
+
1274
+ - **During install:** If `_bmad-output` is found in `.gitignore`, remove that line
1275
+ - **New installs:** Never add `_bmad-output` to `.gitignore`
1276
+ - **User notification:** Print `"_bmad-output is now tracked as project knowledge (not gitignored)"`
1277
+ - **Backward compatibility:** Existing projects with `_bmad-output` in `.gitignore` get it removed on next install/update
1278
+
1279
+ #### `auto-bug-detection` Skill Pattern
1280
+
1281
+ - Standard skill schema: `skill.json` + `SKILL.md` + optional `templates/`
1282
+ - `always_load: true` — bug detection active for all agents by default
1283
+ - Passive enforcement model — skill content instructs agents on detection/reporting behavior
1284
+ - BMAD `critical_actions` ensure the skill is loaded; the skill itself defines what the agent does with it
1285
+ - Follows all existing skill authoring patterns from Phase 1
1286
+
1287
+ #### Phase 2 Enforcement Additions
1288
+
1289
+ **All AI Agents Working on Phase 2 Features MUST:**
1290
+ - Never put format-awareness logic in `installer.js` — all agent format knowledge belongs in `agents.js` via `injectionStrategy`
1291
+ - Use `<!-- MA-AGENTS-START -->` / `<!-- MA-AGENTS-END -->` markers for all markdown injections — no other marker format
1292
+ - Keep `critical_actions` 1-3 identical across all 11 agent customize files — divergence breaks the enforcement model
1293
+ - Use additive-only merge for `opencode.json` — never remove or overwrite existing user configuration
1294
+
1295
+ **Phase 2 Anti-Patterns:**
1296
+ - Hardcoding injection positions (line numbers, byte offsets) instead of using skip pattern parsing
1297
+ - Creating per-agent injection logic in `installer.js` instead of driving behavior from `agents.js` registry
1298
+ - Modifying bmad-method core files instead of using extension module APIs (NFR17 violation)
1299
+ - Adding `_bmad-output` to `.gitignore` (reverses F3 intent)
1300
+ - Fetching bmad-method via `npx` instead of using the npm dependency copy (breaks air-gap, NFR20 violation)
1301
+ - Letting bmad-method auto-fetch external modules without pre-populating the cache first (breaks air-gap)
1302
+ - Including `.git/` directories in `lib/bmad-cache/` — wastes package size, not needed for installation
1303
+
1304
+ ## Project Structure & Boundaries
1305
+
1306
+ ### Complete Project Directory Structure
1307
+
1308
+ ```
1309
+ ma-agents/
1310
+ ├── package.json — npm package config, version, bin entry
1311
+ ├── index.js — programmatic API exports
1312
+ ├── README.md — user-facing documentation
1313
+ ├── QUICK_START.md — getting started guide
1314
+ ├── DEVELOPMENT.md — contributor development guide
1315
+ ├── CONTRIBUTING.md — contribution guidelines
1316
+ ├── SKILLS_STRUCTURE.md — skill authoring reference
1317
+ ├── LICENSE — project license
1318
+ ├── .gitignore — excludes node_modules, _bmad/, .claude/ (NOT _bmad-output — tracked as project knowledge per F3)
1319
+
1320
+ ├── bin/
1321
+ │ └── cli.js — CLI entry point, command routing, interactive wizard
1322
+
1323
+ ├── lib/
1324
+ │ ├── installer.js — core install engine, manifest management, MANIFEST.yaml gen
1325
+ │ ├── agents.js — agent registry (12 agents incl. OpenCode), platform paths, resource maps
1326
+ │ ├── bmad.js — BMAD lifecycle: install, update, customize, recompile, bundled cache pre-population
1327
+ │ ├── bmad-cache/ — pre-cloned BMAD external modules (committed, built via build:bmad-cache)
1328
+ │ │ ├── bmb/ — bmad-builder (with pre-installed node_modules, no .git/)
1329
+ │ │ ├── cis/ — bmad-creative-intelligence-suite
1330
+ │ │ ├── tea/ — bmad-method-test-architecture-enterprise
1331
+ │ │ └── gds/ — bmad-game-dev-studio
1332
+ │ ├── bmad-extension/ — BMAD extension module (deployed via --custom-content)
1333
+ │ │ ├── module.yaml — code: ma-skills, extends-module: bmm
1334
+ │ │ ├── module-help.csv — capability registry for agents + workflows
1335
+ │ │ └── skills/ — all agents and workflows as BMAD 6.2.0 skills
1336
+ │ │ ├── bmad-ma-agent-sre/ — agent skill: Alex (SRE)
1337
+ │ │ │ ├── SKILL.md — full agent definition
1338
+ │ │ │ └── bmad-skill-manifest.yaml — type: agent
1339
+ │ │ ├── bmad-ma-agent-devops/ — agent skill: Amit (DevOps)
1340
+ │ │ ├── bmad-ma-agent-cyber/ — agent skill: Yael (Cyber)
1341
+ │ │ ├── bmad-ma-agent-mil498/ — agent skill: Joseph (MIL-498)
1342
+ │ │ ├── mil498-sss/ — MIL-498 DID workflow (Complex Workflow)
1343
+ │ │ │ ├── SKILL.md
1344
+ │ │ │ ├── bmad-skill-manifest.yaml — type: skill
1345
+ │ │ │ ├── template.md
1346
+ │ │ │ └── prompts/ — step files
1347
+ │ │ ├── mil498-ssdd/ ... mil498-hrs/ — (11 MIL-498 DID workflows total)
1348
+ │ │ ├── sre-health-check/ ... sre-gitops-status/ — (9 SRE playbooks)
1349
+ │ │ ├── devops-configure-infrastructure/ ... devops-sign-docker-image/ — (6 DevOps playbooks)
1350
+ │ │ ├── cyber-vulnerability-scan/ ... cyber-verify-image-signature/ — (8 Cyber playbooks)
1351
+ │ │ ├── create-bug-story/ — bug story from report (FR61)
1352
+ │ │ ├── add-sprint/ — new sprint entry in unified sprint-status.yaml (FR68)
1353
+ │ │ ├── modify-sprint/ — update sprint metadata/items in unified file (FR70)
1354
+ │ │ ├── add-to-sprint/ — move items from backlog to sprint in unified file (FR69)
1355
+ │ │ ├── close-sprint/ — sprint close lifecycle: archive done, disposition remaining (P2-11)
1356
+ │ │ └── remove-from-sprint/ — move items from sprint back to backlog
1357
+ │ └── bmad-customize/ — .customize.yaml for built-in BMM agents (deployed to _bmad/_config/agents/)
1358
+ │ ├── bmm-pm.customize.yaml — critical_actions only
1359
+ │ ├── bmm-architect.customize.yaml
1360
+ │ ├── bmm-dev.customize.yaml
1361
+ │ ├── bmm-qa.customize.yaml
1362
+ │ ├── bmm-sm.customize.yaml
1363
+ │ ├── bmm-tech-writer.customize.yaml
1364
+ │ ├── bmm-ux-designer.customize.yaml
1365
+ │ └── core-bmad-master.customize.yaml — bmad-master critical_actions
1366
+
1367
+ ├── skills/ — skill library (28 skills incl. auto-bug-detection, self-contained directories)
1368
+ │ ├── <skill-name>/
1369
+ │ │ ├── skill.json — metadata SSoT
1370
+ │ │ ├── SKILL.md — canonical content
1371
+ │ │ ├── templates/ — agent-specific templates (optional)
1372
+ │ │ │ ├── claude-code.md
1373
+ │ │ │ ├── cline.md
1374
+ │ │ │ └── generic.md
1375
+ │ │ ├── references/ — supporting docs (optional)
1376
+ │ │ └── assets/ — templates/configs (optional)
1377
+ │ └── MANIFEST.yaml — generated skill index for agent consumption
1378
+
1379
+ ├── _bmad/ — BMAD-METHOD installation (git-ignored, installed at runtime)
1380
+ │ ├── core/ — BMAD core workflows, tasks, agents
1381
+ │ ├── bmm/ — BMM module (workflows, config, templates)
1382
+ │ │ ├── config.yaml — project-specific BMM configuration
1383
+ │ │ └── workflows/ — BMAD workflow library
1384
+ │ └── _config/ — BMAD configuration and catalog
1385
+
1386
+ ├── _bmad-output/ — BMAD workflow outputs (version-controlled as project knowledge, NOT git-ignored per F3)
1387
+ │ ├── planning-artifacts/ — PRD, architecture, epics
1388
+ │ ├── implementation-artifacts/ — stories, specs
1389
+ │ │ ├── done/ — archived done/canceled story files (P2-11 close-sprint)
1390
+ │ │ └── sprint-status.yaml — unified sprint/backlog tracking (P2-11 — single source of truth)
1391
+
1392
+ ├── docs/ — generated project documentation
1393
+ │ ├── index.md — documentation master index
1394
+ │ ├── project-overview.md — executive summary
1395
+ │ ├── architecture.md — existing architecture reference
1396
+ │ ├── source-tree-analysis.md — annotated directory tree
1397
+ │ └── development-guide.md — setup and common tasks
1398
+
1399
+ └── tests/ — test directory (Phase 2 — currently empty)
1400
+ ├── installer.test.js — installer engine tests
1401
+ ├── agents.test.js — agent registry tests
1402
+ ├── bmad.test.js — BMAD integration tests
1403
+ └── cli.test.js — CLI command tests
1404
+ ```
1405
+
1406
+ ### Architectural Boundaries
1407
+
1408
+ **Module Boundaries (4 modules, strict separation):**
1409
+
1410
+ | Module | Responsibility | Talks To | Never Touches |
1411
+ |--------|---------------|----------|---------------|
1412
+ | `cli.js` | Command parsing, user interaction, wizard flow | installer.js, agents.js, bmad.js | File system directly (delegates to installer) |
1413
+ | `installer.js` | Skill install/uninstall, manifest CRUD, MANIFEST.yaml generation | agents.js (for paths/config) | BMAD lifecycle (delegates to bmad.js) |
1414
+ | `agents.js` | Agent registry, platform path resolution, resource maps | Nothing (pure data + path functions) | Install logic, BMAD logic |
1415
+ | `bmad.js` | BMAD install/update/customize/recompile pipeline | File system (fs operations) | Agent registry, skill install logic |
1416
+
1417
+ **Data Flow Boundaries:**
1418
+ ```
1419
+ User Input → cli.js → installer.js → agents.js (path lookup) → file system
1420
+ → bmad.js (if BMAD requested) → file system
1421
+ → installer.js (manifest update) → .ma-agents.json
1422
+ ```
1423
+
1424
+ ### Requirements to Structure Mapping
1425
+
1426
+ | FR Category | Primary Module | Directory |
1427
+ |-------------|---------------|-----------|
1428
+ | Skill Management (FR1-7) | `installer.js` | `skills/`, target agent directories |
1429
+ | BMAD Integration (FR8-12) | `bmad.js` | `_bmad/` |
1430
+ | MIL-STD-498 Generation (FR13-23) | BMAD workflows | `_bmad/bmm/workflows/` |
1431
+ | SDLC Workflow Execution (FR24-33) | BMAD workflows | `_bmad/bmm/workflows/`, `_bmad/core/` |
1432
+ | Agent Targeting (FR34-38) | `agents.js` + `installer.js` | `lib/agents.js`, `skills/*/templates/` |
1433
+ | Skill Authoring (FR39-43) | `installer.js` (MANIFEST.yaml gen) | `skills/` |
1434
+ | Environment & Deployment (FR44-47) | `agents.js` (paths) + `installer.js` (manifest) | Platform-specific agent directories |
1435
+ | Audit & Traceability (FR48-50) | BMAD workflows | `_bmad/bmm/workflows/` |
1436
+ | Skill Enforcement (FR51-55) | `installer.js` + `agents.js` + `bmad.js` | `lib/bmad-extension/agents/` |
1437
+ | OpenCode Support (FR56-58) | `agents.js` + `installer.js` | `.opencode/`, `opencode.json` |
1438
+ | Project Knowledge (FR59-60) | `installer.js` | `.gitignore` modification |
1439
+ | Bug Management (FR61-65) | BMAD extension workflows + skill | `lib/bmad-extension/skills/`, `skills/auto-bug-detection/` |
1440
+ | Sprint Management (FR66-71) | BMAD extension workflows + unified `sprint-status.yaml` (P2-11) | `lib/bmad-extension/skills/`, `_bmad-output/implementation-artifacts/sprint-status.yaml` |
1441
+ | Bundled BMAD (FR74-FR76) | `bmad.js` + `lib/bmad-cache/` + `package.json` | `lib/bmad-cache/`, `bmad.js` |
1442
+
1443
+ ### Integration Points
1444
+
1445
+ **Internal Communication:**
1446
+ - `cli.js` calls `installer.js` functions directly (same process, no IPC)
1447
+ - `installer.js` calls `agents.js` for path resolution and agent config lookup
1448
+ - `cli.js` calls `bmad.js` directly for BMAD lifecycle operations
1449
+ - No event bus, no message queue — synchronous function calls within one process
1450
+
1451
+ **External Integrations:**
1452
+ - npm registry (distribution only — `npx` handles this, not our code)
1453
+ - File system (the only external system the tool interacts with at runtime)
1454
+ - No network calls, no APIs, no databases
1455
+
1456
+ ## Architecture Validation Results
1457
+
1458
+ ### Coherence Validation
1459
+
1460
+ **Decision Compatibility:** PASS
1461
+ - Node.js runtime + plain JavaScript + no build step + no framework — all align
1462
+ - 4-module architecture with strict boundaries maps cleanly to the extensibility model
1463
+ - Pipeline architectures (5-stage install, 6-stage BMAD) don't conflict
1464
+ - P2-1 (TOP injection) and P2-2 (JSON injection) are independent strategies driven by `agents.js` registry
1465
+ - P2-6 rev (explicit params) + P2-9 (module restructure) work together: `--custom-content` deploys the restructured module, explicit params ensure correct tool/module selection
1466
+ - P2-9 (agents as skills) + P2-4 (critical_actions) — clean separation: custom agents embed critical_actions in SKILL.md, built-in agents get critical_actions via `.customize.yaml`
1467
+ - P2-10 (multi-repo) integrates cleanly: config values written at install time, consumed by BMAD workflows at runtime
1468
+ - P2-11 (unified sprint-status) + P2-10 (multi-repo) — `sprint_management_path` resolves file location, unified file eliminates cross-repo dual-write risk
1469
+ - P2-11 (unified sprint-status) + P2-5 (extension workflows) — all 6 sprint workflows target the same single file, movement semantics enforce item uniqueness
1470
+ - bmad-method v6.2.0 pin aligns with skill-based module structure in P2-9
1471
+
1472
+ **Note:** P2-3 (Extension Module Structure, 2026-03-11) is now HISTORICAL — superseded by P2-9 which restructures the extension module to follow BMAD 6.2.0 conventions. P2-4 (critical_actions) references updated: custom agents' critical_actions now live in SKILL.md (not `.customize.yaml`); built-in agent customizations now live in `lib/bmad-customize/` (not `lib/bmad-extension/agents/`).
1473
+
1474
+ **Pattern Consistency:** PASS
1475
+ - Agent skill naming (`bmad-ma-agent-sre`) follows verified CIS convention (`bmad-cis-agent-innovation-strategist`)
1476
+ - Workflow skill naming (`mil498-srs`, `sre-health-check`) follows CIS convention (`bmad-cis-innovation-strategy`)
1477
+ - `bmad-skill-manifest.yaml` uses same fields as CIS (type, name, displayName, module)
1478
+ - `.customize.yaml` array syntax for critical_actions matches BMAD 6.2.0 documentation
1479
+ - Naming conventions (camelCase code, kebab-case files, snake_case skill.json) remain consistent
1480
+
1481
+ **Structure Alignment:** PASS
1482
+ - `lib/bmad-extension/skills/` mirrors CIS `src/skills/` pattern
1483
+ - `lib/bmad-customize/` cleanly separates module-owned agents from built-in agent customizations
1484
+ - `--custom-content` deployment replaces manual file copying — follows BMAD's official deployment mechanism
1485
+ - Module boundary table still holds: `bmad.js` handles extension deployment + customize deployment
1486
+
1487
+ ### Requirements Coverage Validation
1488
+
1489
+ **Functional Requirements Coverage:**
1490
+
1491
+ | FR Category | Architectural Support | Status |
1492
+ |-------------|----------------------|--------|
1493
+ | Skill Management (FR1-7) | Install pipeline + manifest manager | COVERED |
1494
+ | BMAD Integration (FR8-12) | BMAD pipeline architecture | COVERED |
1495
+ | MIL-STD-498 Generation (FR13-23) | BMAD workflows (via extension module skills) | COVERED |
1496
+ | SDLC Workflows (FR24-33) | BMAD workflows | COVERED |
1497
+ | Agent Targeting (FR34-38) | Agent registry + template resolution chain | COVERED |
1498
+ | Skill Authoring (FR39-43) | Skill schema contract + MANIFEST.yaml generation | COVERED |
1499
+ | Environment & Deployment (FR44-47) | Cross-platform paths + offline operation | COVERED |
1500
+ | Audit & Traceability (FR48-50) | BMAD workflows + ai-audit-trail skill | COVERED |
1501
+ | Skill Enforcement (FR51-55) | P2-1 + P2-9 + P2-4: injection strategies, agent SKILL.md, built-in .customize.yaml | COVERED |
1502
+ | OpenCode Support (FR56-57) | P2-2: JSON injection + new agent registry entry | COVERED |
1503
+ | Project Knowledge (FR58-59) | Gitignore pattern: remove `_bmad-output` from `.gitignore` | COVERED |
1504
+ | Bug Management (FR60-64) | P2-5: extension workflow skill + `auto-bug-detection` skill | COVERED |
1505
+ | Sprint Management (FR65-71) | P2-5 + P2-11: 6 extension workflow skills (add/modify/add-to/remove-from/close sprint) operating on unified `sprint-status.yaml` | COVERED |
1506
+ | Agent Activity Dashboard (FR87-93) | Deferred to Phase 3 | N/A |
1507
+ | Agent Conversion (FR94-97) | P2-9: agent skill folders with SKILL.md + bmad-skill-manifest.yaml | COVERED |
1508
+ | MIL-498 Workflow Conversion (FR98-100) | P2-9: Complex Workflow skills with prompts/ step files | COVERED |
1509
+ | SRE/DevOps/Cyber Conversion (FR101-103) | P2-9: skill packages with SKILL.md | COVERED |
1510
+ | Module Architecture (FR104-106) | P2-9: module.yaml with code field, skills/ layout, dual-layer eliminated | COVERED |
1511
+ | Upgrade Path (FR107-110) | P2-9: migration detection, backup, upgrade, merge, cleanup | COVERED |
1512
+ | Multi-Repo Layout (FR111-122) | P2-10: wizard, config, project-layout.yaml, path resolution | COVERED |
1513
+ | Bundled Install + Params (FR74-76, FR123-127) | P2-6 rev: buildBmadArgs(), explicit flags, --custom-content | COVERED |
1514
+ | Developer Infrastructure (FR73) | Tests directory defined | COVERED |
1515
+ | Methodology Onboarding (FR72) | Bundled presentation deployment | COVERED |
1516
+ | Project Context (FR79-86) | P2-7: template-based generation, platform paths, critical_actions | COVERED |
1517
+
1518
+ **Non-Functional Requirements Coverage:**
1519
+
1520
+ | NFR | Architectural Support | Status |
1521
+ |-----|----------------------|--------|
1522
+ | NFR1-4 (Security) | No network calls, plain text content, additive-only ops | COVERED |
1523
+ | NFR5-8 (Integration Reliability) | Pipeline ordering, atomic manifests, additive installs | COVERED |
1524
+ | NFR9-12 (Portability) | path.join centralization, template resolution chain, Node LTS | COVERED |
1525
+ | NFR13-15 (Maintainability) | Config-driven agent registry, directory-scanned skills, backward compat | COVERED |
1526
+ | NFR16-19 (BMAD Extension) | Module identity via code field, zero core mods, additive JSON, dual invocation | COVERED |
1527
+ | NFR20-21 (Bundled Install) | Version pinning to 6.2.0, deterministic bundled output | COVERED |
1528
+ | NFR22-25 (Project Context) | Template-based, idempotent, version comment | COVERED |
1529
+ | NFR26-28 (Dashboard) | Deferred to Phase 3 | N/A |
1530
+ | NFR29 (Atomic migration) | P2-9: backup before, restore on failure | COVERED |
1531
+ | NFR30 (Functional equivalence) | P2-9: same menus, same workflows in new format | COVERED |
1532
+ | NFR31 (Lint gate compliance) | P2-9: follows verified CIS module pattern | COVERED |
1533
+ | NFR32 (Output equivalence) | P2-9: same templates, same step files | COVERED |
1534
+ | NFR33 (Anti-zombie idempotency) | Depends on bmad-method setup skill behavior | MINOR GAP |
1535
+ | NFR34-37 (Multi-Repo) | P2-10: backward compat, air-gapped, deterministic, config-driven | COVERED |
1536
+
1537
+ ### Implementation Readiness Validation
1538
+
1539
+ **Decision Completeness:** HIGH
1540
+ - 11 Phase 2 decisions documented (P2-1 through P2-11, with P2-3 superseded by P2-9)
1541
+ - P2-6 rev includes code example with full parameter mapping table
1542
+ - P2-9 includes verified module structure from CIS, manifest examples, migration detection code
1543
+ - P2-10 includes wizard flow, config storage format, cross-reference file schema
1544
+ - P2-11 includes unified YAML schema, movement semantics, close-sprint lifecycle, Jira adapter pattern, 13-skill integration map
1545
+
1546
+ **Pattern Completeness:** HIGH
1547
+ - CIS module pattern verified against actual source code — not assumed
1548
+ - Agent skill naming, manifest fields, module.yaml structure all confirmed
1549
+ - `.customize.yaml` behavior (appends vs replaces) documented from BMAD 6.2.0 official docs
1550
+ - `--custom-content` validation rules documented (requires module.yaml with code field)
1551
+
1552
+ **Structure Completeness:** HIGH
1553
+ - Full directory tree updated with 44-skill extension module layout (42 + close-sprint + remove-from-sprint)
1554
+ - `lib/bmad-customize/` separated from `lib/bmad-extension/`
1555
+ - Module boundary table still accurate — `bmad.js` handles both extension and customize deployment
1556
+ - `_bmad-output/` structure updated with `sprint-status.yaml` and `done/` archive directory
1557
+
1558
+ ### Gap Analysis Results
1559
+
1560
+ **No Critical Gaps.** All 141 FRs and 37 NFRs have architectural support (excluding Phase 3 deferred items). P2-11 closes the sprint data consistency gap identified during skill development.
1561
+
1562
+ **Important Gaps:**
1563
+ - Testing framework not yet decided — blocks regression testing
1564
+ - Visual Studio integration mechanism unknown — blocks new agent target (Phase 3)
1565
+ - P2-3 should be marked as HISTORICAL in the document to avoid confusion with P2-9
1566
+
1567
+ **Minor Gaps:**
1568
+ - NFR33 (anti-zombie idempotency) depends on bmad-method behavior, not ma-agents architecture
1569
+ - No formal error code catalog
1570
+ - No formal logging strategy
1571
+
1572
+ ### Architecture Completeness Checklist
1573
+
1574
+ **Requirements Analysis**
1575
+ - [x] Project context thoroughly analyzed (141 FRs, 37 NFRs)
1576
+ - [x] Scale and complexity assessed
1577
+ - [x] Technical constraints identified
1578
+ - [x] Cross-cutting concerns mapped (enforcement, multi-repo path resolution, 6.2.0 migration)
1579
+
1580
+ **Architectural Decisions**
1581
+ - [x] Critical decisions documented with rationale (P2-1 through P2-10)
1582
+ - [x] Technology stack fully specified (Node.js, bmad-method v6.2.0)
1583
+ - [x] Pipeline architectures defined (5-stage install, 6-stage BMAD, 14-step Phase 2 implementation)
1584
+ - [x] Extensibility model formalized (config-driven agents, directory-scanned skills, BMAD module pattern)
1585
+ - [x] Module architecture verified against BMAD 6.2.0 source (CIS module reference)
1586
+
1587
+ **Implementation Patterns**
1588
+ - [x] Naming conventions established (agent skills follow CIS naming)
1589
+ - [x] Structure patterns defined (skill folders, manifest files)
1590
+ - [x] Format patterns specified (YAML array syntax for critical_actions)
1591
+ - [x] Process patterns documented (adding agents, skills, workflows)
1592
+ - [x] Anti-patterns explicitly listed (both Phase 1 and Phase 2)
1593
+
1594
+ **Project Structure**
1595
+ - [x] Complete directory structure defined (44-skill extension module)
1596
+ - [x] Component boundaries established (extension module vs customize files)
1597
+ - [x] Integration points mapped (--custom-content, config.yaml, project-layout.yaml)
1598
+ - [x] Requirements to structure mapping complete (all FR groups mapped)
1599
+
1600
+ ### Architecture Readiness Assessment
1601
+
1602
+ **Overall Status:** READY FOR IMPLEMENTATION
1603
+
1604
+ **Confidence Level:** High — architecture verified against BMAD 6.2.0 source code (CIS module pattern), official documentation (customize, non-interactive install), and bmad-method CLI flags
1605
+
1606
+ **Key Strengths:**
1607
+ - Configuration-driven extensibility eliminates code changes for the most common operations
1608
+ - BMAD 6.2.0 module pattern verified against actual CIS module source — not assumed
1609
+ - Explicit CLI parameter passing solves 3 known installer bugs with minimal code
1610
+ - Clean separation: module-owned agents (SKILL.md) vs. built-in agent customizations (.customize.yaml)
1611
+ - Multi-repo support is config-driven with no installer code changes for BMAD workflow path resolution
1612
+ - Air-gapped operation preserved through bundled cache + explicit params
1613
+
1614
+ **Areas for Future Enhancement:**
1615
+ - Testing framework decision and test suite creation
1616
+ - Error code standardization
1617
+ - Structured logging for diagnostic purposes
1618
+ - Visual Studio integration investigation (Phase 3)
1619
+ - Agent Activity Dashboard architecture (Phase 3)