Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design data pipelines with quality checks, orchestration, and governance using modern data stack patterns for robust ELT/ETL workflows.
.claude/skills/williamzujkowski-data-engineering-pipeline-designer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 84% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 52% | 0% |
Trigger this skill when:
Do NOT use for:
Time normalization:
NOW_ET = 2025-10-25T21:30:36-04:00 (NIST/time.gov, America/New_York)Input validation:
pipeline_type must be one of: batch, streaming, hybridsource_systems must contain at least one valid sourcetransformation_requirements must specify business logic or be empty for raw ingestionquality_requirements must define at least one validation rule or SLAorchestration_platform must be specified (default: Airflow if omitted)target_systems must contain at least one destinationAbort conditions:
Use when: 80% of cases; standard batch pipeline with known patterns
Steps:
json { "pipeline_id": "<slug>", "type": "batch|streaming|hybrid", "orchestration": "airflow|kafka", "layers": { "ingestion": {"sources": [], "method": "full|incremental"}, "transformation": {"tool": "dbt", "models": []}, "quality": {"framework": "great_expectations", "checkpoints": []}, "storage": {"targets": [], "format": "parquet|delta"} }, "schedule": "cron|event-driven" }
Token budget: T1 ≤ 2000 tokens
Use when: Production deployment, complex transformations, strict SLAs
Prerequisites: T1 completed OR inputs indicate production requirements
Steps:
Token budget: T2 ≤ 6000 tokens
Use when: Handling PB-scale data, multi-region, complex event-driven patterns
Note: This skill is scoped to T2. For T3 scenarios:
Not implemented in v1.0.0.
When to choose batch vs streaming:
When to use incremental vs full refresh:
When to fail vs warn on data quality issues:
Orchestration platform selection:
Abort conditions:
Required fields:
json{ "pipeline_architecture": { "pipeline_id": "string (slug format)", "type": "batch|streaming|hybrid", "orchestration": { "platform": "airflow|prefect|dagster|kafka", "schedule": "cron expression | event-driven", "parallelism": "integer (max concurrent tasks)" }, "layers": { "ingestion": { "sources": ["array of source configs"], "method": "full|incremental", "connector": "native|fivetran|airbyte|custom" }, "transformation": { "tool": "dbt|spark|custom", "models": ["array of model names"], "materialization": "view|table|incremental" }, "quality": { "framework": "great_expectations|dbt_tests|custom", "checkpoints": ["array of checkpoint configs"], "action_on_failure": "block|warn|quarantine" }, "storage": { "targets": ["array of target configs"], "format": "parquet|delta|iceberg|avro" } }, "monitoring": { "slas": ["array of SLA definitions"], "alerts": ["array of alert configs"], "lineage": "openlineage|datahub|custom" } }, "dag_template": "string (executable code or path to resource)", "quality_checks": "string (Great Expectations suite YAML or dbt test SQL)", "monitoring_config": "string (alert rules, dashboard JSON)", "implementation_guide": "array of step-by-step instructions" }
Optional fields:
cost_estimate: projected monthly cost (warehouse + orchestration + storage)performance_benchmarks: expected throughput, latency targetsrollback_plan: how to revert if pipeline fails in productionValidation:
pipeline_id must be unique, slug format (lowercase, hyphens)schedule must be valid cron OR event trigger definitionsources and targets must have valid connection info (no credentials in output)models must exist in transformation layerExample 1: Batch ELT Pipeline (E-commerce Orders)
yaml# Input pipeline_type: batch source_systems: [{type: postgres, name: orders_db, tables: [orders, customers]}] transformation_requirements: [Join orders+customers, Calculate daily revenue] quality_requirements: [order_id unique, order_total > 0] orchestration_platform: airflow target_systems: [{type: snowflake, schema: analytics}] schedule: 0 2 * * * # Output (abbreviated) pipeline_architecture: pipeline_id: ecommerce-orders-elt type: batch orchestration: {platform: airflow, schedule: "0 2 * * *"} layers: ingestion: sources: [orders_db.orders, orders_db.customers] method: incremental transformation: tool: dbt models: [stg_orders, int_order_metrics, fct_daily_revenue] quality: framework: great_expectations checkpoints: [staging_check, marts_check]
Token budgets (enforced):
Safety checks:
Auditability:
implementation_guideDeterminism:
Official documentation (accessed 2025-10-25T21:30:36-04:00):
Best practices guides:
Templates and examples:
/skills/data-pipeline-designer/resources/airflow-dag-template.py: Production-ready DAG with TaskGroups and SLAsdbt-project-structure.yml: Layered dbt project (staging → marts)great-expectations-suite.yml: Common data quality checkskafka-streaming-config.json: Schema registry + consumer group setupRelated skills:
database-optimization-analyzer: For warehouse query tuning and indexingdevops-pipeline-architect: For CI/CD of pipeline codecloud-native-deployment-orchestrator: For Kubernetes-based Airflow deployments| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | fail→fail | 17,720 | 10,711 | -40% | 1 | 1 | 0% | 3,251 | 5,504 | +69% | 0 | 0 | — |
case-03 | fail→fail | 25,593 | 18,267 | -29% | 1 | 1 | 0% | 6,259 | 8,222 | +31% | 0 | 0 | — |
case-01 | fail→pass | 23,942 | 17,786 | -26% | 1 | 1 | 0% | 6,273 | 8,165 | +30% | 0 | 0 | — |
case-02 | fail→pass | 25,946 | 18,449 | -29% | 1 | 1 | 0% | 6,263 | 7,862 | +26% | 0 | 0 | — |
case-05 | fail→pass | 21,319 | 19,198 | -10% | 1 | 1 | 0% | 4,619 | 7,710 | +67% | 0 | 0 | — |
case-06 | fail→fail | 12,020 | 9,425 | -22% | 1 | 1 | 0% | 2,527 | 5,380 | +113% | 0 | 0 | — |
case-07 | fail→pass | 15,749 | 10,057 | -36% | 1 | 1 | 0% | 3,052 | 5,615 | +84% | 0 | 0 | — |
case-08 | fail→fail | 26,203 | 15,593 | -40% | 1 | 1 | 0% | 4,962 | 7,056 | +42% | 0 | 0 | — |
case-09 | fail→fail | 20,061 | 17,706 | -12% | 1 | 1 | 0% | 4,050 | 7,413 | +83% | 0 | 0 | — |
case-10 | pass→pass | 21,030 | 12,769 | -39% | 1 | 1 | 0% | 4,478 | 6,597 | +47% | 0 | 0 | — |
case-11 | pass→pass | 22,435 | 19,480 | -13% | 1 | 1 | 0% | 5,279 | 8,092 | +53% | 0 | 0 | — |
case-12 | pass→pass | 13,668 | 14,340 | +5% | 1 | 1 | 0% | 3,002 | 6,726 | +124% | 0 | 0 | — |
case-13 | pass→pass | 30,806 | 16,539 | -46% | 1 | 1 | 0% | 6,198 | 6,895 | +11% | 0 | 0 | — |
case-14 | pass→pass | 19,912 | 18,486 | -7% | 1 | 1 | 0% | 4,202 | 7,368 | +75% | 0 | 0 | — |
case-15 | fail→pass | 21,491 | 17,115 | -20% | 1 | 1 | 0% | 4,754 | 7,221 | +52% | 0 | 0 | — |
case-16 | pass→pass | 25,629 | 20,227 | -21% | 1 | 1 | 0% | 5,050 | 7,700 | +52% | 0 | 0 | — |
case-17 | pass→pass | 21,076 | 18,105 | -14% | 1 | 1 | 0% | 4,430 | 6,918 | +56% | 0 | 0 | — |
case-18 | pass→pass | 21,006 | 16,292 | -22% | 1 | 1 | 0% | 4,073 | 6,862 | +68% | 0 | 0 | — |
case-19 | pass→pass | 31,141 | 18,203 | -42% | 1 | 1 | 0% | 6,205 | 7,254 | +17% | 0 | 0 | — |
case-20 | pass→pass | 14,831 | 14,139 | -5% | 1 | 1 | 0% | 2,880 | 6,302 | +119% | 0 | 0 | — |
case-21 | pass→pass | 20,206 | 11,683 | -42% | 1 | 1 | 0% | 3,940 | 5,937 | +51% | 0 | 0 | — |
case-22 | pass→pass | 25,059 | 15,527 | -38% | 1 | 1 | 0% | 5,033 | 6,941 | +38% | 0 | 0 | — |
case-23 | pass→pass | 24,975 | 17,657 | -29% | 1 | 1 | 0% | 5,459 | 7,566 | +39% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +22 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.