claude-autopm 2.8.2 → 2.8.4

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 (391) hide show
  1. package/README.md +399 -637
  2. package/install/install.js +15 -5
  3. package/package.json +2 -1
  4. package/packages/plugin-ai/LICENSE +21 -0
  5. package/packages/plugin-ai/README.md +316 -0
  6. package/packages/plugin-ai/agents/anthropic-claude-expert.md +579 -0
  7. package/packages/plugin-ai/agents/azure-openai-expert.md +1411 -0
  8. package/packages/plugin-ai/agents/gemini-api-expert.md +880 -0
  9. package/packages/plugin-ai/agents/google-a2a-expert.md +1445 -0
  10. package/packages/plugin-ai/agents/huggingface-expert.md +2131 -0
  11. package/packages/plugin-ai/agents/langchain-expert.md +1427 -0
  12. package/packages/plugin-ai/agents/langgraph-workflow-expert.md +520 -0
  13. package/packages/plugin-ai/agents/openai-python-expert.md +1087 -0
  14. package/packages/plugin-ai/commands/a2a-setup.md +886 -0
  15. package/packages/plugin-ai/commands/ai-model-deployment.md +481 -0
  16. package/packages/plugin-ai/commands/anthropic-optimize.md +793 -0
  17. package/packages/plugin-ai/commands/huggingface-deploy.md +789 -0
  18. package/packages/plugin-ai/commands/langchain-optimize.md +807 -0
  19. package/packages/plugin-ai/commands/llm-optimize.md +348 -0
  20. package/packages/plugin-ai/commands/openai-optimize.md +863 -0
  21. package/packages/plugin-ai/commands/rag-optimize.md +841 -0
  22. package/packages/plugin-ai/commands/rag-setup-scaffold.md +382 -0
  23. package/packages/plugin-ai/package.json +66 -0
  24. package/packages/plugin-ai/plugin.json +519 -0
  25. package/packages/plugin-ai/rules/ai-model-standards.md +449 -0
  26. package/packages/plugin-ai/rules/prompt-engineering-standards.md +509 -0
  27. package/packages/plugin-ai/scripts/examples/huggingface-inference-example.py +145 -0
  28. package/packages/plugin-ai/scripts/examples/langchain-rag-example.py +366 -0
  29. package/packages/plugin-ai/scripts/examples/mlflow-tracking-example.py +224 -0
  30. package/packages/plugin-ai/scripts/examples/openai-chat-example.py +425 -0
  31. package/packages/plugin-cloud/README.md +268 -0
  32. package/packages/plugin-cloud/agents/README.md +55 -0
  33. package/packages/plugin-cloud/agents/aws-cloud-architect.md +521 -0
  34. package/packages/plugin-cloud/agents/azure-cloud-architect.md +436 -0
  35. package/packages/plugin-cloud/agents/gcp-cloud-architect.md +385 -0
  36. package/packages/plugin-cloud/agents/gcp-cloud-functions-engineer.md +306 -0
  37. package/packages/plugin-cloud/agents/gemini-api-expert.md +880 -0
  38. package/packages/plugin-cloud/agents/kubernetes-orchestrator.md +566 -0
  39. package/packages/plugin-cloud/agents/openai-python-expert.md +1087 -0
  40. package/packages/plugin-cloud/agents/terraform-infrastructure-expert.md +454 -0
  41. package/packages/plugin-cloud/commands/cloud-cost-optimize.md +243 -0
  42. package/packages/plugin-cloud/commands/cloud-validate.md +196 -0
  43. package/packages/plugin-cloud/commands/infra-deploy.md +38 -0
  44. package/packages/plugin-cloud/commands/k8s-deploy.md +37 -0
  45. package/packages/plugin-cloud/commands/ssh-security.md +65 -0
  46. package/packages/plugin-cloud/commands/traefik-setup.md +65 -0
  47. package/packages/plugin-cloud/hooks/pre-cloud-deploy.js +456 -0
  48. package/packages/plugin-cloud/package.json +64 -0
  49. package/packages/plugin-cloud/plugin.json +338 -0
  50. package/packages/plugin-cloud/rules/cloud-security-compliance.md +313 -0
  51. package/packages/plugin-cloud/rules/infrastructure-pipeline.md +128 -0
  52. package/packages/plugin-cloud/scripts/examples/aws-validate.sh +30 -0
  53. package/packages/plugin-cloud/scripts/examples/azure-setup.sh +33 -0
  54. package/packages/plugin-cloud/scripts/examples/gcp-setup.sh +39 -0
  55. package/packages/plugin-cloud/scripts/examples/k8s-validate.sh +40 -0
  56. package/packages/plugin-cloud/scripts/examples/terraform-init.sh +26 -0
  57. package/packages/plugin-core/README.md +274 -0
  58. package/packages/plugin-core/agents/core/agent-manager.md +296 -0
  59. package/packages/plugin-core/agents/core/code-analyzer.md +131 -0
  60. package/packages/plugin-core/agents/core/file-analyzer.md +162 -0
  61. package/packages/plugin-core/agents/core/test-runner.md +200 -0
  62. package/packages/plugin-core/commands/code-rabbit.md +128 -0
  63. package/packages/plugin-core/commands/prompt.md +9 -0
  64. package/packages/plugin-core/commands/re-init.md +9 -0
  65. package/packages/plugin-core/hooks/context7-reminder.md +29 -0
  66. package/packages/plugin-core/hooks/enforce-agents.js +125 -0
  67. package/packages/plugin-core/hooks/enforce-agents.sh +35 -0
  68. package/packages/plugin-core/hooks/pre-agent-context7.js +224 -0
  69. package/packages/plugin-core/hooks/pre-command-context7.js +229 -0
  70. package/packages/plugin-core/hooks/strict-enforce-agents.sh +39 -0
  71. package/packages/plugin-core/hooks/test-hook.sh +21 -0
  72. package/packages/plugin-core/hooks/unified-context7-enforcement.sh +38 -0
  73. package/packages/plugin-core/package.json +45 -0
  74. package/packages/plugin-core/plugin.json +387 -0
  75. package/packages/plugin-core/rules/agent-coordination.md +549 -0
  76. package/packages/plugin-core/rules/agent-mandatory.md +170 -0
  77. package/packages/plugin-core/rules/ai-integration-patterns.md +219 -0
  78. package/packages/plugin-core/rules/command-pipelines.md +208 -0
  79. package/packages/plugin-core/rules/context-optimization.md +176 -0
  80. package/packages/plugin-core/rules/context7-enforcement.md +327 -0
  81. package/packages/plugin-core/rules/datetime.md +122 -0
  82. package/packages/plugin-core/rules/definition-of-done.md +272 -0
  83. package/packages/plugin-core/rules/development-environments.md +19 -0
  84. package/packages/plugin-core/rules/development-workflow.md +198 -0
  85. package/packages/plugin-core/rules/framework-path-rules.md +180 -0
  86. package/packages/plugin-core/rules/frontmatter-operations.md +64 -0
  87. package/packages/plugin-core/rules/git-strategy.md +237 -0
  88. package/packages/plugin-core/rules/golden-rules.md +181 -0
  89. package/packages/plugin-core/rules/naming-conventions.md +111 -0
  90. package/packages/plugin-core/rules/no-pr-workflow.md +183 -0
  91. package/packages/plugin-core/rules/performance-guidelines.md +403 -0
  92. package/packages/plugin-core/rules/pipeline-mandatory.md +109 -0
  93. package/packages/plugin-core/rules/security-checklist.md +318 -0
  94. package/packages/plugin-core/rules/standard-patterns.md +197 -0
  95. package/packages/plugin-core/rules/strip-frontmatter.md +85 -0
  96. package/packages/plugin-core/rules/tdd.enforcement.md +103 -0
  97. package/packages/plugin-core/rules/use-ast-grep.md +113 -0
  98. package/packages/plugin-core/scripts/lib/datetime-utils.sh +254 -0
  99. package/packages/plugin-core/scripts/lib/frontmatter-utils.sh +294 -0
  100. package/packages/plugin-core/scripts/lib/github-utils.sh +221 -0
  101. package/packages/plugin-core/scripts/lib/logging-utils.sh +199 -0
  102. package/packages/plugin-core/scripts/lib/validation-utils.sh +339 -0
  103. package/packages/plugin-core/scripts/mcp/add.sh +7 -0
  104. package/packages/plugin-core/scripts/mcp/disable.sh +12 -0
  105. package/packages/plugin-core/scripts/mcp/enable.sh +12 -0
  106. package/packages/plugin-core/scripts/mcp/list.sh +7 -0
  107. package/packages/plugin-core/scripts/mcp/sync.sh +8 -0
  108. package/packages/plugin-data/README.md +315 -0
  109. package/packages/plugin-data/agents/airflow-orchestration-expert.md +158 -0
  110. package/packages/plugin-data/agents/kedro-pipeline-expert.md +304 -0
  111. package/packages/plugin-data/agents/langgraph-workflow-expert.md +530 -0
  112. package/packages/plugin-data/commands/airflow-dag-scaffold.md +413 -0
  113. package/packages/plugin-data/commands/kafka-pipeline-scaffold.md +503 -0
  114. package/packages/plugin-data/package.json +66 -0
  115. package/packages/plugin-data/plugin.json +294 -0
  116. package/packages/plugin-data/rules/data-quality-standards.md +373 -0
  117. package/packages/plugin-data/rules/etl-pipeline-standards.md +255 -0
  118. package/packages/plugin-data/scripts/examples/airflow-dag-example.py +245 -0
  119. package/packages/plugin-data/scripts/examples/dbt-transform-example.sql +238 -0
  120. package/packages/plugin-data/scripts/examples/kafka-streaming-example.py +257 -0
  121. package/packages/plugin-data/scripts/examples/pandas-etl-example.py +332 -0
  122. package/packages/plugin-databases/README.md +330 -0
  123. package/packages/plugin-databases/agents/README.md +50 -0
  124. package/packages/plugin-databases/agents/bigquery-expert.md +401 -0
  125. package/packages/plugin-databases/agents/cosmosdb-expert.md +375 -0
  126. package/packages/plugin-databases/agents/mongodb-expert.md +407 -0
  127. package/packages/plugin-databases/agents/postgresql-expert.md +329 -0
  128. package/packages/plugin-databases/agents/redis-expert.md +74 -0
  129. package/packages/plugin-databases/commands/db-optimize.md +612 -0
  130. package/packages/plugin-databases/package.json +60 -0
  131. package/packages/plugin-databases/plugin.json +237 -0
  132. package/packages/plugin-databases/rules/database-management-strategy.md +146 -0
  133. package/packages/plugin-databases/rules/database-pipeline.md +316 -0
  134. package/packages/plugin-databases/scripts/examples/bigquery-cost-analyze.sh +160 -0
  135. package/packages/plugin-databases/scripts/examples/cosmosdb-ru-optimize.sh +163 -0
  136. package/packages/plugin-databases/scripts/examples/mongodb-shard-check.sh +120 -0
  137. package/packages/plugin-databases/scripts/examples/postgres-index-analyze.sh +95 -0
  138. package/packages/plugin-databases/scripts/examples/redis-cache-stats.sh +121 -0
  139. package/packages/plugin-devops/README.md +367 -0
  140. package/packages/plugin-devops/agents/README.md +52 -0
  141. package/packages/plugin-devops/agents/azure-devops-specialist.md +308 -0
  142. package/packages/plugin-devops/agents/docker-containerization-expert.md +298 -0
  143. package/packages/plugin-devops/agents/github-operations-specialist.md +335 -0
  144. package/packages/plugin-devops/agents/mcp-context-manager.md +319 -0
  145. package/packages/plugin-devops/agents/observability-engineer.md +574 -0
  146. package/packages/plugin-devops/agents/ssh-operations-expert.md +1093 -0
  147. package/packages/plugin-devops/agents/traefik-proxy-expert.md +444 -0
  148. package/packages/plugin-devops/commands/ci-pipeline-create.md +581 -0
  149. package/packages/plugin-devops/commands/docker-optimize.md +493 -0
  150. package/packages/plugin-devops/commands/workflow-create.md +42 -0
  151. package/packages/plugin-devops/hooks/pre-docker-build.js +472 -0
  152. package/packages/plugin-devops/package.json +61 -0
  153. package/packages/plugin-devops/plugin.json +302 -0
  154. package/packages/plugin-devops/rules/ci-cd-kubernetes-strategy.md +25 -0
  155. package/packages/plugin-devops/rules/devops-troubleshooting-playbook.md +450 -0
  156. package/packages/plugin-devops/rules/docker-first-development.md +404 -0
  157. package/packages/plugin-devops/rules/github-operations.md +92 -0
  158. package/packages/plugin-devops/scripts/examples/docker-build-multistage.sh +43 -0
  159. package/packages/plugin-devops/scripts/examples/docker-compose-validate.sh +74 -0
  160. package/packages/plugin-devops/scripts/examples/github-workflow-validate.sh +48 -0
  161. package/packages/plugin-devops/scripts/examples/prometheus-health-check.sh +58 -0
  162. package/packages/plugin-devops/scripts/examples/ssh-key-setup.sh +74 -0
  163. package/packages/plugin-frameworks/README.md +309 -0
  164. package/packages/plugin-frameworks/agents/README.md +64 -0
  165. package/packages/plugin-frameworks/agents/e2e-test-engineer.md +579 -0
  166. package/packages/plugin-frameworks/agents/nats-messaging-expert.md +254 -0
  167. package/packages/plugin-frameworks/agents/react-frontend-engineer.md +393 -0
  168. package/packages/plugin-frameworks/agents/react-ui-expert.md +226 -0
  169. package/packages/plugin-frameworks/agents/tailwindcss-expert.md +1021 -0
  170. package/packages/plugin-frameworks/agents/ux-design-expert.md +244 -0
  171. package/packages/plugin-frameworks/commands/app-scaffold.md +50 -0
  172. package/packages/plugin-frameworks/commands/nextjs-optimize.md +692 -0
  173. package/packages/plugin-frameworks/commands/react-optimize.md +583 -0
  174. package/packages/plugin-frameworks/commands/tailwind-system.md +64 -0
  175. package/packages/plugin-frameworks/package.json +59 -0
  176. package/packages/plugin-frameworks/plugin.json +224 -0
  177. package/packages/plugin-frameworks/rules/performance-guidelines.md +403 -0
  178. package/packages/plugin-frameworks/rules/ui-development-standards.md +281 -0
  179. package/packages/plugin-frameworks/rules/ui-framework-rules.md +151 -0
  180. package/packages/plugin-frameworks/scripts/examples/react-component-perf.sh +34 -0
  181. package/packages/plugin-frameworks/scripts/examples/tailwind-optimize.sh +44 -0
  182. package/packages/plugin-frameworks/scripts/examples/vue-composition-check.sh +41 -0
  183. package/packages/plugin-languages/README.md +333 -0
  184. package/packages/plugin-languages/agents/README.md +50 -0
  185. package/packages/plugin-languages/agents/bash-scripting-expert.md +541 -0
  186. package/packages/plugin-languages/agents/javascript-frontend-engineer.md +197 -0
  187. package/packages/plugin-languages/agents/nodejs-backend-engineer.md +226 -0
  188. package/packages/plugin-languages/agents/python-backend-engineer.md +214 -0
  189. package/packages/plugin-languages/agents/python-backend-expert.md +289 -0
  190. package/packages/plugin-languages/commands/javascript-optimize.md +636 -0
  191. package/packages/plugin-languages/commands/nodejs-api-scaffold.md +341 -0
  192. package/packages/plugin-languages/commands/nodejs-optimize.md +689 -0
  193. package/packages/plugin-languages/commands/python-api-scaffold.md +261 -0
  194. package/packages/plugin-languages/commands/python-optimize.md +593 -0
  195. package/packages/plugin-languages/package.json +65 -0
  196. package/packages/plugin-languages/plugin.json +265 -0
  197. package/packages/plugin-languages/rules/code-quality-standards.md +496 -0
  198. package/packages/plugin-languages/rules/testing-standards.md +768 -0
  199. package/packages/plugin-languages/scripts/examples/bash-production-script.sh +520 -0
  200. package/packages/plugin-languages/scripts/examples/javascript-es6-patterns.js +291 -0
  201. package/packages/plugin-languages/scripts/examples/nodejs-async-iteration.js +360 -0
  202. package/packages/plugin-languages/scripts/examples/python-async-patterns.py +289 -0
  203. package/packages/plugin-languages/scripts/examples/typescript-patterns.ts +432 -0
  204. package/packages/plugin-ml/README.md +430 -0
  205. package/packages/plugin-ml/agents/automl-expert.md +326 -0
  206. package/packages/plugin-ml/agents/computer-vision-expert.md +550 -0
  207. package/packages/plugin-ml/agents/gradient-boosting-expert.md +455 -0
  208. package/packages/plugin-ml/agents/neural-network-architect.md +1228 -0
  209. package/packages/plugin-ml/agents/nlp-transformer-expert.md +584 -0
  210. package/packages/plugin-ml/agents/pytorch-expert.md +412 -0
  211. package/packages/plugin-ml/agents/reinforcement-learning-expert.md +2088 -0
  212. package/packages/plugin-ml/agents/scikit-learn-expert.md +228 -0
  213. package/packages/plugin-ml/agents/tensorflow-keras-expert.md +509 -0
  214. package/packages/plugin-ml/agents/time-series-expert.md +303 -0
  215. package/packages/plugin-ml/commands/ml-automl.md +572 -0
  216. package/packages/plugin-ml/commands/ml-train-optimize.md +657 -0
  217. package/packages/plugin-ml/package.json +52 -0
  218. package/packages/plugin-ml/plugin.json +338 -0
  219. package/packages/plugin-pm/README.md +368 -0
  220. package/packages/plugin-pm/claudeautopm-plugin-pm-2.0.0.tgz +0 -0
  221. package/packages/plugin-pm/commands/azure/COMMANDS.md +107 -0
  222. package/packages/plugin-pm/commands/azure/COMMAND_MAPPING.md +252 -0
  223. package/packages/plugin-pm/commands/azure/INTEGRATION_FIX.md +103 -0
  224. package/packages/plugin-pm/commands/azure/README.md +246 -0
  225. package/packages/plugin-pm/commands/azure/active-work.md +198 -0
  226. package/packages/plugin-pm/commands/azure/aliases.md +143 -0
  227. package/packages/plugin-pm/commands/azure/blocked-items.md +287 -0
  228. package/packages/plugin-pm/commands/azure/clean.md +93 -0
  229. package/packages/plugin-pm/commands/azure/docs-query.md +48 -0
  230. package/packages/plugin-pm/commands/azure/feature-decompose.md +380 -0
  231. package/packages/plugin-pm/commands/azure/feature-list.md +61 -0
  232. package/packages/plugin-pm/commands/azure/feature-new.md +115 -0
  233. package/packages/plugin-pm/commands/azure/feature-show.md +205 -0
  234. package/packages/plugin-pm/commands/azure/feature-start.md +130 -0
  235. package/packages/plugin-pm/commands/azure/fix-integration-example.md +93 -0
  236. package/packages/plugin-pm/commands/azure/help.md +150 -0
  237. package/packages/plugin-pm/commands/azure/import-us.md +269 -0
  238. package/packages/plugin-pm/commands/azure/init.md +211 -0
  239. package/packages/plugin-pm/commands/azure/next-task.md +262 -0
  240. package/packages/plugin-pm/commands/azure/search.md +160 -0
  241. package/packages/plugin-pm/commands/azure/sprint-status.md +235 -0
  242. package/packages/plugin-pm/commands/azure/standup.md +260 -0
  243. package/packages/plugin-pm/commands/azure/sync-all.md +99 -0
  244. package/packages/plugin-pm/commands/azure/task-analyze.md +186 -0
  245. package/packages/plugin-pm/commands/azure/task-close.md +329 -0
  246. package/packages/plugin-pm/commands/azure/task-edit.md +145 -0
  247. package/packages/plugin-pm/commands/azure/task-list.md +263 -0
  248. package/packages/plugin-pm/commands/azure/task-new.md +84 -0
  249. package/packages/plugin-pm/commands/azure/task-reopen.md +79 -0
  250. package/packages/plugin-pm/commands/azure/task-show.md +126 -0
  251. package/packages/plugin-pm/commands/azure/task-start.md +301 -0
  252. package/packages/plugin-pm/commands/azure/task-status.md +65 -0
  253. package/packages/plugin-pm/commands/azure/task-sync.md +67 -0
  254. package/packages/plugin-pm/commands/azure/us-edit.md +164 -0
  255. package/packages/plugin-pm/commands/azure/us-list.md +202 -0
  256. package/packages/plugin-pm/commands/azure/us-new.md +265 -0
  257. package/packages/plugin-pm/commands/azure/us-parse.md +253 -0
  258. package/packages/plugin-pm/commands/azure/us-show.md +188 -0
  259. package/packages/plugin-pm/commands/azure/us-status.md +320 -0
  260. package/packages/plugin-pm/commands/azure/validate.md +86 -0
  261. package/packages/plugin-pm/commands/azure/work-item-sync.md +47 -0
  262. package/packages/plugin-pm/commands/blocked.md +28 -0
  263. package/packages/plugin-pm/commands/clean.md +119 -0
  264. package/packages/plugin-pm/commands/context-create.md +136 -0
  265. package/packages/plugin-pm/commands/context-prime.md +170 -0
  266. package/packages/plugin-pm/commands/context-update.md +292 -0
  267. package/packages/plugin-pm/commands/context.md +28 -0
  268. package/packages/plugin-pm/commands/epic-close.md +86 -0
  269. package/packages/plugin-pm/commands/epic-decompose.md +370 -0
  270. package/packages/plugin-pm/commands/epic-edit.md +83 -0
  271. package/packages/plugin-pm/commands/epic-list.md +30 -0
  272. package/packages/plugin-pm/commands/epic-merge.md +222 -0
  273. package/packages/plugin-pm/commands/epic-oneshot.md +119 -0
  274. package/packages/plugin-pm/commands/epic-refresh.md +119 -0
  275. package/packages/plugin-pm/commands/epic-show.md +28 -0
  276. package/packages/plugin-pm/commands/epic-split.md +120 -0
  277. package/packages/plugin-pm/commands/epic-start.md +195 -0
  278. package/packages/plugin-pm/commands/epic-status.md +28 -0
  279. package/packages/plugin-pm/commands/epic-sync-modular.md +338 -0
  280. package/packages/plugin-pm/commands/epic-sync-original.md +473 -0
  281. package/packages/plugin-pm/commands/epic-sync.md +486 -0
  282. package/packages/plugin-pm/commands/github/workflow-create.md +42 -0
  283. package/packages/plugin-pm/commands/help.md +28 -0
  284. package/packages/plugin-pm/commands/import.md +115 -0
  285. package/packages/plugin-pm/commands/in-progress.md +28 -0
  286. package/packages/plugin-pm/commands/init.md +28 -0
  287. package/packages/plugin-pm/commands/issue-analyze.md +202 -0
  288. package/packages/plugin-pm/commands/issue-close.md +119 -0
  289. package/packages/plugin-pm/commands/issue-edit.md +93 -0
  290. package/packages/plugin-pm/commands/issue-reopen.md +87 -0
  291. package/packages/plugin-pm/commands/issue-show.md +41 -0
  292. package/packages/plugin-pm/commands/issue-start.md +234 -0
  293. package/packages/plugin-pm/commands/issue-status.md +95 -0
  294. package/packages/plugin-pm/commands/issue-sync.md +411 -0
  295. package/packages/plugin-pm/commands/next.md +28 -0
  296. package/packages/plugin-pm/commands/prd-edit.md +82 -0
  297. package/packages/plugin-pm/commands/prd-list.md +28 -0
  298. package/packages/plugin-pm/commands/prd-new.md +55 -0
  299. package/packages/plugin-pm/commands/prd-parse.md +42 -0
  300. package/packages/plugin-pm/commands/prd-status.md +28 -0
  301. package/packages/plugin-pm/commands/search.md +28 -0
  302. package/packages/plugin-pm/commands/standup.md +28 -0
  303. package/packages/plugin-pm/commands/status.md +28 -0
  304. package/packages/plugin-pm/commands/sync.md +99 -0
  305. package/packages/plugin-pm/commands/test-reference-update.md +151 -0
  306. package/packages/plugin-pm/commands/validate.md +28 -0
  307. package/packages/plugin-pm/commands/what-next.md +28 -0
  308. package/packages/plugin-pm/package.json +57 -0
  309. package/packages/plugin-pm/plugin.json +503 -0
  310. package/packages/plugin-pm/scripts/pm/analytics.js +425 -0
  311. package/packages/plugin-pm/scripts/pm/blocked.js +164 -0
  312. package/packages/plugin-pm/scripts/pm/blocked.sh +78 -0
  313. package/packages/plugin-pm/scripts/pm/clean.js +464 -0
  314. package/packages/plugin-pm/scripts/pm/context-create.js +216 -0
  315. package/packages/plugin-pm/scripts/pm/context-prime.js +335 -0
  316. package/packages/plugin-pm/scripts/pm/context-update.js +344 -0
  317. package/packages/plugin-pm/scripts/pm/context.js +338 -0
  318. package/packages/plugin-pm/scripts/pm/epic-close.js +347 -0
  319. package/packages/plugin-pm/scripts/pm/epic-edit.js +382 -0
  320. package/packages/plugin-pm/scripts/pm/epic-list.js +273 -0
  321. package/packages/plugin-pm/scripts/pm/epic-list.sh +109 -0
  322. package/packages/plugin-pm/scripts/pm/epic-show.js +291 -0
  323. package/packages/plugin-pm/scripts/pm/epic-show.sh +105 -0
  324. package/packages/plugin-pm/scripts/pm/epic-split.js +522 -0
  325. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.js +183 -0
  326. package/packages/plugin-pm/scripts/pm/epic-start/epic-start.sh +94 -0
  327. package/packages/plugin-pm/scripts/pm/epic-status.js +291 -0
  328. package/packages/plugin-pm/scripts/pm/epic-status.sh +104 -0
  329. package/packages/plugin-pm/scripts/pm/epic-sync/README.md +208 -0
  330. package/packages/plugin-pm/scripts/pm/epic-sync/create-epic-issue.sh +77 -0
  331. package/packages/plugin-pm/scripts/pm/epic-sync/create-task-issues.sh +86 -0
  332. package/packages/plugin-pm/scripts/pm/epic-sync/update-epic-file.sh +79 -0
  333. package/packages/plugin-pm/scripts/pm/epic-sync/update-references.sh +89 -0
  334. package/packages/plugin-pm/scripts/pm/epic-sync.sh +137 -0
  335. package/packages/plugin-pm/scripts/pm/help.js +92 -0
  336. package/packages/plugin-pm/scripts/pm/help.sh +90 -0
  337. package/packages/plugin-pm/scripts/pm/in-progress.js +178 -0
  338. package/packages/plugin-pm/scripts/pm/in-progress.sh +93 -0
  339. package/packages/plugin-pm/scripts/pm/init.js +321 -0
  340. package/packages/plugin-pm/scripts/pm/init.sh +178 -0
  341. package/packages/plugin-pm/scripts/pm/issue-close.js +232 -0
  342. package/packages/plugin-pm/scripts/pm/issue-edit.js +310 -0
  343. package/packages/plugin-pm/scripts/pm/issue-show.js +272 -0
  344. package/packages/plugin-pm/scripts/pm/issue-start.js +181 -0
  345. package/packages/plugin-pm/scripts/pm/issue-sync/format-comment.sh +468 -0
  346. package/packages/plugin-pm/scripts/pm/issue-sync/gather-updates.sh +460 -0
  347. package/packages/plugin-pm/scripts/pm/issue-sync/post-comment.sh +330 -0
  348. package/packages/plugin-pm/scripts/pm/issue-sync/preflight-validation.sh +348 -0
  349. package/packages/plugin-pm/scripts/pm/issue-sync/update-frontmatter.sh +387 -0
  350. package/packages/plugin-pm/scripts/pm/lib/README.md +85 -0
  351. package/packages/plugin-pm/scripts/pm/lib/epic-discovery.js +119 -0
  352. package/packages/plugin-pm/scripts/pm/lib/logger.js +78 -0
  353. package/packages/plugin-pm/scripts/pm/next.js +189 -0
  354. package/packages/plugin-pm/scripts/pm/next.sh +72 -0
  355. package/packages/plugin-pm/scripts/pm/optimize.js +407 -0
  356. package/packages/plugin-pm/scripts/pm/pr-create.js +337 -0
  357. package/packages/plugin-pm/scripts/pm/pr-list.js +257 -0
  358. package/packages/plugin-pm/scripts/pm/prd-list.js +242 -0
  359. package/packages/plugin-pm/scripts/pm/prd-list.sh +103 -0
  360. package/packages/plugin-pm/scripts/pm/prd-new.js +684 -0
  361. package/packages/plugin-pm/scripts/pm/prd-parse.js +547 -0
  362. package/packages/plugin-pm/scripts/pm/prd-status.js +152 -0
  363. package/packages/plugin-pm/scripts/pm/prd-status.sh +63 -0
  364. package/packages/plugin-pm/scripts/pm/release.js +460 -0
  365. package/packages/plugin-pm/scripts/pm/search.js +192 -0
  366. package/packages/plugin-pm/scripts/pm/search.sh +89 -0
  367. package/packages/plugin-pm/scripts/pm/standup.js +362 -0
  368. package/packages/plugin-pm/scripts/pm/standup.sh +95 -0
  369. package/packages/plugin-pm/scripts/pm/status.js +148 -0
  370. package/packages/plugin-pm/scripts/pm/status.sh +59 -0
  371. package/packages/plugin-pm/scripts/pm/sync-batch.js +337 -0
  372. package/packages/plugin-pm/scripts/pm/sync.js +343 -0
  373. package/packages/plugin-pm/scripts/pm/template-list.js +141 -0
  374. package/packages/plugin-pm/scripts/pm/template-new.js +366 -0
  375. package/packages/plugin-pm/scripts/pm/validate.js +274 -0
  376. package/packages/plugin-pm/scripts/pm/validate.sh +106 -0
  377. package/packages/plugin-pm/scripts/pm/what-next.js +660 -0
  378. package/packages/plugin-testing/README.md +401 -0
  379. package/packages/plugin-testing/agents/frontend-testing-engineer.md +768 -0
  380. package/packages/plugin-testing/commands/jest-optimize.md +800 -0
  381. package/packages/plugin-testing/commands/playwright-optimize.md +887 -0
  382. package/packages/plugin-testing/commands/test-coverage.md +512 -0
  383. package/packages/plugin-testing/commands/test-performance.md +1041 -0
  384. package/packages/plugin-testing/commands/test-setup.md +414 -0
  385. package/packages/plugin-testing/package.json +40 -0
  386. package/packages/plugin-testing/plugin.json +197 -0
  387. package/packages/plugin-testing/rules/test-coverage-requirements.md +581 -0
  388. package/packages/plugin-testing/rules/testing-standards.md +529 -0
  389. package/packages/plugin-testing/scripts/examples/react-testing-example.test.jsx +460 -0
  390. package/packages/plugin-testing/scripts/examples/vitest-config-example.js +352 -0
  391. package/packages/plugin-testing/scripts/examples/vue-testing-example.test.js +586 -0
@@ -0,0 +1,579 @@
1
+ ---
2
+ name: e2e-test-engineer
3
+ description: ## Documentation Access via MCP Context7
4
+ tools: Glob, Grep, LS, Read, WebFetch, TodoWrite, WebSearch, Edit, Write, MultiEdit, Bash, Task, Agent
5
+ model: inherit
6
+ color: purple
7
+ ---
8
+
9
+ # E2E Test Engineer Agent
10
+
11
+ ## Test-Driven Development (TDD) Methodology
12
+
13
+ **MANDATORY**: Follow strict TDD principles for all development:
14
+ 1. **Write failing tests FIRST** - Before implementing any functionality
15
+ 2. **Red-Green-Refactor cycle** - Test fails → Make it pass → Improve code
16
+ 3. **One test at a time** - Focus on small, incremental development
17
+ 4. **100% coverage for new code** - All new features must have complete test coverage
18
+ 5. **Tests as documentation** - Tests should clearly document expected behavior
19
+
20
+
21
+ ## Documentation Access via MCP Context7
22
+
23
+ Access E2E testing frameworks and patterns:
24
+
25
+ - **Testing Frameworks**: Playwright, Cypress, Selenium, Puppeteer
26
+ - **Visual Testing**: Percy, Chromatic, visual regression
27
+ - **Accessibility**: WCAG, axe-core, screen reader testing
28
+ - **Performance**: Lighthouse, Web Vitals, performance testing
29
+
30
+ **Documentation Queries (Technical):**
31
+ - `mcp://context7/testing/playwright` - Playwright automation
32
+ - `mcp://context7/testing/cypress` - Cypress E2E testing
33
+ - `mcp://context7/testing/visual` - Visual regression testing
34
+ - `mcp://context7/testing/accessibility` - Accessibility testing
35
+
36
+ **Documentation Queries (Task Creation):**
37
+ - `mcp://context7/agile/task-breakdown` - Task decomposition patterns
38
+ - `mcp://context7/agile/user-stories` - INVEST criteria for tasks
39
+ - `mcp://context7/agile/acceptance-criteria` - Writing effective AC
40
+ - `mcp://context7/project-management/estimation` - Effort estimation
41
+
42
+ @include includes/task-creation-excellence.md
43
+
44
+ ## E2E Testing Methodology
45
+
46
+ **MANDATORY**: Focus on scenario-driven and user journey validation for all E2E test cases:
47
+ 1. **Scenario-driven testing** - Design tests around realistic user workflows and business scenarios.
48
+ 2. **User journey validation** - Ensure tests cover complete end-to-end flows, reflecting actual user interactions.
49
+ 3. **Post-implementation verification** - E2E tests validate system behavior after features are implemented.
50
+ 4. **Comprehensive coverage of critical paths** - Prioritize coverage of high-impact user journeys and edge cases.
51
+ 5. **Tests as living documentation** - E2E tests should clearly document expected system behavior and user outcomes.
52
+
53
+ ## Description
54
+ Unified end-to-end test engineering specialist covering Playwright automation, MCP browser control, visual testing, and comprehensive test strategies.
55
+
56
+ ## Capabilities
57
+
58
+ ### Core Testing Expertise
59
+ - End-to-end test automation
60
+ - Page Object Model (POM) design
61
+ - Test data management
62
+ - Cross-browser testing
63
+ - Mobile responsive testing
64
+ - API testing integration
65
+
66
+ ### Playwright Mastery
67
+ - Playwright test framework
68
+ - Auto-waiting strategies
69
+ - Network interception
70
+ - Browser contexts and isolation
71
+ - Parallel test execution
72
+ - Test reporting and artifacts
73
+
74
+ ### MCP Browser Control
75
+ - Real browser automation via MCP
76
+ - Interactive debugging
77
+ - Visual regression testing
78
+ - Screenshot and video capture
79
+ - Accessibility testing
80
+ - Performance metrics collection
81
+
82
+ ### Advanced Testing Features
83
+ - Visual regression with Percy/Chromatic
84
+ - Accessibility audits (axe-core)
85
+ - Performance testing (Lighthouse)
86
+ - Security testing basics
87
+ - Load testing integration
88
+ - Synthetic monitoring
89
+
90
+ ## When to Use This Agent
91
+
92
+ Use this agent when you need to:
93
+ - Create comprehensive E2E test suites
94
+ - Debug failing tests
95
+ - Implement visual regression testing
96
+ - Ensure cross-browser compatibility
97
+ - Validate user workflows
98
+ - Test accessibility compliance
99
+ - Monitor application performance
100
+
101
+ ## Parameters
102
+
103
+ ```yaml
104
+ test_framework:
105
+ type: string
106
+ enum: [playwright, cypress, puppeteer, selenium]
107
+ default: playwright
108
+ description: "E2E testing framework"
109
+
110
+ browser_control:
111
+ type: string
112
+ enum: [standard, mcp-enhanced, headless]
113
+ default: standard
114
+ description: "Browser control mode"
115
+
116
+ test_types:
117
+ type: array
118
+ items:
119
+ enum: [functional, visual, accessibility, performance, security]
120
+ default: [functional]
121
+ description: "Types of tests to implement"
122
+
123
+ browsers:
124
+ type: array
125
+ items:
126
+ enum: [chromium, firefox, webkit, chrome, edge]
127
+ default: [chromium]
128
+ description: "Browsers to test against"
129
+
130
+ reporting:
131
+ type: string
132
+ enum: [html, json, junit, allure, custom]
133
+ default: html
134
+ description: "Test reporting format"
135
+
136
+ ci_integration:
137
+ type: boolean
138
+ default: true
139
+ description: "Configure for CI/CD pipeline"
140
+ ```
141
+
142
+ ## Test Strategy Patterns
143
+
144
+ ### Page Object Model Structure
145
+ ```typescript
146
+ // pages/LoginPage.ts
147
+ export class LoginPage {
148
+ constructor(private page: Page) {}
149
+
150
+ async login(email: string, password: string) {
151
+ await this.page.fill('[data-testid="email"]', email);
152
+ await this.page.fill('[data-testid="password"]', password);
153
+ await this.page.click('[data-testid="submit"]');
154
+ }
155
+
156
+ async verifyError(message: string) {
157
+ await expect(this.page.locator('.error')).toContainText(message);
158
+ }
159
+ }
160
+ ```
161
+
162
+ ### Test Organization
163
+ ```typescript
164
+ // tests/auth.spec.ts
165
+ import { test, expect } from '@playwright/test';
166
+ import { LoginPage } from '../pages/LoginPage';
167
+
168
+ test.describe('Authentication', () => {
169
+ test('successful login', async ({ page }) => {
170
+ const loginPage = new LoginPage(page);
171
+ await page.goto('/login');
172
+ await loginPage.login('user@example.com', 'password');
173
+ await expect(page).toHaveURL('/dashboard');
174
+ });
175
+ });
176
+ ```
177
+
178
+ ### Visual Testing Integration
179
+ ```typescript
180
+ // Visual regression with MCP
181
+ test('visual regression', async ({ page }) => {
182
+ await page.goto('/dashboard');
183
+ const screenshot = await page.screenshot();
184
+ expect(screenshot).toMatchSnapshot('dashboard.png');
185
+ });
186
+ ```
187
+
188
+ ## Decision Matrix
189
+
190
+ | Scenario | Framework | Browser Control | Test Types | Notes |
191
+ |----------|-----------|-----------------|------------|-------|
192
+ | SPA Testing | playwright | standard | functional, visual | Modern web apps |
193
+ | Legacy App | selenium | standard | functional | Broad compatibility |
194
+ | UX Validation | playwright | mcp-enhanced | visual, accessibility | Real browser needed |
195
+ | CI/CD Pipeline | playwright | headless | functional | Fast execution |
196
+ | Cross-browser | playwright | standard | functional | Multiple browsers |
197
+ | Performance | playwright | standard | performance | Lighthouse integration |
198
+
199
+ ## Tools Required
200
+ - Bash
201
+ - Glob
202
+ - Grep
203
+ - LS
204
+ - Read
205
+ - WebFetch
206
+ - TodoWrite
207
+ - WebSearch
208
+ - Edit
209
+ - Write
210
+ - MultiEdit
211
+ - Task
212
+ - Agent
213
+
214
+ ### MCP Tools (when available)
215
+ - mcp__playwright__navigate
216
+ - mcp__playwright__screenshot
217
+ - mcp__playwright__click
218
+ - mcp__playwright__fill
219
+
220
+ ## Integration Points
221
+ - Tests applications from: react-frontend-engineer, python-backend-engineer
222
+ - Validates deployments by: kubernetes-orchestrator
223
+ - Reports to: github-operations-specialist
224
+ - Uses infrastructure from: docker-containerization-expert
225
+
226
+ ## Test Configuration Examples
227
+
228
+ ### Basic Playwright Config
229
+ ```javascript
230
+ // playwright.config.js
231
+ module.exports = {
232
+ testDir: './tests',
233
+ timeout: 30000,
234
+ retries: 2,
235
+ workers: 4,
236
+ use: {
237
+ baseURL: process.env.BASE_URL || 'http://localhost:3000',
238
+ screenshot: 'only-on-failure',
239
+ video: 'retain-on-failure',
240
+ trace: 'on-first-retry',
241
+ },
242
+ projects: [
243
+ { name: 'chromium', use: { ...devices['Desktop Chrome'] } },
244
+ { name: 'firefox', use: { ...devices['Desktop Firefox'] } },
245
+ { name: 'webkit', use: { ...devices['Desktop Safari'] } },
246
+ ],
247
+ };
248
+ ```
249
+
250
+ ### CI/CD Integration
251
+ ```yaml
252
+ # .github/workflows/e2e-tests.yml
253
+ - name: Run E2E Tests
254
+ run: |
255
+ npx playwright install --with-deps
256
+ npx playwright test
257
+ env:
258
+ BASE_URL: ${{ secrets.STAGING_URL }}
259
+ ```
260
+
261
+ ## Best Practices
262
+
263
+ ### Test Design
264
+ 1. **Independent Tests** - Each test should run in isolation
265
+ 2. **Reliable Selectors** - Use data-testid attributes
266
+ 3. **Smart Waits** - Leverage auto-waiting, avoid fixed delays
267
+ 4. **Clear Assertions** - Specific, meaningful expectations
268
+ 5. **Reusable Components** - Page objects and helpers
269
+
270
+ ### Performance
271
+ 1. **Parallel Execution** - Run tests concurrently
272
+ 2. **Selective Testing** - Tag and filter tests
273
+ 3. **Resource Cleanup** - Close contexts properly
274
+ 4. **Efficient Selectors** - Optimize locator strategies
275
+
276
+ ### Debugging
277
+ 1. **Debug Mode** - Use headed mode for debugging
278
+ 2. **Trace Viewer** - Analyze test execution
279
+ 3. **Screenshots** - Capture on failure
280
+ 4. **Videos** - Record test runs
281
+ 5. **Network Logs** - Monitor API calls
282
+
283
+ ### Maintenance
284
+ 1. **Regular Updates** - Keep frameworks current
285
+ 2. **Flaky Test Management** - Identify and fix
286
+ 3. **Test Data Management** - Isolated test data
287
+ 4. **Documentation** - Clear test descriptions
288
+
289
+ ## Migration Guide
290
+
291
+ ### From Legacy Agents
292
+ - `playwright-test-engineer` → Use with `test_framework: playwright`
293
+ - `playwright-mcp-frontend-tester` → Use with `browser_control: mcp-enhanced`
294
+
295
+ ### Consolidation Benefits
296
+ - Single source for all E2E testing
297
+ - Unified best practices
298
+ - Consistent test patterns
299
+ - Reduced maintenance overhead
300
+
301
+ ## Example Invocation
302
+
303
+ ```markdown
304
+ I need to create E2E tests for our e-commerce checkout flow.
305
+ Include visual regression testing and accessibility checks.
306
+ Tests should run in CI/CD pipeline.
307
+
308
+ Parameters:
309
+ - test_framework: playwright
310
+ - browser_control: standard
311
+ - test_types: [functional, visual, accessibility]
312
+ - browsers: [chromium, firefox, webkit]
313
+ - reporting: html
314
+ - ci_integration: true
315
+ ```
316
+
317
+ ## Advanced Features
318
+
319
+ ### Network Mocking
320
+ ```typescript
321
+ await page.route('**/api/users', route => {
322
+ route.fulfill({
323
+ status: 200,
324
+ body: JSON.stringify([{ id: 1, name: 'Test User' }]),
325
+ });
326
+ });
327
+ ```
328
+
329
+ ### Accessibility Testing
330
+ ```typescript
331
+ import { injectAxe, checkA11y } from 'axe-playwright';
332
+
333
+ test('accessibility', async ({ page }) => {
334
+ await page.goto('/');
335
+ await injectAxe(page);
336
+ await checkA11y(page);
337
+ });
338
+ ```
339
+
340
+ ### Performance Monitoring
341
+ ```typescript
342
+ const metrics = await page.evaluate(() => performance.toJSON());
343
+ expect(metrics.timing.loadEventEnd).toBeLessThan(3000);
344
+ ```
345
+
346
+ ## Context7-Verified Playwright Patterns
347
+
348
+ **Source**: `/microsoft/playwright` (2,103 snippets, trust 9.9)
349
+
350
+ ### ✅ CORRECT: Web-First Assertions (Auto-Retry)
351
+
352
+ Always use Playwright's web-first assertions that automatically retry:
353
+
354
+ ```javascript
355
+ // ✅ Good: Automatically waits and retries until element is visible
356
+ await expect(page.getByText('welcome')).toBeVisible();
357
+
358
+ // ✅ Good: Automatically waits for text match
359
+ await expect(page.getByTestId('status')).toHaveText('Success');
360
+
361
+ // ❌ Bad: No waiting or retry - immediate check
362
+ expect(await page.getByText('welcome').isVisible()).toBe(true);
363
+ ```
364
+
365
+ ### ✅ CORRECT: Mock Third-Party APIs
366
+
367
+ Intercept external dependencies for reliable, fast tests:
368
+
369
+ ```javascript
370
+ await page.route('**/api/fetch_data_third_party_dependency', route => route.fulfill({
371
+ status: 200,
372
+ body: testData,
373
+ }));
374
+ await page.goto('https://example.com');
375
+ ```
376
+
377
+ ### ✅ CORRECT: Test Isolation with beforeEach
378
+
379
+ Use `test.beforeEach` for setup ensuring each test starts fresh:
380
+
381
+ ```javascript
382
+ import { test } from '@playwright/test';
383
+
384
+ test.beforeEach(async ({ page }) => {
385
+ // Runs before each test and signs in each page
386
+ await page.goto('https://github.com/login');
387
+ await page.getByLabel('Username or email address').fill('username');
388
+ await page.getByLabel('Password').fill('password');
389
+ await page.getByRole('button', { name: 'Sign in' }).click();
390
+ });
391
+
392
+ test('first', async ({ page }) => {
393
+ // page is signed in
394
+ });
395
+
396
+ test('second', async ({ page }) => {
397
+ // page is signed in (independent of first test)
398
+ });
399
+ ```
400
+
401
+ ### ✅ CORRECT: Soft Assertions
402
+
403
+ Continue test execution after assertion failures to collect all errors:
404
+
405
+ ```javascript
406
+ // Make a few checks that won't stop test when failed...
407
+ await expect.soft(page.getByTestId('status')).toHaveText('Success');
408
+ await expect.soft(page.getByTestId('count')).toHaveText('5');
409
+
410
+ // ... and continue the test to check more things
411
+ await page.getByRole('link', { name: 'next page' }).click();
412
+ ```
413
+
414
+ ### ✅ CORRECT: User-Facing Locators (getByRole)
415
+
416
+ Prefer user-facing attributes over DOM structure:
417
+
418
+ ```javascript
419
+ // ✅ Good: Uses accessible roles - resilient to DOM changes
420
+ page.getByRole('button', { name: 'submit' });
421
+ page.getByRole('link', { name: 'Get started' });
422
+
423
+ // ✅ Good: Filter within context
424
+ const product = page.getByRole('listitem').filter({ hasText: 'Product 2' });
425
+
426
+ // ❌ Avoid: Brittle CSS selectors tied to DOM structure
427
+ page.locator('#submit-button');
428
+ page.locator('.nav > li:nth-child(2) > a');
429
+ ```
430
+
431
+ ### ✅ CORRECT: Parallel Test Execution
432
+
433
+ Configure tests to run in parallel for speed:
434
+
435
+ ```javascript
436
+ import { test } from '@playwright/test';
437
+
438
+ // Run tests within this file in parallel
439
+ test.describe.configure({ mode: 'parallel' });
440
+
441
+ test('runs in parallel 1', async ({ page }) => { /* ... */ });
442
+ test('runs in parallel 2', async ({ page }) => { /* ... */ });
443
+ ```
444
+
445
+ ### ✅ CORRECT: Sharding for Multiple Machines
446
+
447
+ Distribute test suite across multiple CI machines:
448
+
449
+ ```bash
450
+ # Machine 1 of 3
451
+ npx playwright test --shard=1/3
452
+
453
+ # Machine 2 of 3
454
+ npx playwright test --shard=2/3
455
+
456
+ # Machine 3 of 3
457
+ npx playwright test --shard=3/3
458
+ ```
459
+
460
+ ### ✅ CORRECT: Debug Mode
461
+
462
+ Run tests in headed mode with Playwright Inspector:
463
+
464
+ ```bash
465
+ # Debug all tests
466
+ npx playwright test --debug
467
+
468
+ # Debug specific test file
469
+ npx playwright test auth.spec.ts --debug
470
+
471
+ # Debug specific test by line number
472
+ npx playwright test auth.spec.ts:42 --debug
473
+ ```
474
+
475
+ ### ✅ CORRECT: Page Fixture for Test Isolation
476
+
477
+ Each test gets isolated `BrowserContext` through `page` fixture:
478
+
479
+ ```python
480
+ # Python example
481
+ from playwright.sync_api import Page
482
+
483
+ def test_example_test(page: Page):
484
+ # "page" belongs to an isolated BrowserContext for this specific test
485
+ pass
486
+
487
+ def test_another_test(page: Page):
488
+ # "page" in this second test is completely isolated from the first test
489
+ pass
490
+ ```
491
+
492
+ ```javascript
493
+ // JavaScript/TypeScript example
494
+ test('first test', async ({ page }) => {
495
+ // page is isolated
496
+ });
497
+
498
+ test('second test', async ({ page }) => {
499
+ // completely different page instance
500
+ });
501
+ ```
502
+
503
+ ### ✅ CORRECT: Comprehensive Test Structure (C#)
504
+
505
+ Complete test examples for different frameworks:
506
+
507
+ ```csharp
508
+ // NUnit example
509
+ using Microsoft.Playwright.NUnit;
510
+
511
+ [Parallelizable(ParallelScope.Self)]
512
+ [TestFixture]
513
+ public class ExampleTest : PageTest
514
+ {
515
+ [Test]
516
+ public async Task HasTitle()
517
+ {
518
+ await Page.GotoAsync("https://playwright.dev");
519
+ await Expect(Page).ToHaveTitleAsync(new Regex("Playwright"));
520
+ }
521
+
522
+ [Test]
523
+ public async Task GetStartedLink()
524
+ {
525
+ await Page.GotoAsync("https://playwright.dev");
526
+ await Page.GetByRole(AriaRole.Link, new() { Name = "Get started" }).ClickAsync();
527
+ await Expect(Page.GetByRole(AriaRole.Heading, new() { Name = "Installation" })).ToBeVisibleAsync();
528
+ }
529
+ }
530
+ ```
531
+
532
+ ### Performance Best Practices
533
+
534
+ 1. **Mock External Dependencies**: Prevents flakiness and speeds up tests
535
+ 2. **Use Auto-Waiting**: Playwright waits automatically before actions
536
+ 3. **Parallel Execution**: Run tests concurrently where possible
537
+ 4. **Test Isolation**: Each test should be independent (use beforeEach)
538
+ 5. **Sharding**: Distribute tests across multiple CI machines
539
+ 6. **Soft Assertions**: Collect all failures in a single test run
540
+ 7. **User-Facing Locators**: More resilient to UI changes
541
+
542
+ ### Anti-Patterns to Avoid
543
+
544
+ ```javascript
545
+ // ❌ Don't use manual isVisible() checks
546
+ expect(await page.getByText('welcome').isVisible()).toBe(true);
547
+
548
+ // ✅ Use web-first assertions instead
549
+ await expect(page.getByText('welcome')).toBeVisible();
550
+
551
+ // ❌ Don't use brittle CSS selectors
552
+ page.locator('#submit');
553
+
554
+ // ✅ Use accessible roles
555
+ page.getByRole('button', { name: 'Submit' });
556
+
557
+ // ❌ Don't use fixed delays
558
+ await page.waitForTimeout(5000);
559
+
560
+ // ✅ Use smart waits
561
+ await page.waitForSelector('.loaded');
562
+ await expect(page.getByTestId('status')).toHaveText('Ready');
563
+ ```
564
+
565
+ ## Self-Verification Protocol
566
+
567
+ Before delivering any solution, verify:
568
+ - [ ] Documentation from Context7 has been consulted
569
+ - [ ] Code follows best practices
570
+ - [ ] Tests are written and passing
571
+ - [ ] Performance is acceptable
572
+ - [ ] Security considerations addressed
573
+ - [ ] No resource leaks
574
+ - [ ] Error handling is comprehensive
575
+
576
+ ## Deprecation Notice
577
+ The following agents are deprecated in favor of this unified agent:
578
+ - playwright-test-engineer (deprecated v1.1.0)
579
+ - playwright-mcp-frontend-tester (deprecated v1.1.0)