claude-autopm 2.8.1 → 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 (450) hide show
  1. package/README.md +399 -529
  2. package/bin/autopm.js +2 -0
  3. package/bin/commands/plugin.js +395 -0
  4. package/bin/commands/team.js +184 -10
  5. package/install/install.js +223 -4
  6. package/lib/plugins/PluginManager.js +1328 -0
  7. package/lib/plugins/PluginManager.old.js +400 -0
  8. package/package.json +5 -1
  9. package/packages/plugin-ai/LICENSE +21 -0
  10. package/packages/plugin-ai/README.md +316 -0
  11. package/packages/plugin-ai/agents/anthropic-claude-expert.md +579 -0
  12. package/packages/plugin-ai/agents/azure-openai-expert.md +1411 -0
  13. package/packages/plugin-ai/agents/google-a2a-expert.md +1445 -0
  14. package/packages/plugin-ai/agents/huggingface-expert.md +2131 -0
  15. package/packages/plugin-ai/agents/langchain-expert.md +1427 -0
  16. package/packages/plugin-ai/commands/a2a-setup.md +886 -0
  17. package/packages/plugin-ai/commands/ai-model-deployment.md +481 -0
  18. package/packages/plugin-ai/commands/anthropic-optimize.md +793 -0
  19. package/packages/plugin-ai/commands/huggingface-deploy.md +789 -0
  20. package/packages/plugin-ai/commands/langchain-optimize.md +807 -0
  21. package/packages/plugin-ai/commands/llm-optimize.md +348 -0
  22. package/packages/plugin-ai/commands/openai-optimize.md +863 -0
  23. package/packages/plugin-ai/commands/rag-optimize.md +841 -0
  24. package/packages/plugin-ai/commands/rag-setup-scaffold.md +382 -0
  25. package/packages/plugin-ai/package.json +66 -0
  26. package/packages/plugin-ai/plugin.json +519 -0
  27. package/packages/plugin-ai/rules/ai-model-standards.md +449 -0
  28. package/packages/plugin-ai/rules/prompt-engineering-standards.md +509 -0
  29. package/packages/plugin-ai/scripts/examples/huggingface-inference-example.py +145 -0
  30. package/packages/plugin-ai/scripts/examples/langchain-rag-example.py +366 -0
  31. package/packages/plugin-ai/scripts/examples/mlflow-tracking-example.py +224 -0
  32. package/packages/plugin-ai/scripts/examples/openai-chat-example.py +425 -0
  33. package/packages/plugin-cloud/README.md +268 -0
  34. package/packages/plugin-cloud/agents/gemini-api-expert.md +880 -0
  35. package/packages/plugin-cloud/agents/openai-python-expert.md +1087 -0
  36. package/packages/plugin-cloud/commands/cloud-cost-optimize.md +243 -0
  37. package/packages/plugin-cloud/commands/cloud-validate.md +196 -0
  38. package/packages/plugin-cloud/hooks/pre-cloud-deploy.js +456 -0
  39. package/packages/plugin-cloud/package.json +64 -0
  40. package/packages/plugin-cloud/plugin.json +338 -0
  41. package/packages/plugin-cloud/rules/cloud-security-compliance.md +313 -0
  42. package/packages/plugin-cloud/scripts/examples/aws-validate.sh +30 -0
  43. package/packages/plugin-cloud/scripts/examples/azure-setup.sh +33 -0
  44. package/packages/plugin-cloud/scripts/examples/gcp-setup.sh +39 -0
  45. package/packages/plugin-cloud/scripts/examples/k8s-validate.sh +40 -0
  46. package/packages/plugin-cloud/scripts/examples/terraform-init.sh +26 -0
  47. package/packages/plugin-core/README.md +274 -0
  48. package/packages/plugin-core/commands/code-rabbit.md +128 -0
  49. package/packages/plugin-core/commands/prompt.md +9 -0
  50. package/packages/plugin-core/commands/re-init.md +9 -0
  51. package/packages/plugin-core/hooks/context7-reminder.md +29 -0
  52. package/packages/plugin-core/hooks/enforce-agents.js +125 -0
  53. package/packages/plugin-core/hooks/enforce-agents.sh +35 -0
  54. package/packages/plugin-core/hooks/pre-agent-context7.js +224 -0
  55. package/packages/plugin-core/hooks/pre-command-context7.js +229 -0
  56. package/packages/plugin-core/hooks/strict-enforce-agents.sh +39 -0
  57. package/packages/plugin-core/hooks/test-hook.sh +21 -0
  58. package/packages/plugin-core/hooks/unified-context7-enforcement.sh +38 -0
  59. package/packages/plugin-core/package.json +45 -0
  60. package/packages/plugin-core/plugin.json +387 -0
  61. package/packages/plugin-core/rules/agent-coordination.md +549 -0
  62. package/packages/plugin-core/rules/agent-mandatory.md +170 -0
  63. package/packages/plugin-core/rules/command-pipelines.md +208 -0
  64. package/packages/plugin-core/rules/context-optimization.md +176 -0
  65. package/packages/plugin-core/rules/context7-enforcement.md +327 -0
  66. package/packages/plugin-core/rules/datetime.md +122 -0
  67. package/packages/plugin-core/rules/definition-of-done.md +272 -0
  68. package/packages/plugin-core/rules/development-environments.md +19 -0
  69. package/packages/plugin-core/rules/development-workflow.md +198 -0
  70. package/packages/plugin-core/rules/framework-path-rules.md +180 -0
  71. package/packages/plugin-core/rules/frontmatter-operations.md +64 -0
  72. package/packages/plugin-core/rules/git-strategy.md +237 -0
  73. package/packages/plugin-core/rules/golden-rules.md +181 -0
  74. package/packages/plugin-core/rules/naming-conventions.md +111 -0
  75. package/packages/plugin-core/rules/no-pr-workflow.md +183 -0
  76. package/packages/plugin-core/rules/pipeline-mandatory.md +109 -0
  77. package/packages/plugin-core/rules/security-checklist.md +318 -0
  78. package/packages/plugin-core/rules/standard-patterns.md +197 -0
  79. package/packages/plugin-core/rules/strip-frontmatter.md +85 -0
  80. package/packages/plugin-core/rules/tdd.enforcement.md +103 -0
  81. package/packages/plugin-core/rules/use-ast-grep.md +113 -0
  82. package/packages/plugin-core/scripts/lib/datetime-utils.sh +254 -0
  83. package/packages/plugin-core/scripts/lib/frontmatter-utils.sh +294 -0
  84. package/packages/plugin-core/scripts/lib/github-utils.sh +221 -0
  85. package/packages/plugin-core/scripts/lib/logging-utils.sh +199 -0
  86. package/packages/plugin-core/scripts/lib/validation-utils.sh +339 -0
  87. package/packages/plugin-core/scripts/mcp/add.sh +7 -0
  88. package/packages/plugin-core/scripts/mcp/disable.sh +12 -0
  89. package/packages/plugin-core/scripts/mcp/enable.sh +12 -0
  90. package/packages/plugin-core/scripts/mcp/list.sh +7 -0
  91. package/packages/plugin-core/scripts/mcp/sync.sh +8 -0
  92. package/packages/plugin-data/README.md +315 -0
  93. package/packages/plugin-data/agents/airflow-orchestration-expert.md +158 -0
  94. package/packages/plugin-data/agents/kedro-pipeline-expert.md +304 -0
  95. package/packages/plugin-data/agents/langgraph-workflow-expert.md +530 -0
  96. package/packages/plugin-data/commands/airflow-dag-scaffold.md +413 -0
  97. package/packages/plugin-data/commands/kafka-pipeline-scaffold.md +503 -0
  98. package/packages/plugin-data/package.json +66 -0
  99. package/packages/plugin-data/plugin.json +294 -0
  100. package/packages/plugin-data/rules/data-quality-standards.md +373 -0
  101. package/packages/plugin-data/rules/etl-pipeline-standards.md +255 -0
  102. package/packages/plugin-data/scripts/examples/airflow-dag-example.py +245 -0
  103. package/packages/plugin-data/scripts/examples/dbt-transform-example.sql +238 -0
  104. package/packages/plugin-data/scripts/examples/kafka-streaming-example.py +257 -0
  105. package/packages/plugin-data/scripts/examples/pandas-etl-example.py +332 -0
  106. package/packages/plugin-databases/README.md +330 -0
  107. package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/bigquery-expert.md +24 -15
  108. package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/cosmosdb-expert.md +22 -15
  109. package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/mongodb-expert.md +24 -15
  110. package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/postgresql-expert.md +23 -15
  111. package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/redis-expert.md +29 -7
  112. package/packages/plugin-databases/commands/db-optimize.md +612 -0
  113. package/packages/plugin-databases/package.json +60 -0
  114. package/packages/plugin-databases/plugin.json +237 -0
  115. package/packages/plugin-databases/rules/database-management-strategy.md +146 -0
  116. package/packages/plugin-databases/rules/database-pipeline.md +316 -0
  117. package/packages/plugin-databases/scripts/examples/bigquery-cost-analyze.sh +160 -0
  118. package/packages/plugin-databases/scripts/examples/cosmosdb-ru-optimize.sh +163 -0
  119. package/packages/plugin-databases/scripts/examples/mongodb-shard-check.sh +120 -0
  120. package/packages/plugin-databases/scripts/examples/postgres-index-analyze.sh +95 -0
  121. package/packages/plugin-databases/scripts/examples/redis-cache-stats.sh +121 -0
  122. package/packages/plugin-devops/README.md +367 -0
  123. package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/github-operations-specialist.md +1 -1
  124. package/packages/plugin-devops/commands/ci-pipeline-create.md +581 -0
  125. package/packages/plugin-devops/commands/docker-optimize.md +493 -0
  126. package/packages/plugin-devops/hooks/pre-docker-build.js +472 -0
  127. package/packages/plugin-devops/package.json +61 -0
  128. package/packages/plugin-devops/plugin.json +302 -0
  129. package/packages/plugin-devops/rules/github-operations.md +92 -0
  130. package/packages/plugin-devops/scripts/examples/docker-build-multistage.sh +43 -0
  131. package/packages/plugin-devops/scripts/examples/docker-compose-validate.sh +74 -0
  132. package/packages/plugin-devops/scripts/examples/github-workflow-validate.sh +48 -0
  133. package/packages/plugin-devops/scripts/examples/prometheus-health-check.sh +58 -0
  134. package/packages/plugin-devops/scripts/examples/ssh-key-setup.sh +74 -0
  135. package/packages/plugin-frameworks/README.md +309 -0
  136. package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/e2e-test-engineer.md +219 -0
  137. package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/react-frontend-engineer.md +176 -0
  138. package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/tailwindcss-expert.md +251 -0
  139. package/packages/plugin-frameworks/commands/nextjs-optimize.md +692 -0
  140. package/packages/plugin-frameworks/commands/react-optimize.md +583 -0
  141. package/packages/plugin-frameworks/package.json +59 -0
  142. package/packages/plugin-frameworks/plugin.json +224 -0
  143. package/packages/plugin-frameworks/rules/performance-guidelines.md +403 -0
  144. package/packages/plugin-frameworks/scripts/examples/react-component-perf.sh +34 -0
  145. package/packages/plugin-frameworks/scripts/examples/tailwind-optimize.sh +44 -0
  146. package/packages/plugin-frameworks/scripts/examples/vue-composition-check.sh +41 -0
  147. package/packages/plugin-languages/README.md +333 -0
  148. package/packages/plugin-languages/commands/javascript-optimize.md +636 -0
  149. package/packages/plugin-languages/commands/nodejs-api-scaffold.md +341 -0
  150. package/packages/plugin-languages/commands/nodejs-optimize.md +689 -0
  151. package/packages/plugin-languages/commands/python-api-scaffold.md +261 -0
  152. package/packages/plugin-languages/commands/python-optimize.md +593 -0
  153. package/packages/plugin-languages/package.json +65 -0
  154. package/packages/plugin-languages/plugin.json +265 -0
  155. package/packages/plugin-languages/rules/code-quality-standards.md +496 -0
  156. package/packages/plugin-languages/rules/testing-standards.md +768 -0
  157. package/packages/plugin-languages/scripts/examples/bash-production-script.sh +520 -0
  158. package/packages/plugin-languages/scripts/examples/javascript-es6-patterns.js +291 -0
  159. package/packages/plugin-languages/scripts/examples/nodejs-async-iteration.js +360 -0
  160. package/packages/plugin-languages/scripts/examples/python-async-patterns.py +289 -0
  161. package/packages/plugin-languages/scripts/examples/typescript-patterns.ts +432 -0
  162. package/packages/plugin-ml/README.md +430 -0
  163. package/packages/plugin-ml/agents/automl-expert.md +326 -0
  164. package/packages/plugin-ml/agents/computer-vision-expert.md +550 -0
  165. package/packages/plugin-ml/agents/gradient-boosting-expert.md +455 -0
  166. package/packages/plugin-ml/agents/neural-network-architect.md +1228 -0
  167. package/packages/plugin-ml/agents/nlp-transformer-expert.md +584 -0
  168. package/packages/plugin-ml/agents/pytorch-expert.md +412 -0
  169. package/packages/plugin-ml/agents/reinforcement-learning-expert.md +2088 -0
  170. package/packages/plugin-ml/agents/scikit-learn-expert.md +228 -0
  171. package/packages/plugin-ml/agents/tensorflow-keras-expert.md +509 -0
  172. package/packages/plugin-ml/agents/time-series-expert.md +303 -0
  173. package/packages/plugin-ml/commands/ml-automl.md +572 -0
  174. package/packages/plugin-ml/commands/ml-train-optimize.md +657 -0
  175. package/packages/plugin-ml/package.json +52 -0
  176. package/packages/plugin-ml/plugin.json +338 -0
  177. package/packages/plugin-pm/README.md +368 -0
  178. package/packages/plugin-pm/claudeautopm-plugin-pm-2.0.0.tgz +0 -0
  179. package/packages/plugin-pm/commands/github/workflow-create.md +42 -0
  180. package/packages/plugin-pm/package.json +57 -0
  181. package/packages/plugin-pm/plugin.json +503 -0
  182. package/packages/plugin-testing/README.md +401 -0
  183. package/{autopm/.claude/agents/testing → packages/plugin-testing/agents}/frontend-testing-engineer.md +373 -0
  184. package/packages/plugin-testing/commands/jest-optimize.md +800 -0
  185. package/packages/plugin-testing/commands/playwright-optimize.md +887 -0
  186. package/packages/plugin-testing/commands/test-coverage.md +512 -0
  187. package/packages/plugin-testing/commands/test-performance.md +1041 -0
  188. package/packages/plugin-testing/commands/test-setup.md +414 -0
  189. package/packages/plugin-testing/package.json +40 -0
  190. package/packages/plugin-testing/plugin.json +197 -0
  191. package/packages/plugin-testing/rules/test-coverage-requirements.md +581 -0
  192. package/packages/plugin-testing/rules/testing-standards.md +529 -0
  193. package/packages/plugin-testing/scripts/examples/react-testing-example.test.jsx +460 -0
  194. package/packages/plugin-testing/scripts/examples/vitest-config-example.js +352 -0
  195. package/packages/plugin-testing/scripts/examples/vue-testing-example.test.js +586 -0
  196. package/scripts/publish-plugins.sh +166 -0
  197. package/autopm/.claude/agents/data/airflow-orchestration-expert.md +0 -52
  198. package/autopm/.claude/agents/data/kedro-pipeline-expert.md +0 -50
  199. package/autopm/.claude/agents/integration/message-queue-engineer.md +0 -794
  200. package/autopm/.claude/commands/ai/langgraph-workflow.md +0 -65
  201. package/autopm/.claude/commands/ai/openai-chat.md +0 -65
  202. package/autopm/.claude/commands/playwright/test-scaffold.md +0 -38
  203. package/autopm/.claude/commands/python/api-scaffold.md +0 -50
  204. package/autopm/.claude/commands/python/docs-query.md +0 -48
  205. package/autopm/.claude/commands/testing/prime.md +0 -314
  206. package/autopm/.claude/commands/testing/run.md +0 -125
  207. package/autopm/.claude/commands/ui/bootstrap-scaffold.md +0 -65
  208. package/autopm/.claude/rules/database-management-strategy.md +0 -17
  209. package/autopm/.claude/rules/database-pipeline.md +0 -94
  210. package/autopm/.claude/rules/ux-design-rules.md +0 -209
  211. package/autopm/.claude/rules/visual-testing.md +0 -223
  212. package/autopm/.claude/scripts/azure/README.md +0 -192
  213. package/autopm/.claude/scripts/azure/active-work.js +0 -524
  214. package/autopm/.claude/scripts/azure/active-work.sh +0 -20
  215. package/autopm/.claude/scripts/azure/blocked.js +0 -520
  216. package/autopm/.claude/scripts/azure/blocked.sh +0 -20
  217. package/autopm/.claude/scripts/azure/daily.js +0 -533
  218. package/autopm/.claude/scripts/azure/daily.sh +0 -20
  219. package/autopm/.claude/scripts/azure/dashboard.js +0 -970
  220. package/autopm/.claude/scripts/azure/dashboard.sh +0 -20
  221. package/autopm/.claude/scripts/azure/feature-list.js +0 -254
  222. package/autopm/.claude/scripts/azure/feature-list.sh +0 -20
  223. package/autopm/.claude/scripts/azure/feature-show.js +0 -7
  224. package/autopm/.claude/scripts/azure/feature-show.sh +0 -20
  225. package/autopm/.claude/scripts/azure/feature-status.js +0 -604
  226. package/autopm/.claude/scripts/azure/feature-status.sh +0 -20
  227. package/autopm/.claude/scripts/azure/help.js +0 -342
  228. package/autopm/.claude/scripts/azure/help.sh +0 -20
  229. package/autopm/.claude/scripts/azure/next-task.js +0 -508
  230. package/autopm/.claude/scripts/azure/next-task.sh +0 -20
  231. package/autopm/.claude/scripts/azure/search.js +0 -469
  232. package/autopm/.claude/scripts/azure/search.sh +0 -20
  233. package/autopm/.claude/scripts/azure/setup.js +0 -745
  234. package/autopm/.claude/scripts/azure/setup.sh +0 -20
  235. package/autopm/.claude/scripts/azure/sprint-report.js +0 -1012
  236. package/autopm/.claude/scripts/azure/sprint-report.sh +0 -20
  237. package/autopm/.claude/scripts/azure/sync.js +0 -563
  238. package/autopm/.claude/scripts/azure/sync.sh +0 -20
  239. package/autopm/.claude/scripts/azure/us-list.js +0 -210
  240. package/autopm/.claude/scripts/azure/us-list.sh +0 -20
  241. package/autopm/.claude/scripts/azure/us-status.js +0 -238
  242. package/autopm/.claude/scripts/azure/us-status.sh +0 -20
  243. package/autopm/.claude/scripts/azure/validate.js +0 -626
  244. package/autopm/.claude/scripts/azure/validate.sh +0 -20
  245. package/autopm/.claude/scripts/azure/wrapper-template.sh +0 -20
  246. package/autopm/.claude/scripts/github/dependency-tracker.js +0 -554
  247. package/autopm/.claude/scripts/github/dependency-validator.js +0 -545
  248. package/autopm/.claude/scripts/github/dependency-visualizer.js +0 -477
  249. package/bin/node/azure-feature-show.js +0 -7
  250. /package/{autopm/.claude/agents/cloud → packages/plugin-ai/agents}/gemini-api-expert.md +0 -0
  251. /package/{autopm/.claude/agents/data → packages/plugin-ai/agents}/langgraph-workflow-expert.md +0 -0
  252. /package/{autopm/.claude/agents/cloud → packages/plugin-ai/agents}/openai-python-expert.md +0 -0
  253. /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/README.md +0 -0
  254. /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/aws-cloud-architect.md +0 -0
  255. /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/azure-cloud-architect.md +0 -0
  256. /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/gcp-cloud-architect.md +0 -0
  257. /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/gcp-cloud-functions-engineer.md +0 -0
  258. /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/kubernetes-orchestrator.md +0 -0
  259. /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/terraform-infrastructure-expert.md +0 -0
  260. /package/{autopm/.claude/commands/cloud → packages/plugin-cloud/commands}/infra-deploy.md +0 -0
  261. /package/{autopm/.claude/commands/kubernetes/deploy.md → packages/plugin-cloud/commands/k8s-deploy.md} +0 -0
  262. /package/{autopm/.claude/commands/infrastructure → packages/plugin-cloud/commands}/ssh-security.md +0 -0
  263. /package/{autopm/.claude/commands/infrastructure → packages/plugin-cloud/commands}/traefik-setup.md +0 -0
  264. /package/{autopm/.claude → packages/plugin-cloud}/rules/infrastructure-pipeline.md +0 -0
  265. /package/{autopm/.claude → packages/plugin-core}/agents/core/agent-manager.md +0 -0
  266. /package/{autopm/.claude → packages/plugin-core}/agents/core/code-analyzer.md +0 -0
  267. /package/{autopm/.claude → packages/plugin-core}/agents/core/file-analyzer.md +0 -0
  268. /package/{autopm/.claude → packages/plugin-core}/agents/core/test-runner.md +0 -0
  269. /package/{autopm/.claude → packages/plugin-core}/rules/ai-integration-patterns.md +0 -0
  270. /package/{autopm/.claude → packages/plugin-core}/rules/performance-guidelines.md +0 -0
  271. /package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/README.md +0 -0
  272. /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/README.md +0 -0
  273. /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/azure-devops-specialist.md +0 -0
  274. /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/docker-containerization-expert.md +0 -0
  275. /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/mcp-context-manager.md +0 -0
  276. /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/observability-engineer.md +0 -0
  277. /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/ssh-operations-expert.md +0 -0
  278. /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/traefik-proxy-expert.md +0 -0
  279. /package/{autopm/.claude/commands/github → packages/plugin-devops/commands}/workflow-create.md +0 -0
  280. /package/{autopm/.claude → packages/plugin-devops}/rules/ci-cd-kubernetes-strategy.md +0 -0
  281. /package/{autopm/.claude → packages/plugin-devops}/rules/devops-troubleshooting-playbook.md +0 -0
  282. /package/{autopm/.claude → packages/plugin-devops}/rules/docker-first-development.md +0 -0
  283. /package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/README.md +0 -0
  284. /package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/nats-messaging-expert.md +0 -0
  285. /package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/react-ui-expert.md +0 -0
  286. /package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/ux-design-expert.md +0 -0
  287. /package/{autopm/.claude/commands/react → packages/plugin-frameworks/commands}/app-scaffold.md +0 -0
  288. /package/{autopm/.claude/commands/ui → packages/plugin-frameworks/commands}/tailwind-system.md +0 -0
  289. /package/{autopm/.claude → packages/plugin-frameworks}/rules/ui-development-standards.md +0 -0
  290. /package/{autopm/.claude → packages/plugin-frameworks}/rules/ui-framework-rules.md +0 -0
  291. /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/README.md +0 -0
  292. /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/bash-scripting-expert.md +0 -0
  293. /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/javascript-frontend-engineer.md +0 -0
  294. /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/nodejs-backend-engineer.md +0 -0
  295. /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/python-backend-engineer.md +0 -0
  296. /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/python-backend-expert.md +0 -0
  297. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/COMMANDS.md +0 -0
  298. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/COMMAND_MAPPING.md +0 -0
  299. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/INTEGRATION_FIX.md +0 -0
  300. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/README.md +0 -0
  301. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/active-work.md +0 -0
  302. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/aliases.md +0 -0
  303. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/blocked-items.md +0 -0
  304. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/clean.md +0 -0
  305. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/docs-query.md +0 -0
  306. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-decompose.md +0 -0
  307. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-list.md +0 -0
  308. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-new.md +0 -0
  309. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-show.md +0 -0
  310. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-start.md +0 -0
  311. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/fix-integration-example.md +0 -0
  312. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/help.md +0 -0
  313. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/import-us.md +0 -0
  314. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/init.md +0 -0
  315. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/next-task.md +0 -0
  316. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/search.md +0 -0
  317. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/sprint-status.md +0 -0
  318. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/standup.md +0 -0
  319. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/sync-all.md +0 -0
  320. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-analyze.md +0 -0
  321. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-close.md +0 -0
  322. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-edit.md +0 -0
  323. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-list.md +0 -0
  324. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-new.md +0 -0
  325. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-reopen.md +0 -0
  326. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-show.md +0 -0
  327. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-start.md +0 -0
  328. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-status.md +0 -0
  329. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-sync.md +0 -0
  330. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-edit.md +0 -0
  331. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-list.md +0 -0
  332. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-new.md +0 -0
  333. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-parse.md +0 -0
  334. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-show.md +0 -0
  335. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-status.md +0 -0
  336. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/validate.md +0 -0
  337. /package/{autopm/.claude → packages/plugin-pm}/commands/azure/work-item-sync.md +0 -0
  338. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/blocked.md +0 -0
  339. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/clean.md +0 -0
  340. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/context-create.md +0 -0
  341. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/context-prime.md +0 -0
  342. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/context-update.md +0 -0
  343. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/context.md +0 -0
  344. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-close.md +0 -0
  345. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-decompose.md +0 -0
  346. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-edit.md +0 -0
  347. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-list.md +0 -0
  348. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-merge.md +0 -0
  349. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-oneshot.md +0 -0
  350. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-refresh.md +0 -0
  351. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-show.md +0 -0
  352. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-split.md +0 -0
  353. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-start.md +0 -0
  354. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-status.md +0 -0
  355. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-sync-modular.md +0 -0
  356. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-sync-original.md +0 -0
  357. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-sync.md +0 -0
  358. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/help.md +0 -0
  359. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/import.md +0 -0
  360. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/in-progress.md +0 -0
  361. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/init.md +0 -0
  362. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-analyze.md +0 -0
  363. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-close.md +0 -0
  364. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-edit.md +0 -0
  365. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-reopen.md +0 -0
  366. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-show.md +0 -0
  367. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-start.md +0 -0
  368. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-status.md +0 -0
  369. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-sync.md +0 -0
  370. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/next.md +0 -0
  371. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-edit.md +0 -0
  372. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-list.md +0 -0
  373. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-new.md +0 -0
  374. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-parse.md +0 -0
  375. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-status.md +0 -0
  376. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/search.md +0 -0
  377. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/standup.md +0 -0
  378. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/status.md +0 -0
  379. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/sync.md +0 -0
  380. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/test-reference-update.md +0 -0
  381. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/validate.md +0 -0
  382. /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/what-next.md +0 -0
  383. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/analytics.js +0 -0
  384. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/blocked.js +0 -0
  385. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/blocked.sh +0 -0
  386. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/clean.js +0 -0
  387. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/context-create.js +0 -0
  388. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/context-prime.js +0 -0
  389. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/context-update.js +0 -0
  390. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/context.js +0 -0
  391. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-close.js +0 -0
  392. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-edit.js +0 -0
  393. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-list.js +0 -0
  394. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-list.sh +0 -0
  395. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-show.js +0 -0
  396. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-show.sh +0 -0
  397. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-split.js +0 -0
  398. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-start/epic-start.js +0 -0
  399. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-start/epic-start.sh +0 -0
  400. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-status.js +0 -0
  401. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-status.sh +0 -0
  402. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/README.md +0 -0
  403. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/create-epic-issue.sh +0 -0
  404. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/create-task-issues.sh +0 -0
  405. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/update-epic-file.sh +0 -0
  406. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/update-references.sh +0 -0
  407. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync.sh +0 -0
  408. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/help.js +0 -0
  409. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/help.sh +0 -0
  410. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/in-progress.js +0 -0
  411. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/in-progress.sh +0 -0
  412. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/init.js +0 -0
  413. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/init.sh +0 -0
  414. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-close.js +0 -0
  415. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-edit.js +0 -0
  416. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-show.js +0 -0
  417. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-start.js +0 -0
  418. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/format-comment.sh +0 -0
  419. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/gather-updates.sh +0 -0
  420. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/post-comment.sh +0 -0
  421. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/preflight-validation.sh +0 -0
  422. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/update-frontmatter.sh +0 -0
  423. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/lib/README.md +0 -0
  424. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/lib/epic-discovery.js +0 -0
  425. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/lib/logger.js +0 -0
  426. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/next.js +0 -0
  427. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/next.sh +0 -0
  428. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/optimize.js +0 -0
  429. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/pr-create.js +0 -0
  430. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/pr-list.js +0 -0
  431. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-list.js +0 -0
  432. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-list.sh +0 -0
  433. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-new.js +0 -0
  434. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-parse.js +0 -0
  435. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-status.js +0 -0
  436. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-status.sh +0 -0
  437. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/release.js +0 -0
  438. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/search.js +0 -0
  439. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/search.sh +0 -0
  440. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/standup.js +0 -0
  441. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/standup.sh +0 -0
  442. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/status.js +0 -0
  443. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/status.sh +0 -0
  444. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/sync-batch.js +0 -0
  445. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/sync.js +0 -0
  446. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/template-list.js +0 -0
  447. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/template-new.js +0 -0
  448. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/validate.js +0 -0
  449. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/validate.sh +0 -0
  450. /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/what-next.js +0 -0
@@ -0,0 +1,887 @@
1
+ # playwright:optimize
2
+
3
+ Optimize Playwright E2E test performance with Context7-verified parallel execution, sharding, and browser configuration.
4
+
5
+ ## Description
6
+
7
+ Comprehensive Playwright performance optimization following official Microsoft best practices:
8
+ - Fully parallel test execution
9
+ - Test sharding across multiple machines
10
+ - Browser context optimization
11
+ - Trace and video recording strategies
12
+ - Network optimization and caching
13
+ - CI/CD pipeline optimization
14
+
15
+ ## Required Documentation Access
16
+
17
+ **MANDATORY:** Before optimization, query Context7 for Playwright best practices:
18
+
19
+ **Documentation Queries:**
20
+ - `mcp://context7/playwright/parallel-execution` - Parallel test execution patterns
21
+ - `mcp://context7/playwright/sharding` - Test sharding strategies
22
+ - `mcp://context7/playwright/browser-contexts` - Browser context optimization
23
+ - `mcp://context7/playwright/ci-cd` - CI/CD pipeline optimization
24
+ - `mcp://context7/playwright/performance` - Performance best practices
25
+
26
+ **Why This is Required:**
27
+ - Ensures optimization follows official Microsoft Playwright documentation
28
+ - Applies proven parallel execution patterns
29
+ - Validates sharding strategies for distributed testing
30
+ - Prevents flaky tests and race conditions
31
+ - Optimizes CI/CD resource utilization
32
+
33
+ ## Usage
34
+
35
+ ```bash
36
+ /playwright:optimize [options]
37
+ ```
38
+
39
+ ## Options
40
+
41
+ - `--scope <parallel|sharding|browser|traces|all>` - Optimization scope (default: all)
42
+ - `--analyze-only` - Analyze without applying changes
43
+ - `--output <file>` - Write optimization report
44
+ - `--workers <n>` - Set maximum parallel workers
45
+ - `--shard <index/count>` - Configure test sharding
46
+
47
+ ## Examples
48
+
49
+ ### Full E2E Test Optimization
50
+ ```bash
51
+ /playwright:optimize
52
+ ```
53
+
54
+ ### Parallel Execution Only
55
+ ```bash
56
+ /playwright:optimize --scope parallel --workers 4
57
+ ```
58
+
59
+ ### Test Sharding for CI/CD
60
+ ```bash
61
+ /playwright:optimize --scope sharding --shard 1/3
62
+ ```
63
+
64
+ ### Browser Context Optimization
65
+ ```bash
66
+ /playwright:optimize --scope browser
67
+ ```
68
+
69
+ ### Analyze Without Changes
70
+ ```bash
71
+ /playwright:optimize --analyze-only --output playwright-report.md
72
+ ```
73
+
74
+ ## Optimization Categories
75
+
76
+ ### 1. Fully Parallel Test Execution (Context7-Verified)
77
+
78
+ **Pattern from Context7 (/microsoft/playwright):**
79
+
80
+ #### Enable Fully Parallel Mode
81
+ ```typescript
82
+ // playwright.config.ts
83
+ import { defineConfig, devices } from '@playwright/test';
84
+
85
+ export default defineConfig({
86
+ // Run tests in files in parallel
87
+ fullyParallel: true,
88
+
89
+ // Fail the build on CI if you accidentally left test.only in the source code
90
+ forbidOnly: !!process.env.CI,
91
+
92
+ // Retry on CI only
93
+ retries: process.env.CI ? 2 : 0,
94
+
95
+ // Opt out of parallel tests on CI
96
+ workers: process.env.CI ? 2 : undefined,
97
+
98
+ // Reporter to use
99
+ reporter: 'html',
100
+
101
+ use: {
102
+ // Base URL to use in actions like `await page.goto('/')`
103
+ baseURL: 'http://127.0.0.1:3000',
104
+
105
+ // Collect trace when retrying the failed test
106
+ trace: 'on-first-retry',
107
+ },
108
+
109
+ // Configure projects for major browsers
110
+ projects: [
111
+ {
112
+ name: 'chromium',
113
+ use: { ...devices['Desktop Chrome'] },
114
+ },
115
+ {
116
+ name: 'firefox',
117
+ use: { ...devices['Desktop Firefox'] },
118
+ },
119
+ {
120
+ name: 'webkit',
121
+ use: { ...devices['Desktop Safari'] },
122
+ },
123
+ ],
124
+ });
125
+ ```
126
+
127
+ **Benefits:**
128
+ - All test files run in parallel
129
+ - Each test within a file runs in parallel (with proper grouping)
130
+ - Linear speedup with more workers
131
+
132
+ **Performance Impact:**
133
+ - Sequential: 30 minutes
134
+ - Parallel (4 workers): 7.5 minutes (4x faster)
135
+ - Parallel (8 workers): 3.75 minutes (8x faster)
136
+
137
+ #### Parallel Tests Within File
138
+ ```typescript
139
+ import { test, expect } from '@playwright/test';
140
+
141
+ // Enable parallel mode for all tests in this file
142
+ test.describe.configure({ mode: 'parallel' });
143
+
144
+ test.describe('Feature A', () => {
145
+ test('test 1', async ({ page }) => {
146
+ await page.goto('/feature-a');
147
+ await expect(page.locator('h1')).toHaveText('Feature A');
148
+ });
149
+
150
+ test('test 2', async ({ page }) => {
151
+ await page.goto('/feature-a/detail');
152
+ await expect(page.locator('h2')).toHaveText('Details');
153
+ });
154
+ });
155
+ ```
156
+
157
+ **Benefits:**
158
+ - Tests in same file run concurrently
159
+ - Each test gets isolated browser context
160
+ - No shared state between tests
161
+
162
+ **Performance Impact:** 2-3x faster when tests have I/O waits
163
+
164
+ #### Serial Tests (When Needed)
165
+ ```typescript
166
+ // Force serial execution for dependent tests
167
+ test.describe.configure({ mode: 'serial' });
168
+
169
+ test.describe('Authentication Flow', () => {
170
+ test('should login', async ({ page }) => {
171
+ // Login test
172
+ });
173
+
174
+ test('should access protected page', async ({ page }) => {
175
+ // Depends on login
176
+ });
177
+ });
178
+ ```
179
+
180
+ **Use Cases:**
181
+ - Tests with dependencies
182
+ - State that must be preserved
183
+ - Setup/teardown sequences
184
+
185
+ ### 2. Test Sharding (Context7-Verified)
186
+
187
+ **Pattern from Context7 (/microsoft/playwright):**
188
+
189
+ #### GitHub Actions Matrix Strategy
190
+ ```yaml
191
+ # .github/workflows/playwright.yml
192
+ name: Playwright Tests
193
+ on:
194
+ push:
195
+ branches: [ main, master ]
196
+ pull_request:
197
+ branches: [ main, master ]
198
+
199
+ jobs:
200
+ test:
201
+ timeout-minutes: 60
202
+ runs-on: ubuntu-latest
203
+ strategy:
204
+ fail-fast: false
205
+ matrix:
206
+ shardIndex: [1, 2, 3, 4]
207
+ shardTotal: [4]
208
+ steps:
209
+ - uses: actions/checkout@v3
210
+ - uses: actions/setup-node@v3
211
+ with:
212
+ node-version: 18
213
+ - name: Install dependencies
214
+ run: npm ci
215
+ - name: Install Playwright Browsers
216
+ run: npx playwright install --with-deps
217
+ - name: Run Playwright tests
218
+ run: npx playwright test --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
219
+ - uses: actions/upload-artifact@v3
220
+ if: always()
221
+ with:
222
+ name: playwright-report-${{ matrix.shardIndex }}
223
+ path: playwright-report/
224
+ retention-days: 30
225
+ ```
226
+
227
+ **Benefits:**
228
+ - Runs 4 shards in parallel across GitHub runners
229
+ - Linear speedup (4x with 4 shards)
230
+ - Automatic load balancing
231
+ - Parallel artifact upload
232
+
233
+ **Performance Impact:**
234
+ - Single runner: 30 minutes
235
+ - 4 shards: 7.5 minutes (4x faster)
236
+ - 8 shards: 3.75 minutes (8x faster)
237
+
238
+ **Cost Analysis:**
239
+ - Single runner: 30 minutes × 1 = 30 runner-minutes
240
+ - 4 shards: 7.5 minutes × 4 = 30 runner-minutes (same cost, 4x faster)
241
+
242
+ #### GitLab CI Parallel Jobs
243
+ ```yaml
244
+ # .gitlab-ci.yml
245
+ stages:
246
+ - test
247
+
248
+ playwright:
249
+ stage: test
250
+ image: mcr.microsoft.com/playwright:v1.40.0-focal
251
+ parallel: 4
252
+ script:
253
+ - npm ci
254
+ - npx playwright test --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL
255
+ artifacts:
256
+ when: always
257
+ paths:
258
+ - playwright-report/
259
+ expire_in: 30 days
260
+ ```
261
+
262
+ **Benefits:**
263
+ - Automatic shard distribution
264
+ - Built-in GitLab integration
265
+ - Scales with `parallel` value
266
+
267
+ #### CircleCI Parallelism
268
+ ```yaml
269
+ # .circleci/config.yml
270
+ version: 2.1
271
+ orbs:
272
+ playwright: talkiq/playwright@1.4.1
273
+
274
+ jobs:
275
+ test:
276
+ docker:
277
+ - image: mcr.microsoft.com/playwright:v1.40.0-focal
278
+ parallelism: 4
279
+ steps:
280
+ - checkout
281
+ - run:
282
+ name: Install dependencies
283
+ command: npm ci
284
+ - run:
285
+ name: Run tests
286
+ command: |
287
+ SHARD="$((${CIRCLE_NODE_INDEX} + 1))/${CIRCLE_NODE_TOTAL}"
288
+ npx playwright test --shard=$SHARD
289
+ - store_artifacts:
290
+ path: playwright-report
291
+ ```
292
+
293
+ #### Azure Pipelines
294
+ ```yaml
295
+ # azure-pipelines.yml
296
+ trigger:
297
+ - main
298
+
299
+ strategy:
300
+ matrix:
301
+ shard_1_4:
302
+ shardIndex: 1
303
+ shardTotal: 4
304
+ shard_2_4:
305
+ shardIndex: 2
306
+ shardTotal: 4
307
+ shard_3_4:
308
+ shardIndex: 3
309
+ shardTotal: 4
310
+ shard_4_4:
311
+ shardIndex: 4
312
+ shardTotal: 4
313
+
314
+ pool:
315
+ vmImage: 'ubuntu-latest'
316
+
317
+ steps:
318
+ - task: NodeTool@0
319
+ inputs:
320
+ versionSpec: '18'
321
+ - script: npm ci
322
+ displayName: 'Install dependencies'
323
+ - script: npx playwright install --with-deps
324
+ displayName: 'Install Playwright browsers'
325
+ - script: npx playwright test --shard=$(shardIndex)/$(shardTotal)
326
+ displayName: 'Run Playwright tests'
327
+ - task: PublishTestResults@2
328
+ inputs:
329
+ testResultsFormat: 'JUnit'
330
+ testResultsFiles: 'playwright-report/results.xml'
331
+ ```
332
+
333
+ ### 3. Browser Context Optimization (Context7-Verified)
334
+
335
+ **Pattern from Context7 (/microsoft/playwright):**
336
+
337
+ #### Reuse Browser Context
338
+ ```typescript
339
+ // playwright.config.ts
340
+ export default defineConfig({
341
+ use: {
342
+ // Browser context options
343
+ viewport: { width: 1280, height: 720 },
344
+ ignoreHTTPSErrors: true,
345
+ screenshot: 'only-on-failure',
346
+ video: 'retain-on-failure',
347
+ trace: 'on-first-retry',
348
+
349
+ // Performance optimizations
350
+ launchOptions: {
351
+ args: [
352
+ '--disable-dev-shm-usage',
353
+ '--disable-blink-features=AutomationControlled',
354
+ '--no-sandbox',
355
+ ],
356
+ },
357
+ },
358
+ });
359
+ ```
360
+
361
+ **Optimizations Explained:**
362
+ - `--disable-dev-shm-usage`: Use /tmp instead of /dev/shm (Docker)
363
+ - `--no-sandbox`: Disable sandbox (CI environments)
364
+ - `screenshot: 'only-on-failure'`: Save disk space
365
+ - `video: 'retain-on-failure'`: Only keep failed test videos
366
+ - `trace: 'on-first-retry'`: Minimal trace collection
367
+
368
+ **Performance Impact:** 30% faster test execution, 90% less disk usage
369
+
370
+ #### Shared Browser Context Pattern
371
+ ```typescript
372
+ import { test as base } from '@playwright/test';
373
+
374
+ // Extend base test with shared context
375
+ export const test = base.extend<{ sharedContext: any }>({
376
+ sharedContext: async ({ browser }, use) => {
377
+ const context = await browser.newContext();
378
+ await context.addCookies([
379
+ { name: 'auth_token', value: 'test-token', domain: 'localhost', path: '/' }
380
+ ]);
381
+ await use(context);
382
+ await context.close();
383
+ },
384
+ });
385
+
386
+ // Use shared context in tests
387
+ test('test with auth', async ({ sharedContext }) => {
388
+ const page = await sharedContext.newPage();
389
+ await page.goto('/dashboard');
390
+ // Already authenticated
391
+ });
392
+ ```
393
+
394
+ **Benefits:**
395
+ - Shared authentication state
396
+ - Faster test execution
397
+ - Reduced setup time
398
+
399
+ **Performance Impact:** 5x faster (no repeated login: 10s → 2s per test)
400
+
401
+ ### 4. Trace and Video Optimization (Context7-Verified)
402
+
403
+ **Pattern from Context7 (/microsoft/playwright):**
404
+
405
+ #### Conditional Trace Collection
406
+ ```typescript
407
+ // playwright.config.ts
408
+ export default defineConfig({
409
+ use: {
410
+ // Only collect traces on first retry
411
+ trace: 'on-first-retry',
412
+
413
+ // Only record videos for failed tests
414
+ video: 'retain-on-failure',
415
+
416
+ // Screenshots only on failure
417
+ screenshot: 'only-on-failure',
418
+ },
419
+ });
420
+ ```
421
+
422
+ **Storage Impact:**
423
+ - Full trace/video: 500 MB per run
424
+ - Optimized (failures only): 50 MB per run (10x less)
425
+
426
+ **CI/CD Benefits:**
427
+ - Faster artifact upload
428
+ - Lower storage costs
429
+ - Faster test execution (no video encoding overhead)
430
+
431
+ #### Programmatic Trace Control
432
+ ```typescript
433
+ import { test } from '@playwright/test';
434
+
435
+ test('complex test with trace', async ({ page, context }) => {
436
+ // Start trace only for critical section
437
+ await context.tracing.start({ screenshots: true, snapshots: true });
438
+
439
+ try {
440
+ await page.goto('/critical-flow');
441
+ await page.click('button');
442
+ await page.waitForSelector('.success');
443
+ } finally {
444
+ // Save trace only if test fails
445
+ if (test.info().status === 'failed') {
446
+ await context.tracing.stop({
447
+ path: `trace-${test.info().title}.zip`
448
+ });
449
+ } else {
450
+ await context.tracing.stop();
451
+ }
452
+ }
453
+ });
454
+ ```
455
+
456
+ **Benefits:**
457
+ - Trace only critical sections
458
+ - Save only on failure
459
+ - Minimal performance impact
460
+
461
+ ### 5. Network Optimization (Context7-Verified)
462
+
463
+ **Pattern from Context7 (/microsoft/playwright):**
464
+
465
+ #### Route Interception for Speed
466
+ ```typescript
467
+ import { test } from '@playwright/test';
468
+
469
+ test.beforeEach(async ({ page }) => {
470
+ // Block unnecessary resources
471
+ await page.route('**/*', (route) => {
472
+ const resourceType = route.request().resourceType();
473
+
474
+ if (['image', 'font', 'stylesheet'].includes(resourceType)) {
475
+ route.abort();
476
+ } else {
477
+ route.continue();
478
+ }
479
+ });
480
+ });
481
+
482
+ test('fast test without images', async ({ page }) => {
483
+ await page.goto('/');
484
+ // Page loads 3x faster without images/fonts/CSS
485
+ });
486
+ ```
487
+
488
+ **Performance Impact:** 3x faster page loads (6s → 2s)
489
+
490
+ #### API Mocking for Reliability
491
+ ```typescript
492
+ import { test, expect } from '@playwright/test';
493
+
494
+ test('test with mocked API', async ({ page }) => {
495
+ // Mock API responses
496
+ await page.route('**/api/users', (route) => {
497
+ route.fulfill({
498
+ status: 200,
499
+ contentType: 'application/json',
500
+ body: JSON.stringify([
501
+ { id: 1, name: 'John Doe' },
502
+ { id: 2, name: 'Jane Smith' }
503
+ ])
504
+ });
505
+ });
506
+
507
+ await page.goto('/users');
508
+ await expect(page.locator('text=John Doe')).toBeVisible();
509
+ });
510
+ ```
511
+
512
+ **Benefits:**
513
+ - 100x faster (no real API calls)
514
+ - No flaky tests (deterministic)
515
+ - No external dependencies
516
+
517
+ **Performance Impact:**
518
+ - Real API: 500ms per test
519
+ - Mocked API: 5ms per test (100x faster)
520
+
521
+ #### HTTP Cache Reuse
522
+ ```typescript
523
+ // playwright.config.ts
524
+ export default defineConfig({
525
+ use: {
526
+ // Enable HTTP caching
527
+ launchOptions: {
528
+ args: ['--disable-features=NetworkService'],
529
+ },
530
+
531
+ // Reuse browser context for faster loads
532
+ storageState: 'state.json',
533
+ },
534
+ });
535
+ ```
536
+
537
+ ### 6. CI/CD Pipeline Optimization (Context7-Verified)
538
+
539
+ **Pattern from Context7 (/microsoft/playwright):**
540
+
541
+ #### Docker Container Caching
542
+ ```dockerfile
543
+ # Dockerfile for CI
544
+ FROM mcr.microsoft.com/playwright:v1.40.0-focal
545
+
546
+ WORKDIR /app
547
+
548
+ # Cache dependencies
549
+ COPY package*.json ./
550
+ RUN npm ci
551
+
552
+ # Copy source
553
+ COPY . .
554
+
555
+ # Run tests
556
+ CMD ["npx", "playwright", "test"]
557
+ ```
558
+
559
+ **Benefits:**
560
+ - Cached browser binaries (no download)
561
+ - Faster CI startup (30s → 5s)
562
+ - Consistent environment
563
+
564
+ #### GitHub Actions with Caching
565
+ ```yaml
566
+ name: Playwright Tests
567
+ on: [push, pull_request]
568
+
569
+ jobs:
570
+ test:
571
+ runs-on: ubuntu-latest
572
+ steps:
573
+ - uses: actions/checkout@v3
574
+
575
+ - uses: actions/setup-node@v3
576
+ with:
577
+ node-version: 18
578
+ cache: 'npm'
579
+
580
+ - name: Cache Playwright browsers
581
+ uses: actions/cache@v3
582
+ with:
583
+ path: ~/.cache/ms-playwright
584
+ key: ${{ runner.os }}-playwright-${{ hashFiles('**/package-lock.json') }}
585
+
586
+ - run: npm ci
587
+
588
+ - name: Install Playwright browsers
589
+ run: npx playwright install --with-deps
590
+ if: steps.cache.outputs.cache-hit != 'true'
591
+
592
+ - run: npx playwright test
593
+
594
+ - uses: actions/upload-artifact@v3
595
+ if: always()
596
+ with:
597
+ name: playwright-report
598
+ path: playwright-report/
599
+ ```
600
+
601
+ **Performance Impact:**
602
+ - Without cache: 2m 30s setup
603
+ - With cache: 15s setup (10x faster)
604
+
605
+ ### 7. Test Grouping Strategies
606
+
607
+ **Pattern from Context7:**
608
+
609
+ #### Group by Feature
610
+ ```typescript
611
+ // playwright.config.ts
612
+ export default defineConfig({
613
+ projects: [
614
+ {
615
+ name: 'authentication',
616
+ testMatch: '**/auth/**/*.spec.ts',
617
+ use: { ...devices['Desktop Chrome'] },
618
+ },
619
+ {
620
+ name: 'checkout',
621
+ testMatch: '**/checkout/**/*.spec.ts',
622
+ use: { ...devices['Desktop Chrome'] },
623
+ dependencies: ['authentication'],
624
+ },
625
+ {
626
+ name: 'admin',
627
+ testMatch: '**/admin/**/*.spec.ts',
628
+ use: { ...devices['Desktop Chrome'] },
629
+ dependencies: ['authentication'],
630
+ },
631
+ ],
632
+ });
633
+ ```
634
+
635
+ **Benefits:**
636
+ - Run feature groups independently
637
+ - Define dependencies between projects
638
+ - Fail fast on critical features
639
+
640
+ **Run Commands:**
641
+ ```bash
642
+ # Run all tests
643
+ npx playwright test
644
+
645
+ # Run specific project
646
+ npx playwright test --project=authentication
647
+ npx playwright test --project=checkout
648
+
649
+ # Run dependent projects
650
+ npx playwright test --project=checkout
651
+ # Automatically runs authentication first
652
+ ```
653
+
654
+ #### Group by Browser
655
+ ```typescript
656
+ export default defineConfig({
657
+ projects: [
658
+ {
659
+ name: 'chromium-desktop',
660
+ use: { ...devices['Desktop Chrome'] },
661
+ testMatch: '**/*.spec.ts',
662
+ },
663
+ {
664
+ name: 'chromium-mobile',
665
+ use: { ...devices['Pixel 5'] },
666
+ testMatch: '**/mobile/**/*.spec.ts',
667
+ },
668
+ {
669
+ name: 'firefox',
670
+ use: { ...devices['Desktop Firefox'] },
671
+ testMatch: '**/cross-browser/**/*.spec.ts',
672
+ },
673
+ {
674
+ name: 'webkit',
675
+ use: { ...devices['Desktop Safari'] },
676
+ testMatch: '**/cross-browser/**/*.spec.ts',
677
+ },
678
+ ],
679
+ });
680
+ ```
681
+
682
+ ## Optimization Output
683
+
684
+ ```
685
+ 🎭 Playwright Performance Optimization Analysis
686
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
687
+
688
+ Project: E2E Test Suite
689
+ Framework: Playwright 1.40.0
690
+ Node.js: 18.x
691
+ Total Tests: 487
692
+
693
+ 📊 Current Performance
694
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
695
+
696
+ Test Execution: 28m 34s
697
+ Trace Collection: +5m 12s (always enabled)
698
+ Video Recording: +3m 45s (all tests)
699
+ Total Time: 37m 31s
700
+
701
+ Parallel Workers: Not configured (sequential)
702
+ Sharding: Not configured
703
+ Browser Context: New context per test (slow)
704
+
705
+ ⚡ Fully Parallel Execution
706
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
707
+
708
+ Current: Sequential execution
709
+ Recommended: fullyParallel: true with 4 workers
710
+
711
+ 💡 Impact:
712
+ - Sequential: 28m 34s
713
+ - Parallel (4 workers): 7m 8s (4x faster)
714
+ - Parallel (8 workers): 3m 34s (8x faster)
715
+
716
+ 🗂️ Test Sharding for CI/CD
717
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
718
+
719
+ Current: Single runner (37m 31s)
720
+ Recommended: 4 shards across parallel runners
721
+
722
+ 💡 Impact:
723
+ - Single runner: 37m 31s
724
+ - 4 shards: 9m 23s (4x faster)
725
+ - 8 shards: 4m 42s (8x faster)
726
+
727
+ GitHub Actions configuration generated ✓
728
+ Cost Analysis: Same runner-minutes, 4x faster delivery
729
+
730
+ 🌐 Browser Context Optimization
731
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
732
+
733
+ ⚠️ Creating new context per test (expensive)
734
+ Current: ~2s overhead per test = 16m 14s total
735
+
736
+ 💡 Recommendations:
737
+ 1. Reuse browser context with storageState → 5x faster auth
738
+ 2. Add launchOptions optimization flags → 30% faster
739
+ 3. Share cookies between tests → No repeated login
740
+
741
+ Configuration generated ✓
742
+
743
+ ⚡ Impact:
744
+ - Current: 2s setup per test (16m 14s total)
745
+ - Optimized: 0.4s setup per test (3m 15s total)
746
+ - Speedup: 5x faster (13 minutes saved)
747
+
748
+ 📹 Trace & Video Optimization
749
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
750
+
751
+ ⚠️ Collecting traces and videos for ALL tests
752
+ Current: 8m 57s overhead, 2.3 GB storage
753
+
754
+ 💡 Recommendations:
755
+ 1. trace: 'on-first-retry' → Only on failures
756
+ 2. video: 'retain-on-failure' → Only keep failures
757
+ 3. screenshot: 'only-on-failure' → Save disk space
758
+
759
+ Configuration updated ✓
760
+
761
+ ⚡ Impact:
762
+ - Current: +8m 57s, 2.3 GB storage
763
+ - Optimized: +45s, 230 MB storage (on 5% failure rate)
764
+ - Speedup: 12x faster, 10x less storage
765
+
766
+ 🌐 Network Optimization
767
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
768
+
769
+ ⚠️ Loading all resources (images, fonts, CSS)
770
+ Current: 6s average page load
771
+
772
+ 💡 Recommendations:
773
+ 1. Block unnecessary resources → 3x faster loads
774
+ 2. Mock API responses → 100x faster, no flaky tests
775
+ 3. Enable HTTP caching → Faster repeated loads
776
+
777
+ Route interception configured ✓
778
+
779
+ ⚡ Impact:
780
+ - Current: 6s per page load
781
+ - Optimized: 2s per page load (3x faster)
782
+ - API tests: 500ms → 5ms (100x faster)
783
+
784
+ 🎯 Summary
785
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
786
+
787
+ Total Optimizations: 18
788
+
789
+ 🔴 Critical: 4 (parallel, sharding, context, traces)
790
+ 🟡 High Impact: 8 (network, videos, caching)
791
+ 🟢 Low Impact: 6 (grouping, configuration)
792
+
793
+ Estimated Performance Improvement:
794
+
795
+ Local Development:
796
+ - Before: 37m 31s
797
+ - After: 3m 34s (10.5x faster)
798
+
799
+ CI/CD (with 4 shards):
800
+ - Before: 37m 31s
801
+ - After: 4m 42s (8x faster)
802
+
803
+ Storage Requirements:
804
+ - Before: 2.3 GB per run
805
+ - After: 230 MB per run (10x less)
806
+
807
+ Test Reliability:
808
+ - Flaky tests (real APIs): 15% failure rate
809
+ - With mocked APIs: 0% flaky (100% reliable)
810
+
811
+ Run with --apply to implement optimizations
812
+ ```
813
+
814
+ ## Implementation
815
+
816
+ This command uses the **@e2e-test-engineer** agent with Playwright expertise:
817
+
818
+ 1. Query Context7 for Playwright optimization patterns
819
+ 2. Analyze current test suite configuration
820
+ 3. Identify parallel execution opportunities
821
+ 4. Configure test sharding for CI/CD
822
+ 5. Optimize browser context usage
823
+ 6. Configure trace/video collection
824
+ 7. Generate optimized configurations
825
+
826
+ ## Best Practices Applied
827
+
828
+ Based on Context7 documentation from `/microsoft/playwright`:
829
+
830
+ 1. **Fully Parallel Execution** - Run all tests concurrently
831
+ 2. **Test Sharding** - Distribute across CI runners (4-8 shards)
832
+ 3. **Browser Context Reuse** - Share auth state, 5x faster
833
+ 4. **Conditional Traces** - Only on failures, 12x faster
834
+ 5. **Network Optimization** - Block unnecessary resources, 3x faster
835
+ 6. **API Mocking** - 100x faster tests, 0% flaky
836
+ 7. **Docker Caching** - Cached browsers, 10x faster CI setup
837
+
838
+ ## Related Commands
839
+
840
+ - `/test:setup` - Initial test configuration
841
+ - `/jest:optimize` - Unit test optimization
842
+ - `/test:performance` - Overall testing performance
843
+
844
+ ## Troubleshooting
845
+
846
+ ### Tests Failing in Parallel
847
+ - Check for shared state between tests
848
+ - Verify browser context isolation
849
+ - Use `test.describe.configure({ mode: 'serial' })` for dependent tests
850
+
851
+ ### Sharding Not Working
852
+ - Ensure all tests are discoverable
853
+ - Check shard syntax: `--shard=1/3` (not `1-3`)
854
+ - Verify GitHub Actions matrix configuration
855
+
856
+ ### Slow CI Pipeline
857
+ - Enable browser caching in CI
858
+ - Use Docker images with pre-installed browsers
859
+ - Implement test sharding
860
+
861
+ ### Flaky Tests
862
+ - Mock external API calls
863
+ - Use `waitForLoadState('networkidle')`
864
+ - Increase timeout for slow operations
865
+ - Check for race conditions
866
+
867
+ ## Installation
868
+
869
+ ```bash
870
+ # Install Playwright
871
+ npm install --save-dev @playwright/test
872
+
873
+ # Install browsers
874
+ npx playwright install --with-deps
875
+
876
+ # Initialize Playwright config
877
+ npx playwright install
878
+ ```
879
+
880
+ ## Version History
881
+
882
+ - v2.0.0 - Initial Schema v2.0 release with Context7 integration
883
+ - Playwright fully parallel execution
884
+ - Test sharding for CI/CD
885
+ - Browser context optimization
886
+ - Trace/video conditional collection
887
+ - Network optimization patterns