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.
- package/README.md +399 -529
- package/bin/autopm.js +2 -0
- package/bin/commands/plugin.js +395 -0
- package/bin/commands/team.js +184 -10
- package/install/install.js +223 -4
- package/lib/plugins/PluginManager.js +1328 -0
- package/lib/plugins/PluginManager.old.js +400 -0
- package/package.json +5 -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/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/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/gemini-api-expert.md +880 -0
- package/packages/plugin-cloud/agents/openai-python-expert.md +1087 -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/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/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/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/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/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/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/bigquery-expert.md +24 -15
- package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/cosmosdb-expert.md +22 -15
- package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/mongodb-expert.md +24 -15
- package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/postgresql-expert.md +23 -15
- package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/redis-expert.md +29 -7
- 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/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/github-operations-specialist.md +1 -1
- 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/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/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/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/e2e-test-engineer.md +219 -0
- package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/react-frontend-engineer.md +176 -0
- package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/tailwindcss-expert.md +251 -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/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/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/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/github/workflow-create.md +42 -0
- package/packages/plugin-pm/package.json +57 -0
- package/packages/plugin-pm/plugin.json +503 -0
- package/packages/plugin-testing/README.md +401 -0
- package/{autopm/.claude/agents/testing → packages/plugin-testing/agents}/frontend-testing-engineer.md +373 -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
- package/scripts/publish-plugins.sh +166 -0
- package/autopm/.claude/agents/data/airflow-orchestration-expert.md +0 -52
- package/autopm/.claude/agents/data/kedro-pipeline-expert.md +0 -50
- package/autopm/.claude/agents/integration/message-queue-engineer.md +0 -794
- package/autopm/.claude/commands/ai/langgraph-workflow.md +0 -65
- package/autopm/.claude/commands/ai/openai-chat.md +0 -65
- package/autopm/.claude/commands/playwright/test-scaffold.md +0 -38
- package/autopm/.claude/commands/python/api-scaffold.md +0 -50
- package/autopm/.claude/commands/python/docs-query.md +0 -48
- package/autopm/.claude/commands/testing/prime.md +0 -314
- package/autopm/.claude/commands/testing/run.md +0 -125
- package/autopm/.claude/commands/ui/bootstrap-scaffold.md +0 -65
- package/autopm/.claude/rules/database-management-strategy.md +0 -17
- package/autopm/.claude/rules/database-pipeline.md +0 -94
- package/autopm/.claude/rules/ux-design-rules.md +0 -209
- package/autopm/.claude/rules/visual-testing.md +0 -223
- package/autopm/.claude/scripts/azure/README.md +0 -192
- package/autopm/.claude/scripts/azure/active-work.js +0 -524
- package/autopm/.claude/scripts/azure/active-work.sh +0 -20
- package/autopm/.claude/scripts/azure/blocked.js +0 -520
- package/autopm/.claude/scripts/azure/blocked.sh +0 -20
- package/autopm/.claude/scripts/azure/daily.js +0 -533
- package/autopm/.claude/scripts/azure/daily.sh +0 -20
- package/autopm/.claude/scripts/azure/dashboard.js +0 -970
- package/autopm/.claude/scripts/azure/dashboard.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-list.js +0 -254
- package/autopm/.claude/scripts/azure/feature-list.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-show.js +0 -7
- package/autopm/.claude/scripts/azure/feature-show.sh +0 -20
- package/autopm/.claude/scripts/azure/feature-status.js +0 -604
- package/autopm/.claude/scripts/azure/feature-status.sh +0 -20
- package/autopm/.claude/scripts/azure/help.js +0 -342
- package/autopm/.claude/scripts/azure/help.sh +0 -20
- package/autopm/.claude/scripts/azure/next-task.js +0 -508
- package/autopm/.claude/scripts/azure/next-task.sh +0 -20
- package/autopm/.claude/scripts/azure/search.js +0 -469
- package/autopm/.claude/scripts/azure/search.sh +0 -20
- package/autopm/.claude/scripts/azure/setup.js +0 -745
- package/autopm/.claude/scripts/azure/setup.sh +0 -20
- package/autopm/.claude/scripts/azure/sprint-report.js +0 -1012
- package/autopm/.claude/scripts/azure/sprint-report.sh +0 -20
- package/autopm/.claude/scripts/azure/sync.js +0 -563
- package/autopm/.claude/scripts/azure/sync.sh +0 -20
- package/autopm/.claude/scripts/azure/us-list.js +0 -210
- package/autopm/.claude/scripts/azure/us-list.sh +0 -20
- package/autopm/.claude/scripts/azure/us-status.js +0 -238
- package/autopm/.claude/scripts/azure/us-status.sh +0 -20
- package/autopm/.claude/scripts/azure/validate.js +0 -626
- package/autopm/.claude/scripts/azure/validate.sh +0 -20
- package/autopm/.claude/scripts/azure/wrapper-template.sh +0 -20
- package/autopm/.claude/scripts/github/dependency-tracker.js +0 -554
- package/autopm/.claude/scripts/github/dependency-validator.js +0 -545
- package/autopm/.claude/scripts/github/dependency-visualizer.js +0 -477
- package/bin/node/azure-feature-show.js +0 -7
- /package/{autopm/.claude/agents/cloud → packages/plugin-ai/agents}/gemini-api-expert.md +0 -0
- /package/{autopm/.claude/agents/data → packages/plugin-ai/agents}/langgraph-workflow-expert.md +0 -0
- /package/{autopm/.claude/agents/cloud → packages/plugin-ai/agents}/openai-python-expert.md +0 -0
- /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/README.md +0 -0
- /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/aws-cloud-architect.md +0 -0
- /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/azure-cloud-architect.md +0 -0
- /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/gcp-cloud-architect.md +0 -0
- /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/gcp-cloud-functions-engineer.md +0 -0
- /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/kubernetes-orchestrator.md +0 -0
- /package/{autopm/.claude/agents/cloud → packages/plugin-cloud/agents}/terraform-infrastructure-expert.md +0 -0
- /package/{autopm/.claude/commands/cloud → packages/plugin-cloud/commands}/infra-deploy.md +0 -0
- /package/{autopm/.claude/commands/kubernetes/deploy.md → packages/plugin-cloud/commands/k8s-deploy.md} +0 -0
- /package/{autopm/.claude/commands/infrastructure → packages/plugin-cloud/commands}/ssh-security.md +0 -0
- /package/{autopm/.claude/commands/infrastructure → packages/plugin-cloud/commands}/traefik-setup.md +0 -0
- /package/{autopm/.claude → packages/plugin-cloud}/rules/infrastructure-pipeline.md +0 -0
- /package/{autopm/.claude → packages/plugin-core}/agents/core/agent-manager.md +0 -0
- /package/{autopm/.claude → packages/plugin-core}/agents/core/code-analyzer.md +0 -0
- /package/{autopm/.claude → packages/plugin-core}/agents/core/file-analyzer.md +0 -0
- /package/{autopm/.claude → packages/plugin-core}/agents/core/test-runner.md +0 -0
- /package/{autopm/.claude → packages/plugin-core}/rules/ai-integration-patterns.md +0 -0
- /package/{autopm/.claude → packages/plugin-core}/rules/performance-guidelines.md +0 -0
- /package/{autopm/.claude/agents/databases → packages/plugin-databases/agents}/README.md +0 -0
- /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/README.md +0 -0
- /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/azure-devops-specialist.md +0 -0
- /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/docker-containerization-expert.md +0 -0
- /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/mcp-context-manager.md +0 -0
- /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/observability-engineer.md +0 -0
- /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/ssh-operations-expert.md +0 -0
- /package/{autopm/.claude/agents/devops → packages/plugin-devops/agents}/traefik-proxy-expert.md +0 -0
- /package/{autopm/.claude/commands/github → packages/plugin-devops/commands}/workflow-create.md +0 -0
- /package/{autopm/.claude → packages/plugin-devops}/rules/ci-cd-kubernetes-strategy.md +0 -0
- /package/{autopm/.claude → packages/plugin-devops}/rules/devops-troubleshooting-playbook.md +0 -0
- /package/{autopm/.claude → packages/plugin-devops}/rules/docker-first-development.md +0 -0
- /package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/README.md +0 -0
- /package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/nats-messaging-expert.md +0 -0
- /package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/react-ui-expert.md +0 -0
- /package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/ux-design-expert.md +0 -0
- /package/{autopm/.claude/commands/react → packages/plugin-frameworks/commands}/app-scaffold.md +0 -0
- /package/{autopm/.claude/commands/ui → packages/plugin-frameworks/commands}/tailwind-system.md +0 -0
- /package/{autopm/.claude → packages/plugin-frameworks}/rules/ui-development-standards.md +0 -0
- /package/{autopm/.claude → packages/plugin-frameworks}/rules/ui-framework-rules.md +0 -0
- /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/README.md +0 -0
- /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/bash-scripting-expert.md +0 -0
- /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/javascript-frontend-engineer.md +0 -0
- /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/nodejs-backend-engineer.md +0 -0
- /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/python-backend-engineer.md +0 -0
- /package/{autopm/.claude/agents/languages → packages/plugin-languages/agents}/python-backend-expert.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/COMMANDS.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/COMMAND_MAPPING.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/INTEGRATION_FIX.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/README.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/active-work.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/aliases.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/blocked-items.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/clean.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/docs-query.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-decompose.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-list.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-new.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-show.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/feature-start.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/fix-integration-example.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/help.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/import-us.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/init.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/next-task.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/search.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/sprint-status.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/standup.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/sync-all.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-analyze.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-close.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-edit.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-list.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-new.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-reopen.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-show.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-start.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-status.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/task-sync.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-edit.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-list.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-new.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-parse.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-show.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/us-status.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/validate.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/commands/azure/work-item-sync.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/blocked.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/clean.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/context-create.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/context-prime.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/context-update.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/context.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-close.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-decompose.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-edit.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-list.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-merge.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-oneshot.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-refresh.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-show.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-split.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-start.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-status.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-sync-modular.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-sync-original.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/epic-sync.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/help.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/import.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/in-progress.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/init.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-analyze.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-close.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-edit.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-reopen.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-show.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-start.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-status.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/issue-sync.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/next.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-edit.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-list.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-new.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-parse.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/prd-status.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/search.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/standup.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/status.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/sync.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/test-reference-update.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/validate.md +0 -0
- /package/{autopm/.claude/commands/pm → packages/plugin-pm/commands}/what-next.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/analytics.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/blocked.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/blocked.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/clean.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/context-create.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/context-prime.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/context-update.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/context.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-close.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-edit.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-list.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-list.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-show.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-show.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-split.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-start/epic-start.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-start/epic-start.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-status.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-status.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/README.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/create-epic-issue.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/create-task-issues.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/update-epic-file.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync/update-references.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/epic-sync.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/help.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/help.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/in-progress.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/in-progress.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/init.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/init.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-close.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-edit.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-show.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-start.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/format-comment.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/gather-updates.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/post-comment.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/preflight-validation.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/issue-sync/update-frontmatter.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/lib/README.md +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/lib/epic-discovery.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/lib/logger.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/next.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/next.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/optimize.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/pr-create.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/pr-list.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-list.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-list.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-new.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-parse.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-status.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/prd-status.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/release.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/search.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/search.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/standup.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/standup.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/status.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/status.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/sync-batch.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/sync.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/template-list.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/template-new.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/validate.js +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/validate.sh +0 -0
- /package/{autopm/.claude → packages/plugin-pm}/scripts/pm/what-next.js +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# SSH key generation and setup with best practices
|
|
3
|
+
# Usage: ./ssh-key-setup.sh [key-name] [email]
|
|
4
|
+
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
KEY_NAME="${1:-id_ed25519}"
|
|
8
|
+
EMAIL="${2:-user@example.com}"
|
|
9
|
+
SSH_DIR="${HOME}/.ssh"
|
|
10
|
+
KEY_PATH="${SSH_DIR}/${KEY_NAME}"
|
|
11
|
+
|
|
12
|
+
echo "🔐 Setting up SSH key: ${KEY_NAME}..."
|
|
13
|
+
|
|
14
|
+
# Create .ssh directory if it doesn't exist
|
|
15
|
+
mkdir -p "${SSH_DIR}"
|
|
16
|
+
chmod 700 "${SSH_DIR}"
|
|
17
|
+
|
|
18
|
+
# Check if key already exists
|
|
19
|
+
if [ -f "${KEY_PATH}" ]; then
|
|
20
|
+
echo "⚠️ Key already exists: ${KEY_PATH}"
|
|
21
|
+
read -p "Overwrite? (y/N): " -n 1 -r
|
|
22
|
+
echo
|
|
23
|
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
24
|
+
echo "Aborted."
|
|
25
|
+
exit 1
|
|
26
|
+
fi
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
# Generate ED25519 key (recommended for security and performance)
|
|
30
|
+
echo "🔑 Generating ED25519 SSH key..."
|
|
31
|
+
ssh-keygen -t ed25519 -C "${EMAIL}" -f "${KEY_PATH}" -N ""
|
|
32
|
+
|
|
33
|
+
# Set proper permissions
|
|
34
|
+
chmod 600 "${KEY_PATH}"
|
|
35
|
+
chmod 644 "${KEY_PATH}.pub"
|
|
36
|
+
|
|
37
|
+
echo "✅ SSH key generated successfully"
|
|
38
|
+
echo ""
|
|
39
|
+
echo "📋 Public key:"
|
|
40
|
+
cat "${KEY_PATH}.pub"
|
|
41
|
+
|
|
42
|
+
# Add to SSH agent
|
|
43
|
+
echo ""
|
|
44
|
+
echo "🔧 Adding key to SSH agent..."
|
|
45
|
+
eval "$(ssh-agent -s)"
|
|
46
|
+
ssh-add "${KEY_PATH}"
|
|
47
|
+
|
|
48
|
+
# Create/update SSH config
|
|
49
|
+
CONFIG_FILE="${SSH_DIR}/config"
|
|
50
|
+
if [ ! -f "${CONFIG_FILE}" ]; then
|
|
51
|
+
echo "📝 Creating SSH config file..."
|
|
52
|
+
cat > "${CONFIG_FILE}" <<EOF
|
|
53
|
+
# SSH Config
|
|
54
|
+
# Use this key by default
|
|
55
|
+
Host *
|
|
56
|
+
IdentityFile ${KEY_PATH}
|
|
57
|
+
AddKeysToAgent yes
|
|
58
|
+
UseKeychain yes
|
|
59
|
+
EOF
|
|
60
|
+
chmod 600 "${CONFIG_FILE}"
|
|
61
|
+
echo "✅ SSH config created: ${CONFIG_FILE}"
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
echo ""
|
|
65
|
+
echo "✅ SSH key setup complete!"
|
|
66
|
+
echo ""
|
|
67
|
+
echo "📋 Next steps:"
|
|
68
|
+
echo "1. Copy the public key above and add it to:"
|
|
69
|
+
echo " - GitHub: https://github.com/settings/keys"
|
|
70
|
+
echo " - GitLab: https://gitlab.com/-/profile/keys"
|
|
71
|
+
echo " - Your server's ~/.ssh/authorized_keys"
|
|
72
|
+
echo ""
|
|
73
|
+
echo "2. Test the connection:"
|
|
74
|
+
echo " ssh -T git@github.com"
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
# @claudeautopm/plugin-frameworks
|
|
2
|
+
|
|
3
|
+
Frontend and backend framework specialists for React, Next.js, Vue, Angular, and more.
|
|
4
|
+
|
|
5
|
+
**Version**: 2.0.0 | **Schema**: 2.0 | **Context7-Verified**: ✅
|
|
6
|
+
|
|
7
|
+
Complete frontend and UX framework plugin with Context7-verified React, Tailwind CSS, and Playwright patterns. Production-ready agents with up-to-date best practices from official documentation.
|
|
8
|
+
|
|
9
|
+
## 📦 Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Install the plugin package
|
|
13
|
+
npm install @claudeautopm/plugin-frameworks
|
|
14
|
+
|
|
15
|
+
# Or install globally
|
|
16
|
+
npm install -g @claudeautopm/plugin-frameworks
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Context7 Integration
|
|
20
|
+
|
|
21
|
+
This plugin uses Context7 MCP server to ensure all patterns follow the latest official documentation:
|
|
22
|
+
|
|
23
|
+
**Libraries Verified**:
|
|
24
|
+
- **React**: `/reactjs/react.dev` (2,404 snippets, trust 10.0)
|
|
25
|
+
- **Tailwind CSS**: `/tailwindlabs/tailwindcss.com` (1,769 snippets, trust 10.0)
|
|
26
|
+
- **Playwright**: `/microsoft/playwright` (2,103 snippets, trust 9.9)
|
|
27
|
+
|
|
28
|
+
All code examples, patterns, and best practices are verified against current official documentation to prevent outdated implementations.
|
|
29
|
+
|
|
30
|
+
## 🤖 Agents Included
|
|
31
|
+
|
|
32
|
+
### Frontend Frameworks
|
|
33
|
+
- **react-frontend-engineer** - React application development
|
|
34
|
+
- React 18+ features (Suspense, Concurrent Mode)
|
|
35
|
+
- Hooks and custom hook patterns
|
|
36
|
+
- State management (Context, Redux, Zustand)
|
|
37
|
+
- Performance optimization
|
|
38
|
+
|
|
39
|
+
- **react-ui-expert** - React UI component development
|
|
40
|
+
- Component architecture and patterns
|
|
41
|
+
- Props and composition patterns
|
|
42
|
+
- Accessibility (a11y) best practices
|
|
43
|
+
- Component libraries integration
|
|
44
|
+
|
|
45
|
+
- **tailwindcss-expert** - Tailwind CSS styling
|
|
46
|
+
- Utility-first CSS approach
|
|
47
|
+
- Custom theme configuration
|
|
48
|
+
- Responsive design patterns
|
|
49
|
+
- Plugin development
|
|
50
|
+
|
|
51
|
+
### Design & UX
|
|
52
|
+
- **ux-design-expert** - User experience and interface design
|
|
53
|
+
- User research and personas
|
|
54
|
+
- Information architecture
|
|
55
|
+
- Wireframing and prototyping
|
|
56
|
+
- Usability testing
|
|
57
|
+
|
|
58
|
+
### Testing
|
|
59
|
+
- **e2e-test-engineer** - End-to-end testing
|
|
60
|
+
- Playwright and Cypress
|
|
61
|
+
- Visual regression testing
|
|
62
|
+
- Test automation strategies
|
|
63
|
+
- CI/CD integration
|
|
64
|
+
|
|
65
|
+
### Messaging & Communication
|
|
66
|
+
- **nats-messaging-expert** - NATS messaging system
|
|
67
|
+
- Pub/Sub patterns
|
|
68
|
+
- Request/Reply patterns
|
|
69
|
+
- JetStream persistence
|
|
70
|
+
- Microservices communication
|
|
71
|
+
|
|
72
|
+
## 💡 Usage
|
|
73
|
+
|
|
74
|
+
### In Claude Code
|
|
75
|
+
|
|
76
|
+
After installation, agents are available in your project:
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
<!-- CLAUDE.md -->
|
|
80
|
+
## Active Team Agents
|
|
81
|
+
|
|
82
|
+
<!-- Load framework agents -->
|
|
83
|
+
- @include .claude/agents/frameworks/react-frontend-engineer.md
|
|
84
|
+
- @include .claude/agents/frameworks/tailwindcss-expert.md
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Or use `autopm team load` to automatically include agents:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Load framework-focused team
|
|
91
|
+
autopm team load frameworks
|
|
92
|
+
|
|
93
|
+
# Or include frameworks in fullstack team
|
|
94
|
+
autopm team load fullstack
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### Direct Invocation
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Invoke agent directly from CLI
|
|
101
|
+
autopm agent invoke react-frontend-engineer "Build product catalog component"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 📋 Agent Capabilities
|
|
105
|
+
|
|
106
|
+
### React Development
|
|
107
|
+
- Modern React patterns and best practices
|
|
108
|
+
- State management strategies
|
|
109
|
+
- Performance optimization techniques
|
|
110
|
+
- Server-side rendering (SSR/SSG)
|
|
111
|
+
|
|
112
|
+
### UI/UX Design
|
|
113
|
+
- Responsive component design
|
|
114
|
+
- Accessibility compliance
|
|
115
|
+
- Design system implementation
|
|
116
|
+
- User-centered design principles
|
|
117
|
+
|
|
118
|
+
### Testing Strategies
|
|
119
|
+
- Component testing
|
|
120
|
+
- Integration testing
|
|
121
|
+
- E2E test automation
|
|
122
|
+
- Visual regression testing
|
|
123
|
+
|
|
124
|
+
### Styling Solutions
|
|
125
|
+
- Utility-first CSS with Tailwind
|
|
126
|
+
- CSS-in-JS approaches
|
|
127
|
+
- Responsive design
|
|
128
|
+
- Dark mode implementation
|
|
129
|
+
|
|
130
|
+
## 🔌 MCP Servers
|
|
131
|
+
|
|
132
|
+
This plugin works with the following MCP servers for enhanced capabilities:
|
|
133
|
+
|
|
134
|
+
- **react-docs** - React documentation and API references
|
|
135
|
+
- **vue-docs** - Vue.js documentation and patterns
|
|
136
|
+
|
|
137
|
+
Enable MCP servers:
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
autopm mcp enable react-docs
|
|
141
|
+
autopm mcp enable vue-docs
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## 🚀 Examples
|
|
145
|
+
|
|
146
|
+
### React Component Development
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
@react-frontend-engineer
|
|
150
|
+
|
|
151
|
+
Build a product listing component with:
|
|
152
|
+
|
|
153
|
+
Requirements:
|
|
154
|
+
- Fetch data from REST API
|
|
155
|
+
- Loading and error states
|
|
156
|
+
- Pagination support
|
|
157
|
+
- Filter and sort functionality
|
|
158
|
+
- Responsive grid layout
|
|
159
|
+
|
|
160
|
+
Include:
|
|
161
|
+
1. Component implementation with hooks
|
|
162
|
+
2. Custom hooks for data fetching
|
|
163
|
+
3. TypeScript types
|
|
164
|
+
4. Unit tests with React Testing Library
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Tailwind UI Implementation
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
@tailwindcss-expert
|
|
171
|
+
|
|
172
|
+
Create responsive navigation component:
|
|
173
|
+
|
|
174
|
+
Requirements:
|
|
175
|
+
- Mobile-first responsive design
|
|
176
|
+
- Dropdown menu support
|
|
177
|
+
- Dark mode toggle
|
|
178
|
+
- Accessible keyboard navigation
|
|
179
|
+
- Tailwind utility classes
|
|
180
|
+
|
|
181
|
+
Include:
|
|
182
|
+
1. Component markup
|
|
183
|
+
2. Tailwind configuration
|
|
184
|
+
3. Custom theme extensions
|
|
185
|
+
4. Accessibility features
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### UX Design System
|
|
189
|
+
|
|
190
|
+
```
|
|
191
|
+
@ux-design-expert
|
|
192
|
+
|
|
193
|
+
Design component library for SaaS dashboard:
|
|
194
|
+
|
|
195
|
+
Requirements:
|
|
196
|
+
- Consistent design language
|
|
197
|
+
- 8pt grid system
|
|
198
|
+
- Color palette and typography
|
|
199
|
+
- Component documentation
|
|
200
|
+
- Accessibility guidelines
|
|
201
|
+
|
|
202
|
+
Include:
|
|
203
|
+
1. Design tokens
|
|
204
|
+
2. Component specifications
|
|
205
|
+
3. Usage guidelines
|
|
206
|
+
4. Figma/Sketch templates
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### E2E Testing Suite
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
@e2e-test-engineer
|
|
213
|
+
|
|
214
|
+
Create E2E test suite for checkout flow:
|
|
215
|
+
|
|
216
|
+
Requirements:
|
|
217
|
+
- Playwright test framework
|
|
218
|
+
- Page Object Model pattern
|
|
219
|
+
- Cross-browser testing
|
|
220
|
+
- Visual regression tests
|
|
221
|
+
- CI/CD integration
|
|
222
|
+
|
|
223
|
+
Include:
|
|
224
|
+
1. Test specifications
|
|
225
|
+
2. Page object classes
|
|
226
|
+
3. Test data fixtures
|
|
227
|
+
4. GitHub Actions workflow
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### NATS Microservices
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
@nats-messaging-expert
|
|
234
|
+
|
|
235
|
+
Setup NATS messaging for microservices:
|
|
236
|
+
|
|
237
|
+
Requirements:
|
|
238
|
+
- Service discovery pattern
|
|
239
|
+
- Request/Reply for sync calls
|
|
240
|
+
- Pub/Sub for events
|
|
241
|
+
- JetStream for persistence
|
|
242
|
+
- Error handling and retry
|
|
243
|
+
|
|
244
|
+
Include:
|
|
245
|
+
1. NATS connection setup
|
|
246
|
+
2. Message patterns
|
|
247
|
+
3. Service implementations
|
|
248
|
+
4. Error handling strategies
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## 🔧 Configuration
|
|
252
|
+
|
|
253
|
+
### Environment Variables
|
|
254
|
+
|
|
255
|
+
Some agents benefit from environment variables:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# API endpoints
|
|
259
|
+
export REACT_APP_API_URL=https://api.example.com
|
|
260
|
+
|
|
261
|
+
# Feature flags
|
|
262
|
+
export REACT_APP_ENABLE_DARK_MODE=true
|
|
263
|
+
|
|
264
|
+
# NATS configuration
|
|
265
|
+
export NATS_URL=nats://localhost:4222
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
### Agent Customization
|
|
269
|
+
|
|
270
|
+
You can customize agent behavior in `.claude/config.yaml`:
|
|
271
|
+
|
|
272
|
+
```yaml
|
|
273
|
+
plugins:
|
|
274
|
+
frameworks:
|
|
275
|
+
react:
|
|
276
|
+
version: 18
|
|
277
|
+
prefer_typescript: true
|
|
278
|
+
state_management: zustand
|
|
279
|
+
tailwind:
|
|
280
|
+
prefix: tw-
|
|
281
|
+
important: true
|
|
282
|
+
testing:
|
|
283
|
+
framework: playwright
|
|
284
|
+
coverage_threshold: 80
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## 📖 Documentation
|
|
288
|
+
|
|
289
|
+
- [React Frontend Engineer Guide](./agents/react-frontend-engineer.md)
|
|
290
|
+
- [React UI Expert Guide](./agents/react-ui-expert.md)
|
|
291
|
+
- [Tailwind CSS Expert Guide](./agents/tailwindcss-expert.md)
|
|
292
|
+
- [UX Design Expert Guide](./agents/ux-design-expert.md)
|
|
293
|
+
- [E2E Test Engineer Guide](./agents/e2e-test-engineer.md)
|
|
294
|
+
- [NATS Messaging Expert Guide](./agents/nats-messaging-expert.md)
|
|
295
|
+
|
|
296
|
+
## 🤝 Contributing
|
|
297
|
+
|
|
298
|
+
Contributions are welcome! Please see [CONTRIBUTING.md](../../CONTRIBUTING.md) for guidelines.
|
|
299
|
+
|
|
300
|
+
## 📄 License
|
|
301
|
+
|
|
302
|
+
MIT © ClaudeAutoPM Team
|
|
303
|
+
|
|
304
|
+
## 🔗 Links
|
|
305
|
+
|
|
306
|
+
- [ClaudeAutoPM](https://github.com/rafeekpro/ClaudeAutoPM)
|
|
307
|
+
- [Plugin Documentation](https://github.com/rafeekpro/ClaudeAutoPM/blob/main/docs/PLUGIN-IMPLEMENTATION-PLAN.md)
|
|
308
|
+
- [npm Package](https://www.npmjs.com/package/@claudeautopm/plugin-frameworks)
|
|
309
|
+
- [Issues](https://github.com/rafeekpro/ClaudeAutoPM/issues)
|
package/{autopm/.claude/agents/frameworks → packages/plugin-frameworks/agents}/e2e-test-engineer.md
RENAMED
|
@@ -343,6 +343,225 @@ const metrics = await page.evaluate(() => performance.toJSON());
|
|
|
343
343
|
expect(metrics.timing.loadEventEnd).toBeLessThan(3000);
|
|
344
344
|
```
|
|
345
345
|
|
|
346
|
+
## Context7-Verified Playwright Patterns
|
|
347
|
+
|
|
348
|
+
**Source**: `/microsoft/playwright` (2,103 snippets, trust 9.9)
|
|
349
|
+
|
|
350
|
+
### ✅ CORRECT: Web-First Assertions (Auto-Retry)
|
|
351
|
+
|
|
352
|
+
Always use Playwright's web-first assertions that automatically retry:
|
|
353
|
+
|
|
354
|
+
```javascript
|
|
355
|
+
// ✅ Good: Automatically waits and retries until element is visible
|
|
356
|
+
await expect(page.getByText('welcome')).toBeVisible();
|
|
357
|
+
|
|
358
|
+
// ✅ Good: Automatically waits for text match
|
|
359
|
+
await expect(page.getByTestId('status')).toHaveText('Success');
|
|
360
|
+
|
|
361
|
+
// ❌ Bad: No waiting or retry - immediate check
|
|
362
|
+
expect(await page.getByText('welcome').isVisible()).toBe(true);
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### ✅ CORRECT: Mock Third-Party APIs
|
|
366
|
+
|
|
367
|
+
Intercept external dependencies for reliable, fast tests:
|
|
368
|
+
|
|
369
|
+
```javascript
|
|
370
|
+
await page.route('**/api/fetch_data_third_party_dependency', route => route.fulfill({
|
|
371
|
+
status: 200,
|
|
372
|
+
body: testData,
|
|
373
|
+
}));
|
|
374
|
+
await page.goto('https://example.com');
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### ✅ CORRECT: Test Isolation with beforeEach
|
|
378
|
+
|
|
379
|
+
Use `test.beforeEach` for setup ensuring each test starts fresh:
|
|
380
|
+
|
|
381
|
+
```javascript
|
|
382
|
+
import { test } from '@playwright/test';
|
|
383
|
+
|
|
384
|
+
test.beforeEach(async ({ page }) => {
|
|
385
|
+
// Runs before each test and signs in each page
|
|
386
|
+
await page.goto('https://github.com/login');
|
|
387
|
+
await page.getByLabel('Username or email address').fill('username');
|
|
388
|
+
await page.getByLabel('Password').fill('password');
|
|
389
|
+
await page.getByRole('button', { name: 'Sign in' }).click();
|
|
390
|
+
});
|
|
391
|
+
|
|
392
|
+
test('first', async ({ page }) => {
|
|
393
|
+
// page is signed in
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
test('second', async ({ page }) => {
|
|
397
|
+
// page is signed in (independent of first test)
|
|
398
|
+
});
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### ✅ CORRECT: Soft Assertions
|
|
402
|
+
|
|
403
|
+
Continue test execution after assertion failures to collect all errors:
|
|
404
|
+
|
|
405
|
+
```javascript
|
|
406
|
+
// Make a few checks that won't stop test when failed...
|
|
407
|
+
await expect.soft(page.getByTestId('status')).toHaveText('Success');
|
|
408
|
+
await expect.soft(page.getByTestId('count')).toHaveText('5');
|
|
409
|
+
|
|
410
|
+
// ... and continue the test to check more things
|
|
411
|
+
await page.getByRole('link', { name: 'next page' }).click();
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### ✅ CORRECT: User-Facing Locators (getByRole)
|
|
415
|
+
|
|
416
|
+
Prefer user-facing attributes over DOM structure:
|
|
417
|
+
|
|
418
|
+
```javascript
|
|
419
|
+
// ✅ Good: Uses accessible roles - resilient to DOM changes
|
|
420
|
+
page.getByRole('button', { name: 'submit' });
|
|
421
|
+
page.getByRole('link', { name: 'Get started' });
|
|
422
|
+
|
|
423
|
+
// ✅ Good: Filter within context
|
|
424
|
+
const product = page.getByRole('listitem').filter({ hasText: 'Product 2' });
|
|
425
|
+
|
|
426
|
+
// ❌ Avoid: Brittle CSS selectors tied to DOM structure
|
|
427
|
+
page.locator('#submit-button');
|
|
428
|
+
page.locator('.nav > li:nth-child(2) > a');
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### ✅ CORRECT: Parallel Test Execution
|
|
432
|
+
|
|
433
|
+
Configure tests to run in parallel for speed:
|
|
434
|
+
|
|
435
|
+
```javascript
|
|
436
|
+
import { test } from '@playwright/test';
|
|
437
|
+
|
|
438
|
+
// Run tests within this file in parallel
|
|
439
|
+
test.describe.configure({ mode: 'parallel' });
|
|
440
|
+
|
|
441
|
+
test('runs in parallel 1', async ({ page }) => { /* ... */ });
|
|
442
|
+
test('runs in parallel 2', async ({ page }) => { /* ... */ });
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
### ✅ CORRECT: Sharding for Multiple Machines
|
|
446
|
+
|
|
447
|
+
Distribute test suite across multiple CI machines:
|
|
448
|
+
|
|
449
|
+
```bash
|
|
450
|
+
# Machine 1 of 3
|
|
451
|
+
npx playwright test --shard=1/3
|
|
452
|
+
|
|
453
|
+
# Machine 2 of 3
|
|
454
|
+
npx playwright test --shard=2/3
|
|
455
|
+
|
|
456
|
+
# Machine 3 of 3
|
|
457
|
+
npx playwright test --shard=3/3
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### ✅ CORRECT: Debug Mode
|
|
461
|
+
|
|
462
|
+
Run tests in headed mode with Playwright Inspector:
|
|
463
|
+
|
|
464
|
+
```bash
|
|
465
|
+
# Debug all tests
|
|
466
|
+
npx playwright test --debug
|
|
467
|
+
|
|
468
|
+
# Debug specific test file
|
|
469
|
+
npx playwright test auth.spec.ts --debug
|
|
470
|
+
|
|
471
|
+
# Debug specific test by line number
|
|
472
|
+
npx playwright test auth.spec.ts:42 --debug
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
### ✅ CORRECT: Page Fixture for Test Isolation
|
|
476
|
+
|
|
477
|
+
Each test gets isolated `BrowserContext` through `page` fixture:
|
|
478
|
+
|
|
479
|
+
```python
|
|
480
|
+
# Python example
|
|
481
|
+
from playwright.sync_api import Page
|
|
482
|
+
|
|
483
|
+
def test_example_test(page: Page):
|
|
484
|
+
# "page" belongs to an isolated BrowserContext for this specific test
|
|
485
|
+
pass
|
|
486
|
+
|
|
487
|
+
def test_another_test(page: Page):
|
|
488
|
+
# "page" in this second test is completely isolated from the first test
|
|
489
|
+
pass
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
```javascript
|
|
493
|
+
// JavaScript/TypeScript example
|
|
494
|
+
test('first test', async ({ page }) => {
|
|
495
|
+
// page is isolated
|
|
496
|
+
});
|
|
497
|
+
|
|
498
|
+
test('second test', async ({ page }) => {
|
|
499
|
+
// completely different page instance
|
|
500
|
+
});
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
### ✅ CORRECT: Comprehensive Test Structure (C#)
|
|
504
|
+
|
|
505
|
+
Complete test examples for different frameworks:
|
|
506
|
+
|
|
507
|
+
```csharp
|
|
508
|
+
// NUnit example
|
|
509
|
+
using Microsoft.Playwright.NUnit;
|
|
510
|
+
|
|
511
|
+
[Parallelizable(ParallelScope.Self)]
|
|
512
|
+
[TestFixture]
|
|
513
|
+
public class ExampleTest : PageTest
|
|
514
|
+
{
|
|
515
|
+
[Test]
|
|
516
|
+
public async Task HasTitle()
|
|
517
|
+
{
|
|
518
|
+
await Page.GotoAsync("https://playwright.dev");
|
|
519
|
+
await Expect(Page).ToHaveTitleAsync(new Regex("Playwright"));
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
[Test]
|
|
523
|
+
public async Task GetStartedLink()
|
|
524
|
+
{
|
|
525
|
+
await Page.GotoAsync("https://playwright.dev");
|
|
526
|
+
await Page.GetByRole(AriaRole.Link, new() { Name = "Get started" }).ClickAsync();
|
|
527
|
+
await Expect(Page.GetByRole(AriaRole.Heading, new() { Name = "Installation" })).ToBeVisibleAsync();
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
### Performance Best Practices
|
|
533
|
+
|
|
534
|
+
1. **Mock External Dependencies**: Prevents flakiness and speeds up tests
|
|
535
|
+
2. **Use Auto-Waiting**: Playwright waits automatically before actions
|
|
536
|
+
3. **Parallel Execution**: Run tests concurrently where possible
|
|
537
|
+
4. **Test Isolation**: Each test should be independent (use beforeEach)
|
|
538
|
+
5. **Sharding**: Distribute tests across multiple CI machines
|
|
539
|
+
6. **Soft Assertions**: Collect all failures in a single test run
|
|
540
|
+
7. **User-Facing Locators**: More resilient to UI changes
|
|
541
|
+
|
|
542
|
+
### Anti-Patterns to Avoid
|
|
543
|
+
|
|
544
|
+
```javascript
|
|
545
|
+
// ❌ Don't use manual isVisible() checks
|
|
546
|
+
expect(await page.getByText('welcome').isVisible()).toBe(true);
|
|
547
|
+
|
|
548
|
+
// ✅ Use web-first assertions instead
|
|
549
|
+
await expect(page.getByText('welcome')).toBeVisible();
|
|
550
|
+
|
|
551
|
+
// ❌ Don't use brittle CSS selectors
|
|
552
|
+
page.locator('#submit');
|
|
553
|
+
|
|
554
|
+
// ✅ Use accessible roles
|
|
555
|
+
page.getByRole('button', { name: 'Submit' });
|
|
556
|
+
|
|
557
|
+
// ❌ Don't use fixed delays
|
|
558
|
+
await page.waitForTimeout(5000);
|
|
559
|
+
|
|
560
|
+
// ✅ Use smart waits
|
|
561
|
+
await page.waitForSelector('.loaded');
|
|
562
|
+
await expect(page.getByTestId('status')).toHaveText('Ready');
|
|
563
|
+
```
|
|
564
|
+
|
|
346
565
|
## Self-Verification Protocol
|
|
347
566
|
|
|
348
567
|
Before delivering any solution, verify:
|