validate-data

star 49

Validate schema and data after a successful dlt pipeline load. Use when the user wants to check if loaded data looks correct, inspect table schemas, fix data types, flatten nested structures, or refine the data shape.

dlt-hub By dlt-hub schedule Updated 6/3/2026

name: validate-data description: Validate schema and data after a successful dlt pipeline load. Use when the user wants to check if loaded data looks correct, inspect table schemas, fix data types, flatten nested structures, or refine the data shape. argument-hint: "[pipeline-name] [concerns]"

Validate loaded data

After a successful pipeline load, verify the schema and data make sense. Fix data types, nested structures, and missing columns as needed.

Parse $ARGUMENTS:

  • pipeline-name (optional): the dlt pipeline name. If omitted, infer from session context. If ambiguous, ask the user and stop.
  • hints (optional, after --): specific validation concerns

1. Inspect schema

Export schema as mermaid

uv run dlthub local pipeline schema <pipeline_name> --format mermaid

Show the mermaid diagram to the user. This gives a quick overview of tables, columns, types, and relationships (parent/child).

2. View the data

For the human: Workspace Dashboard

Tell the user to run Workspace Dashboard:

uv run dlthub local pipeline show <pipeline_name>

This opens a browser with table schemas, row counts, and sample data.

For the agent: set up pipeline MCP server to query the data

You have mcp with a right set of tools available

3. Review with user

Ask the user if the schema and data look right. Common issues to address:

Data type fixes

Use processing_steps in the resource config to transform data before loading. Available steps: map, filter, yield_map.

"processing_steps": [
    {"map": lambda item: {**item, "amount": Decimal(item["amount"])}},
]

IMPORTANT: NEVER convert monetary amounts or precision-sensitive values to float. Always use Decimal.

Nested structures

dlt auto-unnests nested arrays into child tables (e.g., results inside a response becomes <resource>__results). This is often fine for analytics. If the user wants a flat structure, use yield_map to flatten, or adjust data_selector to point deeper into the response.

Missing columns

Columns that are all-null on first load won't have inferred types. Options:

  • Add columns hints to the resource config: "columns": {"field": {"data_type": "text"}}
  • Add group_by or other API params to populate the columns

4. Iterate

Re-run the pipeline after changes (dev_mode gives a fresh dataset each time). Use debug-pipeline to inspect traces and load packages after each run. Inspect again with MCP or dlthub local pipeline schema <name> --format mermaid. Repeat until the user is happy with the schema.

Next steps

  • User is happy with data → suggest new-endpoint for more resources, view-data for querying, or the data-exploration toolkit for interactive notebooks and reports
  • Need to fix pipeline code → edit and re-run with debug-pipeline
  • User wants to see the data -> Workspace Dashboard with command above
Install via CLI
npx skills add https://github.com/dlt-hub/dlthub-ai-workbench --skill validate-data
Repository Details
star Stars 49
call_split Forks 3
navigation Branch main
article Path SKILL.md
More from Creator