bmad-studio 0.1.0 → 0.2.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 (1041) hide show
  1. package/package.json +17 -1
  2. package/packages/client/dist/assets/index-5nXyrx_3.css +1 -0
  3. package/packages/client/dist/assets/index-DxN3uabX.js +521 -0
  4. package/packages/client/dist/assets/inter-tight-cyrillic-400-normal-DPRou3KO.woff +0 -0
  5. package/packages/client/dist/assets/inter-tight-cyrillic-400-normal-G7BuwYWK.woff2 +0 -0
  6. package/packages/client/dist/assets/inter-tight-cyrillic-700-normal-DDZiLR3d.woff +0 -0
  7. package/packages/client/dist/assets/inter-tight-cyrillic-700-normal-DtWWjp29.woff2 +0 -0
  8. package/packages/client/dist/assets/inter-tight-cyrillic-800-normal-CC_RRmyd.woff2 +0 -0
  9. package/packages/client/dist/assets/inter-tight-cyrillic-800-normal-ChWbk4mt.woff +0 -0
  10. package/packages/client/dist/assets/inter-tight-cyrillic-ext-400-normal-CKO3cWyd.woff2 +0 -0
  11. package/packages/client/dist/assets/inter-tight-cyrillic-ext-400-normal-DiHHcP5k.woff +0 -0
  12. package/packages/client/dist/assets/inter-tight-cyrillic-ext-700-normal-BFcoPt71.woff +0 -0
  13. package/packages/client/dist/assets/inter-tight-cyrillic-ext-700-normal-D_7NT8eF.woff2 +0 -0
  14. package/packages/client/dist/assets/inter-tight-cyrillic-ext-800-normal-CzCOBUhR.woff2 +0 -0
  15. package/packages/client/dist/assets/inter-tight-cyrillic-ext-800-normal-WowoGRZX.woff +0 -0
  16. package/packages/client/dist/assets/inter-tight-greek-400-normal-BLLSFQTx.woff +0 -0
  17. package/packages/client/dist/assets/inter-tight-greek-400-normal-Br_GQm5W.woff2 +0 -0
  18. package/packages/client/dist/assets/inter-tight-greek-700-normal-DU8XoIeX.woff +0 -0
  19. package/packages/client/dist/assets/inter-tight-greek-700-normal-RgALSHS4.woff2 +0 -0
  20. package/packages/client/dist/assets/inter-tight-greek-800-normal-CxHmUlv4.woff +0 -0
  21. package/packages/client/dist/assets/inter-tight-greek-800-normal-X9eW6L67.woff2 +0 -0
  22. package/packages/client/dist/assets/inter-tight-greek-ext-400-normal-C3GMUg_S.woff2 +0 -0
  23. package/packages/client/dist/assets/inter-tight-greek-ext-400-normal-DMqR5RoS.woff +0 -0
  24. package/packages/client/dist/assets/inter-tight-greek-ext-700-normal-D0RkHJEE.woff2 +0 -0
  25. package/packages/client/dist/assets/inter-tight-greek-ext-700-normal-mW3dmpoD.woff +0 -0
  26. package/packages/client/dist/assets/inter-tight-greek-ext-800-normal-DNWjXg9N.woff2 +0 -0
  27. package/packages/client/dist/assets/inter-tight-greek-ext-800-normal-DfP-QoiQ.woff +0 -0
  28. package/packages/client/dist/assets/inter-tight-latin-400-normal-BLrFJfvD.woff +0 -0
  29. package/packages/client/dist/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 +0 -0
  30. package/packages/client/dist/assets/inter-tight-latin-700-normal-BZKd_v_8.woff2 +0 -0
  31. package/packages/client/dist/assets/inter-tight-latin-700-normal-DvYAVZQd.woff +0 -0
  32. package/packages/client/dist/assets/inter-tight-latin-800-normal-CRGCHRPv.woff2 +0 -0
  33. package/packages/client/dist/assets/inter-tight-latin-800-normal-D2te1T7i.woff +0 -0
  34. package/packages/client/dist/assets/inter-tight-latin-ext-400-normal-BQQeeQrv.woff +0 -0
  35. package/packages/client/dist/assets/inter-tight-latin-ext-400-normal-DN7wyBvd.woff2 +0 -0
  36. package/packages/client/dist/assets/inter-tight-latin-ext-700-normal-BpKPOkj3.woff2 +0 -0
  37. package/packages/client/dist/assets/inter-tight-latin-ext-700-normal-CrlzIQ10.woff +0 -0
  38. package/packages/client/dist/assets/inter-tight-latin-ext-800-normal-A39zhqaD.woff +0 -0
  39. package/packages/client/dist/assets/inter-tight-latin-ext-800-normal-DfKN99cy.woff2 +0 -0
  40. package/packages/client/dist/assets/inter-tight-vietnamese-400-normal-CqzIqjuX.woff2 +0 -0
  41. package/packages/client/dist/assets/inter-tight-vietnamese-400-normal-kSDs3Vd1.woff +0 -0
  42. package/packages/client/dist/assets/inter-tight-vietnamese-700-normal-Cn_DV52A.woff2 +0 -0
  43. package/packages/client/dist/assets/inter-tight-vietnamese-700-normal-DwHBAXeT.woff +0 -0
  44. package/packages/client/dist/assets/inter-tight-vietnamese-800-normal-CbYrLkxo.woff +0 -0
  45. package/packages/client/dist/assets/inter-tight-vietnamese-800-normal-OJoDhpMd.woff2 +0 -0
  46. package/packages/client/dist/index.html +13 -0
  47. package/packages/server/dist/app.d.ts +11 -0
  48. package/packages/server/dist/app.d.ts.map +1 -0
  49. package/packages/server/dist/app.js +85 -0
  50. package/packages/server/dist/app.js.map +1 -0
  51. package/packages/server/dist/app.test.d.ts +2 -0
  52. package/packages/server/dist/app.test.d.ts.map +1 -0
  53. package/packages/server/dist/app.test.js +72 -0
  54. package/packages/server/dist/app.test.js.map +1 -0
  55. package/packages/server/dist/core/errors.d.ts +29 -0
  56. package/packages/server/dist/core/errors.d.ts.map +1 -0
  57. package/packages/server/dist/core/errors.js +49 -0
  58. package/packages/server/dist/core/errors.js.map +1 -0
  59. package/packages/server/dist/core/errors.test.d.ts +2 -0
  60. package/packages/server/dist/core/errors.test.d.ts.map +1 -0
  61. package/packages/server/dist/core/errors.test.js +37 -0
  62. package/packages/server/dist/core/errors.test.js.map +1 -0
  63. package/packages/server/dist/core/file-store.d.ts +40 -0
  64. package/packages/server/dist/core/file-store.d.ts.map +1 -0
  65. package/packages/server/dist/core/file-store.js +160 -0
  66. package/packages/server/dist/core/file-store.js.map +1 -0
  67. package/packages/server/dist/core/file-store.test.d.ts +2 -0
  68. package/packages/server/dist/core/file-store.test.d.ts.map +1 -0
  69. package/packages/server/dist/core/file-store.test.js +75 -0
  70. package/packages/server/dist/core/file-store.test.js.map +1 -0
  71. package/packages/server/dist/core/project-detector.d.ts +14 -0
  72. package/packages/server/dist/core/project-detector.d.ts.map +1 -0
  73. package/packages/server/dist/core/project-detector.js +67 -0
  74. package/packages/server/dist/core/project-detector.js.map +1 -0
  75. package/packages/server/dist/core/project-detector.test.d.ts +2 -0
  76. package/packages/server/dist/core/project-detector.test.d.ts.map +1 -0
  77. package/packages/server/dist/core/project-detector.test.js +73 -0
  78. package/packages/server/dist/core/project-detector.test.js.map +1 -0
  79. package/packages/server/dist/core/websocket.d.ts +16 -0
  80. package/packages/server/dist/core/websocket.d.ts.map +1 -0
  81. package/packages/server/dist/core/websocket.js +30 -0
  82. package/packages/server/dist/core/websocket.js.map +1 -0
  83. package/packages/server/dist/core/websocket.test.d.ts +2 -0
  84. package/packages/server/dist/core/websocket.test.d.ts.map +1 -0
  85. package/packages/server/dist/core/websocket.test.js +64 -0
  86. package/packages/server/dist/core/websocket.test.js.map +1 -0
  87. package/packages/server/dist/core/write-service.d.ts +12 -0
  88. package/packages/server/dist/core/write-service.d.ts.map +1 -0
  89. package/packages/server/dist/core/write-service.js +61 -0
  90. package/packages/server/dist/core/write-service.js.map +1 -0
  91. package/packages/server/dist/core/write-service.test.d.ts +2 -0
  92. package/packages/server/dist/core/write-service.test.d.ts.map +1 -0
  93. package/packages/server/dist/core/write-service.test.js +69 -0
  94. package/packages/server/dist/core/write-service.test.js.map +1 -0
  95. package/packages/server/dist/index.d.ts +2 -0
  96. package/packages/server/dist/index.d.ts.map +1 -0
  97. package/packages/server/dist/index.js +88 -0
  98. package/packages/server/dist/index.js.map +1 -0
  99. package/packages/server/dist/parsers/agent-parser.d.ts +4 -0
  100. package/packages/server/dist/parsers/agent-parser.d.ts.map +1 -0
  101. package/packages/server/dist/parsers/agent-parser.js +88 -0
  102. package/packages/server/dist/parsers/agent-parser.js.map +1 -0
  103. package/packages/server/dist/parsers/agent-parser.test.d.ts +2 -0
  104. package/packages/server/dist/parsers/agent-parser.test.d.ts.map +1 -0
  105. package/packages/server/dist/parsers/agent-parser.test.js +66 -0
  106. package/packages/server/dist/parsers/agent-parser.test.js.map +1 -0
  107. package/packages/server/dist/parsers/config-parser.d.ts +14 -0
  108. package/packages/server/dist/parsers/config-parser.d.ts.map +1 -0
  109. package/packages/server/dist/parsers/config-parser.js +39 -0
  110. package/packages/server/dist/parsers/config-parser.js.map +1 -0
  111. package/packages/server/dist/parsers/config-parser.test.d.ts +2 -0
  112. package/packages/server/dist/parsers/config-parser.test.d.ts.map +1 -0
  113. package/packages/server/dist/parsers/config-parser.test.js +56 -0
  114. package/packages/server/dist/parsers/config-parser.test.js.map +1 -0
  115. package/packages/server/dist/parsers/csv-parser.d.ts +4 -0
  116. package/packages/server/dist/parsers/csv-parser.d.ts.map +1 -0
  117. package/packages/server/dist/parsers/csv-parser.js +50 -0
  118. package/packages/server/dist/parsers/csv-parser.js.map +1 -0
  119. package/packages/server/dist/parsers/csv-parser.test.d.ts +2 -0
  120. package/packages/server/dist/parsers/csv-parser.test.d.ts.map +1 -0
  121. package/packages/server/dist/parsers/csv-parser.test.js +44 -0
  122. package/packages/server/dist/parsers/csv-parser.test.js.map +1 -0
  123. package/packages/server/dist/parsers/ide-config-parser.d.ts +9 -0
  124. package/packages/server/dist/parsers/ide-config-parser.d.ts.map +1 -0
  125. package/packages/server/dist/parsers/ide-config-parser.js +28 -0
  126. package/packages/server/dist/parsers/ide-config-parser.js.map +1 -0
  127. package/packages/server/dist/parsers/ide-config-parser.test.d.ts +2 -0
  128. package/packages/server/dist/parsers/ide-config-parser.test.d.ts.map +1 -0
  129. package/packages/server/dist/parsers/ide-config-parser.test.js +32 -0
  130. package/packages/server/dist/parsers/ide-config-parser.test.js.map +1 -0
  131. package/packages/server/dist/parsers/index-builder.d.ts +20 -0
  132. package/packages/server/dist/parsers/index-builder.d.ts.map +1 -0
  133. package/packages/server/dist/parsers/index-builder.js +155 -0
  134. package/packages/server/dist/parsers/index-builder.js.map +1 -0
  135. package/packages/server/dist/parsers/index-builder.test.d.ts +2 -0
  136. package/packages/server/dist/parsers/index-builder.test.d.ts.map +1 -0
  137. package/packages/server/dist/parsers/index-builder.test.js +57 -0
  138. package/packages/server/dist/parsers/index-builder.test.js.map +1 -0
  139. package/packages/server/dist/parsers/package-parser.d.ts +4 -0
  140. package/packages/server/dist/parsers/package-parser.d.ts.map +1 -0
  141. package/packages/server/dist/parsers/package-parser.js +29 -0
  142. package/packages/server/dist/parsers/package-parser.js.map +1 -0
  143. package/packages/server/dist/parsers/package-parser.test.d.ts +2 -0
  144. package/packages/server/dist/parsers/package-parser.test.d.ts.map +1 -0
  145. package/packages/server/dist/parsers/package-parser.test.js +34 -0
  146. package/packages/server/dist/parsers/package-parser.test.js.map +1 -0
  147. package/packages/server/dist/parsers/skill-parser.d.ts +4 -0
  148. package/packages/server/dist/parsers/skill-parser.d.ts.map +1 -0
  149. package/packages/server/dist/parsers/skill-parser.js +21 -0
  150. package/packages/server/dist/parsers/skill-parser.js.map +1 -0
  151. package/packages/server/dist/parsers/skill-parser.test.d.ts +2 -0
  152. package/packages/server/dist/parsers/skill-parser.test.d.ts.map +1 -0
  153. package/packages/server/dist/parsers/skill-parser.test.js +48 -0
  154. package/packages/server/dist/parsers/skill-parser.test.js.map +1 -0
  155. package/packages/server/dist/parsers/team-parser.d.ts +4 -0
  156. package/packages/server/dist/parsers/team-parser.d.ts.map +1 -0
  157. package/packages/server/dist/parsers/team-parser.js +108 -0
  158. package/packages/server/dist/parsers/team-parser.js.map +1 -0
  159. package/packages/server/dist/parsers/team-parser.test.d.ts +2 -0
  160. package/packages/server/dist/parsers/team-parser.test.d.ts.map +1 -0
  161. package/packages/server/dist/parsers/team-parser.test.js +142 -0
  162. package/packages/server/dist/parsers/team-parser.test.js.map +1 -0
  163. package/packages/server/dist/parsers/workflow-parser.d.ts +4 -0
  164. package/packages/server/dist/parsers/workflow-parser.d.ts.map +1 -0
  165. package/packages/server/dist/parsers/workflow-parser.js +266 -0
  166. package/packages/server/dist/parsers/workflow-parser.js.map +1 -0
  167. package/packages/server/dist/parsers/workflow-parser.test.d.ts +2 -0
  168. package/packages/server/dist/parsers/workflow-parser.test.d.ts.map +1 -0
  169. package/packages/server/dist/parsers/workflow-parser.test.js +318 -0
  170. package/packages/server/dist/parsers/workflow-parser.test.js.map +1 -0
  171. package/packages/server/dist/plugins/agents-plugin.d.ts +3 -0
  172. package/packages/server/dist/plugins/agents-plugin.d.ts.map +1 -0
  173. package/packages/server/dist/plugins/agents-plugin.js +121 -0
  174. package/packages/server/dist/plugins/agents-plugin.js.map +1 -0
  175. package/packages/server/dist/plugins/agents-plugin.test.d.ts +2 -0
  176. package/packages/server/dist/plugins/agents-plugin.test.d.ts.map +1 -0
  177. package/packages/server/dist/plugins/agents-plugin.test.js +94 -0
  178. package/packages/server/dist/plugins/agents-plugin.test.js.map +1 -0
  179. package/packages/server/dist/plugins/commands-plugin.d.ts +16 -0
  180. package/packages/server/dist/plugins/commands-plugin.d.ts.map +1 -0
  181. package/packages/server/dist/plugins/commands-plugin.js +38 -0
  182. package/packages/server/dist/plugins/commands-plugin.js.map +1 -0
  183. package/packages/server/dist/plugins/datasources-plugin.d.ts +3 -0
  184. package/packages/server/dist/plugins/datasources-plugin.d.ts.map +1 -0
  185. package/packages/server/dist/plugins/datasources-plugin.js +211 -0
  186. package/packages/server/dist/plugins/datasources-plugin.js.map +1 -0
  187. package/packages/server/dist/plugins/files-plugin.d.ts +3 -0
  188. package/packages/server/dist/plugins/files-plugin.d.ts.map +1 -0
  189. package/packages/server/dist/plugins/files-plugin.js +77 -0
  190. package/packages/server/dist/plugins/files-plugin.js.map +1 -0
  191. package/packages/server/dist/plugins/files-plugin.test.d.ts +2 -0
  192. package/packages/server/dist/plugins/files-plugin.test.d.ts.map +1 -0
  193. package/packages/server/dist/plugins/files-plugin.test.js +107 -0
  194. package/packages/server/dist/plugins/files-plugin.test.js.map +1 -0
  195. package/packages/server/dist/plugins/modules-plugin.d.ts +3 -0
  196. package/packages/server/dist/plugins/modules-plugin.d.ts.map +1 -0
  197. package/packages/server/dist/plugins/modules-plugin.js +531 -0
  198. package/packages/server/dist/plugins/modules-plugin.js.map +1 -0
  199. package/packages/server/dist/plugins/modules-plugin.test.d.ts +2 -0
  200. package/packages/server/dist/plugins/modules-plugin.test.d.ts.map +1 -0
  201. package/packages/server/dist/plugins/modules-plugin.test.js +233 -0
  202. package/packages/server/dist/plugins/modules-plugin.test.js.map +1 -0
  203. package/packages/server/dist/plugins/outputs-plugin.d.ts +3 -0
  204. package/packages/server/dist/plugins/outputs-plugin.d.ts.map +1 -0
  205. package/packages/server/dist/plugins/outputs-plugin.js +75 -0
  206. package/packages/server/dist/plugins/outputs-plugin.js.map +1 -0
  207. package/packages/server/dist/plugins/outputs-plugin.test.d.ts +2 -0
  208. package/packages/server/dist/plugins/outputs-plugin.test.d.ts.map +1 -0
  209. package/packages/server/dist/plugins/outputs-plugin.test.js +79 -0
  210. package/packages/server/dist/plugins/outputs-plugin.test.js.map +1 -0
  211. package/packages/server/dist/plugins/overview-plugin.d.ts +3 -0
  212. package/packages/server/dist/plugins/overview-plugin.d.ts.map +1 -0
  213. package/packages/server/dist/plugins/overview-plugin.js +70 -0
  214. package/packages/server/dist/plugins/overview-plugin.js.map +1 -0
  215. package/packages/server/dist/plugins/search-plugin.d.ts +3 -0
  216. package/packages/server/dist/plugins/search-plugin.d.ts.map +1 -0
  217. package/packages/server/dist/plugins/search-plugin.js +46 -0
  218. package/packages/server/dist/plugins/search-plugin.js.map +1 -0
  219. package/packages/server/dist/plugins/settings-plugin.d.ts +3 -0
  220. package/packages/server/dist/plugins/settings-plugin.d.ts.map +1 -0
  221. package/packages/server/dist/plugins/settings-plugin.js +37 -0
  222. package/packages/server/dist/plugins/settings-plugin.js.map +1 -0
  223. package/packages/server/dist/plugins/settings-plugin.test.d.ts +2 -0
  224. package/packages/server/dist/plugins/settings-plugin.test.d.ts.map +1 -0
  225. package/packages/server/dist/plugins/settings-plugin.test.js +72 -0
  226. package/packages/server/dist/plugins/settings-plugin.test.js.map +1 -0
  227. package/packages/server/dist/plugins/skills-plugin.d.ts +3 -0
  228. package/packages/server/dist/plugins/skills-plugin.d.ts.map +1 -0
  229. package/packages/server/dist/plugins/skills-plugin.js +72 -0
  230. package/packages/server/dist/plugins/skills-plugin.js.map +1 -0
  231. package/packages/server/dist/plugins/teams-plugin.d.ts +3 -0
  232. package/packages/server/dist/plugins/teams-plugin.d.ts.map +1 -0
  233. package/packages/server/dist/plugins/teams-plugin.js +162 -0
  234. package/packages/server/dist/plugins/teams-plugin.js.map +1 -0
  235. package/packages/server/dist/plugins/teams-plugin.test.d.ts +2 -0
  236. package/packages/server/dist/plugins/teams-plugin.test.d.ts.map +1 -0
  237. package/packages/server/dist/plugins/teams-plugin.test.js +128 -0
  238. package/packages/server/dist/plugins/teams-plugin.test.js.map +1 -0
  239. package/packages/server/dist/plugins/validation-plugin.d.ts +3 -0
  240. package/packages/server/dist/plugins/validation-plugin.d.ts.map +1 -0
  241. package/packages/server/dist/plugins/validation-plugin.js +102 -0
  242. package/packages/server/dist/plugins/validation-plugin.js.map +1 -0
  243. package/packages/server/dist/plugins/validation-plugin.test.d.ts +2 -0
  244. package/packages/server/dist/plugins/validation-plugin.test.d.ts.map +1 -0
  245. package/packages/server/dist/plugins/validation-plugin.test.js +161 -0
  246. package/packages/server/dist/plugins/validation-plugin.test.js.map +1 -0
  247. package/packages/server/dist/plugins/workflows-plugin.d.ts +3 -0
  248. package/packages/server/dist/plugins/workflows-plugin.d.ts.map +1 -0
  249. package/packages/server/dist/plugins/workflows-plugin.js +219 -0
  250. package/packages/server/dist/plugins/workflows-plugin.js.map +1 -0
  251. package/packages/server/dist/plugins/workflows-plugin.test.d.ts +2 -0
  252. package/packages/server/dist/plugins/workflows-plugin.test.d.ts.map +1 -0
  253. package/packages/server/dist/plugins/workflows-plugin.test.js +115 -0
  254. package/packages/server/dist/plugins/workflows-plugin.test.js.map +1 -0
  255. package/packages/server/dist/static.d.ts +3 -0
  256. package/packages/server/dist/static.d.ts.map +1 -0
  257. package/packages/server/dist/static.js +23 -0
  258. package/packages/server/dist/static.js.map +1 -0
  259. package/packages/shared/src/agents.ts +4 -0
  260. package/packages/shared/src/connections.ts +11 -8
  261. package/packages/shared/src/index.ts +1 -0
  262. package/packages/shared/src/types.test.ts +4 -3
  263. package/.prettierrc +0 -8
  264. package/CONTRIBUTING.md +0 -109
  265. package/_bmad/_config/agent-manifest.csv +0 -11
  266. package/_bmad/_config/bmad-help.csv +0 -57
  267. package/_bmad/_config/files-manifest.csv +0 -646
  268. package/_bmad/_config/ides/claude-code.yaml +0 -5
  269. package/_bmad/_config/manifest.yaml +0 -42
  270. package/_bmad/_config/skill-manifest.csv +0 -48
  271. package/_bmad/_config/task-manifest.csv +0 -1
  272. package/_bmad/_config/tool-manifest.csv +0 -1
  273. package/_bmad/_config/workflow-manifest.csv +0 -1
  274. package/_bmad/bmb/config.yaml +0 -13
  275. package/_bmad/bmb/module-help.csv +0 -7
  276. package/_bmad/bmb/skills/bmad-agent-builder/SKILL.md +0 -65
  277. package/_bmad/bmb/skills/bmad-agent-builder/assets/SKILL-template.md +0 -97
  278. package/_bmad/bmb/skills/bmad-agent-builder/assets/autonomous-wake.md +0 -37
  279. package/_bmad/bmb/skills/bmad-agent-builder/assets/init-template.md +0 -47
  280. package/_bmad/bmb/skills/bmad-agent-builder/assets/memory-system.md +0 -129
  281. package/_bmad/bmb/skills/bmad-agent-builder/assets/quality-report-template.md +0 -282
  282. package/_bmad/bmb/skills/bmad-agent-builder/assets/save-memory.md +0 -29
  283. package/_bmad/bmb/skills/bmad-agent-builder/bmad-manifest.json +0 -24
  284. package/_bmad/bmb/skills/bmad-agent-builder/bmad-skill-manifest.yaml +0 -1
  285. package/_bmad/bmb/skills/bmad-agent-builder/build-process.md +0 -199
  286. package/_bmad/bmb/skills/bmad-agent-builder/quality-optimizer.md +0 -208
  287. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-agent-cohesion.md +0 -272
  288. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-enhancement-opportunities.md +0 -277
  289. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-execution-efficiency.md +0 -181
  290. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-prompt-craft.md +0 -245
  291. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-script-opportunities.md +0 -262
  292. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-structure.md +0 -183
  293. package/_bmad/bmb/skills/bmad-agent-builder/references/metadata-reference.md +0 -126
  294. package/_bmad/bmb/skills/bmad-agent-builder/references/quality-dimensions.md +0 -46
  295. package/_bmad/bmb/skills/bmad-agent-builder/references/script-opportunities-reference.md +0 -385
  296. package/_bmad/bmb/skills/bmad-agent-builder/references/skill-best-practices.md +0 -218
  297. package/_bmad/bmb/skills/bmad-agent-builder/references/standard-fields.md +0 -103
  298. package/_bmad/bmb/skills/bmad-agent-builder/references/template-substitution-rules.md +0 -72
  299. package/_bmad/bmb/skills/bmad-agent-builder/references/universal-scan-schema.md +0 -267
  300. package/_bmad/bmb/skills/bmad-agent-builder/report-quality-scan-creator.md +0 -138
  301. package/_bmad/bmb/skills/bmad-agent-builder/scripts/bmad-manifest-schema.json +0 -103
  302. package/_bmad/bmb/skills/bmad-agent-builder/scripts/generate-html-report.py +0 -1002
  303. package/_bmad/bmb/skills/bmad-agent-builder/scripts/manifest.py +0 -420
  304. package/_bmad/bmb/skills/bmad-agent-builder/scripts/prepass-execution-deps.py +0 -368
  305. package/_bmad/bmb/skills/bmad-agent-builder/scripts/prepass-prompt-metrics.py +0 -476
  306. package/_bmad/bmb/skills/bmad-agent-builder/scripts/prepass-structure-capabilities.py +0 -636
  307. package/_bmad/bmb/skills/bmad-agent-builder/scripts/scan-path-standards.py +0 -253
  308. package/_bmad/bmb/skills/bmad-agent-builder/scripts/scan-scripts.py +0 -745
  309. package/_bmad/bmb/skills/bmad-workflow-builder/SKILL.md +0 -65
  310. package/_bmad/bmb/skills/bmad-workflow-builder/assets/SKILL-template.md +0 -117
  311. package/_bmad/bmb/skills/bmad-workflow-builder/assets/quality-report-template.md +0 -260
  312. package/_bmad/bmb/skills/bmad-workflow-builder/bmad-manifest.json +0 -23
  313. package/_bmad/bmb/skills/bmad-workflow-builder/bmad-skill-manifest.yaml +0 -1
  314. package/_bmad/bmb/skills/bmad-workflow-builder/build-process.md +0 -208
  315. package/_bmad/bmb/skills/bmad-workflow-builder/quality-optimizer.md +0 -209
  316. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-enhancement-opportunities.md +0 -273
  317. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-execution-efficiency.md +0 -322
  318. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-prompt-craft.md +0 -328
  319. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-script-opportunities.md +0 -261
  320. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-skill-cohesion.md +0 -340
  321. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-workflow-integrity.md +0 -280
  322. package/_bmad/bmb/skills/bmad-workflow-builder/references/classification-reference.md +0 -61
  323. package/_bmad/bmb/skills/bmad-workflow-builder/references/complex-workflow-patterns.md +0 -523
  324. package/_bmad/bmb/skills/bmad-workflow-builder/references/metadata-reference.md +0 -126
  325. package/_bmad/bmb/skills/bmad-workflow-builder/references/quality-dimensions.md +0 -45
  326. package/_bmad/bmb/skills/bmad-workflow-builder/references/script-opportunities-reference.md +0 -354
  327. package/_bmad/bmb/skills/bmad-workflow-builder/references/skill-best-practices.md +0 -218
  328. package/_bmad/bmb/skills/bmad-workflow-builder/references/standard-fields.md +0 -121
  329. package/_bmad/bmb/skills/bmad-workflow-builder/references/template-substitution-rules.md +0 -85
  330. package/_bmad/bmb/skills/bmad-workflow-builder/references/universal-scan-schema.md +0 -267
  331. package/_bmad/bmb/skills/bmad-workflow-builder/report-quality-scan-creator.md +0 -134
  332. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/bmad-manifest-schema.json +0 -103
  333. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/generate-html-report.py +0 -1002
  334. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/manifest.py +0 -420
  335. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/prepass-execution-deps.py +0 -313
  336. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/prepass-prompt-metrics.py +0 -285
  337. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/prepass-workflow-integrity.py +0 -485
  338. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/scan-path-standards.py +0 -213
  339. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/scan-scripts.py +0 -745
  340. package/_bmad/bmm/agents/analyst.md +0 -69
  341. package/_bmad/bmm/agents/architect.md +0 -59
  342. package/_bmad/bmm/agents/bmad-skill-manifest.yaml +0 -39
  343. package/_bmad/bmm/agents/dev.md +0 -66
  344. package/_bmad/bmm/agents/pm.md +0 -63
  345. package/_bmad/bmm/agents/qa.md +0 -89
  346. package/_bmad/bmm/agents/quick-flow-solo-dev.md +0 -61
  347. package/_bmad/bmm/agents/sm.md +0 -67
  348. package/_bmad/bmm/agents/tech-writer/bmad-skill-manifest.yaml +0 -3
  349. package/_bmad/bmm/agents/tech-writer/tech-writer.md +0 -67
  350. package/_bmad/bmm/agents/ux-designer.md +0 -58
  351. package/_bmad/bmm/config.yaml +0 -16
  352. package/_bmad/bmm/data/project-context-template.md +0 -26
  353. package/_bmad/bmm/module-help.csv +0 -32
  354. package/_bmad/bmm/teams/default-party.csv +0 -20
  355. package/_bmad/bmm/teams/team-fullstack.yaml +0 -12
  356. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md +0 -6
  357. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml +0 -1
  358. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/product-brief.template.md +0 -10
  359. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md +0 -170
  360. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md +0 -158
  361. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-02-vision.md +0 -193
  362. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-03-users.md +0 -196
  363. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md +0 -199
  364. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-05-scope.md +0 -213
  365. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-06-complete.md +0 -159
  366. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/workflow.md +0 -55
  367. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/SKILL.md +0 -88
  368. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/artifact-analyzer.md +0 -60
  369. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/opportunity-reviewer.md +0 -44
  370. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/skeptic-reviewer.md +0 -44
  371. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/web-researcher.md +0 -49
  372. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-manifest.json +0 -17
  373. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-skill-manifest.yaml +0 -1
  374. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/contextual-discovery.md +0 -57
  375. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/draft-and-review.md +0 -86
  376. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/finalize.md +0 -75
  377. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/guided-elicitation.md +0 -70
  378. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/resources/brief-template.md +0 -60
  379. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/SKILL.md +0 -6
  380. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/bmad-skill-manifest.yaml +0 -1
  381. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md +0 -137
  382. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -229
  383. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -238
  384. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -206
  385. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -234
  386. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -444
  387. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/research.template.md +0 -29
  388. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/workflow.md +0 -49
  389. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/SKILL.md +0 -6
  390. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/bmad-skill-manifest.yaml +0 -1
  391. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/research.template.md +0 -29
  392. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-01-init.md +0 -184
  393. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +0 -239
  394. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +0 -251
  395. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +0 -261
  396. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +0 -173
  397. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +0 -478
  398. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/workflow.md +0 -49
  399. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/SKILL.md +0 -6
  400. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/bmad-skill-manifest.yaml +0 -1
  401. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/research.template.md +0 -29
  402. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md +0 -137
  403. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -239
  404. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -248
  405. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -202
  406. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -233
  407. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -487
  408. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/workflow.md +0 -50
  409. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +0 -182
  410. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +0 -237
  411. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +0 -249
  412. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +0 -259
  413. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +0 -177
  414. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +0 -476
  415. package/_bmad/bmm/workflows/1-analysis/research/research.template.md +0 -29
  416. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/SKILL.md +0 -6
  417. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/bmad-skill-manifest.yaml +0 -1
  418. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md +0 -135
  419. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md +0 -127
  420. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md +0 -190
  421. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md +0 -217
  422. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -220
  423. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md +0 -235
  424. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-06-design-system.md +0 -253
  425. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -255
  426. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -225
  427. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md +0 -225
  428. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -242
  429. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -249
  430. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -238
  431. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -265
  432. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md +0 -171
  433. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/ux-design-template.md +0 -13
  434. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/workflow.md +0 -36
  435. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/SKILL.md +0 -6
  436. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/bmad-skill-manifest.yaml +0 -1
  437. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01-discovery.md +0 -242
  438. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +0 -204
  439. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-02-review.md +0 -245
  440. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-03-edit.md +0 -250
  441. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md +0 -165
  442. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/workflow.md +0 -63
  443. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/SKILL.md +0 -6
  444. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/bmad-skill-manifest.yaml +0 -1
  445. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/domain-complexity.csv +0 -15
  446. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/prd-purpose.md +0 -197
  447. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/project-types.csv +0 -11
  448. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -221
  449. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -188
  450. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -206
  451. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -171
  452. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -211
  453. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -225
  454. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -214
  455. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -202
  456. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -240
  457. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -260
  458. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -206
  459. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -261
  460. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -239
  461. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -229
  462. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/workflow.md +0 -62
  463. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +0 -15
  464. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +0 -197
  465. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +0 -11
  466. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +0 -224
  467. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +0 -191
  468. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +0 -209
  469. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +0 -174
  470. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -214
  471. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +0 -228
  472. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +0 -217
  473. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -205
  474. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -243
  475. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +0 -263
  476. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +0 -209
  477. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -264
  478. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +0 -242
  479. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +0 -232
  480. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +0 -65
  481. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/SKILL.md +0 -6
  482. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/bmad-skill-manifest.yaml +0 -1
  483. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -179
  484. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -168
  485. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -169
  486. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -129
  487. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -241
  488. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -126
  489. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -4
  490. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/workflow.md +0 -49
  491. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/SKILL.md +0 -6
  492. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/architecture-decision-template.md +0 -12
  493. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/bmad-skill-manifest.yaml +0 -1
  494. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/data/domain-complexity.csv +0 -13
  495. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/data/project-types.csv +0 -7
  496. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01-init.md +0 -153
  497. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01b-continue.md +0 -173
  498. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-02-context.md +0 -224
  499. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-03-starter.md +0 -329
  500. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-04-decisions.md +0 -318
  501. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-05-patterns.md +0 -359
  502. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-06-structure.md +0 -379
  503. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-07-validation.md +0 -359
  504. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-08-complete.md +0 -76
  505. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/workflow.md +0 -38
  506. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/SKILL.md +0 -6
  507. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/bmad-skill-manifest.yaml +0 -1
  508. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -255
  509. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -212
  510. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -255
  511. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -131
  512. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/templates/epics-template.md +0 -61
  513. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/workflow.md +0 -53
  514. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/SKILL.md +0 -6
  515. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/bmad-skill-manifest.yaml +0 -1
  516. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-01-gather-context.md +0 -61
  517. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-02-review.md +0 -41
  518. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-03-triage.md +0 -50
  519. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-04-present.md +0 -38
  520. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/workflow.md +0 -54
  521. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/SKILL.md +0 -6
  522. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/bmad-skill-manifest.yaml +0 -1
  523. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/checklist.md +0 -288
  524. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/workflow.md +0 -267
  525. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/SKILL.md +0 -6
  526. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/bmad-skill-manifest.yaml +0 -1
  527. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/checklist.md +0 -357
  528. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/discover-inputs.md +0 -88
  529. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/template.md +0 -49
  530. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/workflow.md +0 -380
  531. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/SKILL.md +0 -6
  532. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/bmad-skill-manifest.yaml +0 -1
  533. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/checklist.md +0 -80
  534. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/workflow.md +0 -450
  535. package/_bmad/bmm/workflows/4-implementation/bmad-retrospective/SKILL.md +0 -6
  536. package/_bmad/bmm/workflows/4-implementation/bmad-retrospective/bmad-skill-manifest.yaml +0 -1
  537. package/_bmad/bmm/workflows/4-implementation/bmad-retrospective/workflow.md +0 -1479
  538. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/SKILL.md +0 -6
  539. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/bmad-skill-manifest.yaml +0 -1
  540. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/checklist.md +0 -33
  541. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/sprint-status-template.yaml +0 -56
  542. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/workflow.md +0 -263
  543. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md +0 -6
  544. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yaml +0 -1
  545. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-status/workflow.md +0 -261
  546. package/_bmad/bmm/workflows/bmad-document-project/SKILL.md +0 -6
  547. package/_bmad/bmm/workflows/bmad-document-project/bmad-skill-manifest.yaml +0 -1
  548. package/_bmad/bmm/workflows/bmad-document-project/checklist.md +0 -245
  549. package/_bmad/bmm/workflows/bmad-document-project/documentation-requirements.csv +0 -12
  550. package/_bmad/bmm/workflows/bmad-document-project/instructions.md +0 -128
  551. package/_bmad/bmm/workflows/bmad-document-project/templates/deep-dive-template.md +0 -345
  552. package/_bmad/bmm/workflows/bmad-document-project/templates/index-template.md +0 -169
  553. package/_bmad/bmm/workflows/bmad-document-project/templates/project-overview-template.md +0 -103
  554. package/_bmad/bmm/workflows/bmad-document-project/templates/project-scan-report-schema.json +0 -160
  555. package/_bmad/bmm/workflows/bmad-document-project/templates/source-tree-template.md +0 -135
  556. package/_bmad/bmm/workflows/bmad-document-project/workflow.md +0 -27
  557. package/_bmad/bmm/workflows/bmad-document-project/workflows/deep-dive-instructions.md +0 -299
  558. package/_bmad/bmm/workflows/bmad-document-project/workflows/deep-dive-workflow.md +0 -34
  559. package/_bmad/bmm/workflows/bmad-document-project/workflows/full-scan-instructions.md +0 -1107
  560. package/_bmad/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md +0 -34
  561. package/_bmad/bmm/workflows/bmad-generate-project-context/SKILL.md +0 -6
  562. package/_bmad/bmm/workflows/bmad-generate-project-context/bmad-skill-manifest.yaml +0 -1
  563. package/_bmad/bmm/workflows/bmad-generate-project-context/project-context-template.md +0 -21
  564. package/_bmad/bmm/workflows/bmad-generate-project-context/steps/step-01-discover.md +0 -186
  565. package/_bmad/bmm/workflows/bmad-generate-project-context/steps/step-02-generate.md +0 -321
  566. package/_bmad/bmm/workflows/bmad-generate-project-context/steps/step-03-complete.md +0 -278
  567. package/_bmad/bmm/workflows/bmad-generate-project-context/workflow.md +0 -43
  568. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md +0 -6
  569. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml +0 -1
  570. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/checklist.md +0 -33
  571. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/workflow.md +0 -136
  572. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/SKILL.md +0 -6
  573. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/bmad-skill-manifest.yaml +0 -1
  574. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md +0 -169
  575. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-02-context-gathering.md +0 -114
  576. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md +0 -107
  577. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md +0 -107
  578. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md +0 -94
  579. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-06-resolve-findings.md +0 -144
  580. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md +0 -38
  581. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/SKILL.md +0 -6
  582. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/bmad-skill-manifest.yaml +0 -1
  583. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-01-clarify-and-route.md +0 -51
  584. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-02-plan.md +0 -35
  585. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-03-implement.md +0 -33
  586. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-04-review.md +0 -50
  587. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-05-present.md +0 -17
  588. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/tech-spec-template.md +0 -90
  589. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/workflow.md +0 -79
  590. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md +0 -6
  591. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml +0 -1
  592. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md +0 -185
  593. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md +0 -140
  594. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md +0 -123
  595. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-04-review.md +0 -195
  596. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/tech-spec-template.md +0 -74
  597. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md +0 -73
  598. package/_bmad/core/config.yaml +0 -9
  599. package/_bmad/core/module-help.csv +0 -11
  600. package/_bmad/core/skills/bmad-advanced-elicitation/SKILL.md +0 -6
  601. package/_bmad/core/skills/bmad-advanced-elicitation/bmad-skill-manifest.yaml +0 -1
  602. package/_bmad/core/skills/bmad-advanced-elicitation/methods.csv +0 -51
  603. package/_bmad/core/skills/bmad-advanced-elicitation/workflow.md +0 -135
  604. package/_bmad/core/skills/bmad-brainstorming/SKILL.md +0 -6
  605. package/_bmad/core/skills/bmad-brainstorming/bmad-skill-manifest.yaml +0 -1
  606. package/_bmad/core/skills/bmad-brainstorming/brain-methods.csv +0 -62
  607. package/_bmad/core/skills/bmad-brainstorming/steps/step-01-session-setup.md +0 -214
  608. package/_bmad/core/skills/bmad-brainstorming/steps/step-01b-continue.md +0 -124
  609. package/_bmad/core/skills/bmad-brainstorming/steps/step-02a-user-selected.md +0 -229
  610. package/_bmad/core/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -239
  611. package/_bmad/core/skills/bmad-brainstorming/steps/step-02c-random-selection.md +0 -211
  612. package/_bmad/core/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -266
  613. package/_bmad/core/skills/bmad-brainstorming/steps/step-03-technique-execution.md +0 -401
  614. package/_bmad/core/skills/bmad-brainstorming/steps/step-04-idea-organization.md +0 -305
  615. package/_bmad/core/skills/bmad-brainstorming/template.md +0 -15
  616. package/_bmad/core/skills/bmad-brainstorming/workflow.md +0 -53
  617. package/_bmad/core/skills/bmad-distillator/SKILL.md +0 -178
  618. package/_bmad/core/skills/bmad-distillator/agents/distillate-compressor.md +0 -116
  619. package/_bmad/core/skills/bmad-distillator/agents/round-trip-reconstructor.md +0 -68
  620. package/_bmad/core/skills/bmad-distillator/bmad-skill-manifest.yaml +0 -15
  621. package/_bmad/core/skills/bmad-distillator/resources/compression-rules.md +0 -51
  622. package/_bmad/core/skills/bmad-distillator/resources/distillate-format-reference.md +0 -227
  623. package/_bmad/core/skills/bmad-distillator/resources/splitting-strategy.md +0 -78
  624. package/_bmad/core/skills/bmad-distillator/scripts/analyze_sources.py +0 -300
  625. package/_bmad/core/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -204
  626. package/_bmad/core/skills/bmad-editorial-review-prose/SKILL.md +0 -6
  627. package/_bmad/core/skills/bmad-editorial-review-prose/bmad-skill-manifest.yaml +0 -1
  628. package/_bmad/core/skills/bmad-editorial-review-prose/workflow.md +0 -81
  629. package/_bmad/core/skills/bmad-editorial-review-structure/SKILL.md +0 -6
  630. package/_bmad/core/skills/bmad-editorial-review-structure/bmad-skill-manifest.yaml +0 -1
  631. package/_bmad/core/skills/bmad-editorial-review-structure/workflow.md +0 -174
  632. package/_bmad/core/skills/bmad-help/SKILL.md +0 -6
  633. package/_bmad/core/skills/bmad-help/bmad-skill-manifest.yaml +0 -1
  634. package/_bmad/core/skills/bmad-help/workflow.md +0 -88
  635. package/_bmad/core/skills/bmad-index-docs/SKILL.md +0 -6
  636. package/_bmad/core/skills/bmad-index-docs/bmad-skill-manifest.yaml +0 -1
  637. package/_bmad/core/skills/bmad-index-docs/workflow.md +0 -61
  638. package/_bmad/core/skills/bmad-party-mode/SKILL.md +0 -6
  639. package/_bmad/core/skills/bmad-party-mode/bmad-skill-manifest.yaml +0 -1
  640. package/_bmad/core/skills/bmad-party-mode/steps/step-01-agent-loading.md +0 -138
  641. package/_bmad/core/skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +0 -187
  642. package/_bmad/core/skills/bmad-party-mode/steps/step-03-graceful-exit.md +0 -167
  643. package/_bmad/core/skills/bmad-party-mode/workflow.md +0 -190
  644. package/_bmad/core/skills/bmad-review-adversarial-general/SKILL.md +0 -6
  645. package/_bmad/core/skills/bmad-review-adversarial-general/bmad-skill-manifest.yaml +0 -1
  646. package/_bmad/core/skills/bmad-review-adversarial-general/workflow.md +0 -32
  647. package/_bmad/core/skills/bmad-review-edge-case-hunter/SKILL.md +0 -6
  648. package/_bmad/core/skills/bmad-review-edge-case-hunter/bmad-skill-manifest.yaml +0 -1
  649. package/_bmad/core/skills/bmad-review-edge-case-hunter/workflow.md +0 -62
  650. package/_bmad/core/skills/bmad-shard-doc/SKILL.md +0 -6
  651. package/_bmad/core/skills/bmad-shard-doc/bmad-skill-manifest.yaml +0 -1
  652. package/_bmad/core/skills/bmad-shard-doc/workflow.md +0 -100
  653. package/_bmad/core/tasks/bmad-create-prd/SKILL.md +0 -6
  654. package/_bmad/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml +0 -1
  655. package/_bmad/core/tasks/bmad-create-prd/data/domain-complexity.csv +0 -15
  656. package/_bmad/core/tasks/bmad-create-prd/data/prd-purpose.md +0 -197
  657. package/_bmad/core/tasks/bmad-create-prd/data/project-types.csv +0 -11
  658. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-01-init.md +0 -178
  659. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md +0 -161
  660. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md +0 -208
  661. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md +0 -142
  662. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -158
  663. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-03-success.md +0 -214
  664. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md +0 -201
  665. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-05-domain.md +0 -194
  666. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md +0 -211
  667. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md +0 -222
  668. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md +0 -216
  669. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-09-functional.md +0 -219
  670. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -230
  671. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-11-polish.md +0 -221
  672. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-12-complete.md +0 -115
  673. package/_bmad/core/tasks/bmad-create-prd/templates/prd-template.md +0 -10
  674. package/_bmad/core/tasks/bmad-create-prd/workflow.md +0 -62
  675. package/_bmad/tea/agents/tea.md +0 -63
  676. package/_bmad/tea/config.yaml +0 -25
  677. package/_bmad/tea/module-help.csv +0 -10
  678. package/_bmad/tea/teams/default-party.csv +0 -2
  679. package/_bmad/tea/testarch/knowledge/adr-quality-readiness-checklist.md +0 -377
  680. package/_bmad/tea/testarch/knowledge/api-request.md +0 -563
  681. package/_bmad/tea/testarch/knowledge/api-testing-patterns.md +0 -915
  682. package/_bmad/tea/testarch/knowledge/auth-session.md +0 -548
  683. package/_bmad/tea/testarch/knowledge/burn-in.md +0 -273
  684. package/_bmad/tea/testarch/knowledge/ci-burn-in.md +0 -717
  685. package/_bmad/tea/testarch/knowledge/component-tdd.md +0 -486
  686. package/_bmad/tea/testarch/knowledge/contract-testing.md +0 -1050
  687. package/_bmad/tea/testarch/knowledge/data-factories.md +0 -500
  688. package/_bmad/tea/testarch/knowledge/email-auth.md +0 -721
  689. package/_bmad/tea/testarch/knowledge/error-handling.md +0 -725
  690. package/_bmad/tea/testarch/knowledge/feature-flags.md +0 -750
  691. package/_bmad/tea/testarch/knowledge/file-utils.md +0 -456
  692. package/_bmad/tea/testarch/knowledge/fixture-architecture.md +0 -401
  693. package/_bmad/tea/testarch/knowledge/fixtures-composition.md +0 -382
  694. package/_bmad/tea/testarch/knowledge/intercept-network-call.md +0 -426
  695. package/_bmad/tea/testarch/knowledge/log.md +0 -426
  696. package/_bmad/tea/testarch/knowledge/network-error-monitor.md +0 -401
  697. package/_bmad/tea/testarch/knowledge/network-first.md +0 -486
  698. package/_bmad/tea/testarch/knowledge/network-recorder.md +0 -527
  699. package/_bmad/tea/testarch/knowledge/nfr-criteria.md +0 -670
  700. package/_bmad/tea/testarch/knowledge/overview.md +0 -286
  701. package/_bmad/tea/testarch/knowledge/pact-consumer-di.md +0 -310
  702. package/_bmad/tea/testarch/knowledge/pact-consumer-framework-setup.md +0 -635
  703. package/_bmad/tea/testarch/knowledge/pact-mcp.md +0 -204
  704. package/_bmad/tea/testarch/knowledge/pactjs-utils-consumer-helpers.md +0 -270
  705. package/_bmad/tea/testarch/knowledge/pactjs-utils-overview.md +0 -216
  706. package/_bmad/tea/testarch/knowledge/pactjs-utils-provider-verifier.md +0 -315
  707. package/_bmad/tea/testarch/knowledge/pactjs-utils-request-filter.md +0 -224
  708. package/_bmad/tea/testarch/knowledge/playwright-cli.md +0 -165
  709. package/_bmad/tea/testarch/knowledge/playwright-config.md +0 -730
  710. package/_bmad/tea/testarch/knowledge/probability-impact.md +0 -601
  711. package/_bmad/tea/testarch/knowledge/recurse.md +0 -421
  712. package/_bmad/tea/testarch/knowledge/risk-governance.md +0 -615
  713. package/_bmad/tea/testarch/knowledge/selective-testing.md +0 -732
  714. package/_bmad/tea/testarch/knowledge/selector-resilience.md +0 -527
  715. package/_bmad/tea/testarch/knowledge/test-healing-patterns.md +0 -644
  716. package/_bmad/tea/testarch/knowledge/test-levels-framework.md +0 -473
  717. package/_bmad/tea/testarch/knowledge/test-priorities-matrix.md +0 -373
  718. package/_bmad/tea/testarch/knowledge/test-quality.md +0 -664
  719. package/_bmad/tea/testarch/knowledge/timing-debugging.md +0 -372
  720. package/_bmad/tea/testarch/knowledge/visual-debugging.md +0 -524
  721. package/_bmad/tea/testarch/tea-index.csv +0 -43
  722. package/_bmad/tea/workflows/testarch/README.md +0 -74
  723. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/SKILL.md +0 -6
  724. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/bmad-skill-manifest.yaml +0 -1
  725. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/checklist.md +0 -197
  726. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/curriculum.yaml +0 -129
  727. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/quiz-questions.yaml +0 -206
  728. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/role-paths.yaml +0 -136
  729. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/session-content-map.yaml +0 -207
  730. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/tea-resources-index.yaml +0 -359
  731. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/instructions.md +0 -130
  732. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-01-init.md +0 -235
  733. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-01b-continue.md +0 -147
  734. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-02-assess.md +0 -258
  735. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-03-session-menu.md +0 -219
  736. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-01.md +0 -460
  737. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-02.md +0 -465
  738. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-03.md +0 -301
  739. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-04.md +0 -234
  740. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-05.md +0 -234
  741. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-06.md +0 -209
  742. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-07.md +0 -212
  743. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-05-completion.md +0 -339
  744. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-e/step-e-01-assess-workflow.md +0 -141
  745. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-e/step-e-02-apply-edits.md +0 -122
  746. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-v/step-v-01-validate.md +0 -263
  747. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/templates/certificate-template.md +0 -86
  748. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/templates/progress-template.yaml +0 -95
  749. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/templates/session-notes-template.md +0 -83
  750. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/workflow-plan-teach-me-testing.md +0 -950
  751. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/workflow.md +0 -90
  752. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/SKILL.md +0 -6
  753. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/atdd-checklist-template.md +0 -371
  754. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/bmad-skill-manifest.yaml +0 -1
  755. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/checklist.md +0 -374
  756. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/instructions.md +0 -45
  757. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-01-preflight-and-context.md +0 -226
  758. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-01b-resume.md +0 -96
  759. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-02-generation-mode.md +0 -125
  760. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-03-test-strategy.md +0 -110
  761. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-04-generate-tests.md +0 -334
  762. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-04a-subagent-api-failing.md +0 -286
  763. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-04b-subagent-e2e-failing.md +0 -244
  764. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-04c-aggregate.md +0 -370
  765. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-05-validate-and-complete.md +0 -106
  766. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-e/step-01-assess.md +0 -65
  767. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-e/step-02-apply-edit.md +0 -60
  768. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-v/step-01-validate.md +0 -67
  769. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/validation-report-20260127-095021.md +0 -73
  770. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/validation-report-20260127-102401.md +0 -116
  771. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/workflow-plan.md +0 -21
  772. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/workflow.md +0 -41
  773. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/workflow.yaml +0 -46
  774. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/SKILL.md +0 -6
  775. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/bmad-skill-manifest.yaml +0 -1
  776. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/checklist.md +0 -611
  777. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/instructions.md +0 -50
  778. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-01-preflight-and-context.md +0 -237
  779. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-01b-resume.md +0 -94
  780. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-02-identify-targets.md +0 -169
  781. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03-generate-tests.md +0 -394
  782. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03a-subagent-api.md +0 -263
  783. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03b-subagent-backend.md +0 -246
  784. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03b-subagent-e2e.md +0 -213
  785. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03c-aggregate.md +0 -393
  786. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-04-validate-and-summarize.md +0 -106
  787. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-e/step-01-assess.md +0 -65
  788. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-e/step-02-apply-edit.md +0 -60
  789. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-v/step-01-validate.md +0 -67
  790. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/validation-report-20260127-095021.md +0 -72
  791. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/validation-report-20260127-102401.md +0 -114
  792. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/workflow-plan.md +0 -20
  793. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/workflow.md +0 -41
  794. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/workflow.yaml +0 -53
  795. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/SKILL.md +0 -6
  796. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/azure-pipelines-template.yaml +0 -155
  797. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/bmad-skill-manifest.yaml +0 -1
  798. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/checklist.md +0 -289
  799. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/github-actions-template.yaml +0 -328
  800. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/gitlab-ci-template.yaml +0 -158
  801. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/harness-pipeline-template.yaml +0 -159
  802. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/instructions.md +0 -45
  803. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/jenkins-pipeline-template.groovy +0 -129
  804. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-01-preflight.md +0 -158
  805. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-01b-resume.md +0 -110
  806. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-02-generate-pipeline.md +0 -279
  807. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-03-configure-quality-gates.md +0 -135
  808. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-04-validate-and-summary.md +0 -92
  809. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-e/step-01-assess.md +0 -65
  810. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-e/step-02-apply-edit.md +0 -60
  811. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-v/step-01-validate.md +0 -81
  812. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/validation-report-20260127-095021.md +0 -72
  813. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/validation-report-20260127-102401.md +0 -114
  814. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/workflow-plan.md +0 -20
  815. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/workflow.md +0 -41
  816. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/workflow.yaml +0 -48
  817. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/SKILL.md +0 -6
  818. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/bmad-skill-manifest.yaml +0 -1
  819. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/checklist.md +0 -345
  820. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/instructions.md +0 -45
  821. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-01-preflight.md +0 -132
  822. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-01b-resume.md +0 -116
  823. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-02-select-framework.md +0 -117
  824. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-03-scaffold-framework.md +0 -323
  825. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-04-docs-and-scripts.md +0 -105
  826. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-05-validate-and-summary.md +0 -93
  827. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-e/step-01-assess.md +0 -65
  828. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-e/step-02-apply-edit.md +0 -60
  829. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-v/step-01-validate.md +0 -67
  830. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/validation-report-20260127-095021.md +0 -73
  831. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/validation-report-20260127-102401.md +0 -116
  832. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/workflow-plan.md +0 -22
  833. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/workflow.md +0 -41
  834. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/workflow.yaml +0 -48
  835. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/SKILL.md +0 -6
  836. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/bmad-skill-manifest.yaml +0 -1
  837. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/checklist.md +0 -407
  838. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/instructions.md +0 -43
  839. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/nfr-report-template.md +0 -470
  840. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-01-load-context.md +0 -138
  841. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-01b-resume.md +0 -106
  842. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-02-define-thresholds.md +0 -107
  843. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-03-gather-evidence.md +0 -108
  844. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04-evaluate-and-score.md +0 -254
  845. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04a-subagent-security.md +0 -138
  846. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04b-subagent-performance.md +0 -84
  847. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04c-subagent-reliability.md +0 -85
  848. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04d-subagent-scalability.md +0 -88
  849. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04e-aggregate-nfr.md +0 -264
  850. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-05-generate-report.md +0 -108
  851. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-e/step-01-assess.md +0 -65
  852. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-e/step-02-apply-edit.md +0 -60
  853. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-v/step-01-validate.md +0 -67
  854. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/validation-report-20260127-095021.md +0 -73
  855. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/validation-report-20260127-102401.md +0 -116
  856. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/workflow-plan.md +0 -19
  857. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/workflow.md +0 -41
  858. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/workflow.yaml +0 -48
  859. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/SKILL.md +0 -6
  860. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/bmad-skill-manifest.yaml +0 -1
  861. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/checklist.md +0 -464
  862. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/instructions.md +0 -105
  863. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-01-detect-mode.md +0 -134
  864. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-01b-resume.md +0 -102
  865. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-02-load-context.md +0 -242
  866. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-03-risk-and-testability.md +0 -110
  867. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-04-coverage-plan.md +0 -123
  868. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-05-generate-output.md +0 -222
  869. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-e/step-01-assess.md +0 -65
  870. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-e/step-02-apply-edit.md +0 -60
  871. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-v/step-01-validate.md +0 -67
  872. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/test-design-architecture-template.md +0 -230
  873. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/test-design-handoff-template.md +0 -70
  874. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/test-design-qa-template.md +0 -396
  875. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/test-design-template.md +0 -344
  876. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/validation-report-20260127-095021.md +0 -73
  877. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/validation-report-20260127-102401.md +0 -116
  878. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/workflow-plan.md +0 -22
  879. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/workflow.md +0 -41
  880. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/workflow.yaml +0 -77
  881. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/SKILL.md +0 -6
  882. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/bmad-skill-manifest.yaml +0 -1
  883. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/checklist.md +0 -475
  884. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/instructions.md +0 -45
  885. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-01-load-context.md +0 -197
  886. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-01b-resume.md +0 -104
  887. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-02-discover-tests.md +0 -113
  888. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03-quality-evaluation.md +0 -274
  889. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03a-subagent-determinism.md +0 -214
  890. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03b-subagent-isolation.md +0 -125
  891. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03c-subagent-maintainability.md +0 -102
  892. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03e-subagent-performance.md +0 -117
  893. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03f-aggregate-scores.md +0 -277
  894. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-04-generate-report.md +0 -111
  895. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-e/step-01-assess.md +0 -65
  896. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-e/step-02-apply-edit.md +0 -60
  897. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-v/step-01-validate.md +0 -67
  898. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/test-review-template.md +0 -387
  899. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/validation-report-20260127-095021.md +0 -72
  900. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/validation-report-20260127-102401.md +0 -114
  901. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/workflow-plan.md +0 -18
  902. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/workflow.md +0 -41
  903. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/workflow.yaml +0 -48
  904. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/SKILL.md +0 -6
  905. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/bmad-skill-manifest.yaml +0 -1
  906. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/checklist.md +0 -647
  907. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/instructions.md +0 -43
  908. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-01-load-context.md +0 -105
  909. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-01b-resume.md +0 -102
  910. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-02-discover-tests.md +0 -112
  911. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-03-map-criteria.md +0 -97
  912. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-04-analyze-gaps.md +0 -421
  913. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-05-gate-decision.md +0 -266
  914. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-e/step-01-assess.md +0 -65
  915. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-e/step-02-apply-edit.md +0 -60
  916. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-v/step-01-validate.md +0 -67
  917. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/trace-template.md +0 -708
  918. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/validation-report-20260127-095021.md +0 -73
  919. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/validation-report-20260127-102401.md +0 -116
  920. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/workflow-plan.md +0 -21
  921. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/workflow.md +0 -41
  922. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/workflow.yaml +0 -56
  923. package/eslint.config.js +0 -38
  924. package/packages/client/index.html +0 -12
  925. package/packages/client/package.json +0 -46
  926. package/packages/client/src/app.tsx +0 -57
  927. package/packages/client/src/features/about/AboutPage.tsx +0 -144
  928. package/packages/client/src/features/agents/AgentCard.tsx +0 -52
  929. package/packages/client/src/features/agents/AgentDetail.tsx +0 -338
  930. package/packages/client/src/features/agents/AgentOverrideEditor.tsx +0 -127
  931. package/packages/client/src/features/agents/AgentsPage.tsx +0 -114
  932. package/packages/client/src/features/agents/EditAgentDialog.tsx +0 -260
  933. package/packages/client/src/features/agents/SkillAssignment.tsx +0 -153
  934. package/packages/client/src/features/agents/use-agent-detail.ts +0 -17
  935. package/packages/client/src/features/agents/use-agent-mutations.ts +0 -47
  936. package/packages/client/src/features/agents/use-agents.ts +0 -17
  937. package/packages/client/src/features/connections/ConnectionsPage.tsx +0 -165
  938. package/packages/client/src/features/files/FilesPage.tsx +0 -177
  939. package/packages/client/src/features/outputs/OutputsPage.tsx +0 -190
  940. package/packages/client/src/features/overview/OverviewPage.tsx +0 -282
  941. package/packages/client/src/features/packages/EditModuleDialog.tsx +0 -118
  942. package/packages/client/src/features/packages/PackagesPage.tsx +0 -982
  943. package/packages/client/src/features/settings/SettingsPage.tsx +0 -141
  944. package/packages/client/src/features/settings/use-settings.ts +0 -34
  945. package/packages/client/src/features/skills/CreateSkillDialog.tsx +0 -328
  946. package/packages/client/src/features/skills/SkillDetailSlideOver.tsx +0 -179
  947. package/packages/client/src/features/skills/SkillsPage.tsx +0 -142
  948. package/packages/client/src/features/skills/use-skills.ts +0 -27
  949. package/packages/client/src/features/teams/CreateTeamDialog.tsx +0 -239
  950. package/packages/client/src/features/teams/TeamDetailPanel.tsx +0 -549
  951. package/packages/client/src/features/teams/TeamsPage.tsx +0 -196
  952. package/packages/client/src/features/teams/use-teams.ts +0 -39
  953. package/packages/client/src/features/workflows/CreateWorkflowDialog.tsx +0 -395
  954. package/packages/client/src/features/workflows/EditWorkflowDialog.tsx +0 -131
  955. package/packages/client/src/features/workflows/WorkflowDetailPanel.tsx +0 -503
  956. package/packages/client/src/features/workflows/WorkflowGraph.tsx +0 -108
  957. package/packages/client/src/features/workflows/WorkflowsPage.tsx +0 -277
  958. package/packages/client/src/features/workflows/use-workflows.ts +0 -27
  959. package/packages/client/src/features/workspace/WorkspacePage.tsx +0 -304
  960. package/packages/client/src/globals.css +0 -184
  961. package/packages/client/src/hooks/use-detail-param.ts +0 -31
  962. package/packages/client/src/hooks/use-file-save.ts +0 -22
  963. package/packages/client/src/hooks/use-websocket.ts +0 -38
  964. package/packages/client/src/layout/AppShell.tsx +0 -20
  965. package/packages/client/src/layout/Breadcrumbs.tsx +0 -52
  966. package/packages/client/src/layout/NotificationProvider.tsx +0 -95
  967. package/packages/client/src/layout/Sidebar.tsx +0 -176
  968. package/packages/client/src/lib/theme.ts +0 -30
  969. package/packages/client/src/lib/websocket-client.ts +0 -97
  970. package/packages/client/src/main.tsx +0 -14
  971. package/packages/client/src/shared/CommandPalette.tsx +0 -151
  972. package/packages/client/src/shared/CsvViewer.tsx +0 -120
  973. package/packages/client/src/shared/EmptyState.tsx +0 -20
  974. package/packages/client/src/shared/EntityPageHeader.tsx +0 -95
  975. package/packages/client/src/shared/FilepathLink.tsx +0 -22
  976. package/packages/client/src/shared/Skeleton.tsx +0 -31
  977. package/packages/client/src/shared/SlideOver.tsx +0 -63
  978. package/packages/client/src/shared/VocabularyHelper.tsx +0 -48
  979. package/packages/client/src/shared/diff-viewer/DiffViewer.tsx +0 -93
  980. package/packages/client/src/shared/markdown-editor/CodeMirrorEditor.tsx +0 -199
  981. package/packages/client/src/shared/markdown-editor/MarkdownEditor.tsx +0 -95
  982. package/packages/client/src/stores/ui-store.ts +0 -13
  983. package/packages/client/tsconfig.json +0 -13
  984. package/packages/client/vite.config.ts +0 -20
  985. package/packages/server/package.json +0 -30
  986. package/packages/server/src/app.test.ts +0 -89
  987. package/packages/server/src/app.ts +0 -101
  988. package/packages/server/src/core/errors.test.ts +0 -49
  989. package/packages/server/src/core/errors.ts +0 -62
  990. package/packages/server/src/core/file-store.test.ts +0 -104
  991. package/packages/server/src/core/file-store.ts +0 -209
  992. package/packages/server/src/core/project-detector.test.ts +0 -94
  993. package/packages/server/src/core/project-detector.ts +0 -97
  994. package/packages/server/src/core/websocket.test.ts +0 -80
  995. package/packages/server/src/core/websocket.ts +0 -47
  996. package/packages/server/src/core/write-service.test.ts +0 -87
  997. package/packages/server/src/core/write-service.ts +0 -75
  998. package/packages/server/src/index.ts +0 -97
  999. package/packages/server/src/parsers/agent-parser.test.ts +0 -71
  1000. package/packages/server/src/parsers/agent-parser.ts +0 -83
  1001. package/packages/server/src/parsers/config-parser.test.ts +0 -65
  1002. package/packages/server/src/parsers/config-parser.ts +0 -51
  1003. package/packages/server/src/parsers/csv-parser.test.ts +0 -53
  1004. package/packages/server/src/parsers/csv-parser.ts +0 -55
  1005. package/packages/server/src/parsers/ide-config-parser.test.ts +0 -35
  1006. package/packages/server/src/parsers/ide-config-parser.ts +0 -37
  1007. package/packages/server/src/parsers/index-builder.test.ts +0 -78
  1008. package/packages/server/src/parsers/index-builder.ts +0 -195
  1009. package/packages/server/src/parsers/package-parser.test.ts +0 -36
  1010. package/packages/server/src/parsers/package-parser.ts +0 -34
  1011. package/packages/server/src/parsers/skill-parser.test.ts +0 -51
  1012. package/packages/server/src/parsers/skill-parser.ts +0 -26
  1013. package/packages/server/src/parsers/team-parser.test.ts +0 -186
  1014. package/packages/server/src/parsers/team-parser.ts +0 -128
  1015. package/packages/server/src/parsers/workflow-parser.test.ts +0 -415
  1016. package/packages/server/src/parsers/workflow-parser.ts +0 -311
  1017. package/packages/server/src/plugins/agents-plugin.test.ts +0 -111
  1018. package/packages/server/src/plugins/agents-plugin.ts +0 -164
  1019. package/packages/server/src/plugins/files-plugin.test.ts +0 -121
  1020. package/packages/server/src/plugins/files-plugin.ts +0 -93
  1021. package/packages/server/src/plugins/modules-plugin.test.ts +0 -264
  1022. package/packages/server/src/plugins/modules-plugin.ts +0 -386
  1023. package/packages/server/src/plugins/outputs-plugin.test.ts +0 -89
  1024. package/packages/server/src/plugins/outputs-plugin.ts +0 -93
  1025. package/packages/server/src/plugins/overview-plugin.ts +0 -73
  1026. package/packages/server/src/plugins/search-plugin.ts +0 -63
  1027. package/packages/server/src/plugins/settings-plugin.test.ts +0 -82
  1028. package/packages/server/src/plugins/settings-plugin.ts +0 -46
  1029. package/packages/server/src/plugins/skills-plugin.ts +0 -87
  1030. package/packages/server/src/plugins/teams-plugin.test.ts +0 -157
  1031. package/packages/server/src/plugins/teams-plugin.ts +0 -198
  1032. package/packages/server/src/plugins/validation-plugin.test.ts +0 -229
  1033. package/packages/server/src/plugins/validation-plugin.ts +0 -116
  1034. package/packages/server/src/plugins/workflows-plugin.test.ts +0 -145
  1035. package/packages/server/src/plugins/workflows-plugin.ts +0 -270
  1036. package/packages/server/src/static.ts +0 -29
  1037. package/packages/server/tsconfig.json +0 -8
  1038. package/packages/shared/package.json +0 -20
  1039. package/packages/shared/tsconfig.json +0 -8
  1040. package/tsconfig.base.json +0 -19
  1041. package/vitest.config.ts +0 -7
@@ -1,1050 +0,0 @@
1
- # Contract Testing Essentials (Pact)
2
-
3
- ## Principle
4
-
5
- Contract testing validates API contracts between consumer and provider services without requiring integrated end-to-end tests. Store consumer contracts alongside integration specs, version contracts semantically, and publish on every CI run. Provider verification before merge surfaces breaking changes immediately, while explicit fallback behavior (timeouts, retries, error payloads) captures resilience guarantees in contracts.
6
-
7
- > **Pact.js Utils Note**: When `tea_use_pactjs_utils` is enabled, prefer the patterns in the `pactjs-utils-*.md` fragments over the raw Pact.js patterns shown below. The pactjs-utils library eliminates boilerplate for provider states, verifier configuration, and request filters. See `pactjs-utils-overview.md` for the decision tree.
8
-
9
- ## Rationale
10
-
11
- Traditional integration testing requires running both consumer and provider simultaneously, creating slow, flaky tests with complex setup. Contract testing decouples services: consumers define expectations (pact files), providers verify against those expectations independently. This enables parallel development, catches breaking changes early, and documents API behavior as executable specifications. Pair contract tests with API smoke tests to validate data mapping and UI rendering in tandem.
12
-
13
- > **Recommended**: When `tea_use_pactjs_utils` is enabled, use `@seontechnologies/pactjs-utils` utilities instead of the manual patterns below. The library handles JsonMap conversion, verifier configuration, and request filter assembly automatically. See the `pactjs-utils-overview.md`, `pactjs-utils-consumer-helpers.md`, `pactjs-utils-provider-verifier.md`, and `pactjs-utils-request-filter.md` fragments for the simplified approach.
14
-
15
- ## Pattern Examples
16
-
17
- ### Example 1: Pact Consumer Test (Frontend → Backend API)
18
-
19
- **Context**: React application consuming a user management API, defining expected interactions.
20
-
21
- **Implementation**:
22
-
23
- ```typescript
24
- // tests/contract/user-api.pact.spec.ts
25
- import { PactV3, MatchersV3 } from '@pact-foundation/pact';
26
- import { getUserById, createUser, User } from '@/api/user-service';
27
-
28
- const { like, eachLike, string, integer } = MatchersV3;
29
-
30
- /**
31
- * Consumer-Driven Contract Test
32
- * - Consumer (React app) defines expected API behavior
33
- * - Generates pact file for provider to verify
34
- * - Runs in isolation (no real backend required)
35
- */
36
-
37
- const provider = new PactV3({
38
- consumer: 'user-management-web',
39
- provider: 'user-api-service',
40
- dir: './pacts', // Output directory for pact files
41
- logLevel: 'warn',
42
- });
43
-
44
- describe('User API Contract', () => {
45
- describe('GET /users/:id', () => {
46
- it('should return user when user exists', async () => {
47
- // Arrange: Define expected interaction
48
- await provider
49
- .given('user with id 1 exists') // Provider state
50
- .uponReceiving('a request for user 1')
51
- .withRequest({
52
- method: 'GET',
53
- path: '/users/1',
54
- headers: {
55
- Accept: 'application/json',
56
- Authorization: like('Bearer token123'), // Matcher: any string
57
- },
58
- })
59
- .willRespondWith({
60
- status: 200,
61
- headers: {
62
- 'Content-Type': 'application/json',
63
- },
64
- body: like({
65
- id: integer(1),
66
- name: string('John Doe'),
67
- email: string('john@example.com'),
68
- role: string('user'),
69
- createdAt: string('2025-01-15T10:00:00Z'),
70
- }),
71
- })
72
- .executeTest(async (mockServer) => {
73
- // Act: Call consumer code against mock server
74
- const user = await getUserById(1, {
75
- baseURL: mockServer.url,
76
- headers: { Authorization: 'Bearer token123' },
77
- });
78
-
79
- // Assert: Validate consumer behavior
80
- expect(user).toEqual(
81
- expect.objectContaining({
82
- id: 1,
83
- name: 'John Doe',
84
- email: 'john@example.com',
85
- role: 'user',
86
- }),
87
- );
88
- });
89
- });
90
-
91
- it('should handle 404 when user does not exist', async () => {
92
- await provider
93
- .given('user with id 999 does not exist')
94
- .uponReceiving('a request for non-existent user')
95
- .withRequest({
96
- method: 'GET',
97
- path: '/users/999',
98
- headers: { Accept: 'application/json' },
99
- })
100
- .willRespondWith({
101
- status: 404,
102
- headers: { 'Content-Type': 'application/json' },
103
- body: {
104
- error: 'User not found',
105
- code: 'USER_NOT_FOUND',
106
- },
107
- })
108
- .executeTest(async (mockServer) => {
109
- // Act & Assert: Consumer handles 404 gracefully
110
- await expect(getUserById(999, { baseURL: mockServer.url })).rejects.toThrow('User not found');
111
- });
112
- });
113
- });
114
-
115
- describe('POST /users', () => {
116
- it('should create user and return 201', async () => {
117
- const newUser: Omit<User, 'id' | 'createdAt'> = {
118
- name: 'Jane Smith',
119
- email: 'jane@example.com',
120
- role: 'admin',
121
- };
122
-
123
- await provider
124
- .given('no users exist')
125
- .uponReceiving('a request to create a user')
126
- .withRequest({
127
- method: 'POST',
128
- path: '/users',
129
- headers: {
130
- 'Content-Type': 'application/json',
131
- Accept: 'application/json',
132
- },
133
- body: newUser,
134
- })
135
- .willRespondWith({
136
- status: 201,
137
- headers: { 'Content-Type': 'application/json' },
138
- body: like({
139
- id: integer(2),
140
- name: string('Jane Smith'),
141
- email: string('jane@example.com'),
142
- role: string('admin'),
143
- createdAt: string('2025-01-15T11:00:00Z'),
144
- }),
145
- })
146
- .executeTest(async (mockServer) => {
147
- const createdUser = await createUser(newUser, {
148
- baseURL: mockServer.url,
149
- });
150
-
151
- expect(createdUser).toEqual(
152
- expect.objectContaining({
153
- id: expect.any(Number),
154
- name: 'Jane Smith',
155
- email: 'jane@example.com',
156
- role: 'admin',
157
- }),
158
- );
159
- });
160
- });
161
- });
162
- });
163
- ```
164
-
165
- **package.json scripts** (when using pactjs-utils conventions, prefer `test:pact:consumer` naming — see `pact-consumer-framework-setup.md`):
166
-
167
- ```json
168
- {
169
- "scripts": {
170
- "test:pact:consumer": "vitest run --config vitest.config.pact.ts",
171
- "publish:pact": ". ./scripts/env-setup.sh && ./scripts/publish-pact.sh"
172
- }
173
- }
174
- ```
175
-
176
- **Key Points**:
177
-
178
- - **Consumer-driven**: Frontend defines expectations, not backend
179
- - **Matchers (Postel's Law)**: Use `like`, `string`, `integer` matchers in `willRespondWith` (responses) for flexible matching. Do NOT use `like()` on request bodies in `withRequest` — the consumer controls what it sends, so request bodies should use exact values. This follows Postel's Law: be strict in what you send (requests), be lenient in what you accept (responses).
180
- - **Provider states**: given() sets up test preconditions
181
- - **Isolation**: No real backend needed, runs fast
182
- - **Pact generation**: Automatically creates JSON pact files
183
-
184
- ---
185
-
186
- ### Example 2: Pact Provider Verification (Backend validates contracts)
187
-
188
- **Context**: Node.js/Express API verifying pacts published by consumers.
189
-
190
- **Implementation**:
191
-
192
- ```typescript
193
- // tests/contract/user-api.provider.spec.ts
194
- import { Verifier, VerifierOptions } from '@pact-foundation/pact';
195
- import { server } from '../../src/server'; // Your Express/Fastify app
196
- import { seedDatabase, resetDatabase } from '../support/db-helpers';
197
-
198
- /**
199
- * Provider Verification Test
200
- * - Provider (backend API) verifies against published pacts
201
- * - State handlers setup test data for each interaction
202
- * - Runs before merge to catch breaking changes
203
- */
204
-
205
- describe('Pact Provider Verification', () => {
206
- let serverInstance;
207
- const PORT = 3001;
208
-
209
- beforeAll(async () => {
210
- // Start provider server
211
- serverInstance = server.listen(PORT);
212
- console.log(`Provider server running on port ${PORT}`);
213
- });
214
-
215
- afterAll(async () => {
216
- // Cleanup
217
- await serverInstance.close();
218
- });
219
-
220
- it('should verify pacts from all consumers', async () => {
221
- const opts: VerifierOptions = {
222
- // Provider details
223
- provider: 'user-api-service',
224
- providerBaseUrl: `http://localhost:${PORT}`,
225
-
226
- // Pact Broker configuration
227
- pactBrokerUrl: process.env.PACT_BROKER_BASE_URL,
228
- pactBrokerToken: process.env.PACT_BROKER_TOKEN,
229
- publishVerificationResult: process.env.CI === 'true',
230
- providerVersion: process.env.GITHUB_SHA || 'dev',
231
-
232
- // State handlers: Setup provider state for each interaction
233
- stateHandlers: {
234
- 'user with id 1 exists': async () => {
235
- await seedDatabase({
236
- users: [
237
- {
238
- id: 1,
239
- name: 'John Doe',
240
- email: 'john@example.com',
241
- role: 'user',
242
- createdAt: '2025-01-15T10:00:00Z',
243
- },
244
- ],
245
- });
246
- return 'User seeded successfully';
247
- },
248
-
249
- 'user with id 999 does not exist': async () => {
250
- // Ensure user doesn't exist
251
- await resetDatabase();
252
- return 'Database reset';
253
- },
254
-
255
- 'no users exist': async () => {
256
- await resetDatabase();
257
- return 'Database empty';
258
- },
259
- },
260
-
261
- // Request filters: Add auth headers to all requests
262
- requestFilter: (req, res, next) => {
263
- // Mock authentication for verification
264
- req.headers['x-user-id'] = 'test-user';
265
- req.headers['authorization'] = 'Bearer valid-test-token';
266
- next();
267
- },
268
-
269
- // Timeout for verification
270
- timeout: 30000,
271
- };
272
-
273
- // Run verification
274
- await new Verifier(opts).verifyProvider();
275
- });
276
- });
277
- ```
278
-
279
- **CI integration**:
280
-
281
- ```yaml
282
- # .github/workflows/contract-test-provider.yml
283
- # NOTE: Canonical naming is contract-test-provider.yml per pactjs-utils conventions
284
- name: Pact Provider Verification
285
- on:
286
- pull_request:
287
- push:
288
- branches: [main]
289
-
290
- jobs:
291
- verify-contracts:
292
- runs-on: ubuntu-latest
293
- steps:
294
- - uses: actions/checkout@v4
295
-
296
- - name: Setup Node.js
297
- uses: actions/setup-node@v4
298
- with:
299
- node-version-file: '.nvmrc'
300
-
301
- - name: Install dependencies
302
- run: npm ci
303
-
304
- - name: Start database
305
- run: docker-compose up -d postgres
306
-
307
- - name: Run migrations
308
- run: npm run db:migrate
309
-
310
- - name: Verify pacts
311
- run: npm run test:pact:provider:remote:contract
312
- env:
313
- PACT_BROKER_BASE_URL: ${{ secrets.PACT_BROKER_BASE_URL }}
314
- PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }}
315
- GITHUB_SHA: ${{ github.sha }}
316
- GITHUB_BRANCH: ${{ github.head_ref || github.ref_name }}
317
-
318
- - name: Can I Deploy?
319
- if: github.ref == 'refs/heads/main'
320
- run: npm run can:i:deploy:provider
321
- ```
322
-
323
- **Key Points**:
324
-
325
- - **State handlers**: Setup provider data for each given() state
326
- - **Request filters**: Add auth/headers for verification requests
327
- - **CI publishing**: Verification results sent to broker
328
- - **can-i-deploy**: Safety check before production deployment
329
- - **Database isolation**: Reset between state handlers
330
-
331
- ---
332
-
333
- ### Example 3: Contract CI Integration (Consumer & Provider Workflow)
334
-
335
- **Context**: Simplified overview of consumer and provider CI coordination. For the complete consumer CI workflow with env blocks, concurrency, and breaking-change detection, see `pact-consumer-framework-setup.md` Example 5.
336
-
337
- **Implementation**:
338
-
339
- ```yaml
340
- # .github/workflows/contract-test-consumer.yml (Consumer side)
341
- # NOTE: Canonical naming is contract-test-consumer.yml per pactjs-utils conventions
342
- name: Pact Consumer Tests
343
- on:
344
- pull_request:
345
- push:
346
- branches: [main]
347
-
348
- jobs:
349
- consumer-tests:
350
- runs-on: ubuntu-latest
351
- steps:
352
- - uses: actions/checkout@v4
353
-
354
- - name: Setup Node.js
355
- uses: actions/setup-node@v4
356
- with:
357
- node-version-file: '.nvmrc'
358
-
359
- - name: Install dependencies
360
- run: npm ci
361
-
362
- - name: Run consumer contract tests
363
- run: npm run test:pact:consumer
364
-
365
- - name: Publish pacts to broker
366
- run: npm run publish:pact
367
-
368
- - name: Can I deploy consumer? (main only)
369
- if: github.ref == 'refs/heads/main' && env.PACT_BREAKING_CHANGE != 'true'
370
- run: npm run can:i:deploy:consumer
371
-
372
- - name: Record consumer deployment (main only)
373
- if: github.ref == 'refs/heads/main'
374
- run: npm run record:consumer:deployment --env=dev
375
- ```
376
-
377
- ```yaml
378
- # .github/workflows/contract-test-provider.yml (Provider side)
379
- # NOTE: Canonical naming is contract-test-provider.yml per pactjs-utils conventions
380
- name: Pact Provider Verification
381
- on:
382
- pull_request:
383
- push:
384
- branches: [main]
385
- repository_dispatch:
386
- types: [pact_changed] # Webhook from Pact Broker
387
-
388
- jobs:
389
- verify-contracts:
390
- runs-on: ubuntu-latest
391
- steps:
392
- - uses: actions/checkout@v4
393
-
394
- - name: Setup Node.js
395
- uses: actions/setup-node@v4
396
- with:
397
- node-version-file: '.nvmrc'
398
-
399
- - name: Install dependencies
400
- run: npm ci
401
-
402
- - name: Start dependencies
403
- run: docker-compose up -d
404
-
405
- - name: Run provider verification
406
- run: npm run test:pact:provider:remote:contract
407
- env:
408
- PACT_BROKER_BASE_URL: ${{ secrets.PACT_BROKER_BASE_URL }}
409
- PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }}
410
- GITHUB_SHA: ${{ github.sha }}
411
- GITHUB_BRANCH: ${{ github.head_ref || github.ref_name }}
412
-
413
- - name: Can I deploy provider? (main only)
414
- if: github.ref == 'refs/heads/main' && env.PACT_BREAKING_CHANGE != 'true'
415
- run: npm run can:i:deploy:provider
416
-
417
- - name: Record provider deployment (main only)
418
- if: github.ref == 'refs/heads/main'
419
- run: npm run record:provider:deployment --env=dev
420
- ```
421
-
422
- **Pact Broker Webhook Configuration**:
423
-
424
- ```json
425
- {
426
- "events": [
427
- {
428
- "name": "contract_content_changed"
429
- }
430
- ],
431
- "request": {
432
- "method": "POST",
433
- "url": "https://api.github.com/repos/your-org/user-api/dispatches",
434
- "headers": {
435
- "Authorization": "Bearer ${user.githubToken}",
436
- "Content-Type": "application/json",
437
- "Accept": "application/vnd.github.v3+json"
438
- },
439
- "body": {
440
- "event_type": "pact_changed",
441
- "client_payload": {
442
- "pact_url": "${pactbroker.pactUrl}",
443
- "consumer": "${pactbroker.consumerName}",
444
- "provider": "${pactbroker.providerName}"
445
- }
446
- }
447
- }
448
- }
449
- ```
450
-
451
- **Key Points**:
452
-
453
- - **Automatic trigger**: Consumer pact changes trigger provider verification via webhook
454
- - **Branch tracking**: Pacts published per branch for feature testing
455
- - **can-i-deploy**: Safety gate before production deployment
456
- - **Record deployment**: Track which version is in each environment
457
- - **Parallel dev**: Consumer and provider teams work independently
458
-
459
- ---
460
-
461
- ### Example 4: Resilience Coverage (Testing Fallback Behavior)
462
-
463
- **Context**: Capture timeout, retry, and error handling behavior explicitly in contracts.
464
-
465
- **Implementation**:
466
-
467
- ```typescript
468
- // tests/contract/user-api-resilience.pact.spec.ts
469
- import { PactV3, MatchersV3 } from '@pact-foundation/pact';
470
- import { getUserById, ApiError } from '@/api/user-service';
471
-
472
- const { like, string } = MatchersV3;
473
-
474
- const provider = new PactV3({
475
- consumer: 'user-management-web',
476
- provider: 'user-api-service',
477
- dir: './pacts',
478
- });
479
-
480
- describe('User API Resilience Contract', () => {
481
- /**
482
- * Test 500 error handling
483
- * Verifies consumer handles server errors gracefully
484
- */
485
- it('should handle 500 errors with retry logic', async () => {
486
- await provider
487
- .given('server is experiencing errors')
488
- .uponReceiving('a request that returns 500')
489
- .withRequest({
490
- method: 'GET',
491
- path: '/users/1',
492
- headers: { Accept: 'application/json' },
493
- })
494
- .willRespondWith({
495
- status: 500,
496
- headers: { 'Content-Type': 'application/json' },
497
- body: {
498
- error: 'Internal server error',
499
- code: 'INTERNAL_ERROR',
500
- retryable: true,
501
- },
502
- })
503
- .executeTest(async (mockServer) => {
504
- // Consumer should retry on 500
505
- try {
506
- await getUserById(1, {
507
- baseURL: mockServer.url,
508
- retries: 3,
509
- retryDelay: 100,
510
- });
511
- fail('Should have thrown error after retries');
512
- } catch (error) {
513
- expect(error).toBeInstanceOf(ApiError);
514
- expect((error as ApiError).code).toBe('INTERNAL_ERROR');
515
- expect((error as ApiError).retryable).toBe(true);
516
- }
517
- });
518
- });
519
-
520
- /**
521
- * Test 429 rate limiting
522
- * Verifies consumer respects rate limits
523
- */
524
- it('should handle 429 rate limit with backoff', async () => {
525
- await provider
526
- .given('rate limit exceeded for user')
527
- .uponReceiving('a request that is rate limited')
528
- .withRequest({
529
- method: 'GET',
530
- path: '/users/1',
531
- })
532
- .willRespondWith({
533
- status: 429,
534
- headers: {
535
- 'Content-Type': 'application/json',
536
- 'Retry-After': '60', // Retry after 60 seconds
537
- },
538
- body: {
539
- error: 'Too many requests',
540
- code: 'RATE_LIMIT_EXCEEDED',
541
- },
542
- })
543
- .executeTest(async (mockServer) => {
544
- try {
545
- await getUserById(1, {
546
- baseURL: mockServer.url,
547
- respectRateLimit: true,
548
- });
549
- fail('Should have thrown rate limit error');
550
- } catch (error) {
551
- expect(error).toBeInstanceOf(ApiError);
552
- expect((error as ApiError).code).toBe('RATE_LIMIT_EXCEEDED');
553
- expect((error as ApiError).retryAfter).toBe(60);
554
- }
555
- });
556
- });
557
-
558
- /**
559
- * Test timeout handling
560
- * Verifies consumer has appropriate timeout configuration
561
- */
562
- it('should timeout after 10 seconds', async () => {
563
- await provider
564
- .given('server is slow to respond')
565
- .uponReceiving('a request that times out')
566
- .withRequest({
567
- method: 'GET',
568
- path: '/users/1',
569
- })
570
- .willRespondWith({
571
- status: 200,
572
- headers: { 'Content-Type': 'application/json' },
573
- body: like({ id: 1, name: 'John' }),
574
- })
575
- .withDelay(15000) // Simulate 15 second delay
576
- .executeTest(async (mockServer) => {
577
- try {
578
- await getUserById(1, {
579
- baseURL: mockServer.url,
580
- timeout: 10000, // 10 second timeout
581
- });
582
- fail('Should have timed out');
583
- } catch (error) {
584
- expect(error).toBeInstanceOf(ApiError);
585
- expect((error as ApiError).code).toBe('TIMEOUT');
586
- }
587
- });
588
- });
589
-
590
- /**
591
- * Test partial response (optional fields)
592
- * Verifies consumer handles missing optional data
593
- */
594
- it('should handle response with missing optional fields', async () => {
595
- await provider
596
- .given('user exists with minimal data')
597
- .uponReceiving('a request for user with partial data')
598
- .withRequest({
599
- method: 'GET',
600
- path: '/users/1',
601
- })
602
- .willRespondWith({
603
- status: 200,
604
- headers: { 'Content-Type': 'application/json' },
605
- body: {
606
- id: integer(1),
607
- name: string('John Doe'),
608
- email: string('john@example.com'),
609
- // role, createdAt, etc. omitted (optional fields)
610
- },
611
- })
612
- .executeTest(async (mockServer) => {
613
- const user = await getUserById(1, { baseURL: mockServer.url });
614
-
615
- // Consumer handles missing optional fields gracefully
616
- expect(user.id).toBe(1);
617
- expect(user.name).toBe('John Doe');
618
- expect(user.role).toBeUndefined(); // Optional field
619
- expect(user.createdAt).toBeUndefined(); // Optional field
620
- });
621
- });
622
- });
623
- ```
624
-
625
- **API client with retry logic**:
626
-
627
- ```typescript
628
- // src/api/user-service.ts
629
- import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';
630
-
631
- export class ApiError extends Error {
632
- constructor(
633
- message: string,
634
- public code: string,
635
- public retryable: boolean = false,
636
- public retryAfter?: number,
637
- ) {
638
- super(message);
639
- }
640
- }
641
-
642
- /**
643
- * User API client with retry and error handling
644
- */
645
- export async function getUserById(
646
- id: number,
647
- config?: AxiosRequestConfig & { retries?: number; retryDelay?: number; respectRateLimit?: boolean },
648
- ): Promise<User> {
649
- const { retries = 3, retryDelay = 1000, respectRateLimit = true, ...axiosConfig } = config || {};
650
-
651
- let lastError: Error;
652
-
653
- for (let attempt = 1; attempt <= retries; attempt++) {
654
- try {
655
- const response = await axios.get(`/users/${id}`, axiosConfig);
656
- return response.data;
657
- } catch (error: any) {
658
- lastError = error;
659
-
660
- // Handle rate limiting
661
- if (error.response?.status === 429) {
662
- const retryAfter = parseInt(error.response.headers['retry-after'] || '60');
663
- throw new ApiError('Too many requests', 'RATE_LIMIT_EXCEEDED', false, retryAfter);
664
- }
665
-
666
- // Retry on 500 errors
667
- if (error.response?.status === 500 && attempt < retries) {
668
- await new Promise((resolve) => setTimeout(resolve, retryDelay * attempt));
669
- continue;
670
- }
671
-
672
- // Handle 404
673
- if (error.response?.status === 404) {
674
- throw new ApiError('User not found', 'USER_NOT_FOUND', false);
675
- }
676
-
677
- // Handle timeout
678
- if (error.code === 'ECONNABORTED') {
679
- throw new ApiError('Request timeout', 'TIMEOUT', true);
680
- }
681
-
682
- break;
683
- }
684
- }
685
-
686
- throw new ApiError('Request failed after retries', 'INTERNAL_ERROR', true);
687
- }
688
- ```
689
-
690
- **Key Points**:
691
-
692
- - **Resilience contracts**: Timeouts, retries, errors explicitly tested
693
- - **State handlers**: Provider sets up each test scenario
694
- - **Error handling**: Consumer validates graceful degradation
695
- - **Retry logic**: Exponential backoff tested
696
- - **Optional fields**: Consumer handles partial responses
697
-
698
- ---
699
-
700
- ### Example 5: Pact Broker Housekeeping & Lifecycle Management
701
-
702
- **Context**: Automated broker maintenance to prevent contract sprawl and noise.
703
-
704
- **Implementation**:
705
-
706
- ```typescript
707
- // scripts/pact-broker-housekeeping.ts
708
- /**
709
- * Pact Broker Housekeeping Script
710
- * - Archive superseded contracts
711
- * - Expire unused pacts
712
- * - Tag releases for environment tracking
713
- */
714
-
715
- import { execFileSync } from 'node:child_process';
716
-
717
- const PACT_BROKER_BASE_URL = process.env.PACT_BROKER_BASE_URL!;
718
- const PACT_BROKER_TOKEN = process.env.PACT_BROKER_TOKEN!;
719
- const PACTICIPANT = 'user-api-service';
720
-
721
- /**
722
- * Tag release with environment
723
- */
724
- function tagRelease(version: string, environment: 'staging' | 'production') {
725
- console.log(`🏷️ Tagging ${PACTICIPANT} v${version} as ${environment}`);
726
-
727
- execFileSync(
728
- 'pact-broker',
729
- [
730
- 'create-version-tag',
731
- '--pacticipant',
732
- PACTICIPANT,
733
- '--version',
734
- version,
735
- '--tag',
736
- environment,
737
- '--broker-base-url',
738
- PACT_BROKER_BASE_URL,
739
- '--broker-token',
740
- PACT_BROKER_TOKEN,
741
- ],
742
- { stdio: 'inherit' },
743
- );
744
- }
745
-
746
- /**
747
- * Record deployment to environment
748
- */
749
- function recordDeployment(version: string, environment: 'staging' | 'production') {
750
- console.log(`📝 Recording deployment of ${PACTICIPANT} v${version} to ${environment}`);
751
-
752
- execFileSync(
753
- 'pact-broker',
754
- [
755
- 'record-deployment',
756
- '--pacticipant',
757
- PACTICIPANT,
758
- '--version',
759
- version,
760
- '--environment',
761
- environment,
762
- '--broker-base-url',
763
- PACT_BROKER_BASE_URL,
764
- '--broker-token',
765
- PACT_BROKER_TOKEN,
766
- ],
767
- { stdio: 'inherit' },
768
- );
769
- }
770
-
771
- /**
772
- * Clean up old pact versions (retention policy)
773
- * Keep: last 30 days, all production tags, latest from each branch
774
- */
775
- function cleanupOldPacts() {
776
- console.log(`🧹 Cleaning up old pacts for ${PACTICIPANT}`);
777
-
778
- execFileSync(
779
- 'pact-broker',
780
- [
781
- 'clean',
782
- '--pacticipant',
783
- PACTICIPANT,
784
- '--broker-base-url',
785
- PACT_BROKER_BASE_URL,
786
- '--broker-token',
787
- PACT_BROKER_TOKEN,
788
- '--keep-latest-for-branch',
789
- '1',
790
- '--keep-min-age',
791
- '30',
792
- ],
793
- { stdio: 'inherit' },
794
- );
795
- }
796
-
797
- /**
798
- * Check deployment compatibility
799
- */
800
- function canIDeploy(version: string, toEnvironment: string): boolean {
801
- console.log(`🔍 Checking if ${PACTICIPANT} v${version} can deploy to ${toEnvironment}`);
802
-
803
- try {
804
- execFileSync(
805
- 'pact-broker',
806
- [
807
- 'can-i-deploy',
808
- '--pacticipant',
809
- PACTICIPANT,
810
- '--version',
811
- version,
812
- '--to-environment',
813
- toEnvironment,
814
- '--broker-base-url',
815
- PACT_BROKER_BASE_URL,
816
- '--broker-token',
817
- PACT_BROKER_TOKEN,
818
- '--retry-while-unknown',
819
- '10',
820
- '--retry-interval',
821
- '30',
822
- ],
823
- { stdio: 'inherit' },
824
- );
825
- return true;
826
- } catch (error) {
827
- console.error(`❌ Cannot deploy to ${toEnvironment}`);
828
- return false;
829
- }
830
- }
831
-
832
- /**
833
- * Main housekeeping workflow
834
- */
835
- async function main() {
836
- const command = process.argv[2];
837
- const version = process.argv[3];
838
- const environment = process.argv[4] as 'staging' | 'production';
839
-
840
- switch (command) {
841
- case 'tag-release':
842
- tagRelease(version, environment);
843
- break;
844
-
845
- case 'record-deployment':
846
- recordDeployment(version, environment);
847
- break;
848
-
849
- case 'can-i-deploy':
850
- const canDeploy = canIDeploy(version, environment);
851
- process.exit(canDeploy ? 0 : 1);
852
-
853
- case 'cleanup':
854
- cleanupOldPacts();
855
- break;
856
-
857
- default:
858
- console.error('Unknown command. Use: tag-release | record-deployment | can-i-deploy | cleanup');
859
- process.exit(1);
860
- }
861
- }
862
-
863
- main();
864
- ```
865
-
866
- **package.json scripts**:
867
-
868
- ```json
869
- {
870
- "scripts": {
871
- "pact:tag": "ts-node scripts/pact-broker-housekeeping.ts tag-release",
872
- "pact:record": "ts-node scripts/pact-broker-housekeeping.ts record-deployment",
873
- "pact:can-deploy": "ts-node scripts/pact-broker-housekeeping.ts can-i-deploy",
874
- "pact:cleanup": "ts-node scripts/pact-broker-housekeeping.ts cleanup"
875
- }
876
- }
877
- ```
878
-
879
- **Deployment workflow integration**:
880
-
881
- ```yaml
882
- # .github/workflows/deploy-production.yml
883
- name: Deploy to Production
884
- on:
885
- push:
886
- tags:
887
- - 'v*'
888
-
889
- jobs:
890
- verify-contracts:
891
- runs-on: ubuntu-latest
892
- steps:
893
- - uses: actions/checkout@v4
894
-
895
- - name: Check pact compatibility
896
- run: npm run pact:can-deploy ${{ github.ref_name }} production
897
- env:
898
- PACT_BROKER_BASE_URL: ${{ secrets.PACT_BROKER_BASE_URL }}
899
- PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }}
900
-
901
- deploy:
902
- needs: verify-contracts
903
- runs-on: ubuntu-latest
904
- steps:
905
- - name: Deploy to production
906
- run: ./scripts/deploy.sh production
907
-
908
- - name: Record deployment in Pact Broker
909
- run: npm run pact:record ${{ github.ref_name }} production
910
- env:
911
- PACT_BROKER_BASE_URL: ${{ secrets.PACT_BROKER_BASE_URL }}
912
- PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }}
913
- ```
914
-
915
- **Scheduled cleanup**:
916
-
917
- ```yaml
918
- # .github/workflows/pact-housekeeping.yml
919
- name: Pact Broker Housekeeping
920
- on:
921
- schedule:
922
- - cron: '0 2 * * 0' # Weekly on Sunday at 2 AM
923
-
924
- jobs:
925
- cleanup:
926
- runs-on: ubuntu-latest
927
- steps:
928
- - uses: actions/checkout@v4
929
-
930
- - name: Cleanup old pacts
931
- run: npm run pact:cleanup
932
- env:
933
- PACT_BROKER_BASE_URL: ${{ secrets.PACT_BROKER_BASE_URL }}
934
- PACT_BROKER_TOKEN: ${{ secrets.PACT_BROKER_TOKEN }}
935
- ```
936
-
937
- **Key Points**:
938
-
939
- - **Automated tagging**: Releases tagged with environment
940
- - **Deployment tracking**: Broker knows which version is where
941
- - **Safety gate**: can-i-deploy blocks incompatible deployments
942
- - **Retention policy**: Keep recent, production, and branch-latest pacts
943
- - **Webhook triggers**: Provider verification runs on consumer changes
944
-
945
- ---
946
-
947
- ## Provider Scrutiny Protocol
948
-
949
- When generating consumer contract tests, the agent **MUST** analyze provider source code — or the provider's OpenAPI/Swagger spec — before writing any Pact interaction. Generating contracts from consumer-side assumptions alone leads to mismatches that only surface during provider verification — wrong response shapes, wrong status codes, wrong field names, wrong types, missing required fields, and wrong enum values.
950
-
951
- **Source priority**: Provider source code is the most authoritative reference. When an OpenAPI/Swagger spec exists (`openapi.yaml`, `openapi.json`, `swagger.json`), use it as a complementary or alternative source — it documents the provider's contract explicitly and can be faster to parse than tracing through handler code. When both exist, cross-reference them; if they disagree, the source code wins.
952
-
953
- ### Provider Endpoint Comment
954
-
955
- Every Pact interaction MUST include a provider endpoint comment immediately above the `.given()` call:
956
-
957
- ```typescript
958
- // Provider endpoint: server/src/routes/userRouteHandlers.ts -> GET /api/v2/users/:userId
959
- await provider.given('user with id 1 exists').uponReceiving('a request for user 1');
960
- ```
961
-
962
- **Format**: `// Provider endpoint: <relative-path-to-handler> -> <METHOD> <route-pattern>`
963
-
964
- If the provider source is not accessible, use: `// Provider endpoint: TODO — provider source not accessible, verify manually`
965
-
966
- ### Seven-Point Scrutiny Checklist
967
-
968
- Before generating each Pact interaction, read the provider route handler and/or OpenAPI spec and verify:
969
-
970
- | # | Check | What to Read (source code / OpenAPI spec) | Common Mismatch |
971
- | --- | --------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------- |
972
- | 1 | **Response shape** | Handler's `res.json()` calls / OpenAPI `responses.content.schema` | Nested object vs flat; array wrapper vs direct |
973
- | 2 | **Status codes** | Handler's `res.status()` calls / OpenAPI `responses` keys | 200 vs 201 for creation; 204 vs 200 for delete |
974
- | 3 | **Field names** | Response type/DTO definitions / OpenAPI `schema.properties` | `transaction_id` vs `transactionId`; `fraud_score` vs `score` |
975
- | 4 | **Enum values** | Validation schemas, constants / OpenAPI `schema.enum` | `"active"` vs `"ACTIVE"`; `"pending"` vs `"in_progress"` |
976
- | 5 | **Required fields** | Request validation (Joi, Zod) / OpenAPI `schema.required` | Missing required header; optional field assumed required |
977
- | 6 | **Data types** | TypeScript types, DB models / OpenAPI `schema.type` + `format` | `string` ID vs `number` ID; ISO date vs Unix timestamp |
978
- | 7 | **Nested structures** | Response builder, serializer / OpenAPI `$ref` + `allOf`/`oneOf` | `{ data: { items: [] } }` vs `{ items: [] }` |
979
-
980
- ### Scrutiny Evidence Block
981
-
982
- Document what was found from provider source and/or OpenAPI spec as a block comment in the test file:
983
-
984
- ```typescript
985
- /*
986
- * Provider Scrutiny Evidence:
987
- * - Handler: server/src/routes/userRouteHandlers.ts:45
988
- * - OpenAPI: server/openapi.yaml paths./api/v2/users/{userId}.get (if available)
989
- * - Response type: UserResponseDto (server/src/types/user.ts:12)
990
- * - Status: 200 (line 52), 404 (line 48)
991
- * - Fields: { id: number, name: string, email: string, role: "user" | "admin", createdAt: string }
992
- * - Required request headers: Authorization (Bearer token)
993
- * - Validation: Zod schema at server/src/validation/user.ts:8
994
- */
995
- ```
996
-
997
- ### Graceful Degradation
998
-
999
- When provider source code is not accessible (different repo, no access, closed source):
1000
-
1001
- 1. **OpenAPI/Swagger spec available**: Use the spec as the source of truth for response shapes, status codes, and field names
1002
- 2. **Pact Broker has existing contracts**: Use `pact_mcp` tools to fetch existing provider states and verified interactions as reference
1003
- 3. **Neither available**: Generate contracts from consumer-side types but use the TODO form of the mandatory comment: `// Provider endpoint: TODO — provider source not accessible, verify manually` and add a `provider_scrutiny: "pending"` field to the output JSON
1004
- 4. **Never silently guess**: If you cannot verify, document what you assumed and why
1005
-
1006
- ---
1007
-
1008
- ## Contract Testing Checklist
1009
-
1010
- Before implementing contract testing, verify:
1011
-
1012
- - [ ] **Pact Broker setup**: Hosted (Pactflow) or self-hosted broker configured
1013
- - [ ] **Consumer tests**: Generate pacts in CI, publish to broker on merge
1014
- - [ ] **Provider verification**: Runs on PR, verifies all consumer pacts
1015
- - [ ] **State handlers**: Provider implements all given() states
1016
- - [ ] **can-i-deploy**: Blocks deployment if contracts incompatible
1017
- - [ ] **Webhooks configured**: Consumer changes trigger provider verification
1018
- - [ ] **Retention policy**: Old pacts archived (keep 30 days, all production tags)
1019
- - [ ] **Resilience tested**: Timeouts, retries, error codes in contracts
1020
- - [ ] **Provider endpoint comments**: Every Pact interaction has `// Provider endpoint:` comment
1021
- - [ ] **Provider scrutiny completed**: Seven-point checklist verified for each interaction
1022
- - [ ] **Scrutiny evidence documented**: Block comment with handler, types, status codes, and fields
1023
-
1024
- ## Integration Points
1025
-
1026
- - Used in workflows: `*automate` (integration test generation), `*ci` (contract CI setup)
1027
- - Related fragments: `test-levels-framework.md`, `ci-burn-in.md`, `pact-consumer-framework-setup.md`
1028
- - Tools: Pact.js, Pact Broker (Pactflow or self-hosted), Pact CLI
1029
-
1030
- ---
1031
-
1032
- ## Pact.js Utils Accelerator
1033
-
1034
- When `tea_use_pactjs_utils` is enabled, the following utilities replace manual boilerplate:
1035
-
1036
- | Manual Pattern (raw Pact.js) | Pact.js Utils Equivalent | Benefit |
1037
- | -------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------- |
1038
- | Manual `JsonMap` casting for `.given()` params | `createProviderState({ name, params })` | Type-safe, auto-conversion of Date/null/nested objects |
1039
- | Repeated builder callbacks for query/header/body | `setJsonContent({ query, headers, body })` | Reusable callback for `.withRequest(...)` and `.willRespondWith(...)` |
1040
- | Inline body lambda `(builder) => builder.jsonBody(body)` | `setJsonBody(body)` | Body-only shorthand for cleaner response builders |
1041
- | 30+ lines of `VerifierOptions` assembly | `buildVerifierOptions({ provider, port, includeMainAndDeployed, stateHandlers })` | One-call setup, env-aware, flow auto-detection |
1042
- | Manual broker URL + selector logic from env vars | `handlePactBrokerUrlAndSelectors({ ..., options })` | Mutates options in-place with broker URL and selectors |
1043
- | DIY Express middleware for auth injection | `createRequestFilter({ tokenGenerator })` | Bearer prefix contract prevents double-prefix bugs |
1044
- | Manual CI branch/tag extraction | `getProviderVersionTags()` | CI-aware (GitHub Actions, GitLab CI, etc.) |
1045
- | Message verifier config assembly | `buildMessageVerifierOptions({ provider, messageProviders })` | Same one-call pattern for Kafka/async contracts |
1046
- | Inline no-op filter `(req, res, next) => next()` | `noOpRequestFilter` | Pre-built pass-through for no-auth providers |
1047
-
1048
- See the `pactjs-utils-*.md` knowledge fragments for complete examples and anti-patterns.
1049
-
1050
- _Source: Pact consumer/provider sample repos, Murat contract testing blog, Pact official documentation, @seontechnologies/pactjs-utils library_