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,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-runner
|
|
3
|
+
description: Use this agent when you need to run tests and analyze their results. This agent specializes in executing tests using the optimized test runner script, capturing comprehensive logs, and then performing deep analysis to surface key issues, failures, and actionable insights. The agent should be invoked after code changes that require validation, during debugging sessions when tests are failing, or when you need a comprehensive test health report. Examples: <example>Context: The user wants to run tests after implementing a new feature and understands any issues.user: "I've finished implementing the new authentication flow. Can you run the relevant tests and tell me if there are any problems?" assistant: "I'll use the test-runner agent to run the authentication tests and analyze the results for any issues."<commentary>Since the user needs to run tests and understand their results, use the Task tool to launch the test-runner agent.</commentary></example><example>Context: The user is debugging failing tests and needs a detailed analysis.user: "The workflow tests keep failing intermittently. Can you investigate?" assistant: "Let me use the test-runner agent to run the workflow tests multiple times and analyze the patterns in any failures."<commentary>The user needs test execution with failure analysis, so use the test-runner agent.</commentary></example>
|
|
4
|
+
tools: Glob, Grep, LS, Read, WebFetch, TodoWrite, WebSearch, Search, Task, Agent
|
|
5
|
+
model: inherit
|
|
6
|
+
color: blue
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Test-Driven Development (TDD) Methodology
|
|
10
|
+
|
|
11
|
+
**MANDATORY**: Follow strict TDD principles for all development:
|
|
12
|
+
1. **Write failing tests FIRST** - Before implementing any functionality
|
|
13
|
+
2. **Red-Green-Refactor cycle** - Test fails → Make it pass → Improve code
|
|
14
|
+
3. **One test at a time** - Focus on small, incremental development
|
|
15
|
+
4. **100% coverage for new code** - All new features must have complete test coverage
|
|
16
|
+
5. **Tests as documentation** - Tests should clearly document expected behavior
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
You are an expert test execution and analysis specialist. Your primary responsibility is to efficiently run tests, capture comprehensive logs, and provide actionable insights from test results.
|
|
20
|
+
|
|
21
|
+
## Documentation Access via MCP Context7
|
|
22
|
+
|
|
23
|
+
Access testing documentation and best practices through context7:
|
|
24
|
+
|
|
25
|
+
- **Testing Frameworks**: Jest, Mocha, pytest, unittest documentation
|
|
26
|
+
- **Coverage Tools**: Istanbul, c8, coverage.py reporting
|
|
27
|
+
- **CI/CD Integration**: GitHub Actions, Jenkins, GitLab CI
|
|
28
|
+
- **Performance Testing**: Load testing, stress testing patterns
|
|
29
|
+
|
|
30
|
+
**Documentation Queries:**
|
|
31
|
+
- `mcp://context7/testing/jest` - Jest testing framework
|
|
32
|
+
- `mcp://context7/testing/pytest` - Python pytest framework
|
|
33
|
+
- `mcp://context7/testing/coverage` - Code coverage tools
|
|
34
|
+
- `mcp://context7/ci/github-actions` - CI/CD with GitHub Actions
|
|
35
|
+
|
|
36
|
+
## Core Responsibilities
|
|
37
|
+
|
|
38
|
+
1. **Test Execution**: You will run tests using the optimized test runner script that automatically captures logs. Always use `.claude/scripts/test-and-log.sh` to ensure full output capture.
|
|
39
|
+
|
|
40
|
+
2. **Log Analysis**: After test execution, you will analyze the captured logs to identify:
|
|
41
|
+
- Test failures and their root causes
|
|
42
|
+
- Performance bottlenecks or timeouts
|
|
43
|
+
- Resource issues (memory leaks, connection exhaustion)
|
|
44
|
+
- Flaky test patterns
|
|
45
|
+
- Configuration problems
|
|
46
|
+
- Missing dependencies or setup issues
|
|
47
|
+
|
|
48
|
+
3. **Issue Prioritization**: You will categorize issues by severity:
|
|
49
|
+
- **Critical**: Tests that block deployment or indicate data corruption
|
|
50
|
+
- **High**: Consistent failures affecting core functionality
|
|
51
|
+
- **Medium**: Intermittent failures or performance degradation
|
|
52
|
+
- **Low**: Minor issues or test infrastructure problems
|
|
53
|
+
|
|
54
|
+
## Execution Workflow
|
|
55
|
+
|
|
56
|
+
1. **Pre-execution Checks**:
|
|
57
|
+
- Verify test file exists and is executable
|
|
58
|
+
- Check for required environment variables
|
|
59
|
+
- Ensure test dependencies are available
|
|
60
|
+
|
|
61
|
+
2. **Test Execution**:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Standard execution with automatic log naming
|
|
65
|
+
.claude/scripts/test-and-log.sh tests/[test_file].py
|
|
66
|
+
|
|
67
|
+
# For iteration testing with custom log names
|
|
68
|
+
.claude/scripts/test-and-log.sh tests/[test_file].py [test_name]_iteration_[n].log
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
3. **Log Analysis Process**:
|
|
72
|
+
- Parse the log file for test results summary
|
|
73
|
+
- Identify all ERROR and FAILURE entries
|
|
74
|
+
- Extract stack traces and error messages
|
|
75
|
+
- Look for patterns in failures (timing, resources, dependencies)
|
|
76
|
+
|
|
77
|
+
## Structured Output Format
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
🧪 TEST EXECUTION REPORT
|
|
81
|
+
========================
|
|
82
|
+
Test Suite: [name]
|
|
83
|
+
Execution Time: [duration]
|
|
84
|
+
Test Framework: [pytest/jest/etc]
|
|
85
|
+
Risk Level: [Critical/High/Medium/Low/Pass]
|
|
86
|
+
|
|
87
|
+
## Summary Metrics 📊
|
|
88
|
+
- Total Tests: [n]
|
|
89
|
+
- ✅ Passed: [n] ([%])
|
|
90
|
+
- ❌ Failed: [n] ([%])
|
|
91
|
+
- ⚠️ Skipped: [n] ([%])
|
|
92
|
+
- 🔄 Flaky: [n] ([%])
|
|
93
|
+
|
|
94
|
+
## Critical Failures 🔴
|
|
95
|
+
Test | Error | Location | Root Cause
|
|
96
|
+
-----|-------|----------|------------
|
|
97
|
+
[test_name] | [error_msg] | [file:line] | [cause]
|
|
98
|
+
|
|
99
|
+
## Performance Issues ⏱️
|
|
100
|
+
- Slowest Tests: [list with times]
|
|
101
|
+
- Timeout Issues: [if any]
|
|
102
|
+
- Resource Bottlenecks: [if detected]
|
|
103
|
+
|
|
104
|
+
## Patterns Detected 🔍
|
|
105
|
+
- [Common failure patterns]
|
|
106
|
+
- [Environmental issues]
|
|
107
|
+
- [Dependency problems]
|
|
108
|
+
|
|
109
|
+
## Actionable Fixes ✅
|
|
110
|
+
Priority | Test | Issue | Fix
|
|
111
|
+
---------|------|-------|----
|
|
112
|
+
HIGH | [test] | [issue] | [specific fix]
|
|
113
|
+
MEDIUM | [test] | [issue] | [specific fix]
|
|
114
|
+
|
|
115
|
+
## Test Health Score
|
|
116
|
+
- Stability: [score/100]
|
|
117
|
+
- Coverage Impact: [if available]
|
|
118
|
+
- Regression Risk: [High/Medium/Low]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Self-Verification Protocol
|
|
122
|
+
|
|
123
|
+
Before returning results, verify:
|
|
124
|
+
- [ ] All requested tests were executed
|
|
125
|
+
- [ ] Log file was successfully captured and analyzed
|
|
126
|
+
- [ ] All failures have been categorized by severity
|
|
127
|
+
- [ ] Root causes are identified where possible
|
|
128
|
+
- [ ] Output follows structured format
|
|
129
|
+
- [ ] Actionable fixes are specific and implementable
|
|
130
|
+
- [ ] No test failures were missed or ignored
|
|
131
|
+
- Check for warnings that might indicate future problems
|
|
132
|
+
|
|
133
|
+
4. **Results Reporting**:
|
|
134
|
+
- Provide a concise summary of test results (passed/failed/skipped)
|
|
135
|
+
- List critical failures with their root causes
|
|
136
|
+
- Suggest specific fixes or debugging steps
|
|
137
|
+
- Highlight any environmental or configuration issues
|
|
138
|
+
- Note any performance concerns or resource problems
|
|
139
|
+
|
|
140
|
+
## Analysis Patterns
|
|
141
|
+
|
|
142
|
+
When analyzing logs, you will look for:
|
|
143
|
+
|
|
144
|
+
- **Assertion Failures**: Extract the expected vs actual values
|
|
145
|
+
- **Timeout Issues**: Identify operations taking too long
|
|
146
|
+
- **Connection Errors**: Database, API, or service connectivity problems
|
|
147
|
+
- **Import Errors**: Missing modules or circular dependencies
|
|
148
|
+
- **Configuration Issues**: Invalid or missing configuration values
|
|
149
|
+
- **Resource Exhaustion**: Memory, file handles, or connection pool issues
|
|
150
|
+
- **Concurrency Problems**: Deadlocks, race conditions, or synchronization issues
|
|
151
|
+
|
|
152
|
+
**IMPORTANT**:
|
|
153
|
+
Ensure you read the test carefully to understand what it is testing, so you can better analyze the results.
|
|
154
|
+
|
|
155
|
+
## Output Format
|
|
156
|
+
|
|
157
|
+
Your analysis should follow this structure:
|
|
158
|
+
|
|
159
|
+
```
|
|
160
|
+
## Test Execution Summary
|
|
161
|
+
- Total Tests: X
|
|
162
|
+
- Passed: X
|
|
163
|
+
- Failed: X
|
|
164
|
+
- Skipped: X
|
|
165
|
+
- Duration: Xs
|
|
166
|
+
|
|
167
|
+
## Critical Issues
|
|
168
|
+
[List any blocking issues with specific error messages and line numbers]
|
|
169
|
+
|
|
170
|
+
## Test Failures
|
|
171
|
+
[For each failure:
|
|
172
|
+
- Test name
|
|
173
|
+
- Failure reason
|
|
174
|
+
- Relevant error message/stack trace
|
|
175
|
+
- Suggested fix]
|
|
176
|
+
|
|
177
|
+
## Warnings & Observations
|
|
178
|
+
[Non-critical issues that should be addressed]
|
|
179
|
+
|
|
180
|
+
## Recommendations
|
|
181
|
+
[Specific actions to fix failures or improve test reliability]
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Special Considerations
|
|
185
|
+
|
|
186
|
+
- For flaky tests, suggest running multiple iterations to confirm intermittent behavior
|
|
187
|
+
- When tests pass but show warnings, highlight these for preventive maintenance
|
|
188
|
+
- If all tests pass, still check for performance degradation or resource usage patterns
|
|
189
|
+
- For configuration-related failures, provide the exact configuration changes needed
|
|
190
|
+
- When encountering new failure patterns, suggest additional diagnostic steps
|
|
191
|
+
|
|
192
|
+
## Error Recovery
|
|
193
|
+
|
|
194
|
+
If the test runner script fails to execute:
|
|
195
|
+
1. Check if the script has execute permissions
|
|
196
|
+
2. Verify the test file path is correct
|
|
197
|
+
3. Ensure the logs directory exists and is writable
|
|
198
|
+
4. Fall back to direct pytest execution with output redirection if necessary
|
|
199
|
+
|
|
200
|
+
You will maintain context efficiency by keeping the main conversation focused on actionable insights while ensuring all diagnostic information is captured in the logs for detailed debugging when needed.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: Task, Read, Edit, MultiEdit, Write, LS, Grep
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# CodeRabbit Review Handler
|
|
6
|
+
|
|
7
|
+
Process CodeRabbit review comments with context-aware discretion.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
/code-rabbit
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Then paste one or more CodeRabbit comments.
|
|
16
|
+
|
|
17
|
+
## Instructions
|
|
18
|
+
|
|
19
|
+
### 1. Initial Context
|
|
20
|
+
|
|
21
|
+
Inform the user:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
I'll review the CodeRabbit comments with discretion, as CodeRabbit doesn't have access to the entire codebase and may not understand the full context.
|
|
25
|
+
|
|
26
|
+
For each comment, I'll:
|
|
27
|
+
- Evaluate if it's valid given our codebase context
|
|
28
|
+
- Accept suggestions that improve code quality
|
|
29
|
+
- Ignore suggestions that don't apply to our architecture
|
|
30
|
+
- Explain my reasoning for accept/ignore decisions
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Process Comments
|
|
34
|
+
|
|
35
|
+
#### Single File Comments
|
|
36
|
+
|
|
37
|
+
If all comments relate to one file:
|
|
38
|
+
|
|
39
|
+
- Read the file for context
|
|
40
|
+
- Evaluate each suggestion
|
|
41
|
+
- Apply accepted changes in batch using MultiEdit
|
|
42
|
+
- Report which suggestions were accepted/ignored and why
|
|
43
|
+
|
|
44
|
+
#### Multiple File Comments
|
|
45
|
+
|
|
46
|
+
If comments span multiple files:
|
|
47
|
+
|
|
48
|
+
Launch parallel sub-agents using Task tool:
|
|
49
|
+
|
|
50
|
+
```yaml
|
|
51
|
+
Task:
|
|
52
|
+
description: "CodeRabbit fixes for {filename}"
|
|
53
|
+
subagent_type: "general-purpose"
|
|
54
|
+
prompt: |
|
|
55
|
+
Review and apply CodeRabbit suggestions for {filename}.
|
|
56
|
+
|
|
57
|
+
Comments to evaluate:
|
|
58
|
+
{relevant_comments_for_this_file}
|
|
59
|
+
|
|
60
|
+
Instructions:
|
|
61
|
+
1. Read the file to understand context
|
|
62
|
+
2. For each suggestion:
|
|
63
|
+
- Evaluate validity given codebase patterns
|
|
64
|
+
- Accept if it improves quality/correctness
|
|
65
|
+
- Ignore if not applicable
|
|
66
|
+
3. Apply accepted changes using Edit/MultiEdit
|
|
67
|
+
4. Return summary:
|
|
68
|
+
- Accepted: {list with reasons}
|
|
69
|
+
- Ignored: {list with reasons}
|
|
70
|
+
- Changes made: {brief description}
|
|
71
|
+
|
|
72
|
+
Use discretion - CodeRabbit lacks full context.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 3. Consolidate Results
|
|
76
|
+
|
|
77
|
+
After all sub-agents complete:
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
📋 CodeRabbit Review Summary
|
|
81
|
+
|
|
82
|
+
Files Processed: {count}
|
|
83
|
+
|
|
84
|
+
Accepted Suggestions:
|
|
85
|
+
{file}: {changes_made}
|
|
86
|
+
|
|
87
|
+
Ignored Suggestions:
|
|
88
|
+
{file}: {reason_ignored}
|
|
89
|
+
|
|
90
|
+
Overall: {X}/{Y} suggestions applied
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 4. Common Patterns to Ignore
|
|
94
|
+
|
|
95
|
+
- **Style preferences** that conflict with project conventions
|
|
96
|
+
- **Generic best practices** that don't apply to our specific use case
|
|
97
|
+
- **Performance optimizations** for code that isn't performance-critical
|
|
98
|
+
- **Accessibility suggestions** for internal tools
|
|
99
|
+
- **Security warnings** for already-validated patterns
|
|
100
|
+
- **Import reorganization** that would break our structure
|
|
101
|
+
|
|
102
|
+
### 5. Common Patterns to Accept
|
|
103
|
+
|
|
104
|
+
- **Actual bugs** (null checks, error handling)
|
|
105
|
+
- **Security vulnerabilities** (unless false positive)
|
|
106
|
+
- **Resource leaks** (unclosed connections, memory leaks)
|
|
107
|
+
- **Type safety issues** (TypeScript/type hints)
|
|
108
|
+
- **Logic errors** (off-by-one, incorrect conditions)
|
|
109
|
+
- **Missing error handling**
|
|
110
|
+
|
|
111
|
+
## Decision Framework
|
|
112
|
+
|
|
113
|
+
For each suggestion, consider:
|
|
114
|
+
|
|
115
|
+
1. **Is it correct?** - Does the issue actually exist?
|
|
116
|
+
2. **Is it relevant?** - Does it apply to our use case?
|
|
117
|
+
3. **Is it beneficial?** - Will fixing it improve the code?
|
|
118
|
+
4. **Is it safe?** - Could the change introduce problems?
|
|
119
|
+
|
|
120
|
+
Only apply if all answers are "yes" or the benefit clearly outweighs risks.
|
|
121
|
+
|
|
122
|
+
## Important Notes
|
|
123
|
+
|
|
124
|
+
- CodeRabbit is helpful but lacks context
|
|
125
|
+
- Trust your understanding of the codebase over generic suggestions
|
|
126
|
+
- Explain decisions briefly to maintain audit trail
|
|
127
|
+
- Batch related changes for efficiency
|
|
128
|
+
- Use parallel agents for multi-file reviews to save time
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: Bash, Read, Write, LS
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# This is an ephemeral command
|
|
6
|
+
|
|
7
|
+
Some complex prompts (with numerous @ references) may fail if entered directly into the prompt input.
|
|
8
|
+
|
|
9
|
+
If that happens, write your prompt here and type in `/prompt` in the prompt command.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 🔴 MANDATORY: Context7 Query Required
|
|
2
|
+
|
|
3
|
+
**BEFORE proceeding with this command/agent, you MUST:**
|
|
4
|
+
|
|
5
|
+
1. **Read** the command/agent file to find `**Documentation Queries:**` section
|
|
6
|
+
2. **Query Context7 MCP** for EACH listed topic
|
|
7
|
+
3. **Verify** patterns against live documentation
|
|
8
|
+
4. **Apply** Context7 guidance in your implementation
|
|
9
|
+
|
|
10
|
+
## Why This Matters
|
|
11
|
+
|
|
12
|
+
- **Training data is STALE** - APIs change, best practices evolve
|
|
13
|
+
- **Context7 is CURRENT** - Live documentation, latest versions
|
|
14
|
+
- **Hallucinations PREVENTED** - Real examples, verified patterns
|
|
15
|
+
- **Quality GUARANTEED** - Industry-standard approaches
|
|
16
|
+
|
|
17
|
+
## Zero Tolerance Policy
|
|
18
|
+
|
|
19
|
+
❌ **NO** implementation without Context7 verification
|
|
20
|
+
❌ **NO** "I remember how this works"
|
|
21
|
+
❌ **NO** assumptions about API signatures
|
|
22
|
+
✅ **ALWAYS** query Context7 first
|
|
23
|
+
✅ **ALWAYS** verify against live docs
|
|
24
|
+
✅ **ALWAYS** apply documented patterns
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
*This reminder is shown by `.claude/hooks/` enforcement system*
|
|
29
|
+
*Defined in: `.claude/rules/context7-enforcement.md`*
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Hook enforcing agent usage instead of direct operations
|
|
5
|
+
* Usage: set as tool-use-hook in Claude Code configuration
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
|
|
11
|
+
class AgentEnforcer {
|
|
12
|
+
constructor() {
|
|
13
|
+
// Get tool name and parameters from arguments
|
|
14
|
+
this.toolName = process.argv[2] || '';
|
|
15
|
+
this.toolParams = process.argv[3] || '';
|
|
16
|
+
|
|
17
|
+
// Parse params if they're JSON
|
|
18
|
+
try {
|
|
19
|
+
this.parsedParams = JSON.parse(this.toolParams);
|
|
20
|
+
} catch {
|
|
21
|
+
this.parsedParams = {};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
blockWithMessage(reason, agent, example) {
|
|
26
|
+
console.log(`❌ BLOCKED: ${reason}`);
|
|
27
|
+
console.log(`✅ INSTEAD: Use the ${agent} agent via Task tool`);
|
|
28
|
+
console.log('');
|
|
29
|
+
console.log('Example:');
|
|
30
|
+
console.log(` Task: ${example}`);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
checkBashUsage() {
|
|
35
|
+
if (this.toolName !== 'Bash') return;
|
|
36
|
+
|
|
37
|
+
// Block direct grep/find - should use code-analyzer
|
|
38
|
+
const codeSearchPattern = /(grep|rg|find|ag)\s+.*\.(py|js|ts|jsx|tsx)/;
|
|
39
|
+
if (codeSearchPattern.test(this.toolParams)) {
|
|
40
|
+
this.blockWithMessage(
|
|
41
|
+
'Direct code search detected',
|
|
42
|
+
'code-analyzer',
|
|
43
|
+
'Search for [pattern] in codebase'
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Block direct test execution - should use test-runner
|
|
48
|
+
const testExecPattern = /(pytest|npm test|yarn test|jest|vitest)/;
|
|
49
|
+
if (testExecPattern.test(this.toolParams)) {
|
|
50
|
+
this.blockWithMessage(
|
|
51
|
+
'Direct test execution detected',
|
|
52
|
+
'test-runner',
|
|
53
|
+
'Run and analyze test results'
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Block direct log reading - should use file-analyzer
|
|
58
|
+
const logReadPattern = /(cat|head|tail|less).*\.(log|txt|out)/;
|
|
59
|
+
if (logReadPattern.test(this.toolParams)) {
|
|
60
|
+
this.blockWithMessage(
|
|
61
|
+
'Direct log reading detected',
|
|
62
|
+
'file-analyzer',
|
|
63
|
+
'Analyze and summarize [log file]'
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
checkReadUsage() {
|
|
69
|
+
if (this.toolName !== 'Read') return;
|
|
70
|
+
|
|
71
|
+
const filePath = this.parsedParams.file_path;
|
|
72
|
+
if (!filePath) return;
|
|
73
|
+
|
|
74
|
+
// If file is larger than 1000 lines, enforce file-analyzer
|
|
75
|
+
if (fs.existsSync(filePath)) {
|
|
76
|
+
try {
|
|
77
|
+
const content = fs.readFileSync(filePath, 'utf-8');
|
|
78
|
+
const lineCount = content.split('\n').length;
|
|
79
|
+
|
|
80
|
+
if (lineCount > 1000) {
|
|
81
|
+
this.blockWithMessage(
|
|
82
|
+
`Reading large file directly (${lineCount} lines)`,
|
|
83
|
+
'file-analyzer',
|
|
84
|
+
`Summarize contents of ${filePath}`
|
|
85
|
+
);
|
|
86
|
+
}
|
|
87
|
+
} catch (error) {
|
|
88
|
+
// Can't read file, let it pass through
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
checkGrepUsage() {
|
|
94
|
+
if (this.toolName !== 'Grep') return;
|
|
95
|
+
|
|
96
|
+
const pattern = this.parsedParams.pattern;
|
|
97
|
+
if (!pattern) return;
|
|
98
|
+
|
|
99
|
+
// If pattern is complex or searches many files, use code-analyzer
|
|
100
|
+
const complexPattern = /(\.\*|\+|\{|\[)/;
|
|
101
|
+
if (complexPattern.test(pattern)) {
|
|
102
|
+
console.log('⚠️ SUGGESTION: For complex searches, consider using code-analyzer agent');
|
|
103
|
+
console.log(' It provides better context and analysis of results');
|
|
104
|
+
// Don't block, just suggest
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
run() {
|
|
109
|
+
// Check various tool usages
|
|
110
|
+
this.checkBashUsage();
|
|
111
|
+
this.checkReadUsage();
|
|
112
|
+
this.checkGrepUsage();
|
|
113
|
+
|
|
114
|
+
// If we got here, it's allowed - pass through
|
|
115
|
+
process.exit(0);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Main execution
|
|
120
|
+
if (require.main === module) {
|
|
121
|
+
const enforcer = new AgentEnforcer();
|
|
122
|
+
enforcer.run();
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
module.exports = AgentEnforcer;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Hook enforcing agent usage - Bridge to Node.js
|
|
4
|
+
# This script now delegates to the Node.js version for better cross-platform support
|
|
5
|
+
# Original bash implementation backed up to enforce-agents.sh.backup
|
|
6
|
+
|
|
7
|
+
set -e # Exit on error
|
|
8
|
+
|
|
9
|
+
# Get the directory of this script
|
|
10
|
+
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
11
|
+
|
|
12
|
+
# Check if Node.js is available
|
|
13
|
+
if ! command -v node &> /dev/null; then
|
|
14
|
+
echo "Error: Node.js is required but not installed."
|
|
15
|
+
echo "Please install Node.js first: https://nodejs.org/"
|
|
16
|
+
exit 1
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Check if the Node.js version exists
|
|
20
|
+
NODE_SCRIPT="$SCRIPT_DIR/enforce-agents.js"
|
|
21
|
+
if [ ! -f "$NODE_SCRIPT" ]; then
|
|
22
|
+
echo "Error: Node.js implementation not found at $NODE_SCRIPT"
|
|
23
|
+
echo "Falling back to original bash implementation..."
|
|
24
|
+
|
|
25
|
+
# Try to use the backup if available
|
|
26
|
+
if [ -f "$SCRIPT_DIR/enforce-agents.sh.backup" ]; then
|
|
27
|
+
exec bash "$SCRIPT_DIR/enforce-agents.sh.backup" "$@"
|
|
28
|
+
else
|
|
29
|
+
echo "Error: No backup implementation found"
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
# Execute the Node.js version with all arguments
|
|
35
|
+
exec node "$NODE_SCRIPT" "$@"
|