AgentStack
SKILL verified MIT Self-run

Data Pipeline Quality

skill-hollandkevint-data-product-operator-data-pipeline-quality · by hollandkevint

>

No reviews yet
0 installs
16 views
0.0% view→install

Install

$ agentstack add skill-hollandkevint-data-product-operator-data-pipeline-quality

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Data Pipeline Quality? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Testing Pyramid for Data

Run tests in this order. Cheapest and fastest first:

| Layer | What It Catches | Examples | |-------|----------------|---------| | Schema tests (run first) | Structural failures | Column types, not-null, uniqueness, accepted values | | Business rule tests | Logic errors | Cross-field validation, referential integrity, range checks | | Integration tests (run last) | System-level drift | Cross-system reconciliation, end-to-end row counts |

Schema tests are cheap. Run them on every pipeline execution. Business rule tests are mid-tier — run them on staging and production. Integration tests are expensive — run them on a schedule (daily or pre-release).

dbt Test Patterns

Generic tests for reusable checks. Apply across models:

models:
  - name: fct_encounters
    columns:
      - name: encounter_id
        tests: [not_null, unique]
      - name: encounter_type
        tests:
          - accepted_values:
              values: ['inpatient', 'outpatient', 'emergency', 'observation']
      - name: patient_id
        tests:
          - relationships:
              to: ref('dim_patient')
              field: patient_id

Custom generic test for row count tolerance:

{% test row_count_within_tolerance(model, min_count, max_count) %}
select count(*) as row_count
from {{ model }}
having count(*)  {{ max_count }}
{% endtest %}

Singular tests for business logic specific to one model. Use singular tests when the logic doesn't generalize.

Data Contracts

A data contract is a product spec for your data. It defines what consumers can depend on.

contract:
  name: fct_encounters
  version: 2
  owner: data-platform-team
  sla:
    freshness: "= 99.5% of expected rows"
    accuracy: ">= 99.9% match to source of record"
  schema:
    encounter_id: {type: bigint, nullable: false, unique: true}
    patient_id: {type: bigint, nullable: false}
    encounter_date: {type: date, nullable: false}

Producer responsibilities: Meet the SLA, notify consumers before breaking changes, version the schema.

Consumer expectations: Query only contracted fields, respect the grain, report quality issues.

Circuit Breakers

Wire quality gates into pipeline stages. When a check fails, block the pipeline and alert.

  • Schema violation: Block immediately. Bad schema corrupts everything downstream.
  • Row count outside tolerance: Block and alert. Investigate before proceeding.
  • Freshness SLA breach: Alert the on-call. Don't block unless downstream consumers can't tolerate stale data.
  • Business rule failure: Block if the failure rate exceeds threshold (e.g., >1% of rows). Alert if below.

Cross-reference data-quality-assessment for the 4-stage quality model (detect → assess → respond → prevent).

CRITICAL: Never auto-heal data quality issues in production. Alert, block, investigate. Auto-fixes mask root causes and erode trust faster than stale data.

Monitoring

Track quality over time, not just point-in-time pass/fail:

  • Row count trends: Expected vs actual with tolerance bands. A sudden 40% drop is a pipeline failure. A gradual 5% weekly decline is a source issue.
  • Freshness: Time since last successful pipeline run. Track P50 and P95, not just "last run."
  • Anomaly detection: Statistical thresholds beat static thresholds. A metric that normally ranges 1,000-1,200 firing at 950 is more useful than a static "alert below 500" that never triggers.

Cross-References

For quality scoring methodology (the 5-dimension rubric and maturity model), see data-quality-assessment. This skill covers how to automate those checks in your pipeline.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.