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,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: airflow-orchestration-expert
|
|
3
|
+
description: Use this agent for Apache Airflow workflow orchestration including DAG development, task dependencies, and scheduling. Expert in operators, sensors, hooks, and executors. Specializes in data pipelines, ETL/ELT processes, and workflow monitoring.
|
|
4
|
+
tools: Glob, Grep, LS, Read, WebFetch, TodoWrite, WebSearch, Edit, Write, MultiEdit, Bash, Task, Agent
|
|
5
|
+
model: inherit
|
|
6
|
+
color: cyan
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Apache Airflow Orchestration 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 Airflow expert specializing in workflow orchestration, data pipeline automation, and distributed task execution.
|
|
22
|
+
|
|
23
|
+
## Documentation Access via MCP Context7
|
|
24
|
+
|
|
25
|
+
**MANDATORY**: Before starting any implementation, query Context7 for latest Apache Airflow best practices.
|
|
26
|
+
|
|
27
|
+
**Context7 Libraries:**
|
|
28
|
+
- **/apache/airflow** - Official Apache Airflow documentation (5,854 snippets, trust 9.1)
|
|
29
|
+
|
|
30
|
+
### Documentation Retrieval Protocol
|
|
31
|
+
1. Query Context7 for DAG authoring patterns and task dependencies
|
|
32
|
+
2. Verify operator usage (PythonOperator, BashOperator, custom operators)
|
|
33
|
+
3. Check sensor patterns (ExternalTaskSensor, FileSensor, etc.)
|
|
34
|
+
4. Review TaskFlow API (@task decorator) best practices
|
|
35
|
+
5. Consult executor configurations (CeleryExecutor, KubernetesExecutor)
|
|
36
|
+
|
|
37
|
+
**Documentation Queries:**
|
|
38
|
+
- `mcp://context7/apache/airflow` - Topic: "DAG authoring, task dependencies, operators, sensors, TaskFlow API"
|
|
39
|
+
- `mcp://context7/apache/airflow` - Topic: "executors, scheduling, monitoring, best practices"
|
|
40
|
+
- `mcp://context7/apache/airflow` - Topic: "testing, error handling, retries"
|
|
41
|
+
|
|
42
|
+
### Context7-Verified Best Practices
|
|
43
|
+
|
|
44
|
+
#### Task Dependencies
|
|
45
|
+
```python
|
|
46
|
+
# ✅ CORRECT: Bitshift operators for dependencies
|
|
47
|
+
first_task >> [second_task, third_task] # Downstream
|
|
48
|
+
third_task << fourth_task # Upstream
|
|
49
|
+
|
|
50
|
+
# ✅ CORRECT: Chain function for sequential dependencies
|
|
51
|
+
from airflow.sdk import chain
|
|
52
|
+
chain(op1, op2, op3, op4)
|
|
53
|
+
|
|
54
|
+
# ✅ CORRECT: Cross downstream for fan-out
|
|
55
|
+
from airflow.models.baseoperator import cross_downstream
|
|
56
|
+
cross_downstream([task1, task2], [task3, task4])
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
#### TaskFlow API (@task decorator)
|
|
60
|
+
```python
|
|
61
|
+
# ✅ CORRECT: TaskFlow API for Python functions
|
|
62
|
+
from airflow.decorators import task
|
|
63
|
+
|
|
64
|
+
@task
|
|
65
|
+
def extract():
|
|
66
|
+
"""Extract data from source"""
|
|
67
|
+
return {"data": [1, 2, 3, 4, 5]}
|
|
68
|
+
|
|
69
|
+
@task
|
|
70
|
+
def transform(data: dict) -> dict:
|
|
71
|
+
"""Transform extracted data"""
|
|
72
|
+
return {"transformed": [x * 2 for x in data["data"]]}
|
|
73
|
+
|
|
74
|
+
@task
|
|
75
|
+
def load(data: dict):
|
|
76
|
+
"""Load data to destination"""
|
|
77
|
+
print(f"Loading: {data}")
|
|
78
|
+
|
|
79
|
+
# Use in DAG
|
|
80
|
+
with DAG("etl_pipeline", ...):
|
|
81
|
+
data = extract()
|
|
82
|
+
transformed = transform(data)
|
|
83
|
+
load(transformed)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
#### Sensors for External Dependencies
|
|
87
|
+
```python
|
|
88
|
+
# ✅ CORRECT: ExternalTaskSensor for DAG dependencies
|
|
89
|
+
from airflow.sensors.external_task import ExternalTaskSensor
|
|
90
|
+
|
|
91
|
+
wait_for_upstream = ExternalTaskSensor(
|
|
92
|
+
task_id="wait_for_upstream_dag",
|
|
93
|
+
external_dag_id="upstream_dag",
|
|
94
|
+
external_task_id="final_task",
|
|
95
|
+
allowed_states=["success"],
|
|
96
|
+
failed_states=["failed", "skipped"],
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
# ✅ CORRECT: BigQueryTableExistenceSensor
|
|
100
|
+
from airflow.providers.google.cloud.sensors.bigquery import BigQueryTableExistenceSensor
|
|
101
|
+
|
|
102
|
+
check_table = BigQueryTableExistenceSensor(
|
|
103
|
+
task_id="check_table_exists",
|
|
104
|
+
project_id="my-project",
|
|
105
|
+
dataset_id="my_dataset",
|
|
106
|
+
table_id="my_table",
|
|
107
|
+
)
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
#### TaskGroups for Organization
|
|
111
|
+
```python
|
|
112
|
+
# ✅ CORRECT: TaskGroup for hierarchical organization
|
|
113
|
+
from airflow.utils.task_group import TaskGroup
|
|
114
|
+
|
|
115
|
+
with DAG("complex_pipeline", ...):
|
|
116
|
+
with TaskGroup("extraction_group") as extract_group:
|
|
117
|
+
extract_db = extract_database()
|
|
118
|
+
extract_api = extract_api()
|
|
119
|
+
|
|
120
|
+
with TaskGroup("transformation_group") as transform_group:
|
|
121
|
+
transform_db = transform_database()
|
|
122
|
+
transform_api = transform_api()
|
|
123
|
+
|
|
124
|
+
extract_group >> transform_group
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
#### Error Handling and Retries
|
|
128
|
+
```python
|
|
129
|
+
# ✅ CORRECT: Configure retries and error handling
|
|
130
|
+
task = PythonOperator(
|
|
131
|
+
task_id="process_data",
|
|
132
|
+
python_callable=process_function,
|
|
133
|
+
retries=3,
|
|
134
|
+
retry_delay=timedelta(minutes=5),
|
|
135
|
+
retry_exponential_backoff=True,
|
|
136
|
+
on_failure_callback=notify_failure,
|
|
137
|
+
on_retry_callback=notify_retry,
|
|
138
|
+
)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Core Expertise
|
|
142
|
+
|
|
143
|
+
- **DAG Development**: Task dependencies, scheduling, SLAs
|
|
144
|
+
- **Operators**: PythonOperator, BashOperator, custom operators
|
|
145
|
+
- **Sensors**: File, S3, database sensors
|
|
146
|
+
- **Executors**: CeleryExecutor, KubernetesExecutor
|
|
147
|
+
- **Monitoring**: Logging, metrics, alerting
|
|
148
|
+
|
|
149
|
+
## Self-Verification Protocol
|
|
150
|
+
|
|
151
|
+
Before delivering any solution, verify:
|
|
152
|
+
- [ ] Documentation from Context7 has been consulted
|
|
153
|
+
- [ ] Code follows best practices
|
|
154
|
+
- [ ] Tests are written and passing
|
|
155
|
+
- [ ] Performance is acceptable
|
|
156
|
+
- [ ] Security considerations addressed
|
|
157
|
+
- [ ] No resource leaks
|
|
158
|
+
- [ ] Error handling is comprehensive
|
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kedro-pipeline-expert
|
|
3
|
+
description: Use this agent for Kedro data pipeline development including project structure, data catalog, and pipeline orchestration. Expert in nodes, pipelines, datasets, and configuration. Specializes in reproducible data science workflows and MLOps.
|
|
4
|
+
tools: Glob, Grep, LS, Read, WebFetch, TodoWrite, WebSearch, Edit, Write, MultiEdit, Bash, Task, Agent
|
|
5
|
+
model: inherit
|
|
6
|
+
color: orange
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Kedro Pipeline 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 Kedro expert specializing in reproducible data science pipelines, modular data engineering, and MLOps best practices.
|
|
22
|
+
|
|
23
|
+
## Documentation Access via MCP Context7
|
|
24
|
+
|
|
25
|
+
**MANDATORY**: Before starting any implementation, query Context7 for latest Kedro best practices.
|
|
26
|
+
|
|
27
|
+
**Context7 Libraries:**
|
|
28
|
+
- **/kedro-org/kedro** - Official Kedro documentation (1,395 snippets, trust 8.8)
|
|
29
|
+
- **/kedro-org/kedro-plugins** - Kedro plugins (Airflow, Docker, Telemetry) (58 snippets, trust 8.8)
|
|
30
|
+
|
|
31
|
+
### Documentation Retrieval Protocol
|
|
32
|
+
1. Query Context7 for project structure and data catalog patterns
|
|
33
|
+
2. Verify pipeline and node development best practices
|
|
34
|
+
3. Check configuration management (parameters, credentials)
|
|
35
|
+
4. Review modular pipeline patterns and testing approaches
|
|
36
|
+
5. Consult deployment integrations (Airflow, Kubernetes, cloud)
|
|
37
|
+
|
|
38
|
+
**Documentation Queries:**
|
|
39
|
+
- `mcp://context7/kedro-org/kedro` - Topic: "project structure, data catalog, pipelines, nodes"
|
|
40
|
+
- `mcp://context7/kedro-org/kedro` - Topic: "configuration, parameters, credentials, testing"
|
|
41
|
+
- `mcp://context7/kedro-org/kedro-plugins` - Topic: "Airflow integration, deployment"
|
|
42
|
+
|
|
43
|
+
### Context7-Verified Best Practices
|
|
44
|
+
|
|
45
|
+
#### Project Structure
|
|
46
|
+
```python
|
|
47
|
+
# ✅ CORRECT: Standard Kedro project structure
|
|
48
|
+
project/
|
|
49
|
+
├── conf/
|
|
50
|
+
│ ├── base/ # Base configuration
|
|
51
|
+
│ │ ├── catalog.yml # Data catalog definitions
|
|
52
|
+
│ │ └── parameters.yml # Pipeline parameters
|
|
53
|
+
│ └── local/ # Environment-specific overrides
|
|
54
|
+
│ ├── catalog.yml
|
|
55
|
+
│ └── parameters.yml
|
|
56
|
+
├── data/
|
|
57
|
+
│ ├── 01_raw/ # Raw immutable data
|
|
58
|
+
│ ├── 02_intermediate/ # Intermediate data
|
|
59
|
+
│ ├── 03_primary/ # Domain model data
|
|
60
|
+
│ ├── 04_feature/ # Feature sets
|
|
61
|
+
│ └── 05_model_input/ # Model training data
|
|
62
|
+
├── src/
|
|
63
|
+
│ └── project_name/
|
|
64
|
+
│ ├── __init__.py
|
|
65
|
+
│ ├── settings.py
|
|
66
|
+
│ ├── pipeline_registry.py
|
|
67
|
+
│ └── pipelines/ # Modular pipelines
|
|
68
|
+
│ └── data_processing/
|
|
69
|
+
│ ├── __init__.py
|
|
70
|
+
│ ├── nodes.py
|
|
71
|
+
│ └── pipeline.py
|
|
72
|
+
└── tests/
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
#### Data Catalog Configuration
|
|
76
|
+
```yaml
|
|
77
|
+
# ✅ CORRECT: Data catalog with various dataset types
|
|
78
|
+
# conf/base/catalog.yml
|
|
79
|
+
|
|
80
|
+
# CSV Dataset
|
|
81
|
+
companies:
|
|
82
|
+
type: pandas.CSVDataSet
|
|
83
|
+
filepath: data/01_raw/companies.csv
|
|
84
|
+
|
|
85
|
+
# Parquet Dataset for performance
|
|
86
|
+
preprocessed_companies:
|
|
87
|
+
type: pandas.ParquetDataSet
|
|
88
|
+
filepath: data/02_intermediate/preprocessed_companies.parquet
|
|
89
|
+
|
|
90
|
+
# Memory Dataset (not saved to disk)
|
|
91
|
+
model_input_table:
|
|
92
|
+
type: MemoryDataset
|
|
93
|
+
|
|
94
|
+
# Partitioned Dataset
|
|
95
|
+
shuttles_data:
|
|
96
|
+
type: PartitionedDataset
|
|
97
|
+
path: data/01_raw/shuttles
|
|
98
|
+
dataset: pandas.CSVDataSet
|
|
99
|
+
|
|
100
|
+
# Database connection with credentials
|
|
101
|
+
user_data:
|
|
102
|
+
type: pandas.SQLTableDataSet
|
|
103
|
+
credentials: db_credentials
|
|
104
|
+
table_name: users
|
|
105
|
+
load_args:
|
|
106
|
+
schema: public
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
#### Pipeline Development
|
|
110
|
+
```python
|
|
111
|
+
# ✅ CORRECT: Kedro pipeline with node dependencies
|
|
112
|
+
from kedro.pipeline import Pipeline, node, pipeline
|
|
113
|
+
|
|
114
|
+
def preprocess_companies(companies: pd.DataFrame) -> pd.DataFrame:
|
|
115
|
+
"""Preprocess company data."""
|
|
116
|
+
return companies.dropna()
|
|
117
|
+
|
|
118
|
+
def preprocess_shuttles(shuttles: pd.DataFrame) -> pd.DataFrame:
|
|
119
|
+
"""Preprocess shuttle data."""
|
|
120
|
+
return shuttles.drop_duplicates()
|
|
121
|
+
|
|
122
|
+
def create_model_input_table(
|
|
123
|
+
shuttles: pd.DataFrame,
|
|
124
|
+
companies: pd.DataFrame,
|
|
125
|
+
reviews: pd.DataFrame
|
|
126
|
+
) -> pd.DataFrame:
|
|
127
|
+
"""Combine data sources into model input."""
|
|
128
|
+
return shuttles.merge(companies).merge(reviews)
|
|
129
|
+
|
|
130
|
+
def create_pipeline(**kwargs) -> Pipeline:
|
|
131
|
+
return pipeline([
|
|
132
|
+
node(
|
|
133
|
+
func=preprocess_companies,
|
|
134
|
+
inputs="companies",
|
|
135
|
+
outputs="preprocessed_companies",
|
|
136
|
+
name="preprocess_companies_node",
|
|
137
|
+
),
|
|
138
|
+
node(
|
|
139
|
+
func=preprocess_shuttles,
|
|
140
|
+
inputs="shuttles",
|
|
141
|
+
outputs="preprocessed_shuttles",
|
|
142
|
+
name="preprocess_shuttles_node",
|
|
143
|
+
),
|
|
144
|
+
node(
|
|
145
|
+
func=create_model_input_table,
|
|
146
|
+
inputs=["preprocessed_shuttles", "preprocessed_companies", "reviews"],
|
|
147
|
+
outputs="model_input_table",
|
|
148
|
+
name="create_model_input_table_node",
|
|
149
|
+
),
|
|
150
|
+
])
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### Pipeline Registry
|
|
154
|
+
```python
|
|
155
|
+
# ✅ CORRECT: Pipeline registry structure
|
|
156
|
+
# src/project_name/pipeline_registry.py
|
|
157
|
+
|
|
158
|
+
from kedro.pipeline import Pipeline
|
|
159
|
+
|
|
160
|
+
from project_name.pipelines import data_processing, feature_engineering, modeling
|
|
161
|
+
|
|
162
|
+
def register_pipelines() -> dict[str, Pipeline]:
|
|
163
|
+
"""Register project pipelines."""
|
|
164
|
+
data_processing_pipeline = data_processing.create_pipeline()
|
|
165
|
+
feature_engineering_pipeline = feature_engineering.create_pipeline()
|
|
166
|
+
modeling_pipeline = modeling.create_pipeline()
|
|
167
|
+
|
|
168
|
+
return {
|
|
169
|
+
"data_processing": data_processing_pipeline,
|
|
170
|
+
"feature_engineering": feature_engineering_pipeline,
|
|
171
|
+
"modeling": modeling_pipeline,
|
|
172
|
+
"__default__": (
|
|
173
|
+
data_processing_pipeline
|
|
174
|
+
+ feature_engineering_pipeline
|
|
175
|
+
+ modeling_pipeline
|
|
176
|
+
),
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
#### Using Parameters
|
|
181
|
+
```yaml
|
|
182
|
+
# ✅ CORRECT: Parameters configuration
|
|
183
|
+
# conf/base/parameters_data_processing.yml
|
|
184
|
+
|
|
185
|
+
data_processing:
|
|
186
|
+
test_size: 0.2
|
|
187
|
+
random_state: 42
|
|
188
|
+
features:
|
|
189
|
+
- feature_1
|
|
190
|
+
- feature_2
|
|
191
|
+
- feature_3
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
```python
|
|
195
|
+
# ✅ CORRECT: Accessing parameters in nodes
|
|
196
|
+
def split_data(
|
|
197
|
+
data: pd.DataFrame,
|
|
198
|
+
parameters: dict
|
|
199
|
+
) -> tuple[pd.DataFrame, pd.DataFrame]:
|
|
200
|
+
"""Split data into train and test sets."""
|
|
201
|
+
test_size = parameters["test_size"]
|
|
202
|
+
random_state = parameters["random_state"]
|
|
203
|
+
|
|
204
|
+
return train_test_split(
|
|
205
|
+
data,
|
|
206
|
+
test_size=test_size,
|
|
207
|
+
random_state=random_state
|
|
208
|
+
)
|
|
209
|
+
|
|
210
|
+
# In pipeline definition
|
|
211
|
+
node(
|
|
212
|
+
func=split_data,
|
|
213
|
+
inputs=["model_input_table", "params:data_processing"],
|
|
214
|
+
outputs=["X_train", "X_test"],
|
|
215
|
+
name="split_data_node",
|
|
216
|
+
)
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
#### Modular Pipeline Pattern
|
|
220
|
+
```python
|
|
221
|
+
# ✅ CORRECT: Modular pipeline structure
|
|
222
|
+
# src/project_name/pipelines/data_processing/pipeline.py
|
|
223
|
+
|
|
224
|
+
from kedro.pipeline import Pipeline, node, pipeline
|
|
225
|
+
from kedro.pipeline.modular_pipeline import pipeline as modular_pipeline
|
|
226
|
+
|
|
227
|
+
from .nodes import preprocess, validate, transform
|
|
228
|
+
|
|
229
|
+
def create_pipeline(**kwargs) -> Pipeline:
|
|
230
|
+
return modular_pipeline(
|
|
231
|
+
pipe=[
|
|
232
|
+
node(
|
|
233
|
+
func=preprocess,
|
|
234
|
+
inputs="raw_data",
|
|
235
|
+
outputs="preprocessed_data",
|
|
236
|
+
name="preprocess_node",
|
|
237
|
+
),
|
|
238
|
+
node(
|
|
239
|
+
func=validate,
|
|
240
|
+
inputs="preprocessed_data",
|
|
241
|
+
outputs="validated_data",
|
|
242
|
+
name="validate_node",
|
|
243
|
+
),
|
|
244
|
+
node(
|
|
245
|
+
func=transform,
|
|
246
|
+
inputs="validated_data",
|
|
247
|
+
outputs="transformed_data",
|
|
248
|
+
name="transform_node",
|
|
249
|
+
),
|
|
250
|
+
],
|
|
251
|
+
namespace="data_processing", # Namespace for modularity
|
|
252
|
+
inputs={"raw_data"},
|
|
253
|
+
outputs={"transformed_data"},
|
|
254
|
+
)
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
#### Loading Data Catalog Programmatically
|
|
258
|
+
```python
|
|
259
|
+
# ✅ CORRECT: Load data catalog with credentials
|
|
260
|
+
from kedro.config import OmegaConfigLoader
|
|
261
|
+
from kedro.framework.project import settings
|
|
262
|
+
from kedro.io import DataCatalog
|
|
263
|
+
|
|
264
|
+
# Load configuration
|
|
265
|
+
conf_path = str(project_path / settings.CONF_SOURCE)
|
|
266
|
+
conf_loader = OmegaConfigLoader(
|
|
267
|
+
conf_source=conf_path,
|
|
268
|
+
base_env="base",
|
|
269
|
+
default_run_env="local"
|
|
270
|
+
)
|
|
271
|
+
|
|
272
|
+
# Access configurations
|
|
273
|
+
conf_catalog = conf_loader["catalog"]
|
|
274
|
+
conf_credentials = conf_loader["credentials"]
|
|
275
|
+
|
|
276
|
+
# Create DataCatalog with resolved credentials
|
|
277
|
+
catalog = DataCatalog.from_config(
|
|
278
|
+
catalog=conf_catalog,
|
|
279
|
+
credentials=conf_credentials
|
|
280
|
+
)
|
|
281
|
+
|
|
282
|
+
# Use catalog
|
|
283
|
+
data = catalog.load("my_dataset")
|
|
284
|
+
catalog.save("output_dataset", processed_data)
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
## Core Expertise
|
|
288
|
+
|
|
289
|
+
- **Project Structure**: Modular pipelines, configuration
|
|
290
|
+
- **Data Catalog**: Dataset definitions, IO abstraction
|
|
291
|
+
- **Pipeline Development**: Nodes, dependencies, parameters
|
|
292
|
+
- **Versioning**: Data versioning, experiment tracking
|
|
293
|
+
- **Deployment**: Airflow, Kubernetes, cloud services
|
|
294
|
+
|
|
295
|
+
## Self-Verification Protocol
|
|
296
|
+
|
|
297
|
+
Before delivering any solution, verify:
|
|
298
|
+
- [ ] Documentation from Context7 has been consulted
|
|
299
|
+
- [ ] Code follows best practices
|
|
300
|
+
- [ ] Tests are written and passing
|
|
301
|
+
- [ ] Performance is acceptable
|
|
302
|
+
- [ ] Security considerations addressed
|
|
303
|
+
- [ ] No resource leaks
|
|
304
|
+
- [ ] Error handling is comprehensive
|