claude-autopm 2.8.2 → 2.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +399 -637
- package/install/install.js +15 -5
- 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,496 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-quality-standards
|
|
3
|
+
priority: high
|
|
4
|
+
tags:
|
|
5
|
+
- code-quality
|
|
6
|
+
- linting
|
|
7
|
+
- formatting
|
|
8
|
+
- best-practices
|
|
9
|
+
appliesTo:
|
|
10
|
+
- commands
|
|
11
|
+
- agents
|
|
12
|
+
enforcesOn:
|
|
13
|
+
- python-backend-engineer
|
|
14
|
+
- python-backend-expert
|
|
15
|
+
- nodejs-backend-engineer
|
|
16
|
+
- javascript-frontend-engineer
|
|
17
|
+
- bash-scripting-expert
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Code Quality Standards Rule
|
|
21
|
+
|
|
22
|
+
**MANDATORY**: All code must adhere to language-specific quality standards verified through Context7 best practices.
|
|
23
|
+
|
|
24
|
+
## Purpose
|
|
25
|
+
|
|
26
|
+
Ensure consistent, maintainable, and high-quality code across all programming languages by enforcing:
|
|
27
|
+
- Language-specific style guides
|
|
28
|
+
- Linting and formatting tools
|
|
29
|
+
- Type safety requirements
|
|
30
|
+
- Code complexity limits
|
|
31
|
+
- Documentation standards
|
|
32
|
+
|
|
33
|
+
## Context7-Verified Standards by Language
|
|
34
|
+
|
|
35
|
+
### Python (from /python/cpython, /websites/fastapi_tiangolo)
|
|
36
|
+
|
|
37
|
+
**Type Hints (MANDATORY):**
|
|
38
|
+
```python
|
|
39
|
+
# ✅ CORRECT - Use latest type hints
|
|
40
|
+
from typing import AsyncIterator, ParamSpec, TypeIs, TYPE_CHECKING
|
|
41
|
+
from collections.abc import Sequence
|
|
42
|
+
|
|
43
|
+
# AsyncIterator for async generators
|
|
44
|
+
async def infinite_stream(start: int) -> AsyncIterator[int]:
|
|
45
|
+
while True:
|
|
46
|
+
yield start
|
|
47
|
+
start = await increment(start)
|
|
48
|
+
|
|
49
|
+
# ParamSpec for type-safe decorators
|
|
50
|
+
P = ParamSpec('P')
|
|
51
|
+
R = TypeVar('R')
|
|
52
|
+
|
|
53
|
+
def decorator(f: Callable[P, R]) -> Callable[P, R]:
|
|
54
|
+
def inner(*args: P.args, **kwargs: P.kwargs) -> R:
|
|
55
|
+
return f(*args, **kwargs)
|
|
56
|
+
return inner
|
|
57
|
+
|
|
58
|
+
# TypeIs for type narrowing
|
|
59
|
+
def is_str_list(val: list[object]) -> TypeIs[list[str]]:
|
|
60
|
+
return all(isinstance(x, str) for x in val)
|
|
61
|
+
|
|
62
|
+
# TYPE_CHECKING for conditional imports
|
|
63
|
+
if TYPE_CHECKING:
|
|
64
|
+
import expensive_mod
|
|
65
|
+
|
|
66
|
+
# ❌ INCORRECT - Old-style or missing type hints
|
|
67
|
+
def process(data): # Missing return type
|
|
68
|
+
pass
|
|
69
|
+
|
|
70
|
+
def old_style(items: List[str]): # Use list[str] instead
|
|
71
|
+
pass
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Linting Tools:**
|
|
75
|
+
- **ruff**: Fast Python linter and formatter
|
|
76
|
+
- **mypy**: Static type checker
|
|
77
|
+
- **black**: Code formatter
|
|
78
|
+
- **isort**: Import sorting
|
|
79
|
+
|
|
80
|
+
**Configuration:**
|
|
81
|
+
```toml
|
|
82
|
+
# pyproject.toml
|
|
83
|
+
[tool.ruff]
|
|
84
|
+
target-version = "py311"
|
|
85
|
+
line-length = 100
|
|
86
|
+
select = ["E", "F", "I", "N", "W", "UP", "B", "A", "C4", "DTZ", "T10", "EM", "ISC", "ICN", "PIE", "PYI", "PT", "Q", "RET", "SIM", "TID", "ARG", "PTH", "PD", "PGH", "PL", "TRY", "NPY", "RUF"]
|
|
87
|
+
|
|
88
|
+
[tool.mypy]
|
|
89
|
+
python_version = "3.11"
|
|
90
|
+
strict = true
|
|
91
|
+
warn_return_any = true
|
|
92
|
+
warn_unused_configs = true
|
|
93
|
+
disallow_untyped_defs = true
|
|
94
|
+
|
|
95
|
+
[tool.black]
|
|
96
|
+
line-length = 100
|
|
97
|
+
target-version = ['py311']
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Code Complexity:**
|
|
101
|
+
- Maximum function length: 50 lines
|
|
102
|
+
- Maximum cyclomatic complexity: 10
|
|
103
|
+
- Maximum function arguments: 5
|
|
104
|
+
|
|
105
|
+
### JavaScript/TypeScript (from /airbnb/javascript)
|
|
106
|
+
|
|
107
|
+
**ES6 Standards (MANDATORY):**
|
|
108
|
+
```javascript
|
|
109
|
+
// ✅ CORRECT - ES6 best practices
|
|
110
|
+
|
|
111
|
+
// Default parameters
|
|
112
|
+
function handleThings(opts = {}) {
|
|
113
|
+
// ...
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Object property shorthand
|
|
117
|
+
const lukeSkywalker = 'Luke Skywalker';
|
|
118
|
+
const obj = { lukeSkywalker };
|
|
119
|
+
|
|
120
|
+
// Object method shorthand
|
|
121
|
+
const atom = {
|
|
122
|
+
value: 1,
|
|
123
|
+
addValue(value) {
|
|
124
|
+
return atom.value + value;
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
// Spread operator
|
|
129
|
+
const original = { a: 1, b: 2 };
|
|
130
|
+
const copy = { ...original, c: 3 };
|
|
131
|
+
|
|
132
|
+
// Destructuring
|
|
133
|
+
const { firstName, lastName } = user;
|
|
134
|
+
const [first, ...rest] = array;
|
|
135
|
+
|
|
136
|
+
// Arrow functions
|
|
137
|
+
const items = [1, 2, 3].map(x => x * 2);
|
|
138
|
+
|
|
139
|
+
// ❌ INCORRECT - Old patterns
|
|
140
|
+
|
|
141
|
+
// No default parameters
|
|
142
|
+
function handleThings(opts) {
|
|
143
|
+
opts = opts || {};
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// Long form object
|
|
147
|
+
const obj = { lukeSkywalker: lukeSkywalker };
|
|
148
|
+
|
|
149
|
+
// Function expression instead of arrow
|
|
150
|
+
const items = [1, 2, 3].map(function(x) {
|
|
151
|
+
return x * 2;
|
|
152
|
+
});
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Linting Tools:**
|
|
156
|
+
- **ESLint**: JavaScript linter with Airbnb config
|
|
157
|
+
- **Prettier**: Code formatter
|
|
158
|
+
- **TypeScript**: Static type checking
|
|
159
|
+
|
|
160
|
+
**Configuration:**
|
|
161
|
+
```json
|
|
162
|
+
// .eslintrc.json
|
|
163
|
+
{
|
|
164
|
+
"extends": ["airbnb-base", "prettier"],
|
|
165
|
+
"parserOptions": {
|
|
166
|
+
"ecmaVersion": 2022,
|
|
167
|
+
"sourceType": "module"
|
|
168
|
+
},
|
|
169
|
+
"rules": {
|
|
170
|
+
"no-console": "warn",
|
|
171
|
+
"prefer-const": "error",
|
|
172
|
+
"prefer-arrow-callback": "error",
|
|
173
|
+
"prefer-template": "error",
|
|
174
|
+
"prefer-destructuring": "error",
|
|
175
|
+
"object-shorthand": "error"
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// .prettierrc
|
|
180
|
+
{
|
|
181
|
+
"semi": true,
|
|
182
|
+
"singleQuote": true,
|
|
183
|
+
"trailingComma": "es5",
|
|
184
|
+
"printWidth": 100
|
|
185
|
+
}
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Node.js (from /nodejs/node)
|
|
189
|
+
|
|
190
|
+
**Async Patterns (MANDATORY):**
|
|
191
|
+
```javascript
|
|
192
|
+
// ✅ CORRECT - Modern async patterns
|
|
193
|
+
|
|
194
|
+
// Async iteration with for await...of
|
|
195
|
+
import * as readline from 'node:readline';
|
|
196
|
+
|
|
197
|
+
async function processLineByLine() {
|
|
198
|
+
const rl = readline.createInterface({
|
|
199
|
+
input: fs.createReadStream('file.txt'),
|
|
200
|
+
crlfDelay: Infinity,
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
for await (const line of rl) {
|
|
204
|
+
// Process line
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// AbortSignal for cancellation
|
|
209
|
+
const ac = new AbortController();
|
|
210
|
+
const { signal } = ac;
|
|
211
|
+
|
|
212
|
+
setTimeout(() => ac.abort(), 5000);
|
|
213
|
+
|
|
214
|
+
for await (const event of on(ee, 'foo', { signal })) {
|
|
215
|
+
console.log(event);
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// Symbol.asyncIterator for custom iterators
|
|
219
|
+
const asyncIterable = {
|
|
220
|
+
async *[Symbol.asyncIterator]() {
|
|
221
|
+
yield 1;
|
|
222
|
+
yield 2;
|
|
223
|
+
yield 3;
|
|
224
|
+
},
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
// ❌ INCORRECT - Old patterns
|
|
228
|
+
|
|
229
|
+
// Using callbacks instead of async/await
|
|
230
|
+
fs.readFile('file.txt', (err, data) => {
|
|
231
|
+
if (err) throw err;
|
|
232
|
+
console.log(data);
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
// No AbortSignal for cancellation
|
|
236
|
+
// No Symbol.asyncIterator for iterables
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**Event Loop Optimization:**
|
|
240
|
+
- Use `setImmediate()` for I/O callbacks
|
|
241
|
+
- Avoid blocking the event loop
|
|
242
|
+
- Use worker threads for CPU-intensive tasks
|
|
243
|
+
- Stream large datasets instead of loading into memory
|
|
244
|
+
|
|
245
|
+
### Bash (from /bobbyiliev/introduction-to-bash-scripting)
|
|
246
|
+
|
|
247
|
+
**Error Handling (MANDATORY):**
|
|
248
|
+
```bash
|
|
249
|
+
#!/usr/bin/env bash
|
|
250
|
+
|
|
251
|
+
# ✅ CORRECT - Proper error handling
|
|
252
|
+
|
|
253
|
+
# Exit on error, undefined variable, pipe failure
|
|
254
|
+
set -euo pipefail
|
|
255
|
+
|
|
256
|
+
# Logging function
|
|
257
|
+
log() {
|
|
258
|
+
echo "[$(date +'%Y-%m-%d %H:%M:%S')] $*"
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
# Error handling function
|
|
262
|
+
error_exit() {
|
|
263
|
+
echo "ERROR: $1" >&2
|
|
264
|
+
exit 1
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
# Cleanup function
|
|
268
|
+
cleanup() {
|
|
269
|
+
log "Cleaning up..."
|
|
270
|
+
# Cleanup code
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
# Register cleanup on exit
|
|
274
|
+
trap cleanup EXIT
|
|
275
|
+
|
|
276
|
+
# Well-documented function
|
|
277
|
+
#######################################
|
|
278
|
+
# Description: Calculate sum
|
|
279
|
+
# Globals: None
|
|
280
|
+
# Arguments: $1 - First number, $2 - Second number
|
|
281
|
+
# Outputs: Sum of the two numbers
|
|
282
|
+
# Returns: 0 if successful
|
|
283
|
+
#######################################
|
|
284
|
+
sum() {
|
|
285
|
+
local result=$(( $1 + $2 ))
|
|
286
|
+
echo "$result"
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
# ❌ INCORRECT - No error handling
|
|
290
|
+
#!/bin/bash
|
|
291
|
+
# No set -e
|
|
292
|
+
# No error handlers
|
|
293
|
+
# No cleanup
|
|
294
|
+
# No function documentation
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**Linting Tools:**
|
|
298
|
+
- **shellcheck**: Shell script linter
|
|
299
|
+
- **shfmt**: Shell script formatter
|
|
300
|
+
|
|
301
|
+
**Configuration:**
|
|
302
|
+
```bash
|
|
303
|
+
# .shellcheckrc
|
|
304
|
+
enable=all
|
|
305
|
+
shell=bash
|
|
306
|
+
severity=style
|
|
307
|
+
|
|
308
|
+
# shfmt options
|
|
309
|
+
# -i 4 : indent with 4 spaces
|
|
310
|
+
# -bn : binary ops like && and | may start a line
|
|
311
|
+
# -ci : switch cases will be indented
|
|
312
|
+
# -sr : redirect operators followed by a space
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## Universal Quality Standards
|
|
316
|
+
|
|
317
|
+
### Documentation (ALL LANGUAGES)
|
|
318
|
+
|
|
319
|
+
**Function/Method Documentation:**
|
|
320
|
+
- Purpose and behavior
|
|
321
|
+
- Parameters with types
|
|
322
|
+
- Return value and type
|
|
323
|
+
- Exceptions/errors raised
|
|
324
|
+
- Usage examples
|
|
325
|
+
|
|
326
|
+
**Code Comments:**
|
|
327
|
+
- Explain "why" not "what"
|
|
328
|
+
- Document complex algorithms
|
|
329
|
+
- Note edge cases
|
|
330
|
+
- Link to relevant issues/docs
|
|
331
|
+
|
|
332
|
+
### Testing Requirements
|
|
333
|
+
|
|
334
|
+
**Minimum Coverage:**
|
|
335
|
+
- Unit tests: 80% coverage
|
|
336
|
+
- Critical paths: 100% coverage
|
|
337
|
+
- Integration tests for all APIs
|
|
338
|
+
- E2E tests for critical workflows
|
|
339
|
+
|
|
340
|
+
**Test Quality:**
|
|
341
|
+
- Descriptive test names
|
|
342
|
+
- Arrange-Act-Assert pattern
|
|
343
|
+
- Independent tests (no interdependencies)
|
|
344
|
+
- Fast execution (<5 minutes for full suite)
|
|
345
|
+
|
|
346
|
+
### Security Standards
|
|
347
|
+
|
|
348
|
+
**Input Validation:**
|
|
349
|
+
- Validate all external inputs
|
|
350
|
+
- Sanitize user data
|
|
351
|
+
- Use parameterized queries
|
|
352
|
+
- Escape output for XSS prevention
|
|
353
|
+
|
|
354
|
+
**Secrets Management:**
|
|
355
|
+
- No hardcoded credentials
|
|
356
|
+
- Use environment variables
|
|
357
|
+
- Leverage secret managers
|
|
358
|
+
- Rotate credentials regularly
|
|
359
|
+
|
|
360
|
+
### Performance Standards
|
|
361
|
+
|
|
362
|
+
**Code Performance:**
|
|
363
|
+
- O(n log n) or better algorithms
|
|
364
|
+
- Avoid N+1 queries
|
|
365
|
+
- Use connection pooling
|
|
366
|
+
- Cache frequently accessed data
|
|
367
|
+
|
|
368
|
+
**Memory Management:**
|
|
369
|
+
- No memory leaks
|
|
370
|
+
- Proper resource cleanup
|
|
371
|
+
- Stream large datasets
|
|
372
|
+
- Monitor memory usage
|
|
373
|
+
|
|
374
|
+
## Enforcement Actions
|
|
375
|
+
|
|
376
|
+
### Pre-commit Hooks
|
|
377
|
+
|
|
378
|
+
```bash
|
|
379
|
+
# Python
|
|
380
|
+
ruff check .
|
|
381
|
+
mypy .
|
|
382
|
+
black --check .
|
|
383
|
+
|
|
384
|
+
# JavaScript/TypeScript
|
|
385
|
+
npm run lint
|
|
386
|
+
npm run type-check
|
|
387
|
+
npm run format:check
|
|
388
|
+
|
|
389
|
+
# Bash
|
|
390
|
+
shellcheck **/*.sh
|
|
391
|
+
shfmt -d .
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
### CI/CD Pipeline
|
|
395
|
+
|
|
396
|
+
```yaml
|
|
397
|
+
# Quality gates
|
|
398
|
+
- lint: MUST pass
|
|
399
|
+
- type-check: MUST pass
|
|
400
|
+
- format-check: MUST pass
|
|
401
|
+
- tests: MUST pass with >80% coverage
|
|
402
|
+
- security-scan: MUST have no high/critical vulnerabilities
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### Code Review Checklist
|
|
406
|
+
|
|
407
|
+
- [ ] Code follows language-specific style guide
|
|
408
|
+
- [ ] All functions have type hints/annotations
|
|
409
|
+
- [ ] Error handling is comprehensive
|
|
410
|
+
- [ ] Tests cover new functionality
|
|
411
|
+
- [ ] Documentation is updated
|
|
412
|
+
- [ ] Security best practices followed
|
|
413
|
+
- [ ] Performance considerations addressed
|
|
414
|
+
- [ ] Complexity within limits
|
|
415
|
+
|
|
416
|
+
## Tools Integration
|
|
417
|
+
|
|
418
|
+
### IDE Configuration
|
|
419
|
+
|
|
420
|
+
**VSCode:**
|
|
421
|
+
```json
|
|
422
|
+
{
|
|
423
|
+
"editor.formatOnSave": true,
|
|
424
|
+
"editor.codeActionsOnSave": {
|
|
425
|
+
"source.fixAll.eslint": true,
|
|
426
|
+
"source.organizeImports": true
|
|
427
|
+
},
|
|
428
|
+
"python.linting.ruffEnabled": true,
|
|
429
|
+
"python.linting.mypyEnabled": true,
|
|
430
|
+
"python.formatting.provider": "black",
|
|
431
|
+
"eslint.validate": ["javascript", "typescript"],
|
|
432
|
+
"prettier.enable": true
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### Git Hooks (Husky)
|
|
437
|
+
|
|
438
|
+
```json
|
|
439
|
+
{
|
|
440
|
+
"husky": {
|
|
441
|
+
"hooks": {
|
|
442
|
+
"pre-commit": "lint-staged",
|
|
443
|
+
"pre-push": "npm test"
|
|
444
|
+
}
|
|
445
|
+
},
|
|
446
|
+
"lint-staged": {
|
|
447
|
+
"*.py": ["ruff check", "black", "mypy"],
|
|
448
|
+
"*.{js,ts}": ["eslint --fix", "prettier --write"],
|
|
449
|
+
"*.sh": ["shellcheck", "shfmt -w"]
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
## Exceptions
|
|
455
|
+
|
|
456
|
+
Quality standards may be relaxed for:
|
|
457
|
+
- Prototype/POC code (must be marked clearly)
|
|
458
|
+
- Generated code (with clear attribution)
|
|
459
|
+
- Third-party code (must be isolated)
|
|
460
|
+
- Legacy code being deprecated
|
|
461
|
+
|
|
462
|
+
All exceptions MUST:
|
|
463
|
+
- Be documented
|
|
464
|
+
- Have tracking issue
|
|
465
|
+
- Include remediation plan
|
|
466
|
+
- Get explicit approval
|
|
467
|
+
|
|
468
|
+
## Monitoring
|
|
469
|
+
|
|
470
|
+
**Quality Metrics:**
|
|
471
|
+
- Linting violations: 0 target
|
|
472
|
+
- Type coverage: 100% target
|
|
473
|
+
- Test coverage: >80% target
|
|
474
|
+
- Code complexity: <10 cyclomatic complexity
|
|
475
|
+
- Documentation coverage: >90% target
|
|
476
|
+
|
|
477
|
+
**Regular Audits:**
|
|
478
|
+
- Weekly: Automated quality reports
|
|
479
|
+
- Monthly: Manual code reviews
|
|
480
|
+
- Quarterly: Dependency updates
|
|
481
|
+
- Annually: Major version upgrades
|
|
482
|
+
|
|
483
|
+
## References
|
|
484
|
+
|
|
485
|
+
- Python: [PEP 8](https://peps.python.org/pep-0008/), [Type Hints](https://docs.python.org/3/library/typing.html)
|
|
486
|
+
- JavaScript: [Airbnb Style Guide](https://github.com/airbnb/javascript)
|
|
487
|
+
- Node.js: [Best Practices](https://github.com/goldbergyoni/nodebestpractices)
|
|
488
|
+
- Bash: [Google Shell Style Guide](https://google.github.io/styleguide/shellguide.html)
|
|
489
|
+
- Context7: Query `mcp://context7/<language>/style-guide` for latest standards
|
|
490
|
+
|
|
491
|
+
---
|
|
492
|
+
|
|
493
|
+
**Enforcement Level**: MANDATORY
|
|
494
|
+
**Review Frequency**: Every commit
|
|
495
|
+
**Last Updated**: 2025-01-15
|
|
496
|
+
**Context7 Verified**: ✅ All patterns verified against latest documentation
|