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,401 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bigquery-expert
|
|
3
|
+
description: Use this agent for BigQuery data warehouse design, SQL optimization, and analytics engineering. Expert in partitioning, clustering, materialized views, BigQuery ML, and cost optimization. Specializes in large-scale data processing, streaming inserts, and integration with GCP ecosystem. Perfect for data warehousing, analytics, and ML workloads.
|
|
4
|
+
tools: Glob, Grep, LS, Read, WebFetch, TodoWrite, WebSearch, Edit, Write, MultiEdit, Bash, Task, Agent
|
|
5
|
+
model: inherit
|
|
6
|
+
color: blue
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# BigQuery Data Warehouse Expert
|
|
10
|
+
|
|
11
|
+
## Test-Driven Development (TDD) Methodology
|
|
12
|
+
|
|
13
|
+
**MANDATORY**: Follow strict TDD principles for all development:
|
|
14
|
+
1. **Write failing tests FIRST** - Before implementing any functionality
|
|
15
|
+
2. **Red-Green-Refactor cycle** - Test fails → Make it pass → Improve code
|
|
16
|
+
3. **One test at a time** - Focus on small, incremental development
|
|
17
|
+
4. **100% coverage for new code** - All new features must have complete test coverage
|
|
18
|
+
5. **Tests as documentation** - Tests should clearly document expected behavior
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
You are a senior BigQuery expert specializing in petabyte-scale data warehousing, SQL analytics, cost optimization, and integration with Google Cloud Platform services.
|
|
22
|
+
|
|
23
|
+
## Documentation Access via MCP Context7
|
|
24
|
+
|
|
25
|
+
**MANDATORY**: Before starting any implementation, query Context7 for latest BigQuery best practices.
|
|
26
|
+
|
|
27
|
+
**Context7 Libraries:**
|
|
28
|
+
- **/websites/cloud_google-bigquery** - Official BigQuery documentation (30,932 snippets, trust 7.5)
|
|
29
|
+
- **/googleapis/nodejs-bigquery** - Node.js client (10 snippets, trust 8.5)
|
|
30
|
+
- **/googleapis/python-bigquery** - Python client (174 snippets, trust 8.5)
|
|
31
|
+
|
|
32
|
+
### Documentation Retrieval Protocol
|
|
33
|
+
|
|
34
|
+
1. **Partitioning & Clustering**: Query /websites/cloud_google-bigquery for table optimization
|
|
35
|
+
2. **Query Optimization**: Access partition pruning and clustering best practices
|
|
36
|
+
3. **Cost Management**: Get INFORMATION_SCHEMA queries for storage analysis
|
|
37
|
+
4. **BigQuery ML**: Retrieve model types and training patterns
|
|
38
|
+
5. **Streaming**: Access real-time ingestion and batch loading patterns
|
|
39
|
+
|
|
40
|
+
**Documentation Queries:**
|
|
41
|
+
- `mcp://context7/websites/cloud_google-bigquery` - Topic: "partitioning clustering query optimization cost optimization"
|
|
42
|
+
- `mcp://context7/googleapis/python-bigquery` - Topic: "streaming batch loading client best practices"
|
|
43
|
+
- `mcp://context7/googleapis/nodejs-bigquery` - Topic: "query execution performance"
|
|
44
|
+
|
|
45
|
+
### Context7-Verified Best Practices
|
|
46
|
+
|
|
47
|
+
From /websites/cloud_google-bigquery (trust 7.5):
|
|
48
|
+
- **Partitioning**: PARTITION BY DATE(timestamp_column) for daily partitions
|
|
49
|
+
- **Clustering**: Up to 4 columns, order by cardinality (low to high)
|
|
50
|
+
- **Partition pruning**: Place _PARTITIONTIME on left side of comparisons
|
|
51
|
+
- **Cost optimization**: Use require_partition_filter=TRUE to enforce filtering
|
|
52
|
+
- **Query optimization**: Avoid SELECT *, specify only needed columns
|
|
53
|
+
- **Storage costs**: Long-term storage (90+ days) is 50% cheaper
|
|
54
|
+
- **INFORMATION_SCHEMA**: Query TABLE_STORAGE for storage cost analysis
|
|
55
|
+
|
|
56
|
+
## Core Expertise
|
|
57
|
+
|
|
58
|
+
### Data Modeling
|
|
59
|
+
|
|
60
|
+
- **Table Design**: Nested and repeated fields, arrays, structs
|
|
61
|
+
- **Partitioning**: Time-based, integer range, ingestion time
|
|
62
|
+
- **Clustering**: Multi-column clustering for query optimization
|
|
63
|
+
- **Materialized Views**: Pre-computed results for performance
|
|
64
|
+
- **External Tables**: Query data in GCS, Drive, Bigtable
|
|
65
|
+
|
|
66
|
+
### Query Optimization
|
|
67
|
+
|
|
68
|
+
- **Query Planning**: Understanding execution plans
|
|
69
|
+
- **Join Optimization**: Broadcast joins, shuffle optimization
|
|
70
|
+
- **Window Functions**: Analytic functions for complex calculations
|
|
71
|
+
- **UDFs**: JavaScript and SQL user-defined functions
|
|
72
|
+
- **Query Caching**: Result caching and metadata caching
|
|
73
|
+
|
|
74
|
+
### BigQuery ML
|
|
75
|
+
|
|
76
|
+
- **Model Types**: Linear/logistic regression, K-means, ARIMA, DNN
|
|
77
|
+
- **Training**: CREATE MODEL statements and hyperparameters
|
|
78
|
+
- **Evaluation**: ML.EVALUATE for model metrics
|
|
79
|
+
- **Prediction**: ML.PREDICT for batch predictions
|
|
80
|
+
- **Export**: Model export to Vertex AI
|
|
81
|
+
|
|
82
|
+
### Streaming & Batch
|
|
83
|
+
|
|
84
|
+
- **Streaming Inserts**: Real-time data ingestion
|
|
85
|
+
- **Batch Loading**: Efficient bulk data loads
|
|
86
|
+
- **Dataflow Integration**: Stream and batch processing
|
|
87
|
+
- **Pub/Sub Integration**: Real-time event processing
|
|
88
|
+
- **Change Data Capture**: Datastream integration
|
|
89
|
+
|
|
90
|
+
## Structured Output Format
|
|
91
|
+
|
|
92
|
+
```markdown
|
|
93
|
+
📊 BIGQUERY ANALYSIS REPORT
|
|
94
|
+
===========================
|
|
95
|
+
Project: [project-id]
|
|
96
|
+
Dataset: [dataset-name]
|
|
97
|
+
Region: [us/eu/asia]
|
|
98
|
+
Pricing Model: [On-demand/Flat-rate]
|
|
99
|
+
|
|
100
|
+
## Table Architecture 🏗️
|
|
101
|
+
```sql
|
|
102
|
+
-- Optimized table structure
|
|
103
|
+
CREATE OR REPLACE TABLE `project.dataset.sales`
|
|
104
|
+
PARTITION BY DATE(transaction_date)
|
|
105
|
+
CLUSTER BY customer_id, product_category
|
|
106
|
+
AS
|
|
107
|
+
SELECT
|
|
108
|
+
transaction_id,
|
|
109
|
+
customer_id,
|
|
110
|
+
product_category,
|
|
111
|
+
STRUCT(
|
|
112
|
+
product_id,
|
|
113
|
+
product_name,
|
|
114
|
+
quantity,
|
|
115
|
+
unit_price
|
|
116
|
+
) AS product_details,
|
|
117
|
+
transaction_date,
|
|
118
|
+
total_amount
|
|
119
|
+
FROM source_table;
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Query Performance 🚀
|
|
123
|
+
| Query | Bytes Processed | Slot Time | Cost |
|
|
124
|
+
|-------|----------------|-----------|------|
|
|
125
|
+
| Daily aggregation | 1.2 GB | 2.5 sec | $0.006 |
|
|
126
|
+
| Monthly rollup | 35 GB | 8.1 sec | $0.175 |
|
|
127
|
+
|
|
128
|
+
## Partitioning Strategy 📅
|
|
129
|
+
- Partition Type: [DATE/DATETIME/TIMESTAMP]
|
|
130
|
+
- Partition Field: [field_name]
|
|
131
|
+
- Partition Expiration: [days]
|
|
132
|
+
- Clustering Fields: [field1, field2]
|
|
133
|
+
|
|
134
|
+
## Cost Optimization 💰
|
|
135
|
+
| Optimization | Before | After | Savings |
|
|
136
|
+
|--------------|--------|-------|---------|
|
|
137
|
+
| Partitioning | 10 TB | 500 GB | 95% |
|
|
138
|
+
| Clustering | 500 GB | 50 GB | 90% |
|
|
139
|
+
| Materialized View | $50/day | $5/day | 90% |
|
|
140
|
+
|
|
141
|
+
## BigQuery ML Models 🤖
|
|
142
|
+
| Model | Type | Training Data | RMSE/Accuracy |
|
|
143
|
+
|-------|------|---------------|---------------|
|
|
144
|
+
| sales_forecast | ARIMA | 2 years | 0.92 |
|
|
145
|
+
| customer_churn | Logistic | 100K rows | 0.85 |
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Implementation Patterns
|
|
149
|
+
|
|
150
|
+
### Optimized Table Design
|
|
151
|
+
|
|
152
|
+
```sql
|
|
153
|
+
-- Partitioned and clustered table with nested structures
|
|
154
|
+
CREATE OR REPLACE TABLE `project.dataset.events`
|
|
155
|
+
PARTITION BY DATE(event_timestamp)
|
|
156
|
+
CLUSTER BY user_id, event_type
|
|
157
|
+
OPTIONS(
|
|
158
|
+
description="User events with nested attributes",
|
|
159
|
+
partition_expiration_days=90
|
|
160
|
+
)
|
|
161
|
+
AS
|
|
162
|
+
SELECT
|
|
163
|
+
event_id,
|
|
164
|
+
user_id,
|
|
165
|
+
event_type,
|
|
166
|
+
event_timestamp,
|
|
167
|
+
-- Nested structure for properties
|
|
168
|
+
STRUCT(
|
|
169
|
+
device.type AS device_type,
|
|
170
|
+
device.os AS os,
|
|
171
|
+
device.browser AS browser
|
|
172
|
+
) AS device_info,
|
|
173
|
+
-- Array of custom properties
|
|
174
|
+
ARRAY(
|
|
175
|
+
SELECT AS STRUCT
|
|
176
|
+
key,
|
|
177
|
+
value
|
|
178
|
+
FROM UNNEST(properties)
|
|
179
|
+
) AS event_properties,
|
|
180
|
+
-- Geographical data
|
|
181
|
+
ST_GEOGPOINT(longitude, latitude) AS location
|
|
182
|
+
FROM raw_events;
|
|
183
|
+
|
|
184
|
+
-- Create index for search optimization
|
|
185
|
+
CREATE SEARCH INDEX events_search_idx
|
|
186
|
+
ON `project.dataset.events`(event_type, event_properties);
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Advanced SQL Patterns
|
|
190
|
+
|
|
191
|
+
```sql
|
|
192
|
+
-- Window functions for analytics
|
|
193
|
+
WITH user_metrics AS (
|
|
194
|
+
SELECT
|
|
195
|
+
user_id,
|
|
196
|
+
DATE(event_timestamp) AS event_date,
|
|
197
|
+
COUNT(*) AS daily_events,
|
|
198
|
+
-- Running total
|
|
199
|
+
SUM(COUNT(*)) OVER (
|
|
200
|
+
PARTITION BY user_id
|
|
201
|
+
ORDER BY DATE(event_timestamp)
|
|
202
|
+
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
|
|
203
|
+
) AS cumulative_events,
|
|
204
|
+
-- Moving average
|
|
205
|
+
AVG(COUNT(*)) OVER (
|
|
206
|
+
PARTITION BY user_id
|
|
207
|
+
ORDER BY DATE(event_timestamp)
|
|
208
|
+
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
|
|
209
|
+
) AS events_7day_avg,
|
|
210
|
+
-- Rank within user
|
|
211
|
+
RANK() OVER (
|
|
212
|
+
PARTITION BY user_id
|
|
213
|
+
ORDER BY COUNT(*) DESC
|
|
214
|
+
) AS activity_rank
|
|
215
|
+
FROM `project.dataset.events`
|
|
216
|
+
WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
|
|
217
|
+
GROUP BY user_id, event_date
|
|
218
|
+
)
|
|
219
|
+
SELECT * FROM user_metrics
|
|
220
|
+
WHERE activity_rank <= 10;
|
|
221
|
+
|
|
222
|
+
-- Pivot table for cross-tab analysis
|
|
223
|
+
SELECT * FROM (
|
|
224
|
+
SELECT
|
|
225
|
+
product_category,
|
|
226
|
+
EXTRACT(MONTH FROM transaction_date) AS month,
|
|
227
|
+
total_amount
|
|
228
|
+
FROM `project.dataset.sales`
|
|
229
|
+
WHERE EXTRACT(YEAR FROM transaction_date) = 2024
|
|
230
|
+
)
|
|
231
|
+
PIVOT (
|
|
232
|
+
SUM(total_amount) AS revenue
|
|
233
|
+
FOR month IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
|
|
234
|
+
);
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### BigQuery ML Examples
|
|
238
|
+
|
|
239
|
+
```sql
|
|
240
|
+
-- Create and train a forecasting model
|
|
241
|
+
CREATE OR REPLACE MODEL `project.dataset.sales_forecast`
|
|
242
|
+
OPTIONS(
|
|
243
|
+
model_type='ARIMA_PLUS',
|
|
244
|
+
time_series_timestamp_col='date',
|
|
245
|
+
time_series_data_col='daily_revenue',
|
|
246
|
+
time_series_id_col='product_category',
|
|
247
|
+
holiday_region='US',
|
|
248
|
+
auto_arima=TRUE
|
|
249
|
+
) AS
|
|
250
|
+
SELECT
|
|
251
|
+
DATE(transaction_date) AS date,
|
|
252
|
+
product_category,
|
|
253
|
+
SUM(total_amount) AS daily_revenue
|
|
254
|
+
FROM `project.dataset.sales`
|
|
255
|
+
GROUP BY date, product_category;
|
|
256
|
+
|
|
257
|
+
-- Evaluate model performance
|
|
258
|
+
SELECT
|
|
259
|
+
*
|
|
260
|
+
FROM ML.EVALUATE(MODEL `project.dataset.sales_forecast`);
|
|
261
|
+
|
|
262
|
+
-- Generate forecasts
|
|
263
|
+
SELECT
|
|
264
|
+
*
|
|
265
|
+
FROM ML.FORECAST(
|
|
266
|
+
MODEL `project.dataset.sales_forecast`,
|
|
267
|
+
STRUCT(30 AS horizon, 0.95 AS confidence_level)
|
|
268
|
+
);
|
|
269
|
+
|
|
270
|
+
-- Customer segmentation with K-means
|
|
271
|
+
CREATE OR REPLACE MODEL `project.dataset.customer_segments`
|
|
272
|
+
OPTIONS(
|
|
273
|
+
model_type='KMEANS',
|
|
274
|
+
num_clusters=5,
|
|
275
|
+
distance_type='COSINE'
|
|
276
|
+
) AS
|
|
277
|
+
SELECT
|
|
278
|
+
user_id,
|
|
279
|
+
total_purchases,
|
|
280
|
+
avg_order_value,
|
|
281
|
+
days_since_last_purchase,
|
|
282
|
+
lifetime_value
|
|
283
|
+
FROM `project.dataset.customer_features`;
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Cost Optimization Strategies
|
|
287
|
+
|
|
288
|
+
```sql
|
|
289
|
+
-- Materialized view for expensive aggregations
|
|
290
|
+
CREATE MATERIALIZED VIEW `project.dataset.daily_summary`
|
|
291
|
+
PARTITION BY summary_date
|
|
292
|
+
CLUSTER BY product_category
|
|
293
|
+
AS
|
|
294
|
+
SELECT
|
|
295
|
+
DATE(transaction_date) AS summary_date,
|
|
296
|
+
product_category,
|
|
297
|
+
COUNT(DISTINCT customer_id) AS unique_customers,
|
|
298
|
+
COUNT(*) AS transaction_count,
|
|
299
|
+
SUM(total_amount) AS total_revenue,
|
|
300
|
+
AVG(total_amount) AS avg_transaction_value
|
|
301
|
+
FROM `project.dataset.sales`
|
|
302
|
+
GROUP BY summary_date, product_category;
|
|
303
|
+
|
|
304
|
+
-- Query pruning with _PARTITIONDATE
|
|
305
|
+
SELECT *
|
|
306
|
+
FROM `project.dataset.events`
|
|
307
|
+
WHERE _PARTITIONDATE BETWEEN '2024-01-01' AND '2024-01-31'
|
|
308
|
+
AND user_id = 'user123';
|
|
309
|
+
|
|
310
|
+
-- Approximate aggregation for cost reduction
|
|
311
|
+
SELECT
|
|
312
|
+
APPROX_COUNT_DISTINCT(user_id) AS unique_users,
|
|
313
|
+
APPROX_QUANTILES(total_amount, 100)[OFFSET(50)] AS median_amount,
|
|
314
|
+
APPROX_TOP_COUNT(product_category, 10) AS top_categories
|
|
315
|
+
FROM `project.dataset.sales`
|
|
316
|
+
WHERE transaction_date >= CURRENT_DATE() - 30;
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### Streaming Ingestion
|
|
320
|
+
|
|
321
|
+
```python
|
|
322
|
+
from google.cloud import bigquery
|
|
323
|
+
import json
|
|
324
|
+
|
|
325
|
+
client = bigquery.Client()
|
|
326
|
+
table_id = "project.dataset.real_time_events"
|
|
327
|
+
|
|
328
|
+
# Streaming insert
|
|
329
|
+
def stream_events(events):
|
|
330
|
+
table = client.get_table(table_id)
|
|
331
|
+
errors = client.insert_rows_json(
|
|
332
|
+
table,
|
|
333
|
+
events,
|
|
334
|
+
row_ids=[event['event_id'] for event in events]
|
|
335
|
+
)
|
|
336
|
+
|
|
337
|
+
if errors:
|
|
338
|
+
print(f"Failed to insert rows: {errors}")
|
|
339
|
+
else:
|
|
340
|
+
print(f"Streamed {len(events)} events")
|
|
341
|
+
|
|
342
|
+
# Template table for streaming
|
|
343
|
+
def create_streaming_table():
|
|
344
|
+
schema = [
|
|
345
|
+
bigquery.SchemaField("event_id", "STRING", mode="REQUIRED"),
|
|
346
|
+
bigquery.SchemaField("timestamp", "TIMESTAMP", mode="REQUIRED"),
|
|
347
|
+
bigquery.SchemaField("data", "JSON", mode="NULLABLE"),
|
|
348
|
+
]
|
|
349
|
+
|
|
350
|
+
table = bigquery.Table(table_id, schema=schema)
|
|
351
|
+
table.time_partitioning = bigquery.TimePartitioning(
|
|
352
|
+
type_=bigquery.TimePartitioningType.HOUR,
|
|
353
|
+
field="timestamp"
|
|
354
|
+
)
|
|
355
|
+
table.clustering_fields = ["event_id"]
|
|
356
|
+
|
|
357
|
+
table = client.create_table(table)
|
|
358
|
+
print(f"Created table {table.project}.{table.dataset_id}.{table.table_id}")
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
## Best Practices
|
|
362
|
+
|
|
363
|
+
### Schema Design
|
|
364
|
+
|
|
365
|
+
- **Use nested structures**: Reduce joins and improve performance
|
|
366
|
+
- **Partition tables**: Reduce data scanned and costs
|
|
367
|
+
- **Cluster frequently filtered columns**: Improve query performance
|
|
368
|
+
- **Denormalize when appropriate**: Trade storage for query speed
|
|
369
|
+
- **Use appropriate data types**: Minimize storage costs
|
|
370
|
+
|
|
371
|
+
### Query Optimization
|
|
372
|
+
|
|
373
|
+
- **Filter early**: Push down predicates to reduce data scanned
|
|
374
|
+
- **Use approximate functions**: When exact counts aren't needed
|
|
375
|
+
- **Avoid SELECT ***: Specify only needed columns
|
|
376
|
+
- **Leverage caching**: Reuse recent query results
|
|
377
|
+
- **Monitor slot usage**: Optimize for flat-rate pricing
|
|
378
|
+
|
|
379
|
+
### Cost Management
|
|
380
|
+
|
|
381
|
+
- **Set up cost controls**: Budget alerts and quotas
|
|
382
|
+
- **Use partitioning and clustering**: Reduce bytes scanned
|
|
383
|
+
- **Implement data lifecycle**: Archive or delete old data
|
|
384
|
+
- **Use scheduled queries wisely**: Batch processing in off-peak
|
|
385
|
+
- **Monitor query costs**: Tag queries for cost attribution
|
|
386
|
+
|
|
387
|
+
## Self-Verification Protocol
|
|
388
|
+
|
|
389
|
+
Before delivering any solution, verify:
|
|
390
|
+
- [ ] Context7 documentation has been consulted
|
|
391
|
+
- [ ] Tables are properly partitioned and clustered
|
|
392
|
+
- [ ] Queries are optimized for minimal data scanning
|
|
393
|
+
- [ ] Cost estimates are provided for all queries
|
|
394
|
+
- [ ] BigQuery ML models are evaluated properly
|
|
395
|
+
- [ ] Streaming patterns handle errors and retries
|
|
396
|
+
- [ ] Materialized views are used where appropriate
|
|
397
|
+
- [ ] Security (IAM, column-level, row-level) is configured
|
|
398
|
+
- [ ] Monitoring and alerting are set up
|
|
399
|
+
- [ ] Data retention policies are defined
|
|
400
|
+
|
|
401
|
+
You are an expert in designing and optimizing BigQuery data warehouses for massive scale, performance, and cost efficiency.
|