claude-autopm 2.8.2 → 2.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +399 -637
- package/package.json +2 -1
- package/packages/plugin-ai/LICENSE +21 -0
- package/packages/plugin-ai/README.md +316 -0
- package/packages/plugin-ai/agents/anthropic-claude-expert.md +579 -0
- package/packages/plugin-ai/agents/azure-openai-expert.md +1411 -0
- package/packages/plugin-ai/agents/gemini-api-expert.md +880 -0
- package/packages/plugin-ai/agents/google-a2a-expert.md +1445 -0
- package/packages/plugin-ai/agents/huggingface-expert.md +2131 -0
- package/packages/plugin-ai/agents/langchain-expert.md +1427 -0
- package/packages/plugin-ai/agents/langgraph-workflow-expert.md +520 -0
- package/packages/plugin-ai/agents/openai-python-expert.md +1087 -0
- package/packages/plugin-ai/commands/a2a-setup.md +886 -0
- package/packages/plugin-ai/commands/ai-model-deployment.md +481 -0
- package/packages/plugin-ai/commands/anthropic-optimize.md +793 -0
- package/packages/plugin-ai/commands/huggingface-deploy.md +789 -0
- package/packages/plugin-ai/commands/langchain-optimize.md +807 -0
- package/packages/plugin-ai/commands/llm-optimize.md +348 -0
- package/packages/plugin-ai/commands/openai-optimize.md +863 -0
- package/packages/plugin-ai/commands/rag-optimize.md +841 -0
- package/packages/plugin-ai/commands/rag-setup-scaffold.md +382 -0
- package/packages/plugin-ai/package.json +66 -0
- package/packages/plugin-ai/plugin.json +519 -0
- package/packages/plugin-ai/rules/ai-model-standards.md +449 -0
- package/packages/plugin-ai/rules/prompt-engineering-standards.md +509 -0
- package/packages/plugin-ai/scripts/examples/huggingface-inference-example.py +145 -0
- package/packages/plugin-ai/scripts/examples/langchain-rag-example.py +366 -0
- package/packages/plugin-ai/scripts/examples/mlflow-tracking-example.py +224 -0
- package/packages/plugin-ai/scripts/examples/openai-chat-example.py +425 -0
- package/packages/plugin-cloud/README.md +268 -0
- package/packages/plugin-cloud/agents/README.md +55 -0
- package/packages/plugin-cloud/agents/aws-cloud-architect.md +521 -0
- package/packages/plugin-cloud/agents/azure-cloud-architect.md +436 -0
- package/packages/plugin-cloud/agents/gcp-cloud-architect.md +385 -0
- package/packages/plugin-cloud/agents/gcp-cloud-functions-engineer.md +306 -0
- package/packages/plugin-cloud/agents/gemini-api-expert.md +880 -0
- package/packages/plugin-cloud/agents/kubernetes-orchestrator.md +566 -0
- package/packages/plugin-cloud/agents/openai-python-expert.md +1087 -0
- package/packages/plugin-cloud/agents/terraform-infrastructure-expert.md +454 -0
- package/packages/plugin-cloud/commands/cloud-cost-optimize.md +243 -0
- package/packages/plugin-cloud/commands/cloud-validate.md +196 -0
- package/packages/plugin-cloud/commands/infra-deploy.md +38 -0
- package/packages/plugin-cloud/commands/k8s-deploy.md +37 -0
- package/packages/plugin-cloud/commands/ssh-security.md +65 -0
- package/packages/plugin-cloud/commands/traefik-setup.md +65 -0
- package/packages/plugin-cloud/hooks/pre-cloud-deploy.js +456 -0
- package/packages/plugin-cloud/package.json +64 -0
- package/packages/plugin-cloud/plugin.json +338 -0
- package/packages/plugin-cloud/rules/cloud-security-compliance.md +313 -0
- package/packages/plugin-cloud/rules/infrastructure-pipeline.md +128 -0
- package/packages/plugin-cloud/scripts/examples/aws-validate.sh +30 -0
- package/packages/plugin-cloud/scripts/examples/azure-setup.sh +33 -0
- package/packages/plugin-cloud/scripts/examples/gcp-setup.sh +39 -0
- package/packages/plugin-cloud/scripts/examples/k8s-validate.sh +40 -0
- package/packages/plugin-cloud/scripts/examples/terraform-init.sh +26 -0
- package/packages/plugin-core/README.md +274 -0
- package/packages/plugin-core/agents/core/agent-manager.md +296 -0
- package/packages/plugin-core/agents/core/code-analyzer.md +131 -0
- package/packages/plugin-core/agents/core/file-analyzer.md +162 -0
- package/packages/plugin-core/agents/core/test-runner.md +200 -0
- package/packages/plugin-core/commands/code-rabbit.md +128 -0
- package/packages/plugin-core/commands/prompt.md +9 -0
- package/packages/plugin-core/commands/re-init.md +9 -0
- package/packages/plugin-core/hooks/context7-reminder.md +29 -0
- package/packages/plugin-core/hooks/enforce-agents.js +125 -0
- package/packages/plugin-core/hooks/enforce-agents.sh +35 -0
- package/packages/plugin-core/hooks/pre-agent-context7.js +224 -0
- package/packages/plugin-core/hooks/pre-command-context7.js +229 -0
- package/packages/plugin-core/hooks/strict-enforce-agents.sh +39 -0
- package/packages/plugin-core/hooks/test-hook.sh +21 -0
- package/packages/plugin-core/hooks/unified-context7-enforcement.sh +38 -0
- package/packages/plugin-core/package.json +45 -0
- package/packages/plugin-core/plugin.json +387 -0
- package/packages/plugin-core/rules/agent-coordination.md +549 -0
- package/packages/plugin-core/rules/agent-mandatory.md +170 -0
- package/packages/plugin-core/rules/ai-integration-patterns.md +219 -0
- package/packages/plugin-core/rules/command-pipelines.md +208 -0
- package/packages/plugin-core/rules/context-optimization.md +176 -0
- package/packages/plugin-core/rules/context7-enforcement.md +327 -0
- package/packages/plugin-core/rules/datetime.md +122 -0
- package/packages/plugin-core/rules/definition-of-done.md +272 -0
- package/packages/plugin-core/rules/development-environments.md +19 -0
- package/packages/plugin-core/rules/development-workflow.md +198 -0
- package/packages/plugin-core/rules/framework-path-rules.md +180 -0
- package/packages/plugin-core/rules/frontmatter-operations.md +64 -0
- package/packages/plugin-core/rules/git-strategy.md +237 -0
- package/packages/plugin-core/rules/golden-rules.md +181 -0
- package/packages/plugin-core/rules/naming-conventions.md +111 -0
- package/packages/plugin-core/rules/no-pr-workflow.md +183 -0
- package/packages/plugin-core/rules/performance-guidelines.md +403 -0
- package/packages/plugin-core/rules/pipeline-mandatory.md +109 -0
- package/packages/plugin-core/rules/security-checklist.md +318 -0
- package/packages/plugin-core/rules/standard-patterns.md +197 -0
- package/packages/plugin-core/rules/strip-frontmatter.md +85 -0
- package/packages/plugin-core/rules/tdd.enforcement.md +103 -0
- package/packages/plugin-core/rules/use-ast-grep.md +113 -0
- package/packages/plugin-core/scripts/lib/datetime-utils.sh +254 -0
- package/packages/plugin-core/scripts/lib/frontmatter-utils.sh +294 -0
- package/packages/plugin-core/scripts/lib/github-utils.sh +221 -0
- package/packages/plugin-core/scripts/lib/logging-utils.sh +199 -0
- package/packages/plugin-core/scripts/lib/validation-utils.sh +339 -0
- package/packages/plugin-core/scripts/mcp/add.sh +7 -0
- package/packages/plugin-core/scripts/mcp/disable.sh +12 -0
- package/packages/plugin-core/scripts/mcp/enable.sh +12 -0
- package/packages/plugin-core/scripts/mcp/list.sh +7 -0
- package/packages/plugin-core/scripts/mcp/sync.sh +8 -0
- package/packages/plugin-data/README.md +315 -0
- package/packages/plugin-data/agents/airflow-orchestration-expert.md +158 -0
- package/packages/plugin-data/agents/kedro-pipeline-expert.md +304 -0
- package/packages/plugin-data/agents/langgraph-workflow-expert.md +530 -0
- package/packages/plugin-data/commands/airflow-dag-scaffold.md +413 -0
- package/packages/plugin-data/commands/kafka-pipeline-scaffold.md +503 -0
- package/packages/plugin-data/package.json +66 -0
- package/packages/plugin-data/plugin.json +294 -0
- package/packages/plugin-data/rules/data-quality-standards.md +373 -0
- package/packages/plugin-data/rules/etl-pipeline-standards.md +255 -0
- package/packages/plugin-data/scripts/examples/airflow-dag-example.py +245 -0
- package/packages/plugin-data/scripts/examples/dbt-transform-example.sql +238 -0
- package/packages/plugin-data/scripts/examples/kafka-streaming-example.py +257 -0
- package/packages/plugin-data/scripts/examples/pandas-etl-example.py +332 -0
- package/packages/plugin-databases/README.md +330 -0
- package/packages/plugin-databases/agents/README.md +50 -0
- package/packages/plugin-databases/agents/bigquery-expert.md +401 -0
- package/packages/plugin-databases/agents/cosmosdb-expert.md +375 -0
- package/packages/plugin-databases/agents/mongodb-expert.md +407 -0
- package/packages/plugin-databases/agents/postgresql-expert.md +329 -0
- package/packages/plugin-databases/agents/redis-expert.md +74 -0
- package/packages/plugin-databases/commands/db-optimize.md +612 -0
- package/packages/plugin-databases/package.json +60 -0
- package/packages/plugin-databases/plugin.json +237 -0
- package/packages/plugin-databases/rules/database-management-strategy.md +146 -0
- package/packages/plugin-databases/rules/database-pipeline.md +316 -0
- package/packages/plugin-databases/scripts/examples/bigquery-cost-analyze.sh +160 -0
- package/packages/plugin-databases/scripts/examples/cosmosdb-ru-optimize.sh +163 -0
- package/packages/plugin-databases/scripts/examples/mongodb-shard-check.sh +120 -0
- package/packages/plugin-databases/scripts/examples/postgres-index-analyze.sh +95 -0
- package/packages/plugin-databases/scripts/examples/redis-cache-stats.sh +121 -0
- package/packages/plugin-devops/README.md +367 -0
- package/packages/plugin-devops/agents/README.md +52 -0
- package/packages/plugin-devops/agents/azure-devops-specialist.md +308 -0
- package/packages/plugin-devops/agents/docker-containerization-expert.md +298 -0
- package/packages/plugin-devops/agents/github-operations-specialist.md +335 -0
- package/packages/plugin-devops/agents/mcp-context-manager.md +319 -0
- package/packages/plugin-devops/agents/observability-engineer.md +574 -0
- package/packages/plugin-devops/agents/ssh-operations-expert.md +1093 -0
- package/packages/plugin-devops/agents/traefik-proxy-expert.md +444 -0
- package/packages/plugin-devops/commands/ci-pipeline-create.md +581 -0
- package/packages/plugin-devops/commands/docker-optimize.md +493 -0
- package/packages/plugin-devops/commands/workflow-create.md +42 -0
- package/packages/plugin-devops/hooks/pre-docker-build.js +472 -0
- package/packages/plugin-devops/package.json +61 -0
- package/packages/plugin-devops/plugin.json +302 -0
- package/packages/plugin-devops/rules/ci-cd-kubernetes-strategy.md +25 -0
- package/packages/plugin-devops/rules/devops-troubleshooting-playbook.md +450 -0
- package/packages/plugin-devops/rules/docker-first-development.md +404 -0
- package/packages/plugin-devops/rules/github-operations.md +92 -0
- package/packages/plugin-devops/scripts/examples/docker-build-multistage.sh +43 -0
- package/packages/plugin-devops/scripts/examples/docker-compose-validate.sh +74 -0
- package/packages/plugin-devops/scripts/examples/github-workflow-validate.sh +48 -0
- package/packages/plugin-devops/scripts/examples/prometheus-health-check.sh +58 -0
- package/packages/plugin-devops/scripts/examples/ssh-key-setup.sh +74 -0
- package/packages/plugin-frameworks/README.md +309 -0
- package/packages/plugin-frameworks/agents/README.md +64 -0
- package/packages/plugin-frameworks/agents/e2e-test-engineer.md +579 -0
- package/packages/plugin-frameworks/agents/nats-messaging-expert.md +254 -0
- package/packages/plugin-frameworks/agents/react-frontend-engineer.md +393 -0
- package/packages/plugin-frameworks/agents/react-ui-expert.md +226 -0
- package/packages/plugin-frameworks/agents/tailwindcss-expert.md +1021 -0
- package/packages/plugin-frameworks/agents/ux-design-expert.md +244 -0
- package/packages/plugin-frameworks/commands/app-scaffold.md +50 -0
- package/packages/plugin-frameworks/commands/nextjs-optimize.md +692 -0
- package/packages/plugin-frameworks/commands/react-optimize.md +583 -0
- package/packages/plugin-frameworks/commands/tailwind-system.md +64 -0
- package/packages/plugin-frameworks/package.json +59 -0
- package/packages/plugin-frameworks/plugin.json +224 -0
- package/packages/plugin-frameworks/rules/performance-guidelines.md +403 -0
- package/packages/plugin-frameworks/rules/ui-development-standards.md +281 -0
- package/packages/plugin-frameworks/rules/ui-framework-rules.md +151 -0
- package/packages/plugin-frameworks/scripts/examples/react-component-perf.sh +34 -0
- package/packages/plugin-frameworks/scripts/examples/tailwind-optimize.sh +44 -0
- package/packages/plugin-frameworks/scripts/examples/vue-composition-check.sh +41 -0
- package/packages/plugin-languages/README.md +333 -0
- package/packages/plugin-languages/agents/README.md +50 -0
- package/packages/plugin-languages/agents/bash-scripting-expert.md +541 -0
- package/packages/plugin-languages/agents/javascript-frontend-engineer.md +197 -0
- package/packages/plugin-languages/agents/nodejs-backend-engineer.md +226 -0
- package/packages/plugin-languages/agents/python-backend-engineer.md +214 -0
- package/packages/plugin-languages/agents/python-backend-expert.md +289 -0
- package/packages/plugin-languages/commands/javascript-optimize.md +636 -0
- package/packages/plugin-languages/commands/nodejs-api-scaffold.md +341 -0
- package/packages/plugin-languages/commands/nodejs-optimize.md +689 -0
- package/packages/plugin-languages/commands/python-api-scaffold.md +261 -0
- package/packages/plugin-languages/commands/python-optimize.md +593 -0
- package/packages/plugin-languages/package.json +65 -0
- package/packages/plugin-languages/plugin.json +265 -0
- package/packages/plugin-languages/rules/code-quality-standards.md +496 -0
- package/packages/plugin-languages/rules/testing-standards.md +768 -0
- package/packages/plugin-languages/scripts/examples/bash-production-script.sh +520 -0
- package/packages/plugin-languages/scripts/examples/javascript-es6-patterns.js +291 -0
- package/packages/plugin-languages/scripts/examples/nodejs-async-iteration.js +360 -0
- package/packages/plugin-languages/scripts/examples/python-async-patterns.py +289 -0
- package/packages/plugin-languages/scripts/examples/typescript-patterns.ts +432 -0
- package/packages/plugin-ml/README.md +430 -0
- package/packages/plugin-ml/agents/automl-expert.md +326 -0
- package/packages/plugin-ml/agents/computer-vision-expert.md +550 -0
- package/packages/plugin-ml/agents/gradient-boosting-expert.md +455 -0
- package/packages/plugin-ml/agents/neural-network-architect.md +1228 -0
- package/packages/plugin-ml/agents/nlp-transformer-expert.md +584 -0
- package/packages/plugin-ml/agents/pytorch-expert.md +412 -0
- package/packages/plugin-ml/agents/reinforcement-learning-expert.md +2088 -0
- package/packages/plugin-ml/agents/scikit-learn-expert.md +228 -0
- package/packages/plugin-ml/agents/tensorflow-keras-expert.md +509 -0
- package/packages/plugin-ml/agents/time-series-expert.md +303 -0
- package/packages/plugin-ml/commands/ml-automl.md +572 -0
- package/packages/plugin-ml/commands/ml-train-optimize.md +657 -0
- package/packages/plugin-ml/package.json +52 -0
- package/packages/plugin-ml/plugin.json +338 -0
- package/packages/plugin-pm/README.md +368 -0
- package/packages/plugin-pm/claudeautopm-plugin-pm-2.0.0.tgz +0 -0
- package/packages/plugin-pm/commands/azure/COMMANDS.md +107 -0
- package/packages/plugin-pm/commands/azure/COMMAND_MAPPING.md +252 -0
- package/packages/plugin-pm/commands/azure/INTEGRATION_FIX.md +103 -0
- package/packages/plugin-pm/commands/azure/README.md +246 -0
- package/packages/plugin-pm/commands/azure/active-work.md +198 -0
- package/packages/plugin-pm/commands/azure/aliases.md +143 -0
- package/packages/plugin-pm/commands/azure/blocked-items.md +287 -0
- package/packages/plugin-pm/commands/azure/clean.md +93 -0
- package/packages/plugin-pm/commands/azure/docs-query.md +48 -0
- package/packages/plugin-pm/commands/azure/feature-decompose.md +380 -0
- package/packages/plugin-pm/commands/azure/feature-list.md +61 -0
- package/packages/plugin-pm/commands/azure/feature-new.md +115 -0
- package/packages/plugin-pm/commands/azure/feature-show.md +205 -0
- package/packages/plugin-pm/commands/azure/feature-start.md +130 -0
- package/packages/plugin-pm/commands/azure/fix-integration-example.md +93 -0
- package/packages/plugin-pm/commands/azure/help.md +150 -0
- package/packages/plugin-pm/commands/azure/import-us.md +269 -0
- package/packages/plugin-pm/commands/azure/init.md +211 -0
- package/packages/plugin-pm/commands/azure/next-task.md +262 -0
- package/packages/plugin-pm/commands/azure/search.md +160 -0
- package/packages/plugin-pm/commands/azure/sprint-status.md +235 -0
- package/packages/plugin-pm/commands/azure/standup.md +260 -0
- package/packages/plugin-pm/commands/azure/sync-all.md +99 -0
- package/packages/plugin-pm/commands/azure/task-analyze.md +186 -0
- package/packages/plugin-pm/commands/azure/task-close.md +329 -0
- package/packages/plugin-pm/commands/azure/task-edit.md +145 -0
- package/packages/plugin-pm/commands/azure/task-list.md +263 -0
- package/packages/plugin-pm/commands/azure/task-new.md +84 -0
- package/packages/plugin-pm/commands/azure/task-reopen.md +79 -0
- package/packages/plugin-pm/commands/azure/task-show.md +126 -0
- package/packages/plugin-pm/commands/azure/task-start.md +301 -0
- package/packages/plugin-pm/commands/azure/task-status.md +65 -0
- package/packages/plugin-pm/commands/azure/task-sync.md +67 -0
- package/packages/plugin-pm/commands/azure/us-edit.md +164 -0
- package/packages/plugin-pm/commands/azure/us-list.md +202 -0
- package/packages/plugin-pm/commands/azure/us-new.md +265 -0
- package/packages/plugin-pm/commands/azure/us-parse.md +253 -0
- package/packages/plugin-pm/commands/azure/us-show.md +188 -0
- package/packages/plugin-pm/commands/azure/us-status.md +320 -0
- package/packages/plugin-pm/commands/azure/validate.md +86 -0
- package/packages/plugin-pm/commands/azure/work-item-sync.md +47 -0
- package/packages/plugin-pm/commands/blocked.md +28 -0
- package/packages/plugin-pm/commands/clean.md +119 -0
- package/packages/plugin-pm/commands/context-create.md +136 -0
- package/packages/plugin-pm/commands/context-prime.md +170 -0
- package/packages/plugin-pm/commands/context-update.md +292 -0
- package/packages/plugin-pm/commands/context.md +28 -0
- package/packages/plugin-pm/commands/epic-close.md +86 -0
- package/packages/plugin-pm/commands/epic-decompose.md +370 -0
- package/packages/plugin-pm/commands/epic-edit.md +83 -0
- package/packages/plugin-pm/commands/epic-list.md +30 -0
- package/packages/plugin-pm/commands/epic-merge.md +222 -0
- package/packages/plugin-pm/commands/epic-oneshot.md +119 -0
- package/packages/plugin-pm/commands/epic-refresh.md +119 -0
- package/packages/plugin-pm/commands/epic-show.md +28 -0
- package/packages/plugin-pm/commands/epic-split.md +120 -0
- package/packages/plugin-pm/commands/epic-start.md +195 -0
- package/packages/plugin-pm/commands/epic-status.md +28 -0
- package/packages/plugin-pm/commands/epic-sync-modular.md +338 -0
- package/packages/plugin-pm/commands/epic-sync-original.md +473 -0
- package/packages/plugin-pm/commands/epic-sync.md +486 -0
- package/packages/plugin-pm/commands/github/workflow-create.md +42 -0
- package/packages/plugin-pm/commands/help.md +28 -0
- package/packages/plugin-pm/commands/import.md +115 -0
- package/packages/plugin-pm/commands/in-progress.md +28 -0
- package/packages/plugin-pm/commands/init.md +28 -0
- package/packages/plugin-pm/commands/issue-analyze.md +202 -0
- package/packages/plugin-pm/commands/issue-close.md +119 -0
- package/packages/plugin-pm/commands/issue-edit.md +93 -0
- package/packages/plugin-pm/commands/issue-reopen.md +87 -0
- package/packages/plugin-pm/commands/issue-show.md +41 -0
- package/packages/plugin-pm/commands/issue-start.md +234 -0
- package/packages/plugin-pm/commands/issue-status.md +95 -0
- package/packages/plugin-pm/commands/issue-sync.md +411 -0
- package/packages/plugin-pm/commands/next.md +28 -0
- package/packages/plugin-pm/commands/prd-edit.md +82 -0
- package/packages/plugin-pm/commands/prd-list.md +28 -0
- package/packages/plugin-pm/commands/prd-new.md +55 -0
- package/packages/plugin-pm/commands/prd-parse.md +42 -0
- package/packages/plugin-pm/commands/prd-status.md +28 -0
- package/packages/plugin-pm/commands/search.md +28 -0
- package/packages/plugin-pm/commands/standup.md +28 -0
- package/packages/plugin-pm/commands/status.md +28 -0
- package/packages/plugin-pm/commands/sync.md +99 -0
- package/packages/plugin-pm/commands/test-reference-update.md +151 -0
- package/packages/plugin-pm/commands/validate.md +28 -0
- package/packages/plugin-pm/commands/what-next.md +28 -0
- package/packages/plugin-pm/package.json +57 -0
- package/packages/plugin-pm/plugin.json +503 -0
- package/packages/plugin-pm/scripts/pm/analytics.js +425 -0
- package/packages/plugin-pm/scripts/pm/blocked.js +164 -0
- package/packages/plugin-pm/scripts/pm/blocked.sh +78 -0
- package/packages/plugin-pm/scripts/pm/clean.js +464 -0
- package/packages/plugin-pm/scripts/pm/context-create.js +216 -0
- package/packages/plugin-pm/scripts/pm/context-prime.js +335 -0
- package/packages/plugin-pm/scripts/pm/context-update.js +344 -0
- package/packages/plugin-pm/scripts/pm/context.js +338 -0
- package/packages/plugin-pm/scripts/pm/epic-close.js +347 -0
- package/packages/plugin-pm/scripts/pm/epic-edit.js +382 -0
- package/packages/plugin-pm/scripts/pm/epic-list.js +273 -0
- package/packages/plugin-pm/scripts/pm/epic-list.sh +109 -0
- package/packages/plugin-pm/scripts/pm/epic-show.js +291 -0
- package/packages/plugin-pm/scripts/pm/epic-show.sh +105 -0
- package/packages/plugin-pm/scripts/pm/epic-split.js +522 -0
- package/packages/plugin-pm/scripts/pm/epic-start/epic-start.js +183 -0
- package/packages/plugin-pm/scripts/pm/epic-start/epic-start.sh +94 -0
- package/packages/plugin-pm/scripts/pm/epic-status.js +291 -0
- package/packages/plugin-pm/scripts/pm/epic-status.sh +104 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/README.md +208 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/create-epic-issue.sh +77 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/create-task-issues.sh +86 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/update-epic-file.sh +79 -0
- package/packages/plugin-pm/scripts/pm/epic-sync/update-references.sh +89 -0
- package/packages/plugin-pm/scripts/pm/epic-sync.sh +137 -0
- package/packages/plugin-pm/scripts/pm/help.js +92 -0
- package/packages/plugin-pm/scripts/pm/help.sh +90 -0
- package/packages/plugin-pm/scripts/pm/in-progress.js +178 -0
- package/packages/plugin-pm/scripts/pm/in-progress.sh +93 -0
- package/packages/plugin-pm/scripts/pm/init.js +321 -0
- package/packages/plugin-pm/scripts/pm/init.sh +178 -0
- package/packages/plugin-pm/scripts/pm/issue-close.js +232 -0
- package/packages/plugin-pm/scripts/pm/issue-edit.js +310 -0
- package/packages/plugin-pm/scripts/pm/issue-show.js +272 -0
- package/packages/plugin-pm/scripts/pm/issue-start.js +181 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/format-comment.sh +468 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/gather-updates.sh +460 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/post-comment.sh +330 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/preflight-validation.sh +348 -0
- package/packages/plugin-pm/scripts/pm/issue-sync/update-frontmatter.sh +387 -0
- package/packages/plugin-pm/scripts/pm/lib/README.md +85 -0
- package/packages/plugin-pm/scripts/pm/lib/epic-discovery.js +119 -0
- package/packages/plugin-pm/scripts/pm/lib/logger.js +78 -0
- package/packages/plugin-pm/scripts/pm/next.js +189 -0
- package/packages/plugin-pm/scripts/pm/next.sh +72 -0
- package/packages/plugin-pm/scripts/pm/optimize.js +407 -0
- package/packages/plugin-pm/scripts/pm/pr-create.js +337 -0
- package/packages/plugin-pm/scripts/pm/pr-list.js +257 -0
- package/packages/plugin-pm/scripts/pm/prd-list.js +242 -0
- package/packages/plugin-pm/scripts/pm/prd-list.sh +103 -0
- package/packages/plugin-pm/scripts/pm/prd-new.js +684 -0
- package/packages/plugin-pm/scripts/pm/prd-parse.js +547 -0
- package/packages/plugin-pm/scripts/pm/prd-status.js +152 -0
- package/packages/plugin-pm/scripts/pm/prd-status.sh +63 -0
- package/packages/plugin-pm/scripts/pm/release.js +460 -0
- package/packages/plugin-pm/scripts/pm/search.js +192 -0
- package/packages/plugin-pm/scripts/pm/search.sh +89 -0
- package/packages/plugin-pm/scripts/pm/standup.js +362 -0
- package/packages/plugin-pm/scripts/pm/standup.sh +95 -0
- package/packages/plugin-pm/scripts/pm/status.js +148 -0
- package/packages/plugin-pm/scripts/pm/status.sh +59 -0
- package/packages/plugin-pm/scripts/pm/sync-batch.js +337 -0
- package/packages/plugin-pm/scripts/pm/sync.js +343 -0
- package/packages/plugin-pm/scripts/pm/template-list.js +141 -0
- package/packages/plugin-pm/scripts/pm/template-new.js +366 -0
- package/packages/plugin-pm/scripts/pm/validate.js +274 -0
- package/packages/plugin-pm/scripts/pm/validate.sh +106 -0
- package/packages/plugin-pm/scripts/pm/what-next.js +660 -0
- package/packages/plugin-testing/README.md +401 -0
- package/packages/plugin-testing/agents/frontend-testing-engineer.md +768 -0
- package/packages/plugin-testing/commands/jest-optimize.md +800 -0
- package/packages/plugin-testing/commands/playwright-optimize.md +887 -0
- package/packages/plugin-testing/commands/test-coverage.md +512 -0
- package/packages/plugin-testing/commands/test-performance.md +1041 -0
- package/packages/plugin-testing/commands/test-setup.md +414 -0
- package/packages/plugin-testing/package.json +40 -0
- package/packages/plugin-testing/plugin.json +197 -0
- package/packages/plugin-testing/rules/test-coverage-requirements.md +581 -0
- package/packages/plugin-testing/rules/testing-standards.md +529 -0
- package/packages/plugin-testing/scripts/examples/react-testing-example.test.jsx +460 -0
- package/packages/plugin-testing/scripts/examples/vitest-config-example.js +352 -0
- package/packages/plugin-testing/scripts/examples/vue-testing-example.test.js +586 -0
|
@@ -0,0 +1,636 @@
|
|
|
1
|
+
# javascript:optimize
|
|
2
|
+
|
|
3
|
+
Optimize JavaScript/TypeScript frontend performance with Context7-verified bundling, tree-shaking, and runtime optimization.
|
|
4
|
+
|
|
5
|
+
## Description
|
|
6
|
+
|
|
7
|
+
Comprehensive JavaScript performance optimization following web.dev best practices:
|
|
8
|
+
- Bundle optimization (code splitting, tree-shaking)
|
|
9
|
+
- Runtime performance (event loop, debouncing)
|
|
10
|
+
- Resource loading (lazy loading, preloading)
|
|
11
|
+
- Critical rendering path optimization
|
|
12
|
+
- Web Workers for background processing
|
|
13
|
+
|
|
14
|
+
## Required Documentation Access
|
|
15
|
+
|
|
16
|
+
**MANDATORY:** Before optimization, query Context7 for JavaScript best practices:
|
|
17
|
+
|
|
18
|
+
**Documentation Queries:**
|
|
19
|
+
- `mcp://context7/web-dev/performance` - Web performance optimization
|
|
20
|
+
- `mcp://context7/javascript/bundling` - Bundle optimization techniques
|
|
21
|
+
- `mcp://context7/web-dev/critical-rendering-path` - Rendering optimization
|
|
22
|
+
- `mcp://context7/javascript/web-workers` - Background processing
|
|
23
|
+
- `mcp://context7/web-dev/resource-hints` - Resource loading optimization
|
|
24
|
+
|
|
25
|
+
**Why This is Required:**
|
|
26
|
+
- Ensures optimization follows web.dev best practices
|
|
27
|
+
- Applies proven bundling and minification techniques
|
|
28
|
+
- Validates resource loading strategies
|
|
29
|
+
- Prevents common JavaScript performance pitfalls
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
/javascript:optimize [options]
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Options
|
|
38
|
+
|
|
39
|
+
- `--scope <bundle|runtime|resources|all>` - Optimization scope (default: all)
|
|
40
|
+
- `--analyze-only` - Analyze without applying changes
|
|
41
|
+
- `--output <file>` - Write optimization report
|
|
42
|
+
- `--bundler <webpack|vite|rollup>` - Bundler-specific optimization
|
|
43
|
+
- `--target <modern|legacy>` - Browser target (default: modern)
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
|
|
47
|
+
### Full Application Optimization
|
|
48
|
+
```bash
|
|
49
|
+
/javascript:optimize
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Bundle Optimization Only
|
|
53
|
+
```bash
|
|
54
|
+
/javascript:optimize --scope bundle --bundler vite
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Analyze Performance
|
|
58
|
+
```bash
|
|
59
|
+
/javascript:optimize --analyze-only --output performance-report.md
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Modern Browsers Only
|
|
63
|
+
```bash
|
|
64
|
+
/javascript:optimize --target modern
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Optimization Categories
|
|
68
|
+
|
|
69
|
+
### 1. Bundle Optimization (Context7-Verified)
|
|
70
|
+
|
|
71
|
+
**Patterns from Context7 (/websites/web_dev_learn):**
|
|
72
|
+
|
|
73
|
+
#### Code Splitting
|
|
74
|
+
```javascript
|
|
75
|
+
// BEFORE: Single large bundle
|
|
76
|
+
import { heavyLibrary } from 'heavy-lib';
|
|
77
|
+
import { rareFeature } from './rare-feature';
|
|
78
|
+
|
|
79
|
+
function init() {
|
|
80
|
+
heavyLibrary.setup();
|
|
81
|
+
if (needsRareFeature) {
|
|
82
|
+
rareFeature.run();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Bundle size: 850 KB
|
|
86
|
+
|
|
87
|
+
// AFTER: Dynamic imports (code splitting)
|
|
88
|
+
function init() {
|
|
89
|
+
import('heavy-lib').then(({ heavyLibrary }) => {
|
|
90
|
+
heavyLibrary.setup();
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
if (needsRareFeature) {
|
|
94
|
+
import('./rare-feature').then(({ rareFeature }) => {
|
|
95
|
+
rareFeature.run();
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// Initial bundle: 150 KB (82% reduction)
|
|
100
|
+
// Lazy chunks: Loaded on demand
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Performance Impact:**
|
|
104
|
+
- Initial load: 850 KB → 150 KB (82% reduction)
|
|
105
|
+
- Time to Interactive: 3.2s → 0.9s (72% faster)
|
|
106
|
+
- First Contentful Paint: 1.8s → 0.5s (72% faster)
|
|
107
|
+
|
|
108
|
+
#### Tree Shaking (Webpack/Rollup)
|
|
109
|
+
```javascript
|
|
110
|
+
// library.js - Export multiple functions
|
|
111
|
+
export function usedFunction() {
|
|
112
|
+
return 'used';
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export function unusedFunction() {
|
|
116
|
+
return 'never imported';
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// app.js - Import only what you need
|
|
120
|
+
import { usedFunction } from './library';
|
|
121
|
+
|
|
122
|
+
console.log(usedFunction());
|
|
123
|
+
|
|
124
|
+
// Result: unusedFunction() is removed from bundle (dead code elimination)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Configuration (package.json):**
|
|
128
|
+
```json
|
|
129
|
+
{
|
|
130
|
+
"sideEffects": false
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Benefits:**
|
|
135
|
+
- Removes unused exports (20-40% smaller bundles)
|
|
136
|
+
- Works with ES6 modules
|
|
137
|
+
- Automatic dead code elimination
|
|
138
|
+
|
|
139
|
+
#### Minification and Uglification
|
|
140
|
+
```javascript
|
|
141
|
+
// BEFORE: Unminified JavaScript
|
|
142
|
+
export function injectScript() {
|
|
143
|
+
const scriptElement = document.createElement('script');
|
|
144
|
+
scriptElement.src = '/js/scripts.js';
|
|
145
|
+
scriptElement.type = 'module';
|
|
146
|
+
document.body.appendChild(scriptElement);
|
|
147
|
+
}
|
|
148
|
+
// Size: 180 bytes
|
|
149
|
+
|
|
150
|
+
// AFTER: Minified (Terser/UglifyJS)
|
|
151
|
+
export function injectScript(){const t=document.createElement("script");t.src="/js/scripts.js",t.type="module",document.body.appendChild(t)}
|
|
152
|
+
// Size: 126 bytes (30% reduction)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Benefits:**
|
|
156
|
+
- 20-40% size reduction
|
|
157
|
+
- Faster parsing
|
|
158
|
+
- Automatic in production builds
|
|
159
|
+
|
|
160
|
+
### 2. Critical Rendering Path Optimization (Context7-Verified)
|
|
161
|
+
|
|
162
|
+
**Patterns from Context7 (/websites/web_dev_learn):**
|
|
163
|
+
|
|
164
|
+
#### Inline Critical CSS
|
|
165
|
+
```html
|
|
166
|
+
<head>
|
|
167
|
+
<title>Page Title</title>
|
|
168
|
+
<!-- Inline critical CSS (above-the-fold styles) -->
|
|
169
|
+
<style>
|
|
170
|
+
h1,h2{color:#000}h1{font-size:2em}h2{font-size:1.5em}
|
|
171
|
+
</style>
|
|
172
|
+
</head>
|
|
173
|
+
<body>
|
|
174
|
+
<!-- Page content -->
|
|
175
|
+
|
|
176
|
+
<!-- Load non-critical CSS asynchronously -->
|
|
177
|
+
<link rel="stylesheet" href="non-critical.css">
|
|
178
|
+
</body>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**Benefits:**
|
|
182
|
+
- Eliminates render-blocking CSS request
|
|
183
|
+
- Faster First Contentful Paint (FCP)
|
|
184
|
+
- Improved Largest Contentful Paint (LCP)
|
|
185
|
+
|
|
186
|
+
**Performance Impact:**
|
|
187
|
+
- FCP: 1.8s → 0.6s (67% faster)
|
|
188
|
+
- LCP: 2.4s → 1.1s (54% faster)
|
|
189
|
+
|
|
190
|
+
#### Defer Non-Critical JavaScript
|
|
191
|
+
```html
|
|
192
|
+
<!-- BEFORE: Render-blocking script -->
|
|
193
|
+
<script src="/script.js"></script>
|
|
194
|
+
|
|
195
|
+
<!-- AFTER: Deferred script -->
|
|
196
|
+
<script defer src="/script.js"></script>
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Benefits:**
|
|
200
|
+
- HTML parsing continues while script downloads
|
|
201
|
+
- Script executes after DOM is parsed
|
|
202
|
+
- Maintains execution order
|
|
203
|
+
|
|
204
|
+
**Script Loading Strategies:**
|
|
205
|
+
```html
|
|
206
|
+
<!-- Critical: Block parsing (use sparingly) -->
|
|
207
|
+
<script src="/critical.js"></script>
|
|
208
|
+
|
|
209
|
+
<!-- Non-critical: Defer execution -->
|
|
210
|
+
<script src="/non-critical.js" defer></script>
|
|
211
|
+
|
|
212
|
+
<!-- Analytics: Async (order doesn't matter) -->
|
|
213
|
+
<script src="/analytics.js" async></script>
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
#### Resource Hints
|
|
217
|
+
```html
|
|
218
|
+
<!-- Preconnect: Establish early connection -->
|
|
219
|
+
<link rel="preconnect" href="https://api.example.com">
|
|
220
|
+
|
|
221
|
+
<!-- DNS Prefetch: Resolve DNS early -->
|
|
222
|
+
<link rel="dns-prefetch" href="https://fonts.googleapis.com">
|
|
223
|
+
|
|
224
|
+
<!-- Preload: High-priority resource -->
|
|
225
|
+
<link rel="preload" href="/styles/critical.css" as="style">
|
|
226
|
+
|
|
227
|
+
<!-- Prefetch: Low-priority future navigation -->
|
|
228
|
+
<link rel="prefetch" href="/page2.html" as="document">
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**Benefits:**
|
|
232
|
+
- Faster resource loading (100-500ms savings)
|
|
233
|
+
- Reduced latency for API calls
|
|
234
|
+
- Improved navigation performance
|
|
235
|
+
|
|
236
|
+
### 3. Runtime Performance Optimization (Context7-Verified)
|
|
237
|
+
|
|
238
|
+
**Patterns from Context7:**
|
|
239
|
+
|
|
240
|
+
#### Debouncing Expensive Operations
|
|
241
|
+
```javascript
|
|
242
|
+
// Context7 Pattern: Debounce scroll/resize handlers
|
|
243
|
+
function debounce(func, wait) {
|
|
244
|
+
let timeout;
|
|
245
|
+
return function executedFunction(...args) {
|
|
246
|
+
const later = () => {
|
|
247
|
+
clearTimeout(timeout);
|
|
248
|
+
func(...args);
|
|
249
|
+
};
|
|
250
|
+
clearTimeout(timeout);
|
|
251
|
+
timeout = setTimeout(later, wait);
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// Usage: Debounce scroll handler
|
|
256
|
+
const handleScroll = debounce(() => {
|
|
257
|
+
console.log('Scroll handled');
|
|
258
|
+
updateScrollPosition();
|
|
259
|
+
}, 200);
|
|
260
|
+
|
|
261
|
+
window.addEventListener('scroll', handleScroll);
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**Benefits:**
|
|
265
|
+
- Reduces function calls by 90-95%
|
|
266
|
+
- Prevents event loop congestion
|
|
267
|
+
- Smoother scrolling/resizing
|
|
268
|
+
|
|
269
|
+
**Performance Impact:**
|
|
270
|
+
- Without debounce: 500 calls/second (event loop blocked)
|
|
271
|
+
- With debounce (200ms): 5 calls/second (smooth performance)
|
|
272
|
+
|
|
273
|
+
#### Lazy Loading with Intersection Observer
|
|
274
|
+
```javascript
|
|
275
|
+
// Context7 Pattern: Lazy load images
|
|
276
|
+
const imageObserver = new IntersectionObserver((entries, observer) => {
|
|
277
|
+
entries.forEach(entry => {
|
|
278
|
+
if (entry.isIntersecting) {
|
|
279
|
+
const img = entry.target;
|
|
280
|
+
img.src = img.dataset.src;
|
|
281
|
+
img.classList.add('loaded');
|
|
282
|
+
observer.unobserve(img);
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
// Apply to all images with data-src
|
|
288
|
+
document.querySelectorAll('img[data-src]').forEach(img => {
|
|
289
|
+
imageObserver.observe(img);
|
|
290
|
+
});
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
**HTML:**
|
|
294
|
+
```html
|
|
295
|
+
<img
|
|
296
|
+
src="/images/placeholder.jpg"
|
|
297
|
+
data-src="/images/actual-image.jpg"
|
|
298
|
+
loading="lazy"
|
|
299
|
+
alt="Description"
|
|
300
|
+
/>
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Benefits:**
|
|
304
|
+
- Images load only when visible
|
|
305
|
+
- Faster initial page load
|
|
306
|
+
- Reduced bandwidth usage
|
|
307
|
+
|
|
308
|
+
**Performance Impact:**
|
|
309
|
+
- Initial load: 2.5 MB → 0.3 MB (88% reduction)
|
|
310
|
+
- Page load time: 4.2s → 1.1s (74% faster)
|
|
311
|
+
|
|
312
|
+
#### Web Workers for Background Processing
|
|
313
|
+
```javascript
|
|
314
|
+
// Context7 Pattern: Offload heavy computation
|
|
315
|
+
// main.js
|
|
316
|
+
const worker = new Worker('/worker.js');
|
|
317
|
+
|
|
318
|
+
worker.postMessage({ data: largeDataset });
|
|
319
|
+
|
|
320
|
+
worker.onmessage = (event) => {
|
|
321
|
+
console.log('Result:', event.data);
|
|
322
|
+
updateUI(event.data);
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
// worker.js
|
|
326
|
+
self.onmessage = (event) => {
|
|
327
|
+
const result = processData(event.data);
|
|
328
|
+
self.postMessage(result);
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
function processData(data) {
|
|
332
|
+
// Heavy computation (doesn't block main thread)
|
|
333
|
+
return data.map(item => expensiveOperation(item));
|
|
334
|
+
}
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Benefits:**
|
|
338
|
+
- Main thread remains responsive
|
|
339
|
+
- Parallel processing
|
|
340
|
+
- No UI freezing during computation
|
|
341
|
+
|
|
342
|
+
**Performance Impact:**
|
|
343
|
+
- Without worker: UI frozen for 3 seconds
|
|
344
|
+
- With worker: UI responsive (computation in background)
|
|
345
|
+
|
|
346
|
+
#### Performance API for Measurement
|
|
347
|
+
```javascript
|
|
348
|
+
// Context7 Pattern: Measure custom timing
|
|
349
|
+
performance.mark('process-start');
|
|
350
|
+
|
|
351
|
+
// ... expensive operation
|
|
352
|
+
await processLargeDataset();
|
|
353
|
+
|
|
354
|
+
performance.mark('process-end');
|
|
355
|
+
performance.measure('process', 'process-start', 'process-end');
|
|
356
|
+
|
|
357
|
+
const measure = performance.getEntriesByName('process')[0];
|
|
358
|
+
console.log('Process took:', measure.duration, 'ms');
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**Navigation Timing:**
|
|
362
|
+
```javascript
|
|
363
|
+
// Measure page load performance
|
|
364
|
+
const perfData = performance.getEntriesByType('navigation')[0];
|
|
365
|
+
console.log('DOM Load:', perfData.domContentLoadedEventEnd);
|
|
366
|
+
console.log('Full Load:', perfData.loadEventEnd);
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### 4. Responsive Images Optimization
|
|
370
|
+
|
|
371
|
+
**Pattern from Context7:**
|
|
372
|
+
|
|
373
|
+
```html
|
|
374
|
+
<!-- Picture element with WebP -->
|
|
375
|
+
<picture>
|
|
376
|
+
<source
|
|
377
|
+
media="(min-width: 1200px)"
|
|
378
|
+
srcset="/images/hero-large.webp"
|
|
379
|
+
type="image/webp"
|
|
380
|
+
/>
|
|
381
|
+
<source
|
|
382
|
+
media="(min-width: 768px)"
|
|
383
|
+
srcset="/images/hero-medium.webp"
|
|
384
|
+
type="image/webp"
|
|
385
|
+
/>
|
|
386
|
+
<img
|
|
387
|
+
src="/images/hero-small.jpg"
|
|
388
|
+
alt="Hero image"
|
|
389
|
+
loading="lazy"
|
|
390
|
+
width="800"
|
|
391
|
+
height="600"
|
|
392
|
+
/>
|
|
393
|
+
</picture>
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
**Benefits:**
|
|
397
|
+
- Modern format (WebP): 30-50% smaller than JPEG
|
|
398
|
+
- Responsive sizing: Correct image for device
|
|
399
|
+
- Lazy loading: Deferred loading for below-fold images
|
|
400
|
+
|
|
401
|
+
**Performance Impact:**
|
|
402
|
+
- Image size: 1.2 MB → 0.4 MB (67% reduction)
|
|
403
|
+
- Mobile bandwidth savings: 80%
|
|
404
|
+
|
|
405
|
+
#### Prioritize LCP Image
|
|
406
|
+
```html
|
|
407
|
+
<!-- LCP image should NOT be lazy loaded -->
|
|
408
|
+
<img
|
|
409
|
+
src="hero.jpg"
|
|
410
|
+
alt="Main promotional image"
|
|
411
|
+
fetchpriority="high"
|
|
412
|
+
>
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
**Benefits:**
|
|
416
|
+
- Prioritizes critical image loading
|
|
417
|
+
- Improves Largest Contentful Paint (LCP)
|
|
418
|
+
- Better Core Web Vitals score
|
|
419
|
+
|
|
420
|
+
### 5. Render-Blocking Resource Management
|
|
421
|
+
|
|
422
|
+
**Pattern from Context7:**
|
|
423
|
+
|
|
424
|
+
#### Mark Render-Blocking Resources
|
|
425
|
+
```html
|
|
426
|
+
<!-- Explicitly mark render-blocking (Chrome 105+) -->
|
|
427
|
+
<link rel="stylesheet" href="critical.css" blocking="render">
|
|
428
|
+
<script src="important.js" blocking="render"></script>
|
|
429
|
+
<style blocking="render">
|
|
430
|
+
body { background-color: lightblue; }
|
|
431
|
+
</style>
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
#### Mark Non-Render-Blocking
|
|
435
|
+
```html
|
|
436
|
+
<!-- Make CSS non-render-blocking with media query -->
|
|
437
|
+
<link rel="stylesheet" href="print.css" media="print">
|
|
438
|
+
<link rel="stylesheet" href="large-screens.css" media="(min-width: 1200px)">
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
**Benefits:**
|
|
442
|
+
- Explicit control over rendering
|
|
443
|
+
- Parser continues processing
|
|
444
|
+
- Faster initial rendering
|
|
445
|
+
|
|
446
|
+
## Optimization Output
|
|
447
|
+
|
|
448
|
+
```
|
|
449
|
+
🎨 JavaScript/Frontend Performance Optimization Analysis
|
|
450
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
451
|
+
|
|
452
|
+
Project: React SPA
|
|
453
|
+
Bundler: Webpack 5.89.0
|
|
454
|
+
Target: Modern Browsers (ES2020)
|
|
455
|
+
|
|
456
|
+
📦 Bundle Analysis
|
|
457
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
458
|
+
|
|
459
|
+
Current Bundle Size: 850 KB (uncompressed)
|
|
460
|
+
Gzipped: 280 KB
|
|
461
|
+
Target: < 200 KB (gzipped)
|
|
462
|
+
|
|
463
|
+
⚠️ Large bundle detected
|
|
464
|
+
|
|
465
|
+
Top Contributors:
|
|
466
|
+
1. moment.js - 72 KB (use date-fns: 92% smaller)
|
|
467
|
+
2. lodash - 68 KB (use lodash-es: tree-shakeable)
|
|
468
|
+
3. unused exports - 54 KB (enable tree-shaking)
|
|
469
|
+
4. duplicate code - 38 KB (deduplicate dependencies)
|
|
470
|
+
|
|
471
|
+
💡 Recommendations:
|
|
472
|
+
1. Replace moment with date-fns → Save 66 KB
|
|
473
|
+
2. Replace lodash with lodash-es → Save 50 KB
|
|
474
|
+
3. Enable tree-shaking (sideEffects: false) → Save 54 KB
|
|
475
|
+
4. Code splitting for routes → Initial: 150 KB (82% reduction)
|
|
476
|
+
|
|
477
|
+
Expected Impact: 850 KB → 150 KB initial (82% reduction)
|
|
478
|
+
|
|
479
|
+
🚀 Critical Rendering Path
|
|
480
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
481
|
+
|
|
482
|
+
❌ Render-blocking resources detected
|
|
483
|
+
|
|
484
|
+
CSS:
|
|
485
|
+
- /styles/main.css (42 KB, 320ms)
|
|
486
|
+
- /styles/fonts.css (18 KB, 180ms)
|
|
487
|
+
|
|
488
|
+
JavaScript:
|
|
489
|
+
- /js/vendor.js (180 KB, 890ms)
|
|
490
|
+
- /js/app.js (120 KB, 640ms)
|
|
491
|
+
|
|
492
|
+
💡 Recommendations:
|
|
493
|
+
1. Inline critical CSS → Save 500ms (FCP improvement)
|
|
494
|
+
2. Defer non-critical JS → Save 1,530ms
|
|
495
|
+
3. Preload critical resources → Save 200ms
|
|
496
|
+
|
|
497
|
+
Expected Impact:
|
|
498
|
+
- FCP: 1.8s → 0.6s (67% faster)
|
|
499
|
+
- LCP: 2.4s → 1.1s (54% faster)
|
|
500
|
+
|
|
501
|
+
⚡ Runtime Performance
|
|
502
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
503
|
+
|
|
504
|
+
⚠️ Performance issues detected
|
|
505
|
+
|
|
506
|
+
1. Scroll handler without debounce
|
|
507
|
+
File: components/Navbar.js:42
|
|
508
|
+
Impact: 500 calls/second (blocks event loop)
|
|
509
|
+
💡 Add debouncing (200ms)
|
|
510
|
+
|
|
511
|
+
2. Heavy computation in main thread
|
|
512
|
+
File: utils/dataProcessor.js:156
|
|
513
|
+
Time: 2.3 seconds (UI frozen)
|
|
514
|
+
💡 Move to Web Worker
|
|
515
|
+
|
|
516
|
+
3. Large images not lazy loaded
|
|
517
|
+
Count: 15 images (8 MB total)
|
|
518
|
+
💡 Add lazy loading attribute
|
|
519
|
+
|
|
520
|
+
Expected Impact:
|
|
521
|
+
- Smooth scrolling (95% fewer calls)
|
|
522
|
+
- Responsive UI (no freezing)
|
|
523
|
+
- 88% faster initial load (lazy loading)
|
|
524
|
+
|
|
525
|
+
📊 Resource Loading
|
|
526
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
527
|
+
|
|
528
|
+
⚠️ Suboptimal resource loading
|
|
529
|
+
|
|
530
|
+
Issues:
|
|
531
|
+
1. Missing preconnect for API (api.example.com)
|
|
532
|
+
2. Missing preload for LCP image
|
|
533
|
+
3. No resource hints for external fonts
|
|
534
|
+
|
|
535
|
+
💡 Recommendations:
|
|
536
|
+
1. Add preconnect for API → Save 300ms
|
|
537
|
+
2. Add preload for hero image → Save 200ms (LCP)
|
|
538
|
+
3. Add dns-prefetch for fonts → Save 100ms
|
|
539
|
+
|
|
540
|
+
Expected Impact: 600ms faster resource loading
|
|
541
|
+
|
|
542
|
+
Summary
|
|
543
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
544
|
+
|
|
545
|
+
Total Optimizations: 14
|
|
546
|
+
|
|
547
|
+
🔴 Critical: 2 (bundle size, render-blocking)
|
|
548
|
+
🟡 High Impact: 6 (lazy loading, debouncing, workers)
|
|
549
|
+
🟢 Medium Impact: 6 (resource hints, code splitting)
|
|
550
|
+
|
|
551
|
+
Estimated Performance Improvement:
|
|
552
|
+
- Bundle size: -82% (850 KB → 150 KB initial)
|
|
553
|
+
- FCP: -67% (1.8s → 0.6s)
|
|
554
|
+
- LCP: -54% (2.4s → 1.1s)
|
|
555
|
+
- TTI: -72% (3.2s → 0.9s)
|
|
556
|
+
|
|
557
|
+
Core Web Vitals:
|
|
558
|
+
- LCP: 2.4s → 1.1s (✅ Good: < 2.5s)
|
|
559
|
+
- FID: 80ms → 20ms (✅ Good: < 100ms)
|
|
560
|
+
- CLS: 0.15 → 0.05 (✅ Good: < 0.1)
|
|
561
|
+
|
|
562
|
+
Run with --apply to implement optimizations
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
## Implementation
|
|
566
|
+
|
|
567
|
+
This command uses the **@javascript-frontend-engineer** agent:
|
|
568
|
+
|
|
569
|
+
1. Query Context7 for JavaScript optimization patterns
|
|
570
|
+
2. Analyze bundle composition (Webpack Bundle Analyzer)
|
|
571
|
+
3. Check critical rendering path (render-blocking resources)
|
|
572
|
+
4. Detect performance anti-patterns (missing debouncing, lazy loading)
|
|
573
|
+
5. Validate resource loading (preload, preconnect, prefetch)
|
|
574
|
+
6. Generate optimization recommendations
|
|
575
|
+
7. Optionally apply automated fixes
|
|
576
|
+
|
|
577
|
+
## Best Practices Applied
|
|
578
|
+
|
|
579
|
+
Based on Context7 documentation from `/websites/web_dev_learn`:
|
|
580
|
+
|
|
581
|
+
1. **Code Splitting** - Reduce initial bundle size (82%)
|
|
582
|
+
2. **Tree Shaking** - Remove unused exports (20-40%)
|
|
583
|
+
3. **Debouncing** - Optimize event handlers (95% fewer calls)
|
|
584
|
+
4. **Lazy Loading** - Load resources on demand (88% savings)
|
|
585
|
+
5. **Web Workers** - Background processing (non-blocking)
|
|
586
|
+
6. **Resource Hints** - Faster resource loading (600ms savings)
|
|
587
|
+
7. **Critical CSS** - Eliminate render-blocking (67% faster FCP)
|
|
588
|
+
|
|
589
|
+
## Related Commands
|
|
590
|
+
|
|
591
|
+
- `/react:optimize` - React-specific optimization
|
|
592
|
+
- `/nextjs:optimize` - Next.js optimization
|
|
593
|
+
- `/bundle:analyze` - Bundle analysis
|
|
594
|
+
|
|
595
|
+
## Troubleshooting
|
|
596
|
+
|
|
597
|
+
### Large Bundle Size
|
|
598
|
+
- Enable tree-shaking (package.json: sideEffects: false)
|
|
599
|
+
- Use dynamic imports for code splitting
|
|
600
|
+
- Replace heavy libraries with lighter alternatives
|
|
601
|
+
|
|
602
|
+
### Slow First Paint
|
|
603
|
+
- Inline critical CSS
|
|
604
|
+
- Defer non-critical JavaScript
|
|
605
|
+
- Preload critical resources
|
|
606
|
+
|
|
607
|
+
### Blocked Event Loop
|
|
608
|
+
- Add debouncing to scroll/resize handlers
|
|
609
|
+
- Move heavy computation to Web Workers
|
|
610
|
+
- Use requestAnimationFrame for animations
|
|
611
|
+
|
|
612
|
+
## Installation
|
|
613
|
+
|
|
614
|
+
```bash
|
|
615
|
+
# Bundle analyzers
|
|
616
|
+
npm install --save-dev webpack-bundle-analyzer
|
|
617
|
+
npm install --save-dev rollup-plugin-visualizer
|
|
618
|
+
|
|
619
|
+
# Performance utilities
|
|
620
|
+
npm install --save-dev lighthouse
|
|
621
|
+
npm install --save-dev @bundle/cli
|
|
622
|
+
|
|
623
|
+
# Modern date library (replace moment)
|
|
624
|
+
npm install date-fns
|
|
625
|
+
|
|
626
|
+
# Tree-shakeable utilities (replace lodash)
|
|
627
|
+
npm install lodash-es
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
## Version History
|
|
631
|
+
|
|
632
|
+
- v2.0.0 - Initial Schema v2.0 release with Context7 integration
|
|
633
|
+
- Bundle optimization patterns
|
|
634
|
+
- Critical rendering path optimization
|
|
635
|
+
- Runtime performance best practices
|
|
636
|
+
|