ma-agents 3.4.8 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (762) hide show
  1. package/AiAudit.md +7 -0
  2. package/README.md +78 -29
  3. package/_bmad-output/implementation-artifacts/17-10-rework-generate-backlog.md +237 -0
  4. package/_bmad-output/implementation-artifacts/17-11-rework-add-to-sprint.md +339 -0
  5. package/_bmad-output/implementation-artifacts/17-12-rework-remove-from-sprint.md +348 -0
  6. package/_bmad-output/implementation-artifacts/17-13-rework-sprint-status-view.md +383 -0
  7. package/_bmad-output/implementation-artifacts/17-14-rework-cleanup-done.md +348 -0
  8. package/_bmad-output/implementation-artifacts/17-15-rework-bmad-sprint-planning.md +385 -0
  9. package/_bmad-output/implementation-artifacts/17-16-rework-add-sprint.md +362 -0
  10. package/_bmad-output/implementation-artifacts/17-17-rework-modify-sprint.md +477 -0
  11. package/_bmad-output/implementation-artifacts/17-18-rework-bmad-dev-story.md +377 -0
  12. package/_bmad-output/implementation-artifacts/17-19-rework-story-status-lookup.md +301 -0
  13. package/_bmad-output/implementation-artifacts/17-20-rework-bmad-sprint-status.md +508 -0
  14. package/_bmad-output/implementation-artifacts/17-21-new-close-sprint.md +455 -0
  15. package/_bmad-output/implementation-artifacts/17-22-jira-adapter-pattern.md +325 -0
  16. package/_bmad-output/implementation-artifacts/17-23-migration-deprecation-old-files.md +403 -0
  17. package/_bmad-output/implementation-artifacts/17-24-rework-prioritize-backlog.md +344 -0
  18. package/_bmad-output/implementation-artifacts/17-9-unified-sprint-status-schema.md +279 -0
  19. package/_bmad-output/implementation-artifacts/4-1-vs-agent-registry-entry.md +173 -0
  20. package/_bmad-output/implementation-artifacts/4-2-vs-skill-template-format.md +129 -0
  21. package/_bmad-output/implementation-artifacts/5-5-explicit-parameter-passing.md +274 -0
  22. package/_bmad-output/implementation-artifacts/5-6-fix-space-in-path-bug.md +186 -0
  23. package/_bmad-output/implementation-artifacts/7-1-test-infrastructure-setup.md +144 -0
  24. package/_bmad-output/implementation-artifacts/7-2-installer-pipeline-tests.md +132 -0
  25. package/_bmad-output/implementation-artifacts/7-3-bmad-pipeline-tests.md +119 -0
  26. package/_bmad-output/implementation-artifacts/7-4-cli-command-routing-tests.md +162 -0
  27. package/_bmad-output/implementation-artifacts/deferred-work.md +9 -0
  28. package/_bmad-output/implementation-artifacts/done/1-1-ci-cd-yes-flag.md +200 -0
  29. package/_bmad-output/implementation-artifacts/done/10-1-ensure-bmad-output-not-gitignored.md +172 -0
  30. package/_bmad-output/implementation-artifacts/done/10-2-document-bmad-output-policy.md +102 -0
  31. package/_bmad-output/implementation-artifacts/done/11-1-auto-bug-detection-skill.md +119 -0
  32. package/_bmad-output/implementation-artifacts/done/11-2-bug-story-extension-workflow.md +132 -0
  33. package/_bmad-output/implementation-artifacts/done/11-3-integrate-bug-detection-code-review.md +111 -0
  34. package/_bmad-output/implementation-artifacts/done/12-1-add-sprint-workflow.md +126 -0
  35. package/_bmad-output/implementation-artifacts/done/12-2-add-to-sprint-workflow.md +137 -0
  36. package/_bmad-output/implementation-artifacts/done/12-3-modify-sprint-workflow.md +127 -0
  37. package/_bmad-output/implementation-artifacts/done/12-4-sprint-status-assigned-items.md +129 -0
  38. package/_bmad-output/implementation-artifacts/done/13-1-project-context-template-and-generator.md +179 -0
  39. package/_bmad-output/implementation-artifacts/done/13-2-install-pipeline-integration.md +138 -0
  40. package/_bmad-output/implementation-artifacts/done/13-3-bmad-critical-actions-update.md +150 -0
  41. package/_bmad-output/implementation-artifacts/done/13-4-retrospective-expansion-trigger.md +128 -0
  42. package/_bmad-output/implementation-artifacts/done/13-5-document-project-context-generation.md +118 -0
  43. package/_bmad-output/implementation-artifacts/done/15-1-bump-bmad-method-to-6-2-1.md +132 -0
  44. package/_bmad-output/implementation-artifacts/done/15-2-restructure-extension-module.md +174 -0
  45. package/_bmad-output/implementation-artifacts/done/15-3-convert-custom-agents-to-skill-folders.md +183 -0
  46. package/_bmad-output/implementation-artifacts/done/15-4-convert-mil498-workflows-to-skill-md.md +252 -0
  47. package/_bmad-output/implementation-artifacts/done/15-5-convert-sre-devops-cyber-workflows.md +232 -0
  48. package/_bmad-output/implementation-artifacts/done/15-6-separate-built-in-agent-customizations.md +163 -0
  49. package/_bmad-output/implementation-artifacts/done/15-7-migration-detection-and-upgrade-path.md +133 -0
  50. package/_bmad-output/implementation-artifacts/done/15-8-validate-migrated-agents-and-workflows.md +172 -0
  51. package/_bmad-output/implementation-artifacts/done/15-8-validation-report.md +342 -0
  52. package/_bmad-output/implementation-artifacts/done/16-1-repository-layout-wizard.md +223 -0
  53. package/_bmad-output/implementation-artifacts/done/16-2-config-storage-and-cross-reference.md +180 -0
  54. package/_bmad-output/implementation-artifacts/done/16-3-project-context-multi-repo-section.md +136 -0
  55. package/_bmad-output/implementation-artifacts/done/16-4-validate-cross-repo-path-resolution.md +137 -0
  56. package/_bmad-output/implementation-artifacts/done/16-4-validation-report.md +79 -0
  57. package/_bmad-output/implementation-artifacts/done/16-5-fix-config-lost-on-update.md +110 -0
  58. package/_bmad-output/implementation-artifacts/done/16-6-repo-sync-check-skill.md +116 -0
  59. package/_bmad-output/implementation-artifacts/done/16-7-portable-path-storage.md +109 -0
  60. package/_bmad-output/implementation-artifacts/done/16-8-cicd-remote-mode.md +97 -0
  61. package/_bmad-output/implementation-artifacts/done/16-9-reconfigure-layout-workflow.md +125 -0
  62. package/_bmad-output/implementation-artifacts/done/17-1-sprint-entity-model.md +322 -0
  63. package/_bmad-output/implementation-artifacts/done/17-2-flat-backlog-model.md +264 -0
  64. package/_bmad-output/implementation-artifacts/done/17-3-bug-as-story-type.md +208 -0
  65. package/_bmad-output/implementation-artifacts/done/17-4-backlog-to-sprint-workflow.md +209 -0
  66. package/_bmad-output/implementation-artifacts/done/17-5-sprint-to-backlog-workflow.md +221 -0
  67. package/_bmad-output/implementation-artifacts/done/17-6-done-item-cleanup.md +273 -0
  68. package/_bmad-output/implementation-artifacts/done/17-7-multi-criteria-prioritization.md +235 -0
  69. package/_bmad-output/implementation-artifacts/done/17-8-rework-sprint-status-display.md +285 -0
  70. package/_bmad-output/implementation-artifacts/done/2-1-cpp-coding-standards-skill.md +188 -0
  71. package/_bmad-output/implementation-artifacts/done/2-2-csharp-coding-standards-skill.md +211 -0
  72. package/_bmad-output/implementation-artifacts/done/2-3-python-coding-standards-skill.md +189 -0
  73. package/_bmad-output/implementation-artifacts/done/3-1-skill-scaffolding-tool.md +184 -0
  74. package/_bmad-output/implementation-artifacts/done/3-2-skill-validation-tool.md +178 -0
  75. package/_bmad-output/implementation-artifacts/done/3-3-mandatory-skill-designation.md +136 -0
  76. package/_bmad-output/implementation-artifacts/done/3-4-bmad-persona-customization-tooling.md +141 -0
  77. package/_bmad-output/implementation-artifacts/done/3-5-specialized-agent-development-tooling.md +145 -0
  78. package/_bmad-output/implementation-artifacts/done/5-1-bmad-method-direct-dependency.md +188 -0
  79. package/_bmad-output/implementation-artifacts/done/5-2-bmad-cache-build-script.md +219 -0
  80. package/_bmad-output/implementation-artifacts/done/5-3-pre-populate-bmad-cache.md +234 -0
  81. package/_bmad-output/implementation-artifacts/done/5-4-validate-bundled-installation.md +274 -0
  82. package/_bmad-output/implementation-artifacts/done/6-1-methodology-presentation-bundle.md +173 -0
  83. package/_bmad-output/implementation-artifacts/done/8-1-move-instruction-injection-to-top.md +131 -0
  84. package/_bmad-output/implementation-artifacts/done/8-2-agent-aware-injection-strategy.md +124 -0
  85. package/_bmad-output/implementation-artifacts/done/8-3-create-bmad-extension-module.md +187 -0
  86. package/_bmad-output/implementation-artifacts/done/8-4-integration-verification.md +102 -0
  87. package/_bmad-output/implementation-artifacts/done/8-5-per-agent-enforcement-hooks-research.md +126 -0
  88. package/_bmad-output/implementation-artifacts/done/8-6-context-persistence-research.md +101 -0
  89. package/_bmad-output/implementation-artifacts/done/9-1-register-opencode-agent.md +73 -0
  90. package/_bmad-output/implementation-artifacts/done/9-2-json-merge-injection.md +91 -0
  91. package/_bmad-output/implementation-artifacts/done/9-3-json-merge-existing.md +113 -0
  92. package/_bmad-output/implementation-artifacts/done/9-4-json-error-handling.md +90 -0
  93. package/_bmad-output/implementation-artifacts/epic-11-12-shared-guardrails.md +53 -0
  94. package/_bmad-output/implementation-artifacts/epic-15-adversarial-fixes.md +287 -0
  95. package/_bmad-output/implementation-artifacts/epic-16-adversarial-review.md +49 -0
  96. package/_bmad-output/implementation-artifacts/epic-16-edge-case-review.md +230 -0
  97. package/_bmad-output/implementation-artifacts/epic-17-adversarial-review.md +37 -0
  98. package/_bmad-output/implementation-artifacts/epic-17-edge-case-review.md +140 -0
  99. package/_bmad-output/implementation-artifacts/sprint-status.yaml +83 -0
  100. package/_bmad-output/methodology/BMAD_AI_Development_Training.pptx +0 -0
  101. package/_bmad-output/methodology/version.json +7 -0
  102. package/_bmad-output/planning-artifacts/adapter-pattern-spec.md +508 -0
  103. package/_bmad-output/planning-artifacts/architecture.md +1619 -0
  104. package/_bmad-output/planning-artifacts/domain-research-roocode-2026-03-31.md +295 -0
  105. package/_bmad-output/planning-artifacts/epics.md +3287 -0
  106. package/_bmad-output/planning-artifacts/mil498-workflow-audit.md +290 -0
  107. package/_bmad-output/planning-artifacts/prd.md +684 -0
  108. package/_bmad-output/planning-artifacts/product-brief-agents-2026-03-08.md +214 -0
  109. package/_bmad-output/planning-artifacts/sprint-status-schema.md +506 -0
  110. package/_bmad-output/project-context.md +47 -0
  111. package/bin/cli.js +5 -4
  112. package/lib/agents.js +16 -1
  113. package/lib/bmad-extension/module-help.csv +27 -22
  114. package/lib/bmad-extension/skills/add-sprint/SKILL.md +120 -152
  115. package/lib/bmad-extension/skills/add-to-sprint/SKILL.md +170 -116
  116. package/{.opencode/skills/add-to-sprint → lib/bmad-extension/skills/bmad-dev-story}/bmad-skill-manifest.yaml +1 -1
  117. package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/checklist.md +13 -13
  118. package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/workflow.md +103 -44
  119. package/lib/bmad-extension/skills/bmad-ma-agent-mil498/SKILL.md +2 -1
  120. package/lib/bmad-extension/skills/bmad-sprint-planning/SKILL.md +6 -0
  121. package/{.opencode/skills/create-bug-story → lib/bmad-extension/skills/bmad-sprint-planning}/bmad-skill-manifest.yaml +1 -1
  122. package/lib/bmad-extension/skills/bmad-sprint-planning/checklist.md +74 -0
  123. package/lib/bmad-extension/skills/bmad-sprint-planning/sprint-status-template.yaml +89 -0
  124. package/lib/bmad-extension/skills/bmad-sprint-planning/workflow.md +372 -0
  125. package/lib/bmad-extension/skills/bmad-sprint-status/SKILL.md +6 -0
  126. package/{.opencode/skills/cleanup-done → lib/bmad-extension/skills/bmad-sprint-status}/bmad-skill-manifest.yaml +1 -1
  127. package/lib/bmad-extension/skills/bmad-sprint-status/workflow.md +434 -0
  128. package/lib/bmad-extension/skills/cleanup-done/SKILL.md +154 -98
  129. package/lib/bmad-extension/skills/close-sprint/SKILL.md +379 -0
  130. package/{.opencode/skills/add-sprint → lib/bmad-extension/skills/close-sprint}/bmad-skill-manifest.yaml +1 -1
  131. package/lib/bmad-extension/skills/create-bug-story/SKILL.md +7 -75
  132. package/lib/bmad-extension/skills/generate-backlog/SKILL.md +152 -140
  133. package/lib/bmad-extension/skills/mil498-requirement-quality/SKILL.md +105 -0
  134. package/lib/bmad-extension/skills/mil498-requirement-quality/bmad-skill-manifest.yaml +5 -0
  135. package/lib/bmad-extension/skills/mil498-ssdd/prompts/05-validate.md +4 -0
  136. package/lib/bmad-extension/skills/modify-sprint/SKILL.md +224 -235
  137. package/lib/bmad-extension/skills/prioritize-backlog/SKILL.md +157 -135
  138. package/lib/bmad-extension/skills/remove-from-sprint/SKILL.md +125 -104
  139. package/lib/bmad-extension/skills/sprint-status-view/SKILL.md +153 -239
  140. package/lib/bmad-extension/workflows/add-sprint/workflow.md +119 -155
  141. package/lib/bmad-extension/workflows/add-to-sprint/workflow.md +233 -3
  142. package/lib/bmad-extension/workflows/modify-sprint/workflow.md +228 -181
  143. package/lib/bmad-extension/workflows/remove-from-sprint/workflow.md +164 -0
  144. package/lib/bmad-extension/workflows/sprint-status-view/workflow.md +165 -3
  145. package/mil498/README.md +4 -0
  146. package/out.txt +0 -0
  147. package/package.json +1 -1
  148. package/skills/add-sprint/SKILL.md +165 -0
  149. package/skills/add-sprint/skill.json +7 -0
  150. package/skills/add-to-sprint/SKILL.md +231 -0
  151. package/skills/add-to-sprint/skill.json +7 -0
  152. package/skills/bmad-sprint-planning/SKILL.md +321 -0
  153. package/skills/bmad-sprint-planning/skill.json +7 -0
  154. package/skills/bmad-sprint-status/SKILL.md +273 -0
  155. package/skills/bmad-sprint-status/skill.json +7 -0
  156. package/skills/cleanup-done/SKILL.md +203 -0
  157. package/skills/cleanup-done/skill.json +7 -0
  158. package/skills/close-sprint/SKILL.md +370 -0
  159. package/skills/close-sprint/skill.json +7 -0
  160. package/skills/generate-backlog/SKILL.md +178 -0
  161. package/skills/generate-backlog/skill.json +7 -0
  162. package/skills/modify-sprint/SKILL.md +302 -0
  163. package/skills/modify-sprint/skill.json +7 -0
  164. package/skills/prioritize-backlog/SKILL.md +203 -0
  165. package/skills/prioritize-backlog/skill.json +7 -0
  166. package/skills/remove-from-sprint/SKILL.md +174 -0
  167. package/skills/remove-from-sprint/skill.json +7 -0
  168. package/skills/sprint-status-view/SKILL.md +173 -0
  169. package/skills/sprint-status-view/skill.json +7 -0
  170. package/skills/story-status-lookup/SKILL.md +21 -6
  171. package/skills/story-status-lookup/skill.json +2 -2
  172. package/test/extension-module-restructure.test.js +12 -11
  173. package/test/migration-validation.test.js +10 -10
  174. package/.opencode/skills/.ma-agents.json +0 -122
  175. package/.opencode/skills/MANIFEST.yaml +0 -126
  176. package/.opencode/skills/add-sprint/SKILL.md +0 -207
  177. package/.opencode/skills/add-to-sprint/SKILL.md +0 -189
  178. package/.opencode/skills/bmad-advanced-elicitation/SKILL.md +0 -137
  179. package/.opencode/skills/bmad-advanced-elicitation/methods.csv +0 -51
  180. package/.opencode/skills/bmad-agent-analyst/SKILL.md +0 -56
  181. package/.opencode/skills/bmad-agent-analyst/bmad-skill-manifest.yaml +0 -11
  182. package/.opencode/skills/bmad-agent-architect/SKILL.md +0 -52
  183. package/.opencode/skills/bmad-agent-architect/bmad-skill-manifest.yaml +0 -11
  184. package/.opencode/skills/bmad-agent-dev/SKILL.md +0 -62
  185. package/.opencode/skills/bmad-agent-dev/bmad-skill-manifest.yaml +0 -11
  186. package/.opencode/skills/bmad-agent-pm/SKILL.md +0 -57
  187. package/.opencode/skills/bmad-agent-pm/bmad-skill-manifest.yaml +0 -11
  188. package/.opencode/skills/bmad-agent-qa/SKILL.md +0 -59
  189. package/.opencode/skills/bmad-agent-qa/bmad-skill-manifest.yaml +0 -11
  190. package/.opencode/skills/bmad-agent-quick-flow-solo-dev/SKILL.md +0 -51
  191. package/.opencode/skills/bmad-agent-quick-flow-solo-dev/bmad-skill-manifest.yaml +0 -11
  192. package/.opencode/skills/bmad-agent-sm/SKILL.md +0 -53
  193. package/.opencode/skills/bmad-agent-sm/bmad-skill-manifest.yaml +0 -11
  194. package/.opencode/skills/bmad-agent-tech-writer/SKILL.md +0 -55
  195. package/.opencode/skills/bmad-agent-tech-writer/bmad-skill-manifest.yaml +0 -11
  196. package/.opencode/skills/bmad-agent-tech-writer/explain-concept.md +0 -20
  197. package/.opencode/skills/bmad-agent-tech-writer/mermaid-gen.md +0 -20
  198. package/.opencode/skills/bmad-agent-tech-writer/validate-doc.md +0 -19
  199. package/.opencode/skills/bmad-agent-tech-writer/write-document.md +0 -20
  200. package/.opencode/skills/bmad-agent-ux-designer/SKILL.md +0 -53
  201. package/.opencode/skills/bmad-agent-ux-designer/bmad-skill-manifest.yaml +0 -11
  202. package/.opencode/skills/bmad-brainstorming/SKILL.md +0 -6
  203. package/.opencode/skills/bmad-brainstorming/brain-methods.csv +0 -62
  204. package/.opencode/skills/bmad-brainstorming/steps/step-01-session-setup.md +0 -214
  205. package/.opencode/skills/bmad-brainstorming/steps/step-01b-continue.md +0 -124
  206. package/.opencode/skills/bmad-brainstorming/steps/step-02a-user-selected.md +0 -229
  207. package/.opencode/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -239
  208. package/.opencode/skills/bmad-brainstorming/steps/step-02c-random-selection.md +0 -211
  209. package/.opencode/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -266
  210. package/.opencode/skills/bmad-brainstorming/steps/step-03-technique-execution.md +0 -401
  211. package/.opencode/skills/bmad-brainstorming/steps/step-04-idea-organization.md +0 -305
  212. package/.opencode/skills/bmad-brainstorming/template.md +0 -15
  213. package/.opencode/skills/bmad-brainstorming/workflow.md +0 -53
  214. package/.opencode/skills/bmad-check-implementation-readiness/SKILL.md +0 -6
  215. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -179
  216. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -168
  217. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -169
  218. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -129
  219. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -241
  220. package/.opencode/skills/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -126
  221. package/.opencode/skills/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -4
  222. package/.opencode/skills/bmad-check-implementation-readiness/workflow.md +0 -49
  223. package/.opencode/skills/bmad-cis-design-thinking/SKILL.md +0 -6
  224. package/.opencode/skills/bmad-cis-design-thinking/bmad-skill-manifest.yaml +0 -1
  225. package/.opencode/skills/bmad-cis-design-thinking/design-methods.csv +0 -31
  226. package/.opencode/skills/bmad-cis-design-thinking/template.md +0 -111
  227. package/.opencode/skills/bmad-cis-design-thinking/workflow.md +0 -242
  228. package/.opencode/skills/bmad-cis-innovation-strategy/SKILL.md +0 -6
  229. package/.opencode/skills/bmad-cis-innovation-strategy/bmad-skill-manifest.yaml +0 -1
  230. package/.opencode/skills/bmad-cis-innovation-strategy/innovation-frameworks.csv +0 -31
  231. package/.opencode/skills/bmad-cis-innovation-strategy/template.md +0 -189
  232. package/.opencode/skills/bmad-cis-innovation-strategy/workflow.md +0 -315
  233. package/.opencode/skills/bmad-cis-problem-solving/SKILL.md +0 -6
  234. package/.opencode/skills/bmad-cis-problem-solving/bmad-skill-manifest.yaml +0 -1
  235. package/.opencode/skills/bmad-cis-problem-solving/solving-methods.csv +0 -31
  236. package/.opencode/skills/bmad-cis-problem-solving/template.md +0 -165
  237. package/.opencode/skills/bmad-cis-problem-solving/workflow.md +0 -291
  238. package/.opencode/skills/bmad-cis-storytelling/SKILL.md +0 -6
  239. package/.opencode/skills/bmad-cis-storytelling/bmad-skill-manifest.yaml +0 -1
  240. package/.opencode/skills/bmad-cis-storytelling/story-types.csv +0 -26
  241. package/.opencode/skills/bmad-cis-storytelling/template.md +0 -113
  242. package/.opencode/skills/bmad-cis-storytelling/workflow.md +0 -321
  243. package/.opencode/skills/bmad-code-review/SKILL.md +0 -6
  244. package/.opencode/skills/bmad-code-review/steps/step-01-gather-context.md +0 -62
  245. package/.opencode/skills/bmad-code-review/steps/step-02-review.md +0 -34
  246. package/.opencode/skills/bmad-code-review/steps/step-03-triage.md +0 -49
  247. package/.opencode/skills/bmad-code-review/steps/step-04-present.md +0 -129
  248. package/.opencode/skills/bmad-code-review/workflow.md +0 -55
  249. package/.opencode/skills/bmad-correct-course/SKILL.md +0 -6
  250. package/.opencode/skills/bmad-correct-course/checklist.md +0 -288
  251. package/.opencode/skills/bmad-correct-course/workflow.md +0 -267
  252. package/.opencode/skills/bmad-create-architecture/SKILL.md +0 -6
  253. package/.opencode/skills/bmad-create-architecture/architecture-decision-template.md +0 -12
  254. package/.opencode/skills/bmad-create-architecture/data/domain-complexity.csv +0 -13
  255. package/.opencode/skills/bmad-create-architecture/data/project-types.csv +0 -7
  256. package/.opencode/skills/bmad-create-architecture/steps/step-01-init.md +0 -153
  257. package/.opencode/skills/bmad-create-architecture/steps/step-01b-continue.md +0 -173
  258. package/.opencode/skills/bmad-create-architecture/steps/step-02-context.md +0 -224
  259. package/.opencode/skills/bmad-create-architecture/steps/step-03-starter.md +0 -329
  260. package/.opencode/skills/bmad-create-architecture/steps/step-04-decisions.md +0 -318
  261. package/.opencode/skills/bmad-create-architecture/steps/step-05-patterns.md +0 -359
  262. package/.opencode/skills/bmad-create-architecture/steps/step-06-structure.md +0 -379
  263. package/.opencode/skills/bmad-create-architecture/steps/step-07-validation.md +0 -359
  264. package/.opencode/skills/bmad-create-architecture/steps/step-08-complete.md +0 -76
  265. package/.opencode/skills/bmad-create-architecture/workflow.md +0 -38
  266. package/.opencode/skills/bmad-create-epics-and-stories/SKILL.md +0 -6
  267. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -255
  268. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -212
  269. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -255
  270. package/.opencode/skills/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -131
  271. package/.opencode/skills/bmad-create-epics-and-stories/templates/epics-template.md +0 -61
  272. package/.opencode/skills/bmad-create-epics-and-stories/workflow.md +0 -53
  273. package/.opencode/skills/bmad-create-prd/SKILL.md +0 -6
  274. package/.opencode/skills/bmad-create-prd/data/domain-complexity.csv +0 -15
  275. package/.opencode/skills/bmad-create-prd/data/prd-purpose.md +0 -197
  276. package/.opencode/skills/bmad-create-prd/data/project-types.csv +0 -11
  277. package/.opencode/skills/bmad-create-prd/steps-c/step-01-init.md +0 -178
  278. package/.opencode/skills/bmad-create-prd/steps-c/step-01b-continue.md +0 -161
  279. package/.opencode/skills/bmad-create-prd/steps-c/step-02-discovery.md +0 -208
  280. package/.opencode/skills/bmad-create-prd/steps-c/step-02b-vision.md +0 -142
  281. package/.opencode/skills/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -158
  282. package/.opencode/skills/bmad-create-prd/steps-c/step-03-success.md +0 -214
  283. package/.opencode/skills/bmad-create-prd/steps-c/step-04-journeys.md +0 -201
  284. package/.opencode/skills/bmad-create-prd/steps-c/step-05-domain.md +0 -194
  285. package/.opencode/skills/bmad-create-prd/steps-c/step-06-innovation.md +0 -211
  286. package/.opencode/skills/bmad-create-prd/steps-c/step-07-project-type.md +0 -222
  287. package/.opencode/skills/bmad-create-prd/steps-c/step-08-scoping.md +0 -216
  288. package/.opencode/skills/bmad-create-prd/steps-c/step-09-functional.md +0 -219
  289. package/.opencode/skills/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -230
  290. package/.opencode/skills/bmad-create-prd/steps-c/step-11-polish.md +0 -221
  291. package/.opencode/skills/bmad-create-prd/steps-c/step-12-complete.md +0 -115
  292. package/.opencode/skills/bmad-create-prd/templates/prd-template.md +0 -10
  293. package/.opencode/skills/bmad-create-prd/workflow.md +0 -62
  294. package/.opencode/skills/bmad-create-story/SKILL.md +0 -6
  295. package/.opencode/skills/bmad-create-story/checklist.md +0 -357
  296. package/.opencode/skills/bmad-create-story/discover-inputs.md +0 -88
  297. package/.opencode/skills/bmad-create-story/template.md +0 -49
  298. package/.opencode/skills/bmad-create-story/workflow.md +0 -380
  299. package/.opencode/skills/bmad-create-ux-design/SKILL.md +0 -6
  300. package/.opencode/skills/bmad-create-ux-design/steps/step-01-init.md +0 -135
  301. package/.opencode/skills/bmad-create-ux-design/steps/step-01b-continue.md +0 -127
  302. package/.opencode/skills/bmad-create-ux-design/steps/step-02-discovery.md +0 -190
  303. package/.opencode/skills/bmad-create-ux-design/steps/step-03-core-experience.md +0 -217
  304. package/.opencode/skills/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -220
  305. package/.opencode/skills/bmad-create-ux-design/steps/step-05-inspiration.md +0 -235
  306. package/.opencode/skills/bmad-create-ux-design/steps/step-06-design-system.md +0 -253
  307. package/.opencode/skills/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -255
  308. package/.opencode/skills/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -225
  309. package/.opencode/skills/bmad-create-ux-design/steps/step-09-design-directions.md +0 -225
  310. package/.opencode/skills/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -242
  311. package/.opencode/skills/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -249
  312. package/.opencode/skills/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -238
  313. package/.opencode/skills/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -265
  314. package/.opencode/skills/bmad-create-ux-design/steps/step-14-complete.md +0 -171
  315. package/.opencode/skills/bmad-create-ux-design/ux-design-template.md +0 -13
  316. package/.opencode/skills/bmad-create-ux-design/workflow.md +0 -36
  317. package/.opencode/skills/bmad-distillator/SKILL.md +0 -178
  318. package/.opencode/skills/bmad-distillator/agents/distillate-compressor.md +0 -116
  319. package/.opencode/skills/bmad-distillator/agents/round-trip-reconstructor.md +0 -68
  320. package/.opencode/skills/bmad-distillator/resources/compression-rules.md +0 -51
  321. package/.opencode/skills/bmad-distillator/resources/distillate-format-reference.md +0 -227
  322. package/.opencode/skills/bmad-distillator/resources/splitting-strategy.md +0 -78
  323. package/.opencode/skills/bmad-distillator/scripts/analyze_sources.py +0 -300
  324. package/.opencode/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -204
  325. package/.opencode/skills/bmad-document-project/SKILL.md +0 -6
  326. package/.opencode/skills/bmad-document-project/checklist.md +0 -245
  327. package/.opencode/skills/bmad-document-project/documentation-requirements.csv +0 -12
  328. package/.opencode/skills/bmad-document-project/instructions.md +0 -128
  329. package/.opencode/skills/bmad-document-project/templates/deep-dive-template.md +0 -345
  330. package/.opencode/skills/bmad-document-project/templates/index-template.md +0 -169
  331. package/.opencode/skills/bmad-document-project/templates/project-overview-template.md +0 -103
  332. package/.opencode/skills/bmad-document-project/templates/project-scan-report-schema.json +0 -160
  333. package/.opencode/skills/bmad-document-project/templates/source-tree-template.md +0 -135
  334. package/.opencode/skills/bmad-document-project/workflow.md +0 -27
  335. package/.opencode/skills/bmad-document-project/workflows/deep-dive-instructions.md +0 -299
  336. package/.opencode/skills/bmad-document-project/workflows/deep-dive-workflow.md +0 -34
  337. package/.opencode/skills/bmad-document-project/workflows/full-scan-instructions.md +0 -1107
  338. package/.opencode/skills/bmad-document-project/workflows/full-scan-workflow.md +0 -34
  339. package/.opencode/skills/bmad-domain-research/SKILL.md +0 -6
  340. package/.opencode/skills/bmad-domain-research/domain-steps/step-01-init.md +0 -137
  341. package/.opencode/skills/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -229
  342. package/.opencode/skills/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -238
  343. package/.opencode/skills/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -206
  344. package/.opencode/skills/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -234
  345. package/.opencode/skills/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -444
  346. package/.opencode/skills/bmad-domain-research/research.template.md +0 -29
  347. package/.opencode/skills/bmad-domain-research/workflow.md +0 -49
  348. package/.opencode/skills/bmad-edit-prd/SKILL.md +0 -6
  349. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01-discovery.md +0 -242
  350. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +0 -204
  351. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-02-review.md +0 -245
  352. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-03-edit.md +0 -250
  353. package/.opencode/skills/bmad-edit-prd/steps-e/step-e-04-complete.md +0 -165
  354. package/.opencode/skills/bmad-edit-prd/workflow.md +0 -63
  355. package/.opencode/skills/bmad-editorial-review-prose/SKILL.md +0 -86
  356. package/.opencode/skills/bmad-editorial-review-structure/SKILL.md +0 -179
  357. package/.opencode/skills/bmad-generate-project-context/SKILL.md +0 -6
  358. package/.opencode/skills/bmad-generate-project-context/project-context-template.md +0 -21
  359. package/.opencode/skills/bmad-generate-project-context/steps/step-01-discover.md +0 -186
  360. package/.opencode/skills/bmad-generate-project-context/steps/step-02-generate.md +0 -321
  361. package/.opencode/skills/bmad-generate-project-context/steps/step-03-complete.md +0 -278
  362. package/.opencode/skills/bmad-generate-project-context/workflow.md +0 -43
  363. package/.opencode/skills/bmad-help/SKILL.md +0 -73
  364. package/.opencode/skills/bmad-index-docs/SKILL.md +0 -66
  365. package/.opencode/skills/bmad-init/SKILL.md +0 -100
  366. package/.opencode/skills/bmad-init/resources/core-module.yaml +0 -25
  367. package/.opencode/skills/bmad-init/scripts/bmad_init.py +0 -593
  368. package/.opencode/skills/bmad-init/scripts/tests/test_bmad_init.py +0 -329
  369. package/.opencode/skills/bmad-ma-agent-cyber/SKILL.md +0 -49
  370. package/.opencode/skills/bmad-ma-agent-cyber/bmad-skill-manifest.yaml +0 -11
  371. package/.opencode/skills/bmad-ma-agent-devops/SKILL.md +0 -49
  372. package/.opencode/skills/bmad-ma-agent-devops/bmad-skill-manifest.yaml +0 -11
  373. package/.opencode/skills/bmad-ma-agent-mil498/SKILL.md +0 -53
  374. package/.opencode/skills/bmad-ma-agent-mil498/bmad-skill-manifest.yaml +0 -11
  375. package/.opencode/skills/bmad-ma-agent-ml/.gitkeep +0 -0
  376. package/.opencode/skills/bmad-ma-agent-ml/SKILL.md +0 -59
  377. package/.opencode/skills/bmad-ma-agent-ml/bmad-skill-manifest.yaml +0 -11
  378. package/.opencode/skills/bmad-ma-agent-sre/.gitkeep +0 -0
  379. package/.opencode/skills/bmad-ma-agent-sre/SKILL.md +0 -49
  380. package/.opencode/skills/bmad-ma-agent-sre/bmad-skill-manifest.yaml +0 -11
  381. package/.opencode/skills/bmad-market-research/SKILL.md +0 -6
  382. package/.opencode/skills/bmad-market-research/research.template.md +0 -29
  383. package/.opencode/skills/bmad-market-research/steps/step-01-init.md +0 -184
  384. package/.opencode/skills/bmad-market-research/steps/step-02-customer-behavior.md +0 -239
  385. package/.opencode/skills/bmad-market-research/steps/step-03-customer-pain-points.md +0 -251
  386. package/.opencode/skills/bmad-market-research/steps/step-04-customer-decisions.md +0 -261
  387. package/.opencode/skills/bmad-market-research/steps/step-05-competitive-analysis.md +0 -173
  388. package/.opencode/skills/bmad-market-research/steps/step-06-research-completion.md +0 -478
  389. package/.opencode/skills/bmad-market-research/workflow.md +0 -49
  390. package/.opencode/skills/bmad-party-mode/SKILL.md +0 -6
  391. package/.opencode/skills/bmad-party-mode/steps/step-01-agent-loading.md +0 -138
  392. package/.opencode/skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +0 -187
  393. package/.opencode/skills/bmad-party-mode/steps/step-03-graceful-exit.md +0 -167
  394. package/.opencode/skills/bmad-party-mode/workflow.md +0 -190
  395. package/.opencode/skills/bmad-product-brief/SKILL.md +0 -87
  396. package/.opencode/skills/bmad-product-brief/agents/artifact-analyzer.md +0 -60
  397. package/.opencode/skills/bmad-product-brief/agents/opportunity-reviewer.md +0 -44
  398. package/.opencode/skills/bmad-product-brief/agents/skeptic-reviewer.md +0 -44
  399. package/.opencode/skills/bmad-product-brief/agents/web-researcher.md +0 -49
  400. package/.opencode/skills/bmad-product-brief/bmad-manifest.json +0 -17
  401. package/.opencode/skills/bmad-product-brief/prompts/contextual-discovery.md +0 -57
  402. package/.opencode/skills/bmad-product-brief/prompts/draft-and-review.md +0 -86
  403. package/.opencode/skills/bmad-product-brief/prompts/finalize.md +0 -75
  404. package/.opencode/skills/bmad-product-brief/prompts/guided-elicitation.md +0 -70
  405. package/.opencode/skills/bmad-product-brief/resources/brief-template.md +0 -60
  406. package/.opencode/skills/bmad-qa-generate-e2e-tests/SKILL.md +0 -6
  407. package/.opencode/skills/bmad-qa-generate-e2e-tests/checklist.md +0 -33
  408. package/.opencode/skills/bmad-qa-generate-e2e-tests/workflow.md +0 -136
  409. package/.opencode/skills/bmad-quick-dev/SKILL.md +0 -6
  410. package/.opencode/skills/bmad-quick-dev/spec-template.md +0 -88
  411. package/.opencode/skills/bmad-quick-dev/step-01-clarify-and-route.md +0 -64
  412. package/.opencode/skills/bmad-quick-dev/step-02-plan.md +0 -35
  413. package/.opencode/skills/bmad-quick-dev/step-03-implement.md +0 -37
  414. package/.opencode/skills/bmad-quick-dev/step-04-review.md +0 -49
  415. package/.opencode/skills/bmad-quick-dev/step-05-present.md +0 -63
  416. package/.opencode/skills/bmad-quick-dev/step-oneshot.md +0 -49
  417. package/.opencode/skills/bmad-quick-dev/workflow.md +0 -79
  418. package/.opencode/skills/bmad-retrospective/SKILL.md +0 -6
  419. package/.opencode/skills/bmad-retrospective/workflow.md +0 -1479
  420. package/.opencode/skills/bmad-review-adversarial-general/SKILL.md +0 -37
  421. package/.opencode/skills/bmad-review-edge-case-hunter/SKILL.md +0 -67
  422. package/.opencode/skills/bmad-shard-doc/SKILL.md +0 -105
  423. package/.opencode/skills/bmad-sprint-planning/SKILL.md +0 -6
  424. package/.opencode/skills/bmad-sprint-planning/checklist.md +0 -33
  425. package/.opencode/skills/bmad-sprint-planning/sprint-status-template.yaml +0 -56
  426. package/.opencode/skills/bmad-sprint-planning/workflow.md +0 -263
  427. package/.opencode/skills/bmad-sprint-status/SKILL.md +0 -6
  428. package/.opencode/skills/bmad-sprint-status/workflow.md +0 -261
  429. package/.opencode/skills/bmad-technical-research/SKILL.md +0 -6
  430. package/.opencode/skills/bmad-technical-research/research.template.md +0 -29
  431. package/.opencode/skills/bmad-technical-research/technical-steps/step-01-init.md +0 -137
  432. package/.opencode/skills/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -239
  433. package/.opencode/skills/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -248
  434. package/.opencode/skills/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -202
  435. package/.opencode/skills/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -233
  436. package/.opencode/skills/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -487
  437. package/.opencode/skills/bmad-technical-research/workflow.md +0 -50
  438. package/.opencode/skills/bmad-validate-prd/SKILL.md +0 -6
  439. package/.opencode/skills/bmad-validate-prd/data/domain-complexity.csv +0 -15
  440. package/.opencode/skills/bmad-validate-prd/data/prd-purpose.md +0 -197
  441. package/.opencode/skills/bmad-validate-prd/data/project-types.csv +0 -11
  442. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -221
  443. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -188
  444. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -206
  445. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -171
  446. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -211
  447. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -225
  448. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -214
  449. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -202
  450. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -240
  451. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -260
  452. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -206
  453. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -261
  454. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -239
  455. package/.opencode/skills/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -229
  456. package/.opencode/skills/bmad-validate-prd/workflow.md +0 -62
  457. package/.opencode/skills/cleanup-done/.gitkeep +0 -0
  458. package/.opencode/skills/cleanup-done/SKILL.md +0 -159
  459. package/.opencode/skills/create-bug-story/.gitkeep +0 -0
  460. package/.opencode/skills/create-bug-story/SKILL.md +0 -263
  461. package/.opencode/skills/cyber-generate-certs/.gitkeep +0 -0
  462. package/.opencode/skills/cyber-generate-certs/SKILL.md +0 -27
  463. package/.opencode/skills/cyber-generate-certs/bmad-skill-manifest.yaml +0 -3
  464. package/.opencode/skills/cyber-immunity-estimation/.gitkeep +0 -0
  465. package/.opencode/skills/cyber-immunity-estimation/SKILL.md +0 -29
  466. package/.opencode/skills/cyber-immunity-estimation/bmad-skill-manifest.yaml +0 -3
  467. package/.opencode/skills/cyber-security-audit/.gitkeep +0 -0
  468. package/.opencode/skills/cyber-security-audit/SKILL.md +0 -27
  469. package/.opencode/skills/cyber-security-audit/bmad-skill-manifest.yaml +0 -3
  470. package/.opencode/skills/cyber-vault-secrets/.gitkeep +0 -0
  471. package/.opencode/skills/cyber-vault-secrets/SKILL.md +0 -28
  472. package/.opencode/skills/cyber-vault-secrets/bmad-skill-manifest.yaml +0 -3
  473. package/.opencode/skills/cyber-verify-docker-users/.gitkeep +0 -0
  474. package/.opencode/skills/cyber-verify-docker-users/SKILL.md +0 -23
  475. package/.opencode/skills/cyber-verify-docker-users/bmad-skill-manifest.yaml +0 -3
  476. package/.opencode/skills/cyber-verify-image-signature/.gitkeep +0 -0
  477. package/.opencode/skills/cyber-verify-image-signature/SKILL.md +0 -22
  478. package/.opencode/skills/cyber-verify-image-signature/bmad-skill-manifest.yaml +0 -3
  479. package/.opencode/skills/cyber-vulnerability-scan/.gitkeep +0 -0
  480. package/.opencode/skills/cyber-vulnerability-scan/SKILL.md +0 -28
  481. package/.opencode/skills/cyber-vulnerability-scan/bmad-skill-manifest.yaml +0 -3
  482. package/.opencode/skills/devops-configure-infrastructure/.gitkeep +0 -0
  483. package/.opencode/skills/devops-configure-infrastructure/SKILL.md +0 -27
  484. package/.opencode/skills/devops-configure-infrastructure/bmad-skill-manifest.yaml +0 -3
  485. package/.opencode/skills/devops-disconnected-deployment/.gitkeep +0 -0
  486. package/.opencode/skills/devops-disconnected-deployment/SKILL.md +0 -27
  487. package/.opencode/skills/devops-disconnected-deployment/bmad-skill-manifest.yaml +0 -3
  488. package/.opencode/skills/devops-docker-compose-setup/.gitkeep +0 -0
  489. package/.opencode/skills/devops-docker-compose-setup/SKILL.md +0 -26
  490. package/.opencode/skills/devops-docker-compose-setup/bmad-skill-manifest.yaml +0 -3
  491. package/.opencode/skills/devops-manage-helm/.gitkeep +0 -0
  492. package/.opencode/skills/devops-manage-helm/SKILL.md +0 -28
  493. package/.opencode/skills/devops-manage-helm/bmad-skill-manifest.yaml +0 -3
  494. package/.opencode/skills/devops-sign-docker-image/.gitkeep +0 -0
  495. package/.opencode/skills/devops-sign-docker-image/SKILL.md +0 -24
  496. package/.opencode/skills/devops-sign-docker-image/bmad-skill-manifest.yaml +0 -3
  497. package/.opencode/skills/generate-backlog/.gitkeep +0 -0
  498. package/.opencode/skills/generate-backlog/SKILL.md +0 -183
  499. package/.opencode/skills/generate-backlog/bmad-skill-manifest.yaml +0 -3
  500. package/.opencode/skills/git-workflow-skill/SKILL.md +0 -194
  501. package/.opencode/skills/git-workflow-skill/hooks/commit-msg +0 -61
  502. package/.opencode/skills/git-workflow-skill/hooks/pre-commit +0 -38
  503. package/.opencode/skills/git-workflow-skill/hooks/prepare-commit-msg +0 -56
  504. package/.opencode/skills/git-workflow-skill/scripts/finish-feature.sh +0 -192
  505. package/.opencode/skills/git-workflow-skill/scripts/install-hooks.sh +0 -55
  506. package/.opencode/skills/git-workflow-skill/scripts/start-feature.sh +0 -110
  507. package/.opencode/skills/git-workflow-skill/scripts/validate-workflow.sh +0 -229
  508. package/.opencode/skills/js-ts-dependency-mgmt/SKILL.md +0 -49
  509. package/.opencode/skills/js-ts-dependency-mgmt/examples/dependency_mgmt.md +0 -60
  510. package/.opencode/skills/js-ts-security-skill/SKILL.md +0 -64
  511. package/.opencode/skills/js-ts-security-skill/scripts/verify-security.sh +0 -136
  512. package/.opencode/skills/logging-best-practices/SKILL.md +0 -50
  513. package/.opencode/skills/logging-best-practices/examples/cpp.md +0 -36
  514. package/.opencode/skills/logging-best-practices/examples/csharp.md +0 -49
  515. package/.opencode/skills/logging-best-practices/examples/javascript.md +0 -77
  516. package/.opencode/skills/logging-best-practices/examples/python.md +0 -57
  517. package/.opencode/skills/logging-best-practices/references/logging-standards.md +0 -29
  518. package/.opencode/skills/mil498-ocd/.gitkeep +0 -0
  519. package/.opencode/skills/mil498-ocd/SKILL.md +0 -30
  520. package/.opencode/skills/mil498-ocd/bmad-skill-manifest.yaml +0 -5
  521. package/.opencode/skills/mil498-ocd/prompts/01-discover-project-artifacts.md +0 -26
  522. package/.opencode/skills/mil498-ocd/prompts/02-load-template.md +0 -10
  523. package/.opencode/skills/mil498-ocd/prompts/03-generate-document.md +0 -90
  524. package/.opencode/skills/mil498-ocd/prompts/04-validate.md +0 -14
  525. package/.opencode/skills/mil498-ocd/prompts/05-review.md +0 -15
  526. package/.opencode/skills/mil498-ocd/prompts/06-save.md +0 -15
  527. package/.opencode/skills/mil498-sdd/.gitkeep +0 -0
  528. package/.opencode/skills/mil498-sdd/SKILL.md +0 -30
  529. package/.opencode/skills/mil498-sdd/bmad-skill-manifest.yaml +0 -5
  530. package/.opencode/skills/mil498-sdd/prompts/01-discover-project-artifacts.md +0 -50
  531. package/.opencode/skills/mil498-sdd/prompts/02-load-template.md +0 -10
  532. package/.opencode/skills/mil498-sdd/prompts/03-generate-document.md +0 -98
  533. package/.opencode/skills/mil498-sdd/prompts/04-validate.md +0 -16
  534. package/.opencode/skills/mil498-sdd/prompts/05-review.md +0 -15
  535. package/.opencode/skills/mil498-sdd/prompts/06-save.md +0 -19
  536. package/.opencode/skills/mil498-sdd/template.md +0 -163
  537. package/.opencode/skills/mil498-sdp/.gitkeep +0 -0
  538. package/.opencode/skills/mil498-sdp/SKILL.md +0 -30
  539. package/.opencode/skills/mil498-sdp/bmad-skill-manifest.yaml +0 -5
  540. package/.opencode/skills/mil498-sdp/prompts/01-discover-project-artifacts.md +0 -32
  541. package/.opencode/skills/mil498-sdp/prompts/02-load-template.md +0 -10
  542. package/.opencode/skills/mil498-sdp/prompts/03-generate-document.md +0 -187
  543. package/.opencode/skills/mil498-sdp/prompts/04-validate.md +0 -13
  544. package/.opencode/skills/mil498-sdp/prompts/05-review.md +0 -15
  545. package/.opencode/skills/mil498-sdp/prompts/06-save.md +0 -14
  546. package/.opencode/skills/mil498-srs/.gitkeep +0 -0
  547. package/.opencode/skills/mil498-srs/SKILL.md +0 -30
  548. package/.opencode/skills/mil498-srs/bmad-skill-manifest.yaml +0 -5
  549. package/.opencode/skills/mil498-srs/prompts/01-discover-project-artifacts.md +0 -42
  550. package/.opencode/skills/mil498-srs/prompts/02-load-template.md +0 -10
  551. package/.opencode/skills/mil498-srs/prompts/03-generate-document.md +0 -100
  552. package/.opencode/skills/mil498-srs/prompts/04-validate.md +0 -16
  553. package/.opencode/skills/mil498-srs/prompts/05-review.md +0 -15
  554. package/.opencode/skills/mil498-srs/prompts/06-save.md +0 -18
  555. package/.opencode/skills/mil498-ssdd/.gitkeep +0 -0
  556. package/.opencode/skills/mil498-ssdd/SKILL.md +0 -32
  557. package/.opencode/skills/mil498-ssdd/bmad-skill-manifest.yaml +0 -5
  558. package/.opencode/skills/mil498-ssdd/prompts/01-discover-project-artifacts.md +0 -32
  559. package/.opencode/skills/mil498-ssdd/prompts/02-load-template.md +0 -10
  560. package/.opencode/skills/mil498-ssdd/prompts/03-csci-discovery-interview.md +0 -43
  561. package/.opencode/skills/mil498-ssdd/prompts/04-generate-document.md +0 -96
  562. package/.opencode/skills/mil498-ssdd/prompts/05-validate.md +0 -14
  563. package/.opencode/skills/mil498-ssdd/prompts/06-review.md +0 -16
  564. package/.opencode/skills/mil498-ssdd/prompts/07-save.md +0 -16
  565. package/.opencode/skills/mil498-sss/.gitkeep +0 -0
  566. package/.opencode/skills/mil498-sss/SKILL.md +0 -31
  567. package/.opencode/skills/mil498-sss/bmad-skill-manifest.yaml +0 -5
  568. package/.opencode/skills/mil498-sss/prompts/01-discover-project-artifacts.md +0 -31
  569. package/.opencode/skills/mil498-sss/prompts/02-load-template.md +0 -10
  570. package/.opencode/skills/mil498-sss/prompts/03-generate-document.md +0 -108
  571. package/.opencode/skills/mil498-sss/prompts/04-validate.md +0 -16
  572. package/.opencode/skills/mil498-sss/prompts/05-review.md +0 -15
  573. package/.opencode/skills/mil498-sss/prompts/06-save.md +0 -15
  574. package/.opencode/skills/mil498-std/.gitkeep +0 -0
  575. package/.opencode/skills/mil498-std/SKILL.md +0 -30
  576. package/.opencode/skills/mil498-std/bmad-skill-manifest.yaml +0 -5
  577. package/.opencode/skills/mil498-std/prompts/01-discover-project-artifacts.md +0 -42
  578. package/.opencode/skills/mil498-std/prompts/02-load-template.md +0 -10
  579. package/.opencode/skills/mil498-std/prompts/03-generate-document.md +0 -117
  580. package/.opencode/skills/mil498-std/prompts/04-validate.md +0 -15
  581. package/.opencode/skills/mil498-std/prompts/05-review.md +0 -15
  582. package/.opencode/skills/mil498-std/prompts/06-save.md +0 -15
  583. package/.opencode/skills/ml-advise/.gitkeep +0 -0
  584. package/.opencode/skills/ml-advise/SKILL.md +0 -76
  585. package/.opencode/skills/ml-advise/bmad-skill-manifest.yaml +0 -3
  586. package/.opencode/skills/ml-advise/skill.json +0 -7
  587. package/.opencode/skills/ml-analysis/.gitkeep +0 -0
  588. package/.opencode/skills/ml-analysis/SKILL.md +0 -60
  589. package/.opencode/skills/ml-analysis/bmad-skill-manifest.yaml +0 -3
  590. package/.opencode/skills/ml-analysis/skill.json +0 -7
  591. package/.opencode/skills/ml-architecture/.gitkeep +0 -0
  592. package/.opencode/skills/ml-architecture/SKILL.md +0 -55
  593. package/.opencode/skills/ml-architecture/bmad-skill-manifest.yaml +0 -3
  594. package/.opencode/skills/ml-architecture/skill.json +0 -7
  595. package/.opencode/skills/ml-detailed-design/.gitkeep +0 -0
  596. package/.opencode/skills/ml-detailed-design/SKILL.md +0 -67
  597. package/.opencode/skills/ml-detailed-design/bmad-skill-manifest.yaml +0 -3
  598. package/.opencode/skills/ml-detailed-design/skill.json +0 -7
  599. package/.opencode/skills/ml-eda/.gitkeep +0 -0
  600. package/.opencode/skills/ml-eda/SKILL.md +0 -56
  601. package/.opencode/skills/ml-eda/bmad-skill-manifest.yaml +0 -3
  602. package/.opencode/skills/ml-eda/scripts/baseline_classifier.py +0 -522
  603. package/.opencode/skills/ml-eda/scripts/class_weights_calculator.py +0 -295
  604. package/.opencode/skills/ml-eda/scripts/clustering_explorer.py +0 -383
  605. package/.opencode/skills/ml-eda/scripts/eda_analyzer.py +0 -654
  606. package/.opencode/skills/ml-eda/skill.json +0 -7
  607. package/.opencode/skills/ml-experiment/.gitkeep +0 -0
  608. package/.opencode/skills/ml-experiment/SKILL.md +0 -74
  609. package/.opencode/skills/ml-experiment/assets/advanced_trainer_configs.py +0 -430
  610. package/.opencode/skills/ml-experiment/assets/quick_trainer_setup.py +0 -233
  611. package/.opencode/skills/ml-experiment/assets/template_datamodule.py +0 -219
  612. package/.opencode/skills/ml-experiment/assets/template_gnn_module.py +0 -341
  613. package/.opencode/skills/ml-experiment/assets/template_lightning_module.py +0 -158
  614. package/.opencode/skills/ml-experiment/bmad-skill-manifest.yaml +0 -3
  615. package/.opencode/skills/ml-experiment/skill.json +0 -7
  616. package/.opencode/skills/ml-hparam/.gitkeep +0 -0
  617. package/.opencode/skills/ml-hparam/SKILL.md +0 -81
  618. package/.opencode/skills/ml-hparam/bmad-skill-manifest.yaml +0 -3
  619. package/.opencode/skills/ml-hparam/skill.json +0 -7
  620. package/.opencode/skills/ml-ideation/.gitkeep +0 -0
  621. package/.opencode/skills/ml-ideation/SKILL.md +0 -50
  622. package/.opencode/skills/ml-ideation/bmad-skill-manifest.yaml +0 -3
  623. package/.opencode/skills/ml-ideation/scripts/validate_ml_prd.py +0 -287
  624. package/.opencode/skills/ml-ideation/skill.json +0 -7
  625. package/.opencode/skills/ml-infra/.gitkeep +0 -0
  626. package/.opencode/skills/ml-infra/SKILL.md +0 -58
  627. package/.opencode/skills/ml-infra/bmad-skill-manifest.yaml +0 -3
  628. package/.opencode/skills/ml-infra/skill.json +0 -7
  629. package/.opencode/skills/ml-retrospective/.gitkeep +0 -0
  630. package/.opencode/skills/ml-retrospective/SKILL.md +0 -63
  631. package/.opencode/skills/ml-retrospective/bmad-skill-manifest.yaml +0 -3
  632. package/.opencode/skills/ml-retrospective/skill.json +0 -7
  633. package/.opencode/skills/ml-revision/.gitkeep +0 -0
  634. package/.opencode/skills/ml-revision/SKILL.md +0 -82
  635. package/.opencode/skills/ml-revision/bmad-skill-manifest.yaml +0 -3
  636. package/.opencode/skills/ml-revision/skill.json +0 -7
  637. package/.opencode/skills/ml-techspec/.gitkeep +0 -0
  638. package/.opencode/skills/ml-techspec/SKILL.md +0 -80
  639. package/.opencode/skills/ml-techspec/bmad-skill-manifest.yaml +0 -3
  640. package/.opencode/skills/ml-techspec/skill.json +0 -7
  641. package/.opencode/skills/modify-sprint/.gitkeep +0 -0
  642. package/.opencode/skills/modify-sprint/SKILL.md +0 -322
  643. package/.opencode/skills/modify-sprint/bmad-skill-manifest.yaml +0 -3
  644. package/.opencode/skills/open-presentation/SKILL.md +0 -35
  645. package/.opencode/skills/opentelemetry-best-practices/SKILL.md +0 -34
  646. package/.opencode/skills/opentelemetry-best-practices/examples/go.md +0 -32
  647. package/.opencode/skills/opentelemetry-best-practices/examples/javascript.md +0 -58
  648. package/.opencode/skills/opentelemetry-best-practices/examples/python.md +0 -37
  649. package/.opencode/skills/opentelemetry-best-practices/references/otel-standards.md +0 -37
  650. package/.opencode/skills/prioritize-backlog/.gitkeep +0 -0
  651. package/.opencode/skills/prioritize-backlog/SKILL.md +0 -195
  652. package/.opencode/skills/prioritize-backlog/bmad-skill-manifest.yaml +0 -3
  653. package/.opencode/skills/project-context-expansion/.gitkeep +0 -0
  654. package/.opencode/skills/project-context-expansion/SKILL.md +0 -238
  655. package/.opencode/skills/project-context-expansion/bmad-skill-manifest.yaml +0 -3
  656. package/.opencode/skills/python-best-practices/SKILL.md +0 -385
  657. package/.opencode/skills/python-dependency-mgmt/SKILL.md +0 -42
  658. package/.opencode/skills/python-dependency-mgmt/examples/dependency_mgmt.md +0 -67
  659. package/.opencode/skills/python-security-skill/SKILL.md +0 -56
  660. package/.opencode/skills/python-security-skill/examples/security.md +0 -56
  661. package/.opencode/skills/remove-from-sprint/.gitkeep +0 -0
  662. package/.opencode/skills/remove-from-sprint/SKILL.md +0 -163
  663. package/.opencode/skills/remove-from-sprint/bmad-skill-manifest.yaml +0 -3
  664. package/.opencode/skills/self-signed-cert/SKILL.md +0 -42
  665. package/.opencode/skills/self-signed-cert/scripts/generate-cert.ps1 +0 -45
  666. package/.opencode/skills/self-signed-cert/scripts/generate-cert.sh +0 -43
  667. package/.opencode/skills/skill-creator/SKILL.md +0 -196
  668. package/.opencode/skills/skill-creator/references/output-patterns.md +0 -82
  669. package/.opencode/skills/skill-creator/references/workflows.md +0 -28
  670. package/.opencode/skills/skill-creator/scripts/init_skill.py +0 -208
  671. package/.opencode/skills/skill-creator/scripts/package_skill.py +0 -99
  672. package/.opencode/skills/skill-creator/scripts/quick_validate.py +0 -113
  673. package/.opencode/skills/sprint-status-view/.gitkeep +0 -0
  674. package/.opencode/skills/sprint-status-view/SKILL.md +0 -263
  675. package/.opencode/skills/sprint-status-view/bmad-skill-manifest.yaml +0 -3
  676. package/.opencode/skills/sre-check-deployment-status/.gitkeep +0 -0
  677. package/.opencode/skills/sre-check-deployment-status/SKILL.md +0 -32
  678. package/.opencode/skills/sre-check-deployment-status/bmad-skill-manifest.yaml +0 -3
  679. package/.opencode/skills/sre-check-secrets/.gitkeep +0 -0
  680. package/.opencode/skills/sre-check-secrets/SKILL.md +0 -23
  681. package/.opencode/skills/sre-check-secrets/bmad-skill-manifest.yaml +0 -3
  682. package/.opencode/skills/sre-check-system-status/.gitkeep +0 -0
  683. package/.opencode/skills/sre-check-system-status/SKILL.md +0 -27
  684. package/.opencode/skills/sre-check-system-status/bmad-skill-manifest.yaml +0 -3
  685. package/.opencode/skills/sre-day-2-ops/.gitkeep +0 -0
  686. package/.opencode/skills/sre-day-2-ops/SKILL.md +0 -26
  687. package/.opencode/skills/sre-day-2-ops/bmad-skill-manifest.yaml +0 -3
  688. package/.opencode/skills/sre-deployment-strategies/.gitkeep +0 -0
  689. package/.opencode/skills/sre-deployment-strategies/SKILL.md +0 -28
  690. package/.opencode/skills/sre-deployment-strategies/bmad-skill-manifest.yaml +0 -3
  691. package/.opencode/skills/sre-fix-deployments/.gitkeep +0 -0
  692. package/.opencode/skills/sre-fix-deployments/SKILL.md +0 -25
  693. package/.opencode/skills/sre-fix-deployments/bmad-skill-manifest.yaml +0 -3
  694. package/.opencode/skills/sre-gitops-status/.gitkeep +0 -0
  695. package/.opencode/skills/sre-gitops-status/SKILL.md +0 -25
  696. package/.opencode/skills/sre-gitops-status/bmad-skill-manifest.yaml +0 -3
  697. package/.opencode/skills/story-status-lookup/SKILL.md +0 -78
  698. package/.opencode/skills/test-accompanied-development/SKILL.md +0 -50
  699. package/.opencode/skills/test-generator/SKILL.md +0 -65
  700. package/.opencode/skills/vercel-react-best-practices/SKILL.md +0 -109
  701. package/.opencode/skills/verify-hardened-docker-skill/SKILL.md +0 -442
  702. package/.opencode/skills/verify-hardened-docker-skill/scripts/verify-docker-hardening.sh +0 -439
  703. package/.roo/rules/00-ma-agents.md +0 -13
  704. package/.roo/skills/.ma-agents.json +0 -122
  705. package/.roo/skills/MANIFEST.yaml +0 -126
  706. package/.roo/skills/git-workflow-skill/SKILL.md +0 -194
  707. package/.roo/skills/git-workflow-skill/hooks/commit-msg +0 -61
  708. package/.roo/skills/git-workflow-skill/hooks/pre-commit +0 -38
  709. package/.roo/skills/git-workflow-skill/hooks/prepare-commit-msg +0 -56
  710. package/.roo/skills/git-workflow-skill/scripts/finish-feature.sh +0 -192
  711. package/.roo/skills/git-workflow-skill/scripts/install-hooks.sh +0 -55
  712. package/.roo/skills/git-workflow-skill/scripts/start-feature.sh +0 -110
  713. package/.roo/skills/git-workflow-skill/scripts/validate-workflow.sh +0 -229
  714. package/.roo/skills/js-ts-dependency-mgmt/SKILL.md +0 -49
  715. package/.roo/skills/js-ts-dependency-mgmt/examples/dependency_mgmt.md +0 -60
  716. package/.roo/skills/js-ts-security-skill/SKILL.md +0 -64
  717. package/.roo/skills/js-ts-security-skill/scripts/verify-security.sh +0 -136
  718. package/.roo/skills/logging-best-practices/SKILL.md +0 -50
  719. package/.roo/skills/logging-best-practices/examples/cpp.md +0 -36
  720. package/.roo/skills/logging-best-practices/examples/csharp.md +0 -49
  721. package/.roo/skills/logging-best-practices/examples/javascript.md +0 -77
  722. package/.roo/skills/logging-best-practices/examples/python.md +0 -57
  723. package/.roo/skills/logging-best-practices/references/logging-standards.md +0 -29
  724. package/.roo/skills/open-presentation/SKILL.md +0 -35
  725. package/.roo/skills/opentelemetry-best-practices/SKILL.md +0 -34
  726. package/.roo/skills/opentelemetry-best-practices/examples/go.md +0 -32
  727. package/.roo/skills/opentelemetry-best-practices/examples/javascript.md +0 -58
  728. package/.roo/skills/opentelemetry-best-practices/examples/python.md +0 -37
  729. package/.roo/skills/opentelemetry-best-practices/references/otel-standards.md +0 -37
  730. package/.roo/skills/python-best-practices/SKILL.md +0 -385
  731. package/.roo/skills/python-dependency-mgmt/SKILL.md +0 -42
  732. package/.roo/skills/python-dependency-mgmt/examples/dependency_mgmt.md +0 -67
  733. package/.roo/skills/python-security-skill/SKILL.md +0 -56
  734. package/.roo/skills/python-security-skill/examples/security.md +0 -56
  735. package/.roo/skills/self-signed-cert/SKILL.md +0 -42
  736. package/.roo/skills/self-signed-cert/scripts/generate-cert.ps1 +0 -45
  737. package/.roo/skills/self-signed-cert/scripts/generate-cert.sh +0 -43
  738. package/.roo/skills/skill-creator/SKILL.md +0 -196
  739. package/.roo/skills/skill-creator/references/output-patterns.md +0 -82
  740. package/.roo/skills/skill-creator/references/workflows.md +0 -28
  741. package/.roo/skills/skill-creator/scripts/init_skill.py +0 -208
  742. package/.roo/skills/skill-creator/scripts/package_skill.py +0 -99
  743. package/.roo/skills/skill-creator/scripts/quick_validate.py +0 -113
  744. package/.roo/skills/story-status-lookup/SKILL.md +0 -78
  745. package/.roo/skills/test-accompanied-development/SKILL.md +0 -50
  746. package/.roo/skills/test-generator/SKILL.md +0 -65
  747. package/.roo/skills/vercel-react-best-practices/SKILL.md +0 -109
  748. package/.roo/skills/verify-hardened-docker-skill/SKILL.md +0 -442
  749. package/.roo/skills/verify-hardened-docker-skill/scripts/verify-docker-hardening.sh +0 -439
  750. package/opencode.json +0 -5
  751. /package/{.opencode/skills/add-sprint → lib/bmad-extension/skills/bmad-dev-story}/.gitkeep +0 -0
  752. /package/{.opencode → lib/bmad-extension}/skills/bmad-dev-story/SKILL.md +0 -0
  753. /package/{.opencode/skills/add-to-sprint → lib/bmad-extension/skills/bmad-sprint-planning}/.gitkeep +0 -0
  754. /package/{.opencode/skills/bmad-ma-agent-cyber → lib/bmad-extension/skills/bmad-sprint-status}/.gitkeep +0 -0
  755. /package/{.opencode/skills/bmad-ma-agent-devops → lib/bmad-extension/skills/close-sprint}/.gitkeep +0 -0
  756. /package/{.opencode/skills/bmad-ma-agent-mil498 → lib/bmad-extension/skills/mil498-requirement-quality}/.gitkeep +0 -0
  757. /package/{.opencode/skills/mil498-ocd/template.md → mil498/OCD.md} +0 -0
  758. /package/{.opencode/skills/mil498-sdp/template.md → mil498/SDP.md} +0 -0
  759. /package/{.opencode/skills/mil498-srs/template.md → mil498/SRS.md} +0 -0
  760. /package/{.opencode/skills/mil498-ssdd/template.md → mil498/SSDD.md} +0 -0
  761. /package/{.opencode/skills/mil498-sss/template.md → mil498/SSS.md} +0 -0
  762. /package/{.opencode/skills/mil498-std/template.md → mil498/STD.md} +0 -0
@@ -0,0 +1,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)