Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Designs robust ETL/ELT data pipelines covering ingestion, idempotency, schema evolution, orchestration, and data quality validation. Use this skill when the user asks to design, build, or review a data pipeline, ingest data from APIs/databases/files into a warehouse or lake, set up batch or streaming ETL/ELT, choose an orchestrator (Airflow, Dagster, Prefect, dbt), make a pipeline idempotent or backfill-safe, handle late-arriving or duplicate data, manage schema drift/evolution, add data quality
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 47% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 59% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 48% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 58% | 0% |
This skill helps you design and review production-grade data pipelines. It covers the full lifecycle: ingestion, transformation, idempotency and backfills, schema evolution, orchestration, and data quality. It is opinionated toward modern ELT (load raw, transform in-warehouse) but supports classic ETL where it fits.
Keywords: ETL, ELT, data pipeline, ingestion, idempotency, backfill, schema evolution, schema drift, CDC, incremental load, watermark, orchestration, Airflow, Dagster, Prefect, dbt, data quality, freshness, dedup, late-arriving data, partitioning, medallion, bronze silver gold.
Use this skill to produce a concrete pipeline design (a design doc), to review an existing pipeline against best practices, or to generate skeleton DAGs/models and data-quality checks.
Default to ELT when the destination is a modern columnar warehouse/lake (Snowflake, BigQuery, Redshift, Databricks, DuckDB). Land raw data first, transform with SQL/dbt. Use ETL when: the destination can't transform cheaply, you must mask/drop PII before it lands (compliance), or you transform in-flight for a stream. See references/etl-vs-elt.md.
Follow these steps in order. Produce the design document in templates/pipeline-design.md as you go.
references/ingestion-patterns.md.references/idempotency.md: deterministic partition keys, MERGE/upsert on a stable business key, delete-insert by partition, or staging-then-atomic-swap. Never blind INSERT into a target on retry.updated_at, monotonic id, or LSN/CDC offset). Store the watermark in a state table, not in code. Re-read with overlap (lookback window) to catch late updates, then dedup. See references/ingestion-patterns.md.references/schema-evolution.md.references/orchestration.md.references/orchestration.md.references/data-quality.md.scripts/pipeline_lint.py against the design doc / config to catch missing idempotency keys, absent quality checks, no retry policy, and no schema-evolution policy._loaded_at, _source, and _batch_id for lineage and debugging.references/etl-vs-elt.md — decision matrix, batch vs streaming, when each wins.references/ingestion-patterns.md — full/incremental/CDC, watermarks, late-arriving data, dedup SQL.references/idempotency.md — MERGE, delete-insert, staging swap patterns with SQL.references/schema-evolution.md — formats, policies per layer, breaking-change handling.references/orchestration.md — tool comparison, DAG/retry/SLA patterns, medallion layering.references/data-quality.md — check taxonomy, where to place gates, dbt/Great Expectations examples.templates/pipeline-design.md — fill-in design document.examples/orders-pipeline.md — worked end-to-end example (Postgres → warehouse).scripts/pipeline_lint.py — lints a pipeline design config (YAML/JSON) for required safeguards.Other measured skills in the registry, with their headline benchmark lift.