bmad-studio 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1077) hide show
  1. package/README.md +6 -0
  2. package/package.json +27 -2
  3. package/packages/client/dist/assets/index-CWL4J-eZ.css +1 -0
  4. package/packages/client/dist/assets/index-DBqsFqD5.js +535 -0
  5. package/packages/client/dist/assets/inter-tight-cyrillic-400-normal-DPRou3KO.woff +0 -0
  6. package/packages/client/dist/assets/inter-tight-cyrillic-400-normal-G7BuwYWK.woff2 +0 -0
  7. package/packages/client/dist/assets/inter-tight-cyrillic-700-normal-DDZiLR3d.woff +0 -0
  8. package/packages/client/dist/assets/inter-tight-cyrillic-700-normal-DtWWjp29.woff2 +0 -0
  9. package/packages/client/dist/assets/inter-tight-cyrillic-800-normal-CC_RRmyd.woff2 +0 -0
  10. package/packages/client/dist/assets/inter-tight-cyrillic-800-normal-ChWbk4mt.woff +0 -0
  11. package/packages/client/dist/assets/inter-tight-cyrillic-ext-400-normal-CKO3cWyd.woff2 +0 -0
  12. package/packages/client/dist/assets/inter-tight-cyrillic-ext-400-normal-DiHHcP5k.woff +0 -0
  13. package/packages/client/dist/assets/inter-tight-cyrillic-ext-700-normal-BFcoPt71.woff +0 -0
  14. package/packages/client/dist/assets/inter-tight-cyrillic-ext-700-normal-D_7NT8eF.woff2 +0 -0
  15. package/packages/client/dist/assets/inter-tight-cyrillic-ext-800-normal-CzCOBUhR.woff2 +0 -0
  16. package/packages/client/dist/assets/inter-tight-cyrillic-ext-800-normal-WowoGRZX.woff +0 -0
  17. package/packages/client/dist/assets/inter-tight-greek-400-normal-BLLSFQTx.woff +0 -0
  18. package/packages/client/dist/assets/inter-tight-greek-400-normal-Br_GQm5W.woff2 +0 -0
  19. package/packages/client/dist/assets/inter-tight-greek-700-normal-DU8XoIeX.woff +0 -0
  20. package/packages/client/dist/assets/inter-tight-greek-700-normal-RgALSHS4.woff2 +0 -0
  21. package/packages/client/dist/assets/inter-tight-greek-800-normal-CxHmUlv4.woff +0 -0
  22. package/packages/client/dist/assets/inter-tight-greek-800-normal-X9eW6L67.woff2 +0 -0
  23. package/packages/client/dist/assets/inter-tight-greek-ext-400-normal-C3GMUg_S.woff2 +0 -0
  24. package/packages/client/dist/assets/inter-tight-greek-ext-400-normal-DMqR5RoS.woff +0 -0
  25. package/packages/client/dist/assets/inter-tight-greek-ext-700-normal-D0RkHJEE.woff2 +0 -0
  26. package/packages/client/dist/assets/inter-tight-greek-ext-700-normal-mW3dmpoD.woff +0 -0
  27. package/packages/client/dist/assets/inter-tight-greek-ext-800-normal-DNWjXg9N.woff2 +0 -0
  28. package/packages/client/dist/assets/inter-tight-greek-ext-800-normal-DfP-QoiQ.woff +0 -0
  29. package/packages/client/dist/assets/inter-tight-latin-400-normal-BLrFJfvD.woff +0 -0
  30. package/packages/client/dist/assets/inter-tight-latin-400-normal-iW8qmuJY.woff2 +0 -0
  31. package/packages/client/dist/assets/inter-tight-latin-700-normal-BZKd_v_8.woff2 +0 -0
  32. package/packages/client/dist/assets/inter-tight-latin-700-normal-DvYAVZQd.woff +0 -0
  33. package/packages/client/dist/assets/inter-tight-latin-800-normal-CRGCHRPv.woff2 +0 -0
  34. package/packages/client/dist/assets/inter-tight-latin-800-normal-D2te1T7i.woff +0 -0
  35. package/packages/client/dist/assets/inter-tight-latin-ext-400-normal-BQQeeQrv.woff +0 -0
  36. package/packages/client/dist/assets/inter-tight-latin-ext-400-normal-DN7wyBvd.woff2 +0 -0
  37. package/packages/client/dist/assets/inter-tight-latin-ext-700-normal-BpKPOkj3.woff2 +0 -0
  38. package/packages/client/dist/assets/inter-tight-latin-ext-700-normal-CrlzIQ10.woff +0 -0
  39. package/packages/client/dist/assets/inter-tight-latin-ext-800-normal-A39zhqaD.woff +0 -0
  40. package/packages/client/dist/assets/inter-tight-latin-ext-800-normal-DfKN99cy.woff2 +0 -0
  41. package/packages/client/dist/assets/inter-tight-vietnamese-400-normal-CqzIqjuX.woff2 +0 -0
  42. package/packages/client/dist/assets/inter-tight-vietnamese-400-normal-kSDs3Vd1.woff +0 -0
  43. package/packages/client/dist/assets/inter-tight-vietnamese-700-normal-Cn_DV52A.woff2 +0 -0
  44. package/packages/client/dist/assets/inter-tight-vietnamese-700-normal-DwHBAXeT.woff +0 -0
  45. package/packages/client/dist/assets/inter-tight-vietnamese-800-normal-CbYrLkxo.woff +0 -0
  46. package/packages/client/dist/assets/inter-tight-vietnamese-800-normal-OJoDhpMd.woff2 +0 -0
  47. package/packages/client/dist/index.html +13 -0
  48. package/packages/server/dist/app.d.ts +12 -0
  49. package/packages/server/dist/app.d.ts.map +1 -0
  50. package/packages/server/dist/app.js +94 -0
  51. package/packages/server/dist/app.js.map +1 -0
  52. package/packages/server/dist/app.test.d.ts +2 -0
  53. package/packages/server/dist/app.test.d.ts.map +1 -0
  54. package/packages/server/dist/app.test.js +72 -0
  55. package/packages/server/dist/app.test.js.map +1 -0
  56. package/packages/server/dist/core/errors.d.ts +29 -0
  57. package/packages/server/dist/core/errors.d.ts.map +1 -0
  58. package/packages/server/dist/core/errors.js +49 -0
  59. package/packages/server/dist/core/errors.js.map +1 -0
  60. package/packages/server/dist/core/errors.test.d.ts +2 -0
  61. package/packages/server/dist/core/errors.test.d.ts.map +1 -0
  62. package/packages/server/dist/core/errors.test.js +37 -0
  63. package/packages/server/dist/core/errors.test.js.map +1 -0
  64. package/packages/server/dist/core/file-store.d.ts +40 -0
  65. package/packages/server/dist/core/file-store.d.ts.map +1 -0
  66. package/packages/server/dist/core/file-store.js +160 -0
  67. package/packages/server/dist/core/file-store.js.map +1 -0
  68. package/packages/server/dist/core/file-store.test.d.ts +2 -0
  69. package/packages/server/dist/core/file-store.test.d.ts.map +1 -0
  70. package/packages/server/dist/core/file-store.test.js +75 -0
  71. package/packages/server/dist/core/file-store.test.js.map +1 -0
  72. package/packages/server/dist/core/ide-skill-generator.d.ts +58 -0
  73. package/packages/server/dist/core/ide-skill-generator.d.ts.map +1 -0
  74. package/packages/server/dist/core/ide-skill-generator.js +270 -0
  75. package/packages/server/dist/core/ide-skill-generator.js.map +1 -0
  76. package/packages/server/dist/core/ide-skill-generator.test.d.ts +2 -0
  77. package/packages/server/dist/core/ide-skill-generator.test.d.ts.map +1 -0
  78. package/packages/server/dist/core/ide-skill-generator.test.js +257 -0
  79. package/packages/server/dist/core/ide-skill-generator.test.js.map +1 -0
  80. package/packages/server/dist/core/module-installer.d.ts +165 -0
  81. package/packages/server/dist/core/module-installer.d.ts.map +1 -0
  82. package/packages/server/dist/core/module-installer.js +445 -0
  83. package/packages/server/dist/core/module-installer.js.map +1 -0
  84. package/packages/server/dist/core/module-installer.test.d.ts +2 -0
  85. package/packages/server/dist/core/module-installer.test.d.ts.map +1 -0
  86. package/packages/server/dist/core/module-installer.test.js +509 -0
  87. package/packages/server/dist/core/module-installer.test.js.map +1 -0
  88. package/packages/server/dist/core/module-registry.d.ts +5 -0
  89. package/packages/server/dist/core/module-registry.d.ts.map +1 -0
  90. package/packages/server/dist/core/module-registry.js +109 -0
  91. package/packages/server/dist/core/module-registry.js.map +1 -0
  92. package/packages/server/dist/core/module-registry.test.d.ts +2 -0
  93. package/packages/server/dist/core/module-registry.test.d.ts.map +1 -0
  94. package/packages/server/dist/core/module-registry.test.js +280 -0
  95. package/packages/server/dist/core/module-registry.test.js.map +1 -0
  96. package/packages/server/dist/core/project-detector.d.ts +14 -0
  97. package/packages/server/dist/core/project-detector.d.ts.map +1 -0
  98. package/packages/server/dist/core/project-detector.js +67 -0
  99. package/packages/server/dist/core/project-detector.js.map +1 -0
  100. package/packages/server/dist/core/project-detector.test.d.ts +2 -0
  101. package/packages/server/dist/core/project-detector.test.d.ts.map +1 -0
  102. package/packages/server/dist/core/project-detector.test.js +73 -0
  103. package/packages/server/dist/core/project-detector.test.js.map +1 -0
  104. package/packages/server/dist/core/websocket.d.ts +16 -0
  105. package/packages/server/dist/core/websocket.d.ts.map +1 -0
  106. package/packages/server/dist/core/websocket.js +30 -0
  107. package/packages/server/dist/core/websocket.js.map +1 -0
  108. package/packages/server/dist/core/websocket.test.d.ts +2 -0
  109. package/packages/server/dist/core/websocket.test.d.ts.map +1 -0
  110. package/packages/server/dist/core/websocket.test.js +64 -0
  111. package/packages/server/dist/core/websocket.test.js.map +1 -0
  112. package/packages/server/dist/core/write-service.d.ts +32 -0
  113. package/packages/server/dist/core/write-service.d.ts.map +1 -0
  114. package/packages/server/dist/core/write-service.js +173 -0
  115. package/packages/server/dist/core/write-service.js.map +1 -0
  116. package/packages/server/dist/core/write-service.test.d.ts +2 -0
  117. package/packages/server/dist/core/write-service.test.d.ts.map +1 -0
  118. package/packages/server/dist/core/write-service.test.js +156 -0
  119. package/packages/server/dist/core/write-service.test.js.map +1 -0
  120. package/packages/server/dist/index.d.ts +2 -0
  121. package/packages/server/dist/index.d.ts.map +1 -0
  122. package/packages/server/dist/index.js +133 -0
  123. package/packages/server/dist/index.js.map +1 -0
  124. package/packages/server/dist/parsers/agent-parser.d.ts +4 -0
  125. package/packages/server/dist/parsers/agent-parser.d.ts.map +1 -0
  126. package/packages/server/dist/parsers/agent-parser.js +88 -0
  127. package/packages/server/dist/parsers/agent-parser.js.map +1 -0
  128. package/packages/server/dist/parsers/agent-parser.test.d.ts +2 -0
  129. package/packages/server/dist/parsers/agent-parser.test.d.ts.map +1 -0
  130. package/packages/server/dist/parsers/agent-parser.test.js +66 -0
  131. package/packages/server/dist/parsers/agent-parser.test.js.map +1 -0
  132. package/packages/server/dist/parsers/config-parser.d.ts +14 -0
  133. package/packages/server/dist/parsers/config-parser.d.ts.map +1 -0
  134. package/packages/server/dist/parsers/config-parser.js +39 -0
  135. package/packages/server/dist/parsers/config-parser.js.map +1 -0
  136. package/packages/server/dist/parsers/config-parser.test.d.ts +2 -0
  137. package/packages/server/dist/parsers/config-parser.test.d.ts.map +1 -0
  138. package/packages/server/dist/parsers/config-parser.test.js +56 -0
  139. package/packages/server/dist/parsers/config-parser.test.js.map +1 -0
  140. package/packages/server/dist/parsers/csv-parser.d.ts +4 -0
  141. package/packages/server/dist/parsers/csv-parser.d.ts.map +1 -0
  142. package/packages/server/dist/parsers/csv-parser.js +50 -0
  143. package/packages/server/dist/parsers/csv-parser.js.map +1 -0
  144. package/packages/server/dist/parsers/csv-parser.test.d.ts +2 -0
  145. package/packages/server/dist/parsers/csv-parser.test.d.ts.map +1 -0
  146. package/packages/server/dist/parsers/csv-parser.test.js +44 -0
  147. package/packages/server/dist/parsers/csv-parser.test.js.map +1 -0
  148. package/packages/server/dist/parsers/ide-config-parser.d.ts +9 -0
  149. package/packages/server/dist/parsers/ide-config-parser.d.ts.map +1 -0
  150. package/packages/server/dist/parsers/ide-config-parser.js +28 -0
  151. package/packages/server/dist/parsers/ide-config-parser.js.map +1 -0
  152. package/packages/server/dist/parsers/ide-config-parser.test.d.ts +2 -0
  153. package/packages/server/dist/parsers/ide-config-parser.test.d.ts.map +1 -0
  154. package/packages/server/dist/parsers/ide-config-parser.test.js +32 -0
  155. package/packages/server/dist/parsers/ide-config-parser.test.js.map +1 -0
  156. package/packages/server/dist/parsers/index-builder.d.ts +20 -0
  157. package/packages/server/dist/parsers/index-builder.d.ts.map +1 -0
  158. package/packages/server/dist/parsers/index-builder.js +155 -0
  159. package/packages/server/dist/parsers/index-builder.js.map +1 -0
  160. package/packages/server/dist/parsers/index-builder.test.d.ts +2 -0
  161. package/packages/server/dist/parsers/index-builder.test.d.ts.map +1 -0
  162. package/packages/server/dist/parsers/index-builder.test.js +57 -0
  163. package/packages/server/dist/parsers/index-builder.test.js.map +1 -0
  164. package/packages/server/dist/parsers/module-yaml-parser.d.ts +16 -0
  165. package/packages/server/dist/parsers/module-yaml-parser.d.ts.map +1 -0
  166. package/packages/server/dist/parsers/module-yaml-parser.js +62 -0
  167. package/packages/server/dist/parsers/module-yaml-parser.js.map +1 -0
  168. package/packages/server/dist/parsers/module-yaml-parser.test.d.ts +2 -0
  169. package/packages/server/dist/parsers/module-yaml-parser.test.d.ts.map +1 -0
  170. package/packages/server/dist/parsers/module-yaml-parser.test.js +156 -0
  171. package/packages/server/dist/parsers/module-yaml-parser.test.js.map +1 -0
  172. package/packages/server/dist/parsers/package-parser.d.ts +4 -0
  173. package/packages/server/dist/parsers/package-parser.d.ts.map +1 -0
  174. package/packages/server/dist/parsers/package-parser.js +29 -0
  175. package/packages/server/dist/parsers/package-parser.js.map +1 -0
  176. package/packages/server/dist/parsers/package-parser.test.d.ts +2 -0
  177. package/packages/server/dist/parsers/package-parser.test.d.ts.map +1 -0
  178. package/packages/server/dist/parsers/package-parser.test.js +34 -0
  179. package/packages/server/dist/parsers/package-parser.test.js.map +1 -0
  180. package/packages/server/dist/parsers/skill-parser.d.ts +4 -0
  181. package/packages/server/dist/parsers/skill-parser.d.ts.map +1 -0
  182. package/packages/server/dist/parsers/skill-parser.js +58 -0
  183. package/packages/server/dist/parsers/skill-parser.js.map +1 -0
  184. package/packages/server/dist/parsers/skill-parser.test.d.ts +2 -0
  185. package/packages/server/dist/parsers/skill-parser.test.d.ts.map +1 -0
  186. package/packages/server/dist/parsers/skill-parser.test.js +49 -0
  187. package/packages/server/dist/parsers/skill-parser.test.js.map +1 -0
  188. package/packages/server/dist/parsers/team-parser.d.ts +4 -0
  189. package/packages/server/dist/parsers/team-parser.d.ts.map +1 -0
  190. package/packages/server/dist/parsers/team-parser.js +108 -0
  191. package/packages/server/dist/parsers/team-parser.js.map +1 -0
  192. package/packages/server/dist/parsers/team-parser.test.d.ts +2 -0
  193. package/packages/server/dist/parsers/team-parser.test.d.ts.map +1 -0
  194. package/packages/server/dist/parsers/team-parser.test.js +142 -0
  195. package/packages/server/dist/parsers/team-parser.test.js.map +1 -0
  196. package/packages/server/dist/parsers/workflow-parser.d.ts +4 -0
  197. package/packages/server/dist/parsers/workflow-parser.d.ts.map +1 -0
  198. package/packages/server/dist/parsers/workflow-parser.js +266 -0
  199. package/packages/server/dist/parsers/workflow-parser.js.map +1 -0
  200. package/packages/server/dist/parsers/workflow-parser.test.d.ts +2 -0
  201. package/packages/server/dist/parsers/workflow-parser.test.d.ts.map +1 -0
  202. package/packages/server/dist/parsers/workflow-parser.test.js +318 -0
  203. package/packages/server/dist/parsers/workflow-parser.test.js.map +1 -0
  204. package/packages/server/dist/plugins/agents-plugin.d.ts +3 -0
  205. package/packages/server/dist/plugins/agents-plugin.d.ts.map +1 -0
  206. package/packages/server/dist/plugins/agents-plugin.js +129 -0
  207. package/packages/server/dist/plugins/agents-plugin.js.map +1 -0
  208. package/packages/server/dist/plugins/agents-plugin.test.d.ts +2 -0
  209. package/packages/server/dist/plugins/agents-plugin.test.d.ts.map +1 -0
  210. package/packages/server/dist/plugins/agents-plugin.test.js +94 -0
  211. package/packages/server/dist/plugins/agents-plugin.test.js.map +1 -0
  212. package/packages/server/dist/plugins/commands-plugin.d.ts +16 -0
  213. package/packages/server/dist/plugins/commands-plugin.d.ts.map +1 -0
  214. package/packages/server/dist/plugins/commands-plugin.js +38 -0
  215. package/packages/server/dist/plugins/commands-plugin.js.map +1 -0
  216. package/packages/server/dist/plugins/datasources-plugin.d.ts +3 -0
  217. package/packages/server/dist/plugins/datasources-plugin.d.ts.map +1 -0
  218. package/packages/server/dist/plugins/datasources-plugin.js +211 -0
  219. package/packages/server/dist/plugins/datasources-plugin.js.map +1 -0
  220. package/packages/server/dist/plugins/files-plugin.d.ts +3 -0
  221. package/packages/server/dist/plugins/files-plugin.d.ts.map +1 -0
  222. package/packages/server/dist/plugins/files-plugin.js +77 -0
  223. package/packages/server/dist/plugins/files-plugin.js.map +1 -0
  224. package/packages/server/dist/plugins/files-plugin.test.d.ts +2 -0
  225. package/packages/server/dist/plugins/files-plugin.test.d.ts.map +1 -0
  226. package/packages/server/dist/plugins/files-plugin.test.js +107 -0
  227. package/packages/server/dist/plugins/files-plugin.test.js.map +1 -0
  228. package/packages/server/dist/plugins/modules-plugin.d.ts +3 -0
  229. package/packages/server/dist/plugins/modules-plugin.d.ts.map +1 -0
  230. package/packages/server/dist/plugins/modules-plugin.js +1313 -0
  231. package/packages/server/dist/plugins/modules-plugin.js.map +1 -0
  232. package/packages/server/dist/plugins/modules-plugin.test.d.ts +2 -0
  233. package/packages/server/dist/plugins/modules-plugin.test.d.ts.map +1 -0
  234. package/packages/server/dist/plugins/modules-plugin.test.js +2124 -0
  235. package/packages/server/dist/plugins/modules-plugin.test.js.map +1 -0
  236. package/packages/server/dist/plugins/outputs-plugin.d.ts +3 -0
  237. package/packages/server/dist/plugins/outputs-plugin.d.ts.map +1 -0
  238. package/packages/server/dist/plugins/outputs-plugin.js +75 -0
  239. package/packages/server/dist/plugins/outputs-plugin.js.map +1 -0
  240. package/packages/server/dist/plugins/outputs-plugin.test.d.ts +2 -0
  241. package/packages/server/dist/plugins/outputs-plugin.test.d.ts.map +1 -0
  242. package/packages/server/dist/plugins/outputs-plugin.test.js +79 -0
  243. package/packages/server/dist/plugins/outputs-plugin.test.js.map +1 -0
  244. package/packages/server/dist/plugins/overview-plugin.d.ts +3 -0
  245. package/packages/server/dist/plugins/overview-plugin.d.ts.map +1 -0
  246. package/packages/server/dist/plugins/overview-plugin.js +70 -0
  247. package/packages/server/dist/plugins/overview-plugin.js.map +1 -0
  248. package/packages/server/dist/plugins/search-plugin.d.ts +3 -0
  249. package/packages/server/dist/plugins/search-plugin.d.ts.map +1 -0
  250. package/packages/server/dist/plugins/search-plugin.js +46 -0
  251. package/packages/server/dist/plugins/search-plugin.js.map +1 -0
  252. package/packages/server/dist/plugins/settings-plugin.d.ts +3 -0
  253. package/packages/server/dist/plugins/settings-plugin.d.ts.map +1 -0
  254. package/packages/server/dist/plugins/settings-plugin.js +61 -0
  255. package/packages/server/dist/plugins/settings-plugin.js.map +1 -0
  256. package/packages/server/dist/plugins/settings-plugin.test.d.ts +2 -0
  257. package/packages/server/dist/plugins/settings-plugin.test.d.ts.map +1 -0
  258. package/packages/server/dist/plugins/settings-plugin.test.js +144 -0
  259. package/packages/server/dist/plugins/settings-plugin.test.js.map +1 -0
  260. package/packages/server/dist/plugins/skills-plugin.d.ts +3 -0
  261. package/packages/server/dist/plugins/skills-plugin.d.ts.map +1 -0
  262. package/packages/server/dist/plugins/skills-plugin.js +72 -0
  263. package/packages/server/dist/plugins/skills-plugin.js.map +1 -0
  264. package/packages/server/dist/plugins/teams-plugin.d.ts +3 -0
  265. package/packages/server/dist/plugins/teams-plugin.d.ts.map +1 -0
  266. package/packages/server/dist/plugins/teams-plugin.js +162 -0
  267. package/packages/server/dist/plugins/teams-plugin.js.map +1 -0
  268. package/packages/server/dist/plugins/teams-plugin.test.d.ts +2 -0
  269. package/packages/server/dist/plugins/teams-plugin.test.d.ts.map +1 -0
  270. package/packages/server/dist/plugins/teams-plugin.test.js +171 -0
  271. package/packages/server/dist/plugins/teams-plugin.test.js.map +1 -0
  272. package/packages/server/dist/plugins/validation-plugin.d.ts +3 -0
  273. package/packages/server/dist/plugins/validation-plugin.d.ts.map +1 -0
  274. package/packages/server/dist/plugins/validation-plugin.js +102 -0
  275. package/packages/server/dist/plugins/validation-plugin.js.map +1 -0
  276. package/packages/server/dist/plugins/validation-plugin.test.d.ts +2 -0
  277. package/packages/server/dist/plugins/validation-plugin.test.d.ts.map +1 -0
  278. package/packages/server/dist/plugins/validation-plugin.test.js +161 -0
  279. package/packages/server/dist/plugins/validation-plugin.test.js.map +1 -0
  280. package/packages/server/dist/plugins/workflows-plugin.d.ts +3 -0
  281. package/packages/server/dist/plugins/workflows-plugin.d.ts.map +1 -0
  282. package/packages/server/dist/plugins/workflows-plugin.js +227 -0
  283. package/packages/server/dist/plugins/workflows-plugin.js.map +1 -0
  284. package/packages/server/dist/plugins/workflows-plugin.test.d.ts +2 -0
  285. package/packages/server/dist/plugins/workflows-plugin.test.d.ts.map +1 -0
  286. package/packages/server/dist/plugins/workflows-plugin.test.js +115 -0
  287. package/packages/server/dist/plugins/workflows-plugin.test.js.map +1 -0
  288. package/packages/server/dist/static.d.ts +3 -0
  289. package/packages/server/dist/static.d.ts.map +1 -0
  290. package/packages/server/dist/static.js +23 -0
  291. package/packages/server/dist/static.js.map +1 -0
  292. package/packages/shared/src/agents.ts +4 -0
  293. package/packages/shared/src/config.ts +26 -0
  294. package/packages/shared/src/connections.ts +11 -8
  295. package/packages/shared/src/index.ts +13 -0
  296. package/packages/shared/src/modules.ts +42 -0
  297. package/packages/shared/src/registry.ts +26 -0
  298. package/packages/shared/src/types.test.ts +41 -4
  299. package/.prettierrc +0 -8
  300. package/CONTRIBUTING.md +0 -109
  301. package/_bmad/_config/agent-manifest.csv +0 -11
  302. package/_bmad/_config/bmad-help.csv +0 -57
  303. package/_bmad/_config/files-manifest.csv +0 -646
  304. package/_bmad/_config/ides/claude-code.yaml +0 -5
  305. package/_bmad/_config/manifest.yaml +0 -42
  306. package/_bmad/_config/skill-manifest.csv +0 -48
  307. package/_bmad/_config/task-manifest.csv +0 -1
  308. package/_bmad/_config/tool-manifest.csv +0 -1
  309. package/_bmad/_config/workflow-manifest.csv +0 -1
  310. package/_bmad/bmb/config.yaml +0 -13
  311. package/_bmad/bmb/module-help.csv +0 -7
  312. package/_bmad/bmb/skills/bmad-agent-builder/SKILL.md +0 -65
  313. package/_bmad/bmb/skills/bmad-agent-builder/assets/SKILL-template.md +0 -97
  314. package/_bmad/bmb/skills/bmad-agent-builder/assets/autonomous-wake.md +0 -37
  315. package/_bmad/bmb/skills/bmad-agent-builder/assets/init-template.md +0 -47
  316. package/_bmad/bmb/skills/bmad-agent-builder/assets/memory-system.md +0 -129
  317. package/_bmad/bmb/skills/bmad-agent-builder/assets/quality-report-template.md +0 -282
  318. package/_bmad/bmb/skills/bmad-agent-builder/assets/save-memory.md +0 -29
  319. package/_bmad/bmb/skills/bmad-agent-builder/bmad-manifest.json +0 -24
  320. package/_bmad/bmb/skills/bmad-agent-builder/bmad-skill-manifest.yaml +0 -1
  321. package/_bmad/bmb/skills/bmad-agent-builder/build-process.md +0 -199
  322. package/_bmad/bmb/skills/bmad-agent-builder/quality-optimizer.md +0 -208
  323. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-agent-cohesion.md +0 -272
  324. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-enhancement-opportunities.md +0 -277
  325. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-execution-efficiency.md +0 -181
  326. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-prompt-craft.md +0 -245
  327. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-script-opportunities.md +0 -262
  328. package/_bmad/bmb/skills/bmad-agent-builder/quality-scan-structure.md +0 -183
  329. package/_bmad/bmb/skills/bmad-agent-builder/references/metadata-reference.md +0 -126
  330. package/_bmad/bmb/skills/bmad-agent-builder/references/quality-dimensions.md +0 -46
  331. package/_bmad/bmb/skills/bmad-agent-builder/references/script-opportunities-reference.md +0 -385
  332. package/_bmad/bmb/skills/bmad-agent-builder/references/skill-best-practices.md +0 -218
  333. package/_bmad/bmb/skills/bmad-agent-builder/references/standard-fields.md +0 -103
  334. package/_bmad/bmb/skills/bmad-agent-builder/references/template-substitution-rules.md +0 -72
  335. package/_bmad/bmb/skills/bmad-agent-builder/references/universal-scan-schema.md +0 -267
  336. package/_bmad/bmb/skills/bmad-agent-builder/report-quality-scan-creator.md +0 -138
  337. package/_bmad/bmb/skills/bmad-agent-builder/scripts/bmad-manifest-schema.json +0 -103
  338. package/_bmad/bmb/skills/bmad-agent-builder/scripts/generate-html-report.py +0 -1002
  339. package/_bmad/bmb/skills/bmad-agent-builder/scripts/manifest.py +0 -420
  340. package/_bmad/bmb/skills/bmad-agent-builder/scripts/prepass-execution-deps.py +0 -368
  341. package/_bmad/bmb/skills/bmad-agent-builder/scripts/prepass-prompt-metrics.py +0 -476
  342. package/_bmad/bmb/skills/bmad-agent-builder/scripts/prepass-structure-capabilities.py +0 -636
  343. package/_bmad/bmb/skills/bmad-agent-builder/scripts/scan-path-standards.py +0 -253
  344. package/_bmad/bmb/skills/bmad-agent-builder/scripts/scan-scripts.py +0 -745
  345. package/_bmad/bmb/skills/bmad-workflow-builder/SKILL.md +0 -65
  346. package/_bmad/bmb/skills/bmad-workflow-builder/assets/SKILL-template.md +0 -117
  347. package/_bmad/bmb/skills/bmad-workflow-builder/assets/quality-report-template.md +0 -260
  348. package/_bmad/bmb/skills/bmad-workflow-builder/bmad-manifest.json +0 -23
  349. package/_bmad/bmb/skills/bmad-workflow-builder/bmad-skill-manifest.yaml +0 -1
  350. package/_bmad/bmb/skills/bmad-workflow-builder/build-process.md +0 -208
  351. package/_bmad/bmb/skills/bmad-workflow-builder/quality-optimizer.md +0 -209
  352. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-enhancement-opportunities.md +0 -273
  353. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-execution-efficiency.md +0 -322
  354. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-prompt-craft.md +0 -328
  355. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-script-opportunities.md +0 -261
  356. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-skill-cohesion.md +0 -340
  357. package/_bmad/bmb/skills/bmad-workflow-builder/quality-scan-workflow-integrity.md +0 -280
  358. package/_bmad/bmb/skills/bmad-workflow-builder/references/classification-reference.md +0 -61
  359. package/_bmad/bmb/skills/bmad-workflow-builder/references/complex-workflow-patterns.md +0 -523
  360. package/_bmad/bmb/skills/bmad-workflow-builder/references/metadata-reference.md +0 -126
  361. package/_bmad/bmb/skills/bmad-workflow-builder/references/quality-dimensions.md +0 -45
  362. package/_bmad/bmb/skills/bmad-workflow-builder/references/script-opportunities-reference.md +0 -354
  363. package/_bmad/bmb/skills/bmad-workflow-builder/references/skill-best-practices.md +0 -218
  364. package/_bmad/bmb/skills/bmad-workflow-builder/references/standard-fields.md +0 -121
  365. package/_bmad/bmb/skills/bmad-workflow-builder/references/template-substitution-rules.md +0 -85
  366. package/_bmad/bmb/skills/bmad-workflow-builder/references/universal-scan-schema.md +0 -267
  367. package/_bmad/bmb/skills/bmad-workflow-builder/report-quality-scan-creator.md +0 -134
  368. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/bmad-manifest-schema.json +0 -103
  369. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/generate-html-report.py +0 -1002
  370. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/manifest.py +0 -420
  371. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/prepass-execution-deps.py +0 -313
  372. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/prepass-prompt-metrics.py +0 -285
  373. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/prepass-workflow-integrity.py +0 -485
  374. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/scan-path-standards.py +0 -213
  375. package/_bmad/bmb/skills/bmad-workflow-builder/scripts/scan-scripts.py +0 -745
  376. package/_bmad/bmm/agents/analyst.md +0 -69
  377. package/_bmad/bmm/agents/architect.md +0 -59
  378. package/_bmad/bmm/agents/bmad-skill-manifest.yaml +0 -39
  379. package/_bmad/bmm/agents/dev.md +0 -66
  380. package/_bmad/bmm/agents/pm.md +0 -63
  381. package/_bmad/bmm/agents/qa.md +0 -89
  382. package/_bmad/bmm/agents/quick-flow-solo-dev.md +0 -61
  383. package/_bmad/bmm/agents/sm.md +0 -67
  384. package/_bmad/bmm/agents/tech-writer/bmad-skill-manifest.yaml +0 -3
  385. package/_bmad/bmm/agents/tech-writer/tech-writer.md +0 -67
  386. package/_bmad/bmm/agents/ux-designer.md +0 -58
  387. package/_bmad/bmm/config.yaml +0 -16
  388. package/_bmad/bmm/data/project-context-template.md +0 -26
  389. package/_bmad/bmm/module-help.csv +0 -32
  390. package/_bmad/bmm/teams/default-party.csv +0 -20
  391. package/_bmad/bmm/teams/team-fullstack.yaml +0 -12
  392. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/SKILL.md +0 -6
  393. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/bmad-skill-manifest.yaml +0 -1
  394. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/product-brief.template.md +0 -10
  395. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01-init.md +0 -170
  396. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-01b-continue.md +0 -158
  397. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-02-vision.md +0 -193
  398. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-03-users.md +0 -196
  399. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-04-metrics.md +0 -199
  400. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-05-scope.md +0 -213
  401. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/steps/step-06-complete.md +0 -159
  402. package/_bmad/bmm/workflows/1-analysis/bmad-create-product-brief/workflow.md +0 -55
  403. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/SKILL.md +0 -88
  404. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/artifact-analyzer.md +0 -60
  405. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/opportunity-reviewer.md +0 -44
  406. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/skeptic-reviewer.md +0 -44
  407. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/agents/web-researcher.md +0 -49
  408. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-manifest.json +0 -17
  409. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/bmad-skill-manifest.yaml +0 -1
  410. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/contextual-discovery.md +0 -57
  411. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/draft-and-review.md +0 -86
  412. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/finalize.md +0 -75
  413. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/prompts/guided-elicitation.md +0 -70
  414. package/_bmad/bmm/workflows/1-analysis/bmad-product-brief-preview/resources/brief-template.md +0 -60
  415. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/SKILL.md +0 -6
  416. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/bmad-skill-manifest.yaml +0 -1
  417. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-01-init.md +0 -137
  418. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-02-domain-analysis.md +0 -229
  419. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-03-competitive-landscape.md +0 -238
  420. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-04-regulatory-focus.md +0 -206
  421. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-05-technical-trends.md +0 -234
  422. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/domain-steps/step-06-research-synthesis.md +0 -444
  423. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/research.template.md +0 -29
  424. package/_bmad/bmm/workflows/1-analysis/research/bmad-domain-research/workflow.md +0 -49
  425. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/SKILL.md +0 -6
  426. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/bmad-skill-manifest.yaml +0 -1
  427. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/research.template.md +0 -29
  428. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-01-init.md +0 -184
  429. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-02-customer-behavior.md +0 -239
  430. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-03-customer-pain-points.md +0 -251
  431. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-04-customer-decisions.md +0 -261
  432. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-05-competitive-analysis.md +0 -173
  433. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/steps/step-06-research-completion.md +0 -478
  434. package/_bmad/bmm/workflows/1-analysis/research/bmad-market-research/workflow.md +0 -49
  435. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/SKILL.md +0 -6
  436. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/bmad-skill-manifest.yaml +0 -1
  437. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/research.template.md +0 -29
  438. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-01-init.md +0 -137
  439. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-02-technical-overview.md +0 -239
  440. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-03-integration-patterns.md +0 -248
  441. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-04-architectural-patterns.md +0 -202
  442. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-05-implementation-research.md +0 -233
  443. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/technical-steps/step-06-research-synthesis.md +0 -487
  444. package/_bmad/bmm/workflows/1-analysis/research/bmad-technical-research/workflow.md +0 -50
  445. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-01-init.md +0 -182
  446. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +0 -237
  447. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +0 -249
  448. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +0 -259
  449. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +0 -177
  450. package/_bmad/bmm/workflows/1-analysis/research/market-steps/step-06-research-completion.md +0 -476
  451. package/_bmad/bmm/workflows/1-analysis/research/research.template.md +0 -29
  452. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/SKILL.md +0 -6
  453. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/bmad-skill-manifest.yaml +0 -1
  454. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01-init.md +0 -135
  455. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-01b-continue.md +0 -127
  456. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-02-discovery.md +0 -190
  457. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-03-core-experience.md +0 -217
  458. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-04-emotional-response.md +0 -220
  459. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-05-inspiration.md +0 -235
  460. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-06-design-system.md +0 -253
  461. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-07-defining-experience.md +0 -255
  462. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-08-visual-foundation.md +0 -225
  463. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-09-design-directions.md +0 -225
  464. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-10-user-journeys.md +0 -242
  465. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-11-component-strategy.md +0 -249
  466. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-12-ux-patterns.md +0 -238
  467. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-13-responsive-accessibility.md +0 -265
  468. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/steps/step-14-complete.md +0 -171
  469. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/ux-design-template.md +0 -13
  470. package/_bmad/bmm/workflows/2-plan-workflows/bmad-create-ux-design/workflow.md +0 -36
  471. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/SKILL.md +0 -6
  472. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/bmad-skill-manifest.yaml +0 -1
  473. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01-discovery.md +0 -242
  474. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-01b-legacy-conversion.md +0 -204
  475. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-02-review.md +0 -245
  476. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-03-edit.md +0 -250
  477. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/steps-e/step-e-04-complete.md +0 -165
  478. package/_bmad/bmm/workflows/2-plan-workflows/bmad-edit-prd/workflow.md +0 -63
  479. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/SKILL.md +0 -6
  480. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/bmad-skill-manifest.yaml +0 -1
  481. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/domain-complexity.csv +0 -15
  482. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/prd-purpose.md +0 -197
  483. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/data/project-types.csv +0 -11
  484. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-01-discovery.md +0 -221
  485. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02-format-detection.md +0 -188
  486. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-02b-parity-check.md +0 -206
  487. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-03-density-validation.md +0 -171
  488. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -211
  489. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-05-measurability-validation.md +0 -225
  490. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-06-traceability-validation.md +0 -214
  491. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -202
  492. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -240
  493. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-09-project-type-validation.md +0 -260
  494. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-10-smart-validation.md +0 -206
  495. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -261
  496. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-12-completeness-validation.md +0 -239
  497. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/steps-v/step-v-13-report-complete.md +0 -229
  498. package/_bmad/bmm/workflows/2-plan-workflows/bmad-validate-prd/workflow.md +0 -62
  499. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/domain-complexity.csv +0 -15
  500. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +0 -197
  501. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/data/project-types.csv +0 -11
  502. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +0 -224
  503. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +0 -191
  504. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +0 -209
  505. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +0 -174
  506. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-04-brief-coverage-validation.md +0 -214
  507. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-05-measurability-validation.md +0 -228
  508. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +0 -217
  509. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-07-implementation-leakage-validation.md +0 -205
  510. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-08-domain-compliance-validation.md +0 -243
  511. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-09-project-type-validation.md +0 -263
  512. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +0 -209
  513. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +0 -264
  514. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +0 -242
  515. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +0 -232
  516. package/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +0 -65
  517. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/SKILL.md +0 -6
  518. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/bmad-skill-manifest.yaml +0 -1
  519. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-01-document-discovery.md +0 -179
  520. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-02-prd-analysis.md +0 -168
  521. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -169
  522. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-04-ux-alignment.md +0 -129
  523. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -241
  524. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/steps/step-06-final-assessment.md +0 -126
  525. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/templates/readiness-report-template.md +0 -4
  526. package/_bmad/bmm/workflows/3-solutioning/bmad-check-implementation-readiness/workflow.md +0 -49
  527. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/SKILL.md +0 -6
  528. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/architecture-decision-template.md +0 -12
  529. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/bmad-skill-manifest.yaml +0 -1
  530. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/data/domain-complexity.csv +0 -13
  531. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/data/project-types.csv +0 -7
  532. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01-init.md +0 -153
  533. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-01b-continue.md +0 -173
  534. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-02-context.md +0 -224
  535. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-03-starter.md +0 -329
  536. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-04-decisions.md +0 -318
  537. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-05-patterns.md +0 -359
  538. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-06-structure.md +0 -379
  539. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-07-validation.md +0 -359
  540. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/steps/step-08-complete.md +0 -76
  541. package/_bmad/bmm/workflows/3-solutioning/bmad-create-architecture/workflow.md +0 -38
  542. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/SKILL.md +0 -6
  543. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/bmad-skill-manifest.yaml +0 -1
  544. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -255
  545. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-02-design-epics.md +0 -212
  546. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-03-create-stories.md +0 -255
  547. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/steps/step-04-final-validation.md +0 -131
  548. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/templates/epics-template.md +0 -61
  549. package/_bmad/bmm/workflows/3-solutioning/bmad-create-epics-and-stories/workflow.md +0 -53
  550. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/SKILL.md +0 -6
  551. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/bmad-skill-manifest.yaml +0 -1
  552. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-01-gather-context.md +0 -61
  553. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-02-review.md +0 -41
  554. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-03-triage.md +0 -50
  555. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/steps/step-04-present.md +0 -38
  556. package/_bmad/bmm/workflows/4-implementation/bmad-code-review/workflow.md +0 -54
  557. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/SKILL.md +0 -6
  558. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/bmad-skill-manifest.yaml +0 -1
  559. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/checklist.md +0 -288
  560. package/_bmad/bmm/workflows/4-implementation/bmad-correct-course/workflow.md +0 -267
  561. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/SKILL.md +0 -6
  562. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/bmad-skill-manifest.yaml +0 -1
  563. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/checklist.md +0 -357
  564. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/discover-inputs.md +0 -88
  565. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/template.md +0 -49
  566. package/_bmad/bmm/workflows/4-implementation/bmad-create-story/workflow.md +0 -380
  567. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/SKILL.md +0 -6
  568. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/bmad-skill-manifest.yaml +0 -1
  569. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/checklist.md +0 -80
  570. package/_bmad/bmm/workflows/4-implementation/bmad-dev-story/workflow.md +0 -450
  571. package/_bmad/bmm/workflows/4-implementation/bmad-retrospective/SKILL.md +0 -6
  572. package/_bmad/bmm/workflows/4-implementation/bmad-retrospective/bmad-skill-manifest.yaml +0 -1
  573. package/_bmad/bmm/workflows/4-implementation/bmad-retrospective/workflow.md +0 -1479
  574. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/SKILL.md +0 -6
  575. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/bmad-skill-manifest.yaml +0 -1
  576. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/checklist.md +0 -33
  577. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/sprint-status-template.yaml +0 -56
  578. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-planning/workflow.md +0 -263
  579. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-status/SKILL.md +0 -6
  580. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-status/bmad-skill-manifest.yaml +0 -1
  581. package/_bmad/bmm/workflows/4-implementation/bmad-sprint-status/workflow.md +0 -261
  582. package/_bmad/bmm/workflows/bmad-document-project/SKILL.md +0 -6
  583. package/_bmad/bmm/workflows/bmad-document-project/bmad-skill-manifest.yaml +0 -1
  584. package/_bmad/bmm/workflows/bmad-document-project/checklist.md +0 -245
  585. package/_bmad/bmm/workflows/bmad-document-project/documentation-requirements.csv +0 -12
  586. package/_bmad/bmm/workflows/bmad-document-project/instructions.md +0 -128
  587. package/_bmad/bmm/workflows/bmad-document-project/templates/deep-dive-template.md +0 -345
  588. package/_bmad/bmm/workflows/bmad-document-project/templates/index-template.md +0 -169
  589. package/_bmad/bmm/workflows/bmad-document-project/templates/project-overview-template.md +0 -103
  590. package/_bmad/bmm/workflows/bmad-document-project/templates/project-scan-report-schema.json +0 -160
  591. package/_bmad/bmm/workflows/bmad-document-project/templates/source-tree-template.md +0 -135
  592. package/_bmad/bmm/workflows/bmad-document-project/workflow.md +0 -27
  593. package/_bmad/bmm/workflows/bmad-document-project/workflows/deep-dive-instructions.md +0 -299
  594. package/_bmad/bmm/workflows/bmad-document-project/workflows/deep-dive-workflow.md +0 -34
  595. package/_bmad/bmm/workflows/bmad-document-project/workflows/full-scan-instructions.md +0 -1107
  596. package/_bmad/bmm/workflows/bmad-document-project/workflows/full-scan-workflow.md +0 -34
  597. package/_bmad/bmm/workflows/bmad-generate-project-context/SKILL.md +0 -6
  598. package/_bmad/bmm/workflows/bmad-generate-project-context/bmad-skill-manifest.yaml +0 -1
  599. package/_bmad/bmm/workflows/bmad-generate-project-context/project-context-template.md +0 -21
  600. package/_bmad/bmm/workflows/bmad-generate-project-context/steps/step-01-discover.md +0 -186
  601. package/_bmad/bmm/workflows/bmad-generate-project-context/steps/step-02-generate.md +0 -321
  602. package/_bmad/bmm/workflows/bmad-generate-project-context/steps/step-03-complete.md +0 -278
  603. package/_bmad/bmm/workflows/bmad-generate-project-context/workflow.md +0 -43
  604. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md +0 -6
  605. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml +0 -1
  606. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/checklist.md +0 -33
  607. package/_bmad/bmm/workflows/bmad-qa-generate-e2e-tests/workflow.md +0 -136
  608. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/SKILL.md +0 -6
  609. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/bmad-skill-manifest.yaml +0 -1
  610. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-01-mode-detection.md +0 -169
  611. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-02-context-gathering.md +0 -114
  612. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-03-execute.md +0 -107
  613. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-04-self-check.md +0 -107
  614. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-05-adversarial-review.md +0 -94
  615. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/steps/step-06-resolve-findings.md +0 -144
  616. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev/workflow.md +0 -38
  617. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/SKILL.md +0 -6
  618. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/bmad-skill-manifest.yaml +0 -1
  619. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-01-clarify-and-route.md +0 -51
  620. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-02-plan.md +0 -35
  621. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-03-implement.md +0 -33
  622. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-04-review.md +0 -50
  623. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/steps/step-05-present.md +0 -17
  624. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/tech-spec-template.md +0 -90
  625. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-dev-new-preview/workflow.md +0 -79
  626. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/SKILL.md +0 -6
  627. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/bmad-skill-manifest.yaml +0 -1
  628. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-01-understand.md +0 -185
  629. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-02-investigate.md +0 -140
  630. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-03-generate.md +0 -123
  631. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/steps/step-04-review.md +0 -195
  632. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/tech-spec-template.md +0 -74
  633. package/_bmad/bmm/workflows/bmad-quick-flow/bmad-quick-spec/workflow.md +0 -73
  634. package/_bmad/core/config.yaml +0 -9
  635. package/_bmad/core/module-help.csv +0 -11
  636. package/_bmad/core/skills/bmad-advanced-elicitation/SKILL.md +0 -6
  637. package/_bmad/core/skills/bmad-advanced-elicitation/bmad-skill-manifest.yaml +0 -1
  638. package/_bmad/core/skills/bmad-advanced-elicitation/methods.csv +0 -51
  639. package/_bmad/core/skills/bmad-advanced-elicitation/workflow.md +0 -135
  640. package/_bmad/core/skills/bmad-brainstorming/SKILL.md +0 -6
  641. package/_bmad/core/skills/bmad-brainstorming/bmad-skill-manifest.yaml +0 -1
  642. package/_bmad/core/skills/bmad-brainstorming/brain-methods.csv +0 -62
  643. package/_bmad/core/skills/bmad-brainstorming/steps/step-01-session-setup.md +0 -214
  644. package/_bmad/core/skills/bmad-brainstorming/steps/step-01b-continue.md +0 -124
  645. package/_bmad/core/skills/bmad-brainstorming/steps/step-02a-user-selected.md +0 -229
  646. package/_bmad/core/skills/bmad-brainstorming/steps/step-02b-ai-recommended.md +0 -239
  647. package/_bmad/core/skills/bmad-brainstorming/steps/step-02c-random-selection.md +0 -211
  648. package/_bmad/core/skills/bmad-brainstorming/steps/step-02d-progressive-flow.md +0 -266
  649. package/_bmad/core/skills/bmad-brainstorming/steps/step-03-technique-execution.md +0 -401
  650. package/_bmad/core/skills/bmad-brainstorming/steps/step-04-idea-organization.md +0 -305
  651. package/_bmad/core/skills/bmad-brainstorming/template.md +0 -15
  652. package/_bmad/core/skills/bmad-brainstorming/workflow.md +0 -53
  653. package/_bmad/core/skills/bmad-distillator/SKILL.md +0 -178
  654. package/_bmad/core/skills/bmad-distillator/agents/distillate-compressor.md +0 -116
  655. package/_bmad/core/skills/bmad-distillator/agents/round-trip-reconstructor.md +0 -68
  656. package/_bmad/core/skills/bmad-distillator/bmad-skill-manifest.yaml +0 -15
  657. package/_bmad/core/skills/bmad-distillator/resources/compression-rules.md +0 -51
  658. package/_bmad/core/skills/bmad-distillator/resources/distillate-format-reference.md +0 -227
  659. package/_bmad/core/skills/bmad-distillator/resources/splitting-strategy.md +0 -78
  660. package/_bmad/core/skills/bmad-distillator/scripts/analyze_sources.py +0 -300
  661. package/_bmad/core/skills/bmad-distillator/scripts/tests/test_analyze_sources.py +0 -204
  662. package/_bmad/core/skills/bmad-editorial-review-prose/SKILL.md +0 -6
  663. package/_bmad/core/skills/bmad-editorial-review-prose/bmad-skill-manifest.yaml +0 -1
  664. package/_bmad/core/skills/bmad-editorial-review-prose/workflow.md +0 -81
  665. package/_bmad/core/skills/bmad-editorial-review-structure/SKILL.md +0 -6
  666. package/_bmad/core/skills/bmad-editorial-review-structure/bmad-skill-manifest.yaml +0 -1
  667. package/_bmad/core/skills/bmad-editorial-review-structure/workflow.md +0 -174
  668. package/_bmad/core/skills/bmad-help/SKILL.md +0 -6
  669. package/_bmad/core/skills/bmad-help/bmad-skill-manifest.yaml +0 -1
  670. package/_bmad/core/skills/bmad-help/workflow.md +0 -88
  671. package/_bmad/core/skills/bmad-index-docs/SKILL.md +0 -6
  672. package/_bmad/core/skills/bmad-index-docs/bmad-skill-manifest.yaml +0 -1
  673. package/_bmad/core/skills/bmad-index-docs/workflow.md +0 -61
  674. package/_bmad/core/skills/bmad-party-mode/SKILL.md +0 -6
  675. package/_bmad/core/skills/bmad-party-mode/bmad-skill-manifest.yaml +0 -1
  676. package/_bmad/core/skills/bmad-party-mode/steps/step-01-agent-loading.md +0 -138
  677. package/_bmad/core/skills/bmad-party-mode/steps/step-02-discussion-orchestration.md +0 -187
  678. package/_bmad/core/skills/bmad-party-mode/steps/step-03-graceful-exit.md +0 -167
  679. package/_bmad/core/skills/bmad-party-mode/workflow.md +0 -190
  680. package/_bmad/core/skills/bmad-review-adversarial-general/SKILL.md +0 -6
  681. package/_bmad/core/skills/bmad-review-adversarial-general/bmad-skill-manifest.yaml +0 -1
  682. package/_bmad/core/skills/bmad-review-adversarial-general/workflow.md +0 -32
  683. package/_bmad/core/skills/bmad-review-edge-case-hunter/SKILL.md +0 -6
  684. package/_bmad/core/skills/bmad-review-edge-case-hunter/bmad-skill-manifest.yaml +0 -1
  685. package/_bmad/core/skills/bmad-review-edge-case-hunter/workflow.md +0 -62
  686. package/_bmad/core/skills/bmad-shard-doc/SKILL.md +0 -6
  687. package/_bmad/core/skills/bmad-shard-doc/bmad-skill-manifest.yaml +0 -1
  688. package/_bmad/core/skills/bmad-shard-doc/workflow.md +0 -100
  689. package/_bmad/core/tasks/bmad-create-prd/SKILL.md +0 -6
  690. package/_bmad/core/tasks/bmad-create-prd/bmad-skill-manifest.yaml +0 -1
  691. package/_bmad/core/tasks/bmad-create-prd/data/domain-complexity.csv +0 -15
  692. package/_bmad/core/tasks/bmad-create-prd/data/prd-purpose.md +0 -197
  693. package/_bmad/core/tasks/bmad-create-prd/data/project-types.csv +0 -11
  694. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-01-init.md +0 -178
  695. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-01b-continue.md +0 -161
  696. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-02-discovery.md +0 -208
  697. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-02b-vision.md +0 -142
  698. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-02c-executive-summary.md +0 -158
  699. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-03-success.md +0 -214
  700. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-04-journeys.md +0 -201
  701. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-05-domain.md +0 -194
  702. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-06-innovation.md +0 -211
  703. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-07-project-type.md +0 -222
  704. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-08-scoping.md +0 -216
  705. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-09-functional.md +0 -219
  706. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-10-nonfunctional.md +0 -230
  707. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-11-polish.md +0 -221
  708. package/_bmad/core/tasks/bmad-create-prd/steps-c/step-12-complete.md +0 -115
  709. package/_bmad/core/tasks/bmad-create-prd/templates/prd-template.md +0 -10
  710. package/_bmad/core/tasks/bmad-create-prd/workflow.md +0 -62
  711. package/_bmad/tea/agents/tea.md +0 -63
  712. package/_bmad/tea/config.yaml +0 -25
  713. package/_bmad/tea/module-help.csv +0 -10
  714. package/_bmad/tea/teams/default-party.csv +0 -2
  715. package/_bmad/tea/testarch/knowledge/adr-quality-readiness-checklist.md +0 -377
  716. package/_bmad/tea/testarch/knowledge/api-request.md +0 -563
  717. package/_bmad/tea/testarch/knowledge/api-testing-patterns.md +0 -915
  718. package/_bmad/tea/testarch/knowledge/auth-session.md +0 -548
  719. package/_bmad/tea/testarch/knowledge/burn-in.md +0 -273
  720. package/_bmad/tea/testarch/knowledge/ci-burn-in.md +0 -717
  721. package/_bmad/tea/testarch/knowledge/component-tdd.md +0 -486
  722. package/_bmad/tea/testarch/knowledge/contract-testing.md +0 -1050
  723. package/_bmad/tea/testarch/knowledge/data-factories.md +0 -500
  724. package/_bmad/tea/testarch/knowledge/email-auth.md +0 -721
  725. package/_bmad/tea/testarch/knowledge/error-handling.md +0 -725
  726. package/_bmad/tea/testarch/knowledge/feature-flags.md +0 -750
  727. package/_bmad/tea/testarch/knowledge/file-utils.md +0 -456
  728. package/_bmad/tea/testarch/knowledge/fixture-architecture.md +0 -401
  729. package/_bmad/tea/testarch/knowledge/fixtures-composition.md +0 -382
  730. package/_bmad/tea/testarch/knowledge/intercept-network-call.md +0 -426
  731. package/_bmad/tea/testarch/knowledge/log.md +0 -426
  732. package/_bmad/tea/testarch/knowledge/network-error-monitor.md +0 -401
  733. package/_bmad/tea/testarch/knowledge/network-first.md +0 -486
  734. package/_bmad/tea/testarch/knowledge/network-recorder.md +0 -527
  735. package/_bmad/tea/testarch/knowledge/nfr-criteria.md +0 -670
  736. package/_bmad/tea/testarch/knowledge/overview.md +0 -286
  737. package/_bmad/tea/testarch/knowledge/pact-consumer-di.md +0 -310
  738. package/_bmad/tea/testarch/knowledge/pact-consumer-framework-setup.md +0 -635
  739. package/_bmad/tea/testarch/knowledge/pact-mcp.md +0 -204
  740. package/_bmad/tea/testarch/knowledge/pactjs-utils-consumer-helpers.md +0 -270
  741. package/_bmad/tea/testarch/knowledge/pactjs-utils-overview.md +0 -216
  742. package/_bmad/tea/testarch/knowledge/pactjs-utils-provider-verifier.md +0 -315
  743. package/_bmad/tea/testarch/knowledge/pactjs-utils-request-filter.md +0 -224
  744. package/_bmad/tea/testarch/knowledge/playwright-cli.md +0 -165
  745. package/_bmad/tea/testarch/knowledge/playwright-config.md +0 -730
  746. package/_bmad/tea/testarch/knowledge/probability-impact.md +0 -601
  747. package/_bmad/tea/testarch/knowledge/recurse.md +0 -421
  748. package/_bmad/tea/testarch/knowledge/risk-governance.md +0 -615
  749. package/_bmad/tea/testarch/knowledge/selective-testing.md +0 -732
  750. package/_bmad/tea/testarch/knowledge/selector-resilience.md +0 -527
  751. package/_bmad/tea/testarch/knowledge/test-healing-patterns.md +0 -644
  752. package/_bmad/tea/testarch/knowledge/test-levels-framework.md +0 -473
  753. package/_bmad/tea/testarch/knowledge/test-priorities-matrix.md +0 -373
  754. package/_bmad/tea/testarch/knowledge/test-quality.md +0 -664
  755. package/_bmad/tea/testarch/knowledge/timing-debugging.md +0 -372
  756. package/_bmad/tea/testarch/knowledge/visual-debugging.md +0 -524
  757. package/_bmad/tea/testarch/tea-index.csv +0 -43
  758. package/_bmad/tea/workflows/testarch/README.md +0 -74
  759. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/SKILL.md +0 -6
  760. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/bmad-skill-manifest.yaml +0 -1
  761. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/checklist.md +0 -197
  762. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/curriculum.yaml +0 -129
  763. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/quiz-questions.yaml +0 -206
  764. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/role-paths.yaml +0 -136
  765. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/session-content-map.yaml +0 -207
  766. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/data/tea-resources-index.yaml +0 -359
  767. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/instructions.md +0 -130
  768. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-01-init.md +0 -235
  769. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-01b-continue.md +0 -147
  770. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-02-assess.md +0 -258
  771. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-03-session-menu.md +0 -219
  772. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-01.md +0 -460
  773. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-02.md +0 -465
  774. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-03.md +0 -301
  775. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-04.md +0 -234
  776. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-05.md +0 -234
  777. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-06.md +0 -209
  778. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-04-session-07.md +0 -212
  779. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-c/step-05-completion.md +0 -339
  780. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-e/step-e-01-assess-workflow.md +0 -141
  781. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-e/step-e-02-apply-edits.md +0 -122
  782. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/steps-v/step-v-01-validate.md +0 -263
  783. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/templates/certificate-template.md +0 -86
  784. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/templates/progress-template.yaml +0 -95
  785. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/templates/session-notes-template.md +0 -83
  786. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/workflow-plan-teach-me-testing.md +0 -950
  787. package/_bmad/tea/workflows/testarch/bmad-teach-me-testing/workflow.md +0 -90
  788. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/SKILL.md +0 -6
  789. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/atdd-checklist-template.md +0 -371
  790. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/bmad-skill-manifest.yaml +0 -1
  791. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/checklist.md +0 -374
  792. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/instructions.md +0 -45
  793. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-01-preflight-and-context.md +0 -226
  794. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-01b-resume.md +0 -96
  795. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-02-generation-mode.md +0 -125
  796. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-03-test-strategy.md +0 -110
  797. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-04-generate-tests.md +0 -334
  798. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-04a-subagent-api-failing.md +0 -286
  799. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-04b-subagent-e2e-failing.md +0 -244
  800. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-04c-aggregate.md +0 -370
  801. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-c/step-05-validate-and-complete.md +0 -106
  802. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-e/step-01-assess.md +0 -65
  803. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-e/step-02-apply-edit.md +0 -60
  804. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/steps-v/step-01-validate.md +0 -67
  805. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/validation-report-20260127-095021.md +0 -73
  806. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/validation-report-20260127-102401.md +0 -116
  807. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/workflow-plan.md +0 -21
  808. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/workflow.md +0 -41
  809. package/_bmad/tea/workflows/testarch/bmad-testarch-atdd/workflow.yaml +0 -46
  810. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/SKILL.md +0 -6
  811. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/bmad-skill-manifest.yaml +0 -1
  812. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/checklist.md +0 -611
  813. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/instructions.md +0 -50
  814. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-01-preflight-and-context.md +0 -237
  815. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-01b-resume.md +0 -94
  816. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-02-identify-targets.md +0 -169
  817. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03-generate-tests.md +0 -394
  818. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03a-subagent-api.md +0 -263
  819. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03b-subagent-backend.md +0 -246
  820. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03b-subagent-e2e.md +0 -213
  821. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-03c-aggregate.md +0 -393
  822. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-c/step-04-validate-and-summarize.md +0 -106
  823. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-e/step-01-assess.md +0 -65
  824. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-e/step-02-apply-edit.md +0 -60
  825. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/steps-v/step-01-validate.md +0 -67
  826. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/validation-report-20260127-095021.md +0 -72
  827. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/validation-report-20260127-102401.md +0 -114
  828. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/workflow-plan.md +0 -20
  829. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/workflow.md +0 -41
  830. package/_bmad/tea/workflows/testarch/bmad-testarch-automate/workflow.yaml +0 -53
  831. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/SKILL.md +0 -6
  832. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/azure-pipelines-template.yaml +0 -155
  833. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/bmad-skill-manifest.yaml +0 -1
  834. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/checklist.md +0 -289
  835. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/github-actions-template.yaml +0 -328
  836. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/gitlab-ci-template.yaml +0 -158
  837. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/harness-pipeline-template.yaml +0 -159
  838. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/instructions.md +0 -45
  839. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/jenkins-pipeline-template.groovy +0 -129
  840. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-01-preflight.md +0 -158
  841. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-01b-resume.md +0 -110
  842. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-02-generate-pipeline.md +0 -279
  843. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-03-configure-quality-gates.md +0 -135
  844. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-c/step-04-validate-and-summary.md +0 -92
  845. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-e/step-01-assess.md +0 -65
  846. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-e/step-02-apply-edit.md +0 -60
  847. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/steps-v/step-01-validate.md +0 -81
  848. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/validation-report-20260127-095021.md +0 -72
  849. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/validation-report-20260127-102401.md +0 -114
  850. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/workflow-plan.md +0 -20
  851. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/workflow.md +0 -41
  852. package/_bmad/tea/workflows/testarch/bmad-testarch-ci/workflow.yaml +0 -48
  853. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/SKILL.md +0 -6
  854. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/bmad-skill-manifest.yaml +0 -1
  855. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/checklist.md +0 -345
  856. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/instructions.md +0 -45
  857. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-01-preflight.md +0 -132
  858. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-01b-resume.md +0 -116
  859. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-02-select-framework.md +0 -117
  860. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-03-scaffold-framework.md +0 -323
  861. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-04-docs-and-scripts.md +0 -105
  862. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-c/step-05-validate-and-summary.md +0 -93
  863. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-e/step-01-assess.md +0 -65
  864. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-e/step-02-apply-edit.md +0 -60
  865. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/steps-v/step-01-validate.md +0 -67
  866. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/validation-report-20260127-095021.md +0 -73
  867. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/validation-report-20260127-102401.md +0 -116
  868. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/workflow-plan.md +0 -22
  869. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/workflow.md +0 -41
  870. package/_bmad/tea/workflows/testarch/bmad-testarch-framework/workflow.yaml +0 -48
  871. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/SKILL.md +0 -6
  872. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/bmad-skill-manifest.yaml +0 -1
  873. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/checklist.md +0 -407
  874. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/instructions.md +0 -43
  875. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/nfr-report-template.md +0 -470
  876. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-01-load-context.md +0 -138
  877. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-01b-resume.md +0 -106
  878. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-02-define-thresholds.md +0 -107
  879. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-03-gather-evidence.md +0 -108
  880. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04-evaluate-and-score.md +0 -254
  881. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04a-subagent-security.md +0 -138
  882. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04b-subagent-performance.md +0 -84
  883. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04c-subagent-reliability.md +0 -85
  884. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04d-subagent-scalability.md +0 -88
  885. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-04e-aggregate-nfr.md +0 -264
  886. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-c/step-05-generate-report.md +0 -108
  887. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-e/step-01-assess.md +0 -65
  888. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-e/step-02-apply-edit.md +0 -60
  889. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/steps-v/step-01-validate.md +0 -67
  890. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/validation-report-20260127-095021.md +0 -73
  891. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/validation-report-20260127-102401.md +0 -116
  892. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/workflow-plan.md +0 -19
  893. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/workflow.md +0 -41
  894. package/_bmad/tea/workflows/testarch/bmad-testarch-nfr/workflow.yaml +0 -48
  895. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/SKILL.md +0 -6
  896. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/bmad-skill-manifest.yaml +0 -1
  897. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/checklist.md +0 -464
  898. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/instructions.md +0 -105
  899. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-01-detect-mode.md +0 -134
  900. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-01b-resume.md +0 -102
  901. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-02-load-context.md +0 -242
  902. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-03-risk-and-testability.md +0 -110
  903. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-04-coverage-plan.md +0 -123
  904. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-c/step-05-generate-output.md +0 -222
  905. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-e/step-01-assess.md +0 -65
  906. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-e/step-02-apply-edit.md +0 -60
  907. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/steps-v/step-01-validate.md +0 -67
  908. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/test-design-architecture-template.md +0 -230
  909. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/test-design-handoff-template.md +0 -70
  910. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/test-design-qa-template.md +0 -396
  911. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/test-design-template.md +0 -344
  912. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/validation-report-20260127-095021.md +0 -73
  913. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/validation-report-20260127-102401.md +0 -116
  914. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/workflow-plan.md +0 -22
  915. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/workflow.md +0 -41
  916. package/_bmad/tea/workflows/testarch/bmad-testarch-test-design/workflow.yaml +0 -77
  917. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/SKILL.md +0 -6
  918. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/bmad-skill-manifest.yaml +0 -1
  919. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/checklist.md +0 -475
  920. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/instructions.md +0 -45
  921. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-01-load-context.md +0 -197
  922. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-01b-resume.md +0 -104
  923. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-02-discover-tests.md +0 -113
  924. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03-quality-evaluation.md +0 -274
  925. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03a-subagent-determinism.md +0 -214
  926. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03b-subagent-isolation.md +0 -125
  927. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03c-subagent-maintainability.md +0 -102
  928. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03e-subagent-performance.md +0 -117
  929. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-03f-aggregate-scores.md +0 -277
  930. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-c/step-04-generate-report.md +0 -111
  931. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-e/step-01-assess.md +0 -65
  932. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-e/step-02-apply-edit.md +0 -60
  933. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/steps-v/step-01-validate.md +0 -67
  934. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/test-review-template.md +0 -387
  935. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/validation-report-20260127-095021.md +0 -72
  936. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/validation-report-20260127-102401.md +0 -114
  937. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/workflow-plan.md +0 -18
  938. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/workflow.md +0 -41
  939. package/_bmad/tea/workflows/testarch/bmad-testarch-test-review/workflow.yaml +0 -48
  940. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/SKILL.md +0 -6
  941. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/bmad-skill-manifest.yaml +0 -1
  942. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/checklist.md +0 -647
  943. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/instructions.md +0 -43
  944. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-01-load-context.md +0 -105
  945. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-01b-resume.md +0 -102
  946. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-02-discover-tests.md +0 -112
  947. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-03-map-criteria.md +0 -97
  948. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-04-analyze-gaps.md +0 -421
  949. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-c/step-05-gate-decision.md +0 -266
  950. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-e/step-01-assess.md +0 -65
  951. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-e/step-02-apply-edit.md +0 -60
  952. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/steps-v/step-01-validate.md +0 -67
  953. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/trace-template.md +0 -708
  954. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/validation-report-20260127-095021.md +0 -73
  955. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/validation-report-20260127-102401.md +0 -116
  956. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/workflow-plan.md +0 -21
  957. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/workflow.md +0 -41
  958. package/_bmad/tea/workflows/testarch/bmad-testarch-trace/workflow.yaml +0 -56
  959. package/eslint.config.js +0 -38
  960. package/packages/client/index.html +0 -12
  961. package/packages/client/package.json +0 -46
  962. package/packages/client/src/app.tsx +0 -57
  963. package/packages/client/src/features/about/AboutPage.tsx +0 -144
  964. package/packages/client/src/features/agents/AgentCard.tsx +0 -52
  965. package/packages/client/src/features/agents/AgentDetail.tsx +0 -338
  966. package/packages/client/src/features/agents/AgentOverrideEditor.tsx +0 -127
  967. package/packages/client/src/features/agents/AgentsPage.tsx +0 -114
  968. package/packages/client/src/features/agents/EditAgentDialog.tsx +0 -260
  969. package/packages/client/src/features/agents/SkillAssignment.tsx +0 -153
  970. package/packages/client/src/features/agents/use-agent-detail.ts +0 -17
  971. package/packages/client/src/features/agents/use-agent-mutations.ts +0 -47
  972. package/packages/client/src/features/agents/use-agents.ts +0 -17
  973. package/packages/client/src/features/connections/ConnectionsPage.tsx +0 -165
  974. package/packages/client/src/features/files/FilesPage.tsx +0 -177
  975. package/packages/client/src/features/outputs/OutputsPage.tsx +0 -190
  976. package/packages/client/src/features/overview/OverviewPage.tsx +0 -282
  977. package/packages/client/src/features/packages/EditModuleDialog.tsx +0 -118
  978. package/packages/client/src/features/packages/PackagesPage.tsx +0 -982
  979. package/packages/client/src/features/settings/SettingsPage.tsx +0 -141
  980. package/packages/client/src/features/settings/use-settings.ts +0 -34
  981. package/packages/client/src/features/skills/CreateSkillDialog.tsx +0 -328
  982. package/packages/client/src/features/skills/SkillDetailSlideOver.tsx +0 -179
  983. package/packages/client/src/features/skills/SkillsPage.tsx +0 -142
  984. package/packages/client/src/features/skills/use-skills.ts +0 -27
  985. package/packages/client/src/features/teams/CreateTeamDialog.tsx +0 -239
  986. package/packages/client/src/features/teams/TeamDetailPanel.tsx +0 -549
  987. package/packages/client/src/features/teams/TeamsPage.tsx +0 -196
  988. package/packages/client/src/features/teams/use-teams.ts +0 -39
  989. package/packages/client/src/features/workflows/CreateWorkflowDialog.tsx +0 -395
  990. package/packages/client/src/features/workflows/EditWorkflowDialog.tsx +0 -131
  991. package/packages/client/src/features/workflows/WorkflowDetailPanel.tsx +0 -503
  992. package/packages/client/src/features/workflows/WorkflowGraph.tsx +0 -108
  993. package/packages/client/src/features/workflows/WorkflowsPage.tsx +0 -277
  994. package/packages/client/src/features/workflows/use-workflows.ts +0 -27
  995. package/packages/client/src/features/workspace/WorkspacePage.tsx +0 -304
  996. package/packages/client/src/globals.css +0 -184
  997. package/packages/client/src/hooks/use-detail-param.ts +0 -31
  998. package/packages/client/src/hooks/use-file-save.ts +0 -22
  999. package/packages/client/src/hooks/use-websocket.ts +0 -38
  1000. package/packages/client/src/layout/AppShell.tsx +0 -20
  1001. package/packages/client/src/layout/Breadcrumbs.tsx +0 -52
  1002. package/packages/client/src/layout/NotificationProvider.tsx +0 -95
  1003. package/packages/client/src/layout/Sidebar.tsx +0 -176
  1004. package/packages/client/src/lib/theme.ts +0 -30
  1005. package/packages/client/src/lib/websocket-client.ts +0 -97
  1006. package/packages/client/src/main.tsx +0 -14
  1007. package/packages/client/src/shared/CommandPalette.tsx +0 -151
  1008. package/packages/client/src/shared/CsvViewer.tsx +0 -120
  1009. package/packages/client/src/shared/EmptyState.tsx +0 -20
  1010. package/packages/client/src/shared/EntityPageHeader.tsx +0 -95
  1011. package/packages/client/src/shared/FilepathLink.tsx +0 -22
  1012. package/packages/client/src/shared/Skeleton.tsx +0 -31
  1013. package/packages/client/src/shared/SlideOver.tsx +0 -63
  1014. package/packages/client/src/shared/VocabularyHelper.tsx +0 -48
  1015. package/packages/client/src/shared/diff-viewer/DiffViewer.tsx +0 -93
  1016. package/packages/client/src/shared/markdown-editor/CodeMirrorEditor.tsx +0 -199
  1017. package/packages/client/src/shared/markdown-editor/MarkdownEditor.tsx +0 -95
  1018. package/packages/client/src/stores/ui-store.ts +0 -13
  1019. package/packages/client/tsconfig.json +0 -13
  1020. package/packages/client/vite.config.ts +0 -20
  1021. package/packages/server/package.json +0 -30
  1022. package/packages/server/src/app.test.ts +0 -89
  1023. package/packages/server/src/app.ts +0 -101
  1024. package/packages/server/src/core/errors.test.ts +0 -49
  1025. package/packages/server/src/core/errors.ts +0 -62
  1026. package/packages/server/src/core/file-store.test.ts +0 -104
  1027. package/packages/server/src/core/file-store.ts +0 -209
  1028. package/packages/server/src/core/project-detector.test.ts +0 -94
  1029. package/packages/server/src/core/project-detector.ts +0 -97
  1030. package/packages/server/src/core/websocket.test.ts +0 -80
  1031. package/packages/server/src/core/websocket.ts +0 -47
  1032. package/packages/server/src/core/write-service.test.ts +0 -87
  1033. package/packages/server/src/core/write-service.ts +0 -75
  1034. package/packages/server/src/index.ts +0 -97
  1035. package/packages/server/src/parsers/agent-parser.test.ts +0 -71
  1036. package/packages/server/src/parsers/agent-parser.ts +0 -83
  1037. package/packages/server/src/parsers/config-parser.test.ts +0 -65
  1038. package/packages/server/src/parsers/config-parser.ts +0 -51
  1039. package/packages/server/src/parsers/csv-parser.test.ts +0 -53
  1040. package/packages/server/src/parsers/csv-parser.ts +0 -55
  1041. package/packages/server/src/parsers/ide-config-parser.test.ts +0 -35
  1042. package/packages/server/src/parsers/ide-config-parser.ts +0 -37
  1043. package/packages/server/src/parsers/index-builder.test.ts +0 -78
  1044. package/packages/server/src/parsers/index-builder.ts +0 -195
  1045. package/packages/server/src/parsers/package-parser.test.ts +0 -36
  1046. package/packages/server/src/parsers/package-parser.ts +0 -34
  1047. package/packages/server/src/parsers/skill-parser.test.ts +0 -51
  1048. package/packages/server/src/parsers/skill-parser.ts +0 -26
  1049. package/packages/server/src/parsers/team-parser.test.ts +0 -186
  1050. package/packages/server/src/parsers/team-parser.ts +0 -128
  1051. package/packages/server/src/parsers/workflow-parser.test.ts +0 -415
  1052. package/packages/server/src/parsers/workflow-parser.ts +0 -311
  1053. package/packages/server/src/plugins/agents-plugin.test.ts +0 -111
  1054. package/packages/server/src/plugins/agents-plugin.ts +0 -164
  1055. package/packages/server/src/plugins/files-plugin.test.ts +0 -121
  1056. package/packages/server/src/plugins/files-plugin.ts +0 -93
  1057. package/packages/server/src/plugins/modules-plugin.test.ts +0 -264
  1058. package/packages/server/src/plugins/modules-plugin.ts +0 -386
  1059. package/packages/server/src/plugins/outputs-plugin.test.ts +0 -89
  1060. package/packages/server/src/plugins/outputs-plugin.ts +0 -93
  1061. package/packages/server/src/plugins/overview-plugin.ts +0 -73
  1062. package/packages/server/src/plugins/search-plugin.ts +0 -63
  1063. package/packages/server/src/plugins/settings-plugin.test.ts +0 -82
  1064. package/packages/server/src/plugins/settings-plugin.ts +0 -46
  1065. package/packages/server/src/plugins/skills-plugin.ts +0 -87
  1066. package/packages/server/src/plugins/teams-plugin.test.ts +0 -157
  1067. package/packages/server/src/plugins/teams-plugin.ts +0 -198
  1068. package/packages/server/src/plugins/validation-plugin.test.ts +0 -229
  1069. package/packages/server/src/plugins/validation-plugin.ts +0 -116
  1070. package/packages/server/src/plugins/workflows-plugin.test.ts +0 -145
  1071. package/packages/server/src/plugins/workflows-plugin.ts +0 -270
  1072. package/packages/server/src/static.ts +0 -29
  1073. package/packages/server/tsconfig.json +0 -8
  1074. package/packages/shared/package.json +0 -20
  1075. package/packages/shared/tsconfig.json +0 -8
  1076. package/tsconfig.base.json +0 -19
  1077. package/vitest.config.ts +0 -7
@@ -1,725 +0,0 @@
1
- # Error Handling and Resilience Checks
2
-
3
- ## Principle
4
-
5
- Treat expected failures explicitly: intercept network errors, assert UI fallbacks (error messages visible, retries triggered), and use scoped exception handling to ignore known errors while catching regressions. Test retry/backoff logic by forcing sequential failures (500 → timeout → success) and validate telemetry logging. Log captured errors with context (request payload, user/session) but redact secrets to keep artifacts safe for sharing.
6
-
7
- ## Rationale
8
-
9
- Tests fail for two reasons: genuine bugs or poor error handling in the test itself. Without explicit error handling patterns, tests become noisy (uncaught exceptions cause false failures) or silent (swallowing all errors hides real bugs). Scoped exception handling (Cypress.on('uncaught:exception'), page.on('pageerror')) allows tests to ignore documented, expected errors while surfacing unexpected ones. Resilience testing (retry logic, graceful degradation) ensures applications handle failures gracefully in production.
10
-
11
- ## Pattern Examples
12
-
13
- ### Example 1: Scoped Exception Handling (Expected Errors Only)
14
-
15
- **Context**: Handle known errors (Network failures, expected 500s) without masking unexpected bugs.
16
-
17
- **Implementation**:
18
-
19
- ```typescript
20
- // tests/e2e/error-handling.spec.ts
21
- import { test, expect } from '@playwright/test';
22
-
23
- /**
24
- * Scoped Error Handling Pattern
25
- * - Only ignore specific, documented errors
26
- * - Rethrow everything else to catch regressions
27
- * - Validate error UI and user experience
28
- */
29
-
30
- test.describe('API Error Handling', () => {
31
- test('should display error message when API returns 500', async ({ page }) => {
32
- // Scope error handling to THIS test only
33
- const consoleErrors: string[] = [];
34
- page.on('pageerror', (error) => {
35
- // Only swallow documented NetworkError
36
- if (error.message.includes('NetworkError: Failed to fetch')) {
37
- consoleErrors.push(error.message);
38
- return; // Swallow this specific error
39
- }
40
- // Rethrow all other errors (catch regressions!)
41
- throw error;
42
- });
43
-
44
- // Arrange: Mock 500 error response
45
- await page.route('**/api/users', (route) =>
46
- route.fulfill({
47
- status: 500,
48
- contentType: 'application/json',
49
- body: JSON.stringify({
50
- error: 'Internal server error',
51
- code: 'INTERNAL_ERROR',
52
- }),
53
- }),
54
- );
55
-
56
- // Act: Navigate to page that fetches users
57
- await page.goto('/dashboard');
58
-
59
- // Assert: Error UI displayed
60
- await expect(page.getByTestId('error-message')).toBeVisible();
61
- await expect(page.getByTestId('error-message')).toContainText(/error.*loading|failed.*load/i);
62
-
63
- // Assert: Retry button visible
64
- await expect(page.getByTestId('retry-button')).toBeVisible();
65
-
66
- // Assert: NetworkError was thrown and caught
67
- expect(consoleErrors).toContainEqual(expect.stringContaining('NetworkError'));
68
- });
69
-
70
- test('should NOT swallow unexpected errors', async ({ page }) => {
71
- let unexpectedError: Error | null = null;
72
-
73
- page.on('pageerror', (error) => {
74
- // Capture but don't swallow - test should fail
75
- unexpectedError = error;
76
- throw error;
77
- });
78
-
79
- // Arrange: App has JavaScript error (bug)
80
- await page.addInitScript(() => {
81
- // Simulate bug in app code
82
- (window as any).buggyFunction = () => {
83
- throw new Error('UNEXPECTED BUG: undefined is not a function');
84
- };
85
- });
86
-
87
- await page.goto('/dashboard');
88
-
89
- // Trigger buggy function
90
- await page.evaluate(() => (window as any).buggyFunction());
91
-
92
- // Assert: Test fails because unexpected error was NOT swallowed
93
- expect(unexpectedError).not.toBeNull();
94
- expect(unexpectedError?.message).toContain('UNEXPECTED BUG');
95
- });
96
- });
97
- ```
98
-
99
- **Cypress equivalent**:
100
-
101
- ```javascript
102
- // cypress/e2e/error-handling.cy.ts
103
- describe('API Error Handling', () => {
104
- it('should display error message when API returns 500', () => {
105
- // Scoped to this test only
106
- cy.on('uncaught:exception', (err) => {
107
- // Only swallow documented NetworkError
108
- if (err.message.includes('NetworkError')) {
109
- return false; // Prevent test failure
110
- }
111
- // All other errors fail the test
112
- return true;
113
- });
114
-
115
- // Arrange: Mock 500 error
116
- cy.intercept('GET', '**/api/users', {
117
- statusCode: 500,
118
- body: {
119
- error: 'Internal server error',
120
- code: 'INTERNAL_ERROR',
121
- },
122
- }).as('getUsers');
123
-
124
- // Act
125
- cy.visit('/dashboard');
126
- cy.wait('@getUsers');
127
-
128
- // Assert: Error UI
129
- cy.get('[data-cy="error-message"]').should('be.visible');
130
- cy.get('[data-cy="error-message"]').should('contain', 'error loading');
131
- cy.get('[data-cy="retry-button"]').should('be.visible');
132
- });
133
-
134
- it('should NOT swallow unexpected errors', () => {
135
- // No exception handler - test should fail on unexpected errors
136
-
137
- cy.visit('/dashboard');
138
-
139
- // Trigger unexpected error
140
- cy.window().then((win) => {
141
- // This should fail the test
142
- win.eval('throw new Error("UNEXPECTED BUG")');
143
- });
144
-
145
- // Test fails (as expected) - validates error detection works
146
- });
147
- });
148
- ```
149
-
150
- **Key Points**:
151
-
152
- - **Scoped handling**: page.on() / cy.on() scoped to specific tests
153
- - **Explicit allow-list**: Only ignore documented errors
154
- - **Rethrow unexpected**: Catch regressions by failing on unknown errors
155
- - **Error UI validation**: Assert user sees error message
156
- - **Logging**: Capture errors for debugging, don't swallow silently
157
-
158
- ---
159
-
160
- ### Example 2: Retry Validation Pattern (Network Resilience)
161
-
162
- **Context**: Test that retry/backoff logic works correctly for transient failures.
163
-
164
- **Implementation**:
165
-
166
- ```typescript
167
- // tests/e2e/retry-resilience.spec.ts
168
- import { test, expect } from '@playwright/test';
169
-
170
- /**
171
- * Retry Validation Pattern
172
- * - Force sequential failures (500 → 500 → 200)
173
- * - Validate retry attempts and backoff timing
174
- * - Assert telemetry captures retry events
175
- */
176
-
177
- test.describe('Network Retry Logic', () => {
178
- test('should retry on 500 error and succeed', async ({ page }) => {
179
- let attemptCount = 0;
180
- const attemptTimestamps: number[] = [];
181
-
182
- // Mock API: Fail twice, succeed on third attempt
183
- await page.route('**/api/products', (route) => {
184
- attemptCount++;
185
- attemptTimestamps.push(Date.now());
186
-
187
- if (attemptCount <= 2) {
188
- // First 2 attempts: 500 error
189
- route.fulfill({
190
- status: 500,
191
- body: JSON.stringify({ error: 'Server error' }),
192
- });
193
- } else {
194
- // 3rd attempt: Success
195
- route.fulfill({
196
- status: 200,
197
- contentType: 'application/json',
198
- body: JSON.stringify({ products: [{ id: 1, name: 'Product 1' }] }),
199
- });
200
- }
201
- });
202
-
203
- // Act: Navigate (should retry automatically)
204
- await page.goto('/products');
205
-
206
- // Assert: Data eventually loads after retries
207
- await expect(page.getByTestId('product-list')).toBeVisible();
208
- await expect(page.getByTestId('product-item')).toHaveCount(1);
209
-
210
- // Assert: Exactly 3 attempts made
211
- expect(attemptCount).toBe(3);
212
-
213
- // Assert: Exponential backoff timing (1s → 2s between attempts)
214
- if (attemptTimestamps.length === 3) {
215
- const delay1 = attemptTimestamps[1] - attemptTimestamps[0];
216
- const delay2 = attemptTimestamps[2] - attemptTimestamps[1];
217
-
218
- expect(delay1).toBeGreaterThanOrEqual(900); // ~1 second
219
- expect(delay1).toBeLessThan(1200);
220
- expect(delay2).toBeGreaterThanOrEqual(1900); // ~2 seconds
221
- expect(delay2).toBeLessThan(2200);
222
- }
223
-
224
- // Assert: Telemetry logged retry events
225
- const telemetryEvents = await page.evaluate(() => (window as any).__TELEMETRY_EVENTS__ || []);
226
- expect(telemetryEvents).toContainEqual(
227
- expect.objectContaining({
228
- event: 'api_retry',
229
- attempt: 1,
230
- endpoint: '/api/products',
231
- }),
232
- );
233
- expect(telemetryEvents).toContainEqual(
234
- expect.objectContaining({
235
- event: 'api_retry',
236
- attempt: 2,
237
- }),
238
- );
239
- });
240
-
241
- test('should give up after max retries and show error', async ({ page }) => {
242
- let attemptCount = 0;
243
-
244
- // Mock API: Always fail (test retry limit)
245
- await page.route('**/api/products', (route) => {
246
- attemptCount++;
247
- route.fulfill({
248
- status: 500,
249
- body: JSON.stringify({ error: 'Persistent server error' }),
250
- });
251
- });
252
-
253
- // Act
254
- await page.goto('/products');
255
-
256
- // Assert: Max retries reached (3 attempts typical)
257
- expect(attemptCount).toBe(3);
258
-
259
- // Assert: Error UI displayed after exhausting retries
260
- await expect(page.getByTestId('error-message')).toBeVisible();
261
- await expect(page.getByTestId('error-message')).toContainText(/unable.*load|failed.*after.*retries/i);
262
-
263
- // Assert: Data not displayed
264
- await expect(page.getByTestId('product-list')).not.toBeVisible();
265
- });
266
-
267
- test('should NOT retry on 404 (non-retryable error)', async ({ page }) => {
268
- let attemptCount = 0;
269
-
270
- // Mock API: 404 error (should NOT retry)
271
- await page.route('**/api/products/999', (route) => {
272
- attemptCount++;
273
- route.fulfill({
274
- status: 404,
275
- body: JSON.stringify({ error: 'Product not found' }),
276
- });
277
- });
278
-
279
- await page.goto('/products/999');
280
-
281
- // Assert: Only 1 attempt (no retries on 404)
282
- expect(attemptCount).toBe(1);
283
-
284
- // Assert: 404 error displayed immediately
285
- await expect(page.getByTestId('not-found-message')).toBeVisible();
286
- });
287
- });
288
- ```
289
-
290
- **Cypress with retry interception**:
291
-
292
- ```javascript
293
- // cypress/e2e/retry-resilience.cy.ts
294
- describe('Network Retry Logic', () => {
295
- it('should retry on 500 and succeed on 3rd attempt', () => {
296
- let attemptCount = 0;
297
-
298
- cy.intercept('GET', '**/api/products', (req) => {
299
- attemptCount++;
300
-
301
- if (attemptCount <= 2) {
302
- req.reply({ statusCode: 500, body: { error: 'Server error' } });
303
- } else {
304
- req.reply({ statusCode: 200, body: { products: [{ id: 1, name: 'Product 1' }] } });
305
- }
306
- }).as('getProducts');
307
-
308
- cy.visit('/products');
309
-
310
- // Wait for final successful request
311
- cy.wait('@getProducts').its('response.statusCode').should('eq', 200);
312
-
313
- // Assert: Data loaded
314
- cy.get('[data-cy="product-list"]').should('be.visible');
315
- cy.get('[data-cy="product-item"]').should('have.length', 1);
316
-
317
- // Validate retry count
318
- cy.wrap(attemptCount).should('eq', 3);
319
- });
320
- });
321
- ```
322
-
323
- **Key Points**:
324
-
325
- - **Sequential failures**: Test retry logic with 500 → 500 → 200
326
- - **Backoff timing**: Validate exponential backoff delays
327
- - **Retry limits**: Max attempts enforced (typically 3)
328
- - **Non-retryable errors**: 404s don't trigger retries
329
- - **Telemetry**: Log retry attempts for monitoring
330
-
331
- ---
332
-
333
- ### Example 3: Telemetry Logging with Context (Sentry Integration)
334
-
335
- **Context**: Capture errors with full context for production debugging without exposing secrets.
336
-
337
- **Implementation**:
338
-
339
- ```typescript
340
- // tests/e2e/telemetry-logging.spec.ts
341
- import { test, expect } from '@playwright/test';
342
-
343
- /**
344
- * Telemetry Logging Pattern
345
- * - Log errors with request context
346
- * - Redact sensitive data (tokens, passwords, PII)
347
- * - Integrate with monitoring (Sentry, Datadog)
348
- * - Validate error logging without exposing secrets
349
- */
350
-
351
- type ErrorLog = {
352
- level: 'error' | 'warn' | 'info';
353
- message: string;
354
- context?: {
355
- endpoint?: string;
356
- method?: string;
357
- statusCode?: number;
358
- userId?: string;
359
- sessionId?: string;
360
- };
361
- timestamp: string;
362
- };
363
-
364
- test.describe('Error Telemetry', () => {
365
- test('should log API errors with context', async ({ page }) => {
366
- const errorLogs: ErrorLog[] = [];
367
-
368
- // Capture console errors
369
- page.on('console', (msg) => {
370
- if (msg.type() === 'error') {
371
- try {
372
- const log = JSON.parse(msg.text());
373
- errorLogs.push(log);
374
- } catch {
375
- // Not a structured log, ignore
376
- }
377
- }
378
- });
379
-
380
- // Mock failing API
381
- await page.route('**/api/orders', (route) =>
382
- route.fulfill({
383
- status: 500,
384
- body: JSON.stringify({ error: 'Payment processor unavailable' }),
385
- }),
386
- );
387
-
388
- // Act: Trigger error
389
- await page.goto('/checkout');
390
- await page.getByTestId('place-order').click();
391
-
392
- // Wait for error UI
393
- await expect(page.getByTestId('error-message')).toBeVisible();
394
-
395
- // Assert: Error logged with context
396
- expect(errorLogs).toContainEqual(
397
- expect.objectContaining({
398
- level: 'error',
399
- message: expect.stringContaining('API request failed'),
400
- context: expect.objectContaining({
401
- endpoint: '/api/orders',
402
- method: 'POST',
403
- statusCode: 500,
404
- userId: expect.any(String),
405
- }),
406
- }),
407
- );
408
-
409
- // Assert: Sensitive data NOT logged
410
- const logString = JSON.stringify(errorLogs);
411
- expect(logString).not.toContain('password');
412
- expect(logString).not.toContain('token');
413
- expect(logString).not.toContain('creditCard');
414
- });
415
-
416
- test('should send errors to Sentry with breadcrumbs', async ({ page }) => {
417
- const sentryEvents: any[] = [];
418
-
419
- // Mock Sentry SDK
420
- await page.addInitScript(() => {
421
- (window as any).Sentry = {
422
- captureException: (error: Error, context?: any) => {
423
- (window as any).__SENTRY_EVENTS__ = (window as any).__SENTRY_EVENTS__ || [];
424
- (window as any).__SENTRY_EVENTS__.push({
425
- error: error.message,
426
- context,
427
- timestamp: Date.now(),
428
- });
429
- },
430
- addBreadcrumb: (breadcrumb: any) => {
431
- (window as any).__SENTRY_BREADCRUMBS__ = (window as any).__SENTRY_BREADCRUMBS__ || [];
432
- (window as any).__SENTRY_BREADCRUMBS__.push(breadcrumb);
433
- },
434
- };
435
- });
436
-
437
- // Mock failing API
438
- await page.route('**/api/users', (route) => route.fulfill({ status: 403, body: { error: 'Forbidden' } }));
439
-
440
- // Act
441
- await page.goto('/users');
442
-
443
- // Assert: Sentry captured error
444
- const events = await page.evaluate(() => (window as any).__SENTRY_EVENTS__);
445
- expect(events).toHaveLength(1);
446
- expect(events[0]).toMatchObject({
447
- error: expect.stringContaining('403'),
448
- context: expect.objectContaining({
449
- endpoint: '/api/users',
450
- statusCode: 403,
451
- }),
452
- });
453
-
454
- // Assert: Breadcrumbs include user actions
455
- const breadcrumbs = await page.evaluate(() => (window as any).__SENTRY_BREADCRUMBS__);
456
- expect(breadcrumbs).toContainEqual(
457
- expect.objectContaining({
458
- category: 'navigation',
459
- message: '/users',
460
- }),
461
- );
462
- });
463
- });
464
- ```
465
-
466
- **Cypress with Sentry**:
467
-
468
- ```javascript
469
- // cypress/e2e/telemetry-logging.cy.ts
470
- describe('Error Telemetry', () => {
471
- it('should log API errors with redacted sensitive data', () => {
472
- const errorLogs = [];
473
-
474
- // Capture console errors
475
- cy.on('window:before:load', (win) => {
476
- cy.stub(win.console, 'error').callsFake((msg) => {
477
- errorLogs.push(msg);
478
- });
479
- });
480
-
481
- // Mock failing API
482
- cy.intercept('POST', '**/api/orders', {
483
- statusCode: 500,
484
- body: { error: 'Payment failed' },
485
- });
486
-
487
- // Act
488
- cy.visit('/checkout');
489
- cy.get('[data-cy="place-order"]').click();
490
-
491
- // Assert: Error logged
492
- cy.wrap(errorLogs).should('have.length.greaterThan', 0);
493
-
494
- // Assert: Context included
495
- cy.wrap(errorLogs[0]).should('include', '/api/orders');
496
-
497
- // Assert: Secrets redacted
498
- cy.wrap(JSON.stringify(errorLogs)).should('not.contain', 'password');
499
- cy.wrap(JSON.stringify(errorLogs)).should('not.contain', 'creditCard');
500
- });
501
- });
502
- ```
503
-
504
- **Error logger utility with redaction**:
505
-
506
- ```typescript
507
- // src/utils/error-logger.ts
508
- type ErrorContext = {
509
- endpoint?: string;
510
- method?: string;
511
- statusCode?: number;
512
- userId?: string;
513
- sessionId?: string;
514
- requestPayload?: any;
515
- };
516
-
517
- const SENSITIVE_KEYS = ['password', 'token', 'creditCard', 'ssn', 'apiKey'];
518
-
519
- /**
520
- * Redact sensitive data from objects
521
- */
522
- function redactSensitiveData(obj: any): any {
523
- if (typeof obj !== 'object' || obj === null) return obj;
524
-
525
- const redacted = { ...obj };
526
-
527
- for (const key of Object.keys(redacted)) {
528
- if (SENSITIVE_KEYS.some((sensitive) => key.toLowerCase().includes(sensitive))) {
529
- redacted[key] = '[REDACTED]';
530
- } else if (typeof redacted[key] === 'object') {
531
- redacted[key] = redactSensitiveData(redacted[key]);
532
- }
533
- }
534
-
535
- return redacted;
536
- }
537
-
538
- /**
539
- * Log error with context (Sentry integration)
540
- */
541
- export function logError(error: Error, context?: ErrorContext) {
542
- const safeContext = context ? redactSensitiveData(context) : {};
543
-
544
- const errorLog = {
545
- level: 'error' as const,
546
- message: error.message,
547
- stack: error.stack,
548
- context: safeContext,
549
- timestamp: new Date().toISOString(),
550
- };
551
-
552
- // Console (development)
553
- console.error(JSON.stringify(errorLog));
554
-
555
- // Sentry (production)
556
- if (typeof window !== 'undefined' && (window as any).Sentry) {
557
- (window as any).Sentry.captureException(error, {
558
- contexts: { custom: safeContext },
559
- });
560
- }
561
- }
562
- ```
563
-
564
- **Key Points**:
565
-
566
- - **Context-rich logging**: Endpoint, method, status, user ID
567
- - **Secret redaction**: Passwords, tokens, PII removed before logging
568
- - **Sentry integration**: Production monitoring with breadcrumbs
569
- - **Structured logs**: JSON format for easy parsing
570
- - **Test validation**: Assert logs contain context but not secrets
571
-
572
- ---
573
-
574
- ### Example 4: Graceful Degradation Tests (Fallback Behavior)
575
-
576
- **Context**: Validate application continues functioning when services are unavailable.
577
-
578
- **Implementation**:
579
-
580
- ```typescript
581
- // tests/e2e/graceful-degradation.spec.ts
582
- import { test, expect } from '@playwright/test';
583
-
584
- /**
585
- * Graceful Degradation Pattern
586
- * - Simulate service unavailability
587
- * - Validate fallback behavior
588
- * - Ensure user experience degrades gracefully
589
- * - Verify telemetry captures degradation events
590
- */
591
-
592
- test.describe('Service Unavailability', () => {
593
- test('should display cached data when API is down', async ({ page }) => {
594
- // Arrange: Seed localStorage with cached data
595
- await page.addInitScript(() => {
596
- localStorage.setItem(
597
- 'products_cache',
598
- JSON.stringify({
599
- data: [
600
- { id: 1, name: 'Cached Product 1' },
601
- { id: 2, name: 'Cached Product 2' },
602
- ],
603
- timestamp: Date.now(),
604
- }),
605
- );
606
- });
607
-
608
- // Mock API unavailable
609
- await page.route(
610
- '**/api/products',
611
- (route) => route.abort('connectionrefused'), // Simulate server down
612
- );
613
-
614
- // Act
615
- await page.goto('/products');
616
-
617
- // Assert: Cached data displayed
618
- await expect(page.getByTestId('product-list')).toBeVisible();
619
- await expect(page.getByText('Cached Product 1')).toBeVisible();
620
-
621
- // Assert: Stale data warning shown
622
- await expect(page.getByTestId('cache-warning')).toBeVisible();
623
- await expect(page.getByTestId('cache-warning')).toContainText(/showing.*cached|offline.*mode/i);
624
-
625
- // Assert: Retry button available
626
- await expect(page.getByTestId('refresh-button')).toBeVisible();
627
- });
628
-
629
- test('should show fallback UI when analytics service fails', async ({ page }) => {
630
- // Mock analytics service down (non-critical)
631
- await page.route('**/analytics/track', (route) => route.fulfill({ status: 503, body: 'Service unavailable' }));
632
-
633
- // Act: Navigate normally
634
- await page.goto('/dashboard');
635
-
636
- // Assert: Page loads successfully (analytics failure doesn't block)
637
- await expect(page.getByTestId('dashboard-content')).toBeVisible();
638
-
639
- // Assert: Analytics error logged but not shown to user
640
- const consoleErrors = [];
641
- page.on('console', (msg) => {
642
- if (msg.type() === 'error') consoleErrors.push(msg.text());
643
- });
644
-
645
- // Trigger analytics event
646
- await page.getByTestId('track-action-button').click();
647
-
648
- // Analytics error logged
649
- expect(consoleErrors).toContainEqual(expect.stringContaining('Analytics service unavailable'));
650
-
651
- // But user doesn't see error
652
- await expect(page.getByTestId('error-message')).not.toBeVisible();
653
- });
654
-
655
- test('should fallback to local validation when API is slow', async ({ page }) => {
656
- // Mock slow API (> 5 seconds)
657
- await page.route('**/api/validate-email', async (route) => {
658
- await new Promise((resolve) => setTimeout(resolve, 6000)); // 6 second delay
659
- route.fulfill({
660
- status: 200,
661
- body: JSON.stringify({ valid: true }),
662
- });
663
- });
664
-
665
- // Act: Fill form
666
- await page.goto('/signup');
667
- await page.getByTestId('email-input').fill('test@example.com');
668
- await page.getByTestId('email-input').blur();
669
-
670
- // Assert: Client-side validation triggers immediately (doesn't wait for API)
671
- await expect(page.getByTestId('email-valid-icon')).toBeVisible({ timeout: 1000 });
672
-
673
- // Assert: Eventually API validates too (but doesn't block UX)
674
- await expect(page.getByTestId('email-validated-badge')).toBeVisible({ timeout: 7000 });
675
- });
676
-
677
- test('should maintain functionality with third-party script failure', async ({ page }) => {
678
- // Block third-party scripts (Google Analytics, Intercom, etc.)
679
- await page.route('**/*.google-analytics.com/**', (route) => route.abort());
680
- await page.route('**/*.intercom.io/**', (route) => route.abort());
681
-
682
- // Act
683
- await page.goto('/');
684
-
685
- // Assert: App works without third-party scripts
686
- await expect(page.getByTestId('main-content')).toBeVisible();
687
- await expect(page.getByTestId('nav-menu')).toBeVisible();
688
-
689
- // Assert: Core functionality intact
690
- await page.getByTestId('nav-products').click();
691
- await expect(page).toHaveURL(/.*\/products/);
692
- });
693
- });
694
- ```
695
-
696
- **Key Points**:
697
-
698
- - **Cached fallbacks**: Display stale data when API unavailable
699
- - **Non-critical degradation**: Analytics failures don't block app
700
- - **Client-side fallbacks**: Local validation when API slow
701
- - **Third-party resilience**: App works without external scripts
702
- - **User transparency**: Stale data warnings displayed
703
-
704
- ---
705
-
706
- ## Error Handling Testing Checklist
707
-
708
- Before shipping error handling code, verify:
709
-
710
- - [ ] **Scoped exception handling**: Only ignore documented errors (NetworkError, specific codes)
711
- - [ ] **Rethrow unexpected**: Unknown errors fail tests (catch regressions)
712
- - [ ] **Error UI tested**: User sees error messages for all error states
713
- - [ ] **Retry logic validated**: Sequential failures test backoff and max attempts
714
- - [ ] **Telemetry verified**: Errors logged with context (endpoint, status, user)
715
- - [ ] **Secret redaction**: Logs don't contain passwords, tokens, PII
716
- - [ ] **Graceful degradation**: Critical services down, app shows fallback UI
717
- - [ ] **Non-critical failures**: Analytics/tracking failures don't block app
718
-
719
- ## Integration Points
720
-
721
- - Used in workflows: `*automate` (error handling test generation), `*test-review` (error pattern detection)
722
- - Related fragments: `network-first.md`, `test-quality.md`, `contract-testing.md`
723
- - Monitoring tools: Sentry, Datadog, LogRocket
724
-
725
- _Source: Murat error-handling patterns, Pact resilience guidance, enterprise production error handling_