@harness-engineering/cli 1.13.0 → 1.13.1
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/dist/agents/skills/claude-code/add-harness-component/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/align-documentation/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/check-mechanical-constraints/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/cleanup-dead-code/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/detect-doc-drift/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/enforce-architecture/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-accessibility/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-api-design/SKILL.md +304 -0
- package/dist/agents/skills/claude-code/harness-api-design/skill.yaml +74 -0
- package/dist/agents/skills/claude-code/harness-architecture-advisor/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-auth/SKILL.md +279 -0
- package/dist/agents/skills/claude-code/harness-auth/skill.yaml +81 -0
- package/dist/agents/skills/claude-code/harness-autopilot/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-brainstorming/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-caching/SKILL.md +309 -0
- package/dist/agents/skills/claude-code/harness-caching/skill.yaml +73 -0
- package/dist/agents/skills/claude-code/harness-chaos/SKILL.md +295 -0
- package/dist/agents/skills/claude-code/harness-chaos/skill.yaml +72 -0
- package/dist/agents/skills/claude-code/harness-code-review/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-codebase-cleanup/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-compliance/SKILL.md +303 -0
- package/dist/agents/skills/claude-code/harness-compliance/skill.yaml +78 -0
- package/dist/agents/skills/claude-code/harness-containerization/SKILL.md +284 -0
- package/dist/agents/skills/claude-code/harness-containerization/skill.yaml +80 -0
- package/dist/agents/skills/claude-code/harness-data-pipeline/SKILL.md +274 -0
- package/dist/agents/skills/claude-code/harness-data-pipeline/skill.yaml +81 -0
- package/dist/agents/skills/claude-code/harness-data-validation/SKILL.md +343 -0
- package/dist/agents/skills/claude-code/harness-data-validation/skill.yaml +75 -0
- package/dist/agents/skills/claude-code/harness-database/SKILL.md +258 -0
- package/dist/agents/skills/claude-code/harness-database/skill.yaml +80 -0
- package/dist/agents/skills/claude-code/harness-debugging/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-dependency-health/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-deployment/SKILL.md +255 -0
- package/dist/agents/skills/claude-code/harness-deployment/skill.yaml +77 -0
- package/dist/agents/skills/claude-code/harness-design/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-design-mobile/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-design-system/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-design-web/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-diagnostics/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-docs-pipeline/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-dx/SKILL.md +276 -0
- package/dist/agents/skills/claude-code/harness-dx/skill.yaml +76 -0
- package/dist/agents/skills/claude-code/harness-e2e/SKILL.md +245 -0
- package/dist/agents/skills/claude-code/harness-e2e/skill.yaml +78 -0
- package/dist/agents/skills/claude-code/harness-event-driven/SKILL.md +280 -0
- package/dist/agents/skills/claude-code/harness-event-driven/skill.yaml +77 -0
- package/dist/agents/skills/claude-code/harness-execution/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-feature-flags/SKILL.md +287 -0
- package/dist/agents/skills/claude-code/harness-feature-flags/skill.yaml +74 -0
- package/dist/agents/skills/claude-code/harness-git-workflow/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-hotspot-detector/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-i18n/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-i18n-process/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-i18n-workflow/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-impact-analysis/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-incident-response/SKILL.md +223 -0
- package/dist/agents/skills/claude-code/harness-incident-response/skill.yaml +78 -0
- package/dist/agents/skills/claude-code/harness-infrastructure-as-code/SKILL.md +279 -0
- package/dist/agents/skills/claude-code/harness-infrastructure-as-code/skill.yaml +80 -0
- package/dist/agents/skills/claude-code/harness-integration-test/SKILL.md +271 -0
- package/dist/agents/skills/claude-code/harness-integration-test/skill.yaml +73 -0
- package/dist/agents/skills/claude-code/harness-integrity/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-knowledge-mapper/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-load-testing/SKILL.md +274 -0
- package/dist/agents/skills/claude-code/harness-load-testing/skill.yaml +79 -0
- package/dist/agents/skills/claude-code/harness-ml-ops/SKILL.md +341 -0
- package/dist/agents/skills/claude-code/harness-ml-ops/skill.yaml +79 -0
- package/dist/agents/skills/claude-code/harness-mobile-patterns/SKILL.md +326 -0
- package/dist/agents/skills/claude-code/harness-mobile-patterns/skill.yaml +82 -0
- package/dist/agents/skills/claude-code/harness-mutation-test/SKILL.md +251 -0
- package/dist/agents/skills/claude-code/harness-mutation-test/skill.yaml +70 -0
- package/dist/agents/skills/claude-code/harness-observability/SKILL.md +283 -0
- package/dist/agents/skills/claude-code/harness-observability/skill.yaml +78 -0
- package/dist/agents/skills/claude-code/harness-onboarding/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-parallel-agents/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-perf/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-perf-tdd/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-planning/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-pre-commit-review/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-product-spec/SKILL.md +285 -0
- package/dist/agents/skills/claude-code/harness-product-spec/skill.yaml +72 -0
- package/dist/agents/skills/claude-code/harness-property-test/SKILL.md +281 -0
- package/dist/agents/skills/claude-code/harness-property-test/skill.yaml +71 -0
- package/dist/agents/skills/claude-code/harness-refactoring/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-release-readiness/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-resilience/SKILL.md +255 -0
- package/dist/agents/skills/claude-code/harness-resilience/skill.yaml +76 -0
- package/dist/agents/skills/claude-code/harness-roadmap/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-secrets/SKILL.md +293 -0
- package/dist/agents/skills/claude-code/harness-secrets/skill.yaml +76 -0
- package/dist/agents/skills/claude-code/harness-security-review/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-security-scan/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-skill-authoring/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-soundness-review/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-sql-review/SKILL.md +315 -0
- package/dist/agents/skills/claude-code/harness-sql-review/skill.yaml +74 -0
- package/dist/agents/skills/claude-code/harness-state-management/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-tdd/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-test-advisor/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-test-data/SKILL.md +268 -0
- package/dist/agents/skills/claude-code/harness-test-data/skill.yaml +74 -0
- package/dist/agents/skills/claude-code/harness-ux-copy/SKILL.md +271 -0
- package/dist/agents/skills/claude-code/harness-ux-copy/skill.yaml +77 -0
- package/dist/agents/skills/claude-code/harness-verification/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-verify/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/harness-visual-regression/SKILL.md +257 -0
- package/dist/agents/skills/claude-code/harness-visual-regression/skill.yaml +74 -0
- package/dist/agents/skills/claude-code/initialize-harness-project/skill.yaml +1 -0
- package/dist/agents/skills/claude-code/validate-context-engineering/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/add-harness-component/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/align-documentation/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/check-mechanical-constraints/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/cleanup-dead-code/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/detect-doc-drift/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/enforce-architecture/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-accessibility/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-api-design/SKILL.md +304 -0
- package/dist/agents/skills/gemini-cli/harness-api-design/skill.yaml +74 -0
- package/dist/agents/skills/gemini-cli/harness-architecture-advisor/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-auth/SKILL.md +279 -0
- package/dist/agents/skills/gemini-cli/harness-auth/skill.yaml +81 -0
- package/dist/agents/skills/gemini-cli/harness-autopilot/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-brainstorming/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-caching/SKILL.md +309 -0
- package/dist/agents/skills/gemini-cli/harness-caching/skill.yaml +73 -0
- package/dist/agents/skills/gemini-cli/harness-chaos/SKILL.md +295 -0
- package/dist/agents/skills/gemini-cli/harness-chaos/skill.yaml +72 -0
- package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-compliance/SKILL.md +303 -0
- package/dist/agents/skills/gemini-cli/harness-compliance/skill.yaml +78 -0
- package/dist/agents/skills/gemini-cli/harness-containerization/SKILL.md +284 -0
- package/dist/agents/skills/gemini-cli/harness-containerization/skill.yaml +80 -0
- package/dist/agents/skills/gemini-cli/harness-data-pipeline/SKILL.md +274 -0
- package/dist/agents/skills/gemini-cli/harness-data-pipeline/skill.yaml +81 -0
- package/dist/agents/skills/gemini-cli/harness-data-validation/SKILL.md +343 -0
- package/dist/agents/skills/gemini-cli/harness-data-validation/skill.yaml +75 -0
- package/dist/agents/skills/gemini-cli/harness-database/SKILL.md +258 -0
- package/dist/agents/skills/gemini-cli/harness-database/skill.yaml +80 -0
- package/dist/agents/skills/gemini-cli/harness-debugging/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-dependency-health/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-deployment/SKILL.md +255 -0
- package/dist/agents/skills/gemini-cli/harness-deployment/skill.yaml +77 -0
- package/dist/agents/skills/gemini-cli/harness-design/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-design-mobile/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-design-system/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-design-web/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-diagnostics/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-docs-pipeline/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-dx/SKILL.md +276 -0
- package/dist/agents/skills/gemini-cli/harness-dx/skill.yaml +76 -0
- package/dist/agents/skills/gemini-cli/harness-e2e/SKILL.md +245 -0
- package/dist/agents/skills/gemini-cli/harness-e2e/skill.yaml +78 -0
- package/dist/agents/skills/gemini-cli/harness-event-driven/SKILL.md +280 -0
- package/dist/agents/skills/gemini-cli/harness-event-driven/skill.yaml +77 -0
- package/dist/agents/skills/gemini-cli/harness-execution/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-feature-flags/SKILL.md +287 -0
- package/dist/agents/skills/gemini-cli/harness-feature-flags/skill.yaml +74 -0
- package/dist/agents/skills/gemini-cli/harness-git-workflow/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-hotspot-detector/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-i18n/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-i18n-process/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-i18n-workflow/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-impact-analysis/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-incident-response/SKILL.md +223 -0
- package/dist/agents/skills/gemini-cli/harness-incident-response/skill.yaml +78 -0
- package/dist/agents/skills/gemini-cli/harness-infrastructure-as-code/SKILL.md +279 -0
- package/dist/agents/skills/gemini-cli/harness-infrastructure-as-code/skill.yaml +80 -0
- package/dist/agents/skills/gemini-cli/harness-integration-test/SKILL.md +271 -0
- package/dist/agents/skills/gemini-cli/harness-integration-test/skill.yaml +73 -0
- package/dist/agents/skills/gemini-cli/harness-integrity/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-knowledge-mapper/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-load-testing/SKILL.md +274 -0
- package/dist/agents/skills/gemini-cli/harness-load-testing/skill.yaml +79 -0
- package/dist/agents/skills/gemini-cli/harness-ml-ops/SKILL.md +341 -0
- package/dist/agents/skills/gemini-cli/harness-ml-ops/skill.yaml +79 -0
- package/dist/agents/skills/gemini-cli/harness-mobile-patterns/SKILL.md +326 -0
- package/dist/agents/skills/gemini-cli/harness-mobile-patterns/skill.yaml +82 -0
- package/dist/agents/skills/gemini-cli/harness-mutation-test/SKILL.md +251 -0
- package/dist/agents/skills/gemini-cli/harness-mutation-test/skill.yaml +70 -0
- package/dist/agents/skills/gemini-cli/harness-observability/SKILL.md +283 -0
- package/dist/agents/skills/gemini-cli/harness-observability/skill.yaml +78 -0
- package/dist/agents/skills/gemini-cli/harness-onboarding/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-parallel-agents/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-perf/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-perf-tdd/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-planning/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-pre-commit-review/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-product-spec/SKILL.md +285 -0
- package/dist/agents/skills/gemini-cli/harness-product-spec/skill.yaml +72 -0
- package/dist/agents/skills/gemini-cli/harness-property-test/SKILL.md +281 -0
- package/dist/agents/skills/gemini-cli/harness-property-test/skill.yaml +71 -0
- package/dist/agents/skills/gemini-cli/harness-refactoring/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-release-readiness/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-resilience/SKILL.md +255 -0
- package/dist/agents/skills/gemini-cli/harness-resilience/skill.yaml +76 -0
- package/dist/agents/skills/gemini-cli/harness-roadmap/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-secrets/SKILL.md +293 -0
- package/dist/agents/skills/gemini-cli/harness-secrets/skill.yaml +76 -0
- package/dist/agents/skills/gemini-cli/harness-security-review/SKILL.md +240 -0
- package/dist/agents/skills/gemini-cli/harness-security-review/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-security-scan/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-skill-authoring/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-soundness-review/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-sql-review/SKILL.md +315 -0
- package/dist/agents/skills/gemini-cli/harness-sql-review/skill.yaml +74 -0
- package/dist/agents/skills/gemini-cli/harness-state-management/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-tdd/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-test-advisor/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-test-data/SKILL.md +268 -0
- package/dist/agents/skills/gemini-cli/harness-test-data/skill.yaml +74 -0
- package/dist/agents/skills/gemini-cli/harness-ux-copy/SKILL.md +271 -0
- package/dist/agents/skills/gemini-cli/harness-ux-copy/skill.yaml +77 -0
- package/dist/agents/skills/gemini-cli/harness-verification/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-verify/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/harness-visual-regression/SKILL.md +257 -0
- package/dist/agents/skills/gemini-cli/harness-visual-regression/skill.yaml +74 -0
- package/dist/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +1 -0
- package/dist/agents/skills/gemini-cli/validate-context-engineering/skill.yaml +1 -0
- package/dist/{agents-md-P2RHSUV7.js → agents-md-XU3BHE22.js} +1 -1
- package/dist/{architecture-ESOOE26S.js → architecture-2R5Z4ZAF.js} +2 -2
- package/dist/bin/harness-mcp.js +14 -13
- package/dist/bin/harness.js +22 -21
- package/dist/{check-phase-gate-S2MZKLFQ.js → check-phase-gate-2OFZ7OWW.js} +3 -2
- package/dist/{chunk-LD3DKUK5.js → chunk-4ZMOCPYO.js} +1 -1
- package/dist/{chunk-5VY23YK3.js → chunk-65FRIL4D.js} +2 -2
- package/dist/{chunk-L2KLU56K.js → chunk-AOZRDOIP.js} +2 -2
- package/dist/{chunk-MACVXDZK.js → chunk-DZS7CJKL.js} +4 -4
- package/dist/{chunk-7PZWR4LI.js → chunk-IM32EEDM.js} +9 -9
- package/dist/{chunk-2YPZKGAG.js → chunk-IMFVFNJE.js} +1 -1
- package/dist/{chunk-HD4IBGLA.js → chunk-N5G5QMS3.js} +24 -1
- package/dist/{chunk-MI5XJQDY.js → chunk-ND6PNADU.js} +23 -9
- package/dist/{chunk-7KQSUZVG.js → chunk-NERR4TAO.js} +729 -436
- package/dist/{chunk-PSNN4LWX.js → chunk-NOPU4RZ4.js} +2 -2
- package/dist/{chunk-KELT6K6M.js → chunk-PQ5YK4AY.js} +287 -258
- package/dist/{chunk-WPPDRIJL.js → chunk-QY4T6YAZ.js} +3 -3
- package/dist/{chunk-RZSUJBZZ.js → chunk-SSKDAOX5.js} +31 -28
- package/dist/{chunk-2VU4MFM3.js → chunk-TKJZKICB.js} +6 -6
- package/dist/{chunk-GNGELAXY.js → chunk-TS3XWPW5.js} +1 -1
- package/dist/chunk-UAX4I5ZE.js +217 -0
- package/dist/{chunk-VRFZWGMS.js → chunk-XYLGHKG6.js} +5 -1
- package/dist/{chunk-6N4R6FVX.js → chunk-YBJ262QL.js} +1 -1
- package/dist/{chunk-3KOLLWWE.js → chunk-Z77YQRQT.js} +11 -207
- package/dist/{ci-workflow-4NYBUG6R.js → ci-workflow-EHV65NQB.js} +1 -1
- package/dist/{create-skill-WPXHSLX2.js → create-skill-XSWHMSM5.js} +2 -2
- package/dist/{dist-WF4C7A4A.js → dist-2B363XUH.js} +1 -1
- package/dist/{dist-M6BQODWC.js → dist-HXHWB7SV.js} +2 -2
- package/dist/{docs-BPYCN2DR.js → docs-FZOPM4GK.js} +4 -2
- package/dist/{engine-LXLIWQQ3.js → engine-OL4T6NZS.js} +1 -1
- package/dist/{entropy-4VDVV5CR.js → entropy-LVHJMFGH.js} +2 -2
- package/dist/{feedback-63QB5RCA.js → feedback-IHLVLMRD.js} +1 -1
- package/dist/{generate-agent-definitions-QABOJG56.js → generate-agent-definitions-64S3CLEZ.js} +3 -3
- package/dist/{glob-helper-5OHBUQAI.js → glob-helper-R5FXNUPS.js} +1 -1
- package/dist/{graph-loader-KO4GJ5N2.js → graph-loader-GJZ4FN4Y.js} +1 -1
- package/dist/index.d.ts +35 -8
- package/dist/index.js +23 -21
- package/dist/{loader-Z2IT7QX3.js → loader-DPYFB6R6.js} +1 -1
- package/dist/{mcp-KQHEL5IF.js → mcp-JQUI7BVZ.js} +14 -13
- package/dist/{performance-26BH47O4.js → performance-ZTVSUANN.js} +2 -2
- package/dist/{review-pipeline-GHR3WFBI.js → review-pipeline-76JHKGSV.js} +1 -1
- package/dist/{runtime-PDWD7UIK.js → runtime-X7U6SC7K.js} +1 -1
- package/dist/{security-UQFUZXEN.js → security-FWQZF2IZ.js} +1 -1
- package/dist/skill-executor-XZLYZYAK.js +8 -0
- package/dist/{validate-N7QJOKFZ.js → validate-GCHZJIL7.js} +2 -2
- package/dist/{validate-cross-check-EDQ5QGTM.js → validate-cross-check-STFHYMAZ.js} +1 -1
- package/package.json +3 -3
- package/dist/skill-executor-RG45LUO5.js +0 -8
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
name: harness-containerization
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Dockerfile review, Kubernetes manifests, container registry management
|
|
4
|
+
cognitive_mode: meticulous-verifier
|
|
5
|
+
tier: 3
|
|
6
|
+
internal: false
|
|
7
|
+
keywords:
|
|
8
|
+
- Docker
|
|
9
|
+
- Dockerfile
|
|
10
|
+
- Kubernetes
|
|
11
|
+
- K8s
|
|
12
|
+
- container
|
|
13
|
+
- pod
|
|
14
|
+
- service
|
|
15
|
+
- deployment
|
|
16
|
+
- Helm
|
|
17
|
+
- registry
|
|
18
|
+
- image
|
|
19
|
+
- multi-stage
|
|
20
|
+
- docker-compose
|
|
21
|
+
stack_signals:
|
|
22
|
+
- "Dockerfile"
|
|
23
|
+
- "docker-compose.*"
|
|
24
|
+
- "k8s/"
|
|
25
|
+
- "kubernetes/"
|
|
26
|
+
- "helm/"
|
|
27
|
+
- "charts/"
|
|
28
|
+
- ".dockerignore"
|
|
29
|
+
- "skaffold.yaml"
|
|
30
|
+
triggers:
|
|
31
|
+
- manual
|
|
32
|
+
- on_pr
|
|
33
|
+
- on_commit
|
|
34
|
+
platforms:
|
|
35
|
+
- claude-code
|
|
36
|
+
- gemini-cli
|
|
37
|
+
tools:
|
|
38
|
+
- Bash
|
|
39
|
+
- Read
|
|
40
|
+
- Write
|
|
41
|
+
- Edit
|
|
42
|
+
- Glob
|
|
43
|
+
- Grep
|
|
44
|
+
- emit_interaction
|
|
45
|
+
cli:
|
|
46
|
+
command: harness skill run harness-containerization
|
|
47
|
+
args:
|
|
48
|
+
- name: path
|
|
49
|
+
description: Project root path
|
|
50
|
+
required: false
|
|
51
|
+
- name: scope
|
|
52
|
+
description: Scope of review (dockerfile, k8s, compose, all)
|
|
53
|
+
required: false
|
|
54
|
+
- name: fix
|
|
55
|
+
description: Auto-fix common issues (layer ordering, security)
|
|
56
|
+
type: boolean
|
|
57
|
+
required: false
|
|
58
|
+
mcp:
|
|
59
|
+
tool: run_skill
|
|
60
|
+
input:
|
|
61
|
+
skill: harness-containerization
|
|
62
|
+
path: string
|
|
63
|
+
type: rigid
|
|
64
|
+
phases:
|
|
65
|
+
- name: scan
|
|
66
|
+
description: Discover container configuration files and registry references
|
|
67
|
+
required: true
|
|
68
|
+
- name: analyze
|
|
69
|
+
description: Evaluate Dockerfiles, manifests, and compose files for best practices
|
|
70
|
+
required: true
|
|
71
|
+
- name: optimize
|
|
72
|
+
description: Recommend image size, layer, and security improvements
|
|
73
|
+
required: true
|
|
74
|
+
- name: validate
|
|
75
|
+
description: Verify configurations are correct and deployable
|
|
76
|
+
required: true
|
|
77
|
+
state:
|
|
78
|
+
persistent: false
|
|
79
|
+
files: []
|
|
80
|
+
depends_on: []
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
# Harness Data Pipeline
|
|
2
|
+
|
|
3
|
+
> Verify ETL/ELT pipeline quality, data contracts, idempotency, and test coverage. Analyzes DAG structure, transformation logic, and data quality checks across dbt, Airflow, Dagster, and Prefect pipelines.
|
|
4
|
+
|
|
5
|
+
## When to Use
|
|
6
|
+
|
|
7
|
+
- When reviewing a PR that modifies pipeline definitions, DAGs, or transformation logic
|
|
8
|
+
- When adding new data sources or sinks to an existing pipeline
|
|
9
|
+
- When data quality issues surface and pipeline validation needs auditing
|
|
10
|
+
- NOT for database schema design or migration review (use harness-database)
|
|
11
|
+
- NOT for SQL query optimization within pipelines (use harness-sql-review)
|
|
12
|
+
- NOT for infrastructure provisioning of pipeline runners (use harness-infrastructure-as-code)
|
|
13
|
+
|
|
14
|
+
## Process
|
|
15
|
+
|
|
16
|
+
### Phase 1: DETECT -- Identify Pipeline Framework and Structure
|
|
17
|
+
|
|
18
|
+
1. **Resolve project root.** Use provided path or cwd.
|
|
19
|
+
|
|
20
|
+
2. **Detect pipeline framework.** Scan for framework indicators:
|
|
21
|
+
- **dbt:** `dbt_project.yml`, `profiles.yml`, `models/` with `.sql` files, `macros/`
|
|
22
|
+
- **Airflow:** `dags/` directory, files importing `from airflow`, `airflow.cfg`
|
|
23
|
+
- **Dagster:** `dagster/` directory, files importing `from dagster`, `workspace.yaml`
|
|
24
|
+
- **Prefect:** files importing `from prefect`, `prefect.yaml`, `flows/`
|
|
25
|
+
- **Custom:** `pipelines/`, `etl/`, `src/**/transforms/**` without known framework markers
|
|
26
|
+
|
|
27
|
+
3. **Map DAG structure.** For the detected framework:
|
|
28
|
+
- **dbt:** Parse `ref()` and `source()` calls to build the model dependency graph
|
|
29
|
+
- **Airflow:** Parse `>>` operators and `set_downstream/set_upstream` calls to build task dependencies
|
|
30
|
+
- **Dagster:** Parse `@asset` decorators and `deps` parameters to build the asset graph
|
|
31
|
+
- **Prefect:** Parse `@flow` and `@task` decorators to build the flow graph
|
|
32
|
+
|
|
33
|
+
4. **Identify data sources and sinks.** Catalog:
|
|
34
|
+
- Source systems (databases, APIs, file systems, message queues)
|
|
35
|
+
- Sink targets (data warehouses, data lakes, downstream services)
|
|
36
|
+
- Intermediate staging areas
|
|
37
|
+
|
|
38
|
+
5. **Detect configuration.** Read pipeline configuration for:
|
|
39
|
+
- Schedule/cron definitions
|
|
40
|
+
- Retry policies and timeout settings
|
|
41
|
+
- Environment-specific overrides (dev, staging, production)
|
|
42
|
+
- Secret references and connection strings
|
|
43
|
+
|
|
44
|
+
6. **Report detection summary:**
|
|
45
|
+
```
|
|
46
|
+
Framework: dbt 1.7 + Airflow 2.8
|
|
47
|
+
Models: 45 dbt models (12 staging, 18 intermediate, 15 mart)
|
|
48
|
+
DAGs: 3 Airflow DAGs (daily-etl, hourly-metrics, weekly-reports)
|
|
49
|
+
Sources: 2 PostgreSQL databases, 1 S3 bucket, 1 Stripe API
|
|
50
|
+
Sinks: BigQuery (analytics warehouse)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### Phase 2: ANALYZE -- Evaluate Pipeline Patterns
|
|
56
|
+
|
|
57
|
+
1. **Check idempotency.** For each pipeline/model:
|
|
58
|
+
- Does the transformation produce the same result when run multiple times?
|
|
59
|
+
- Are there `INSERT` operations without corresponding `DELETE` or `MERGE` logic?
|
|
60
|
+
- Are dbt models using `incremental` materialization with proper `unique_key`?
|
|
61
|
+
- Do Airflow tasks use idempotent operators or handle re-runs gracefully?
|
|
62
|
+
|
|
63
|
+
2. **Check error handling.** Evaluate:
|
|
64
|
+
- Are failed tasks retried with backoff? (Airflow: `retries`, `retry_delay`; Prefect: `retries`, `retry_delay_seconds`)
|
|
65
|
+
- Is there alerting on pipeline failure? (Slack, PagerDuty, email callbacks)
|
|
66
|
+
- Are partial failures handled? (Can the pipeline resume from the point of failure?)
|
|
67
|
+
- Are dead-letter queues or error tables configured for unprocessable records?
|
|
68
|
+
|
|
69
|
+
3. **Check data contracts.** Verify schema enforcement:
|
|
70
|
+
- Are source schemas validated before transformation? (dbt: `source` tests; custom: schema validation)
|
|
71
|
+
- Are output schemas enforced? (dbt: `contracts`; custom: schema assertions)
|
|
72
|
+
- Are breaking changes to source schemas detected? (freshness checks, schema drift detection)
|
|
73
|
+
- Are there column-level descriptions and documentation?
|
|
74
|
+
|
|
75
|
+
4. **Check pipeline dependencies.** Analyze the DAG for:
|
|
76
|
+
- Circular dependencies (error: pipeline cannot complete)
|
|
77
|
+
- Overly long critical paths (warning: bottleneck risk)
|
|
78
|
+
- Disconnected subgraphs (info: may indicate orphaned pipelines)
|
|
79
|
+
- Fan-out bottlenecks (one task blocking many downstream tasks)
|
|
80
|
+
|
|
81
|
+
5. **Check freshness and SLAs.** Evaluate:
|
|
82
|
+
- Are `freshness` checks defined for sources? (dbt: `loaded_at_field`, `warn_after`, `error_after`)
|
|
83
|
+
- Are pipeline SLAs defined? (Airflow: `sla` parameter)
|
|
84
|
+
- Do SLAs match business requirements?
|
|
85
|
+
- Is there monitoring for SLA breaches?
|
|
86
|
+
|
|
87
|
+
6. **Classify findings by severity:**
|
|
88
|
+
- **Error:** Non-idempotent writes, circular dependencies, missing error handling for production DAGs
|
|
89
|
+
- **Warning:** Missing freshness checks, no retry policy, missing data contracts
|
|
90
|
+
- **Info:** Undocumented models, missing column descriptions, suboptimal materialization strategy
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### Phase 3: VALIDATE -- Check Data Quality and Test Coverage
|
|
95
|
+
|
|
96
|
+
1. **Audit existing data tests.** For each framework:
|
|
97
|
+
- **dbt:** Count tests per model (`unique`, `not_null`, `accepted_values`, `relationships`, custom)
|
|
98
|
+
- **Airflow:** Check for data validation tasks in DAGs
|
|
99
|
+
- **Dagster:** Check for `@asset_check` decorators and `check_specs`
|
|
100
|
+
- **Custom:** Look for assertion functions, validation scripts, or test files
|
|
101
|
+
|
|
102
|
+
2. **Calculate test coverage.** Measure:
|
|
103
|
+
- Models/tasks with zero tests (critical gap)
|
|
104
|
+
- Models with only generic tests (not_null, unique) but no business logic tests
|
|
105
|
+
- Primary key coverage: does every model test uniqueness on its grain?
|
|
106
|
+
- Referential integrity: are foreign key relationships tested?
|
|
107
|
+
|
|
108
|
+
3. **Check for missing critical tests.** Flag models that should have specific tests:
|
|
109
|
+
- Revenue/financial models: must have row count variance checks and sum validation
|
|
110
|
+
- User-facing models: must have not_null on required display fields
|
|
111
|
+
- Incremental models: must have uniqueness test on the incremental key
|
|
112
|
+
- Models with `WHERE` clauses: must have tests verifying the filter logic
|
|
113
|
+
|
|
114
|
+
4. **Validate pipeline testability.** Assess:
|
|
115
|
+
- Can pipelines run in a test environment with mock data?
|
|
116
|
+
- Are there integration tests that run the full pipeline on sample datasets?
|
|
117
|
+
- Is there a CI pipeline that runs dbt tests / DAG validation on every PR?
|
|
118
|
+
|
|
119
|
+
5. **Check for data quality patterns:**
|
|
120
|
+
- Row count anomaly detection (sudden drops or spikes)
|
|
121
|
+
- Schema drift detection (new columns, type changes)
|
|
122
|
+
- Null rate monitoring (percentage of nulls exceeding threshold)
|
|
123
|
+
- Value distribution monitoring (categorical values outside expected set)
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### Phase 4: DOCUMENT -- Generate Pipeline Documentation
|
|
128
|
+
|
|
129
|
+
1. **Generate pipeline lineage report.** Produce a text-based lineage visualization:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
source.stripe.payments
|
|
133
|
+
-> stg_payments (staging, view)
|
|
134
|
+
-> int_payments_enriched (intermediate, table)
|
|
135
|
+
-> mart_revenue_daily (mart, incremental)
|
|
136
|
+
-> [exposed to: Looker dashboard, finance API]
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
2. **Generate quality check report.** Summarize test coverage and findings:
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
Pipeline Quality Report: [PASS/NEEDS_ATTENTION/FAIL]
|
|
143
|
+
Models: 45 total
|
|
144
|
+
Test coverage: 78% (35/45 models have tests)
|
|
145
|
+
Critical gaps: 3 models with zero tests (mart_revenue_daily, stg_users, int_orders)
|
|
146
|
+
Data contracts: 12/15 mart models have contracts
|
|
147
|
+
Freshness checks: 4/6 sources have freshness monitoring
|
|
148
|
+
|
|
149
|
+
ERRORS:
|
|
150
|
+
[DP-ERR-001] models/marts/mart_revenue_daily.sql
|
|
151
|
+
Non-idempotent: uses INSERT without MERGE or DELETE+INSERT pattern
|
|
152
|
+
[DP-ERR-002] dags/daily_etl.py
|
|
153
|
+
No retry policy: tasks will not retry on transient failures
|
|
154
|
+
|
|
155
|
+
WARNINGS:
|
|
156
|
+
[DP-WARN-001] models/staging/stg_users.sql
|
|
157
|
+
Zero tests: no data quality checks on user staging model
|
|
158
|
+
[DP-WARN-002] sources.yml
|
|
159
|
+
Missing freshness: stripe.payments source has no freshness check
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
3. **Generate missing documentation.** For undocumented models:
|
|
163
|
+
- Create `schema.yml` entries with inferred column descriptions
|
|
164
|
+
- Add model descriptions based on SQL logic analysis
|
|
165
|
+
- Document source-to-mart lineage
|
|
166
|
+
|
|
167
|
+
4. **Produce remediation checklist.** Prioritized list of actions:
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
Priority 1 (errors):
|
|
171
|
+
[ ] Fix mart_revenue_daily to use MERGE for idempotency
|
|
172
|
+
[ ] Add retry policy to daily_etl DAG tasks
|
|
173
|
+
|
|
174
|
+
Priority 2 (warnings):
|
|
175
|
+
[ ] Add not_null and unique tests to stg_users
|
|
176
|
+
[ ] Add freshness check to stripe.payments source
|
|
177
|
+
|
|
178
|
+
Priority 3 (info):
|
|
179
|
+
[ ] Add column descriptions to 12 undocumented models
|
|
180
|
+
[ ] Document the weekly-reports DAG purpose and schedule
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Harness Integration
|
|
186
|
+
|
|
187
|
+
- **`harness skill run harness-data-pipeline`** -- Primary command for pipeline quality auditing.
|
|
188
|
+
- **`harness validate`** -- Run after applying pipeline changes to verify project health.
|
|
189
|
+
- **`Glob`** -- Used to locate DAG files, model definitions, configuration files, and test specifications.
|
|
190
|
+
- **`Grep`** -- Used to find `ref()` calls, `source()` references, operator chains, and test definitions.
|
|
191
|
+
- **`Read`** -- Used to read pipeline definitions, SQL models, configuration files, and test results.
|
|
192
|
+
- **`Write`** -- Used to generate documentation stubs, schema.yml entries, and quality reports.
|
|
193
|
+
- **`Bash`** -- Used to run `dbt ls`, `dbt test --dry-run`, or parse DAG structures.
|
|
194
|
+
- **`emit_interaction`** -- Used to present the quality report and confirm remediation priorities.
|
|
195
|
+
|
|
196
|
+
## Success Criteria
|
|
197
|
+
|
|
198
|
+
- Pipeline framework is correctly detected with full DAG structure mapped
|
|
199
|
+
- Every model/task is evaluated for idempotency, error handling, and data contracts
|
|
200
|
+
- Test coverage percentage is calculated with critical gaps identified
|
|
201
|
+
- Lineage is documented from source to mart/exposure
|
|
202
|
+
- Findings are classified by severity with specific remediation steps
|
|
203
|
+
- Quality report follows structured format suitable for team review
|
|
204
|
+
|
|
205
|
+
## Examples
|
|
206
|
+
|
|
207
|
+
### Example: dbt Project with BigQuery Warehouse
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
Phase 1: DETECT
|
|
211
|
+
Framework: dbt 1.7.4 (dbt-bigquery adapter)
|
|
212
|
+
Models: 52 (15 staging, 22 intermediate, 15 mart)
|
|
213
|
+
Sources: 3 (PostgreSQL replica, Stripe API via Fivetran, Google Sheets)
|
|
214
|
+
Target: BigQuery dataset `analytics`
|
|
215
|
+
|
|
216
|
+
Phase 2: ANALYZE
|
|
217
|
+
[DP-ERR-001] models/marts/mart_subscriptions.sql
|
|
218
|
+
Incremental model missing unique_key -- will create duplicates on re-run
|
|
219
|
+
[DP-WARN-001] 4 sources missing freshness checks
|
|
220
|
+
[DP-WARN-002] No retry configuration in dbt Cloud job settings
|
|
221
|
+
|
|
222
|
+
Phase 3: VALIDATE
|
|
223
|
+
Test coverage: 71% (37/52 models)
|
|
224
|
+
Critical gaps: mart_revenue (no tests), mart_subscriptions (no uniqueness test)
|
|
225
|
+
Primary key coverage: 80% (missing on 3 intermediate models)
|
|
226
|
+
|
|
227
|
+
Phase 4: DOCUMENT
|
|
228
|
+
Generated: lineage report for all 52 models
|
|
229
|
+
Generated: schema.yml stubs for 8 undocumented models
|
|
230
|
+
Quality Report: NEEDS_ATTENTION (1 error, 4 warnings)
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Example: Airflow DAGs with S3-to-Snowflake Pipeline
|
|
234
|
+
|
|
235
|
+
```
|
|
236
|
+
Phase 1: DETECT
|
|
237
|
+
Framework: Apache Airflow 2.8.1
|
|
238
|
+
DAGs: 5 (s3_ingest_daily, transform_orders, aggregate_metrics, export_reports, cleanup)
|
|
239
|
+
Sources: S3 buckets (raw-events, partner-feeds), PostgreSQL
|
|
240
|
+
Sinks: Snowflake (ANALYTICS schema), S3 (processed-exports)
|
|
241
|
+
|
|
242
|
+
Phase 2: ANALYZE
|
|
243
|
+
[DP-ERR-001] dags/s3_ingest_daily.py
|
|
244
|
+
S3KeySensor has no timeout -- will block the scheduler indefinitely
|
|
245
|
+
[DP-ERR-002] dags/transform_orders.py
|
|
246
|
+
PythonOperator writes to Snowflake without transaction -- partial writes on failure
|
|
247
|
+
[DP-WARN-001] dags/cleanup.py
|
|
248
|
+
No SLA defined -- cleanup failures could go unnoticed for days
|
|
249
|
+
[DP-INFO-001] All DAGs use default_args but 2 override retries to 0
|
|
250
|
+
|
|
251
|
+
Phase 3: VALIDATE
|
|
252
|
+
DAG validation: all 5 parse without errors
|
|
253
|
+
Data validation tasks: present in 3/5 DAGs
|
|
254
|
+
Missing: no validation in s3_ingest_daily (raw data accepted without checks)
|
|
255
|
+
|
|
256
|
+
Phase 4: DOCUMENT
|
|
257
|
+
Generated: DAG dependency diagram
|
|
258
|
+
Generated: runbook for each DAG with schedule, dependencies, and failure recovery
|
|
259
|
+
Quality Report: FAIL (2 errors requiring immediate attention)
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Gates
|
|
263
|
+
|
|
264
|
+
- **No approving non-idempotent production pipelines.** If a pipeline writes data without MERGE, upsert, or delete-then-insert patterns, it is flagged as an error. Non-idempotent pipelines cause data duplication on re-runs.
|
|
265
|
+
- **No ignoring circular dependencies.** Circular dependencies in the DAG mean the pipeline cannot complete. This is always an error, never a warning.
|
|
266
|
+
- **No passing pipelines with zero test coverage on financial models.** Models that feed revenue reports, billing, or financial dashboards must have data quality tests. Zero coverage on these models is an error.
|
|
267
|
+
- **No generating documentation that misrepresents lineage.** If the lineage cannot be confidently traced (e.g., dynamic SQL, runtime-generated table names), mark it as "unresolved" rather than guessing.
|
|
268
|
+
|
|
269
|
+
## Escalation
|
|
270
|
+
|
|
271
|
+
- **When pipeline logic uses dynamic SQL or runtime table names:** Flag that lineage cannot be statically analyzed: "This model uses `{{ var('target_table') }}` which resolves at runtime. Manual lineage documentation is required."
|
|
272
|
+
- **When data quality issues indicate upstream source problems:** Do not attempt to fix source data. Report: "Source `stripe.payments` has 15% null `customer_id` values. This is a source data quality issue -- coordinate with the data provider."
|
|
273
|
+
- **When pipeline SLAs conflict with infrastructure capacity:** If the pipeline takes longer than its schedule interval, flag the scheduling conflict: "daily_etl takes ~4 hours but is scheduled every 2 hours. This will cause overlapping runs."
|
|
274
|
+
- **When migration from one framework to another is in progress:** If both Airflow and Dagster artifacts exist, ask for clarification rather than analyzing both: "Found both Airflow DAGs and Dagster assets. Which framework should be audited? Is a migration in progress?"
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
name: harness-data-pipeline
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: ETL/ELT patterns, data quality checks, pipeline testing, and data workflow management
|
|
4
|
+
cognitive_mode: meticulous-verifier
|
|
5
|
+
triggers:
|
|
6
|
+
- manual
|
|
7
|
+
- on_pr
|
|
8
|
+
- on_commit
|
|
9
|
+
platforms:
|
|
10
|
+
- claude-code
|
|
11
|
+
- gemini-cli
|
|
12
|
+
tools:
|
|
13
|
+
- Bash
|
|
14
|
+
- Read
|
|
15
|
+
- Write
|
|
16
|
+
- Edit
|
|
17
|
+
- Glob
|
|
18
|
+
- Grep
|
|
19
|
+
- emit_interaction
|
|
20
|
+
cli:
|
|
21
|
+
command: harness skill run harness-data-pipeline
|
|
22
|
+
args:
|
|
23
|
+
- name: path
|
|
24
|
+
description: Project root path
|
|
25
|
+
required: false
|
|
26
|
+
- name: framework
|
|
27
|
+
description: "Pipeline framework: dbt, airflow, dagster, prefect. Auto-detected when omitted."
|
|
28
|
+
required: false
|
|
29
|
+
- name: check-quality
|
|
30
|
+
description: Run data quality validation rules against pipeline definitions
|
|
31
|
+
required: false
|
|
32
|
+
mcp:
|
|
33
|
+
tool: run_skill
|
|
34
|
+
input:
|
|
35
|
+
skill: harness-data-pipeline
|
|
36
|
+
path: string
|
|
37
|
+
type: rigid
|
|
38
|
+
tier: 3
|
|
39
|
+
internal: false
|
|
40
|
+
keywords:
|
|
41
|
+
- data pipeline
|
|
42
|
+
- ETL
|
|
43
|
+
- ELT
|
|
44
|
+
- data quality
|
|
45
|
+
- pipeline testing
|
|
46
|
+
- Airflow
|
|
47
|
+
- dbt
|
|
48
|
+
- Dagster
|
|
49
|
+
- Prefect
|
|
50
|
+
- data transformation
|
|
51
|
+
- data ingestion
|
|
52
|
+
- data warehouse
|
|
53
|
+
- BigQuery
|
|
54
|
+
- Snowflake
|
|
55
|
+
stack_signals:
|
|
56
|
+
- "dbt/"
|
|
57
|
+
- "dbt_project.yml"
|
|
58
|
+
- "airflow/"
|
|
59
|
+
- "dags/"
|
|
60
|
+
- "dagster/"
|
|
61
|
+
- "pipelines/"
|
|
62
|
+
- "etl/"
|
|
63
|
+
- "src/**/transforms/**"
|
|
64
|
+
- "models/"
|
|
65
|
+
phases:
|
|
66
|
+
- name: detect
|
|
67
|
+
description: Identify pipeline framework, DAG structure, data sources, and sink targets
|
|
68
|
+
required: true
|
|
69
|
+
- name: analyze
|
|
70
|
+
description: Evaluate pipeline patterns, dependency graphs, idempotency, and error handling
|
|
71
|
+
required: true
|
|
72
|
+
- name: validate
|
|
73
|
+
description: Check data quality rules, schema contracts, freshness SLAs, and test coverage
|
|
74
|
+
required: true
|
|
75
|
+
- name: document
|
|
76
|
+
description: Generate pipeline documentation, lineage diagrams, and quality check reports
|
|
77
|
+
required: true
|
|
78
|
+
state:
|
|
79
|
+
persistent: false
|
|
80
|
+
files: []
|
|
81
|
+
depends_on: []
|