agentsclimarketplace

Motherduck build data pipeline

Skill motherduckdb/agent-skills/skills/motherduck-build-data-pipeline

Design an end-to-end MotherDuck data pipeline. Use for ETL/ELT workflows -- choosing raw, staging, and analytics boundaries, bulk ingestion paths, transformation sequencing, dlt/dbt integration, publication targets, or whether DuckLake is actually required.From its SKILL.md

Install
npx -y skills add motherduckdb/agent-skills --skill motherduck-build-data-pipeline

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its file declares

Copied from the file, not written here

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.1 KB, as published. Nobody here has run it

Build a Data Pipeline with MotherDuck

Use this skill when the user needs an ingestion-to-serving workflow, not just a single load step.

This is a use-case skill. It orchestrates motherduck-connect, motherduck-load-data, motherduck-model-data, motherduck-query, motherduck-share-data, and motherduck-ducklake.

Start Here: Is a MotherDuck Server Active?

  • If a remote MotherDuck MCP server or local MotherDuck server is active, use it.
  • If the user names the destination database, use it without adding a confirmation step.
  • Explore the live environment:
    • current databases and schemas
    • raw, staging, and analytics boundaries if they already exist
    • source tables, target tables, and table grain
    • key columns, date fields, and join keys

Use that discovery to decide whether the pipeline is:

  • landing into an empty workspace
  • extending an existing warehouse layout
  • publishing into an existing analytics model

If no server is active, use any supplied source and target context. For planning work, proceed with explicit assumptions when safe; ask for missing details only when they block a reliable result.

Pipeline Defaults

  • batch over streaming
  • raw landing before curation
  • explicit raw -> staging -> analytics boundaries
  • bulk ingest paths over row-by-row writes
  • idempotent stage rebuilds or append contracts before scheduled automation
  • verify the MotherDuck-supported DuckDB client version before recommending upstream-only write, checkpoint, or lakehouse features
  • native MotherDuck storage unless DuckLake is explicitly required

Workflow

  1. Inspect the available MotherDuck server or supplied source and target context.
  2. Inspect the current workspace and target data model.
  3. Define raw, staging, and analytics boundaries.
  4. Ingest raw data.
  5. Deduplicate, type, and promote into staging.
  6. Materialize analytics-ready outputs.
  7. Validate counts, freshness, uniqueness, and business metrics before publishing downstream assets.

Match execution to the request: answer, review, or planning work returns the requested pipeline artifacts; build or change work creates the requested in-scope files and warehouse objects and validates them. Ask before destructive actions, unrelated external writes, or a material expansion of scope.

When this skill produces a native DuckDB (md:) connection, watermark it with custom_user_agent=agent-skills/2.5.0(harness-<harness>;llm-<llm>). If metadata is missing, fall back to harness-unknown and llm-unknown.

Output

The output of this skill should be:

  • the stage layout
  • the ingestion method
  • the transformation sequence
  • the serving tables or views
  • the validation checks

If the caller explicitly asks for structured JSON, return raw JSON only with no Markdown fences or prose before/after it. This is mainly for automated tests, regression checks, or downstream tooling that needs a stable machine-readable shape. Normal human-facing use of the skill can stay in prose unless JSON is explicitly requested.

Use this exact top-level shape when JSON is requested:

{
  "summary": {},
  "assumptions": [],
  "implementation_plan": [],
  "validation_plan": [],
  "risks": []
}

References

  • references/dlt-dbt-motherduck-project/ -- fully runnable MotherDuck reference project using dlt, dbt-duckdb, and validation queries
  • references/PIPELINE_IMPLEMENTATION_GUIDE.md -- preserved detailed pipeline guidance that used to live in this skill
  • ../motherduck-load-data/references/INGESTION_PATTERNS.md -- lower-level ingestion patterns

Runnable Artifact

  • artifacts/pipeline_stage_example.py -- MotherDuck-backed Python example that stages a Parquet extract, lands it into raw, deduplicates it, and publishes analytics output across raw/staging/analytics databases
  • artifacts/pipeline_stage_example.ts -- TypeScript companion artifact with the same stage layout and output contract
  • references/dlt-dbt-motherduck-project/ -- end-to-end MotherDuck example that bootstraps the target database, lands raw data with dlt, builds staging and analytics models with dbt, and validates the final mart

Run it with:

uv run --with duckdb python skills/motherduck-build-data-pipeline/artifacts/pipeline_stage_example.py

Run the same stage pattern against temporary MotherDuck databases:

MOTHERDUCK_ARTIFACT_USE_MOTHERDUCK=1 \
uv run --with duckdb python skills/motherduck-build-data-pipeline/artifacts/pipeline_stage_example.py

Validate the TypeScript companion artifact:

uv run scripts/test_typescript_artifacts.py

For the full MotherDuck project:

cd skills/motherduck-build-data-pipeline/references/dlt-dbt-motherduck-project
export MOTHERDUCK_TOKEN=...
export MOTHERDUCK_PIPELINE_DB=md_skills_pipeline_demo
uv sync --python 3.12
uv run python pipeline/run_all.py
uv run python pipeline/cleanup.py

Verified Notes

  • Bootstrap the target MotherDuck database before running dlt. The motherduck destination does not create the database for you.
  • Use Python 3.11 or 3.12 to reproduce this reference project; its tested dbt-duckdb path did not run reliably on Python 3.14.
  • If you want exact schema names like raw, staging, and analytics in dbt, override generate_schema_name.
  • When a long-lived Python process loads data and a separate dbt subprocess builds models, run post-build validation in a fresh process or refresh database state before reading new relations.

Related Skills

  • motherduck-connect -- choose the right connection path
  • motherduck-load-data -- ingestion mechanics
  • motherduck-model-data -- shape the analytics layer
  • motherduck-query -- write transformations and validations
  • motherduck-share-data -- publish curated outputs
  • motherduck-ducklake -- only when open-table-format storage is a real requirement

What ships with it: 26 files

46.6 KB alongside SKILL.md, 9 of them executable

Gives 0 of the 12 instructions most data pipelines skills give

Counted across 149 of the 156 authors here whose files we hold, read 2026-09-06

  • Run a safe catch-up or sample benchmarkin 13 of 149, across 4 files
  • Rerun final accounting after the codified path executesin 13 of 149, across 4 files
  • Move compute to where the data already isin 13 of 149, across 4 files
  • Batch small files, requests, and writesin 13 of 149, across 4 files
  • Use manifests or checkpoints to skip completed filesin 13 of 149, across 4 files
  • Measure backlog across files, rows, and timestampsin 13 of 149, across 4 files
  • Codify the path as a CLI or scheduled jobin 12 of 149, across 3 files
  • Promote only the fastest correctness-preserving pathin 10 of 149, across 3 files
  • Separate the bottleneck categories before optimizingin 10 of 149, across 3 files
  • Prefer warehouse-native scans, joins, and appendsin 9 of 149, across 2 files
  • Make writes idempotent through keys, manifests, or replaceable stagingin 9 of 149, across 2 files
  • Retry failures with exponential backoffin 9 of 149, across 7 files

Said here and by no other author read

  • Inspect the available server or supplied context first
  • Explore live databases, schemas, and table grain
  • Define raw, staging, and analytics boundaries
  • Ingest raw data before curation
  • Deduplicate, type, and promote into staging
  • Materialize analytics-ready outputs

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.

Keep looking

Skills are one crate of 626,045. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.