@ruaruababa/vibe-kit 1.0.0
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/CATALOG.md +317 -0
- package/README.md +121 -0
- package/aliases.json +65 -0
- package/bin/vibe.js +2 -0
- package/bundles.json +265 -0
- package/catalog.json +1560 -0
- package/dist/antigravity-skills/bin/cli.js +438 -0
- package/dist/antigravity-skills/lib/skill-utils.js +158 -0
- package/dist/antigravity-skills/scripts/build-catalog.js +305 -0
- package/dist/antigravity-skills/scripts/normalize-frontmatter.js +144 -0
- package/dist/antigravity-skills/scripts/validate-skills.js +230 -0
- package/dist/bin/vibe.js +2 -0
- package/dist/dist/src/cli/index.js +26 -0
- package/dist/lib/skill-utils.js +158 -0
- package/dist/scripts/build-catalog.js +50 -0
- package/dist/scripts/normalize-frontmatter.js +144 -0
- package/dist/scripts/validate-skills.js +56 -0
- package/dist/src/cli/index.js +146 -0
- package/dist/src/types/index.js +13 -0
- package/dist/src/utils/fs.js +1 -0
- package/package.json +43 -0
- package/skills/accessibility-compliance-accessibility-audit/SKILL.md +42 -0
- package/skills/accessibility-compliance-accessibility-audit/resources/implementation-playbook.md +502 -0
- package/skills/agent-orchestration-improve-agent/SKILL.md +349 -0
- package/skills/agent-orchestration-multi-agent-optimize/SKILL.md +239 -0
- package/skills/agent-orchestrator/SKILL.md +24 -0
- package/skills/ai-engineer/SKILL.md +171 -0
- package/skills/airflow-dag-patterns/SKILL.md +41 -0
- package/skills/airflow-dag-patterns/resources/implementation-playbook.md +509 -0
- package/skills/angular-migration/SKILL.md +428 -0
- package/skills/anti-reversing-techniques/SKILL.md +42 -0
- package/skills/anti-reversing-techniques/resources/implementation-playbook.md +539 -0
- package/skills/api-design-principles/SKILL.md +37 -0
- package/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/skills/api-documenter/SKILL.md +184 -0
- package/skills/api-testing-observability-api-mock/SKILL.md +46 -0
- package/skills/api-testing-observability-api-mock/resources/implementation-playbook.md +1327 -0
- package/skills/application-performance-performance-optimization/SKILL.md +154 -0
- package/skills/architect-review/SKILL.md +174 -0
- package/skills/architecture-decision-records/SKILL.md +441 -0
- package/skills/architecture-patterns/SKILL.md +37 -0
- package/skills/architecture-patterns/resources/implementation-playbook.md +479 -0
- package/skills/arm-cortex-expert/SKILL.md +306 -0
- package/skills/async-python-patterns/SKILL.md +39 -0
- package/skills/async-python-patterns/resources/implementation-playbook.md +678 -0
- package/skills/attack-tree-construction/SKILL.md +38 -0
- package/skills/attack-tree-construction/resources/implementation-playbook.md +671 -0
- package/skills/auth-implementation-patterns/SKILL.md +39 -0
- package/skills/auth-implementation-patterns/resources/implementation-playbook.md +618 -0
- package/skills/backend-architect/SKILL.md +333 -0
- package/skills/backend-development-feature-development/SKILL.md +180 -0
- package/skills/backend-security-coder/SKILL.md +156 -0
- package/skills/backtesting-frameworks/SKILL.md +39 -0
- package/skills/backtesting-frameworks/resources/implementation-playbook.md +647 -0
- package/skills/bash-defensive-patterns/SKILL.md +43 -0
- package/skills/bash-defensive-patterns/resources/implementation-playbook.md +517 -0
- package/skills/bash-pro/SKILL.md +310 -0
- package/skills/bats-testing-patterns/SKILL.md +34 -0
- package/skills/bats-testing-patterns/resources/implementation-playbook.md +614 -0
- package/skills/bazel-build-optimization/SKILL.md +397 -0
- package/skills/billing-automation/SKILL.md +42 -0
- package/skills/billing-automation/resources/implementation-playbook.md +544 -0
- package/skills/binary-analysis-patterns/SKILL.md +450 -0
- package/skills/blockchain-developer/SKILL.md +208 -0
- package/skills/business-analyst/SKILL.md +182 -0
- package/skills/c-pro/SKILL.md +56 -0
- package/skills/c4-architecture-c4-architecture/SKILL.md +389 -0
- package/skills/c4-code/SKILL.md +244 -0
- package/skills/c4-component/SKILL.md +153 -0
- package/skills/c4-container/SKILL.md +171 -0
- package/skills/c4-context/SKILL.md +150 -0
- package/skills/changelog-automation/SKILL.md +38 -0
- package/skills/changelog-automation/resources/implementation-playbook.md +538 -0
- package/skills/cicd-automation-workflow-automate/SKILL.md +51 -0
- package/skills/cicd-automation-workflow-automate/resources/implementation-playbook.md +1333 -0
- package/skills/clean-markdown/SKILL.md +23 -0
- package/skills/cloud-architect/SKILL.md +135 -0
- package/skills/code-documentation-code-explain/SKILL.md +46 -0
- package/skills/code-documentation-code-explain/resources/implementation-playbook.md +802 -0
- package/skills/code-documentation-doc-generate/SKILL.md +48 -0
- package/skills/code-documentation-doc-generate/resources/implementation-playbook.md +640 -0
- package/skills/code-refactoring-context-restore/SKILL.md +179 -0
- package/skills/code-refactoring-refactor-clean/SKILL.md +51 -0
- package/skills/code-refactoring-refactor-clean/resources/implementation-playbook.md +879 -0
- package/skills/code-refactoring-tech-debt/SKILL.md +386 -0
- package/skills/code-review-ai-ai-review/SKILL.md +450 -0
- package/skills/code-review-excellence/SKILL.md +40 -0
- package/skills/code-review-excellence/resources/implementation-playbook.md +515 -0
- package/skills/code-reviewer/SKILL.md +178 -0
- package/skills/codebase-cleanup-deps-audit/SKILL.md +51 -0
- package/skills/codebase-cleanup-deps-audit/resources/implementation-playbook.md +766 -0
- package/skills/codebase-cleanup-refactor-clean/SKILL.md +51 -0
- package/skills/codebase-cleanup-refactor-clean/resources/implementation-playbook.md +879 -0
- package/skills/codebase-cleanup-tech-debt/SKILL.md +386 -0
- package/skills/competitive-landscape/SKILL.md +34 -0
- package/skills/competitive-landscape/resources/implementation-playbook.md +494 -0
- package/skills/comprehensive-review-full-review/SKILL.md +146 -0
- package/skills/comprehensive-review-pr-enhance/SKILL.md +46 -0
- package/skills/comprehensive-review-pr-enhance/resources/implementation-playbook.md +691 -0
- package/skills/conductor-implement/SKILL.md +388 -0
- package/skills/conductor-manage/SKILL.md +39 -0
- package/skills/conductor-manage/resources/implementation-playbook.md +1120 -0
- package/skills/conductor-new-track/SKILL.md +433 -0
- package/skills/conductor-revert/SKILL.md +372 -0
- package/skills/conductor-setup/SKILL.md +426 -0
- package/skills/conductor-status/SKILL.md +338 -0
- package/skills/conductor-validator/SKILL.md +62 -0
- package/skills/content-marketer/SKILL.md +170 -0
- package/skills/context-driven-development/SKILL.md +400 -0
- package/skills/context-management-context-restore/SKILL.md +179 -0
- package/skills/context-management-context-save/SKILL.md +177 -0
- package/skills/context-manager/SKILL.md +185 -0
- package/skills/cost-optimization/SKILL.md +286 -0
- package/skills/cpp-pro/SKILL.md +59 -0
- package/skills/cqrs-implementation/SKILL.md +35 -0
- package/skills/cqrs-implementation/resources/implementation-playbook.md +540 -0
- package/skills/csharp-pro/SKILL.md +59 -0
- package/skills/customer-support/SKILL.md +170 -0
- package/skills/data-engineer/SKILL.md +224 -0
- package/skills/data-engineering-data-driven-feature/SKILL.md +182 -0
- package/skills/data-engineering-data-pipeline/SKILL.md +201 -0
- package/skills/data-quality-frameworks/SKILL.md +40 -0
- package/skills/data-quality-frameworks/resources/implementation-playbook.md +573 -0
- package/skills/data-scientist/SKILL.md +199 -0
- package/skills/data-storytelling/SKILL.md +465 -0
- package/skills/database-admin/SKILL.md +165 -0
- package/skills/database-architect/SKILL.md +268 -0
- package/skills/database-cloud-optimization-cost-optimize/SKILL.md +44 -0
- package/skills/database-cloud-optimization-cost-optimize/resources/implementation-playbook.md +1441 -0
- package/skills/database-migration/SKILL.md +436 -0
- package/skills/database-migrations-migration-observability/SKILL.md +420 -0
- package/skills/database-migrations-sql-migrations/SKILL.md +53 -0
- package/skills/database-migrations-sql-migrations/resources/implementation-playbook.md +499 -0
- package/skills/database-optimizer/SKILL.md +167 -0
- package/skills/dbt-transformation-patterns/SKILL.md +34 -0
- package/skills/dbt-transformation-patterns/resources/implementation-playbook.md +547 -0
- package/skills/debugger/SKILL.md +49 -0
- package/skills/debugging-strategies/SKILL.md +34 -0
- package/skills/debugging-strategies/resources/implementation-playbook.md +511 -0
- package/skills/debugging-toolkit-smart-debug/SKILL.md +197 -0
- package/skills/defi-protocol-templates/SKILL.md +466 -0
- package/skills/dependency-management-deps-audit/SKILL.md +44 -0
- package/skills/dependency-management-deps-audit/resources/implementation-playbook.md +766 -0
- package/skills/dependency-upgrade/SKILL.md +421 -0
- package/skills/deployment-engineer/SKILL.md +170 -0
- package/skills/deployment-pipeline-design/SKILL.md +371 -0
- package/skills/deployment-validation-config-validate/SKILL.md +496 -0
- package/skills/devops-troubleshooter/SKILL.md +161 -0
- package/skills/distributed-debugging-debug-trace/SKILL.md +44 -0
- package/skills/distributed-debugging-debug-trace/resources/implementation-playbook.md +1307 -0
- package/skills/distributed-tracing/SKILL.md +450 -0
- package/skills/django-pro/SKILL.md +180 -0
- package/skills/docs-architect/SKILL.md +98 -0
- package/skills/documentation-generation-doc-generate/SKILL.md +48 -0
- package/skills/documentation-generation-doc-generate/resources/implementation-playbook.md +640 -0
- package/skills/dotnet-architect/SKILL.md +197 -0
- package/skills/dotnet-backend-patterns/SKILL.md +37 -0
- package/skills/dotnet-backend-patterns/assets/repository-template.cs +523 -0
- package/skills/dotnet-backend-patterns/assets/service-template.cs +336 -0
- package/skills/dotnet-backend-patterns/references/dapper-patterns.md +544 -0
- package/skills/dotnet-backend-patterns/references/ef-core-best-practices.md +355 -0
- package/skills/dotnet-backend-patterns/resources/implementation-playbook.md +799 -0
- package/skills/dummy-skill/SKILL.md +5 -0
- package/skills/dx-optimizer/SKILL.md +83 -0
- package/skills/e2e-testing-patterns/SKILL.md +41 -0
- package/skills/e2e-testing-patterns/resources/implementation-playbook.md +531 -0
- package/skills/elixir-pro/SKILL.md +59 -0
- package/skills/embedding-strategies/SKILL.md +491 -0
- package/skills/employment-contract-templates/SKILL.md +39 -0
- package/skills/employment-contract-templates/resources/implementation-playbook.md +493 -0
- package/skills/error-debugging-error-analysis/SKILL.md +47 -0
- package/skills/error-debugging-error-analysis/resources/implementation-playbook.md +1143 -0
- package/skills/error-debugging-error-trace/SKILL.md +43 -0
- package/skills/error-debugging-error-trace/resources/implementation-playbook.md +1361 -0
- package/skills/error-debugging-multi-agent-review/SKILL.md +216 -0
- package/skills/error-detective/SKILL.md +53 -0
- package/skills/error-diagnostics-error-analysis/SKILL.md +47 -0
- package/skills/error-diagnostics-error-analysis/resources/implementation-playbook.md +1143 -0
- package/skills/error-diagnostics-error-trace/SKILL.md +48 -0
- package/skills/error-diagnostics-error-trace/resources/implementation-playbook.md +1371 -0
- package/skills/error-diagnostics-smart-debug/SKILL.md +197 -0
- package/skills/error-handling-patterns/SKILL.md +35 -0
- package/skills/error-handling-patterns/resources/implementation-playbook.md +635 -0
- package/skills/event-sourcing-architect/SKILL.md +58 -0
- package/skills/event-store-design/SKILL.md +449 -0
- package/skills/fastapi-pro/SKILL.md +192 -0
- package/skills/fastapi-templates/SKILL.md +32 -0
- package/skills/fastapi-templates/resources/implementation-playbook.md +566 -0
- package/skills/final-test/SKILL.md +5 -0
- package/skills/firmware-analyst/SKILL.md +320 -0
- package/skills/flutter-expert/SKILL.md +200 -0
- package/skills/framework-migration-code-migrate/SKILL.md +48 -0
- package/skills/framework-migration-code-migrate/resources/implementation-playbook.md +1052 -0
- package/skills/framework-migration-deps-upgrade/SKILL.md +48 -0
- package/skills/framework-migration-deps-upgrade/resources/implementation-playbook.md +755 -0
- package/skills/framework-migration-legacy-modernize/SKILL.md +132 -0
- package/skills/frontend-developer/SKILL.md +171 -0
- package/skills/frontend-mobile-development-component-scaffold/SKILL.md +403 -0
- package/skills/frontend-mobile-security-xss-scan/SKILL.md +322 -0
- package/skills/frontend-security-coder/SKILL.md +170 -0
- package/skills/full-stack-orchestration-full-stack-feature/SKILL.md +135 -0
- package/skills/gdpr-data-handling/SKILL.md +33 -0
- package/skills/gdpr-data-handling/resources/implementation-playbook.md +615 -0
- package/skills/git-advanced-workflows/SKILL.md +412 -0
- package/skills/git-pr-workflows-git-workflow/SKILL.md +140 -0
- package/skills/git-pr-workflows-onboard/SKILL.md +416 -0
- package/skills/git-pr-workflows-pr-enhance/SKILL.md +48 -0
- package/skills/git-pr-workflows-pr-enhance/resources/implementation-playbook.md +701 -0
- package/skills/github-actions-templates/SKILL.md +345 -0
- package/skills/gitlab-ci-patterns/SKILL.md +283 -0
- package/skills/gitops-workflow/SKILL.md +303 -0
- package/skills/gitops-workflow/references/argocd-setup.md +134 -0
- package/skills/gitops-workflow/references/sync-policies.md +131 -0
- package/skills/go-concurrency-patterns/SKILL.md +33 -0
- package/skills/go-concurrency-patterns/resources/implementation-playbook.md +654 -0
- package/skills/godot-gdscript-patterns/SKILL.md +33 -0
- package/skills/godot-gdscript-patterns/resources/implementation-playbook.md +804 -0
- package/skills/golang-pro/SKILL.md +179 -0
- package/skills/grafana-dashboards/SKILL.md +381 -0
- package/skills/graphql-architect/SKILL.md +182 -0
- package/skills/haskell-pro/SKILL.md +56 -0
- package/skills/helm-chart-scaffolding/SKILL.md +34 -0
- package/skills/helm-chart-scaffolding/assets/Chart.yaml.template +42 -0
- package/skills/helm-chart-scaffolding/assets/values.yaml.template +185 -0
- package/skills/helm-chart-scaffolding/references/chart-structure.md +500 -0
- package/skills/helm-chart-scaffolding/resources/implementation-playbook.md +543 -0
- package/skills/helm-chart-scaffolding/scripts/validate-chart.sh +244 -0
- package/skills/hr-pro/SKILL.md +126 -0
- package/skills/hybrid-cloud-architect/SKILL.md +168 -0
- package/skills/hybrid-cloud-networking/SKILL.md +238 -0
- package/skills/hybrid-search-implementation/SKILL.md +32 -0
- package/skills/hybrid-search-implementation/resources/implementation-playbook.md +567 -0
- package/skills/incident-responder/SKILL.md +213 -0
- package/skills/incident-response-incident-response/SKILL.md +168 -0
- package/skills/incident-response-smart-fix/SKILL.md +29 -0
- package/skills/incident-response-smart-fix/resources/implementation-playbook.md +838 -0
- package/skills/incident-runbook-templates/SKILL.md +395 -0
- package/skills/ios-developer/SKILL.md +219 -0
- package/skills/istio-traffic-management/SKILL.md +337 -0
- package/skills/java-pro/SKILL.md +177 -0
- package/skills/javascript-pro/SKILL.md +57 -0
- package/skills/javascript-testing-patterns/SKILL.md +35 -0
- package/skills/javascript-testing-patterns/resources/implementation-playbook.md +1024 -0
- package/skills/javascript-typescript-typescript-scaffold/SKILL.md +361 -0
- package/skills/julia-pro/SKILL.md +209 -0
- package/skills/k8s-manifest-generator/SKILL.md +35 -0
- package/skills/k8s-manifest-generator/assets/configmap-template.yaml +296 -0
- package/skills/k8s-manifest-generator/assets/deployment-template.yaml +203 -0
- package/skills/k8s-manifest-generator/assets/service-template.yaml +171 -0
- package/skills/k8s-manifest-generator/references/deployment-spec.md +753 -0
- package/skills/k8s-manifest-generator/references/service-spec.md +724 -0
- package/skills/k8s-manifest-generator/resources/implementation-playbook.md +510 -0
- package/skills/k8s-security-policies/SKILL.md +346 -0
- package/skills/k8s-security-policies/assets/network-policy-template.yaml +177 -0
- package/skills/k8s-security-policies/references/rbac-patterns.md +187 -0
- package/skills/kpi-dashboard-design/SKILL.md +440 -0
- package/skills/kubernetes-architect/SKILL.md +170 -0
- package/skills/langchain-architecture/SKILL.md +350 -0
- package/skills/legacy-modernizer/SKILL.md +53 -0
- package/skills/legal-advisor/SKILL.md +70 -0
- package/skills/linkerd-patterns/SKILL.md +321 -0
- package/skills/llm-application-dev-ai-assistant/SKILL.md +35 -0
- package/skills/llm-application-dev-ai-assistant/resources/implementation-playbook.md +1236 -0
- package/skills/llm-application-dev-langchain-agent/SKILL.md +246 -0
- package/skills/llm-application-dev-prompt-optimize/SKILL.md +37 -0
- package/skills/llm-application-dev-prompt-optimize/resources/implementation-playbook.md +591 -0
- package/skills/llm-evaluation/SKILL.md +483 -0
- package/skills/machine-learning-ops-ml-pipeline/SKILL.md +314 -0
- package/skills/malware-analyst/SKILL.md +247 -0
- package/skills/market-sizing-analysis/SKILL.md +425 -0
- package/skills/market-sizing-analysis/examples/saas-market-sizing.md +349 -0
- package/skills/market-sizing-analysis/references/data-sources.md +360 -0
- package/skills/memory-forensics/SKILL.md +491 -0
- package/skills/memory-safety-patterns/SKILL.md +33 -0
- package/skills/memory-safety-patterns/resources/implementation-playbook.md +603 -0
- package/skills/mermaid-expert/SKILL.md +59 -0
- package/skills/microservices-patterns/SKILL.md +35 -0
- package/skills/microservices-patterns/resources/implementation-playbook.md +607 -0
- package/skills/minecraft-bukkit-pro/SKILL.md +126 -0
- package/skills/ml-engineer/SKILL.md +168 -0
- package/skills/ml-pipeline-workflow/SKILL.md +257 -0
- package/skills/mlops-engineer/SKILL.md +219 -0
- package/skills/mobile-developer/SKILL.md +205 -0
- package/skills/mobile-security-coder/SKILL.md +184 -0
- package/skills/modern-javascript-patterns/SKILL.md +35 -0
- package/skills/modern-javascript-patterns/resources/implementation-playbook.md +910 -0
- package/skills/monorepo-architect/SKILL.md +61 -0
- package/skills/monorepo-management/SKILL.md +35 -0
- package/skills/monorepo-management/resources/implementation-playbook.md +621 -0
- package/skills/mtls-configuration/SKILL.md +359 -0
- package/skills/multi-cloud-architecture/SKILL.md +189 -0
- package/skills/multi-platform-apps-multi-platform/SKILL.md +203 -0
- package/skills/network-engineer/SKILL.md +169 -0
- package/skills/nextjs-app-router-patterns/SKILL.md +33 -0
- package/skills/nextjs-app-router-patterns/resources/implementation-playbook.md +543 -0
- package/skills/nft-standards/SKILL.md +395 -0
- package/skills/node-expert/SKILL.md +23 -0
- package/skills/nodejs-backend-patterns/SKILL.md +35 -0
- package/skills/nodejs-backend-patterns/resources/implementation-playbook.md +1019 -0
- package/skills/nx-workspace-patterns/SKILL.md +464 -0
- package/skills/observability-engineer/SKILL.md +237 -0
- package/skills/observability-monitoring-monitor-setup/SKILL.md +48 -0
- package/skills/observability-monitoring-monitor-setup/resources/implementation-playbook.md +505 -0
- package/skills/observability-monitoring-slo-implement/SKILL.md +43 -0
- package/skills/observability-monitoring-slo-implement/resources/implementation-playbook.md +1077 -0
- package/skills/on-call-handoff-patterns/SKILL.md +453 -0
- package/skills/openapi-spec-generation/SKILL.md +33 -0
- package/skills/openapi-spec-generation/resources/implementation-playbook.md +1027 -0
- package/skills/payment-integration/SKILL.md +77 -0
- package/skills/paypal-integration/SKILL.md +479 -0
- package/skills/pci-compliance/SKILL.md +478 -0
- package/skills/performance-engineer/SKILL.md +180 -0
- package/skills/performance-testing-review-ai-review/SKILL.md +450 -0
- package/skills/performance-testing-review-multi-agent-review/SKILL.md +216 -0
- package/skills/php-pro/SKILL.md +63 -0
- package/skills/posix-shell-pro/SKILL.md +304 -0
- package/skills/postgresql/SKILL.md +230 -0
- package/skills/postmortem-writing/SKILL.md +386 -0
- package/skills/projection-patterns/SKILL.md +33 -0
- package/skills/projection-patterns/resources/implementation-playbook.md +501 -0
- package/skills/prometheus-configuration/SKILL.md +404 -0
- package/skills/prompt-engineer/SKILL.md +272 -0
- package/skills/prompt-engineering-patterns/SKILL.md +213 -0
- package/skills/prompt-engineering-patterns/assets/few-shot-examples.json +106 -0
- package/skills/prompt-engineering-patterns/assets/prompt-template-library.md +246 -0
- package/skills/prompt-engineering-patterns/references/chain-of-thought.md +399 -0
- package/skills/prompt-engineering-patterns/references/few-shot-learning.md +369 -0
- package/skills/prompt-engineering-patterns/references/prompt-optimization.md +414 -0
- package/skills/prompt-engineering-patterns/references/prompt-templates.md +470 -0
- package/skills/prompt-engineering-patterns/references/system-prompts.md +189 -0
- package/skills/prompt-engineering-patterns/scripts/optimize-prompt.py +279 -0
- package/skills/protocol-reverse-engineering/SKILL.md +29 -0
- package/skills/protocol-reverse-engineering/resources/implementation-playbook.md +509 -0
- package/skills/python-development-python-scaffold/SKILL.md +331 -0
- package/skills/python-packaging/SKILL.md +36 -0
- package/skills/python-packaging/resources/implementation-playbook.md +869 -0
- package/skills/python-performance-optimization/SKILL.md +36 -0
- package/skills/python-performance-optimization/resources/implementation-playbook.md +868 -0
- package/skills/python-pro/SKILL.md +158 -0
- package/skills/python-testing-patterns/SKILL.md +37 -0
- package/skills/python-testing-patterns/resources/implementation-playbook.md +906 -0
- package/skills/quant-analyst/SKILL.md +53 -0
- package/skills/rag-implementation/SKILL.md +421 -0
- package/skills/react-modernization/SKILL.md +34 -0
- package/skills/react-modernization/resources/implementation-playbook.md +512 -0
- package/skills/react-native-architecture/SKILL.md +33 -0
- package/skills/react-native-architecture/resources/implementation-playbook.md +670 -0
- package/skills/react-state-management/SKILL.md +441 -0
- package/skills/reference-builder/SKILL.md +188 -0
- package/skills/reverse-engineer/SKILL.md +173 -0
- package/skills/risk-manager/SKILL.md +61 -0
- package/skills/risk-metrics-calculation/SKILL.md +33 -0
- package/skills/risk-metrics-calculation/resources/implementation-playbook.md +554 -0
- package/skills/ruby-pro/SKILL.md +56 -0
- package/skills/rust-async-patterns/SKILL.md +33 -0
- package/skills/rust-async-patterns/resources/implementation-playbook.md +516 -0
- package/skills/rust-pro/SKILL.md +178 -0
- package/skills/saga-orchestration/SKILL.md +496 -0
- package/skills/sales-automator/SKILL.md +55 -0
- package/skills/sast-configuration/SKILL.md +212 -0
- package/skills/scala-pro/SKILL.md +82 -0
- package/skills/screen-reader-testing/SKILL.md +33 -0
- package/skills/screen-reader-testing/resources/implementation-playbook.md +544 -0
- package/skills/search-specialist/SKILL.md +80 -0
- package/skills/secrets-management/SKILL.md +364 -0
- package/skills/security-auditor/SKILL.md +169 -0
- package/skills/security-compliance-compliance-check/SKILL.md +55 -0
- package/skills/security-compliance-compliance-check/resources/implementation-playbook.md +963 -0
- package/skills/security-requirement-extraction/SKILL.md +33 -0
- package/skills/security-requirement-extraction/resources/implementation-playbook.md +676 -0
- package/skills/security-scanning-security-dependencies/SKILL.md +43 -0
- package/skills/security-scanning-security-dependencies/resources/implementation-playbook.md +544 -0
- package/skills/security-scanning-security-hardening/SKILL.md +147 -0
- package/skills/security-scanning-security-sast/SKILL.md +495 -0
- package/skills/seo-authority-builder/SKILL.md +136 -0
- package/skills/seo-cannibalization-detector/SKILL.md +123 -0
- package/skills/seo-content-auditor/SKILL.md +83 -0
- package/skills/seo-content-planner/SKILL.md +108 -0
- package/skills/seo-content-refresher/SKILL.md +118 -0
- package/skills/seo-content-writer/SKILL.md +96 -0
- package/skills/seo-keyword-strategist/SKILL.md +95 -0
- package/skills/seo-meta-optimizer/SKILL.md +92 -0
- package/skills/seo-snippet-hunter/SKILL.md +114 -0
- package/skills/seo-structure-architect/SKILL.md +108 -0
- package/skills/service-mesh-expert/SKILL.md +58 -0
- package/skills/service-mesh-observability/SKILL.md +395 -0
- package/skills/shellcheck-configuration/SKILL.md +466 -0
- package/skills/similarity-search-patterns/SKILL.md +33 -0
- package/skills/similarity-search-patterns/resources/implementation-playbook.md +557 -0
- package/skills/slo-implementation/SKILL.md +341 -0
- package/skills/solidity-security/SKILL.md +34 -0
- package/skills/solidity-security/resources/implementation-playbook.md +524 -0
- package/skills/spark-optimization/SKILL.md +427 -0
- package/skills/sql-optimization-patterns/SKILL.md +35 -0
- package/skills/sql-optimization-patterns/resources/implementation-playbook.md +504 -0
- package/skills/sql-pro/SKILL.md +173 -0
- package/skills/startup-analyst/SKILL.md +328 -0
- package/skills/startup-business-analyst-business-case/SKILL.md +487 -0
- package/skills/startup-business-analyst-financial-projections/SKILL.md +353 -0
- package/skills/startup-business-analyst-market-opportunity/SKILL.md +240 -0
- package/skills/startup-financial-modeling/SKILL.md +467 -0
- package/skills/startup-metrics-framework/SKILL.md +34 -0
- package/skills/startup-metrics-framework/resources/implementation-playbook.md +500 -0
- package/skills/stride-analysis-patterns/SKILL.md +33 -0
- package/skills/stride-analysis-patterns/resources/implementation-playbook.md +655 -0
- package/skills/stripe-integration/SKILL.md +454 -0
- package/skills/systems-programming-rust-project/SKILL.md +440 -0
- package/skills/tailwind-design-system/SKILL.md +33 -0
- package/skills/tailwind-design-system/resources/implementation-playbook.md +665 -0
- package/skills/tdd-orchestrator/SKILL.md +205 -0
- package/skills/tdd-workflows-tdd-cycle/SKILL.md +221 -0
- package/skills/tdd-workflows-tdd-green/SKILL.md +73 -0
- package/skills/tdd-workflows-tdd-green/resources/implementation-playbook.md +870 -0
- package/skills/tdd-workflows-tdd-red/SKILL.md +164 -0
- package/skills/tdd-workflows-tdd-refactor/SKILL.md +187 -0
- package/skills/team-collaboration-issue/SKILL.md +37 -0
- package/skills/team-collaboration-issue/resources/implementation-playbook.md +640 -0
- package/skills/team-collaboration-standup-notes/SKILL.md +44 -0
- package/skills/team-collaboration-standup-notes/resources/implementation-playbook.md +768 -0
- package/skills/team-composition-analysis/SKILL.md +413 -0
- package/skills/temporal-python-pro/SKILL.md +370 -0
- package/skills/temporal-python-testing/SKILL.md +170 -0
- package/skills/temporal-python-testing/resources/integration-testing.md +455 -0
- package/skills/temporal-python-testing/resources/local-setup.md +553 -0
- package/skills/temporal-python-testing/resources/replay-testing.md +462 -0
- package/skills/temporal-python-testing/resources/unit-testing.md +328 -0
- package/skills/terraform-module-library/SKILL.md +261 -0
- package/skills/terraform-module-library/references/aws-modules.md +63 -0
- package/skills/terraform-specialist/SKILL.md +166 -0
- package/skills/test-automator/SKILL.md +224 -0
- package/skills/threat-mitigation-mapping/SKILL.md +33 -0
- package/skills/threat-mitigation-mapping/resources/implementation-playbook.md +744 -0
- package/skills/threat-modeling-expert/SKILL.md +60 -0
- package/skills/track-management/SKILL.md +38 -0
- package/skills/track-management/resources/implementation-playbook.md +591 -0
- package/skills/turborepo-caching/SKILL.md +419 -0
- package/skills/tutorial-engineer/SKILL.md +139 -0
- package/skills/typescript-advanced-types/SKILL.md +35 -0
- package/skills/typescript-advanced-types/resources/implementation-playbook.md +716 -0
- package/skills/typescript-pro/SKILL.md +55 -0
- package/skills/ui-minimal/SKILL.md +23 -0
- package/skills/ui-ux-designer/SKILL.md +209 -0
- package/skills/ui-visual-validator/SKILL.md +214 -0
- package/skills/unit-testing-test-generate/SKILL.md +319 -0
- package/skills/unity-developer/SKILL.md +230 -0
- package/skills/unity-ecs-patterns/SKILL.md +33 -0
- package/skills/unity-ecs-patterns/resources/implementation-playbook.md +625 -0
- package/skills/uv-package-manager/SKILL.md +37 -0
- package/skills/uv-package-manager/resources/implementation-playbook.md +830 -0
- package/skills/vector-database-engineer/SKILL.md +60 -0
- package/skills/vector-index-tuning/SKILL.md +42 -0
- package/skills/vector-index-tuning/resources/implementation-playbook.md +507 -0
- package/skills/wcag-audit-patterns/SKILL.md +41 -0
- package/skills/wcag-audit-patterns/resources/implementation-playbook.md +541 -0
- package/skills/web3-testing/SKILL.md +427 -0
- package/skills/workflow-orchestration-patterns/SKILL.md +333 -0
- package/skills/workflow-patterns/SKILL.md +38 -0
- package/skills/workflow-patterns/resources/implementation-playbook.md +621 -0
|
@@ -0,0 +1,547 @@
|
|
|
1
|
+
# dbt Transformation Patterns Implementation Playbook
|
|
2
|
+
|
|
3
|
+
This file contains detailed patterns, checklists, and code samples referenced by the skill.
|
|
4
|
+
|
|
5
|
+
## Core Concepts
|
|
6
|
+
|
|
7
|
+
### 1. Model Layers (Medallion Architecture)
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
sources/ Raw data definitions
|
|
11
|
+
↓
|
|
12
|
+
staging/ 1:1 with source, light cleaning
|
|
13
|
+
↓
|
|
14
|
+
intermediate/ Business logic, joins, aggregations
|
|
15
|
+
↓
|
|
16
|
+
marts/ Final analytics tables
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 2. Naming Conventions
|
|
20
|
+
|
|
21
|
+
| Layer | Prefix | Example |
|
|
22
|
+
|-------|--------|---------|
|
|
23
|
+
| Staging | `stg_` | `stg_stripe__payments` |
|
|
24
|
+
| Intermediate | `int_` | `int_payments_pivoted` |
|
|
25
|
+
| Marts | `dim_`, `fct_` | `dim_customers`, `fct_orders` |
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
# dbt_project.yml
|
|
31
|
+
name: 'analytics'
|
|
32
|
+
version: '1.0.0'
|
|
33
|
+
profile: 'analytics'
|
|
34
|
+
|
|
35
|
+
model-paths: ["models"]
|
|
36
|
+
analysis-paths: ["analyses"]
|
|
37
|
+
test-paths: ["tests"]
|
|
38
|
+
seed-paths: ["seeds"]
|
|
39
|
+
macro-paths: ["macros"]
|
|
40
|
+
|
|
41
|
+
vars:
|
|
42
|
+
start_date: '2020-01-01'
|
|
43
|
+
|
|
44
|
+
models:
|
|
45
|
+
analytics:
|
|
46
|
+
staging:
|
|
47
|
+
+materialized: view
|
|
48
|
+
+schema: staging
|
|
49
|
+
intermediate:
|
|
50
|
+
+materialized: ephemeral
|
|
51
|
+
marts:
|
|
52
|
+
+materialized: table
|
|
53
|
+
+schema: analytics
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
# Project structure
|
|
58
|
+
models/
|
|
59
|
+
├── staging/
|
|
60
|
+
│ ├── stripe/
|
|
61
|
+
│ │ ├── _stripe__sources.yml
|
|
62
|
+
│ │ ├── _stripe__models.yml
|
|
63
|
+
│ │ ├── stg_stripe__customers.sql
|
|
64
|
+
│ │ └── stg_stripe__payments.sql
|
|
65
|
+
│ └── shopify/
|
|
66
|
+
│ ├── _shopify__sources.yml
|
|
67
|
+
│ └── stg_shopify__orders.sql
|
|
68
|
+
├── intermediate/
|
|
69
|
+
│ └── finance/
|
|
70
|
+
│ └── int_payments_pivoted.sql
|
|
71
|
+
└── marts/
|
|
72
|
+
├── core/
|
|
73
|
+
│ ├── _core__models.yml
|
|
74
|
+
│ ├── dim_customers.sql
|
|
75
|
+
│ └── fct_orders.sql
|
|
76
|
+
└── finance/
|
|
77
|
+
└── fct_revenue.sql
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Patterns
|
|
81
|
+
|
|
82
|
+
### Pattern 1: Source Definitions
|
|
83
|
+
|
|
84
|
+
```yaml
|
|
85
|
+
# models/staging/stripe/_stripe__sources.yml
|
|
86
|
+
version: 2
|
|
87
|
+
|
|
88
|
+
sources:
|
|
89
|
+
- name: stripe
|
|
90
|
+
description: Raw Stripe data loaded via Fivetran
|
|
91
|
+
database: raw
|
|
92
|
+
schema: stripe
|
|
93
|
+
loader: fivetran
|
|
94
|
+
loaded_at_field: _fivetran_synced
|
|
95
|
+
freshness:
|
|
96
|
+
warn_after: {count: 12, period: hour}
|
|
97
|
+
error_after: {count: 24, period: hour}
|
|
98
|
+
tables:
|
|
99
|
+
- name: customers
|
|
100
|
+
description: Stripe customer records
|
|
101
|
+
columns:
|
|
102
|
+
- name: id
|
|
103
|
+
description: Primary key
|
|
104
|
+
tests:
|
|
105
|
+
- unique
|
|
106
|
+
- not_null
|
|
107
|
+
- name: email
|
|
108
|
+
description: Customer email
|
|
109
|
+
- name: created
|
|
110
|
+
description: Account creation timestamp
|
|
111
|
+
|
|
112
|
+
- name: payments
|
|
113
|
+
description: Stripe payment transactions
|
|
114
|
+
columns:
|
|
115
|
+
- name: id
|
|
116
|
+
tests:
|
|
117
|
+
- unique
|
|
118
|
+
- not_null
|
|
119
|
+
- name: customer_id
|
|
120
|
+
tests:
|
|
121
|
+
- not_null
|
|
122
|
+
- relationships:
|
|
123
|
+
to: source('stripe', 'customers')
|
|
124
|
+
field: id
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Pattern 2: Staging Models
|
|
128
|
+
|
|
129
|
+
```sql
|
|
130
|
+
-- models/staging/stripe/stg_stripe__customers.sql
|
|
131
|
+
with source as (
|
|
132
|
+
select * from {{ source('stripe', 'customers') }}
|
|
133
|
+
),
|
|
134
|
+
|
|
135
|
+
renamed as (
|
|
136
|
+
select
|
|
137
|
+
-- ids
|
|
138
|
+
id as customer_id,
|
|
139
|
+
|
|
140
|
+
-- strings
|
|
141
|
+
lower(email) as email,
|
|
142
|
+
name as customer_name,
|
|
143
|
+
|
|
144
|
+
-- timestamps
|
|
145
|
+
created as created_at,
|
|
146
|
+
|
|
147
|
+
-- metadata
|
|
148
|
+
_fivetran_synced as _loaded_at
|
|
149
|
+
|
|
150
|
+
from source
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
select * from renamed
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
```sql
|
|
157
|
+
-- models/staging/stripe/stg_stripe__payments.sql
|
|
158
|
+
{{
|
|
159
|
+
config(
|
|
160
|
+
materialized='incremental',
|
|
161
|
+
unique_key='payment_id',
|
|
162
|
+
on_schema_change='append_new_columns'
|
|
163
|
+
)
|
|
164
|
+
}}
|
|
165
|
+
|
|
166
|
+
with source as (
|
|
167
|
+
select * from {{ source('stripe', 'payments') }}
|
|
168
|
+
|
|
169
|
+
{% if is_incremental() %}
|
|
170
|
+
where _fivetran_synced > (select max(_loaded_at) from {{ this }})
|
|
171
|
+
{% endif %}
|
|
172
|
+
),
|
|
173
|
+
|
|
174
|
+
renamed as (
|
|
175
|
+
select
|
|
176
|
+
-- ids
|
|
177
|
+
id as payment_id,
|
|
178
|
+
customer_id,
|
|
179
|
+
invoice_id,
|
|
180
|
+
|
|
181
|
+
-- amounts (convert cents to dollars)
|
|
182
|
+
amount / 100.0 as amount,
|
|
183
|
+
amount_refunded / 100.0 as amount_refunded,
|
|
184
|
+
|
|
185
|
+
-- status
|
|
186
|
+
status as payment_status,
|
|
187
|
+
|
|
188
|
+
-- timestamps
|
|
189
|
+
created as created_at,
|
|
190
|
+
|
|
191
|
+
-- metadata
|
|
192
|
+
_fivetran_synced as _loaded_at
|
|
193
|
+
|
|
194
|
+
from source
|
|
195
|
+
)
|
|
196
|
+
|
|
197
|
+
select * from renamed
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Pattern 3: Intermediate Models
|
|
201
|
+
|
|
202
|
+
```sql
|
|
203
|
+
-- models/intermediate/finance/int_payments_pivoted_to_customer.sql
|
|
204
|
+
with payments as (
|
|
205
|
+
select * from {{ ref('stg_stripe__payments') }}
|
|
206
|
+
),
|
|
207
|
+
|
|
208
|
+
customers as (
|
|
209
|
+
select * from {{ ref('stg_stripe__customers') }}
|
|
210
|
+
),
|
|
211
|
+
|
|
212
|
+
payment_summary as (
|
|
213
|
+
select
|
|
214
|
+
customer_id,
|
|
215
|
+
count(*) as total_payments,
|
|
216
|
+
count(case when payment_status = 'succeeded' then 1 end) as successful_payments,
|
|
217
|
+
sum(case when payment_status = 'succeeded' then amount else 0 end) as total_amount_paid,
|
|
218
|
+
min(created_at) as first_payment_at,
|
|
219
|
+
max(created_at) as last_payment_at
|
|
220
|
+
from payments
|
|
221
|
+
group by customer_id
|
|
222
|
+
)
|
|
223
|
+
|
|
224
|
+
select
|
|
225
|
+
customers.customer_id,
|
|
226
|
+
customers.email,
|
|
227
|
+
customers.created_at as customer_created_at,
|
|
228
|
+
coalesce(payment_summary.total_payments, 0) as total_payments,
|
|
229
|
+
coalesce(payment_summary.successful_payments, 0) as successful_payments,
|
|
230
|
+
coalesce(payment_summary.total_amount_paid, 0) as lifetime_value,
|
|
231
|
+
payment_summary.first_payment_at,
|
|
232
|
+
payment_summary.last_payment_at
|
|
233
|
+
|
|
234
|
+
from customers
|
|
235
|
+
left join payment_summary using (customer_id)
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### Pattern 4: Mart Models (Dimensions and Facts)
|
|
239
|
+
|
|
240
|
+
```sql
|
|
241
|
+
-- models/marts/core/dim_customers.sql
|
|
242
|
+
{{
|
|
243
|
+
config(
|
|
244
|
+
materialized='table',
|
|
245
|
+
unique_key='customer_id'
|
|
246
|
+
)
|
|
247
|
+
}}
|
|
248
|
+
|
|
249
|
+
with customers as (
|
|
250
|
+
select * from {{ ref('int_payments_pivoted_to_customer') }}
|
|
251
|
+
),
|
|
252
|
+
|
|
253
|
+
orders as (
|
|
254
|
+
select * from {{ ref('stg_shopify__orders') }}
|
|
255
|
+
),
|
|
256
|
+
|
|
257
|
+
order_summary as (
|
|
258
|
+
select
|
|
259
|
+
customer_id,
|
|
260
|
+
count(*) as total_orders,
|
|
261
|
+
sum(total_price) as total_order_value,
|
|
262
|
+
min(created_at) as first_order_at,
|
|
263
|
+
max(created_at) as last_order_at
|
|
264
|
+
from orders
|
|
265
|
+
group by customer_id
|
|
266
|
+
),
|
|
267
|
+
|
|
268
|
+
final as (
|
|
269
|
+
select
|
|
270
|
+
-- surrogate key
|
|
271
|
+
{{ dbt_utils.generate_surrogate_key(['customers.customer_id']) }} as customer_key,
|
|
272
|
+
|
|
273
|
+
-- natural key
|
|
274
|
+
customers.customer_id,
|
|
275
|
+
|
|
276
|
+
-- attributes
|
|
277
|
+
customers.email,
|
|
278
|
+
customers.customer_created_at,
|
|
279
|
+
|
|
280
|
+
-- payment metrics
|
|
281
|
+
customers.total_payments,
|
|
282
|
+
customers.successful_payments,
|
|
283
|
+
customers.lifetime_value,
|
|
284
|
+
customers.first_payment_at,
|
|
285
|
+
customers.last_payment_at,
|
|
286
|
+
|
|
287
|
+
-- order metrics
|
|
288
|
+
coalesce(order_summary.total_orders, 0) as total_orders,
|
|
289
|
+
coalesce(order_summary.total_order_value, 0) as total_order_value,
|
|
290
|
+
order_summary.first_order_at,
|
|
291
|
+
order_summary.last_order_at,
|
|
292
|
+
|
|
293
|
+
-- calculated fields
|
|
294
|
+
case
|
|
295
|
+
when customers.lifetime_value >= 1000 then 'high'
|
|
296
|
+
when customers.lifetime_value >= 100 then 'medium'
|
|
297
|
+
else 'low'
|
|
298
|
+
end as customer_tier,
|
|
299
|
+
|
|
300
|
+
-- timestamps
|
|
301
|
+
current_timestamp as _loaded_at
|
|
302
|
+
|
|
303
|
+
from customers
|
|
304
|
+
left join order_summary using (customer_id)
|
|
305
|
+
)
|
|
306
|
+
|
|
307
|
+
select * from final
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
```sql
|
|
311
|
+
-- models/marts/core/fct_orders.sql
|
|
312
|
+
{{
|
|
313
|
+
config(
|
|
314
|
+
materialized='incremental',
|
|
315
|
+
unique_key='order_id',
|
|
316
|
+
incremental_strategy='merge'
|
|
317
|
+
)
|
|
318
|
+
}}
|
|
319
|
+
|
|
320
|
+
with orders as (
|
|
321
|
+
select * from {{ ref('stg_shopify__orders') }}
|
|
322
|
+
|
|
323
|
+
{% if is_incremental() %}
|
|
324
|
+
where updated_at > (select max(updated_at) from {{ this }})
|
|
325
|
+
{% endif %}
|
|
326
|
+
),
|
|
327
|
+
|
|
328
|
+
customers as (
|
|
329
|
+
select * from {{ ref('dim_customers') }}
|
|
330
|
+
),
|
|
331
|
+
|
|
332
|
+
final as (
|
|
333
|
+
select
|
|
334
|
+
-- keys
|
|
335
|
+
orders.order_id,
|
|
336
|
+
customers.customer_key,
|
|
337
|
+
orders.customer_id,
|
|
338
|
+
|
|
339
|
+
-- dimensions
|
|
340
|
+
orders.order_status,
|
|
341
|
+
orders.fulfillment_status,
|
|
342
|
+
orders.payment_status,
|
|
343
|
+
|
|
344
|
+
-- measures
|
|
345
|
+
orders.subtotal,
|
|
346
|
+
orders.tax,
|
|
347
|
+
orders.shipping,
|
|
348
|
+
orders.total_price,
|
|
349
|
+
orders.total_discount,
|
|
350
|
+
orders.item_count,
|
|
351
|
+
|
|
352
|
+
-- timestamps
|
|
353
|
+
orders.created_at,
|
|
354
|
+
orders.updated_at,
|
|
355
|
+
orders.fulfilled_at,
|
|
356
|
+
|
|
357
|
+
-- metadata
|
|
358
|
+
current_timestamp as _loaded_at
|
|
359
|
+
|
|
360
|
+
from orders
|
|
361
|
+
left join customers on orders.customer_id = customers.customer_id
|
|
362
|
+
)
|
|
363
|
+
|
|
364
|
+
select * from final
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
### Pattern 5: Testing and Documentation
|
|
368
|
+
|
|
369
|
+
```yaml
|
|
370
|
+
# models/marts/core/_core__models.yml
|
|
371
|
+
version: 2
|
|
372
|
+
|
|
373
|
+
models:
|
|
374
|
+
- name: dim_customers
|
|
375
|
+
description: Customer dimension with payment and order metrics
|
|
376
|
+
columns:
|
|
377
|
+
- name: customer_key
|
|
378
|
+
description: Surrogate key for the customer dimension
|
|
379
|
+
tests:
|
|
380
|
+
- unique
|
|
381
|
+
- not_null
|
|
382
|
+
|
|
383
|
+
- name: customer_id
|
|
384
|
+
description: Natural key from source system
|
|
385
|
+
tests:
|
|
386
|
+
- unique
|
|
387
|
+
- not_null
|
|
388
|
+
|
|
389
|
+
- name: email
|
|
390
|
+
description: Customer email address
|
|
391
|
+
tests:
|
|
392
|
+
- not_null
|
|
393
|
+
|
|
394
|
+
- name: customer_tier
|
|
395
|
+
description: Customer value tier based on lifetime value
|
|
396
|
+
tests:
|
|
397
|
+
- accepted_values:
|
|
398
|
+
values: ['high', 'medium', 'low']
|
|
399
|
+
|
|
400
|
+
- name: lifetime_value
|
|
401
|
+
description: Total amount paid by customer
|
|
402
|
+
tests:
|
|
403
|
+
- dbt_utils.expression_is_true:
|
|
404
|
+
expression: ">= 0"
|
|
405
|
+
|
|
406
|
+
- name: fct_orders
|
|
407
|
+
description: Order fact table with all order transactions
|
|
408
|
+
tests:
|
|
409
|
+
- dbt_utils.recency:
|
|
410
|
+
datepart: day
|
|
411
|
+
field: created_at
|
|
412
|
+
interval: 1
|
|
413
|
+
columns:
|
|
414
|
+
- name: order_id
|
|
415
|
+
tests:
|
|
416
|
+
- unique
|
|
417
|
+
- not_null
|
|
418
|
+
- name: customer_key
|
|
419
|
+
tests:
|
|
420
|
+
- not_null
|
|
421
|
+
- relationships:
|
|
422
|
+
to: ref('dim_customers')
|
|
423
|
+
field: customer_key
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
### Pattern 6: Macros and DRY Code
|
|
427
|
+
|
|
428
|
+
```sql
|
|
429
|
+
-- macros/cents_to_dollars.sql
|
|
430
|
+
{% macro cents_to_dollars(column_name, precision=2) %}
|
|
431
|
+
round({{ column_name }} / 100.0, {{ precision }})
|
|
432
|
+
{% endmacro %}
|
|
433
|
+
|
|
434
|
+
-- macros/generate_schema_name.sql
|
|
435
|
+
{% macro generate_schema_name(custom_schema_name, node) %}
|
|
436
|
+
{%- set default_schema = target.schema -%}
|
|
437
|
+
{%- if custom_schema_name is none -%}
|
|
438
|
+
{{ default_schema }}
|
|
439
|
+
{%- else -%}
|
|
440
|
+
{{ default_schema }}_{{ custom_schema_name }}
|
|
441
|
+
{%- endif -%}
|
|
442
|
+
{% endmacro %}
|
|
443
|
+
|
|
444
|
+
-- macros/limit_data_in_dev.sql
|
|
445
|
+
{% macro limit_data_in_dev(column_name, days=3) %}
|
|
446
|
+
{% if target.name == 'dev' %}
|
|
447
|
+
where {{ column_name }} >= dateadd(day, -{{ days }}, current_date)
|
|
448
|
+
{% endif %}
|
|
449
|
+
{% endmacro %}
|
|
450
|
+
|
|
451
|
+
-- Usage in model
|
|
452
|
+
select * from {{ ref('stg_orders') }}
|
|
453
|
+
{{ limit_data_in_dev('created_at') }}
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
### Pattern 7: Incremental Strategies
|
|
457
|
+
|
|
458
|
+
```sql
|
|
459
|
+
-- Delete+Insert (default for most warehouses)
|
|
460
|
+
{{
|
|
461
|
+
config(
|
|
462
|
+
materialized='incremental',
|
|
463
|
+
unique_key='id',
|
|
464
|
+
incremental_strategy='delete+insert'
|
|
465
|
+
)
|
|
466
|
+
}}
|
|
467
|
+
|
|
468
|
+
-- Merge (best for late-arriving data)
|
|
469
|
+
{{
|
|
470
|
+
config(
|
|
471
|
+
materialized='incremental',
|
|
472
|
+
unique_key='id',
|
|
473
|
+
incremental_strategy='merge',
|
|
474
|
+
merge_update_columns=['status', 'amount', 'updated_at']
|
|
475
|
+
)
|
|
476
|
+
}}
|
|
477
|
+
|
|
478
|
+
-- Insert Overwrite (partition-based)
|
|
479
|
+
{{
|
|
480
|
+
config(
|
|
481
|
+
materialized='incremental',
|
|
482
|
+
incremental_strategy='insert_overwrite',
|
|
483
|
+
partition_by={
|
|
484
|
+
"field": "created_date",
|
|
485
|
+
"data_type": "date",
|
|
486
|
+
"granularity": "day"
|
|
487
|
+
}
|
|
488
|
+
)
|
|
489
|
+
}}
|
|
490
|
+
|
|
491
|
+
select
|
|
492
|
+
*,
|
|
493
|
+
date(created_at) as created_date
|
|
494
|
+
from {{ ref('stg_events') }}
|
|
495
|
+
|
|
496
|
+
{% if is_incremental() %}
|
|
497
|
+
where created_date >= dateadd(day, -3, current_date)
|
|
498
|
+
{% endif %}
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
## dbt Commands
|
|
502
|
+
|
|
503
|
+
```bash
|
|
504
|
+
# Development
|
|
505
|
+
dbt run # Run all models
|
|
506
|
+
dbt run --select staging # Run staging models only
|
|
507
|
+
dbt run --select +fct_orders # Run fct_orders and its upstream
|
|
508
|
+
dbt run --select fct_orders+ # Run fct_orders and its downstream
|
|
509
|
+
dbt run --full-refresh # Rebuild incremental models
|
|
510
|
+
|
|
511
|
+
# Testing
|
|
512
|
+
dbt test # Run all tests
|
|
513
|
+
dbt test --select stg_stripe # Test specific models
|
|
514
|
+
dbt build # Run + test in DAG order
|
|
515
|
+
|
|
516
|
+
# Documentation
|
|
517
|
+
dbt docs generate # Generate docs
|
|
518
|
+
dbt docs serve # Serve docs locally
|
|
519
|
+
|
|
520
|
+
# Debugging
|
|
521
|
+
dbt compile # Compile SQL without running
|
|
522
|
+
dbt debug # Test connection
|
|
523
|
+
dbt ls --select tag:critical # List models by tag
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
## Best Practices
|
|
527
|
+
|
|
528
|
+
### Do's
|
|
529
|
+
- **Use staging layer** - Clean data once, use everywhere
|
|
530
|
+
- **Test aggressively** - Not null, unique, relationships
|
|
531
|
+
- **Document everything** - Column descriptions, model descriptions
|
|
532
|
+
- **Use incremental** - For tables > 1M rows
|
|
533
|
+
- **Version control** - dbt project in Git
|
|
534
|
+
|
|
535
|
+
### Don'ts
|
|
536
|
+
- **Don't skip staging** - Raw → mart is tech debt
|
|
537
|
+
- **Don't hardcode dates** - Use `{{ var('start_date') }}`
|
|
538
|
+
- **Don't repeat logic** - Extract to macros
|
|
539
|
+
- **Don't test in prod** - Use dev target
|
|
540
|
+
- **Don't ignore freshness** - Monitor source data
|
|
541
|
+
|
|
542
|
+
## Resources
|
|
543
|
+
|
|
544
|
+
- [dbt Documentation](https://docs.getdbt.com/)
|
|
545
|
+
- [dbt Best Practices](https://docs.getdbt.com/guides/best-practices)
|
|
546
|
+
- [dbt-utils Package](https://hub.getdbt.com/dbt-labs/dbt_utils/latest/)
|
|
547
|
+
- [dbt Discourse](https://discourse.getdbt.com/)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debugger
|
|
3
|
+
description: Debugging specialist for errors, test failures, and unexpected
|
|
4
|
+
behavior. Use proactively when encountering any issues.
|
|
5
|
+
metadata:
|
|
6
|
+
model: sonnet
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Use this skill when
|
|
10
|
+
|
|
11
|
+
- Working on debugger tasks or workflows
|
|
12
|
+
- Needing guidance, best practices, or checklists for debugger
|
|
13
|
+
|
|
14
|
+
## Do not use this skill when
|
|
15
|
+
|
|
16
|
+
- The task is unrelated to debugger
|
|
17
|
+
- You need a different domain or tool outside this scope
|
|
18
|
+
|
|
19
|
+
## Instructions
|
|
20
|
+
|
|
21
|
+
- Clarify goals, constraints, and required inputs.
|
|
22
|
+
- Apply relevant best practices and validate outcomes.
|
|
23
|
+
- Provide actionable steps and verification.
|
|
24
|
+
- If detailed examples are required, open `resources/implementation-playbook.md`.
|
|
25
|
+
|
|
26
|
+
You are an expert debugger specializing in root cause analysis.
|
|
27
|
+
|
|
28
|
+
When invoked:
|
|
29
|
+
1. Capture error message and stack trace
|
|
30
|
+
2. Identify reproduction steps
|
|
31
|
+
3. Isolate the failure location
|
|
32
|
+
4. Implement minimal fix
|
|
33
|
+
5. Verify solution works
|
|
34
|
+
|
|
35
|
+
Debugging process:
|
|
36
|
+
- Analyze error messages and logs
|
|
37
|
+
- Check recent code changes
|
|
38
|
+
- Form and test hypotheses
|
|
39
|
+
- Add strategic debug logging
|
|
40
|
+
- Inspect variable states
|
|
41
|
+
|
|
42
|
+
For each issue, provide:
|
|
43
|
+
- Root cause explanation
|
|
44
|
+
- Evidence supporting the diagnosis
|
|
45
|
+
- Specific code fix
|
|
46
|
+
- Testing approach
|
|
47
|
+
- Prevention recommendations
|
|
48
|
+
|
|
49
|
+
Focus on fixing the underlying issue, not just symptoms.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: debugging-strategies
|
|
3
|
+
description: Master systematic debugging techniques, profiling tools, and root cause analysis to efficiently track down bugs across any codebase or technology stack. Use when investigating bugs, performance issues, or unexpected behavior.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Debugging Strategies
|
|
7
|
+
|
|
8
|
+
Transform debugging from frustrating guesswork into systematic problem-solving with proven strategies, powerful tools, and methodical approaches.
|
|
9
|
+
|
|
10
|
+
## Use this skill when
|
|
11
|
+
|
|
12
|
+
- Tracking down elusive bugs
|
|
13
|
+
- Investigating performance issues
|
|
14
|
+
- Debugging production incidents
|
|
15
|
+
- Analyzing crash dumps or stack traces
|
|
16
|
+
- Debugging distributed systems
|
|
17
|
+
|
|
18
|
+
## Do not use this skill when
|
|
19
|
+
|
|
20
|
+
- There is no reproducible issue or observable symptom
|
|
21
|
+
- The task is purely feature development
|
|
22
|
+
- You cannot access logs, traces, or runtime signals
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
|
|
26
|
+
- Reproduce the issue and capture logs, traces, and environment details.
|
|
27
|
+
- Form hypotheses and design controlled experiments.
|
|
28
|
+
- Narrow scope with binary search and targeted instrumentation.
|
|
29
|
+
- Document findings and verify the fix.
|
|
30
|
+
- If detailed playbooks are required, open `resources/implementation-playbook.md`.
|
|
31
|
+
|
|
32
|
+
## Resources
|
|
33
|
+
|
|
34
|
+
- `resources/implementation-playbook.md` for detailed debugging patterns and checklists.
|