claude-autopm 2.8.2 → 2.8.3

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 (390) hide show
  1. package/README.md +399 -637
  2. package/package.json +2 -1
  3. package/packages/plugin-ai/LICENSE +21 -0
  4. package/packages/plugin-ai/README.md +316 -0
  5. package/packages/plugin-ai/agents/anthropic-claude-expert.md +579 -0
  6. package/packages/plugin-ai/agents/azure-openai-expert.md +1411 -0
  7. package/packages/plugin-ai/agents/gemini-api-expert.md +880 -0
  8. package/packages/plugin-ai/agents/google-a2a-expert.md +1445 -0
  9. package/packages/plugin-ai/agents/huggingface-expert.md +2131 -0
  10. package/packages/plugin-ai/agents/langchain-expert.md +1427 -0
  11. package/packages/plugin-ai/agents/langgraph-workflow-expert.md +520 -0
  12. package/packages/plugin-ai/agents/openai-python-expert.md +1087 -0
  13. package/packages/plugin-ai/commands/a2a-setup.md +886 -0
  14. package/packages/plugin-ai/commands/ai-model-deployment.md +481 -0
  15. package/packages/plugin-ai/commands/anthropic-optimize.md +793 -0
  16. package/packages/plugin-ai/commands/huggingface-deploy.md +789 -0
  17. package/packages/plugin-ai/commands/langchain-optimize.md +807 -0
  18. package/packages/plugin-ai/commands/llm-optimize.md +348 -0
  19. package/packages/plugin-ai/commands/openai-optimize.md +863 -0
  20. package/packages/plugin-ai/commands/rag-optimize.md +841 -0
  21. package/packages/plugin-ai/commands/rag-setup-scaffold.md +382 -0
  22. package/packages/plugin-ai/package.json +66 -0
  23. package/packages/plugin-ai/plugin.json +519 -0
  24. package/packages/plugin-ai/rules/ai-model-standards.md +449 -0
  25. package/packages/plugin-ai/rules/prompt-engineering-standards.md +509 -0
  26. package/packages/plugin-ai/scripts/examples/huggingface-inference-example.py +145 -0
  27. package/packages/plugin-ai/scripts/examples/langchain-rag-example.py +366 -0
  28. package/packages/plugin-ai/scripts/examples/mlflow-tracking-example.py +224 -0
  29. package/packages/plugin-ai/scripts/examples/openai-chat-example.py +425 -0
  30. package/packages/plugin-cloud/README.md +268 -0
  31. package/packages/plugin-cloud/agents/README.md +55 -0
  32. package/packages/plugin-cloud/agents/aws-cloud-architect.md +521 -0
  33. package/packages/plugin-cloud/agents/azure-cloud-architect.md +436 -0
  34. package/packages/plugin-cloud/agents/gcp-cloud-architect.md +385 -0
  35. package/packages/plugin-cloud/agents/gcp-cloud-functions-engineer.md +306 -0
  36. package/packages/plugin-cloud/agents/gemini-api-expert.md +880 -0
  37. package/packages/plugin-cloud/agents/kubernetes-orchestrator.md +566 -0
  38. package/packages/plugin-cloud/agents/openai-python-expert.md +1087 -0
  39. package/packages/plugin-cloud/agents/terraform-infrastructure-expert.md +454 -0
  40. package/packages/plugin-cloud/commands/cloud-cost-optimize.md +243 -0
  41. package/packages/plugin-cloud/commands/cloud-validate.md +196 -0
  42. package/packages/plugin-cloud/commands/infra-deploy.md +38 -0
  43. package/packages/plugin-cloud/commands/k8s-deploy.md +37 -0
  44. package/packages/plugin-cloud/commands/ssh-security.md +65 -0
  45. package/packages/plugin-cloud/commands/traefik-setup.md +65 -0
  46. package/packages/plugin-cloud/hooks/pre-cloud-deploy.js +456 -0
  47. package/packages/plugin-cloud/package.json +64 -0
  48. package/packages/plugin-cloud/plugin.json +338 -0
  49. package/packages/plugin-cloud/rules/cloud-security-compliance.md +313 -0
  50. package/packages/plugin-cloud/rules/infrastructure-pipeline.md +128 -0
  51. package/packages/plugin-cloud/scripts/examples/aws-validate.sh +30 -0
  52. package/packages/plugin-cloud/scripts/examples/azure-setup.sh +33 -0
  53. package/packages/plugin-cloud/scripts/examples/gcp-setup.sh +39 -0
  54. package/packages/plugin-cloud/scripts/examples/k8s-validate.sh +40 -0
  55. package/packages/plugin-cloud/scripts/examples/terraform-init.sh +26 -0
  56. package/packages/plugin-core/README.md +274 -0
  57. package/packages/plugin-core/agents/core/agent-manager.md +296 -0
  58. package/packages/plugin-core/agents/core/code-analyzer.md +131 -0
  59. package/packages/plugin-core/agents/core/file-analyzer.md +162 -0
  60. package/packages/plugin-core/agents/core/test-runner.md +200 -0
  61. package/packages/plugin-core/commands/code-rabbit.md +128 -0
  62. package/packages/plugin-core/commands/prompt.md +9 -0
  63. package/packages/plugin-core/commands/re-init.md +9 -0
  64. package/packages/plugin-core/hooks/context7-reminder.md +29 -0
  65. package/packages/plugin-core/hooks/enforce-agents.js +125 -0
  66. package/packages/plugin-core/hooks/enforce-agents.sh +35 -0
  67. package/packages/plugin-core/hooks/pre-agent-context7.js +224 -0
  68. package/packages/plugin-core/hooks/pre-command-context7.js +229 -0
  69. package/packages/plugin-core/hooks/strict-enforce-agents.sh +39 -0
  70. package/packages/plugin-core/hooks/test-hook.sh +21 -0
  71. package/packages/plugin-core/hooks/unified-context7-enforcement.sh +38 -0
  72. package/packages/plugin-core/package.json +45 -0
  73. package/packages/plugin-core/plugin.json +387 -0
  74. package/packages/plugin-core/rules/agent-coordination.md +549 -0
  75. package/packages/plugin-core/rules/agent-mandatory.md +170 -0
  76. package/packages/plugin-core/rules/ai-integration-patterns.md +219 -0
  77. package/packages/plugin-core/rules/command-pipelines.md +208 -0
  78. package/packages/plugin-core/rules/context-optimization.md +176 -0
  79. package/packages/plugin-core/rules/context7-enforcement.md +327 -0
  80. package/packages/plugin-core/rules/datetime.md +122 -0
  81. package/packages/plugin-core/rules/definition-of-done.md +272 -0
  82. package/packages/plugin-core/rules/development-environments.md +19 -0
  83. package/packages/plugin-core/rules/development-workflow.md +198 -0
  84. package/packages/plugin-core/rules/framework-path-rules.md +180 -0
  85. package/packages/plugin-core/rules/frontmatter-operations.md +64 -0
  86. package/packages/plugin-core/rules/git-strategy.md +237 -0
  87. package/packages/plugin-core/rules/golden-rules.md +181 -0
  88. package/packages/plugin-core/rules/naming-conventions.md +111 -0
  89. package/packages/plugin-core/rules/no-pr-workflow.md +183 -0
  90. package/packages/plugin-core/rules/performance-guidelines.md +403 -0
  91. package/packages/plugin-core/rules/pipeline-mandatory.md +109 -0
  92. package/packages/plugin-core/rules/security-checklist.md +318 -0
  93. package/packages/plugin-core/rules/standard-patterns.md +197 -0
  94. package/packages/plugin-core/rules/strip-frontmatter.md +85 -0
  95. package/packages/plugin-core/rules/tdd.enforcement.md +103 -0
  96. package/packages/plugin-core/rules/use-ast-grep.md +113 -0
  97. package/packages/plugin-core/scripts/lib/datetime-utils.sh +254 -0
  98. package/packages/plugin-core/scripts/lib/frontmatter-utils.sh +294 -0
  99. package/packages/plugin-core/scripts/lib/github-utils.sh +221 -0
  100. package/packages/plugin-core/scripts/lib/logging-utils.sh +199 -0
  101. package/packages/plugin-core/scripts/lib/validation-utils.sh +339 -0
  102. package/packages/plugin-core/scripts/mcp/add.sh +7 -0
  103. package/packages/plugin-core/scripts/mcp/disable.sh +12 -0
  104. package/packages/plugin-core/scripts/mcp/enable.sh +12 -0
  105. package/packages/plugin-core/scripts/mcp/list.sh +7 -0
  106. package/packages/plugin-core/scripts/mcp/sync.sh +8 -0
  107. package/packages/plugin-data/README.md +315 -0
  108. package/packages/plugin-data/agents/airflow-orchestration-expert.md +158 -0
  109. package/packages/plugin-data/agents/kedro-pipeline-expert.md +304 -0
  110. package/packages/plugin-data/agents/langgraph-workflow-expert.md +530 -0
  111. package/packages/plugin-data/commands/airflow-dag-scaffold.md +413 -0
  112. package/packages/plugin-data/commands/kafka-pipeline-scaffold.md +503 -0
  113. package/packages/plugin-data/package.json +66 -0
  114. package/packages/plugin-data/plugin.json +294 -0
  115. package/packages/plugin-data/rules/data-quality-standards.md +373 -0
  116. package/packages/plugin-data/rules/etl-pipeline-standards.md +255 -0
  117. package/packages/plugin-data/scripts/examples/airflow-dag-example.py +245 -0
  118. package/packages/plugin-data/scripts/examples/dbt-transform-example.sql +238 -0
  119. package/packages/plugin-data/scripts/examples/kafka-streaming-example.py +257 -0
  120. package/packages/plugin-data/scripts/examples/pandas-etl-example.py +332 -0
  121. package/packages/plugin-databases/README.md +330 -0
  122. package/packages/plugin-databases/agents/README.md +50 -0
  123. package/packages/plugin-databases/agents/bigquery-expert.md +401 -0
  124. package/packages/plugin-databases/agents/cosmosdb-expert.md +375 -0
  125. package/packages/plugin-databases/agents/mongodb-expert.md +407 -0
  126. package/packages/plugin-databases/agents/postgresql-expert.md +329 -0
  127. package/packages/plugin-databases/agents/redis-expert.md +74 -0
  128. package/packages/plugin-databases/commands/db-optimize.md +612 -0
  129. package/packages/plugin-databases/package.json +60 -0
  130. package/packages/plugin-databases/plugin.json +237 -0
  131. package/packages/plugin-databases/rules/database-management-strategy.md +146 -0
  132. package/packages/plugin-databases/rules/database-pipeline.md +316 -0
  133. package/packages/plugin-databases/scripts/examples/bigquery-cost-analyze.sh +160 -0
  134. package/packages/plugin-databases/scripts/examples/cosmosdb-ru-optimize.sh +163 -0
  135. package/packages/plugin-databases/scripts/examples/mongodb-shard-check.sh +120 -0
  136. package/packages/plugin-databases/scripts/examples/postgres-index-analyze.sh +95 -0
  137. package/packages/plugin-databases/scripts/examples/redis-cache-stats.sh +121 -0
  138. package/packages/plugin-devops/README.md +367 -0
  139. package/packages/plugin-devops/agents/README.md +52 -0
  140. package/packages/plugin-devops/agents/azure-devops-specialist.md +308 -0
  141. package/packages/plugin-devops/agents/docker-containerization-expert.md +298 -0
  142. package/packages/plugin-devops/agents/github-operations-specialist.md +335 -0
  143. package/packages/plugin-devops/agents/mcp-context-manager.md +319 -0
  144. package/packages/plugin-devops/agents/observability-engineer.md +574 -0
  145. package/packages/plugin-devops/agents/ssh-operations-expert.md +1093 -0
  146. package/packages/plugin-devops/agents/traefik-proxy-expert.md +444 -0
  147. package/packages/plugin-devops/commands/ci-pipeline-create.md +581 -0
  148. package/packages/plugin-devops/commands/docker-optimize.md +493 -0
  149. package/packages/plugin-devops/commands/workflow-create.md +42 -0
  150. package/packages/plugin-devops/hooks/pre-docker-build.js +472 -0
  151. package/packages/plugin-devops/package.json +61 -0
  152. package/packages/plugin-devops/plugin.json +302 -0
  153. package/packages/plugin-devops/rules/ci-cd-kubernetes-strategy.md +25 -0
  154. package/packages/plugin-devops/rules/devops-troubleshooting-playbook.md +450 -0
  155. package/packages/plugin-devops/rules/docker-first-development.md +404 -0
  156. package/packages/plugin-devops/rules/github-operations.md +92 -0
  157. package/packages/plugin-devops/scripts/examples/docker-build-multistage.sh +43 -0
  158. package/packages/plugin-devops/scripts/examples/docker-compose-validate.sh +74 -0
  159. package/packages/plugin-devops/scripts/examples/github-workflow-validate.sh +48 -0
  160. package/packages/plugin-devops/scripts/examples/prometheus-health-check.sh +58 -0
  161. package/packages/plugin-devops/scripts/examples/ssh-key-setup.sh +74 -0
  162. package/packages/plugin-frameworks/README.md +309 -0
  163. package/packages/plugin-frameworks/agents/README.md +64 -0
  164. package/packages/plugin-frameworks/agents/e2e-test-engineer.md +579 -0
  165. package/packages/plugin-frameworks/agents/nats-messaging-expert.md +254 -0
  166. package/packages/plugin-frameworks/agents/react-frontend-engineer.md +393 -0
  167. package/packages/plugin-frameworks/agents/react-ui-expert.md +226 -0
  168. package/packages/plugin-frameworks/agents/tailwindcss-expert.md +1021 -0
  169. package/packages/plugin-frameworks/agents/ux-design-expert.md +244 -0
  170. package/packages/plugin-frameworks/commands/app-scaffold.md +50 -0
  171. package/packages/plugin-frameworks/commands/nextjs-optimize.md +692 -0
  172. package/packages/plugin-frameworks/commands/react-optimize.md +583 -0
  173. package/packages/plugin-frameworks/commands/tailwind-system.md +64 -0
  174. package/packages/plugin-frameworks/package.json +59 -0
  175. package/packages/plugin-frameworks/plugin.json +224 -0
  176. package/packages/plugin-frameworks/rules/performance-guidelines.md +403 -0
  177. package/packages/plugin-frameworks/rules/ui-development-standards.md +281 -0
  178. package/packages/plugin-frameworks/rules/ui-framework-rules.md +151 -0
  179. package/packages/plugin-frameworks/scripts/examples/react-component-perf.sh +34 -0
  180. package/packages/plugin-frameworks/scripts/examples/tailwind-optimize.sh +44 -0
  181. package/packages/plugin-frameworks/scripts/examples/vue-composition-check.sh +41 -0
  182. package/packages/plugin-languages/README.md +333 -0
  183. package/packages/plugin-languages/agents/README.md +50 -0
  184. package/packages/plugin-languages/agents/bash-scripting-expert.md +541 -0
  185. package/packages/plugin-languages/agents/javascript-frontend-engineer.md +197 -0
  186. package/packages/plugin-languages/agents/nodejs-backend-engineer.md +226 -0
  187. package/packages/plugin-languages/agents/python-backend-engineer.md +214 -0
  188. package/packages/plugin-languages/agents/python-backend-expert.md +289 -0
  189. package/packages/plugin-languages/commands/javascript-optimize.md +636 -0
  190. package/packages/plugin-languages/commands/nodejs-api-scaffold.md +341 -0
  191. package/packages/plugin-languages/commands/nodejs-optimize.md +689 -0
  192. package/packages/plugin-languages/commands/python-api-scaffold.md +261 -0
  193. package/packages/plugin-languages/commands/python-optimize.md +593 -0
  194. package/packages/plugin-languages/package.json +65 -0
  195. package/packages/plugin-languages/plugin.json +265 -0
  196. package/packages/plugin-languages/rules/code-quality-standards.md +496 -0
  197. package/packages/plugin-languages/rules/testing-standards.md +768 -0
  198. package/packages/plugin-languages/scripts/examples/bash-production-script.sh +520 -0
  199. package/packages/plugin-languages/scripts/examples/javascript-es6-patterns.js +291 -0
  200. package/packages/plugin-languages/scripts/examples/nodejs-async-iteration.js +360 -0
  201. package/packages/plugin-languages/scripts/examples/python-async-patterns.py +289 -0
  202. package/packages/plugin-languages/scripts/examples/typescript-patterns.ts +432 -0
  203. package/packages/plugin-ml/README.md +430 -0
  204. package/packages/plugin-ml/agents/automl-expert.md +326 -0
  205. package/packages/plugin-ml/agents/computer-vision-expert.md +550 -0
  206. package/packages/plugin-ml/agents/gradient-boosting-expert.md +455 -0
  207. package/packages/plugin-ml/agents/neural-network-architect.md +1228 -0
  208. package/packages/plugin-ml/agents/nlp-transformer-expert.md +584 -0
  209. package/packages/plugin-ml/agents/pytorch-expert.md +412 -0
  210. package/packages/plugin-ml/agents/reinforcement-learning-expert.md +2088 -0
  211. package/packages/plugin-ml/agents/scikit-learn-expert.md +228 -0
  212. package/packages/plugin-ml/agents/tensorflow-keras-expert.md +509 -0
  213. package/packages/plugin-ml/agents/time-series-expert.md +303 -0
  214. package/packages/plugin-ml/commands/ml-automl.md +572 -0
  215. package/packages/plugin-ml/commands/ml-train-optimize.md +657 -0
  216. package/packages/plugin-ml/package.json +52 -0
  217. package/packages/plugin-ml/plugin.json +338 -0
  218. package/packages/plugin-pm/README.md +368 -0
  219. package/packages/plugin-pm/claudeautopm-plugin-pm-2.0.0.tgz +0 -0
  220. package/packages/plugin-pm/commands/azure/COMMANDS.md +107 -0
  221. package/packages/plugin-pm/commands/azure/COMMAND_MAPPING.md +252 -0
  222. package/packages/plugin-pm/commands/azure/INTEGRATION_FIX.md +103 -0
  223. package/packages/plugin-pm/commands/azure/README.md +246 -0
  224. package/packages/plugin-pm/commands/azure/active-work.md +198 -0
  225. package/packages/plugin-pm/commands/azure/aliases.md +143 -0
  226. package/packages/plugin-pm/commands/azure/blocked-items.md +287 -0
  227. package/packages/plugin-pm/commands/azure/clean.md +93 -0
  228. package/packages/plugin-pm/commands/azure/docs-query.md +48 -0
  229. package/packages/plugin-pm/commands/azure/feature-decompose.md +380 -0
  230. package/packages/plugin-pm/commands/azure/feature-list.md +61 -0
  231. package/packages/plugin-pm/commands/azure/feature-new.md +115 -0
  232. package/packages/plugin-pm/commands/azure/feature-show.md +205 -0
  233. package/packages/plugin-pm/commands/azure/feature-start.md +130 -0
  234. package/packages/plugin-pm/commands/azure/fix-integration-example.md +93 -0
  235. package/packages/plugin-pm/commands/azure/help.md +150 -0
  236. package/packages/plugin-pm/commands/azure/import-us.md +269 -0
  237. package/packages/plugin-pm/commands/azure/init.md +211 -0
  238. package/packages/plugin-pm/commands/azure/next-task.md +262 -0
  239. package/packages/plugin-pm/commands/azure/search.md +160 -0
  240. package/packages/plugin-pm/commands/azure/sprint-status.md +235 -0
  241. package/packages/plugin-pm/commands/azure/standup.md +260 -0
  242. package/packages/plugin-pm/commands/azure/sync-all.md +99 -0
  243. package/packages/plugin-pm/commands/azure/task-analyze.md +186 -0
  244. package/packages/plugin-pm/commands/azure/task-close.md +329 -0
  245. package/packages/plugin-pm/commands/azure/task-edit.md +145 -0
  246. package/packages/plugin-pm/commands/azure/task-list.md +263 -0
  247. package/packages/plugin-pm/commands/azure/task-new.md +84 -0
  248. package/packages/plugin-pm/commands/azure/task-reopen.md +79 -0
  249. package/packages/plugin-pm/commands/azure/task-show.md +126 -0
  250. package/packages/plugin-pm/commands/azure/task-start.md +301 -0
  251. package/packages/plugin-pm/commands/azure/task-status.md +65 -0
  252. package/packages/plugin-pm/commands/azure/task-sync.md +67 -0
  253. package/packages/plugin-pm/commands/azure/us-edit.md +164 -0
  254. package/packages/plugin-pm/commands/azure/us-list.md +202 -0
  255. package/packages/plugin-pm/commands/azure/us-new.md +265 -0
  256. package/packages/plugin-pm/commands/azure/us-parse.md +253 -0
  257. package/packages/plugin-pm/commands/azure/us-show.md +188 -0
  258. package/packages/plugin-pm/commands/azure/us-status.md +320 -0
  259. package/packages/plugin-pm/commands/azure/validate.md +86 -0
  260. package/packages/plugin-pm/commands/azure/work-item-sync.md +47 -0
  261. package/packages/plugin-pm/commands/blocked.md +28 -0
  262. package/packages/plugin-pm/commands/clean.md +119 -0
  263. package/packages/plugin-pm/commands/context-create.md +136 -0
  264. package/packages/plugin-pm/commands/context-prime.md +170 -0
  265. package/packages/plugin-pm/commands/context-update.md +292 -0
  266. package/packages/plugin-pm/commands/context.md +28 -0
  267. package/packages/plugin-pm/commands/epic-close.md +86 -0
  268. package/packages/plugin-pm/commands/epic-decompose.md +370 -0
  269. package/packages/plugin-pm/commands/epic-edit.md +83 -0
  270. package/packages/plugin-pm/commands/epic-list.md +30 -0
  271. package/packages/plugin-pm/commands/epic-merge.md +222 -0
  272. package/packages/plugin-pm/commands/epic-oneshot.md +119 -0
  273. package/packages/plugin-pm/commands/epic-refresh.md +119 -0
  274. package/packages/plugin-pm/commands/epic-show.md +28 -0
  275. package/packages/plugin-pm/commands/epic-split.md +120 -0
  276. package/packages/plugin-pm/commands/epic-start.md +195 -0
  277. package/packages/plugin-pm/commands/epic-status.md +28 -0
  278. package/packages/plugin-pm/commands/epic-sync-modular.md +338 -0
  279. package/packages/plugin-pm/commands/epic-sync-original.md +473 -0
  280. package/packages/plugin-pm/commands/epic-sync.md +486 -0
  281. package/packages/plugin-pm/commands/github/workflow-create.md +42 -0
  282. package/packages/plugin-pm/commands/help.md +28 -0
  283. package/packages/plugin-pm/commands/import.md +115 -0
  284. package/packages/plugin-pm/commands/in-progress.md +28 -0
  285. package/packages/plugin-pm/commands/init.md +28 -0
  286. package/packages/plugin-pm/commands/issue-analyze.md +202 -0
  287. package/packages/plugin-pm/commands/issue-close.md +119 -0
  288. package/packages/plugin-pm/commands/issue-edit.md +93 -0
  289. package/packages/plugin-pm/commands/issue-reopen.md +87 -0
  290. package/packages/plugin-pm/commands/issue-show.md +41 -0
  291. package/packages/plugin-pm/commands/issue-start.md +234 -0
  292. package/packages/plugin-pm/commands/issue-status.md +95 -0
  293. package/packages/plugin-pm/commands/issue-sync.md +411 -0
  294. package/packages/plugin-pm/commands/next.md +28 -0
  295. package/packages/plugin-pm/commands/prd-edit.md +82 -0
  296. package/packages/plugin-pm/commands/prd-list.md +28 -0
  297. package/packages/plugin-pm/commands/prd-new.md +55 -0
  298. package/packages/plugin-pm/commands/prd-parse.md +42 -0
  299. package/packages/plugin-pm/commands/prd-status.md +28 -0
  300. package/packages/plugin-pm/commands/search.md +28 -0
  301. package/packages/plugin-pm/commands/standup.md +28 -0
  302. package/packages/plugin-pm/commands/status.md +28 -0
  303. package/packages/plugin-pm/commands/sync.md +99 -0
  304. package/packages/plugin-pm/commands/test-reference-update.md +151 -0
  305. package/packages/plugin-pm/commands/validate.md +28 -0
  306. package/packages/plugin-pm/commands/what-next.md +28 -0
  307. package/packages/plugin-pm/package.json +57 -0
  308. package/packages/plugin-pm/plugin.json +503 -0
  309. package/packages/plugin-pm/scripts/pm/analytics.js +425 -0
  310. package/packages/plugin-pm/scripts/pm/blocked.js +164 -0
  311. package/packages/plugin-pm/scripts/pm/blocked.sh +78 -0
  312. package/packages/plugin-pm/scripts/pm/clean.js +464 -0
  313. package/packages/plugin-pm/scripts/pm/context-create.js +216 -0
  314. package/packages/plugin-pm/scripts/pm/context-prime.js +335 -0
  315. package/packages/plugin-pm/scripts/pm/context-update.js +344 -0
  316. package/packages/plugin-pm/scripts/pm/context.js +338 -0
  317. package/packages/plugin-pm/scripts/pm/epic-close.js +347 -0
  318. package/packages/plugin-pm/scripts/pm/epic-edit.js +382 -0
  319. package/packages/plugin-pm/scripts/pm/epic-list.js +273 -0
  320. package/packages/plugin-pm/scripts/pm/epic-list.sh +109 -0
  321. package/packages/plugin-pm/scripts/pm/epic-show.js +291 -0
  322. package/packages/plugin-pm/scripts/pm/epic-show.sh +105 -0
  323. package/packages/plugin-pm/scripts/pm/epic-split.js +522 -0
  324. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.js +183 -0
  325. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.sh +94 -0
  326. package/packages/plugin-pm/scripts/pm/epic-status.js +291 -0
  327. package/packages/plugin-pm/scripts/pm/epic-status.sh +104 -0
  328. package/packages/plugin-pm/scripts/pm/epic-sync/README.md +208 -0
  329. package/packages/plugin-pm/scripts/pm/epic-sync/create-epic-issue.sh +77 -0
  330. package/packages/plugin-pm/scripts/pm/epic-sync/create-task-issues.sh +86 -0
  331. package/packages/plugin-pm/scripts/pm/epic-sync/update-epic-file.sh +79 -0
  332. package/packages/plugin-pm/scripts/pm/epic-sync/update-references.sh +89 -0
  333. package/packages/plugin-pm/scripts/pm/epic-sync.sh +137 -0
  334. package/packages/plugin-pm/scripts/pm/help.js +92 -0
  335. package/packages/plugin-pm/scripts/pm/help.sh +90 -0
  336. package/packages/plugin-pm/scripts/pm/in-progress.js +178 -0
  337. package/packages/plugin-pm/scripts/pm/in-progress.sh +93 -0
  338. package/packages/plugin-pm/scripts/pm/init.js +321 -0
  339. package/packages/plugin-pm/scripts/pm/init.sh +178 -0
  340. package/packages/plugin-pm/scripts/pm/issue-close.js +232 -0
  341. package/packages/plugin-pm/scripts/pm/issue-edit.js +310 -0
  342. package/packages/plugin-pm/scripts/pm/issue-show.js +272 -0
  343. package/packages/plugin-pm/scripts/pm/issue-start.js +181 -0
  344. package/packages/plugin-pm/scripts/pm/issue-sync/format-comment.sh +468 -0
  345. package/packages/plugin-pm/scripts/pm/issue-sync/gather-updates.sh +460 -0
  346. package/packages/plugin-pm/scripts/pm/issue-sync/post-comment.sh +330 -0
  347. package/packages/plugin-pm/scripts/pm/issue-sync/preflight-validation.sh +348 -0
  348. package/packages/plugin-pm/scripts/pm/issue-sync/update-frontmatter.sh +387 -0
  349. package/packages/plugin-pm/scripts/pm/lib/README.md +85 -0
  350. package/packages/plugin-pm/scripts/pm/lib/epic-discovery.js +119 -0
  351. package/packages/plugin-pm/scripts/pm/lib/logger.js +78 -0
  352. package/packages/plugin-pm/scripts/pm/next.js +189 -0
  353. package/packages/plugin-pm/scripts/pm/next.sh +72 -0
  354. package/packages/plugin-pm/scripts/pm/optimize.js +407 -0
  355. package/packages/plugin-pm/scripts/pm/pr-create.js +337 -0
  356. package/packages/plugin-pm/scripts/pm/pr-list.js +257 -0
  357. package/packages/plugin-pm/scripts/pm/prd-list.js +242 -0
  358. package/packages/plugin-pm/scripts/pm/prd-list.sh +103 -0
  359. package/packages/plugin-pm/scripts/pm/prd-new.js +684 -0
  360. package/packages/plugin-pm/scripts/pm/prd-parse.js +547 -0
  361. package/packages/plugin-pm/scripts/pm/prd-status.js +152 -0
  362. package/packages/plugin-pm/scripts/pm/prd-status.sh +63 -0
  363. package/packages/plugin-pm/scripts/pm/release.js +460 -0
  364. package/packages/plugin-pm/scripts/pm/search.js +192 -0
  365. package/packages/plugin-pm/scripts/pm/search.sh +89 -0
  366. package/packages/plugin-pm/scripts/pm/standup.js +362 -0
  367. package/packages/plugin-pm/scripts/pm/standup.sh +95 -0
  368. package/packages/plugin-pm/scripts/pm/status.js +148 -0
  369. package/packages/plugin-pm/scripts/pm/status.sh +59 -0
  370. package/packages/plugin-pm/scripts/pm/sync-batch.js +337 -0
  371. package/packages/plugin-pm/scripts/pm/sync.js +343 -0
  372. package/packages/plugin-pm/scripts/pm/template-list.js +141 -0
  373. package/packages/plugin-pm/scripts/pm/template-new.js +366 -0
  374. package/packages/plugin-pm/scripts/pm/validate.js +274 -0
  375. package/packages/plugin-pm/scripts/pm/validate.sh +106 -0
  376. package/packages/plugin-pm/scripts/pm/what-next.js +660 -0
  377. package/packages/plugin-testing/README.md +401 -0
  378. package/packages/plugin-testing/agents/frontend-testing-engineer.md +768 -0
  379. package/packages/plugin-testing/commands/jest-optimize.md +800 -0
  380. package/packages/plugin-testing/commands/playwright-optimize.md +887 -0
  381. package/packages/plugin-testing/commands/test-coverage.md +512 -0
  382. package/packages/plugin-testing/commands/test-performance.md +1041 -0
  383. package/packages/plugin-testing/commands/test-setup.md +414 -0
  384. package/packages/plugin-testing/package.json +40 -0
  385. package/packages/plugin-testing/plugin.json +197 -0
  386. package/packages/plugin-testing/rules/test-coverage-requirements.md +581 -0
  387. package/packages/plugin-testing/rules/testing-standards.md +529 -0
  388. package/packages/plugin-testing/scripts/examples/react-testing-example.test.jsx +460 -0
  389. package/packages/plugin-testing/scripts/examples/vitest-config-example.js +352 -0
  390. package/packages/plugin-testing/scripts/examples/vue-testing-example.test.js +586 -0
@@ -0,0 +1,800 @@
1
+ # jest:optimize
2
+
3
+ Optimize Jest test performance with Context7-verified parallel execution, sharding, and best practices.
4
+
5
+ ## Description
6
+
7
+ Comprehensive Jest performance optimization following official best practices:
8
+ - Parallel test execution across workers
9
+ - Test sharding for distributed execution
10
+ - Coverage optimization techniques
11
+ - Database optimization for testing
12
+ - Memory and resource management
13
+ - Test cleanup strategies
14
+
15
+ ## Required Documentation Access
16
+
17
+ **MANDATORY:** Before optimization, query Context7 for Jest best practices:
18
+
19
+ **Documentation Queries:**
20
+ - `mcp://context7/jest/parallel-execution` - Parallel test execution patterns
21
+ - `mcp://context7/jest/sharding` - Test sharding strategies
22
+ - `mcp://context7/nodejs-testing/database` - Database optimization for tests
23
+ - `mcp://context7/nodejs-testing/cleanup` - Test cleanup best practices
24
+ - `mcp://context7/jest/coverage` - Coverage optimization techniques
25
+
26
+ **Why This is Required:**
27
+ - Ensures optimization follows official Jest documentation
28
+ - Applies proven parallel execution patterns
29
+ - Validates database testing strategies
30
+ - Prevents resource leaks and flaky tests
31
+ - Optimizes CI/CD pipeline performance
32
+
33
+ ## Usage
34
+
35
+ ```bash
36
+ /jest:optimize [options]
37
+ ```
38
+
39
+ ## Options
40
+
41
+ - `--scope <parallel|sharding|database|coverage|all>` - Optimization scope (default: all)
42
+ - `--analyze-only` - Analyze without applying changes
43
+ - `--output <file>` - Write optimization report
44
+ - `--max-workers <n>` - Set maximum parallel workers
45
+ - `--shard <index/count>` - Configure test sharding
46
+
47
+ ## Examples
48
+
49
+ ### Full Test Suite Optimization
50
+ ```bash
51
+ /jest:optimize
52
+ ```
53
+
54
+ ### Parallel Execution Only
55
+ ```bash
56
+ /jest:optimize --scope parallel --max-workers 4
57
+ ```
58
+
59
+ ### Test Sharding for CI/CD
60
+ ```bash
61
+ /jest:optimize --scope sharding --shard 1/3
62
+ ```
63
+
64
+ ### Database Testing Optimization
65
+ ```bash
66
+ /jest:optimize --scope database
67
+ ```
68
+
69
+ ### Analyze Without Changes
70
+ ```bash
71
+ /jest:optimize --analyze-only --output jest-report.md
72
+ ```
73
+
74
+ ## Optimization Categories
75
+
76
+ ### 1. Parallel Test Execution (Context7-Verified)
77
+
78
+ **Pattern from Context7 (/goldbergyoni/nodejs-testing-best-practices):**
79
+
80
+ #### Default Parallel Execution
81
+ ```json
82
+ {
83
+ "scripts": {
84
+ "test": "jest --maxWorkers=50%"
85
+ }
86
+ }
87
+ ```
88
+
89
+ **Benefits:**
90
+ - Uses 50% of CPU cores by default
91
+ - Automatic test distribution
92
+ - Faster test suite execution
93
+
94
+ **Performance Impact:**
95
+ - 2 cores: 1.8x faster (2 minutes → 1.1 minutes)
96
+ - 4 cores: 3.2x faster (2 minutes → 37 seconds)
97
+ - 8 cores: 5.5x faster (2 minutes → 22 seconds)
98
+
99
+ #### Custom Worker Configuration
100
+ ```json
101
+ {
102
+ "scripts": {
103
+ "test": "jest --maxWorkers=4",
104
+ "test:ci": "jest --maxWorkers=2",
105
+ "test:local": "jest --maxWorkers=8"
106
+ }
107
+ }
108
+ ```
109
+
110
+ **Use Cases:**
111
+ - CI/CD: Limit to 2 workers (shared resources)
112
+ - Local dev: Use 8 workers (dedicated machine)
113
+ - Production: Use 50% (balanced approach)
114
+
115
+ #### Jest Configuration
116
+ ```javascript
117
+ // jest.config.js
118
+ module.exports = {
119
+ maxWorkers: process.env.CI ? 2 : '50%',
120
+ testTimeout: 30000, // 30 seconds
121
+ bail: false, // Don't stop on first failure
122
+ verbose: true,
123
+ };
124
+ ```
125
+
126
+ ### 2. Test Sharding (Context7-Verified)
127
+
128
+ **Pattern from Context7 (/goldbergyoni/nodejs-testing-best-practices):**
129
+
130
+ #### GitHub Actions Matrix Strategy
131
+ ```yaml
132
+ # .github/workflows/test.yml
133
+ name: Test
134
+ on: [push, pull_request]
135
+
136
+ jobs:
137
+ test:
138
+ runs-on: ubuntu-latest
139
+ strategy:
140
+ matrix:
141
+ shard: [1/3, 2/3, 3/3]
142
+ steps:
143
+ - uses: actions/checkout@v3
144
+ - uses: actions/setup-node@v3
145
+ with:
146
+ node-version: '18'
147
+ - run: npm ci
148
+ - run: npm test -- --shard=${{ matrix.shard }}
149
+ ```
150
+
151
+ **Benefits:**
152
+ - Runs 3 shards in parallel across GitHub runners
153
+ - Linear speedup with more shards
154
+ - Efficient CI resource usage
155
+
156
+ **Performance Impact:**
157
+ - Single runner: 15 minutes
158
+ - 3 shards: 5 minutes (3x faster)
159
+ - 5 shards: 3 minutes (5x faster)
160
+
161
+ #### GitLab CI Parallel Jobs
162
+ ```yaml
163
+ # .gitlab-ci.yml
164
+ test:
165
+ parallel: 3
166
+ script:
167
+ - npm ci
168
+ - npm test -- --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL
169
+ ```
170
+
171
+ **Benefits:**
172
+ - Automatic shard distribution
173
+ - Scales with `parallel` value
174
+ - Built-in GitLab integration
175
+
176
+ #### CircleCI Parallelism
177
+ ```yaml
178
+ # .circleci/config.yml
179
+ version: 2.1
180
+ jobs:
181
+ test:
182
+ parallelism: 3
183
+ steps:
184
+ - checkout
185
+ - run:
186
+ name: Run tests
187
+ command: |
188
+ npm ci
189
+ SHARD="$((${CIRCLE_NODE_INDEX} + 1))/${CIRCLE_NODE_TOTAL}"
190
+ npm test -- --shard=$SHARD
191
+ ```
192
+
193
+ ### 3. Database Optimization for Testing (Context7-Verified)
194
+
195
+ **Pattern from Context7 (/goldbergyoni/nodejs-testing-best-practices):**
196
+
197
+ #### Docker Compose with tmpfs
198
+ ```yaml
199
+ # docker-compose.test.yml
200
+ version: "3.6"
201
+
202
+ services:
203
+ db:
204
+ image: postgres:13
205
+ command: |
206
+ postgres
207
+ -c fsync=off
208
+ -c synchronous_commit=off
209
+ -c full_page_writes=off
210
+ -c random_page_cost=1.0
211
+ tmpfs:
212
+ - /var/lib/postgresql/data
213
+ environment:
214
+ POSTGRES_USER: test
215
+ POSTGRES_PASSWORD: test
216
+ POSTGRES_DB: testdb
217
+ ports:
218
+ - "5432:5432"
219
+ ```
220
+
221
+ **Optimizations Explained:**
222
+ - `fsync=off`: Disable disk synchronization (3x faster writes)
223
+ - `synchronous_commit=off`: Don't wait for WAL writes (2x faster commits)
224
+ - `full_page_writes=off`: Skip full-page WAL writes (20% faster)
225
+ - `random_page_cost=1.0`: Optimize for in-memory access
226
+ - `tmpfs`: Store database in RAM (10x faster I/O)
227
+
228
+ **Performance Impact:**
229
+ - Without optimization: 45 seconds per test suite
230
+ - With optimization: 4.5 seconds per test suite (10x faster)
231
+
232
+ **Safety Note:** ONLY use for testing, NEVER in production
233
+
234
+ #### MongoDB with tmpfs
235
+ ```yaml
236
+ version: "3.6"
237
+
238
+ services:
239
+ mongodb:
240
+ image: mongo:6
241
+ command: mongod --nojournal --wiredTigerCacheSizeGB 0.25
242
+ tmpfs:
243
+ - /data/db
244
+ environment:
245
+ MONGO_INITDB_ROOT_USERNAME: test
246
+ MONGO_INITDB_ROOT_PASSWORD: test
247
+ ports:
248
+ - "27017:27017"
249
+ ```
250
+
251
+ **Optimizations:**
252
+ - `--nojournal`: Disable journaling (2x faster writes)
253
+ - `--wiredTigerCacheSizeGB 0.25`: Limit cache (faster startup)
254
+ - `tmpfs`: RAM-based storage (8x faster I/O)
255
+
256
+ **Performance Impact:** 8x faster test execution with database operations
257
+
258
+ #### Redis with tmpfs
259
+ ```yaml
260
+ version: "3.6"
261
+
262
+ services:
263
+ redis:
264
+ image: redis:7-alpine
265
+ command: redis-server --save "" --appendonly no
266
+ tmpfs:
267
+ - /data
268
+ ports:
269
+ - "6379:6379"
270
+ ```
271
+
272
+ **Optimizations:**
273
+ - `--save ""`: Disable RDB snapshots
274
+ - `--appendonly no`: Disable AOF persistence
275
+ - `tmpfs`: RAM-based storage
276
+
277
+ **Performance Impact:** 15x faster (no disk I/O overhead)
278
+
279
+ ### 4. Test Cleanup Strategies (Context7-Verified)
280
+
281
+ **Pattern from Context7 (/goldbergyoni/nodejs-testing-best-practices):**
282
+
283
+ #### Database Cleanup with Transactions
284
+ ```javascript
285
+ // test/setup.js
286
+ import { PrismaClient } from '@prisma/client';
287
+
288
+ const prisma = new PrismaClient();
289
+
290
+ beforeEach(async () => {
291
+ // Start transaction
292
+ await prisma.$executeRaw`BEGIN`;
293
+ });
294
+
295
+ afterEach(async () => {
296
+ // Rollback transaction (instant cleanup)
297
+ await prisma.$executeRaw`ROLLBACK`;
298
+ });
299
+
300
+ afterAll(async () => {
301
+ await prisma.$disconnect();
302
+ });
303
+ ```
304
+
305
+ **Benefits:**
306
+ - Instant cleanup (no DELETE queries)
307
+ - Guaranteed isolation between tests
308
+ - No leftover test data
309
+
310
+ **Performance Impact:** 5x faster cleanup (500ms → 100ms per test)
311
+
312
+ #### Truncate Tables Strategy
313
+ ```javascript
314
+ // test/setup.js
315
+ import { sequelize } from '../src/database';
316
+
317
+ afterEach(async () => {
318
+ const tables = ['users', 'posts', 'comments'];
319
+
320
+ await sequelize.query('SET FOREIGN_KEY_CHECKS = 0');
321
+
322
+ for (const table of tables) {
323
+ await sequelize.query(`TRUNCATE TABLE ${table}`);
324
+ }
325
+
326
+ await sequelize.query('SET FOREIGN_KEY_CHECKS = 1');
327
+ });
328
+ ```
329
+
330
+ **Benefits:**
331
+ - Faster than DELETE FROM
332
+ - Resets auto-increment counters
333
+ - Works with foreign keys
334
+
335
+ **Performance Impact:** 3x faster than DELETE (150ms → 50ms per test)
336
+
337
+ #### In-Memory Database Strategy
338
+ ```javascript
339
+ // jest.config.js
340
+ module.exports = {
341
+ globalSetup: './test/setup-db.js',
342
+ globalTeardown: './test/teardown-db.js',
343
+ };
344
+
345
+ // test/setup-db.js
346
+ import { MongoMemoryServer } from 'mongodb-memory-server';
347
+
348
+ let mongod;
349
+
350
+ export default async function globalSetup() {
351
+ mongod = await MongoMemoryServer.create();
352
+ process.env.MONGO_URL = mongod.getUri();
353
+ }
354
+
355
+ export default async function globalTeardown() {
356
+ await mongod.stop();
357
+ }
358
+ ```
359
+
360
+ **Benefits:**
361
+ - No external database required
362
+ - Instant setup/teardown
363
+ - Perfect for unit tests
364
+
365
+ **Performance Impact:** 10x faster (no network overhead)
366
+
367
+ ### 5. HTTP Interceptor Testing (Context7-Verified)
368
+
369
+ **Pattern from Context7 (/goldbergyoni/nodejs-testing-best-practices):**
370
+
371
+ #### Using nock for HTTP Interception
372
+ ```javascript
373
+ import nock from 'nock';
374
+
375
+ describe('API Integration', () => {
376
+ beforeEach(() => {
377
+ nock.cleanAll();
378
+ });
379
+
380
+ it('should fetch user from external API', async () => {
381
+ // Mock external API
382
+ nock('https://api.example.com')
383
+ .get('/users/123')
384
+ .reply(200, {
385
+ id: 123,
386
+ name: 'John Doe',
387
+ email: 'john@example.com'
388
+ });
389
+
390
+ const user = await fetchUser(123);
391
+
392
+ expect(user.name).toBe('John Doe');
393
+ });
394
+
395
+ it('should handle API errors', async () => {
396
+ nock('https://api.example.com')
397
+ .get('/users/999')
398
+ .reply(404, { error: 'User not found' });
399
+
400
+ await expect(fetchUser(999)).rejects.toThrow('User not found');
401
+ });
402
+ });
403
+ ```
404
+
405
+ **Benefits:**
406
+ - No real HTTP requests (100x faster)
407
+ - Deterministic test results
408
+ - Test error scenarios easily
409
+ - No external dependencies
410
+
411
+ **Performance Impact:**
412
+ - Real HTTP: 500ms per test
413
+ - Mocked HTTP: 5ms per test (100x faster)
414
+
415
+ #### Advanced nock Patterns
416
+ ```javascript
417
+ import nock from 'nock';
418
+
419
+ describe('Advanced HTTP Mocking', () => {
420
+ it('should handle retries', async () => {
421
+ // First call fails, second succeeds
422
+ nock('https://api.example.com')
423
+ .get('/data')
424
+ .reply(500)
425
+ .get('/data')
426
+ .reply(200, { data: 'success' });
427
+
428
+ const result = await fetchWithRetry('https://api.example.com/data');
429
+ expect(result.data).toBe('success');
430
+ });
431
+
432
+ it('should match request body', async () => {
433
+ nock('https://api.example.com')
434
+ .post('/users', {
435
+ name: 'John',
436
+ email: 'john@example.com'
437
+ })
438
+ .reply(201, { id: 123 });
439
+
440
+ const user = await createUser({ name: 'John', email: 'john@example.com' });
441
+ expect(user.id).toBe(123);
442
+ });
443
+
444
+ it('should simulate network delay', async () => {
445
+ nock('https://api.example.com')
446
+ .get('/slow')
447
+ .delay(2000)
448
+ .reply(200, { data: 'slow response' });
449
+
450
+ const start = Date.now();
451
+ await fetchSlow();
452
+ const duration = Date.now() - start;
453
+
454
+ expect(duration).toBeGreaterThan(2000);
455
+ });
456
+ });
457
+ ```
458
+
459
+ ### 6. Coverage Optimization (Context7-Verified)
460
+
461
+ **Pattern from Context7 (Jest Documentation):**
462
+
463
+ #### Optimized Coverage Configuration
464
+ ```javascript
465
+ // jest.config.js
466
+ module.exports = {
467
+ collectCoverage: false, // Don't collect by default
468
+ coverageDirectory: 'coverage',
469
+ coverageReporters: ['text', 'lcov', 'html'],
470
+ coveragePathIgnorePatterns: [
471
+ '/node_modules/',
472
+ '/test/',
473
+ '/dist/',
474
+ '/build/',
475
+ '\\.mock\\.',
476
+ '\\.test\\.',
477
+ ],
478
+ coverageThreshold: {
479
+ global: {
480
+ branches: 80,
481
+ functions: 80,
482
+ lines: 80,
483
+ statements: 80,
484
+ },
485
+ },
486
+ };
487
+ ```
488
+
489
+ **Run Coverage Only When Needed:**
490
+ ```json
491
+ {
492
+ "scripts": {
493
+ "test": "jest",
494
+ "test:coverage": "jest --coverage",
495
+ "test:ci": "jest --coverage --maxWorkers=2"
496
+ }
497
+ }
498
+ ```
499
+
500
+ **Performance Impact:**
501
+ - Without coverage: 10 seconds
502
+ - With coverage: 45 seconds (4.5x slower)
503
+ - **Solution:** Only run coverage in CI or on-demand
504
+
505
+ #### Incremental Coverage (Changed Files Only)
506
+ ```json
507
+ {
508
+ "scripts": {
509
+ "test:changed": "jest --onlyChanged --coverage",
510
+ "test:watch": "jest --watch --coverage=false"
511
+ }
512
+ }
513
+ ```
514
+
515
+ **Benefits:**
516
+ - Test only changed files
517
+ - Faster feedback loop
518
+ - Efficient local development
519
+
520
+ **Performance Impact:** 10x faster (45 seconds → 4.5 seconds)
521
+
522
+ ### 7. Memory Optimization
523
+
524
+ **Pattern from Context7:**
525
+
526
+ #### Limit Memory per Worker
527
+ ```json
528
+ {
529
+ "scripts": {
530
+ "test": "node --max-old-space-size=4096 node_modules/.bin/jest --maxWorkers=4"
531
+ }
532
+ }
533
+ ```
534
+
535
+ **Benefits:**
536
+ - Prevent out-of-memory errors
537
+ - Better resource control
538
+ - Faster garbage collection
539
+
540
+ #### Use --runInBand for Debugging
541
+ ```json
542
+ {
543
+ "scripts": {
544
+ "test:debug": "jest --runInBand --detectOpenHandles"
545
+ }
546
+ }
547
+ ```
548
+
549
+ **Benefits:**
550
+ - Sequential execution (easier debugging)
551
+ - Detect resource leaks
552
+ - Better error messages
553
+
554
+ **Use Cases:**
555
+ - Debugging flaky tests
556
+ - Memory leak investigation
557
+ - CI/CD troubleshooting
558
+
559
+ ### 8. Test Grouping Strategies
560
+
561
+ **Pattern from Context7:**
562
+
563
+ #### Group by Test Type
564
+ ```javascript
565
+ // jest.config.js
566
+ module.exports = {
567
+ projects: [
568
+ {
569
+ displayName: 'unit',
570
+ testMatch: ['**/__tests__/unit/**/*.test.js'],
571
+ maxWorkers: '50%',
572
+ },
573
+ {
574
+ displayName: 'integration',
575
+ testMatch: ['**/__tests__/integration/**/*.test.js'],
576
+ maxWorkers: 2,
577
+ setupFilesAfterEnv: ['<rootDir>/test/setup-db.js'],
578
+ },
579
+ {
580
+ displayName: 'e2e',
581
+ testMatch: ['**/__tests__/e2e/**/*.test.js'],
582
+ maxWorkers: 1,
583
+ setupFilesAfterEnv: ['<rootDir>/test/setup-e2e.js'],
584
+ },
585
+ ],
586
+ };
587
+ ```
588
+
589
+ **Benefits:**
590
+ - Run test types independently
591
+ - Different worker configurations per type
592
+ - Parallel project execution
593
+
594
+ **Run Commands:**
595
+ ```bash
596
+ # Run all tests
597
+ npm test
598
+
599
+ # Run specific project
600
+ npm test -- --selectProjects unit
601
+ npm test -- --selectProjects integration
602
+
603
+ # Run multiple projects
604
+ npm test -- --selectProjects unit integration
605
+ ```
606
+
607
+ **Performance Impact:**
608
+ - Sequential: 20 minutes
609
+ - Grouped parallel: 7 minutes (2.8x faster)
610
+
611
+ ## Optimization Output
612
+
613
+ ```
614
+ 🧪 Jest Performance Optimization Analysis
615
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
616
+
617
+ Project: Node.js Application
618
+ Framework: Jest 29.x
619
+ Node.js: 18.x
620
+ Total Tests: 1,247
621
+
622
+ 📊 Current Performance
623
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
624
+
625
+ Test Execution: 8m 34s
626
+ Coverage Generation: +2m 15s (when enabled)
627
+ Total Time: 10m 49s
628
+
629
+ Parallel Workers: Not configured (sequential)
630
+ Database Tests: Using production-like setup (slow)
631
+ HTTP Tests: Making real requests (flaky)
632
+
633
+ ⚡ Parallel Execution Optimization
634
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
635
+
636
+ Current: Sequential execution (1 worker)
637
+ Recommended: --maxWorkers=50% (4 workers on 8-core machine)
638
+
639
+ 💡 Impact:
640
+ - Unit tests: 8m 34s → 2m 10s (3.9x faster)
641
+ - With proper test grouping: → 1m 32s (5.5x faster)
642
+
643
+ 🗂️ Test Sharding for CI/CD
644
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
645
+
646
+ Current: Single runner (10m 49s)
647
+ Recommended: 3 shards across parallel runners
648
+
649
+ 💡 Impact:
650
+ - Single runner: 10m 49s
651
+ - 3 shards: 3m 36s (3x faster)
652
+ - 5 shards: 2m 10s (5x faster)
653
+
654
+ GitHub Actions configuration generated ✓
655
+
656
+ 💾 Database Optimization
657
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
658
+
659
+ ⚠️ PostgreSQL using production configuration
660
+ Current: fsync=on, full_page_writes=on (slow)
661
+
662
+ 💡 Recommendations:
663
+ 1. Use tmpfs for database storage → 10x faster I/O
664
+ 2. Disable fsync (testing only) → 3x faster writes
665
+ 3. Use transaction rollback for cleanup → 5x faster
666
+
667
+ Docker Compose configuration generated ✓
668
+
669
+ ⚡ Impact:
670
+ - Current: 45s per test suite
671
+ - Optimized: 4.5s per test suite (10x faster)
672
+
673
+ 🌐 HTTP Testing Optimization
674
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
675
+
676
+ ⚠️ 157 tests making real HTTP requests
677
+ Issues: Slow (500ms avg), flaky, external dependencies
678
+
679
+ 💡 Recommendation: Use nock for HTTP interception
680
+
681
+ ⚡ Impact:
682
+ - Current: 78.5s total (500ms × 157 tests)
683
+ - With nock: 0.8s total (5ms × 157 tests)
684
+ - Speedup: 100x faster, 0% flaky
685
+
686
+ 📈 Coverage Optimization
687
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
688
+
689
+ ⚠️ Coverage collection always enabled
690
+ Current: +2m 15s overhead (26% slower)
691
+
692
+ 💡 Recommendation: Collect coverage only in CI
693
+
694
+ Scripts updated:
695
+ - npm test → Fast (no coverage)
696
+ - npm run test:coverage → Full coverage
697
+ - npm run test:ci → CI with coverage
698
+
699
+ 🎯 Summary
700
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
701
+
702
+ Total Optimizations: 15
703
+
704
+ 🔴 Critical: 3 (parallel execution, database, HTTP)
705
+ 🟡 High Impact: 7 (sharding, cleanup, coverage)
706
+ 🟢 Low Impact: 5 (grouping, memory, configuration)
707
+
708
+ Estimated Performance Improvement:
709
+
710
+ Local Development:
711
+ - Before: 10m 49s
712
+ - After: 1m 32s (7x faster)
713
+
714
+ CI/CD (with sharding):
715
+ - Before: 10m 49s
716
+ - After: 2m 10s (5x faster)
717
+
718
+ Database Tests:
719
+ - Before: 45s per suite
720
+ - After: 4.5s per suite (10x faster)
721
+
722
+ HTTP Tests:
723
+ - Before: 78.5s, flaky
724
+ - After: 0.8s, reliable (100x faster)
725
+
726
+ Run with --apply to implement optimizations
727
+ ```
728
+
729
+ ## Implementation
730
+
731
+ This command uses the **@frontend-testing-engineer** agent with Jest expertise:
732
+
733
+ 1. Query Context7 for Jest optimization patterns
734
+ 2. Analyze current test suite configuration
735
+ 3. Identify parallel execution opportunities
736
+ 4. Check database testing strategies
737
+ 5. Validate HTTP mocking patterns
738
+ 6. Generate optimization configurations
739
+ 7. Optionally apply automated fixes
740
+
741
+ ## Best Practices Applied
742
+
743
+ Based on Context7 documentation from `/goldbergyoni/nodejs-testing-best-practices`:
744
+
745
+ 1. **Parallel Execution** - Use 50% of CPU cores
746
+ 2. **Test Sharding** - Distribute across CI runners
747
+ 3. **Database Optimization** - tmpfs + fsync=off for 10x speedup
748
+ 4. **HTTP Interception** - nock for 100x faster tests
749
+ 5. **Transaction Rollback** - Instant cleanup between tests
750
+ 6. **Coverage on Demand** - Only in CI or explicitly requested
751
+ 7. **Test Grouping** - Separate unit/integration/e2e
752
+
753
+ ## Related Commands
754
+
755
+ - `/test:setup` - Initial test configuration
756
+ - `/test:coverage` - Coverage analysis
757
+ - `/playwright:optimize` - E2E test optimization
758
+
759
+ ## Troubleshooting
760
+
761
+ ### Tests Timing Out
762
+ - Increase `testTimeout` in jest.config.js
763
+ - Check for async operations without proper cleanup
764
+ - Verify database connections are closed
765
+
766
+ ### Out of Memory Errors
767
+ - Reduce `--maxWorkers` value
768
+ - Increase `--max-old-space-size`
769
+ - Use `--runInBand` to debug
770
+
771
+ ### Flaky Tests with Parallel Execution
772
+ - Check for shared state between tests
773
+ - Verify database cleanup in `afterEach`
774
+ - Use transactions for test isolation
775
+
776
+ ### Slow CI/CD Pipeline
777
+ - Implement test sharding
778
+ - Use tmpfs for databases
779
+ - Mock external HTTP requests
780
+
781
+ ## Installation
782
+
783
+ ```bash
784
+ # Install testing dependencies
785
+ npm install --save-dev jest nock mongodb-memory-server
786
+
787
+ # Install database drivers (if needed)
788
+ npm install --save-dev @prisma/client sequelize
789
+
790
+ # Setup Docker for test databases
791
+ docker-compose -f docker-compose.test.yml up -d
792
+ ```
793
+
794
+ ## Version History
795
+
796
+ - v2.0.0 - Initial Schema v2.0 release with Context7 integration
797
+ - Jest parallel execution patterns
798
+ - Test sharding for CI/CD
799
+ - Database optimization with tmpfs
800
+ - HTTP mocking with nock