specweave 0.4.1 → 0.6.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 (392) hide show
  1. package/.claude-plugin/README.md +325 -0
  2. package/.claude-plugin/marketplace.json +210 -0
  3. package/CLAUDE.md +871 -596
  4. package/README.md +188 -137
  5. package/bin/install-agents.sh +1 -1
  6. package/bin/install-commands.sh +66 -14
  7. package/bin/install-hooks.sh +1 -1
  8. package/bin/install-skills.sh +1 -1
  9. package/bin/specweave.js +2 -0
  10. package/dist/adapters/claude/adapter.d.ts +49 -11
  11. package/dist/adapters/claude/adapter.d.ts.map +1 -1
  12. package/dist/adapters/claude/adapter.js +175 -42
  13. package/dist/adapters/claude/adapter.js.map +1 -1
  14. package/dist/adapters/copilot/adapter.d.ts +20 -2
  15. package/dist/adapters/copilot/adapter.d.ts.map +1 -1
  16. package/dist/adapters/copilot/adapter.js +117 -7
  17. package/dist/adapters/copilot/adapter.js.map +1 -1
  18. package/dist/adapters/cursor/adapter.d.ts +18 -0
  19. package/dist/adapters/cursor/adapter.d.ts.map +1 -1
  20. package/dist/adapters/cursor/adapter.js +55 -3
  21. package/dist/adapters/cursor/adapter.js.map +1 -1
  22. package/dist/adapters/generic/adapter.d.ts +18 -0
  23. package/dist/adapters/generic/adapter.d.ts.map +1 -1
  24. package/dist/adapters/generic/adapter.js +55 -3
  25. package/dist/adapters/generic/adapter.js.map +1 -1
  26. package/dist/cli/commands/init.d.ts +1 -0
  27. package/dist/cli/commands/init.d.ts.map +1 -1
  28. package/dist/cli/commands/init.js +346 -124
  29. package/dist/cli/commands/init.js.map +1 -1
  30. package/dist/cli/commands/install.d.ts +2 -0
  31. package/dist/cli/commands/install.d.ts.map +1 -1
  32. package/dist/cli/commands/install.js +28 -25
  33. package/dist/cli/commands/install.js.map +1 -1
  34. package/dist/cli/commands/list.d.ts +2 -0
  35. package/dist/cli/commands/list.d.ts.map +1 -1
  36. package/dist/cli/commands/list.js +26 -24
  37. package/dist/cli/commands/list.js.map +1 -1
  38. package/dist/cli/commands/plugin.d.ts +7 -1
  39. package/dist/cli/commands/plugin.d.ts.map +1 -1
  40. package/dist/cli/commands/plugin.js +72 -61
  41. package/dist/cli/commands/plugin.js.map +1 -1
  42. package/dist/core/i18n/language-detector.d.ts +29 -0
  43. package/dist/core/i18n/language-detector.d.ts.map +1 -0
  44. package/dist/core/i18n/language-detector.js +143 -0
  45. package/dist/core/i18n/language-detector.js.map +1 -0
  46. package/dist/core/i18n/language-manager.d.ts +101 -0
  47. package/dist/core/i18n/language-manager.d.ts.map +1 -0
  48. package/dist/core/i18n/language-manager.js +232 -0
  49. package/dist/core/i18n/language-manager.js.map +1 -0
  50. package/dist/core/i18n/language-registry.d.ts +44 -0
  51. package/dist/core/i18n/language-registry.d.ts.map +1 -0
  52. package/dist/core/i18n/language-registry.js +234 -0
  53. package/dist/core/i18n/language-registry.js.map +1 -0
  54. package/dist/core/i18n/locale-manager.d.ts +62 -0
  55. package/dist/core/i18n/locale-manager.d.ts.map +1 -0
  56. package/dist/core/i18n/locale-manager.js +137 -0
  57. package/dist/core/i18n/locale-manager.js.map +1 -0
  58. package/dist/core/i18n/system-prompt-injector.d.ts +33 -0
  59. package/dist/core/i18n/system-prompt-injector.d.ts.map +1 -0
  60. package/dist/core/i18n/system-prompt-injector.js +131 -0
  61. package/dist/core/i18n/system-prompt-injector.js.map +1 -0
  62. package/dist/core/i18n/types.d.ts +151 -0
  63. package/dist/core/i18n/types.d.ts.map +1 -0
  64. package/dist/core/i18n/types.js +11 -0
  65. package/dist/core/i18n/types.js.map +1 -0
  66. package/dist/core/increment-status.d.ts +72 -0
  67. package/dist/core/increment-status.d.ts.map +1 -0
  68. package/dist/core/increment-status.js +227 -0
  69. package/dist/core/increment-status.js.map +1 -0
  70. package/dist/core/plugin-loader.d.ts +33 -13
  71. package/dist/core/plugin-loader.d.ts.map +1 -1
  72. package/dist/core/plugin-loader.js +145 -43
  73. package/dist/core/plugin-loader.js.map +1 -1
  74. package/dist/core/types/config.d.ts +51 -0
  75. package/dist/core/types/config.d.ts.map +1 -0
  76. package/dist/core/types/config.js +21 -0
  77. package/dist/core/types/config.js.map +1 -0
  78. package/dist/core/types/plugin.d.ts +73 -42
  79. package/dist/core/types/plugin.d.ts.map +1 -1
  80. package/dist/core/types/plugin.js +4 -3
  81. package/dist/core/types/plugin.js.map +1 -1
  82. package/dist/hooks/lib/sync-living-docs.d.ts +27 -0
  83. package/dist/hooks/lib/sync-living-docs.d.ts.map +1 -0
  84. package/dist/hooks/lib/sync-living-docs.js +116 -0
  85. package/dist/hooks/lib/sync-living-docs.js.map +1 -0
  86. package/dist/hooks/lib/translate-living-docs.d.ts +13 -0
  87. package/dist/hooks/lib/translate-living-docs.d.ts.map +1 -0
  88. package/dist/hooks/lib/translate-living-docs.js +166 -0
  89. package/dist/hooks/lib/translate-living-docs.js.map +1 -0
  90. package/dist/hooks/lib/update-tasks-md.d.ts +29 -0
  91. package/dist/hooks/lib/update-tasks-md.d.ts.map +1 -0
  92. package/dist/hooks/lib/update-tasks-md.js +203 -0
  93. package/dist/hooks/lib/update-tasks-md.js.map +1 -0
  94. package/dist/integrations/jira/jira-incremental-mapper.js.map +1 -1
  95. package/dist/integrations/jira/jira-mapper.js.map +1 -1
  96. package/dist/locales/de/.gitkeep +0 -0
  97. package/dist/locales/de/cli.json +108 -0
  98. package/dist/locales/en/cli.json +269 -0
  99. package/dist/locales/en/errors.json +7 -0
  100. package/dist/locales/en/templates.json +6 -0
  101. package/dist/locales/es/.gitkeep +0 -0
  102. package/dist/locales/es/cli.json +41 -0
  103. package/dist/locales/fr/.gitkeep +0 -0
  104. package/dist/locales/fr/cli.json +108 -0
  105. package/dist/locales/ja/.gitkeep +0 -0
  106. package/dist/locales/ja/cli.json +108 -0
  107. package/dist/locales/ko/.gitkeep +0 -0
  108. package/dist/locales/ko/cli.json +108 -0
  109. package/dist/locales/pt/.gitkeep +0 -0
  110. package/dist/locales/pt/cli.json +108 -0
  111. package/dist/locales/ru/.gitkeep +0 -0
  112. package/dist/locales/ru/cli.json +269 -0
  113. package/dist/locales/zh/.gitkeep +0 -0
  114. package/dist/locales/zh/cli.json +108 -0
  115. package/dist/plugins/specweave-github/lib/github-client.d.ts +86 -0
  116. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -0
  117. package/dist/plugins/specweave-github/lib/github-client.js +275 -0
  118. package/dist/plugins/specweave-github/lib/github-client.js.map +1 -0
  119. package/dist/plugins/specweave-github/lib/index.d.ts +10 -0
  120. package/dist/plugins/specweave-github/lib/index.d.ts.map +1 -0
  121. package/dist/plugins/specweave-github/lib/index.js +10 -0
  122. package/dist/plugins/specweave-github/lib/index.js.map +1 -0
  123. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +51 -0
  124. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +1 -0
  125. package/dist/plugins/specweave-github/lib/subtask-sync.js +147 -0
  126. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +1 -0
  127. package/dist/plugins/specweave-github/lib/task-parser.d.ts +37 -0
  128. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +1 -0
  129. package/dist/plugins/specweave-github/lib/task-parser.js +211 -0
  130. package/dist/plugins/specweave-github/lib/task-parser.js.map +1 -0
  131. package/dist/plugins/specweave-github/lib/task-sync.d.ts +51 -0
  132. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -0
  133. package/dist/plugins/specweave-github/lib/task-sync.js +332 -0
  134. package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -0
  135. package/dist/plugins/specweave-github/lib/types.d.ts +80 -0
  136. package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -0
  137. package/dist/plugins/specweave-github/lib/types.js +5 -0
  138. package/dist/plugins/specweave-github/lib/types.js.map +1 -0
  139. package/dist/utils/agents-md-compiler.d.ts +68 -0
  140. package/dist/utils/agents-md-compiler.d.ts.map +1 -0
  141. package/dist/utils/agents-md-compiler.js +420 -0
  142. package/dist/utils/agents-md-compiler.js.map +1 -0
  143. package/dist/utils/generate-skills-index.js +4 -4
  144. package/dist/utils/generate-skills-index.js.map +1 -1
  145. package/package.json +12 -13
  146. package/plugins/specweave-ado/.claude-plugin/plugin.json +8 -0
  147. package/plugins/specweave-alternatives/.claude-plugin/plugin.json +8 -0
  148. package/plugins/specweave-alternatives/skills/bmad-method-expert/SKILL.md +626 -0
  149. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/analyze-project.js +318 -0
  150. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/check-setup.js +208 -0
  151. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/generate-template.js +1149 -0
  152. package/plugins/specweave-alternatives/skills/bmad-method-expert/scripts/validate-documents.js +340 -0
  153. package/plugins/specweave-alternatives/skills/spec-kit-expert/SKILL.md +1010 -0
  154. package/plugins/specweave-backend/.claude-plugin/plugin.json +8 -0
  155. package/plugins/specweave-core/.claude-plugin/plugin.json +25 -0
  156. package/{src → plugins/specweave-core}/agents/pm/AGENT.md +80 -0
  157. package/plugins/specweave-core/agents/translator/AGENT.md +282 -0
  158. package/{src → plugins/specweave-core}/commands/README.md +11 -11
  159. package/{src → plugins/specweave-core}/commands/specweave.costs.md +7 -7
  160. package/{src → plugins/specweave-core}/commands/specweave.do.md +34 -7
  161. package/{src → plugins/specweave-core}/commands/specweave.increment.md +83 -18
  162. package/{src → plugins/specweave-core}/commands/specweave.md +49 -17
  163. package/{src → plugins/specweave-core}/commands/specweave.sync-docs.md +5 -5
  164. package/plugins/specweave-core/commands/specweave.translate.md +425 -0
  165. package/{src → plugins/specweave-core}/commands/specweave.validate.md +1 -1
  166. package/plugins/specweave-core/hooks/hooks.json +13 -0
  167. package/plugins/specweave-core/hooks/post-task-completion.sh +265 -0
  168. package/plugins/specweave-core/skills/SKILLS-INDEX.md +229 -0
  169. package/{src → plugins/specweave-core}/skills/brownfield-analyzer/SKILL.md +66 -24
  170. package/{src → plugins/specweave-core}/skills/context-loader/SKILL.md +1 -1
  171. package/plugins/specweave-core/skills/context-optimizer/SKILL.md +588 -0
  172. package/plugins/specweave-core/skills/docs-updater/SKILL.md +0 -0
  173. package/{src → plugins/specweave-core}/skills/increment-planner/SKILL.md +81 -4
  174. package/plugins/specweave-core/skills/plugin-detector/SKILL.md +211 -0
  175. package/{src → plugins/specweave-core}/skills/project-kickstarter/SKILL.md +7 -7
  176. package/plugins/specweave-core/skills/rfc-generator/SKILL.md +369 -0
  177. package/{src → plugins/specweave-core}/skills/specweave-detector/SKILL.md +2 -2
  178. package/plugins/specweave-core/skills/specweave-framework/SKILL.md +498 -0
  179. package/plugins/specweave-core/skills/specweave-framework/test-cases/test-1-increment-naming.yaml +11 -0
  180. package/plugins/specweave-core/skills/specweave-framework/test-cases/test-2-source-of-truth.yaml +11 -0
  181. package/plugins/specweave-core/skills/specweave-framework/test-cases/test-3-increment-discipline.yaml +12 -0
  182. package/plugins/specweave-core/skills/specweave-framework/test-cases/test-4-file-placement.yaml +11 -0
  183. package/{src → plugins/specweave-core}/skills/tdd-workflow/SKILL.md +20 -20
  184. package/plugins/specweave-core/skills/translator/SKILL.md +172 -0
  185. package/plugins/specweave-cost-optimizer/.claude-plugin/plugin.json +8 -0
  186. package/plugins/specweave-diagrams/.claude-plugin/plugin.json +8 -0
  187. package/plugins/specweave-docs/.claude-plugin/plugin.json +8 -0
  188. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +526 -0
  189. package/plugins/specweave-figma/.claude-plugin/.mcp.json +12 -0
  190. package/plugins/specweave-figma/.claude-plugin/plugin.json +8 -0
  191. package/plugins/specweave-figma/ARCHITECTURE.md +453 -0
  192. package/plugins/specweave-figma/README.md +728 -0
  193. package/plugins/specweave-figma/skills/figma-to-code/SKILL.md +632 -0
  194. package/plugins/specweave-figma/skills/figma-to-code/test-1-token-generation.yaml +29 -0
  195. package/plugins/specweave-figma/skills/figma-to-code/test-2-component-generation.yaml +27 -0
  196. package/plugins/specweave-figma/skills/figma-to-code/test-3-typescript-generation.yaml +28 -0
  197. package/plugins/specweave-frontend/.claude-plugin/plugin.json +8 -0
  198. package/plugins/specweave-github/.claude-plugin/plugin.json +8 -0
  199. package/plugins/specweave-github/agents/github-manager/AGENT.md +651 -0
  200. package/plugins/specweave-github/commands/github-close-issue.md +418 -0
  201. package/plugins/specweave-github/commands/github-create-issue.md +307 -0
  202. package/plugins/specweave-github/commands/github-status.md +533 -0
  203. package/plugins/specweave-github/commands/github-sync-tasks.md +530 -0
  204. package/plugins/specweave-github/commands/github-sync.md +443 -0
  205. package/plugins/specweave-github/lib/github-client.ts +330 -0
  206. package/plugins/specweave-github/lib/index.ts +10 -0
  207. package/plugins/specweave-github/lib/subtask-sync.ts +225 -0
  208. package/plugins/specweave-github/lib/task-parser.ts +246 -0
  209. package/plugins/specweave-github/lib/task-sync.ts +402 -0
  210. package/plugins/specweave-github/lib/types.ts +86 -0
  211. package/plugins/specweave-github/skills/github-issue-tracker/SKILL.md +497 -0
  212. package/plugins/specweave-github/skills/github-sync/SKILL.md +461 -0
  213. package/plugins/specweave-infrastructure/.claude-plugin/plugin.json +8 -0
  214. package/plugins/specweave-jira/.claude-plugin/plugin.json +8 -0
  215. package/{src → plugins/specweave-jira}/commands/specweave.sync-jira.md +18 -18
  216. package/plugins/specweave-kubernetes/.claude-plugin/plugin.json +8 -0
  217. package/plugins/specweave-ml/.claude-plugin/plugin.json +39 -0
  218. package/plugins/specweave-ml/README.md +885 -0
  219. package/plugins/specweave-ml/agents/ml-engineer/AGENT.md +402 -0
  220. package/plugins/specweave-ml/commands/ml-deploy.md +116 -0
  221. package/plugins/specweave-ml/commands/ml-evaluate.md +87 -0
  222. package/plugins/specweave-ml/commands/ml-explain.md +83 -0
  223. package/plugins/specweave-ml/skills/anomaly-detector/SKILL.md +559 -0
  224. package/plugins/specweave-ml/skills/automl-optimizer/SKILL.md +485 -0
  225. package/plugins/specweave-ml/skills/cv-pipeline-builder/SKILL.md +157 -0
  226. package/plugins/specweave-ml/skills/data-visualizer/SKILL.md +521 -0
  227. package/plugins/specweave-ml/skills/experiment-tracker/SKILL.md +535 -0
  228. package/plugins/specweave-ml/skills/feature-engineer/SKILL.md +566 -0
  229. package/plugins/specweave-ml/skills/ml-deployment-helper/SKILL.md +345 -0
  230. package/plugins/specweave-ml/skills/ml-pipeline-orchestrator/SKILL.md +518 -0
  231. package/plugins/specweave-ml/skills/model-evaluator/SKILL.md +155 -0
  232. package/plugins/specweave-ml/skills/model-explainer/SKILL.md +227 -0
  233. package/plugins/specweave-ml/skills/model-registry/SKILL.md +541 -0
  234. package/plugins/specweave-ml/skills/nlp-pipeline-builder/SKILL.md +180 -0
  235. package/plugins/specweave-ml/skills/time-series-forecaster/SKILL.md +569 -0
  236. package/plugins/specweave-payments/.claude-plugin/plugin.json +8 -0
  237. package/plugins/specweave-testing/.claude-plugin/plugin.json +8 -0
  238. package/plugins/specweave-tooling/.claude-plugin/plugin.json +8 -0
  239. package/plugins/specweave-ui/.claude-plugin/plugin.json +106 -0
  240. package/plugins/specweave-ui/.mcp.json +14 -0
  241. package/plugins/specweave-ui/README.md +386 -0
  242. package/src/adapters/claude/adapter.ts +193 -46
  243. package/src/adapters/copilot/adapter.ts +132 -7
  244. package/src/adapters/cursor/adapter.ts +62 -3
  245. package/src/adapters/generic/adapter.ts +62 -3
  246. package/src/templates/AGENTS.md.template +170 -1
  247. package/src/templates/CLAUDE.md.template +122 -24
  248. package/src/templates/tasks.md.template +261 -0
  249. package/src/agents/ml-engineer/AGENT.md +0 -150
  250. package/src/commands/specweave.sync-github.md +0 -269
  251. package/src/hooks/post-task-completion.sh +0 -121
  252. package/src/skills/SKILLS-INDEX.md +0 -444
  253. package/src/skills/github-sync/SKILL.md +0 -234
  254. /package/{src → plugins/specweave-ado}/skills/ado-sync/README.md +0 -0
  255. /package/{src → plugins/specweave-ado}/skills/ado-sync/SKILL.md +0 -0
  256. /package/{src → plugins/specweave-ado}/skills/specweave-ado-mapper/SKILL.md +0 -0
  257. /package/{src → plugins/specweave-backend}/agents/database-optimizer/AGENT.md +0 -0
  258. /package/{src → plugins/specweave-backend}/skills/dotnet-backend/SKILL.md +0 -0
  259. /package/{src → plugins/specweave-backend}/skills/nodejs-backend/SKILL.md +0 -0
  260. /package/{src → plugins/specweave-backend}/skills/python-backend/SKILL.md +0 -0
  261. /package/{src → plugins/specweave-core}/agents/architect/AGENT.md +0 -0
  262. /package/{src → plugins/specweave-core}/agents/code-reviewer.md +0 -0
  263. /package/{src → plugins/specweave-core}/agents/docs-writer/AGENT.md +0 -0
  264. /package/{src → plugins/specweave-core}/agents/performance/AGENT.md +0 -0
  265. /package/{src → plugins/specweave-core}/agents/qa-lead/AGENT.md +0 -0
  266. /package/{src → plugins/specweave-core}/agents/security/AGENT.md +0 -0
  267. /package/{src → plugins/specweave-core}/agents/tdd-orchestrator/AGENT.md +0 -0
  268. /package/{src → plugins/specweave-core}/agents/tech-lead/AGENT.md +0 -0
  269. /package/{src → plugins/specweave-core}/commands/specweave.done.md +0 -0
  270. /package/{src → plugins/specweave-core}/commands/specweave.inc.md +0 -0
  271. /package/{src → plugins/specweave-core}/commands/specweave.list-increments.md +0 -0
  272. /package/{src → plugins/specweave-core}/commands/specweave.next.md +0 -0
  273. /package/{src → plugins/specweave-core}/commands/specweave.progress.md +0 -0
  274. /package/{src → plugins/specweave-core}/commands/specweave.tdd-cycle.md +0 -0
  275. /package/{src → plugins/specweave-core}/commands/specweave.tdd-green.md +0 -0
  276. /package/{src → plugins/specweave-core}/commands/specweave.tdd-red.md +0 -0
  277. /package/{src → plugins/specweave-core}/commands/specweave.tdd-refactor.md +0 -0
  278. /package/{src → plugins/specweave-core}/hooks/README.md +0 -0
  279. /package/{src → plugins/specweave-core}/hooks/docs-changed.sh +0 -0
  280. /package/{src → plugins/specweave-core}/hooks/human-input-required.sh +0 -0
  281. /package/{src → plugins/specweave-core}/hooks/post-increment-plugin-detect.sh +0 -0
  282. /package/{src → plugins/specweave-core}/hooks/pre-implementation.sh +0 -0
  283. /package/{src → plugins/specweave-core}/hooks/pre-task-plugin-detect.sh +0 -0
  284. /package/{src → plugins/specweave-core}/skills/brownfield-onboarder/SKILL.md +0 -0
  285. /package/{src → plugins/specweave-core}/skills/docs-updater/README.md +0 -0
  286. /package/{src → plugins/specweave-core}/skills/increment-planner/scripts/feature-utils.js +0 -0
  287. /package/{src → plugins/specweave-core}/skills/increment-quality-judge/SKILL.md +0 -0
  288. /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-1-high-confidence-full-product.yaml +0 -0
  289. /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-2-medium-confidence-partial.yaml +0 -0
  290. /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-3-low-confidence-technical-question.yaml +0 -0
  291. /package/{src → plugins/specweave-core}/skills/project-kickstarter/test-cases/test-4-opt-out-explicit.yaml +0 -0
  292. /package/{src → plugins/specweave-core}/skills/role-orchestrator/README.md +0 -0
  293. /package/{src → plugins/specweave-core}/skills/role-orchestrator/SKILL.md +0 -0
  294. /package/{src → plugins/specweave-core}/skills/task-builder/README.md +0 -0
  295. /package/{src → plugins/specweave-cost-optimizer}/skills/cost-optimizer/SKILL.md +0 -0
  296. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/AGENT.md +0 -0
  297. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-component-template.mmd +0 -0
  298. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-container-template.mmd +0 -0
  299. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/c4-context-template.mmd +0 -0
  300. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/deployment-template.mmd +0 -0
  301. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/er-diagram-template.mmd +0 -0
  302. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/templates/sequence-template.mmd +0 -0
  303. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-1-c4-context.yaml +0 -0
  304. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-2-sequence.yaml +0 -0
  305. /package/{src → plugins/specweave-diagrams}/agents/diagrams-architect/test-cases/test-3-er-diagram.yaml +0 -0
  306. /package/{src → plugins/specweave-diagrams}/skills/diagrams-architect/SKILL.md +0 -0
  307. /package/{src → plugins/specweave-diagrams}/skills/diagrams-generator/SKILL.md +0 -0
  308. /package/{src → plugins/specweave-docs}/skills/spec-driven-brainstorming/README.md +0 -0
  309. /package/{src → plugins/specweave-docs}/skills/spec-driven-brainstorming/SKILL.md +0 -0
  310. /package/{src → plugins/specweave-docs}/skills/spec-driven-debugging/README.md +0 -0
  311. /package/{src → plugins/specweave-docs}/skills/spec-driven-debugging/SKILL.md +0 -0
  312. /package/{src → plugins/specweave-frontend}/skills/design-system-architect/SKILL.md +0 -0
  313. /package/{src → plugins/specweave-frontend}/skills/frontend/SKILL.md +0 -0
  314. /package/{src → plugins/specweave-frontend}/skills/nextjs/SKILL.md +0 -0
  315. /package/{src → plugins/specweave-infrastructure}/agents/devops/AGENT.md +0 -0
  316. /package/{src → plugins/specweave-infrastructure}/agents/network-engineer/AGENT.md +0 -0
  317. /package/{src → plugins/specweave-infrastructure}/agents/observability-engineer/AGENT.md +0 -0
  318. /package/{src → plugins/specweave-infrastructure}/agents/performance-engineer/AGENT.md +0 -0
  319. /package/{src → plugins/specweave-infrastructure}/agents/sre/AGENT.md +0 -0
  320. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/backend-diagnostics.md +0 -0
  321. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/database-diagnostics.md +0 -0
  322. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/infrastructure.md +0 -0
  323. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/monitoring.md +0 -0
  324. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/security-incidents.md +0 -0
  325. /package/{src → plugins/specweave-infrastructure}/agents/sre/modules/ui-diagnostics.md +0 -0
  326. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/01-high-cpu-usage.md +0 -0
  327. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/02-database-deadlock.md +0 -0
  328. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/03-memory-leak.md +0 -0
  329. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/04-slow-api-response.md +0 -0
  330. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/05-ddos-attack.md +0 -0
  331. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/06-disk-full.md +0 -0
  332. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/07-service-down.md +0 -0
  333. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/08-data-corruption.md +0 -0
  334. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/09-cascade-failure.md +0 -0
  335. /package/{src → plugins/specweave-infrastructure}/agents/sre/playbooks/10-rate-limit-exceeded.md +0 -0
  336. /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/health-check.sh +0 -0
  337. /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/log-analyzer.py +0 -0
  338. /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/metrics-collector.sh +0 -0
  339. /package/{src → plugins/specweave-infrastructure}/agents/sre/scripts/trace-analyzer.js +0 -0
  340. /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/incident-report.md +0 -0
  341. /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/mitigation-plan.md +0 -0
  342. /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/post-mortem.md +0 -0
  343. /package/{src → plugins/specweave-infrastructure}/agents/sre/templates/runbook-template.md +0 -0
  344. /package/{src → plugins/specweave-infrastructure}/commands/specweave.monitor-setup.md +0 -0
  345. /package/{src → plugins/specweave-infrastructure}/commands/specweave.slo-implement.md +0 -0
  346. /package/{src → plugins/specweave-infrastructure}/skills/distributed-tracing/SKILL.md +0 -0
  347. /package/{src → plugins/specweave-infrastructure}/skills/grafana-dashboards/SKILL.md +0 -0
  348. /package/{src → plugins/specweave-infrastructure}/skills/hetzner-provisioner/README.md +0 -0
  349. /package/{src → plugins/specweave-infrastructure}/skills/hetzner-provisioner/SKILL.md +0 -0
  350. /package/{src → plugins/specweave-infrastructure}/skills/prometheus-configuration/SKILL.md +0 -0
  351. /package/{src → plugins/specweave-infrastructure}/skills/slo-implementation/SKILL.md +0 -0
  352. /package/{src → plugins/specweave-jira}/skills/jira-sync/README.md +0 -0
  353. /package/{src → plugins/specweave-jira}/skills/jira-sync/SKILL.md +0 -0
  354. /package/{src → plugins/specweave-jira}/skills/specweave-jira-mapper/SKILL.md +0 -0
  355. /package/{src → plugins/specweave-kubernetes}/agents/kubernetes-architect/AGENT.md +0 -0
  356. /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/SKILL.md +0 -0
  357. /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/references/argocd-setup.md +0 -0
  358. /package/{src → plugins/specweave-kubernetes}/skills/gitops-workflow/references/sync-policies.md +0 -0
  359. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/SKILL.md +0 -0
  360. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/assets/Chart.yaml.template +0 -0
  361. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/assets/values.yaml.template +0 -0
  362. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/references/chart-structure.md +0 -0
  363. /package/{src → plugins/specweave-kubernetes}/skills/helm-chart-scaffolding/scripts/validate-chart.sh +0 -0
  364. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/SKILL.md +0 -0
  365. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/configmap-template.yaml +0 -0
  366. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/deployment-template.yaml +0 -0
  367. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/assets/service-template.yaml +0 -0
  368. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/references/deployment-spec.md +0 -0
  369. /package/{src → plugins/specweave-kubernetes}/skills/k8s-manifest-generator/references/service-spec.md +0 -0
  370. /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/SKILL.md +0 -0
  371. /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/assets/network-policy-template.yaml +0 -0
  372. /package/{src → plugins/specweave-kubernetes}/skills/k8s-security-policies/references/rbac-patterns.md +0 -0
  373. /package/{src → plugins/specweave-ml}/agents/data-scientist/AGENT.md +0 -0
  374. /package/{src → plugins/specweave-ml}/agents/mlops-engineer/AGENT.md +0 -0
  375. /package/{src → plugins/specweave-ml}/commands/specweave.ml-pipeline.md +0 -0
  376. /package/{src → plugins/specweave-ml}/skills/ml-pipeline-workflow/SKILL.md +0 -0
  377. /package/{src → plugins/specweave-payments}/agents/payment-integration/AGENT.md +0 -0
  378. /package/{src → plugins/specweave-payments}/skills/billing-automation/SKILL.md +0 -0
  379. /package/{src → plugins/specweave-payments}/skills/paypal-integration/SKILL.md +0 -0
  380. /package/{src → plugins/specweave-payments}/skills/pci-compliance/SKILL.md +0 -0
  381. /package/{src → plugins/specweave-payments}/skills/stripe-integration/SKILL.md +0 -0
  382. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/README.md +0 -0
  383. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/SKILL.md +0 -0
  384. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/execute.js +0 -0
  385. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/lib/utils.js +0 -0
  386. /package/{src → plugins/specweave-testing}/skills/e2e-playwright/package.json +0 -0
  387. /package/{src → plugins/specweave-tooling}/skills/skill-creator/LICENSE.txt +0 -0
  388. /package/{src → plugins/specweave-tooling}/skills/skill-creator/SKILL.md +0 -0
  389. /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/init_skill.py +0 -0
  390. /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/package_skill.py +0 -0
  391. /package/{src → plugins/specweave-tooling}/skills/skill-creator/scripts/quick_validate.py +0 -0
  392. /package/{src → plugins/specweave-tooling}/skills/skill-router/SKILL.md +0 -0
@@ -0,0 +1,559 @@
1
+ ---
2
+ name: anomaly-detector
3
+ description: |
4
+ Anomaly and outlier detection using Isolation Forest, One-Class SVM, autoencoders, and statistical methods. Activates for "anomaly detection", "outlier detection", "fraud detection", "intrusion detection", "abnormal behavior", "unusual patterns", "detect anomalies", "system monitoring". Handles supervised and unsupervised anomaly detection with SpecWeave increment integration.
5
+ ---
6
+
7
+ # Anomaly Detector
8
+
9
+ ## Overview
10
+
11
+ Detect unusual patterns, outliers, and anomalies in data using statistical methods, machine learning, and deep learning. Critical for fraud detection, security monitoring, quality control, and system health monitoring—all integrated with SpecWeave's increment workflow.
12
+
13
+ ## Why Anomaly Detection is Different
14
+
15
+ **Challenge**: Anomalies are rare (0.1% - 5% of data)
16
+
17
+ **Standard classification doesn't work**:
18
+ - ❌ Extreme class imbalance
19
+ - ❌ Unknown anomaly patterns
20
+ - ❌ Expensive to label anomalies
21
+ - ❌ Anomalies evolve over time
22
+
23
+ **Anomaly detection approaches**:
24
+ - ✅ Unsupervised (no labels needed)
25
+ - ✅ Semi-supervised (learn from normal data)
26
+ - ✅ Statistical (deviation from expected)
27
+ - ✅ Context-aware (what's normal for this user/time/location?)
28
+
29
+ ## Anomaly Detection Methods
30
+
31
+ ### 1. Statistical Methods (Baseline)
32
+
33
+ **Z-Score / Standard Deviation**:
34
+ ```python
35
+ from specweave import AnomalyDetector
36
+
37
+ detector = AnomalyDetector(
38
+ method="statistical",
39
+ increment="0042"
40
+ )
41
+
42
+ # Flag values > 3 standard deviations from mean
43
+ anomalies = detector.detect(
44
+ data=transaction_amounts,
45
+ threshold=3.0
46
+ )
47
+
48
+ # Simple, fast, but assumes normal distribution
49
+ ```
50
+
51
+ **IQR (Interquartile Range)**:
52
+ ```python
53
+ # More robust to non-normal distributions
54
+ detector = AnomalyDetector(method="iqr")
55
+
56
+ # Flag values outside [Q1 - 1.5*IQR, Q3 + 1.5*IQR]
57
+ anomalies = detector.detect(data=response_times)
58
+
59
+ # Good for skewed distributions
60
+ ```
61
+
62
+ ### 2. Isolation Forest (Recommended)
63
+
64
+ **Best for**: General purpose, high-dimensional data
65
+
66
+ ```python
67
+ from specweave import IsolationForestDetector
68
+
69
+ detector = IsolationForestDetector(
70
+ contamination=0.05, # Expected anomaly rate (5%)
71
+ increment="0042"
72
+ )
73
+
74
+ # Train on normal data (or mixed data)
75
+ detector.fit(X_train)
76
+
77
+ # Detect anomalies
78
+ predictions = detector.predict(X_test)
79
+ # -1 = anomaly, 1 = normal
80
+
81
+ anomaly_scores = detector.score(X_test)
82
+ # Lower score = more anomalous
83
+
84
+ # Generates:
85
+ # - Anomaly scores for all samples
86
+ # - Feature importance (which features contribute to anomaly)
87
+ # - Threshold visualization
88
+ # - Top anomalies ranked by score
89
+ ```
90
+
91
+ **Why Isolation Forest works**:
92
+ - Fast (O(n log n))
93
+ - Handles high dimensions well
94
+ - No assumptions about data distribution
95
+ - Anomalies are easier to isolate (fewer splits)
96
+
97
+ ### 3. One-Class SVM
98
+
99
+ **Best for**: When you have only normal data for training
100
+
101
+ ```python
102
+ from specweave import OneClassSVMDetector
103
+
104
+ # Train only on normal transactions
105
+ detector = OneClassSVMDetector(
106
+ kernel='rbf',
107
+ nu=0.05, # Expected anomaly rate
108
+ increment="0042"
109
+ )
110
+
111
+ detector.fit(X_normal)
112
+
113
+ # Detect anomalies in new data
114
+ predictions = detector.predict(X_new)
115
+ # -1 = anomaly, 1 = normal
116
+
117
+ # Good for: Clean training data of normal samples
118
+ ```
119
+
120
+ ### 4. Autoencoders (Deep Learning)
121
+
122
+ **Best for**: Complex patterns, high-dimensional data, images
123
+
124
+ ```python
125
+ from specweave import AutoencoderDetector
126
+
127
+ # Learn to reconstruct normal data
128
+ detector = AutoencoderDetector(
129
+ encoding_dim=32, # Compressed representation
130
+ layers=[64, 32, 16, 32, 64],
131
+ increment="0042"
132
+ )
133
+
134
+ # Train on normal data
135
+ detector.fit(
136
+ X_normal,
137
+ epochs=100,
138
+ validation_split=0.2
139
+ )
140
+
141
+ # Anomalies have high reconstruction error
142
+ anomaly_scores = detector.score(X_test)
143
+
144
+ # Generates:
145
+ # - Reconstruction error distribution
146
+ # - Threshold recommendation
147
+ # - Top anomalies with explanations
148
+ # - Learned representations (t-SNE plot)
149
+ ```
150
+
151
+ **How autoencoders work**:
152
+ ```
153
+ Input → Encoder → Compressed → Decoder → Reconstructed
154
+
155
+ Normal data: Low reconstruction error (learned well)
156
+ Anomalies: High reconstruction error (never seen before)
157
+ ```
158
+
159
+ ### 5. LOF (Local Outlier Factor)
160
+
161
+ **Best for**: Density-based anomalies (sparse regions)
162
+
163
+ ```python
164
+ from specweave import LOFDetector
165
+
166
+ # Detects points in low-density regions
167
+ detector = LOFDetector(
168
+ n_neighbors=20,
169
+ contamination=0.05,
170
+ increment="0042"
171
+ )
172
+
173
+ detector.fit(X_train)
174
+ predictions = detector.predict(X_test)
175
+
176
+ # Good for: Clustered data with sparse anomalies
177
+ ```
178
+
179
+ ## Anomaly Detection Workflows
180
+
181
+ ### Workflow 1: Fraud Detection
182
+
183
+ ```python
184
+ from specweave import FraudDetectionPipeline
185
+
186
+ pipeline = FraudDetectionPipeline(increment="0042")
187
+
188
+ # Features: transaction amount, location, time, merchant, etc.
189
+ pipeline.fit(normal_transactions)
190
+
191
+ # Real-time fraud detection
192
+ fraud_scores = pipeline.predict_proba(new_transactions)
193
+
194
+ # For each transaction:
195
+ # - Fraud probability (0-1)
196
+ # - Anomaly score
197
+ # - Contributing features
198
+ # - Similar past cases
199
+
200
+ # Generates:
201
+ # - Precision-Recall curve (fraud is rare)
202
+ # - Cost-benefit analysis (false positives vs missed fraud)
203
+ # - Feature importance for fraud
204
+ # - Fraud patterns identified
205
+ ```
206
+
207
+ **Fraud Detection Best Practices**:
208
+ ```python
209
+ # 1. Use multiple signals
210
+ pipeline.add_signals([
211
+ 'amount_vs_user_average',
212
+ 'distance_from_home',
213
+ 'merchant_risk_score',
214
+ 'velocity_24h' # Transactions in last 24h
215
+ ])
216
+
217
+ # 2. Set threshold based on cost
218
+ # False Positive cost: $5 (manual review)
219
+ # False Negative cost: $500 (fraud loss)
220
+ # Optimal threshold: Maximize (savings - review_cost)
221
+
222
+ # 3. Provide explanations
223
+ explanation = pipeline.explain_prediction(suspicious_transaction)
224
+ # "Flagged because: amount 10x user average, new merchant, foreign location"
225
+ ```
226
+
227
+ ### Workflow 2: System Anomaly Detection
228
+
229
+ ```python
230
+ from specweave import SystemAnomalyPipeline
231
+
232
+ # Monitor system metrics (CPU, memory, latency, errors)
233
+ pipeline = SystemAnomalyPipeline(increment="0042")
234
+
235
+ # Train on normal system behavior
236
+ pipeline.fit(normal_metrics)
237
+
238
+ # Detect system anomalies
239
+ anomalies = pipeline.detect(current_metrics)
240
+
241
+ # For each anomaly:
242
+ # - Severity (low, medium, high, critical)
243
+ # - Affected metrics
244
+ # - Similar past incidents
245
+ # - Recommended actions
246
+
247
+ # Generates:
248
+ # - Anomaly timeline
249
+ # - Metric correlations (which metrics moved together)
250
+ # - Root cause analysis
251
+ # - Alert rules
252
+ ```
253
+
254
+ **System Monitoring Best Practices**:
255
+ ```python
256
+ # 1. Use time windows
257
+ pipeline.add_time_windows([
258
+ '5min', # Immediate spikes
259
+ '1hour', # Short-term trends
260
+ '24hour' # Daily patterns
261
+ ])
262
+
263
+ # 2. Correlate metrics
264
+ pipeline.detect_correlations([
265
+ ('high_cpu', 'slow_response'),
266
+ ('memory_leak', 'increasing_errors')
267
+ ])
268
+
269
+ # 3. Reduce alert fatigue
270
+ pipeline.set_alert_rules(
271
+ min_severity='medium',
272
+ min_duration='5min', # Ignore transient spikes
273
+ max_alerts_per_hour=5
274
+ )
275
+ ```
276
+
277
+ ### Workflow 3: Manufacturing Quality Control
278
+
279
+ ```python
280
+ from specweave import QualityControlPipeline
281
+
282
+ # Detect defective products from sensor data
283
+ pipeline = QualityControlPipeline(increment="0042")
284
+
285
+ # Train on good products
286
+ pipeline.fit(good_product_sensors)
287
+
288
+ # Detect defects in production line
289
+ defect_scores = pipeline.predict(production_line_data)
290
+
291
+ # Generates:
292
+ # - Real-time defect alerts
293
+ # - Defect rate trends
294
+ # - Most common defect patterns
295
+ # - Preventive maintenance recommendations
296
+ ```
297
+
298
+ ### Workflow 4: Network Intrusion Detection
299
+
300
+ ```python
301
+ from specweave import IntrusionDetectionPipeline
302
+
303
+ # Detect malicious network traffic
304
+ pipeline = IntrusionDetectionPipeline(increment="0042")
305
+
306
+ # Features: packet size, frequency, ports, protocols, etc.
307
+ pipeline.fit(normal_network_traffic)
308
+
309
+ # Detect intrusions
310
+ intrusions = pipeline.detect(network_traffic_stream)
311
+
312
+ # Generates:
313
+ # - Attack type classification (DDoS, port scan, etc.)
314
+ # - Severity scores
315
+ # - Source IPs
316
+ # - Attack timeline
317
+ ```
318
+
319
+ ## Evaluation Metrics
320
+
321
+ **Anomaly detection metrics** (different from classification):
322
+
323
+ ```python
324
+ from specweave import AnomalyEvaluator
325
+
326
+ evaluator = AnomalyEvaluator(increment="0042")
327
+
328
+ metrics = evaluator.evaluate(
329
+ y_true=true_labels, # 0=normal, 1=anomaly
330
+ y_pred=predictions,
331
+ y_scores=anomaly_scores
332
+ )
333
+ ```
334
+
335
+ **Key Metrics**:
336
+
337
+ 1. **Precision @ K** - Of top K flagged anomalies, how many are real?
338
+ ```python
339
+ precision_at_100 = evaluator.precision_at_k(k=100)
340
+ # "Of 100 flagged transactions, 85 were actual fraud" = 85%
341
+ ```
342
+
343
+ 2. **Recall @ K** - Of all real anomalies, how many did we catch in top K?
344
+ ```python
345
+ recall_at_100 = evaluator.recall_at_k(k=100)
346
+ # "We caught 78% of all fraud in top 100 flagged"
347
+ ```
348
+
349
+ 3. **ROC AUC** - Overall discrimination ability
350
+ ```python
351
+ roc_auc = evaluator.roc_auc(y_true, y_scores)
352
+ # 0.95 = excellent discrimination
353
+ ```
354
+
355
+ 4. **PR AUC** - Better for imbalanced data
356
+ ```python
357
+ pr_auc = evaluator.pr_auc(y_true, y_scores)
358
+ # More informative when anomalies are rare (<5%)
359
+ ```
360
+
361
+ **Evaluation Report**:
362
+ ```markdown
363
+ # Anomaly Detection Evaluation
364
+
365
+ ## Dataset
366
+ - Total samples: 100,000
367
+ - Anomalies: 500 (0.5%)
368
+ - Features: 25
369
+
370
+ ## Method: Isolation Forest
371
+
372
+ ## Performance Metrics
373
+ - ROC AUC: 0.94 ✅ (excellent)
374
+ - PR AUC: 0.78 ✅ (good for 0.5% anomaly rate)
375
+
376
+ ## Precision-Recall Tradeoff
377
+ - Precision @ 100: 85% (85 true anomalies in top 100)
378
+ - Recall @ 100: 17% (caught 17% of all anomalies)
379
+ - Precision @ 500: 62% (310 true anomalies in top 500)
380
+ - Recall @ 500: 62% (caught 62% of all anomalies)
381
+
382
+ ## Business Impact (Fraud Detection Example)
383
+ - Review budget: 500 transactions/day
384
+ - At Precision @ 500 = 62%:
385
+ - True fraud caught: 310/day ($155,000 saved)
386
+ - False positives: 190/day ($950 review cost)
387
+ - Net benefit: $154,050/day ✅
388
+
389
+ ## Recommendation
390
+ ✅ DEPLOY with threshold for top 500 (62% precision)
391
+ ```
392
+
393
+ ## Integration with SpecWeave
394
+
395
+ ### Increment Structure
396
+
397
+ ```
398
+ .specweave/increments/0042-fraud-detection/
399
+ ├── spec.md (detection requirements, business impact)
400
+ ├── plan.md (method selection, threshold tuning)
401
+ ├── tasks.md
402
+ ├── data/
403
+ │ ├── normal_transactions.csv
404
+ │ ├── labeled_fraud.csv (if available)
405
+ │ └── schema.yaml
406
+ ├── experiments/
407
+ │ ├── statistical-baseline/
408
+ │ ├── isolation-forest/
409
+ │ ├── one-class-svm/
410
+ │ └── autoencoder/
411
+ ├── models/
412
+ │ ├── isolation_forest_model.pkl
413
+ │ └── threshold_config.json
414
+ ├── evaluation/
415
+ │ ├── precision_recall_curve.png
416
+ │ ├── roc_curve.png
417
+ │ ├── top_anomalies.csv
418
+ │ └── evaluation_report.md
419
+ └── deployment/
420
+ ├── real_time_api.py
421
+ ├── monitoring_dashboard.json
422
+ └── alert_rules.yaml
423
+ ```
424
+
425
+ ## Best Practices
426
+
427
+ ### 1. Start with Labeled Anomalies (if available)
428
+
429
+ ```python
430
+ # Use labeled data to validate unsupervised methods
431
+ detector.fit(X_train) # Unlabeled
432
+
433
+ # Evaluate on labeled test set
434
+ metrics = evaluator.evaluate(y_true_test, detector.predict(X_test))
435
+
436
+ # Choose method with best precision @ K
437
+ ```
438
+
439
+ ### 2. Tune Contamination Parameter
440
+
441
+ ```python
442
+ # Try different contamination rates
443
+ for contamination in [0.01, 0.05, 0.1, 0.2]:
444
+ detector = IsolationForestDetector(contamination=contamination)
445
+ detector.fit(X_train)
446
+
447
+ metrics = evaluator.evaluate(y_test, detector.predict(X_test))
448
+
449
+ # Choose contamination that maximizes business value
450
+ ```
451
+
452
+ ### 3. Explain Anomalies
453
+
454
+ ```python
455
+ # Don't just flag anomalies - explain why
456
+ explainer = AnomalyExplainer(detector, increment="0042")
457
+
458
+ for anomaly in top_anomalies:
459
+ explanation = explainer.explain(anomaly)
460
+ print(f"Anomaly: {anomaly.id}")
461
+ print(f"Reasons:")
462
+ print(f" - {explanation.top_features}")
463
+ print(f" - Similar cases: {explanation.similar_cases}")
464
+ ```
465
+
466
+ ### 4. Handle Concept Drift
467
+
468
+ ```python
469
+ # Anomalies evolve over time
470
+ monitor = AnomalyMonitor(increment="0042")
471
+
472
+ # Track detection performance
473
+ monitor.track_daily_performance()
474
+
475
+ # Retrain when accuracy drops
476
+ if monitor.performance_degraded():
477
+ detector.retrain(new_normal_data)
478
+ ```
479
+
480
+ ### 5. Set Business-Driven Thresholds
481
+
482
+ ```python
483
+ # Balance false positives vs false negatives
484
+ optimizer = ThresholdOptimizer(increment="0042")
485
+
486
+ optimal_threshold = optimizer.find_optimal(
487
+ detector=detector,
488
+ data=validation_data,
489
+ false_positive_cost=5, # $5 per manual review
490
+ false_negative_cost=500 # $500 per missed fraud
491
+ )
492
+
493
+ # Use optimal threshold for deployment
494
+ ```
495
+
496
+ ## Advanced Features
497
+
498
+ ### 1. Ensemble Anomaly Detection
499
+
500
+ ```python
501
+ # Combine multiple detectors
502
+ ensemble = AnomalyEnsemble(increment="0042")
503
+
504
+ ensemble.add_detector("isolation_forest", weight=0.4)
505
+ ensemble.add_detector("one_class_svm", weight=0.3)
506
+ ensemble.add_detector("autoencoder", weight=0.3)
507
+
508
+ # Ensemble vote (more robust)
509
+ anomalies = ensemble.detect(X_test)
510
+ ```
511
+
512
+ ### 2. Contextual Anomaly Detection
513
+
514
+ ```python
515
+ # What's normal varies by context
516
+ detector = ContextualAnomalyDetector(increment="0042")
517
+
518
+ # Different normality for different contexts
519
+ detector.fit(data, contexts=['user_id', 'time_of_day', 'location'])
520
+
521
+ # $10 transaction: Normal for user A, anomaly for user B
522
+ ```
523
+
524
+ ### 3. Sequential Anomaly Detection
525
+
526
+ ```python
527
+ # Detect anomalous sequences (not just individual points)
528
+ detector = SequenceAnomalyDetector(
529
+ method='lstm',
530
+ window_size=10,
531
+ increment="0042"
532
+ )
533
+
534
+ # Example: Login from unusual sequence of locations
535
+ ```
536
+
537
+ ## Commands
538
+
539
+ ```bash
540
+ # Train anomaly detector
541
+ /ml:train-anomaly-detector 0042
542
+
543
+ # Evaluate detector
544
+ /ml:evaluate-anomaly-detector 0042
545
+
546
+ # Explain top anomalies
547
+ /ml:explain-anomalies 0042 --top 100
548
+ ```
549
+
550
+ ## Summary
551
+
552
+ Anomaly detection is critical for:
553
+ - ✅ Fraud detection (financial transactions)
554
+ - ✅ Security monitoring (intrusion detection)
555
+ - ✅ Quality control (manufacturing defects)
556
+ - ✅ System health (performance monitoring)
557
+ - ✅ Business intelligence (unusual patterns)
558
+
559
+ This skill provides battle-tested methods integrated with SpecWeave's increment workflow, ensuring anomaly detectors are reproducible, explainable, and business-aligned.