convoke-agents 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/CHANGELOG.md +920 -0
  2. package/INSTALLATION.md +230 -0
  3. package/LICENSE +21 -0
  4. package/README.md +330 -0
  5. package/UPDATE-GUIDE.md +220 -0
  6. package/_bmad/bme/_vortex/README.md +150 -0
  7. package/_bmad/bme/_vortex/agents/contextualization-expert.md +100 -0
  8. package/_bmad/bme/_vortex/agents/discovery-empathy-expert.md +117 -0
  9. package/_bmad/bme/_vortex/agents/hypothesis-engineer.md +117 -0
  10. package/_bmad/bme/_vortex/agents/lean-experiments-specialist.md +118 -0
  11. package/_bmad/bme/_vortex/agents/learning-decision-expert.md +117 -0
  12. package/_bmad/bme/_vortex/agents/production-intelligence-specialist.md +117 -0
  13. package/_bmad/bme/_vortex/agents/research-convergence-specialist.md +117 -0
  14. package/_bmad/bme/_vortex/compass-routing-reference.md +312 -0
  15. package/_bmad/bme/_vortex/config.yaml +46 -0
  16. package/_bmad/bme/_vortex/contracts/hc1-empathy-artifacts.md +152 -0
  17. package/_bmad/bme/_vortex/contracts/hc2-problem-definition.md +125 -0
  18. package/_bmad/bme/_vortex/contracts/hc3-hypothesis-contract.md +112 -0
  19. package/_bmad/bme/_vortex/contracts/hc4-experiment-context.md +140 -0
  20. package/_bmad/bme/_vortex/contracts/hc5-signal-report.md +130 -0
  21. package/_bmad/bme/_vortex/examples/hc2-example-problem-definition.md +85 -0
  22. package/_bmad/bme/_vortex/examples/hc3-example-hypothesis-contract.md +103 -0
  23. package/_bmad/bme/_vortex/examples/hc5-example-signal-report.md +76 -0
  24. package/_bmad/bme/_vortex/guides/EMMA-USER-GUIDE.md +232 -0
  25. package/_bmad/bme/_vortex/guides/ISLA-USER-GUIDE.md +208 -0
  26. package/_bmad/bme/_vortex/guides/LIAM-USER-GUIDE.md +255 -0
  27. package/_bmad/bme/_vortex/guides/MAX-USER-GUIDE.md +213 -0
  28. package/_bmad/bme/_vortex/guides/MILA-USER-GUIDE.md +235 -0
  29. package/_bmad/bme/_vortex/guides/NOAH-USER-GUIDE.md +258 -0
  30. package/_bmad/bme/_vortex/guides/WADE-USER-GUIDE.md +245 -0
  31. package/_bmad/bme/_vortex/workflows/_deprecated/empathy-map/empathy-map.template.md +143 -0
  32. package/_bmad/bme/_vortex/workflows/_deprecated/empathy-map/steps/step-01-define-user.md +60 -0
  33. package/_bmad/bme/_vortex/workflows/_deprecated/empathy-map/steps/step-02-says-thinks.md +67 -0
  34. package/_bmad/bme/_vortex/workflows/_deprecated/empathy-map/steps/step-03-does-feels.md +79 -0
  35. package/_bmad/bme/_vortex/workflows/_deprecated/empathy-map/steps/step-04-pain-points.md +87 -0
  36. package/_bmad/bme/_vortex/workflows/_deprecated/empathy-map/steps/step-05-gains.md +103 -0
  37. package/_bmad/bme/_vortex/workflows/_deprecated/empathy-map/steps/step-06-synthesize.md +104 -0
  38. package/_bmad/bme/_vortex/workflows/_deprecated/empathy-map/validate.md +117 -0
  39. package/_bmad/bme/_vortex/workflows/_deprecated/empathy-map/workflow.md +44 -0
  40. package/_bmad/bme/_vortex/workflows/_deprecated/wireframe/steps/step-01-define-requirements.md +85 -0
  41. package/_bmad/bme/_vortex/workflows/_deprecated/wireframe/steps/step-02-user-flows.md +59 -0
  42. package/_bmad/bme/_vortex/workflows/_deprecated/wireframe/steps/step-03-information-architecture.md +68 -0
  43. package/_bmad/bme/_vortex/workflows/_deprecated/wireframe/steps/step-04-wireframe-sketch.md +97 -0
  44. package/_bmad/bme/_vortex/workflows/_deprecated/wireframe/steps/step-05-components.md +128 -0
  45. package/_bmad/bme/_vortex/workflows/_deprecated/wireframe/steps/step-06-synthesize.md +83 -0
  46. package/_bmad/bme/_vortex/workflows/_deprecated/wireframe/wireframe.template.md +287 -0
  47. package/_bmad/bme/_vortex/workflows/_deprecated/wireframe/workflow.md +44 -0
  48. package/_bmad/bme/_vortex/workflows/assumption-mapping/steps/step-01-setup.md +66 -0
  49. package/_bmad/bme/_vortex/workflows/assumption-mapping/steps/step-02-context.md +93 -0
  50. package/_bmad/bme/_vortex/workflows/assumption-mapping/steps/step-03-risk-mapping.md +103 -0
  51. package/_bmad/bme/_vortex/workflows/assumption-mapping/steps/step-04-synthesize.md +101 -0
  52. package/_bmad/bme/_vortex/workflows/assumption-mapping/workflow.md +49 -0
  53. package/_bmad/bme/_vortex/workflows/behavior-analysis/steps/step-01-setup.md +81 -0
  54. package/_bmad/bme/_vortex/workflows/behavior-analysis/steps/step-02-context.md +67 -0
  55. package/_bmad/bme/_vortex/workflows/behavior-analysis/steps/step-03-classification.md +98 -0
  56. package/_bmad/bme/_vortex/workflows/behavior-analysis/steps/step-04-evidence.md +100 -0
  57. package/_bmad/bme/_vortex/workflows/behavior-analysis/steps/step-05-synthesize.md +174 -0
  58. package/_bmad/bme/_vortex/workflows/behavior-analysis/workflow.md +52 -0
  59. package/_bmad/bme/_vortex/workflows/contextualize-scope/contextualize-scope.template.md +67 -0
  60. package/_bmad/bme/_vortex/workflows/contextualize-scope/steps/step-01-list-opportunities.md +47 -0
  61. package/_bmad/bme/_vortex/workflows/contextualize-scope/steps/step-02-define-criteria.md +36 -0
  62. package/_bmad/bme/_vortex/workflows/contextualize-scope/steps/step-03-evaluate-opportunities.md +30 -0
  63. package/_bmad/bme/_vortex/workflows/contextualize-scope/steps/step-04-define-boundaries.md +32 -0
  64. package/_bmad/bme/_vortex/workflows/contextualize-scope/steps/step-05-validate-fit.md +28 -0
  65. package/_bmad/bme/_vortex/workflows/contextualize-scope/steps/step-06-synthesize.md +36 -0
  66. package/_bmad/bme/_vortex/workflows/contextualize-scope/validate.md +30 -0
  67. package/_bmad/bme/_vortex/workflows/contextualize-scope/workflow.md +59 -0
  68. package/_bmad/bme/_vortex/workflows/empathy-map/empathy-map.template.md +143 -0
  69. package/_bmad/bme/_vortex/workflows/empathy-map/steps/step-01-define-user.md +60 -0
  70. package/_bmad/bme/_vortex/workflows/empathy-map/steps/step-02-says-thinks.md +67 -0
  71. package/_bmad/bme/_vortex/workflows/empathy-map/steps/step-03-does-feels.md +79 -0
  72. package/_bmad/bme/_vortex/workflows/empathy-map/steps/step-04-pain-points.md +87 -0
  73. package/_bmad/bme/_vortex/workflows/empathy-map/steps/step-05-gains.md +103 -0
  74. package/_bmad/bme/_vortex/workflows/empathy-map/steps/step-06-synthesize.md +107 -0
  75. package/_bmad/bme/_vortex/workflows/empathy-map/validate.md +117 -0
  76. package/_bmad/bme/_vortex/workflows/empathy-map/workflow.md +45 -0
  77. package/_bmad/bme/_vortex/workflows/experiment-design/steps/step-01-setup.md +66 -0
  78. package/_bmad/bme/_vortex/workflows/experiment-design/steps/step-02-context.md +77 -0
  79. package/_bmad/bme/_vortex/workflows/experiment-design/steps/step-03-design.md +114 -0
  80. package/_bmad/bme/_vortex/workflows/experiment-design/steps/step-04-synthesize.md +128 -0
  81. package/_bmad/bme/_vortex/workflows/experiment-design/workflow.md +51 -0
  82. package/_bmad/bme/_vortex/workflows/hypothesis-engineering/steps/step-01-setup.md +66 -0
  83. package/_bmad/bme/_vortex/workflows/hypothesis-engineering/steps/step-02-context.md +80 -0
  84. package/_bmad/bme/_vortex/workflows/hypothesis-engineering/steps/step-03-brainwriting.md +79 -0
  85. package/_bmad/bme/_vortex/workflows/hypothesis-engineering/steps/step-04-assumption-mapping.md +102 -0
  86. package/_bmad/bme/_vortex/workflows/hypothesis-engineering/steps/step-05-synthesize.md +130 -0
  87. package/_bmad/bme/_vortex/workflows/hypothesis-engineering/workflow.md +52 -0
  88. package/_bmad/bme/_vortex/workflows/lean-experiment/lean-experiment.template.md +29 -0
  89. package/_bmad/bme/_vortex/workflows/lean-experiment/steps/step-01-hypothesis.md +58 -0
  90. package/_bmad/bme/_vortex/workflows/lean-experiment/steps/step-02-design.md +68 -0
  91. package/_bmad/bme/_vortex/workflows/lean-experiment/steps/step-03-metrics.md +73 -0
  92. package/_bmad/bme/_vortex/workflows/lean-experiment/steps/step-04-run.md +75 -0
  93. package/_bmad/bme/_vortex/workflows/lean-experiment/steps/step-05-analyze.md +84 -0
  94. package/_bmad/bme/_vortex/workflows/lean-experiment/steps/step-06-decide.md +111 -0
  95. package/_bmad/bme/_vortex/workflows/lean-experiment/validate.md +30 -0
  96. package/_bmad/bme/_vortex/workflows/lean-experiment/workflow.md +26 -0
  97. package/_bmad/bme/_vortex/workflows/lean-persona/lean-persona.template.md +163 -0
  98. package/_bmad/bme/_vortex/workflows/lean-persona/steps/step-01-define-job.md +72 -0
  99. package/_bmad/bme/_vortex/workflows/lean-persona/steps/step-02-current-solution.md +83 -0
  100. package/_bmad/bme/_vortex/workflows/lean-persona/steps/step-03-problem-contexts.md +90 -0
  101. package/_bmad/bme/_vortex/workflows/lean-persona/steps/step-04-forces-anxieties.md +98 -0
  102. package/_bmad/bme/_vortex/workflows/lean-persona/steps/step-05-success-criteria.md +103 -0
  103. package/_bmad/bme/_vortex/workflows/lean-persona/steps/step-06-synthesize.md +129 -0
  104. package/_bmad/bme/_vortex/workflows/lean-persona/validate.md +30 -0
  105. package/_bmad/bme/_vortex/workflows/lean-persona/workflow.md +50 -0
  106. package/_bmad/bme/_vortex/workflows/learning-card/learning-card.template.md +179 -0
  107. package/_bmad/bme/_vortex/workflows/learning-card/steps/step-01-experiment-context.md +100 -0
  108. package/_bmad/bme/_vortex/workflows/learning-card/steps/step-02-raw-results.md +125 -0
  109. package/_bmad/bme/_vortex/workflows/learning-card/steps/step-03-analysis.md +125 -0
  110. package/_bmad/bme/_vortex/workflows/learning-card/steps/step-04-validated-learning.md +139 -0
  111. package/_bmad/bme/_vortex/workflows/learning-card/steps/step-05-implications.md +134 -0
  112. package/_bmad/bme/_vortex/workflows/learning-card/steps/step-06-synthesize.md +121 -0
  113. package/_bmad/bme/_vortex/workflows/learning-card/validate.md +134 -0
  114. package/_bmad/bme/_vortex/workflows/learning-card/workflow.md +51 -0
  115. package/_bmad/bme/_vortex/workflows/mvp/mvp.template.md +40 -0
  116. package/_bmad/bme/_vortex/workflows/mvp/steps/step-01-riskiest-assumption.md +17 -0
  117. package/_bmad/bme/_vortex/workflows/mvp/steps/step-02-success-criteria.md +13 -0
  118. package/_bmad/bme/_vortex/workflows/mvp/steps/step-03-smallest-test.md +13 -0
  119. package/_bmad/bme/_vortex/workflows/mvp/steps/step-04-scope-features.md +13 -0
  120. package/_bmad/bme/_vortex/workflows/mvp/steps/step-05-build-measure-learn.md +13 -0
  121. package/_bmad/bme/_vortex/workflows/mvp/steps/step-06-synthesize.md +28 -0
  122. package/_bmad/bme/_vortex/workflows/mvp/validate.md +30 -0
  123. package/_bmad/bme/_vortex/workflows/mvp/workflow.md +36 -0
  124. package/_bmad/bme/_vortex/workflows/pattern-mapping/steps/step-01-setup.md +102 -0
  125. package/_bmad/bme/_vortex/workflows/pattern-mapping/steps/step-02-context.md +81 -0
  126. package/_bmad/bme/_vortex/workflows/pattern-mapping/steps/step-03-pattern-identification.md +88 -0
  127. package/_bmad/bme/_vortex/workflows/pattern-mapping/steps/step-04-theme-clustering.md +100 -0
  128. package/_bmad/bme/_vortex/workflows/pattern-mapping/steps/step-05-synthesize.md +135 -0
  129. package/_bmad/bme/_vortex/workflows/pattern-mapping/workflow.md +58 -0
  130. package/_bmad/bme/_vortex/workflows/pivot-patch-persevere/pivot-patch-persevere.template.md +201 -0
  131. package/_bmad/bme/_vortex/workflows/pivot-patch-persevere/steps/step-01-evidence-review.md +125 -0
  132. package/_bmad/bme/_vortex/workflows/pivot-patch-persevere/steps/step-02-hypothesis-assessment.md +132 -0
  133. package/_bmad/bme/_vortex/workflows/pivot-patch-persevere/steps/step-03-option-analysis.md +167 -0
  134. package/_bmad/bme/_vortex/workflows/pivot-patch-persevere/steps/step-04-stakeholder-input.md +141 -0
  135. package/_bmad/bme/_vortex/workflows/pivot-patch-persevere/steps/step-05-decision.md +161 -0
  136. package/_bmad/bme/_vortex/workflows/pivot-patch-persevere/steps/step-06-action-plan.md +188 -0
  137. package/_bmad/bme/_vortex/workflows/pivot-patch-persevere/validate.md +159 -0
  138. package/_bmad/bme/_vortex/workflows/pivot-patch-persevere/workflow.md +51 -0
  139. package/_bmad/bme/_vortex/workflows/pivot-resynthesis/steps/step-01-setup.md +97 -0
  140. package/_bmad/bme/_vortex/workflows/pivot-resynthesis/steps/step-02-context.md +86 -0
  141. package/_bmad/bme/_vortex/workflows/pivot-resynthesis/steps/step-03-jtbd-reframing.md +88 -0
  142. package/_bmad/bme/_vortex/workflows/pivot-resynthesis/steps/step-04-pains-gains-revision.md +76 -0
  143. package/_bmad/bme/_vortex/workflows/pivot-resynthesis/steps/step-05-synthesize.md +158 -0
  144. package/_bmad/bme/_vortex/workflows/pivot-resynthesis/workflow.md +52 -0
  145. package/_bmad/bme/_vortex/workflows/product-vision/product-vision.template.md +147 -0
  146. package/_bmad/bme/_vortex/workflows/product-vision/steps/step-01-define-problem.md +89 -0
  147. package/_bmad/bme/_vortex/workflows/product-vision/steps/step-02-target-market.md +91 -0
  148. package/_bmad/bme/_vortex/workflows/product-vision/steps/step-03-unique-approach.md +87 -0
  149. package/_bmad/bme/_vortex/workflows/product-vision/steps/step-04-future-state.md +100 -0
  150. package/_bmad/bme/_vortex/workflows/product-vision/steps/step-05-principles.md +92 -0
  151. package/_bmad/bme/_vortex/workflows/product-vision/steps/step-06-synthesize.md +170 -0
  152. package/_bmad/bme/_vortex/workflows/product-vision/validate.md +30 -0
  153. package/_bmad/bme/_vortex/workflows/product-vision/workflow.md +55 -0
  154. package/_bmad/bme/_vortex/workflows/production-monitoring/steps/step-01-setup.md +84 -0
  155. package/_bmad/bme/_vortex/workflows/production-monitoring/steps/step-02-context.md +66 -0
  156. package/_bmad/bme/_vortex/workflows/production-monitoring/steps/step-03-monitoring.md +74 -0
  157. package/_bmad/bme/_vortex/workflows/production-monitoring/steps/step-04-prioritization.md +97 -0
  158. package/_bmad/bme/_vortex/workflows/production-monitoring/steps/step-05-synthesize.md +183 -0
  159. package/_bmad/bme/_vortex/workflows/production-monitoring/workflow.md +52 -0
  160. package/_bmad/bme/_vortex/workflows/proof-of-concept/proof-of-concept.template.md +25 -0
  161. package/_bmad/bme/_vortex/workflows/proof-of-concept/steps/step-01-risk.md +79 -0
  162. package/_bmad/bme/_vortex/workflows/proof-of-concept/steps/step-02-scope.md +105 -0
  163. package/_bmad/bme/_vortex/workflows/proof-of-concept/steps/step-03-build.md +92 -0
  164. package/_bmad/bme/_vortex/workflows/proof-of-concept/steps/step-04-test.md +103 -0
  165. package/_bmad/bme/_vortex/workflows/proof-of-concept/steps/step-05-evaluate.md +114 -0
  166. package/_bmad/bme/_vortex/workflows/proof-of-concept/steps/step-06-document.md +125 -0
  167. package/_bmad/bme/_vortex/workflows/proof-of-concept/validate.md +30 -0
  168. package/_bmad/bme/_vortex/workflows/proof-of-concept/workflow.md +26 -0
  169. package/_bmad/bme/_vortex/workflows/proof-of-value/proof-of-value.template.md +29 -0
  170. package/_bmad/bme/_vortex/workflows/proof-of-value/steps/step-01-value-hypothesis.md +75 -0
  171. package/_bmad/bme/_vortex/workflows/proof-of-value/steps/step-02-validation-design.md +94 -0
  172. package/_bmad/bme/_vortex/workflows/proof-of-value/steps/step-03-willingness.md +96 -0
  173. package/_bmad/bme/_vortex/workflows/proof-of-value/steps/step-04-test.md +107 -0
  174. package/_bmad/bme/_vortex/workflows/proof-of-value/steps/step-05-analyze.md +116 -0
  175. package/_bmad/bme/_vortex/workflows/proof-of-value/steps/step-06-document.md +147 -0
  176. package/_bmad/bme/_vortex/workflows/proof-of-value/validate.md +30 -0
  177. package/_bmad/bme/_vortex/workflows/proof-of-value/workflow.md +26 -0
  178. package/_bmad/bme/_vortex/workflows/research-convergence/steps/step-01-setup.md +69 -0
  179. package/_bmad/bme/_vortex/workflows/research-convergence/steps/step-02-context.md +70 -0
  180. package/_bmad/bme/_vortex/workflows/research-convergence/steps/step-03-jtbd-framing.md +81 -0
  181. package/_bmad/bme/_vortex/workflows/research-convergence/steps/step-04-pains-gains.md +77 -0
  182. package/_bmad/bme/_vortex/workflows/research-convergence/steps/step-05-synthesize.md +147 -0
  183. package/_bmad/bme/_vortex/workflows/research-convergence/workflow.md +50 -0
  184. package/_bmad/bme/_vortex/workflows/signal-interpretation/steps/step-01-setup.md +68 -0
  185. package/_bmad/bme/_vortex/workflows/signal-interpretation/steps/step-02-context.md +67 -0
  186. package/_bmad/bme/_vortex/workflows/signal-interpretation/steps/step-03-signal-analysis.md +85 -0
  187. package/_bmad/bme/_vortex/workflows/signal-interpretation/steps/step-04-anomaly-detection.md +93 -0
  188. package/_bmad/bme/_vortex/workflows/signal-interpretation/steps/step-05-synthesize.md +163 -0
  189. package/_bmad/bme/_vortex/workflows/signal-interpretation/workflow.md +52 -0
  190. package/_bmad/bme/_vortex/workflows/user-discovery/steps/step-01-discovery-scope.md +77 -0
  191. package/_bmad/bme/_vortex/workflows/user-discovery/steps/step-02-research-methods.md +152 -0
  192. package/_bmad/bme/_vortex/workflows/user-discovery/steps/step-03-research-plan.md +159 -0
  193. package/_bmad/bme/_vortex/workflows/user-discovery/steps/step-04-execute.md +169 -0
  194. package/_bmad/bme/_vortex/workflows/user-discovery/steps/step-05-organize-data.md +149 -0
  195. package/_bmad/bme/_vortex/workflows/user-discovery/steps/step-06-synthesize.md +159 -0
  196. package/_bmad/bme/_vortex/workflows/user-discovery/user-discovery.template.md +231 -0
  197. package/_bmad/bme/_vortex/workflows/user-discovery/validate.md +153 -0
  198. package/_bmad/bme/_vortex/workflows/user-discovery/workflow.md +45 -0
  199. package/_bmad/bme/_vortex/workflows/user-interview/steps/step-01-research-goals.md +100 -0
  200. package/_bmad/bme/_vortex/workflows/user-interview/steps/step-02-interview-script.md +123 -0
  201. package/_bmad/bme/_vortex/workflows/user-interview/steps/step-03-recruitment.md +144 -0
  202. package/_bmad/bme/_vortex/workflows/user-interview/steps/step-04-conduct.md +154 -0
  203. package/_bmad/bme/_vortex/workflows/user-interview/steps/step-05-findings.md +163 -0
  204. package/_bmad/bme/_vortex/workflows/user-interview/steps/step-06-synthesize.md +171 -0
  205. package/_bmad/bme/_vortex/workflows/user-interview/user-interview.template.md +250 -0
  206. package/_bmad/bme/_vortex/workflows/user-interview/validate.md +142 -0
  207. package/_bmad/bme/_vortex/workflows/user-interview/workflow.md +51 -0
  208. package/_bmad/bme/_vortex/workflows/vortex-navigation/steps/step-01-current-state.md +56 -0
  209. package/_bmad/bme/_vortex/workflows/vortex-navigation/steps/step-02-evidence-inventory.md +70 -0
  210. package/_bmad/bme/_vortex/workflows/vortex-navigation/steps/step-03-gap-analysis.md +76 -0
  211. package/_bmad/bme/_vortex/workflows/vortex-navigation/steps/step-04-stream-evaluation.md +57 -0
  212. package/_bmad/bme/_vortex/workflows/vortex-navigation/steps/step-05-recommendation.md +65 -0
  213. package/_bmad/bme/_vortex/workflows/vortex-navigation/steps/step-06-navigation-plan.md +72 -0
  214. package/_bmad/bme/_vortex/workflows/vortex-navigation/validate.md +75 -0
  215. package/_bmad/bme/_vortex/workflows/vortex-navigation/vortex-navigation.template.md +105 -0
  216. package/_bmad/bme/_vortex/workflows/vortex-navigation/workflow.md +54 -0
  217. package/index.js +56 -0
  218. package/package.json +77 -0
  219. package/scripts/README.md +226 -0
  220. package/scripts/convoke-doctor.js +322 -0
  221. package/scripts/docs-audit.js +584 -0
  222. package/scripts/install-all-agents.js +9 -0
  223. package/scripts/install-vortex-agents.js +208 -0
  224. package/scripts/postinstall.js +104 -0
  225. package/scripts/update/convoke-migrate.js +169 -0
  226. package/scripts/update/convoke-update.js +272 -0
  227. package/scripts/update/convoke-version.js +134 -0
  228. package/scripts/update/lib/agent-registry.js +144 -0
  229. package/scripts/update/lib/backup-manager.js +243 -0
  230. package/scripts/update/lib/config-merger.js +242 -0
  231. package/scripts/update/lib/migration-runner.js +367 -0
  232. package/scripts/update/lib/refresh-installation.js +171 -0
  233. package/scripts/update/lib/utils.js +96 -0
  234. package/scripts/update/lib/validator.js +360 -0
  235. package/scripts/update/lib/version-detector.js +241 -0
  236. package/scripts/update/migrations/1.0.x-to-1.3.0.js +128 -0
  237. package/scripts/update/migrations/1.1.x-to-1.3.0.js +29 -0
  238. package/scripts/update/migrations/1.2.x-to-1.3.0.js +29 -0
  239. package/scripts/update/migrations/1.3.x-to-1.5.0.js +29 -0
  240. package/scripts/update/migrations/1.4.x-to-1.5.0.js +29 -0
  241. package/scripts/update/migrations/1.5.x-to-1.6.0.js +95 -0
  242. package/scripts/update/migrations/1.6.x-to-1.7.0.js +29 -0
  243. package/scripts/update/migrations/1.7.x-to-2.0.0.js +31 -0
  244. package/scripts/update/migrations/registry.js +194 -0
@@ -0,0 +1,226 @@
1
+ # Convoke Installation Scripts
2
+
3
+ This directory contains npm-based installation scripts for Convoke agents.
4
+
5
+ ## Available Scripts
6
+
7
+ ### `install-emma.js`
8
+ Installs Emma (empathy-mapper) agent into your project.
9
+
10
+ **What it does:**
11
+ - Creates `_bmad/bme/_vortex/` directory structure
12
+ - Copies Emma agent file (`empathy-mapper.md`)
13
+ - Copies Emma workflow files (lean-persona, product-vision, contextualize-scope)
14
+ - Creates/updates `config.yaml`
15
+ - Updates `agent-manifest.csv`
16
+ - Creates output directory
17
+
18
+ **Usage:**
19
+ ```bash
20
+ npm run install:emma
21
+ ```
22
+
23
+ ---
24
+
25
+ ### `install-wade.js`
26
+ Installs Wade (wireframe-designer) agent into your project.
27
+
28
+ **What it does:**
29
+ - Creates `_bmad/bme/_vortex/` directory structure
30
+ - Copies Wade agent file (`wireframe-designer.md`)
31
+ - Copies Wade workflow files (mvp, lean-experiment, proof-of-concept, proof-of-value)
32
+ - Creates/updates `config.yaml`
33
+ - Updates `agent-manifest.csv`
34
+ - Creates output directory
35
+
36
+ **Usage:**
37
+ ```bash
38
+ npm run install:wade
39
+ ```
40
+
41
+ ---
42
+
43
+ ### `install-all-agents.js`
44
+ Installs both Emma and Wade agents at once.
45
+
46
+ **What it does:**
47
+ - All actions from `install-emma.js`
48
+ - All actions from `install-wade.js`
49
+ - Creates unified `config.yaml` with both agents
50
+ - Copies user guides for both agents
51
+
52
+ **Usage:**
53
+ ```bash
54
+ npm run install:agents
55
+ ```
56
+
57
+ ---
58
+
59
+ ### `postinstall.js`
60
+ Runs automatically after `npm install` to display installation instructions.
61
+
62
+ ---
63
+
64
+ ## Installation Flow
65
+
66
+ ```
67
+ npm install convoke
68
+
69
+ postinstall.js runs
70
+
71
+ Displays available commands
72
+
73
+ User runs: npm run install:agents (or individual agent)
74
+
75
+ install-all-agents.js (or individual installer)
76
+
77
+ Checks prerequisites
78
+
79
+ Copies agent files to _bmad/bme/_designos/
80
+
81
+ Creates/updates config.yaml
82
+
83
+ Updates agent-manifest.csv
84
+
85
+ Creates output directory
86
+
87
+ Copies user guides
88
+
89
+ Success! Agents ready to use
90
+ ```
91
+
92
+ ---
93
+
94
+ ## File Structure Created
95
+
96
+ ```
97
+ your-project/
98
+ ├── _bmad/
99
+ │ ├── bme/
100
+ │ │ └── _vortex/
101
+ │ │ ├── agents/
102
+ │ │ │ ├── empathy-mapper.md
103
+ │ │ │ └── wireframe-designer.md
104
+ │ │ ├── workflows/
105
+ │ │ │ ├── lean-persona/
106
+ │ │ │ │ ├── workflow.md
107
+ │ │ │ │ └── validate.md
108
+ │ │ │ ├── product-vision/
109
+ │ │ │ │ ├── workflow.md
110
+ │ │ │ │ └── validate.md
111
+ │ │ │ ├── contextualize-scope/
112
+ │ │ │ │ ├── workflow.md
113
+ │ │ │ │ └── validate.md
114
+ │ │ │ ├── mvp/
115
+ │ │ │ │ ├── workflow.md
116
+ │ │ │ │ └── validate.md
117
+ │ │ │ ├── lean-experiment/
118
+ │ │ │ │ ├── workflow.md
119
+ │ │ │ │ └── validate.md
120
+ │ │ │ ├── proof-of-concept/
121
+ │ │ │ │ ├── workflow.md
122
+ │ │ │ │ └── validate.md
123
+ │ │ │ └── proof-of-value/
124
+ │ │ │ ├── workflow.md
125
+ │ │ │ └── validate.md
126
+ │ │ └── config.yaml
127
+ │ └── _config/
128
+ │ └── agent-manifest.csv
129
+ └── _bmad-output/
130
+ └── vortex-artifacts/
131
+ ├── EMMA-USER-GUIDE.md
132
+ └── WADE-USER-GUIDE.md
133
+ ```
134
+
135
+ ---
136
+
137
+ ## Configuration
138
+
139
+ ### config.yaml
140
+ ```yaml
141
+ ---
142
+ submodule_name: _vortex
143
+ description: Contextualize and Externalize streams - Strategic framing and validated learning
144
+ module: bme
145
+ version: 1.1.0
146
+
147
+ # Output Configuration
148
+ output_folder: "{project-root}/_bmad-output/vortex-artifacts"
149
+ user_name: "{user}"
150
+ communication_language: "en"
151
+
152
+ # Agents in this submodule
153
+ agents:
154
+ - empathy-mapper # Emma - Contextualization Expert
155
+ - wireframe-designer # Wade - Lean Experiments Specialist
156
+
157
+ # Workflows available
158
+ workflows:
159
+ # Emma - Contextualize Stream
160
+ - lean-persona # Create lean user personas
161
+ - product-vision # Define product vision
162
+ - contextualize-scope # Decide which problem space to investigate
163
+
164
+ # Wade - Externalize Stream
165
+ - mvp # Design Minimum Viable Product
166
+ - lean-experiment # Run Build-Measure-Learn cycle
167
+ - proof-of-concept # Validate technical feasibility
168
+ - proof-of-value # Validate business value
169
+
170
+ # Integration
171
+ party_mode_enabled: true
172
+ core_module: bme
173
+ ```
174
+
175
+ You can customize these values after installation.
176
+
177
+ ---
178
+
179
+ ## Troubleshooting
180
+
181
+ ### "Cannot find module 'fs-extra'"
182
+ ```bash
183
+ npm install fs-extra chalk
184
+ ```
185
+
186
+ ### "Permission denied"
187
+ ```bash
188
+ chmod +x scripts/*.js
189
+ ```
190
+
191
+ ### "Config already exists"
192
+ The installers will update existing config files rather than overwriting them.
193
+
194
+ ---
195
+
196
+ ## Development
197
+
198
+ ### Testing Installers Locally
199
+
200
+ ```bash
201
+ # Test Emma installer
202
+ node scripts/install-emma.js
203
+
204
+ # Test Wade installer
205
+ node scripts/install-wade.js
206
+
207
+ # Test all-agents installer
208
+ node scripts/install-all-agents.js
209
+ ```
210
+
211
+ ### Adding New Agents
212
+
213
+ To add a new agent installer:
214
+
215
+ 1. Copy `install-emma.js` as template
216
+ 2. Update agent name, files, and workflows
217
+ 3. Add to `package.json` scripts:
218
+ ```json
219
+ "install:new-agent": "node scripts/install-new-agent.js"
220
+ ```
221
+ 4. Update `install-all-agents.js` to include new agent
222
+
223
+ ---
224
+
225
+ **Version:** 1.1.0
226
+ **Last Updated:** 2026-02-16
@@ -0,0 +1,322 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs-extra');
4
+ const path = require('path');
5
+ const chalk = require('chalk');
6
+ const yaml = require('js-yaml');
7
+ const { findProjectRoot, getPackageVersion } = require('./update/lib/utils');
8
+ const { AGENT_FILES, WORKFLOW_NAMES } = require('./update/lib/agent-registry');
9
+
10
+ /**
11
+ * convoke-doctor — Diagnose common Convoke installation issues.
12
+ * Runs a series of checks and reports pass/fail with actionable fix suggestions.
13
+ */
14
+
15
+ async function main() {
16
+ console.log('');
17
+ console.log(chalk.cyan.bold('Convoke Doctor'));
18
+ console.log(chalk.gray(`Package version: ${getPackageVersion()}`));
19
+ console.log('');
20
+
21
+ const projectRoot = findProjectRoot();
22
+ const checks = [];
23
+
24
+ // 1. Project root detection
25
+ checks.push(checkProjectRoot(projectRoot));
26
+
27
+ if (!projectRoot) {
28
+ printResults(checks);
29
+ process.exit(1);
30
+ return;
31
+ }
32
+
33
+ // 2. Config file
34
+ checks.push(checkConfig(projectRoot));
35
+
36
+ // 3. Agent files
37
+ checks.push(checkAgents(projectRoot));
38
+
39
+ // 4. Workflow directories
40
+ checks.push(checkWorkflows(projectRoot));
41
+
42
+ // 5. Output directory writable
43
+ checks.push(await checkOutputDir(projectRoot));
44
+
45
+ // 6. Stale migration lock
46
+ checks.push(checkMigrationLock(projectRoot));
47
+
48
+ // 7. Version consistency
49
+ checks.push(checkVersionConsistency(projectRoot));
50
+
51
+ printResults(checks);
52
+
53
+ const failed = checks.filter(c => !c.passed);
54
+ process.exit(failed.length > 0 ? 1 : 0);
55
+ }
56
+
57
+ function checkProjectRoot(projectRoot) {
58
+ if (projectRoot) {
59
+ return {
60
+ name: 'Project root',
61
+ passed: true,
62
+ info: projectRoot
63
+ };
64
+ }
65
+ return {
66
+ name: 'Project root',
67
+ passed: false,
68
+ error: 'Could not find _bmad/ directory',
69
+ fix: 'Run this command from inside a Convoke project, or run: npx convoke-install'
70
+ };
71
+ }
72
+
73
+ function checkConfig(projectRoot) {
74
+ const configPath = path.join(projectRoot, '_bmad/bme/_vortex/config.yaml');
75
+
76
+ if (!fs.existsSync(configPath)) {
77
+ return {
78
+ name: 'Config file',
79
+ passed: false,
80
+ error: 'config.yaml not found',
81
+ fix: 'Run: npx convoke-install'
82
+ };
83
+ }
84
+
85
+ try {
86
+ const content = fs.readFileSync(configPath, 'utf8');
87
+ const config = yaml.load(content);
88
+
89
+ if (!config || typeof config !== 'object') {
90
+ return {
91
+ name: 'Config file',
92
+ passed: false,
93
+ error: 'config.yaml is empty or invalid',
94
+ fix: 'Delete _bmad/bme/_vortex/config.yaml and run: npx convoke-install'
95
+ };
96
+ }
97
+
98
+ if (!config.agents) {
99
+ return {
100
+ name: 'Config file',
101
+ passed: false,
102
+ error: 'config.yaml missing agents section',
103
+ fix: 'Run: npx convoke-update'
104
+ };
105
+ }
106
+
107
+ return { name: 'Config file', passed: true, info: 'Valid YAML with agents section' };
108
+ } catch (err) {
109
+ return {
110
+ name: 'Config file',
111
+ passed: false,
112
+ error: `YAML parse error: ${err.message}`,
113
+ fix: 'Check config.yaml for syntax errors, or delete and run: npx convoke-install'
114
+ };
115
+ }
116
+ }
117
+
118
+ function checkAgents(projectRoot) {
119
+ const agentsDir = path.join(projectRoot, '_bmad/bme/_vortex/agents');
120
+ const required = AGENT_FILES;
121
+
122
+ if (!fs.existsSync(agentsDir)) {
123
+ return {
124
+ name: 'Agent files',
125
+ passed: false,
126
+ error: 'agents/ directory not found',
127
+ fix: 'Run: npx convoke-install-vortex'
128
+ };
129
+ }
130
+
131
+ const missing = required.filter(f => !fs.existsSync(path.join(agentsDir, f)));
132
+
133
+ if (missing.length > 0) {
134
+ return {
135
+ name: 'Agent files',
136
+ passed: false,
137
+ error: `Missing: ${missing.join(', ')}`,
138
+ fix: 'Run: npx convoke-install-vortex to reinstall'
139
+ };
140
+ }
141
+
142
+ // Check files are non-empty
143
+ const empty = required.filter(f => {
144
+ const stat = fs.statSync(path.join(agentsDir, f));
145
+ return stat.size === 0;
146
+ });
147
+
148
+ if (empty.length > 0) {
149
+ return {
150
+ name: 'Agent files',
151
+ passed: false,
152
+ error: `Empty agent files: ${empty.join(', ')}`,
153
+ fix: 'Run: npx convoke-install to restore agent files'
154
+ };
155
+ }
156
+
157
+ return { name: 'Agent files', passed: true, info: `${required.length} agents present` };
158
+ }
159
+
160
+ function checkWorkflows(projectRoot) {
161
+ const workflowsDir = path.join(projectRoot, '_bmad/bme/_vortex/workflows');
162
+ const required = WORKFLOW_NAMES;
163
+
164
+ if (!fs.existsSync(workflowsDir)) {
165
+ return {
166
+ name: 'Workflow directories',
167
+ passed: false,
168
+ error: 'workflows/ directory not found',
169
+ fix: 'Run: npx convoke-install'
170
+ };
171
+ }
172
+
173
+ const missing = required.filter(w =>
174
+ !fs.existsSync(path.join(workflowsDir, w, 'workflow.md'))
175
+ );
176
+
177
+ if (missing.length > 0) {
178
+ return {
179
+ name: 'Workflow directories',
180
+ passed: false,
181
+ error: `Missing: ${missing.join(', ')}`,
182
+ fix: 'Run: npx convoke-update to restore workflows'
183
+ };
184
+ }
185
+
186
+ return { name: 'Workflow directories', passed: true, info: `${required.length} workflows present` };
187
+ }
188
+
189
+ async function checkOutputDir(projectRoot) {
190
+ const outputDir = path.join(projectRoot, '_bmad-output');
191
+
192
+ if (!fs.existsSync(outputDir)) {
193
+ return {
194
+ name: 'Output directory',
195
+ passed: true,
196
+ info: 'Not created yet (will be created on first use)'
197
+ };
198
+ }
199
+
200
+ try {
201
+ const testFile = path.join(outputDir, '.doctor-write-test');
202
+ await fs.writeFile(testFile, 'test', 'utf8');
203
+ await fs.remove(testFile);
204
+ return { name: 'Output directory', passed: true, info: 'Writable' };
205
+ } catch (_err) {
206
+ return {
207
+ name: 'Output directory',
208
+ passed: false,
209
+ error: '_bmad-output/ is not writable',
210
+ fix: 'Check directory permissions: chmod -R u+w _bmad-output/'
211
+ };
212
+ }
213
+ }
214
+
215
+ function checkMigrationLock(projectRoot) {
216
+ const lockFile = path.join(projectRoot, '_bmad-output/.migration-lock');
217
+
218
+ if (!fs.existsSync(lockFile)) {
219
+ return { name: 'Migration lock', passed: true, info: 'No active lock' };
220
+ }
221
+
222
+ try {
223
+ const lock = fs.readJsonSync(lockFile);
224
+ const age = Date.now() - lock.timestamp;
225
+ const minutes = Math.round(age / 60000);
226
+
227
+ if (age > 5 * 60 * 1000) {
228
+ return {
229
+ name: 'Migration lock',
230
+ passed: false,
231
+ error: `Stale lock file (${minutes} minutes old, PID ${lock.pid})`,
232
+ fix: 'Remove the stale lock: rm _bmad-output/.migration-lock'
233
+ };
234
+ }
235
+
236
+ return {
237
+ name: 'Migration lock',
238
+ passed: true,
239
+ info: `Active lock (${minutes}m old, PID ${lock.pid}) — migration may be running`
240
+ };
241
+ } catch (_err) {
242
+ return {
243
+ name: 'Migration lock',
244
+ passed: false,
245
+ error: 'Corrupt lock file',
246
+ fix: 'Remove the lock: rm _bmad-output/.migration-lock'
247
+ };
248
+ }
249
+ }
250
+
251
+ function checkVersionConsistency(projectRoot) {
252
+ const configPath = path.join(projectRoot, '_bmad/bme/_vortex/config.yaml');
253
+ const packageVersion = getPackageVersion();
254
+
255
+ if (!fs.existsSync(configPath)) {
256
+ return { name: 'Version consistency', passed: true, info: 'No config to check' };
257
+ }
258
+
259
+ try {
260
+ const content = fs.readFileSync(configPath, 'utf8');
261
+ const config = yaml.load(content);
262
+ const installedVersion = config.version || config.installed_version;
263
+
264
+ if (!installedVersion) {
265
+ return {
266
+ name: 'Version consistency',
267
+ passed: true,
268
+ info: `Package: ${packageVersion} (no installed version recorded in config)`
269
+ };
270
+ }
271
+
272
+ if (installedVersion === packageVersion) {
273
+ return {
274
+ name: 'Version consistency',
275
+ passed: true,
276
+ info: `${packageVersion} — package and config match`
277
+ };
278
+ }
279
+
280
+ return {
281
+ name: 'Version consistency',
282
+ passed: false,
283
+ error: `Package: ${packageVersion}, Config: ${installedVersion}`,
284
+ fix: 'Run: npx convoke-update'
285
+ };
286
+ } catch (_err) {
287
+ return { name: 'Version consistency', passed: true, info: 'Could not read config version' };
288
+ }
289
+ }
290
+
291
+ function printResults(checks) {
292
+ const passed = checks.filter(c => c.passed);
293
+ const failed = checks.filter(c => !c.passed);
294
+
295
+ checks.forEach(check => {
296
+ if (check.passed) {
297
+ console.log(chalk.green(` ✓ ${check.name}`));
298
+ if (check.info) {
299
+ console.log(chalk.gray(` ${check.info}`));
300
+ }
301
+ } else {
302
+ console.log(chalk.red(` ✗ ${check.name}`));
303
+ console.log(chalk.red(` ${check.error}`));
304
+ if (check.fix) {
305
+ console.log(chalk.yellow(` Fix: ${check.fix}`));
306
+ }
307
+ }
308
+ });
309
+
310
+ console.log('');
311
+ if (failed.length === 0) {
312
+ console.log(chalk.green.bold(`All ${passed.length} checks passed. Installation looks healthy!`));
313
+ } else {
314
+ console.log(chalk.red.bold(`${failed.length} issue(s) found, ${passed.length} checks passed.`));
315
+ }
316
+ console.log('');
317
+ }
318
+
319
+ main().catch(err => {
320
+ console.error(chalk.red(`Doctor failed: ${err.message}`));
321
+ process.exit(1);
322
+ });