Skip to content
Back to skills

Dbt

ASecurity

dbt (data build tool) patterns for data transformation and analytics engineering. Use when building data models, implementing data quality tests, or managing data transformation pipelines.

  • 15 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 27, 2026
data-aisqltestingdocumentation

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add jpoutrin/product-forge --skill dbt --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dbt?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Dbt
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jpoutrin-dbt/badge)](https://www.skillsdirectory.com/skills/jpoutrin-dbt)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: dbt
description: dbt (data build tool) patterns for data transformation and analytics engineering. Use when building data models, implementing data quality tests, or managing data transformation pipelines.
user-invocable: false
---

# dbt Skill

This skill provides dbt patterns for analytics engineering.

## Project Structure

```
dbt_project/
├── dbt_project.yml
├── models/
│   ├── staging/
│   │   └── stg_customers.sql
│   ├── intermediate/
│   │   └── int_customer_orders.sql
│   └── marts/
│       └── fct_orders.sql
├── seeds/
├── macros/
├── tests/
└── snapshots/
```

## Model Patterns

### Staging Models
```sql
-- models/staging/stg_customers.sql
with source as (
    select * from {{ source('raw', 'customers') }}
),

renamed as (
    select
        id as customer_id,
        lower(email) as email,
        created_at
    from source
)

select * from renamed
```

### Incremental Models
```sql
-- models/marts/fct_orders.sql
{{
    config(
        materialized='incremental',
        unique_key='order_id'
    )
}}

select *
from {{ ref('stg_orders') }}
{% if is_incremental() %}
where updated_at > (select max(updated_at) from {{ this }})
{% endif %}
```

## Testing

```yaml
# models/schema.yml
models:
  - name: stg_customers
    columns:
      - name: customer_id
        tests:
          - unique
          - not_null
      - name: email
        tests:
          - unique
```

## Best Practices

- Use staging → intermediate → marts pattern
- Source all raw data with `source()`
- Reference models with `ref()`
- Add documentation and tests
- Use incremental models for large datasets

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.