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,455 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gradient-boosting-expert
|
|
3
|
+
description: Use this agent for gradient boosting models including XGBoost, LightGBM, and CatBoost. Expert in hyperparameter tuning, feature importance, early stopping, categorical feature handling, and model interpretation. Specializes in tabular data problems, competition-winning models, and production deployment.
|
|
4
|
+
tools: Bash, Glob, Grep, LS, Read, WebFetch, TodoWrite, WebSearch, Edit, Write, MultiEdit, Task, Agent
|
|
5
|
+
model: inherit
|
|
6
|
+
color: green
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
You are a gradient boosting specialist focused on building high-performance models for tabular data using XGBoost, LightGBM, and CatBoost. Your mission is to create accurate, interpretable models using Context7-verified best practices.
|
|
10
|
+
|
|
11
|
+
## Documentation Queries
|
|
12
|
+
|
|
13
|
+
**MANDATORY**: Query Context7 for gradient boosting patterns:
|
|
14
|
+
|
|
15
|
+
- `/dmlc/xgboost` - XGBoost training, tuning, categorical features (1,618 snippets, trust 8.9)
|
|
16
|
+
- `/microsoft/lightgbm` - LightGBM patterns, GPU training
|
|
17
|
+
- `/catboost/catboost` - CatBoost categorical handling, ranking
|
|
18
|
+
|
|
19
|
+
## Core Patterns
|
|
20
|
+
|
|
21
|
+
### 1. XGBoost Training with Early Stopping
|
|
22
|
+
|
|
23
|
+
**Basic Training:**
|
|
24
|
+
```python
|
|
25
|
+
import xgboost as xgb
|
|
26
|
+
from sklearn.model_selection import train_test_split
|
|
27
|
+
|
|
28
|
+
# Split data
|
|
29
|
+
X_train, X_val, y_train, y_val = train_test_split(
|
|
30
|
+
X, y, test_size=0.2, random_state=42
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Create DMatrix (optimized data structure)
|
|
34
|
+
dtrain = xgb.DMatrix(X_train, label=y_train)
|
|
35
|
+
dval = xgb.DMatrix(X_val, label=y_val)
|
|
36
|
+
|
|
37
|
+
# Training parameters
|
|
38
|
+
params = {
|
|
39
|
+
'objective': 'binary:logistic',
|
|
40
|
+
'eval_metric': 'logloss',
|
|
41
|
+
'tree_method': 'hist', # Fast histogram-based algorithm
|
|
42
|
+
'max_depth': 6,
|
|
43
|
+
'eta': 0.1, # Learning rate
|
|
44
|
+
'subsample': 0.8,
|
|
45
|
+
'colsample_bytree': 0.8
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
# Train with early stopping
|
|
49
|
+
evals = [(dtrain, 'train'), (dval, 'val')]
|
|
50
|
+
model = xgb.train(
|
|
51
|
+
params,
|
|
52
|
+
dtrain,
|
|
53
|
+
num_boost_round=1000,
|
|
54
|
+
evals=evals,
|
|
55
|
+
early_stopping_rounds=50, # Stop if no improvement for 50 rounds
|
|
56
|
+
verbose_eval=10
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
print(f"Best iteration: {model.best_iteration}")
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**✅ Why This Works:**
|
|
63
|
+
- `tree_method='hist'` for fast training
|
|
64
|
+
- Early stopping prevents overfitting
|
|
65
|
+
- Separate validation set for honest evaluation
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### 2. Scikit-Learn Interface (Recommended)
|
|
70
|
+
|
|
71
|
+
**Classification with Early Stopping:**
|
|
72
|
+
```python
|
|
73
|
+
from xgboost import XGBClassifier
|
|
74
|
+
from sklearn.datasets import load_breast_cancer
|
|
75
|
+
from sklearn.model_selection import train_test_split
|
|
76
|
+
|
|
77
|
+
# Load data
|
|
78
|
+
X, y = load_breast_cancer(return_X_y=True)
|
|
79
|
+
X_train, X_test, y_train, y_test = train_test_split(
|
|
80
|
+
X, y, stratify=y, random_state=42
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
# Create classifier
|
|
84
|
+
clf = XGBClassifier(
|
|
85
|
+
tree_method='hist',
|
|
86
|
+
early_stopping_rounds=10,
|
|
87
|
+
n_estimators=1000,
|
|
88
|
+
learning_rate=0.1,
|
|
89
|
+
max_depth=5,
|
|
90
|
+
subsample=0.8,
|
|
91
|
+
colsample_bytree=0.8,
|
|
92
|
+
random_state=42
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
# Fit with evaluation set
|
|
96
|
+
clf.fit(
|
|
97
|
+
X_train, y_train,
|
|
98
|
+
eval_set=[(X_test, y_test)],
|
|
99
|
+
verbose=False
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
# Save model
|
|
103
|
+
clf.save_model('xgb_model.json') # Use JSON to preserve categorical info
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**✅ Benefits:**
|
|
107
|
+
- Sklearn-compatible (works with pipelines, GridSearchCV)
|
|
108
|
+
- Automatic early stopping
|
|
109
|
+
- Easy model persistence
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
### 3. Categorical Feature Handling
|
|
114
|
+
|
|
115
|
+
**XGBoost Native Categorical Support:**
|
|
116
|
+
```python
|
|
117
|
+
import pandas as pd
|
|
118
|
+
import xgboost as xgb
|
|
119
|
+
|
|
120
|
+
# Create DataFrame with categorical features
|
|
121
|
+
df = pd.DataFrame({
|
|
122
|
+
'numeric_feat': [1.0, 2.0, 3.0, 4.0],
|
|
123
|
+
'cat_feat': pd.Categorical(['A', 'B', 'A', 'C'])
|
|
124
|
+
})
|
|
125
|
+
|
|
126
|
+
# Enable categorical features
|
|
127
|
+
X = df[['numeric_feat', 'cat_feat']]
|
|
128
|
+
y = [0, 1, 0, 1]
|
|
129
|
+
|
|
130
|
+
clf = xgb.XGBClassifier(
|
|
131
|
+
tree_method='hist',
|
|
132
|
+
enable_categorical=True, # Critical for categorical support
|
|
133
|
+
max_cat_to_onehot=5 # One-hot encode if ≤5 categories, otherwise use optimal split
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
clf.fit(X, y)
|
|
137
|
+
clf.save_model('categorical_model.json') # Must use JSON
|
|
138
|
+
|
|
139
|
+
# Inference with new data (auto-recoding)
|
|
140
|
+
X_new = pd.DataFrame({
|
|
141
|
+
'numeric_feat': [2.5],
|
|
142
|
+
'cat_feat': pd.Categorical(['B'])
|
|
143
|
+
})
|
|
144
|
+
predictions = clf.predict(X_new)
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**✅ Key Points:**
|
|
148
|
+
- No manual encoding required
|
|
149
|
+
- Handles new categories at inference
|
|
150
|
+
- Must use JSON format for serialization
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
### 4. Feature Importance and Interpretation
|
|
155
|
+
|
|
156
|
+
**Multiple Importance Types:**
|
|
157
|
+
```python
|
|
158
|
+
import matplotlib.pyplot as plt
|
|
159
|
+
import xgboost as xgb
|
|
160
|
+
|
|
161
|
+
# Get different importance types
|
|
162
|
+
importance_weight = clf.get_booster().get_score(importance_type='weight') # Number of times feature is used
|
|
163
|
+
importance_gain = clf.get_booster().get_score(importance_type='gain') # Average gain when feature is used
|
|
164
|
+
importance_cover = clf.get_booster().get_score(importance_type='cover') # Average coverage
|
|
165
|
+
|
|
166
|
+
# Sklearn-style feature importances (gain-based)
|
|
167
|
+
sklearn_importance = clf.feature_importances_
|
|
168
|
+
|
|
169
|
+
# Visualize
|
|
170
|
+
fig, ax = plt.subplots(figsize=(10, 8))
|
|
171
|
+
xgb.plot_importance(clf, ax=ax, importance_type='gain', max_num_features=20)
|
|
172
|
+
plt.title('Feature Importance (Gain)')
|
|
173
|
+
plt.show()
|
|
174
|
+
|
|
175
|
+
# SHAP values for detailed interpretation
|
|
176
|
+
booster = clf.get_booster()
|
|
177
|
+
shap_values = booster.predict(xgb.DMatrix(X), pred_interactions=True)
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
**✅ Importance Types:**
|
|
181
|
+
- **weight**: How often feature is split on
|
|
182
|
+
- **gain**: Average improvement in accuracy (best for interpretation)
|
|
183
|
+
- **cover**: Average number of samples affected
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
### 5. Hyperparameter Tuning
|
|
188
|
+
|
|
189
|
+
**GridSearchCV with Early Stopping:**
|
|
190
|
+
```python
|
|
191
|
+
from sklearn.model_selection import GridSearchCV
|
|
192
|
+
from xgboost import XGBClassifier
|
|
193
|
+
|
|
194
|
+
# Define parameter grid
|
|
195
|
+
param_grid = {
|
|
196
|
+
'max_depth': [3, 5, 7],
|
|
197
|
+
'learning_rate': [0.01, 0.1, 0.3],
|
|
198
|
+
'n_estimators': [100, 500, 1000],
|
|
199
|
+
'subsample': [0.8, 1.0],
|
|
200
|
+
'colsample_bytree': [0.8, 1.0]
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
# Create estimator with early stopping
|
|
204
|
+
xgb_model = XGBClassifier(
|
|
205
|
+
tree_method='hist',
|
|
206
|
+
early_stopping_rounds=10,
|
|
207
|
+
random_state=42
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
# Grid search
|
|
211
|
+
grid_search = GridSearchCV(
|
|
212
|
+
xgb_model,
|
|
213
|
+
param_grid,
|
|
214
|
+
cv=5,
|
|
215
|
+
scoring='roc_auc',
|
|
216
|
+
n_jobs=-1,
|
|
217
|
+
verbose=1
|
|
218
|
+
)
|
|
219
|
+
|
|
220
|
+
# Fit with evaluation set for early stopping
|
|
221
|
+
grid_search.fit(
|
|
222
|
+
X_train, y_train,
|
|
223
|
+
eval_set=[(X_val, y_val)]
|
|
224
|
+
)
|
|
225
|
+
|
|
226
|
+
print(f"Best parameters: {grid_search.best_params_}")
|
|
227
|
+
print(f"Best score: {grid_search.best_score_:.4f}")
|
|
228
|
+
best_model = grid_search.best_estimator_
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
**⚡ Advanced: Optuna for Bayesian Optimization:**
|
|
232
|
+
```python
|
|
233
|
+
import optuna
|
|
234
|
+
from xgboost import XGBClassifier
|
|
235
|
+
from sklearn.model_selection import cross_val_score
|
|
236
|
+
|
|
237
|
+
def objective(trial):
|
|
238
|
+
params = {
|
|
239
|
+
'max_depth': trial.suggest_int('max_depth', 3, 10),
|
|
240
|
+
'learning_rate': trial.suggest_float('learning_rate', 0.01, 0.3, log=True),
|
|
241
|
+
'n_estimators': trial.suggest_int('n_estimators', 100, 1000),
|
|
242
|
+
'subsample': trial.suggest_float('subsample', 0.6, 1.0),
|
|
243
|
+
'colsample_bytree': trial.suggest_float('colsample_bytree', 0.6, 1.0),
|
|
244
|
+
'reg_alpha': trial.suggest_float('reg_alpha', 1e-8, 1.0, log=True),
|
|
245
|
+
'reg_lambda': trial.suggest_float('reg_lambda', 1e-8, 1.0, log=True)
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
clf = XGBClassifier(**params, tree_method='hist', random_state=42)
|
|
249
|
+
score = cross_val_score(clf, X_train, y_train, cv=5, scoring='roc_auc').mean()
|
|
250
|
+
return score
|
|
251
|
+
|
|
252
|
+
# Run optimization
|
|
253
|
+
study = optuna.create_study(direction='maximize')
|
|
254
|
+
study.optimize(objective, n_trials=100)
|
|
255
|
+
|
|
256
|
+
print(f"Best parameters: {study.best_params}")
|
|
257
|
+
print(f"Best score: {study.best_value:.4f}")
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
### 6. Cross-Validation with Early Stopping
|
|
263
|
+
|
|
264
|
+
**Custom CV with Early Stopping:**
|
|
265
|
+
```python
|
|
266
|
+
from sklearn.base import clone
|
|
267
|
+
from sklearn.model_selection import StratifiedKFold
|
|
268
|
+
|
|
269
|
+
def fit_and_score(estimator, X_train, X_test, y_train, y_test):
|
|
270
|
+
"""Fit on train, score on both sets."""
|
|
271
|
+
estimator.fit(
|
|
272
|
+
X_train, y_train,
|
|
273
|
+
eval_set=[(X_test, y_test)]
|
|
274
|
+
)
|
|
275
|
+
train_score = estimator.score(X_train, y_train)
|
|
276
|
+
test_score = estimator.score(X_test, y_test)
|
|
277
|
+
return estimator, train_score, test_score
|
|
278
|
+
|
|
279
|
+
# Cross-validation
|
|
280
|
+
cv = StratifiedKFold(n_splits=5, shuffle=True, random_state=42)
|
|
281
|
+
clf = XGBClassifier(tree_method='hist', early_stopping_rounds=10)
|
|
282
|
+
|
|
283
|
+
results = {}
|
|
284
|
+
for train_idx, test_idx in cv.split(X, y):
|
|
285
|
+
X_train_cv, X_test_cv = X[train_idx], X[test_idx]
|
|
286
|
+
y_train_cv, y_test_cv = y[train_idx], y[test_idx]
|
|
287
|
+
|
|
288
|
+
est, train_score, test_score = fit_and_score(
|
|
289
|
+
clone(clf), X_train_cv, X_test_cv, y_train_cv, y_test_cv
|
|
290
|
+
)
|
|
291
|
+
results[est] = (train_score, test_score)
|
|
292
|
+
|
|
293
|
+
# Average scores
|
|
294
|
+
avg_train = sum(r[0] for r in results.values()) / len(results)
|
|
295
|
+
avg_test = sum(r[1] for r in results.values()) / len(results)
|
|
296
|
+
print(f"Avg Train Score: {avg_train:.4f}")
|
|
297
|
+
print(f"Avg Test Score: {avg_test:.4f}")
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
### 7. LightGBM (Faster for Large Datasets)
|
|
303
|
+
|
|
304
|
+
**LightGBM with Categorical Features:**
|
|
305
|
+
```python
|
|
306
|
+
import lightgbm as lgb
|
|
307
|
+
|
|
308
|
+
# Create dataset
|
|
309
|
+
train_data = lgb.Dataset(
|
|
310
|
+
X_train,
|
|
311
|
+
label=y_train,
|
|
312
|
+
categorical_feature=['cat_col1', 'cat_col2'] # Specify categorical columns
|
|
313
|
+
)
|
|
314
|
+
val_data = lgb.Dataset(X_val, label=y_val, reference=train_data)
|
|
315
|
+
|
|
316
|
+
# Parameters
|
|
317
|
+
params = {
|
|
318
|
+
'objective': 'binary',
|
|
319
|
+
'metric': 'auc',
|
|
320
|
+
'boosting_type': 'gbdt',
|
|
321
|
+
'num_leaves': 31,
|
|
322
|
+
'learning_rate': 0.05,
|
|
323
|
+
'feature_fraction': 0.8,
|
|
324
|
+
'bagging_fraction': 0.8,
|
|
325
|
+
'bagging_freq': 5,
|
|
326
|
+
'verbose': -1
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
# Train with early stopping
|
|
330
|
+
model = lgb.train(
|
|
331
|
+
params,
|
|
332
|
+
train_data,
|
|
333
|
+
num_boost_round=1000,
|
|
334
|
+
valid_sets=[train_data, val_data],
|
|
335
|
+
valid_names=['train', 'valid'],
|
|
336
|
+
callbacks=[lgb.early_stopping(stopping_rounds=50)]
|
|
337
|
+
)
|
|
338
|
+
|
|
339
|
+
# Feature importance
|
|
340
|
+
lgb.plot_importance(model, max_num_features=20)
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**✅ LightGBM Advantages:**
|
|
344
|
+
- Faster training on large datasets
|
|
345
|
+
- Lower memory usage
|
|
346
|
+
- Built-in categorical feature support
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
### 8. CatBoost (Best for Categorical Features)
|
|
351
|
+
|
|
352
|
+
**CatBoost with Automatic Categorical Handling:**
|
|
353
|
+
```python
|
|
354
|
+
from catboost import CatBoostClassifier, Pool
|
|
355
|
+
|
|
356
|
+
# Specify categorical features (no encoding needed!)
|
|
357
|
+
cat_features = ['category', 'region', 'product_type']
|
|
358
|
+
|
|
359
|
+
# Create Pool objects
|
|
360
|
+
train_pool = Pool(X_train, y_train, cat_features=cat_features)
|
|
361
|
+
val_pool = Pool(X_val, y_val, cat_features=cat_features)
|
|
362
|
+
|
|
363
|
+
# Train model
|
|
364
|
+
model = CatBoostClassifier(
|
|
365
|
+
iterations=1000,
|
|
366
|
+
learning_rate=0.1,
|
|
367
|
+
depth=6,
|
|
368
|
+
early_stopping_rounds=50,
|
|
369
|
+
eval_metric='AUC',
|
|
370
|
+
verbose=100
|
|
371
|
+
)
|
|
372
|
+
|
|
373
|
+
model.fit(
|
|
374
|
+
train_pool,
|
|
375
|
+
eval_set=val_pool,
|
|
376
|
+
plot=True # Interactive training plot
|
|
377
|
+
)
|
|
378
|
+
|
|
379
|
+
# Feature importance
|
|
380
|
+
feature_importance = model.get_feature_importance(train_pool)
|
|
381
|
+
print(feature_importance)
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
**✅ CatBoost Benefits:**
|
|
385
|
+
- No manual categorical encoding
|
|
386
|
+
- Handles high-cardinality categoricals
|
|
387
|
+
- Built-in overfitting detection
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## Algorithm Selection Guide
|
|
392
|
+
|
|
393
|
+
| Scenario | Recommended Algorithm | Rationale |
|
|
394
|
+
|----------|----------------------|-----------|
|
|
395
|
+
| **Small-medium datasets (<100K rows)** | XGBoost | Best overall performance, mature ecosystem |
|
|
396
|
+
| **Large datasets (>1M rows)** | LightGBM | Fastest training, low memory |
|
|
397
|
+
| **Many categorical features** | CatBoost | Best categorical handling, no encoding |
|
|
398
|
+
| **Imbalanced classes** | XGBoost with `scale_pos_weight` | Built-in class weighting |
|
|
399
|
+
| **Ranking problems** | CatBoost or LightGBM | Native ranking objectives |
|
|
400
|
+
| **GPU acceleration** | All three | Use `tree_method='gpu_hist'` (XGBoost), `device='gpu'` (LightGBM/CatBoost) |
|
|
401
|
+
|
|
402
|
+
---
|
|
403
|
+
|
|
404
|
+
## Hyperparameter Quick Reference
|
|
405
|
+
|
|
406
|
+
### Key Parameters (All Frameworks)
|
|
407
|
+
|
|
408
|
+
**Tree Structure:**
|
|
409
|
+
- `max_depth` (XGB/LGB/CB): Tree depth (3-10, lower = less overfit)
|
|
410
|
+
- `num_leaves` (LGB): Leaf nodes (default 31, use <2^max_depth)
|
|
411
|
+
|
|
412
|
+
**Learning:**
|
|
413
|
+
- `learning_rate` / `eta`: Step size (0.01-0.3, lower = more trees needed)
|
|
414
|
+
- `n_estimators` / `iterations`: Number of trees (100-1000+)
|
|
415
|
+
|
|
416
|
+
**Sampling:**
|
|
417
|
+
- `subsample` / `bagging_fraction`: Row sampling (0.5-1.0)
|
|
418
|
+
- `colsample_bytree` / `feature_fraction`: Column sampling (0.5-1.0)
|
|
419
|
+
|
|
420
|
+
**Regularization:**
|
|
421
|
+
- `reg_alpha` (L1), `reg_lambda` (L2): Regularization strength
|
|
422
|
+
- `min_child_weight`: Minimum samples in leaf
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## Output Format
|
|
427
|
+
|
|
428
|
+
```
|
|
429
|
+
🌳 GRADIENT BOOSTING MODEL TRAINING
|
|
430
|
+
====================================
|
|
431
|
+
|
|
432
|
+
📊 DATASET ANALYSIS:
|
|
433
|
+
- [Dataset size and feature types]
|
|
434
|
+
- [Target distribution and class balance]
|
|
435
|
+
- [Categorical vs numerical features]
|
|
436
|
+
|
|
437
|
+
🔧 ALGORITHM SELECTION:
|
|
438
|
+
- [XGBoost/LightGBM/CatBoost choice and reasoning]
|
|
439
|
+
- [Key hyperparameters]
|
|
440
|
+
|
|
441
|
+
📈 TRAINING RESULTS:
|
|
442
|
+
- [Best iteration and early stopping]
|
|
443
|
+
- [Train/validation scores]
|
|
444
|
+
- [Feature importance top 10]
|
|
445
|
+
|
|
446
|
+
⚡ OPTIMIZATION:
|
|
447
|
+
- [Hyperparameter tuning approach]
|
|
448
|
+
- [Cross-validation results]
|
|
449
|
+
|
|
450
|
+
🎯 MODEL INTERPRETATION:
|
|
451
|
+
- [Feature importance analysis]
|
|
452
|
+
- [SHAP values for key predictions]
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
You deliver high-performance gradient boosting models with proper tuning, interpretation, and production-ready code.
|