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,583 @@
1
+ # react:optimize
2
+
3
+ Optimize React application performance with Context7-verified patterns for hooks, memoization, and rendering optimization.
4
+
5
+ ## Description
6
+
7
+ Analyzes and optimizes React applications following official React best practices:
8
+ - Component memoization (React.memo, useMemo, useCallback)
9
+ - Render optimization and unnecessary re-renders
10
+ - Hook dependency optimization
11
+ - Context value optimization
12
+ - List rendering performance
13
+ - Code splitting and lazy loading
14
+
15
+ ## Required Documentation Access
16
+
17
+ **MANDATORY:** Before optimization, query Context7 for React best practices:
18
+
19
+ **Documentation Queries:**
20
+ - `mcp://context7/react/performance` - React performance optimization
21
+ - `mcp://context7/react/hooks` - useMemo, useCallback, memo patterns
22
+ - `mcp://context7/react/rendering` - Rendering optimization strategies
23
+ - `mcp://context7/react/profiling` - React Profiler and performance analysis
24
+
25
+ **Why This is Required:**
26
+ - Ensures optimization follows official React documentation
27
+ - Applies latest performance patterns from React team
28
+ - Validates hook usage and dependency arrays
29
+ - Prevents anti-patterns and common mistakes
30
+
31
+ ## Usage
32
+
33
+ ```bash
34
+ /react:optimize [options]
35
+ ```
36
+
37
+ ## Options
38
+
39
+ - `--path <directory>` - Path to React components (default: ./src)
40
+ - `--analyze-only` - Analyze without applying changes
41
+ - `--output <file>` - Write optimization report
42
+ - `--focus <area>` - Focus area: hooks, rendering, context, lists
43
+ - `--aggressive` - Apply aggressive optimizations (requires review)
44
+
45
+ ## Examples
46
+
47
+ ### Analyze Component Performance
48
+ ```bash
49
+ /react:optimize --analyze-only --output perf-report.md
50
+ ```
51
+
52
+ ### Optimize Hooks and Memoization
53
+ ```bash
54
+ /react:optimize --focus hooks
55
+ ```
56
+
57
+ ### Optimize Context Usage
58
+ ```bash
59
+ /react:optimize --focus context
60
+ ```
61
+
62
+ ### Full Optimization with Report
63
+ ```bash
64
+ /react:optimize --output optimizations.md
65
+ ```
66
+
67
+ ## Optimization Patterns
68
+
69
+ ### 1. useMemo for Expensive Calculations
70
+
71
+ **Pattern from Context7 (/reactjs/react.dev):**
72
+
73
+ ```javascript
74
+ // BEFORE: Expensive calculation runs on every render
75
+ function TodoList({ todos, tab, theme }) {
76
+ const visibleTodos = filterTodos(todos, tab); // ❌ Runs every render
77
+
78
+ return (
79
+ <div className={theme}>
80
+ <List items={visibleTodos} />
81
+ </div>
82
+ );
83
+ }
84
+
85
+ // AFTER: useMemo caches the result
86
+ import { useMemo } from 'react';
87
+
88
+ function TodoList({ todos, tab, theme }) {
89
+ const visibleTodos = useMemo(
90
+ () => filterTodos(todos, tab),
91
+ [todos, tab] // ✅ Only recalculates when dependencies change
92
+ );
93
+
94
+ return (
95
+ <div className={theme}>
96
+ <List items={visibleTodos} />
97
+ </div>
98
+ );
99
+ }
100
+ ```
101
+
102
+ **Benefits:**
103
+ - Skips expensive calculations when dependencies unchanged
104
+ - Prevents unnecessary child component re-renders
105
+ - Improves overall application responsiveness
106
+
107
+ **When to Use:**
108
+ - Expensive filtering/transformation operations
109
+ - Complex calculations derived from props/state
110
+ - Values passed to memoized child components
111
+
112
+ ### 2. React.memo for Component Optimization
113
+
114
+ **Pattern from Context7:**
115
+
116
+ ```javascript
117
+ // BEFORE: Component re-renders on every parent render
118
+ function List({ items }) {
119
+ return (
120
+ <ul>
121
+ {items.map(item => (
122
+ <li key={item.id}>{item.text}</li>
123
+ ))}
124
+ </ul>
125
+ );
126
+ }
127
+
128
+ // AFTER: React.memo prevents unnecessary re-renders
129
+ import { memo } from 'react';
130
+
131
+ const List = memo(function List({ items }) {
132
+ return (
133
+ <ul>
134
+ {items.map(item => (
135
+ <li key={item.id}>{item.text}</li>
136
+ ))}
137
+ </ul>
138
+ );
139
+ });
140
+ ```
141
+
142
+ **When to Use:**
143
+ - Component renders expensive UI
144
+ - Props change infrequently
145
+ - Component receives same props repeatedly
146
+
147
+ ### 3. useCallback for Function Stability
148
+
149
+ **Pattern from Context7:**
150
+
151
+ ```javascript
152
+ // BEFORE: Function recreated on every render
153
+ function ProductPage({ productId, referrer }) {
154
+ const handleSubmit = (orderDetails) => {
155
+ post('/product/' + productId + '/buy', {
156
+ referrer,
157
+ orderDetails
158
+ });
159
+ };
160
+
161
+ return <Form onSubmit={handleSubmit} />; // ❌ New function every render
162
+ }
163
+
164
+ // AFTER: useCallback memoizes function
165
+ import { useCallback } from 'react';
166
+
167
+ function ProductPage({ productId, referrer }) {
168
+ const handleSubmit = useCallback((orderDetails) => {
169
+ post('/product/' + productId + '/buy', {
170
+ referrer,
171
+ orderDetails
172
+ });
173
+ }, [productId, referrer]); // ✅ Stable function reference
174
+
175
+ return <Form onSubmit={handleSubmit} />;
176
+ }
177
+ ```
178
+
179
+ **Benefits:**
180
+ - Prevents memoized child components from re-rendering
181
+ - Stable function references for useEffect dependencies
182
+ - Essential for custom hooks returning functions
183
+
184
+ ### 4. Optimize Context Value
185
+
186
+ **Pattern from Context7:**
187
+
188
+ ```javascript
189
+ // BEFORE: Context value object recreated every render
190
+ function MyApp() {
191
+ const [currentUser, setCurrentUser] = useState(null);
192
+
193
+ const login = (response) => {
194
+ storeCredentials(response.credentials);
195
+ setCurrentUser(response.user);
196
+ };
197
+
198
+ // ❌ New object on every render = all consumers re-render
199
+ return (
200
+ <AuthContext.Provider value={{ currentUser, login }}>
201
+ <Page />
202
+ </AuthContext.Provider>
203
+ );
204
+ }
205
+
206
+ // AFTER: Memoize context value
207
+ import { useCallback, useMemo } from 'react';
208
+
209
+ function MyApp() {
210
+ const [currentUser, setCurrentUser] = useState(null);
211
+
212
+ const login = useCallback((response) => {
213
+ storeCredentials(response.credentials);
214
+ setCurrentUser(response.user);
215
+ }, []); // ✅ Stable function
216
+
217
+ const contextValue = useMemo(() => ({
218
+ currentUser,
219
+ login
220
+ }), [currentUser, login]); // ✅ Stable object
221
+
222
+ return (
223
+ <AuthContext.Provider value={contextValue}>
224
+ <Page />
225
+ </AuthContext.Provider>
226
+ );
227
+ }
228
+ ```
229
+
230
+ **Benefits:**
231
+ - Prevents unnecessary re-renders of all context consumers
232
+ - Critical for frequently updated contexts
233
+ - Improves app-wide performance
234
+
235
+ ### 5. Optimize useEffect Dependencies
236
+
237
+ **Pattern from Context7:**
238
+
239
+ ```javascript
240
+ // BEFORE: useEffect runs on every render due to object dependency
241
+ function ChatRoom({ roomId }) {
242
+ const [message, setMessage] = useState('');
243
+
244
+ const options = {
245
+ serverUrl: 'https://localhost:1234',
246
+ roomId: roomId
247
+ }; // ❌ New object every render
248
+
249
+ useEffect(() => {
250
+ const connection = createConnection(options);
251
+ connection.connect();
252
+ return () => connection.disconnect();
253
+ }, [options]); // ❌ options changes every render
254
+ }
255
+
256
+ // AFTER: Memoize object dependency
257
+ import { useMemo } from 'react';
258
+
259
+ function ChatRoom({ roomId }) {
260
+ const [message, setMessage] = useState('');
261
+
262
+ const options = useMemo(() => ({
263
+ serverUrl: 'https://localhost:1234',
264
+ roomId: roomId
265
+ }), [roomId]); // ✅ Only changes when roomId changes
266
+
267
+ useEffect(() => {
268
+ const connection = createConnection(options);
269
+ connection.connect();
270
+ return () => connection.disconnect();
271
+ }, [options]); // ✅ Stable reference
272
+ }
273
+ ```
274
+
275
+ ### 6. Memoize JSX for Complex Children
276
+
277
+ **Pattern from Context7:**
278
+
279
+ ```javascript
280
+ // BEFORE: Child component re-renders unnecessarily
281
+ export default function TodoList({ todos, tab, theme }) {
282
+ const visibleTodos = useMemo(() => filterTodos(todos, tab), [todos, tab]);
283
+
284
+ return (
285
+ <div className={theme}>
286
+ <List items={visibleTodos} /> {/* ❌ Re-renders when theme changes */}
287
+ </div>
288
+ );
289
+ }
290
+
291
+ // AFTER: Memoize JSX node
292
+ export default function TodoList({ todos, tab, theme }) {
293
+ const visibleTodos = useMemo(() => filterTodos(todos, tab), [todos, tab]);
294
+
295
+ const children = useMemo(
296
+ () => <List items={visibleTodos} />,
297
+ [visibleTodos]
298
+ ); // ✅ List only re-renders when visibleTodos changes
299
+
300
+ return (
301
+ <div className={theme}>
302
+ {children}
303
+ </div>
304
+ );
305
+ }
306
+ ```
307
+
308
+ ### 7. Optimize State Updater Functions
309
+
310
+ **Pattern from Context7:**
311
+
312
+ ```javascript
313
+ // BEFORE: todos dependency causes unnecessary callback recreation
314
+ function TodoList() {
315
+ const [todos, setTodos] = useState([]);
316
+
317
+ const handleAddTodo = useCallback((text) => {
318
+ const newTodo = { id: nextId++, text };
319
+ setTodos([...todos, newTodo]); // ❌ Depends on todos
320
+ }, [todos]); // ❌ Callback recreated when todos changes
321
+ }
322
+
323
+ // AFTER: Use updater function
324
+ function TodoList() {
325
+ const [todos, setTodos] = useState([]);
326
+
327
+ const handleAddTodo = useCallback((text) => {
328
+ const newTodo = { id: nextId++, text };
329
+ setTodos(todos => [...todos, newTodo]); // ✅ No todos dependency
330
+ }, []); // ✅ Stable callback
331
+ }
332
+ ```
333
+
334
+ ### 8. Optimize List Rendering
335
+
336
+ **Pattern from Context7:**
337
+
338
+ ```javascript
339
+ // BEFORE: List items re-render on every parent change
340
+ function ReportList({ items }) {
341
+ return (
342
+ <div>
343
+ {items.map(item => (
344
+ <Report key={item.id} item={item} />
345
+ ))}
346
+ </div>
347
+ );
348
+ }
349
+
350
+ function Report({ item }) {
351
+ function handleClick() {
352
+ sendReport(item);
353
+ }
354
+
355
+ return (
356
+ <figure>
357
+ <Chart onClick={handleClick} />
358
+ </figure>
359
+ );
360
+ }
361
+
362
+ // AFTER: Memoize list items
363
+ import { memo } from 'react';
364
+
365
+ function ReportList({ items }) {
366
+ return (
367
+ <div>
368
+ {items.map(item => (
369
+ <Report key={item.id} item={item} />
370
+ ))}
371
+ </div>
372
+ );
373
+ }
374
+
375
+ const Report = memo(function Report({ item }) {
376
+ function handleClick() {
377
+ sendReport(item);
378
+ }
379
+
380
+ return (
381
+ <figure>
382
+ <Chart onClick={handleClick} />
383
+ </figure>
384
+ );
385
+ });
386
+ ```
387
+
388
+ ## Common Anti-Patterns
389
+
390
+ ### 1. Missing useMemo Return Value
391
+
392
+ ```javascript
393
+ // ❌ INCORRECT: No return value
394
+ function Component({ data }) {
395
+ const processed = useMemo(() => {
396
+ data.forEach(item => console.log(item));
397
+ // Missing return!
398
+ }, [data]);
399
+
400
+ return <div>{processed}</div>; // Always undefined
401
+ }
402
+
403
+ // ✅ CORRECT: Explicit return
404
+ function Component({ data }) {
405
+ const processed = useMemo(() => {
406
+ return data.map(item => item.value);
407
+ }, [data]);
408
+
409
+ return <div>{processed.join(', ')}</div>;
410
+ }
411
+ ```
412
+
413
+ ### 2. Incomplete Dependencies
414
+
415
+ ```javascript
416
+ // ❌ INCORRECT: Missing dependencies
417
+ function Component({ data, filter }) {
418
+ const filtered = useMemo(
419
+ () => data.filter(filter),
420
+ [data] // Missing 'filter' dependency
421
+ );
422
+
423
+ return <List items={filtered} />;
424
+ }
425
+
426
+ // ✅ CORRECT: Complete dependencies
427
+ function Component({ data, filter }) {
428
+ const filtered = useMemo(
429
+ () => data.filter(filter),
430
+ [data, filter] // All dependencies included
431
+ );
432
+
433
+ return <List items={filtered} />;
434
+ }
435
+ ```
436
+
437
+ ### 3. Over-Memoization
438
+
439
+ ```javascript
440
+ // ❌ UNNECESSARY: Memoizing primitive values
441
+ function Component({ count }) {
442
+ const doubled = useMemo(() => count * 2, [count]); // Overkill
443
+ return <div>{doubled}</div>;
444
+ }
445
+
446
+ // ✅ BETTER: Simple calculation
447
+ function Component({ count }) {
448
+ const doubled = count * 2; // Fast enough
449
+ return <div>{doubled}</div>;
450
+ }
451
+ ```
452
+
453
+ ## Optimization Output
454
+
455
+ ```
456
+ ⚛️ React Performance Optimization Analysis
457
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
458
+
459
+ Components Analyzed: 45
460
+ Optimization Opportunities: 12
461
+
462
+ 🎯 Hook Optimization
463
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
464
+
465
+ ⚠️ TodoList.jsx (line 23)
466
+ Missing useMemo for expensive filterTodos call
467
+ 💡 Recommendation: Wrap filterTodos in useMemo
468
+ ⚡ Impact: Prevents 15 re-calculations per second
469
+
470
+ ⚠️ ProductPage.jsx (line 45)
471
+ handleSubmit function recreated on every render
472
+ 💡 Recommendation: Wrap in useCallback
473
+ ⚡ Impact: Prevents Form re-render (150ms saved)
474
+
475
+ 🔄 Rendering Optimization
476
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
477
+
478
+ ⚠️ List.jsx
479
+ Component re-renders with same props
480
+ 💡 Recommendation: Wrap with React.memo
481
+ ⚡ Impact: 70% fewer renders (3000 → 900/min)
482
+
483
+ ⚠️ Report.jsx
484
+ List items re-render unnecessarily
485
+ 💡 Recommendation: Memoize Report component
486
+ ⚡ Impact: Improves list scrolling performance
487
+
488
+ 📦 Context Optimization
489
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
490
+
491
+ ❌ AuthContext.Provider (App.jsx line 12)
492
+ Context value object recreated every render
493
+ 💡 Recommendation: Memoize with useMemo
494
+ ⚡ Impact: Critical - all 23 consumers re-render
495
+
496
+ ⚠️ ThemeContext.Provider (App.jsx line 28)
497
+ login function not memoized
498
+ 💡 Recommendation: Wrap with useCallback
499
+ ⚡ Impact: Prevents theme consumers from re-rendering
500
+
501
+ 🔗 Dependency Issues
502
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
503
+
504
+ ❌ ChatRoom.jsx (line 34)
505
+ useEffect depends on object that changes every render
506
+ 💡 Recommendation: Memoize options object
507
+ ⚡ Impact: Prevents connection reconnects
508
+
509
+ ⚠️ DataFetcher.jsx (line 67)
510
+ Missing filter dependency in useMemo
511
+ 💡 Recommendation: Add filter to dependency array
512
+ ⚡ Impact: Prevents stale data bugs
513
+
514
+ Summary
515
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
516
+
517
+ Total Optimizations: 12
518
+
519
+ 🔴 Critical: 2 (fix immediately)
520
+ 🟡 High Impact: 5 (recommended)
521
+ 🟢 Low Impact: 5 (optional)
522
+
523
+ Estimated Performance Improvement: 40-60%
524
+ Estimated Render Reduction: 70%
525
+
526
+ Run with --aggressive to apply all optimizations
527
+ ```
528
+
529
+ ## Implementation
530
+
531
+ This command uses the **@react-frontend-engineer** agent:
532
+
533
+ 1. Query Context7 for React performance patterns
534
+ 2. Analyze component tree and render patterns
535
+ 3. Detect expensive calculations and re-renders
536
+ 4. Identify missing memoization opportunities
537
+ 5. Validate hook dependencies
538
+ 6. Generate optimization recommendations
539
+ 7. Optionally apply automated fixes
540
+
541
+ ## Best Practices Applied
542
+
543
+ Based on Context7 documentation from `/reactjs/react.dev`:
544
+
545
+ 1. **useMemo** - Cache expensive calculations
546
+ 2. **useCallback** - Stable function references
547
+ 3. **React.memo** - Prevent component re-renders
548
+ 4. **Context Optimization** - Memoize context values
549
+ 5. **Dependency Management** - Complete dependency arrays
550
+ 6. **JSX Memoization** - Cache complex JSX trees
551
+ 7. **Updater Functions** - Reduce callback dependencies
552
+ 8. **List Optimization** - Memoize list item components
553
+
554
+ ## Related Commands
555
+
556
+ - `/nextjs:optimize` - Next.js specific optimizations
557
+ - `/perf:analyze` - Deep performance profiling
558
+ - `/bundle:optimize` - Bundle size optimization
559
+ - `/lighthouse:audit` - Lighthouse performance audit
560
+
561
+ ## Troubleshooting
562
+
563
+ ### useMemo Not Working
564
+ - Verify dependencies are complete
565
+ - Check if calculation is actually expensive
566
+ - Ensure return value is provided
567
+
568
+ ### useCallback Causing Issues
569
+ - Verify all used variables are in dependencies
570
+ - Check if memoization is necessary
571
+ - Consider using updater functions
572
+
573
+ ### React.memo Not Preventing Re-renders
574
+ - Verify props are stable (use useMemo/useCallback)
575
+ - Check if component uses context (context updates bypass memo)
576
+ - Consider custom comparison function
577
+
578
+ ## Version History
579
+
580
+ - v2.0.0 - Initial Schema v2.0 release with Context7 integration
581
+ - React hooks optimization patterns
582
+ - Context value memoization
583
+ - Dependency array validation
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@claudeautopm/plugin-frameworks",
3
+ "version": "2.0.0",
4
+ "description": "Complete frontend frameworks plugin with React, Vue, Tailwind CSS agents, UI commands, performance rules, and optimization scripts for ClaudeAutoPM",
5
+ "main": "plugin.json",
6
+ "type": "module",
7
+ "files": [
8
+ "agents/",
9
+ "commands/",
10
+ "rules/",
11
+ "scripts/",
12
+ "plugin.json",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "scripts": {
17
+ "test": "echo \"Error: no test specified\" && exit 1",
18
+ "validate": "node -e \"require('./plugin.json')\" && echo 'plugin.json is valid'"
19
+ },
20
+ "keywords": [
21
+ "claudeautopm",
22
+ "plugin",
23
+ "frameworks",
24
+ "react",
25
+ "vue",
26
+ "tailwind",
27
+ "tailwindcss",
28
+ "frontend",
29
+ "ui",
30
+ "components",
31
+ "hooks",
32
+ "performance"
33
+ ],
34
+ "author": {
35
+ "name": "ClaudeAutoPM Team",
36
+ "email": "autopm@example.com"
37
+ },
38
+ "license": "MIT",
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "git+https://github.com/rafeekpro/ClaudeAutoPM.git",
42
+ "directory": "packages/plugin-frameworks"
43
+ },
44
+ "homepage": "https://github.com/rafeekpro/ClaudeAutoPM/tree/main/packages/plugin-frameworks#readme",
45
+ "bugs": {
46
+ "url": "https://github.com/rafeekpro/ClaudeAutoPM/issues"
47
+ },
48
+ "engines": {
49
+ "node": ">=16.0.0",
50
+ "npm": ">=8.0.0"
51
+ },
52
+ "peerDependencies": {
53
+ "@claudeautopm/plugin-core": "^2.0.0"
54
+ },
55
+ "publishConfig": {
56
+ "access": "public",
57
+ "registry": "https://registry.npmjs.org/"
58
+ }
59
+ }