beth-copilot 1.0.18 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/CHANGELOG.md +79 -28
  2. package/README.md +127 -298
  3. package/assets/beth-questioning.png +0 -0
  4. package/assets/yellowstone-beth.png +0 -0
  5. package/bin/cli.js +124 -715
  6. package/dist/__tests__/inject-skills.test.d.ts +9 -0
  7. package/dist/__tests__/inject-skills.test.d.ts.map +1 -0
  8. package/dist/__tests__/inject-skills.test.js +143 -0
  9. package/dist/__tests__/inject-skills.test.js.map +1 -0
  10. package/dist/__tests__/skills/disambiguation.test.d.ts +10 -0
  11. package/dist/__tests__/skills/disambiguation.test.d.ts.map +1 -0
  12. package/dist/__tests__/skills/disambiguation.test.js +192 -0
  13. package/dist/__tests__/skills/disambiguation.test.js.map +1 -0
  14. package/dist/__tests__/skills/hook-injection.test.d.ts +11 -0
  15. package/dist/__tests__/skills/hook-injection.test.d.ts.map +1 -0
  16. package/dist/__tests__/skills/hook-injection.test.js +173 -0
  17. package/dist/__tests__/skills/hook-injection.test.js.map +1 -0
  18. package/dist/__tests__/skills/mapping-completeness.test.d.ts +17 -0
  19. package/dist/__tests__/skills/mapping-completeness.test.d.ts.map +1 -0
  20. package/dist/__tests__/skills/mapping-completeness.test.js +281 -0
  21. package/dist/__tests__/skills/mapping-completeness.test.js.map +1 -0
  22. package/dist/__tests__/skills/pipeline-integration.test.d.ts +18 -0
  23. package/dist/__tests__/skills/pipeline-integration.test.d.ts.map +1 -0
  24. package/dist/__tests__/skills/pipeline-integration.test.js +234 -0
  25. package/dist/__tests__/skills/pipeline-integration.test.js.map +1 -0
  26. package/dist/__tests__/skills/skill-routing.test.d.ts +15 -0
  27. package/dist/__tests__/skills/skill-routing.test.d.ts.map +1 -0
  28. package/dist/__tests__/skills/skill-routing.test.js +723 -0
  29. package/dist/__tests__/skills/skill-routing.test.js.map +1 -0
  30. package/dist/__tests__/skills/trigger-coverage.test.d.ts +24 -0
  31. package/dist/__tests__/skills/trigger-coverage.test.d.ts.map +1 -0
  32. package/dist/__tests__/skills/trigger-coverage.test.js +746 -0
  33. package/dist/__tests__/skills/trigger-coverage.test.js.map +1 -0
  34. package/dist/__tests__/smoke.test.d.ts +8 -0
  35. package/dist/__tests__/smoke.test.d.ts.map +1 -0
  36. package/dist/__tests__/smoke.test.js +62 -0
  37. package/dist/__tests__/smoke.test.js.map +1 -0
  38. package/dist/__tests__/verify-skills.test.d.ts +9 -0
  39. package/dist/__tests__/verify-skills.test.d.ts.map +1 -0
  40. package/dist/__tests__/verify-skills.test.js +78 -0
  41. package/dist/__tests__/verify-skills.test.js.map +1 -0
  42. package/dist/cli/commands/beads.e2e.test.d.ts +15 -0
  43. package/dist/cli/commands/beads.e2e.test.d.ts.map +1 -0
  44. package/dist/cli/commands/beads.e2e.test.js +585 -0
  45. package/dist/cli/commands/beads.e2e.test.js.map +1 -0
  46. package/dist/cli/commands/cli-edge-cases.e2e.test.d.ts +32 -0
  47. package/dist/cli/commands/cli-edge-cases.e2e.test.d.ts.map +1 -0
  48. package/dist/cli/commands/cli-edge-cases.e2e.test.js +162 -0
  49. package/dist/cli/commands/cli-edge-cases.e2e.test.js.map +1 -0
  50. package/dist/cli/commands/close.d.ts +54 -0
  51. package/dist/cli/commands/close.d.ts.map +1 -0
  52. package/dist/cli/commands/close.e2e.test.d.ts +11 -0
  53. package/dist/cli/commands/close.e2e.test.d.ts.map +1 -0
  54. package/dist/cli/commands/close.e2e.test.js +71 -0
  55. package/dist/cli/commands/close.e2e.test.js.map +1 -0
  56. package/dist/cli/commands/close.js +95 -0
  57. package/dist/cli/commands/close.js.map +1 -0
  58. package/dist/cli/commands/close.test.d.ts +13 -0
  59. package/dist/cli/commands/close.test.d.ts.map +1 -0
  60. package/dist/cli/commands/close.test.js +254 -0
  61. package/dist/cli/commands/close.test.js.map +1 -0
  62. package/dist/cli/commands/doctor.d.ts +7 -1
  63. package/dist/cli/commands/doctor.d.ts.map +1 -1
  64. package/dist/cli/commands/doctor.e2e.test.js +3 -59
  65. package/dist/cli/commands/doctor.e2e.test.js.map +1 -1
  66. package/dist/cli/commands/doctor.js +38 -18
  67. package/dist/cli/commands/doctor.js.map +1 -1
  68. package/dist/cli/commands/doctor.test.js +32 -25
  69. package/dist/cli/commands/doctor.test.js.map +1 -1
  70. package/dist/cli/commands/framework-isolation.test.d.ts +30 -0
  71. package/dist/cli/commands/framework-isolation.test.d.ts.map +1 -0
  72. package/dist/cli/commands/framework-isolation.test.js +118 -0
  73. package/dist/cli/commands/framework-isolation.test.js.map +1 -0
  74. package/dist/cli/commands/help.e2e.test.js +5 -9
  75. package/dist/cli/commands/help.e2e.test.js.map +1 -1
  76. package/dist/cli/commands/init-logic.e2e.test.d.ts +37 -0
  77. package/dist/cli/commands/init-logic.e2e.test.d.ts.map +1 -0
  78. package/dist/cli/commands/init-logic.e2e.test.js +315 -0
  79. package/dist/cli/commands/init-logic.e2e.test.js.map +1 -0
  80. package/dist/cli/commands/init.test.js +4 -21
  81. package/dist/cli/commands/init.test.js.map +1 -1
  82. package/dist/cli/commands/land.d.ts +130 -0
  83. package/dist/cli/commands/land.d.ts.map +1 -0
  84. package/dist/cli/commands/land.js +592 -0
  85. package/dist/cli/commands/land.js.map +1 -0
  86. package/dist/cli/commands/land.test.d.ts +19 -0
  87. package/dist/cli/commands/land.test.d.ts.map +1 -0
  88. package/dist/cli/commands/land.test.js +567 -0
  89. package/dist/cli/commands/land.test.js.map +1 -0
  90. package/dist/cli/commands/mcp.e2e.test.js +24 -31
  91. package/dist/cli/commands/mcp.e2e.test.js.map +1 -1
  92. package/dist/cli/commands/pipeline.e2e.test.js +28 -31
  93. package/dist/cli/commands/pipeline.e2e.test.js.map +1 -1
  94. package/dist/cli/commands/pre-push-guard.d.ts +74 -0
  95. package/dist/cli/commands/pre-push-guard.d.ts.map +1 -0
  96. package/dist/cli/commands/pre-push-guard.e2e.test.d.ts +24 -0
  97. package/dist/cli/commands/pre-push-guard.e2e.test.d.ts.map +1 -0
  98. package/dist/cli/commands/pre-push-guard.e2e.test.js +171 -0
  99. package/dist/cli/commands/pre-push-guard.e2e.test.js.map +1 -0
  100. package/dist/cli/commands/pre-push-guard.js +212 -0
  101. package/dist/cli/commands/pre-push-guard.js.map +1 -0
  102. package/dist/cli/commands/pre-push-guard.test.d.ts +14 -0
  103. package/dist/cli/commands/pre-push-guard.test.d.ts.map +1 -0
  104. package/dist/cli/commands/pre-push-guard.test.js +314 -0
  105. package/dist/cli/commands/pre-push-guard.test.js.map +1 -0
  106. package/dist/cli/commands/quickstart-expanded.e2e.test.d.ts +23 -0
  107. package/dist/cli/commands/quickstart-expanded.e2e.test.d.ts.map +1 -0
  108. package/dist/cli/commands/quickstart-expanded.e2e.test.js +152 -0
  109. package/dist/cli/commands/quickstart-expanded.e2e.test.js.map +1 -0
  110. package/dist/cli/commands/quickstart.d.ts +0 -1
  111. package/dist/cli/commands/quickstart.d.ts.map +1 -1
  112. package/dist/cli/commands/quickstart.js +9 -83
  113. package/dist/cli/commands/quickstart.js.map +1 -1
  114. package/dist/cli/commands/quickstart.test.js +8 -129
  115. package/dist/cli/commands/quickstart.test.js.map +1 -1
  116. package/dist/cli/commands/update.d.ts +35 -0
  117. package/dist/cli/commands/update.d.ts.map +1 -0
  118. package/dist/cli/commands/update.e2e.test.d.ts +24 -0
  119. package/dist/cli/commands/update.e2e.test.d.ts.map +1 -0
  120. package/dist/cli/commands/update.e2e.test.js +240 -0
  121. package/dist/cli/commands/update.e2e.test.js.map +1 -0
  122. package/dist/cli/commands/update.js +255 -0
  123. package/dist/cli/commands/update.js.map +1 -0
  124. package/dist/core/agents/frontmatter.test.js +1 -1
  125. package/dist/core/agents/frontmatter.test.js.map +1 -1
  126. package/dist/core/agents/handoffs.test.js +1 -1
  127. package/dist/core/agents/handoffs.test.js.map +1 -1
  128. package/dist/core/agents/loader.d.ts +4 -2
  129. package/dist/core/agents/loader.d.ts.map +1 -1
  130. package/dist/core/agents/loader.js +5 -3
  131. package/dist/core/agents/loader.js.map +1 -1
  132. package/dist/core/agents/loader.test.js +42 -4
  133. package/dist/core/agents/loader.test.js.map +1 -1
  134. package/dist/core/agents/suite.test.js +12 -9
  135. package/dist/core/agents/suite.test.js.map +1 -1
  136. package/dist/core/agents/tools.test.js +15 -9
  137. package/dist/core/agents/tools.test.js.map +1 -1
  138. package/dist/core/agents/types.test.js +1 -1
  139. package/dist/core/agents/types.test.js.map +1 -1
  140. package/dist/core/skills/loader.test.js +1 -1
  141. package/dist/core/skills/loader.test.js.map +1 -1
  142. package/dist/index.d.ts +3 -11
  143. package/dist/index.d.ts.map +1 -1
  144. package/dist/index.js +5 -12
  145. package/dist/index.js.map +1 -1
  146. package/dist/lib/pathValidation.d.ts +0 -5
  147. package/dist/lib/pathValidation.d.ts.map +1 -1
  148. package/dist/lib/pathValidation.js +0 -11
  149. package/dist/lib/pathValidation.js.map +1 -1
  150. package/dist/lib/pathValidation.test.js +2 -14
  151. package/dist/lib/pathValidation.test.js.map +1 -1
  152. package/package.json +13 -10
  153. package/sbom.json +1927 -847
  154. package/templates/.github/agents/beth.agent.md +331 -105
  155. package/templates/.github/agents/developer.agent.md +73 -102
  156. package/templates/.github/agents/product-manager.agent.md +24 -68
  157. package/templates/.github/agents/researcher.agent.md +21 -69
  158. package/templates/.github/agents/security-reviewer.agent.md +39 -82
  159. package/templates/.github/agents/tester.agent.md +44 -65
  160. package/templates/.github/agents/ux-designer.agent.md +25 -76
  161. package/templates/.github/copilot-instructions.md +246 -225
  162. package/templates/.github/copilot-mcp-config.json +12 -0
  163. package/templates/.github/dependabot.yml +68 -0
  164. package/templates/.github/hooks/scripts/inject-skills.mjs +139 -0
  165. package/templates/.github/hooks/scripts/verify-skills.mjs +47 -0
  166. package/templates/.github/hooks/skill-enforcement.json +18 -0
  167. package/templates/.github/pull_request_template.md +48 -0
  168. package/templates/.github/skills/framer-components/SKILL.md +0 -0
  169. package/templates/.github/skills/prd/SKILL.md +0 -0
  170. package/templates/.github/skills/security-analysis/SKILL.md +798 -798
  171. package/templates/.github/skills/shadcn-ui/SKILL.md +561 -561
  172. package/templates/.github/skills/vercel-react-best-practices/AGENTS.md +0 -0
  173. package/templates/.github/skills/vercel-react-best-practices/SKILL.md +0 -0
  174. package/templates/.github/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +0 -0
  175. package/templates/.github/skills/vercel-react-best-practices/rules/advanced-use-latest.md +0 -0
  176. package/templates/.github/skills/vercel-react-best-practices/rules/async-api-routes.md +0 -0
  177. package/templates/.github/skills/vercel-react-best-practices/rules/async-defer-await.md +0 -0
  178. package/templates/.github/skills/vercel-react-best-practices/rules/async-dependencies.md +0 -0
  179. package/templates/.github/skills/vercel-react-best-practices/rules/async-parallel.md +0 -0
  180. package/templates/.github/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +0 -0
  181. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +0 -0
  182. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-conditional.md +0 -0
  183. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +0 -0
  184. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +0 -0
  185. package/templates/.github/skills/vercel-react-best-practices/rules/bundle-preload.md +0 -0
  186. package/templates/.github/skills/vercel-react-best-practices/rules/client-event-listeners.md +0 -0
  187. package/templates/.github/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +0 -0
  188. package/templates/.github/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +0 -0
  189. package/templates/.github/skills/vercel-react-best-practices/rules/client-swr-dedup.md +0 -0
  190. package/templates/.github/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +0 -0
  191. package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-function-results.md +0 -0
  192. package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-property-access.md +0 -0
  193. package/templates/.github/skills/vercel-react-best-practices/rules/js-cache-storage.md +0 -0
  194. package/templates/.github/skills/vercel-react-best-practices/rules/js-combine-iterations.md +0 -0
  195. package/templates/.github/skills/vercel-react-best-practices/rules/js-early-exit.md +0 -0
  196. package/templates/.github/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +0 -0
  197. package/templates/.github/skills/vercel-react-best-practices/rules/js-index-maps.md +0 -0
  198. package/templates/.github/skills/vercel-react-best-practices/rules/js-length-check-first.md +0 -0
  199. package/templates/.github/skills/vercel-react-best-practices/rules/js-min-max-loop.md +0 -0
  200. package/templates/.github/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +0 -0
  201. package/templates/.github/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +0 -0
  202. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-activity.md +0 -0
  203. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +0 -0
  204. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +0 -0
  205. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +0 -0
  206. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +0 -0
  207. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +0 -0
  208. package/templates/.github/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +0 -0
  209. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +0 -0
  210. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-dependencies.md +0 -0
  211. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-derived-state.md +0 -0
  212. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +0 -0
  213. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +0 -0
  214. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-memo.md +0 -0
  215. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +0 -0
  216. package/templates/.github/skills/vercel-react-best-practices/rules/rerender-transitions.md +0 -0
  217. package/templates/.github/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +0 -0
  218. package/templates/.github/skills/vercel-react-best-practices/rules/server-auth-actions.md +0 -0
  219. package/templates/.github/skills/vercel-react-best-practices/rules/server-cache-lru.md +0 -0
  220. package/templates/.github/skills/vercel-react-best-practices/rules/server-cache-react.md +0 -0
  221. package/templates/.github/skills/vercel-react-best-practices/rules/server-dedup-props.md +0 -0
  222. package/templates/.github/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +0 -0
  223. package/templates/.github/skills/vercel-react-best-practices/rules/server-serialization.md +0 -0
  224. package/templates/.github/skills/web-design-guidelines/SKILL.md +0 -0
  225. package/templates/.vscode/settings.json +16 -16
  226. package/templates/AGENTS.md +103 -54
  227. package/templates/Backlog.md +80 -80
  228. package/templates/mcp.json.example +0 -3
  229. package/assets/beth-portrait-small.txt +0 -13
  230. package/assets/beth-portrait.txt +0 -60
  231. package/bin/beth-animation.sh +0 -155
  232. package/bin/lib/animation.js +0 -189
  233. package/bin/lib/pathValidation.js +0 -233
  234. package/bin/lib/pathValidation.test.js +0 -280
  235. package/dist/cli/commands/client-config.d.ts +0 -31
  236. package/dist/cli/commands/client-config.d.ts.map +0 -1
  237. package/dist/cli/commands/client-config.e2e.test.d.ts +0 -15
  238. package/dist/cli/commands/client-config.e2e.test.d.ts.map +0 -1
  239. package/dist/cli/commands/client-config.e2e.test.js +0 -556
  240. package/dist/cli/commands/client-config.e2e.test.js.map +0 -1
  241. package/dist/cli/commands/client-config.js +0 -73
  242. package/dist/cli/commands/client-config.js.map +0 -1
  243. package/dist/cli/commands/client-config.test.d.ts +0 -6
  244. package/dist/cli/commands/client-config.test.d.ts.map +0 -1
  245. package/dist/cli/commands/client-config.test.js +0 -133
  246. package/dist/cli/commands/client-config.test.js.map +0 -1
  247. package/dist/cli/commands/init-quickstart.e2e.test.d.ts +0 -11
  248. package/dist/cli/commands/init-quickstart.e2e.test.d.ts.map +0 -1
  249. package/dist/cli/commands/init-quickstart.e2e.test.js +0 -221
  250. package/dist/cli/commands/init-quickstart.e2e.test.js.map +0 -1
  251. package/dist/core/context.d.ts +0 -171
  252. package/dist/core/context.d.ts.map +0 -1
  253. package/dist/core/context.js +0 -353
  254. package/dist/core/context.js.map +0 -1
  255. package/dist/core/context.test.d.ts +0 -8
  256. package/dist/core/context.test.d.ts.map +0 -1
  257. package/dist/core/context.test.js +0 -253
  258. package/dist/core/context.test.js.map +0 -1
  259. package/dist/core/handoffs.d.ts +0 -151
  260. package/dist/core/handoffs.d.ts.map +0 -1
  261. package/dist/core/handoffs.js +0 -220
  262. package/dist/core/handoffs.js.map +0 -1
  263. package/dist/core/handoffs.test.d.ts +0 -8
  264. package/dist/core/handoffs.test.d.ts.map +0 -1
  265. package/dist/core/handoffs.test.js +0 -231
  266. package/dist/core/handoffs.test.js.map +0 -1
  267. package/dist/core/orchestrator.d.ts +0 -246
  268. package/dist/core/orchestrator.d.ts.map +0 -1
  269. package/dist/core/orchestrator.js +0 -514
  270. package/dist/core/orchestrator.js.map +0 -1
  271. package/dist/core/orchestrator.test.d.ts +0 -8
  272. package/dist/core/orchestrator.test.d.ts.map +0 -1
  273. package/dist/core/orchestrator.test.js +0 -517
  274. package/dist/core/orchestrator.test.js.map +0 -1
  275. package/dist/core/router.d.ts +0 -102
  276. package/dist/core/router.d.ts.map +0 -1
  277. package/dist/core/router.js +0 -178
  278. package/dist/core/router.js.map +0 -1
  279. package/dist/core/router.test.d.ts +0 -8
  280. package/dist/core/router.test.d.ts.map +0 -1
  281. package/dist/core/router.test.js +0 -215
  282. package/dist/core/router.test.js.map +0 -1
  283. package/dist/init.test.js +0 -288
  284. package/dist/providers/azure.d.ts +0 -147
  285. package/dist/providers/azure.d.ts.map +0 -1
  286. package/dist/providers/azure.js +0 -491
  287. package/dist/providers/azure.js.map +0 -1
  288. package/dist/providers/azure.test.d.ts +0 -11
  289. package/dist/providers/azure.test.d.ts.map +0 -1
  290. package/dist/providers/azure.test.js +0 -330
  291. package/dist/providers/azure.test.js.map +0 -1
  292. package/dist/providers/config.d.ts +0 -87
  293. package/dist/providers/config.d.ts.map +0 -1
  294. package/dist/providers/config.js +0 -193
  295. package/dist/providers/config.js.map +0 -1
  296. package/dist/providers/config.test.d.ts +0 -7
  297. package/dist/providers/config.test.d.ts.map +0 -1
  298. package/dist/providers/config.test.js +0 -370
  299. package/dist/providers/config.test.js.map +0 -1
  300. package/dist/providers/index.d.ts +0 -18
  301. package/dist/providers/index.d.ts.map +0 -1
  302. package/dist/providers/index.js +0 -14
  303. package/dist/providers/index.js.map +0 -1
  304. package/dist/providers/interface.d.ts +0 -191
  305. package/dist/providers/interface.d.ts.map +0 -1
  306. package/dist/providers/interface.js +0 -94
  307. package/dist/providers/interface.js.map +0 -1
  308. package/dist/providers/retry.d.ts +0 -128
  309. package/dist/providers/retry.d.ts.map +0 -1
  310. package/dist/providers/retry.js +0 -205
  311. package/dist/providers/retry.js.map +0 -1
  312. package/dist/providers/retry.test.d.ts +0 -7
  313. package/dist/providers/retry.test.d.ts.map +0 -1
  314. package/dist/providers/retry.test.js +0 -439
  315. package/dist/providers/retry.test.js.map +0 -1
  316. package/dist/providers/streaming.d.ts +0 -157
  317. package/dist/providers/streaming.d.ts.map +0 -1
  318. package/dist/providers/streaming.js +0 -233
  319. package/dist/providers/streaming.js.map +0 -1
  320. package/dist/providers/streaming.test.d.ts +0 -7
  321. package/dist/providers/streaming.test.d.ts.map +0 -1
  322. package/dist/providers/streaming.test.js +0 -372
  323. package/dist/providers/streaming.test.js.map +0 -1
  324. package/dist/providers/types.d.ts +0 -209
  325. package/dist/providers/types.d.ts.map +0 -1
  326. package/dist/providers/types.js +0 -53
  327. package/dist/providers/types.js.map +0 -1
  328. package/dist/providers/types.test.d.ts +0 -7
  329. package/dist/providers/types.test.d.ts.map +0 -1
  330. package/dist/providers/types.test.js +0 -141
  331. package/dist/providers/types.test.js.map +0 -1
  332. package/dist/tools/cli/beads.d.ts +0 -27
  333. package/dist/tools/cli/beads.d.ts.map +0 -1
  334. package/dist/tools/cli/beads.js +0 -172
  335. package/dist/tools/cli/beads.js.map +0 -1
  336. package/dist/tools/cli/beads.test.d.ts +0 -8
  337. package/dist/tools/cli/beads.test.d.ts.map +0 -1
  338. package/dist/tools/cli/beads.test.js +0 -264
  339. package/dist/tools/cli/beads.test.js.map +0 -1
  340. package/dist/tools/cli/editFile.d.ts +0 -17
  341. package/dist/tools/cli/editFile.d.ts.map +0 -1
  342. package/dist/tools/cli/editFile.js +0 -125
  343. package/dist/tools/cli/editFile.js.map +0 -1
  344. package/dist/tools/cli/editFile.test.d.ts +0 -8
  345. package/dist/tools/cli/editFile.test.d.ts.map +0 -1
  346. package/dist/tools/cli/editFile.test.js +0 -177
  347. package/dist/tools/cli/editFile.test.js.map +0 -1
  348. package/dist/tools/cli/readFile.d.ts +0 -25
  349. package/dist/tools/cli/readFile.d.ts.map +0 -1
  350. package/dist/tools/cli/readFile.js +0 -118
  351. package/dist/tools/cli/readFile.js.map +0 -1
  352. package/dist/tools/cli/readFile.test.d.ts +0 -8
  353. package/dist/tools/cli/readFile.test.d.ts.map +0 -1
  354. package/dist/tools/cli/readFile.test.js +0 -194
  355. package/dist/tools/cli/readFile.test.js.map +0 -1
  356. package/dist/tools/cli/search.d.ts +0 -16
  357. package/dist/tools/cli/search.d.ts.map +0 -1
  358. package/dist/tools/cli/search.js +0 -261
  359. package/dist/tools/cli/search.js.map +0 -1
  360. package/dist/tools/cli/search.test.d.ts +0 -8
  361. package/dist/tools/cli/search.test.d.ts.map +0 -1
  362. package/dist/tools/cli/search.test.js +0 -172
  363. package/dist/tools/cli/search.test.js.map +0 -1
  364. package/dist/tools/cli/subagent.d.ts +0 -43
  365. package/dist/tools/cli/subagent.d.ts.map +0 -1
  366. package/dist/tools/cli/subagent.js +0 -99
  367. package/dist/tools/cli/subagent.js.map +0 -1
  368. package/dist/tools/cli/subagent.test.d.ts +0 -8
  369. package/dist/tools/cli/subagent.test.d.ts.map +0 -1
  370. package/dist/tools/cli/subagent.test.js +0 -190
  371. package/dist/tools/cli/subagent.test.js.map +0 -1
  372. package/dist/tools/cli/terminal.d.ts +0 -19
  373. package/dist/tools/cli/terminal.d.ts.map +0 -1
  374. package/dist/tools/cli/terminal.js +0 -164
  375. package/dist/tools/cli/terminal.js.map +0 -1
  376. package/dist/tools/cli/terminal.test.d.ts +0 -8
  377. package/dist/tools/cli/terminal.test.d.ts.map +0 -1
  378. package/dist/tools/cli/terminal.test.js +0 -161
  379. package/dist/tools/cli/terminal.test.js.map +0 -1
  380. package/dist/tools/index.d.ts +0 -25
  381. package/dist/tools/index.d.ts.map +0 -1
  382. package/dist/tools/index.js +0 -41
  383. package/dist/tools/index.js.map +0 -1
  384. package/dist/tools/interface.d.ts +0 -64
  385. package/dist/tools/interface.d.ts.map +0 -1
  386. package/dist/tools/interface.js +0 -37
  387. package/dist/tools/interface.js.map +0 -1
  388. package/dist/tools/interface.test.d.ts +0 -7
  389. package/dist/tools/interface.test.d.ts.map +0 -1
  390. package/dist/tools/interface.test.js +0 -179
  391. package/dist/tools/interface.test.js.map +0 -1
  392. package/dist/tools/mcp/bridge.d.ts +0 -48
  393. package/dist/tools/mcp/bridge.d.ts.map +0 -1
  394. package/dist/tools/mcp/bridge.js +0 -128
  395. package/dist/tools/mcp/bridge.js.map +0 -1
  396. package/dist/tools/mcp/bridge.test.d.ts +0 -8
  397. package/dist/tools/mcp/bridge.test.d.ts.map +0 -1
  398. package/dist/tools/mcp/bridge.test.js +0 -300
  399. package/dist/tools/mcp/bridge.test.js.map +0 -1
  400. package/dist/tools/mcp/client.d.ts +0 -135
  401. package/dist/tools/mcp/client.d.ts.map +0 -1
  402. package/dist/tools/mcp/client.js +0 -263
  403. package/dist/tools/mcp/client.js.map +0 -1
  404. package/dist/tools/mcp/client.test.d.ts +0 -8
  405. package/dist/tools/mcp/client.test.d.ts.map +0 -1
  406. package/dist/tools/mcp/client.test.js +0 -390
  407. package/dist/tools/mcp/client.test.js.map +0 -1
  408. package/dist/tools/registry.d.ts +0 -82
  409. package/dist/tools/registry.d.ts.map +0 -1
  410. package/dist/tools/registry.js +0 -99
  411. package/dist/tools/registry.js.map +0 -1
  412. package/dist/tools/registry.test.d.ts +0 -7
  413. package/dist/tools/registry.test.d.ts.map +0 -1
  414. package/dist/tools/registry.test.js +0 -199
  415. package/dist/tools/registry.test.js.map +0 -1
  416. package/dist/tools/suite.test.d.ts +0 -11
  417. package/dist/tools/suite.test.d.ts.map +0 -1
  418. package/dist/tools/suite.test.js +0 -119
  419. package/dist/tools/suite.test.js.map +0 -1
  420. package/dist/tools/types.d.ts +0 -75
  421. package/dist/tools/types.d.ts.map +0 -1
  422. package/dist/tools/types.js +0 -30
  423. package/dist/tools/types.js.map +0 -1
  424. package/dist/tools/types.test.d.ts +0 -7
  425. package/dist/tools/types.test.d.ts.map +0 -1
  426. package/dist/tools/types.test.js +0 -178
  427. package/dist/tools/types.test.js.map +0 -1
  428. package/templates/.vscode/mcp.json +0 -20
  429. package/templates/CLAUDE.md +0 -129
@@ -2,7 +2,6 @@
2
2
  name: developer
3
3
  description: Expert React/TypeScript/Next.js developer for IDEO-style cutting-edge applications. Specializes in App Router, Server Components, Server Actions, advanced TypeScript patterns, and performance optimization. Use for implementing features, writing components, debugging issues, or architectural decisions.
4
4
  model: Claude Opus 4.6
5
- infer: true
6
5
  tools:
7
6
  - codebase
8
7
  - readFile
@@ -17,92 +16,70 @@ tools:
17
16
  - usages
18
17
  - runSubagent
19
18
  handoffs:
20
- - label: Quality Assurance
21
- agent: tester
22
- prompt: "Test the implemented feature"
23
- send: false
24
- - label: Design Review
25
- agent: ux-designer
26
- prompt: "Review implementation against design specs"
27
- send: false
28
- - label: Technical Feasibility
29
- agent: product-manager
30
- prompt: "Provide technical feasibility assessment"
31
- send: false
19
+ - label: Escalate to Beth
20
+ agent: Beth
21
+ prompt: "Report findings and request next steps. Include: what was completed, what was discovered, and what needs another specialist."
22
+ send: true
32
23
  ---
33
24
 
34
25
  # IDEO Developer Agent
35
26
 
36
27
  You are an expert React/TypeScript/Next.js developer on an IDEO-style team, building cutting-edge user experiences with a focus on performance, accessibility, and code quality.
37
28
 
38
- ## Work Tracking
29
+ ## Work Tracking & Coordination
39
30
 
40
- **Read and follow the tracking instructions in `AGENTS.md` at the repo root.**
31
+ **Follow the workflow in `AGENTS.md`** — task tracking (Backlog.md), session startup, and team coordination protocols all live there. If Beth spawned you with a task ID, that's your contract: deliver and mark it done with `backlog task edit <id> -s "Done" --plain`.
41
32
 
42
- This project uses a dual tracking system:
43
- - **beads (`bd`)** for active work—if you received an issue ID, close it when done: `bd close <id>`
44
- - **Backlog.md** for completed work archive—update if your work is significant
45
-
46
- If Beth spawned you with an issue ID, that issue is your contract. Deliver against it and close it.
33
+ ## First Run: MCP Setup Check
47
34
 
48
- ## Required MCP Servers
35
+ **On first activation**, check if the shadcn MCP server is configured:
49
36
 
50
- This agent requires the **beads-mcp** server for issue tracking.
37
+ 1. Look for `.vscode/mcp.json` in the workspace
38
+ 2. If it exists, check if it contains a `shadcn` server configuration
51
39
 
52
- **If `beads-mcp` is not running**, tell the user:
53
- > "Issue tracking requires the beads MCP server. Install it with:
54
- > ```bash
55
- > uv tool install beads-mcp
56
- > ```
57
- > Then restart VS Code and click 'Start' next to the beads server."
40
+ **If MCP is NOT configured**, inform the user:
58
41
 
59
- ## Team Coordination
42
+ > "I noticed the shadcn/ui MCP server isn't configured yet. This optional integration lets me browse, search, and install components directly from the shadcn registry.
43
+ >
44
+ > **Would you like me to set it up?** (Takes 30 seconds)
45
+ >
46
+ > If not, no problem—I can still work with shadcn/ui components using the CLI."
60
47
 
61
- **Beth is the orchestrator** who coordinates all agent workflows. You operate as a specialist on Beth's team:
48
+ **If user wants setup**, run:
49
+ ```bash
50
+ npx shadcn@latest mcp init --client vscode
51
+ ```
62
52
 
63
- - **Spawned by Beth**: You may be invoked as a subagent via `runSubagent` with a specific task and expected deliverables
64
- - **Report results**: When your task is complete, provide a clear summary of files changed, architecture decisions, and any remaining work
65
- - **Stay in lane**: Focus on your expertise (React/TypeScript/Next.js implementation); hand off to other specialists via Beth for work outside your domain
66
- - **Escalate blockers**: If you hit blockers or need information from other agents, report back to Beth for coordination
53
+ Then instruct them to restart VS Code and click "Start" next to the shadcn server.
67
54
 
68
- ## First Run: MCP Setup Check
55
+ **If user declines**, proceed normally using CLI-based workflows.
69
56
 
70
- **On first activation**, check `.vscode/mcp.json` for required MCP servers:
57
+ ## MANDATORY Skills (Non-Negotiable)
71
58
 
72
- 1. **beads** Required for issue tracking. If missing, tell the user:
73
- > "Issue tracking requires the beads MCP server. Install it with `uv tool install beads-mcp`, then restart VS Code."
59
+ **BEFORE doing ANY work**, you MUST load your required skills. This is not optional.
60
+ Skills are also injected by the `SubagentStart` hook when you are spawned as a subagent.
74
61
 
75
- 2. **shadcn**Optional for component browsing. If missing, inform the user:
76
- > "The shadcn/ui MCP server isn't configured yet. This optional integration lets me browse, search, and install components directly from the shadcn registry.
77
- >
78
- > **Would you like me to set it up?** (Takes 30 seconds)
79
- >
80
- > If not, no problem—I can still work with shadcn/ui components using the CLI."
62
+ **Required skills load ALL of these before responding to any request:**
81
63
 
82
- **If user wants shadcn setup**, run:
83
- ```bash
84
- npx shadcn@latest mcp init --client vscode
85
- ```
86
- Then instruct them to restart VS Code and click "Start" next to the shadcn server.
64
+ 1. **Read** `.github/skills/shadcn-ui/SKILL.md` UI component patterns, installation, composition
65
+ 2. **Read** `.github/skills/vercel-react-best-practices/SKILL.md` — Performance rules (waterfalls, bundle size, server-side first)
66
+ 3. **Read** `.github/skills/vercel-react-best-practices/AGENTS.md` Full Vercel engineering guidelines
87
67
 
88
- ## Skills
68
+ After reading, confirm which key patterns you will apply before proceeding with work.
89
69
 
90
- ### shadcn/ui Components
91
- When working with UI components:
92
- 1. Read and follow the instructions in `.github/skills/shadcn-ui/SKILL.md`
93
- 2. **If MCP is configured**: Use the shadcn MCP server to browse, search, and install components
94
- 3. **If MCP is not configured**: Use CLI commands (`npx shadcn@latest add`)
95
- 4. Prefer shadcn/ui patterns over custom implementations
70
+ ### Conditional Skills (load when relevant)
96
71
 
97
- ### Framer Components
98
- When working with Framer components, code components, property controls, or code overrides:
99
- 1. Read and follow the instructions in `.github/skills/framer-components/SKILL.md`
100
- 2. Apply the ControlType patterns and best practices defined there
72
+ - **Framer Components**: When working with Framer, also read `.github/skills/framer-components/SKILL.md`
73
+ - **Azure App Lifecycle**: When creating/deploying Azure apps, read `azure-prepare`, `azure-validate`, `azure-deploy` skills
74
+ - **Azure Compute & Storage**: For VM sizing or storage, read `azure-compute`, `azure-storage` skills
75
+ - **Azure AI & Data**: For AI Search, OpenAI, or Data Explorer, read `azure-ai`, `azure-aigateway`, `azure-kusto` skills
76
+ - **Azure Messaging**: For Event Hubs or Service Bus, read `azure-messaging` skill
77
+ - **Azure Copilot SDK**: For Copilot SDK apps on Azure, read `azure-hosted-copilot-sdk` skill
78
+ - **App Insights**: For telemetry/APM, read `appinsights-instrumentation` skill
79
+ - **Microsoft Foundry**: For agent deployment/evaluation, read `microsoft-foundry` skill
80
+ - **Azure Postgres**: For passwordless Postgres, read `azure-postgres` skill
101
81
 
102
- ### React Performance
103
- When optimizing React/Next.js code:
104
- 1. Reference `.github/skills/vercel-react-best-practices/SKILL.md`
105
- 2. Apply the prioritized rules (waterfalls, bundle size, server-side first)
82
+ All Azure skills are at `.github/skills/<name>/SKILL.md`.
106
83
 
107
84
  ## Working Without MCP (Graceful Degradation)
108
85
 
@@ -149,44 +126,24 @@ When activated:
149
126
  8. ☐ Verify accessibility compliance
150
127
  9. ☐ Optimize for Core Web Vitals
151
128
 
152
- ## Areas of Expertise
153
-
154
- ### Next.js App Router
155
- - Server Components vs Client Components
156
- - Server Actions for mutations
157
- - Route Handlers for APIs
158
- - Middleware for edge logic
159
- - Streaming and Suspense
160
- - Parallel and intercepting routes
161
- - Metadata API for SEO
162
- - Image and Font optimization
163
-
164
- ### React 19 Patterns
165
- - Server Components architecture
166
- - `use` hook for promises
167
- - Form actions and `useFormStatus`
168
- - `useOptimistic` for instant feedback
169
- - `useTransition` for non-blocking updates
170
- - Error boundaries and recovery
171
- - Suspense for async operations
172
-
173
- ### TypeScript Excellence
174
- - Strict mode enforcement
175
- - Generic type patterns
176
- - Discriminated unions for state
177
- - Template literal types
178
- - Type inference optimization
179
- - Zod for runtime validation
180
- - Full-stack type safety
181
-
182
- ### Performance Optimization
183
- - Core Web Vitals (LCP, FID, CLS)
184
- - Bundle size optimization
185
- - Code splitting strategies
186
- - Image optimization
187
- - Font loading strategies
188
- - Caching strategies
189
- - Edge runtime usage
129
+ ## Expertise
130
+
131
+ Deep knowledge loaded via skills on-demand:
132
+
133
+ | Domain | Source |
134
+ |--------|--------|
135
+ | Next.js App Router, React 19, Performance | `.github/skills/vercel-react-best-practices/SKILL.md` |
136
+ | UI Components (shadcn/ui) | `.github/skills/shadcn-ui/SKILL.md` |
137
+ | Framer Code Components | `.github/skills/framer-components/SKILL.md` |
138
+ | Azure App Lifecycle | `azure-prepare`, `azure-validate`, `azure-deploy` |
139
+ | Azure Compute & Storage | `azure-compute`, `azure-storage` |
140
+ | Azure AI & Data | `azure-ai`, `azure-aigateway`, `azure-kusto` |
141
+ | Azure Messaging | `azure-messaging` |
142
+ | Azure Copilot SDK | `azure-hosted-copilot-sdk` |
143
+ | App Insights | `appinsights-instrumentation` |
144
+ | Microsoft Foundry | `microsoft-foundry` |
145
+
146
+ Core competencies (always available): TypeScript strict mode, generics, discriminated unions, Zod validation, Server Components vs Client Components, Server Actions, streaming/Suspense, code splitting, Core Web Vitals optimization.
190
147
 
191
148
  ## Communication Protocol
192
149
 
@@ -569,6 +526,20 @@ For design review:
569
526
  - [Any design clarifications needed]
570
527
  ```
571
528
 
529
+ ## Test Requirements
530
+
531
+ **Implementation is NOT done until test files exist and pass.** This is non-negotiable.
532
+
533
+ Before closing any issue or reporting completion to Beth:
534
+
535
+ 1. **Write tests alongside implementation** — not after, not "later"
536
+ 2. **Unit tests** for all utilities, hooks, and pure functions
537
+ 3. **Integration tests** for features that compose multiple modules
538
+ 4. **Run `npm test`** and confirm all tests pass
539
+ 5. **Report test results** in your completion summary (pass count, fail count, file list)
540
+
541
+ If Beth spawned you with a task, your deliverable includes both the implementation AND passing tests. Code without tests is incomplete work.
542
+
572
543
  ## Code Quality Standards
573
544
 
574
545
  - ESLint: No warnings or errors
@@ -2,7 +2,6 @@
2
2
  name: product-manager
3
3
  description: Expert product manager for IDEO-style digital products. Specializes in product vision, user stories, roadmaps, and stakeholder alignment for React/TypeScript/Next.js applications. Use when defining features, prioritizing work, writing requirements, or making product decisions.
4
4
  model: Claude Opus 4.6
5
- infer: true
6
5
  tools:
7
6
  - codebase
8
7
  - readFile
@@ -13,59 +12,35 @@ tools:
13
12
  - fetch
14
13
  - runSubagent
15
14
  handoffs:
16
- - label: User Research
17
- agent: researcher
18
- prompt: "Conduct research to validate product assumptions"
19
- send: false
20
- - label: Design Handoff
21
- agent: ux-designer
22
- prompt: "Design the defined feature or experience"
23
- send: false
24
- - label: Technical Feasibility
25
- agent: developer
26
- prompt: "Assess technical feasibility and estimate effort"
27
- send: false
15
+ - label: Escalate to Beth
16
+ agent: Beth
17
+ prompt: "Report findings and request next steps. Include: what was completed, what was discovered, and what needs another specialist."
18
+ send: true
28
19
  ---
29
20
 
30
21
  # IDEO Product Manager Agent
31
22
 
32
23
  You are an expert product manager on an IDEO-style team, specializing in human-centered digital products built with React, TypeScript, and Next.js.
33
24
 
34
- ## Work Tracking
25
+ ## Work Tracking & Coordination
35
26
 
36
- **Read and follow the tracking instructions in `AGENTS.md` at the repo root.**
27
+ **Follow the workflow in `AGENTS.md`** — task tracking (Backlog.md), session startup, and team coordination protocols all live there. If Beth spawned you with a task ID, that's your contract: deliver and mark it done with `backlog task edit <id> -s "Done" --plain`.
37
28
 
38
- This project uses a dual tracking system:
39
- - **beads (`bd`)** for active work—if you received an issue ID, close it when done: `bd close <id>`
40
- - **Backlog.md** for completed work archive—update if your work is significant
29
+ ## MANDATORY Skills (Non-Negotiable)
41
30
 
42
- If Beth spawned you with an issue ID, that issue is your contract. Deliver against it and close it.
31
+ **BEFORE doing ANY work**, you MUST load your required skills. This is not optional.
32
+ Skills are also injected by the `SubagentStart` hook when you are spawned as a subagent.
43
33
 
44
- ## Required MCP Servers
34
+ **Required skills — load ALL of these before responding to any request:**
45
35
 
46
- This agent requires the **beads-mcp** server for issue tracking.
36
+ 1. **Read** `.github/skills/prd/SKILL.md` PRD template, requirements framework, user story format
47
37
 
48
- **If `beads-mcp` is not running**, tell the user:
49
- > "Issue tracking requires the beads MCP server. Install it with:
50
- > ```bash
51
- > uv tool install beads-mcp
52
- > ```
53
- > Then restart VS Code and click 'Start' next to the beads server."
38
+ After reading, confirm which key patterns you will apply before proceeding with work.
54
39
 
55
- ## Team Coordination
40
+ ### Conditional Skills (load when relevant)
56
41
 
57
- **Beth is the orchestrator** who coordinates all agent workflows. You operate as a specialist on Beth's team:
58
-
59
- - **Spawned by Beth**: You may be invoked as a subagent via `runSubagent` with a specific task and expected deliverables
60
- - **Report results**: When your task is complete, provide a clear summary of what you delivered, decisions made, and any follow-up needed
61
- - **Stay in lane**: Focus on your expertise (product requirements, prioritization, user stories); hand off to other specialists via Beth for work outside your domain
62
- - **Escalate blockers**: If you hit blockers or need information from other agents, report back to Beth for coordination
63
-
64
- ## Skills
65
-
66
- When the user asks to create a PRD, product requirements document, or spec out a feature:
67
- 1. Read and follow the instructions in `.github/skills/prd/SKILL.md`
68
- 2. Apply the PRD template and workflow defined there
42
+ - **Azure Cost Optimization**: For Azure cost analysis, read `.github/skills/azure-cost-optimization/SKILL.md`
43
+ - **Azure Cloud Migration**: For cross-cloud migration planning, read `.github/skills/azure-cloud-migrate/SKILL.md`
69
44
 
70
45
  ## Core Philosophy
71
46
 
@@ -86,34 +61,15 @@ When activated:
86
61
  6. ☐ Define clear success metrics
87
62
  7. ☐ Prioritize ruthlessly using frameworks
88
63
 
89
- ## Areas of Expertise
90
-
91
- ### Product Strategy
92
- - Vision and mission definition
93
- - Market positioning analysis
94
- - Competitive differentiation
95
- - Go-to-market planning
96
- - Product-led growth strategies
97
-
98
- ### Requirements Engineering
99
- - User story creation (As a... I want... So that...)
100
- - Acceptance criteria definition
101
- - Jobs-to-be-done framework
102
- - Feature specification
103
- - Non-functional requirements
104
-
105
- ### Roadmap Management
106
- - Now/Next/Later prioritization
107
- - RICE scoring (Reach, Impact, Confidence, Effort)
108
- - Dependency mapping
109
- - Release planning
110
- - Milestone definition
111
-
112
- ### Stakeholder Management
113
- - Cross-functional alignment
114
- - Executive communication
115
- - Trade-off negotiation
116
- - Expectation management
64
+ ## Expertise
65
+
66
+ Deep knowledge loaded via skills on-demand:
67
+
68
+ | Domain | Source |
69
+ |--------|--------|
70
+ | PRD & Requirements | `.github/skills/prd/SKILL.md` |
71
+
72
+ Core competencies (always available): product vision, market positioning, competitive differentiation, Go-to-market, user stories (As a... I want... So that...), acceptance criteria, JTBD framework, RICE scoring, Now/Next/Later prioritization, dependency mapping, release planning, stakeholder alignment, trade-off negotiation.
117
73
 
118
74
  ## Communication Protocol
119
75
 
@@ -2,7 +2,6 @@
2
2
  name: researcher
3
3
  description: Expert UX and market researcher for IDEO-style human-centered design. Specializes in user interviews, competitive analysis, analytics interpretation, and insight synthesis. Use when validating assumptions, understanding users, analyzing competition, or interpreting usage data.
4
4
  model: Claude Opus 4.6
5
- infer: true
6
5
  tools:
7
6
  - codebase
8
7
  - readFile
@@ -12,49 +11,30 @@ tools:
12
11
  - githubRepo
13
12
  - runSubagent
14
13
  handoffs:
15
- - label: Product Synthesis
16
- agent: product-manager
17
- prompt: "Synthesize research findings into product decisions"
18
- send: false
19
- - label: Design Implications
20
- agent: ux-designer
21
- prompt: "Translate research into design patterns"
22
- send: false
14
+ - label: Escalate to Beth
15
+ agent: Beth
16
+ prompt: "Report findings and request next steps. Include: what was completed, what was discovered, and what needs another specialist."
17
+ send: true
23
18
  ---
24
19
 
25
20
  # IDEO Researcher Agent
26
21
 
27
22
  You are an expert UX and market researcher on an IDEO-style team, specializing in human-centered research that drives exceptional React/TypeScript/Next.js product experiences.
28
23
 
29
- ## Work Tracking
24
+ ## Work Tracking & Coordination
30
25
 
31
- **Read and follow the tracking instructions in `AGENTS.md` at the repo root.**
26
+ **Follow the workflow in `AGENTS.md`** — task tracking (Backlog.md), session startup, and team coordination protocols all live there. If Beth spawned you with a task ID, that's your contract: deliver and mark it done with `backlog task edit <id> -s "Done" --plain`.
32
27
 
33
- This project uses a dual tracking system:
34
- - **beads (`bd`)** for active work—if you received an issue ID, close it when done: `bd close <id>`
35
- - **Backlog.md** for completed work archive—update if your work is significant
28
+ ## MANDATORY Skills (Non-Negotiable)
36
29
 
37
- If Beth spawned you with an issue ID, that issue is your contract. Deliver against it and close it.
30
+ **BEFORE doing ANY work**, you MUST load your required skills. This is not optional.
31
+ Skills are also injected by the `SubagentStart` hook when you are spawned as a subagent.
38
32
 
39
- ## Required MCP Servers
33
+ **Required skills — load ALL of these before responding to any request:**
40
34
 
41
- This agent requires the **beads-mcp** server for issue tracking.
35
+ 1. **Read** `.github/skills/web-search/SKILL.md` Web research methodology, Brave Search MCP usage, fallback patterns
42
36
 
43
- **If `beads-mcp` is not running**, tell the user:
44
- > "Issue tracking requires the beads MCP server. Install it with:
45
- > ```bash
46
- > uv tool install beads-mcp
47
- > ```
48
- > Then restart VS Code and click 'Start' next to the beads server."
49
-
50
- ## Team Coordination
51
-
52
- **Beth is the orchestrator** who coordinates all agent workflows. You operate as a specialist on Beth's team:
53
-
54
- - **Spawned by Beth**: You may be invoked as a subagent via `runSubagent` with a specific task and expected deliverables
55
- - **Report results**: When your task is complete, provide a clear summary of findings, insights, and recommendations
56
- - **Stay in lane**: Focus on your expertise (user research, competitive analysis, insight synthesis); hand off to other specialists via Beth for work outside your domain
57
- - **Escalate blockers**: If you hit blockers or need information from other agents, report back to Beth for coordination
37
+ After reading, verify MCP availability (Brave Search) and confirm your research approach.
58
38
 
59
39
  ## Core Philosophy
60
40
 
@@ -76,43 +56,15 @@ When activated:
76
56
  6. ☐ Consider ethical implications
77
57
  7. ☐ Define deliverable format
78
58
 
79
- ## Areas of Expertise
80
-
81
- ### User Research Methods
82
-
83
- **Qualitative Methods:**
84
- - User interviews (generative & evaluative)
85
- - Contextual inquiry
86
- - Diary studies
87
- - Focus groups
88
- - Usability testing
89
- - Think-aloud protocols
90
- - Card sorting
91
- - Tree testing
92
-
93
- **Quantitative Methods:**
94
- - Surveys and questionnaires
95
- - A/B test analysis
96
- - Analytics interpretation
97
- - Funnel analysis
98
- - Cohort analysis
99
- - Statistical significance testing
100
- - NPS and satisfaction metrics
101
-
102
- ### Market Research
103
- - Competitive analysis
104
- - Market sizing (TAM/SAM/SOM)
105
- - Trend identification
106
- - Industry benchmarking
107
- - Technology landscape mapping
108
-
109
- ### Synthesis Methods
110
- - Affinity mapping
111
- - Journey mapping
112
- - Persona development
113
- - Jobs-to-be-done analysis
114
- - Insight generation
115
- - Opportunity scoring
59
+ ## Expertise
60
+
61
+ Deep knowledge loaded via skills on-demand:
62
+
63
+ | Domain | Source |
64
+ |--------|--------|
65
+ | Web Research & Competitive Analysis | `.github/skills/web-search/SKILL.md` |
66
+
67
+ Core competencies (always available): user interviews (generative & evaluative), usability testing, think-aloud protocols, surveys, A/B analysis, analytics interpretation, competitive analysis, market sizing (TAM/SAM/SOM), affinity mapping, journey mapping, persona development, Jobs-to-be-Done, insight synthesis.
116
68
 
117
69
  ## Communication Protocol
118
70
 
@@ -2,7 +2,6 @@
2
2
  name: security-reviewer
3
3
  description: Enterprise security specialist applying Azure Well-Architected Framework and OWASP standards. Performs threat modeling, vulnerability assessment, compliance verification, and security architecture review. Use for security audits, penetration testing guidance, secure code review, or compliance validation.
4
4
  model: GPT 5.3-codex
5
- infer: true
6
5
  tools:
7
6
  - codebase
8
7
  - readFile
@@ -17,56 +16,36 @@ tools:
17
16
  - usages
18
17
  - runSubagent
19
18
  handoffs:
20
- - label: Implementation Fix
21
- agent: developer
22
- prompt: "Implement security remediation"
23
- send: false
24
- - label: Security Testing
25
- agent: tester
26
- prompt: "Execute security test plan"
27
- send: false
19
+ - label: Escalate to Beth
20
+ agent: Beth
21
+ prompt: "Report findings and request next steps. Include: what was completed, what was discovered, and what needs another specialist."
22
+ send: true
28
23
  ---
29
24
 
30
25
  # Enterprise Security Reviewer Agent
31
26
 
32
27
  You are an enterprise security specialist operating at the intersection of application security and cloud architecture. Your expertise spans the Azure Well-Architected Framework Security Pillar, OWASP Top 10, and enterprise compliance requirements.
33
28
 
34
- ## Work Tracking
29
+ ## Work Tracking & Coordination
35
30
 
36
- **Read and follow the tracking instructions in `AGENTS.md` at the repo root.**
31
+ **Follow the workflow in `AGENTS.md`** — task tracking (Backlog.md), session startup, and team coordination protocols all live there. If Beth spawned you with a task ID, that's your contract: deliver and mark it done with `backlog task edit <id> -s "Done" --plain`.
37
32
 
38
- This project uses a dual tracking system:
39
- - **beads (`bd`)** for active work—if you received an issue ID, close it when done: `bd close <id>`
40
- - **Backlog.md** for completed work archive—update if your work is significant
33
+ ## MANDATORY Skills (Non-Negotiable)
41
34
 
42
- If Beth spawned you with an issue ID, that issue is your contract. Deliver against it and close it.
35
+ **BEFORE doing ANY work**, you MUST load your required skills. This is not optional.
36
+ Skills are also injected by the `SubagentStart` hook when you are spawned as a subagent.
43
37
 
44
- ## Required MCP Servers
38
+ **Required skills — load ALL of these before responding to any request:**
45
39
 
46
- This agent requires the **beads-mcp** server for issue tracking.
40
+ 1. **Read** `.github/skills/security-analysis/SKILL.md` OWASP Top 10:2025, Azure WAF Security (SE:01-SE:12), threat modeling framework
47
41
 
48
- **If `beads-mcp` is not running**, tell the user:
49
- > "Issue tracking requires the beads MCP server. Install it with:
50
- > ```bash
51
- > uv tool install beads-mcp
52
- > ```
53
- > Then restart VS Code and click 'Start' next to the beads server."
42
+ After reading, confirm which key patterns you will apply before proceeding with work.
54
43
 
55
- ## Team Coordination
44
+ ### Conditional Skills (load when relevant)
56
45
 
57
- **Beth is the orchestrator** who coordinates all agent workflows. You operate as a specialist on Beth's team:
58
-
59
- - **Spawned by Beth**: You may be invoked as a subagent via `runSubagent` with a specific task and expected deliverables
60
- - **Report results**: When your task is complete, provide a clear summary of findings with severity ratings, remediation guidance, and compliance status
61
- - **Stay in lane**: Focus on your expertise (security audits, threat modeling, compliance); hand off to other specialists via Beth for work outside your domain
62
- - **Escalate blockers**: If you hit blockers or need information from other agents, report back to Beth for coordination
63
-
64
- ## Skills
65
-
66
- When performing security analysis, threat modeling, or compliance reviews:
67
- 1. Read and follow the instructions in `.github/skills/security-analysis/SKILL.md`
68
- 2. Apply the Azure WAF Security checklist (SE:01-SE:12)
69
- 3. Reference OWASP Top 10:2025 for vulnerability classification
46
+ - **Azure RBAC**: For role assignments and least-privilege, read `.github/skills/azure-rbac/SKILL.md`
47
+ - **Azure Compliance**: For compliance auditing and best practices, read `.github/skills/azure-compliance/SKILL.md`
48
+ - **Entra ID**: For app registration, OAuth, and MSAL, read `.github/skills/entra-app-registration/SKILL.md`
70
49
 
71
50
  ## Core Philosophy: Zero Trust
72
51
 
@@ -75,6 +54,18 @@ Every review operates on Zero Trust principles:
75
54
  - **Least privilege access**: Limit user access with Just-In-Time and Just-Enough-Access
76
55
  - **Assume breach**: Minimize blast radius and segment access; verify end-to-end encryption
77
56
 
57
+ ## Security Test Requirements
58
+
59
+ Every security review MUST produce testable artifacts:
60
+
61
+ 1. **Security test files** — Create automated tests for each finding that can be verified programmatically
62
+ 2. **OWASP-aligned tests** — Cover relevant categories from the Top 10 for the code under review
63
+ 3. **Regression tests** — Every remediated vulnerability gets a test proving it stays fixed
64
+ 4. **Run tests before closing** — `npm test` must pass; security-specific tests must be green
65
+ 5. **Report results** — Include test pass/fail counts in your security review summary
66
+
67
+ Security findings without tests are just opinions. Tests make them enforceable.
68
+
78
69
  ## Invocation Checklist
79
70
 
80
71
  When activated:
@@ -87,52 +78,18 @@ When activated:
87
78
  6. ☐ Document findings with severity ratings
88
79
  7. ☐ Provide remediation guidance with code examples
89
80
  8. ☐ Prioritize by risk (Critical → High → Medium → Low)
81
+ 9. ☐ Create security tests for all findings
82
+ 10. ☐ Verify all security tests pass before closing
83
+
84
+ ## Expertise
85
+
86
+ Deep knowledge loaded via skills on-demand:
87
+
88
+ | Domain | Source |
89
+ |--------|--------|
90
+ | Security Analysis & OWASP/WAF | `.github/skills/security-analysis/SKILL.md` |
90
91
 
91
- ## Areas of Expertise
92
-
93
- ### Azure Well-Architected Framework Security
94
- - SE:01 Security baseline establishment
95
- - SE:02 Secure development lifecycle (SDL)
96
- - SE:03 Data classification and protection
97
- - SE:04 Segmentation and perimeters
98
- - SE:05 Identity and access management (IAM)
99
- - SE:06 Network security controls
100
- - SE:07 Encryption (at rest, in transit, in use)
101
- - SE:08 Resource hardening
102
- - SE:09 Secret management
103
- - SE:10 Threat detection and monitoring
104
- - SE:11 Security testing regimen
105
- - SE:12 Incident response procedures
106
-
107
- ### OWASP Top 10:2025
108
- - A01: Broken Access Control
109
- - A02: Security Misconfiguration
110
- - A03: Software Supply Chain Failures
111
- - A04: Cryptographic Failures
112
- - A05: Injection
113
- - A06: Insecure Design
114
- - A07: Authentication Failures
115
- - A08: Software or Data Integrity Failures
116
- - A09: Security Logging and Alerting Failures
117
- - A10: Mishandling of Exceptional Conditions
118
-
119
- ### Application Security
120
- - Threat modeling (STRIDE, PASTA)
121
- - Secure code review patterns
122
- - Authentication/Authorization flows
123
- - API security (OAuth 2.0, JWT, API keys)
124
- - Input validation and sanitization
125
- - Output encoding
126
- - Session management
127
- - CSRF/XSS/SSRF prevention
128
-
129
- ### Cloud & Infrastructure Security
130
- - Azure security services (Defender, Sentinel, Key Vault)
131
- - Network segmentation and NSGs
132
- - Private endpoints and service endpoints
133
- - Managed identities
134
- - RBAC and conditional access
135
- - Secret rotation and management
92
+ Core competencies (always available): Azure WAF SE:01–SE:12, OWASP Top 10:2025 (A01–A10), STRIDE/PASTA threat modeling, secure code review, OAuth 2.0/JWT/API key security, input validation, output encoding, CSRF/XSS/SSRF prevention, Azure Defender/Sentinel/Key Vault, network segmentation, managed identities, RBAC, secret rotation.
136
93
 
137
94
  ## Communication Protocol
138
95