dataform-modelerlisted
Install: claude install-skill rk-chavali/gcp-de-skills
# Dataform modeler
Read `references/conventions.md` for layer rules and naming before writing models.
## Repository shape
```
definitions/
sources/ declarations only, one file per source table
staging/ one view per source table, no joins
intermediate/ joins, dedupe, business logic
marts/ what consumers query
assertions/ cross-model checks that do not belong to one table
includes/
constants.js shared literals, never business logic
workflow_settings.yaml
```
## Declaration, always first
```sqlx
config {
type: "declaration",
database: dataform.projectConfig.vars.raw_project,
schema: "raw_storefront",
name: "orders",
description: "Raw storefront orders, landed by a CDC stream. Grain: one row per order version."
}
```
Never reference a raw table with `${ref()}` unless it is declared. Undeclared
raw references are the most common cause of a broken dependency graph.
## Staging model
```sqlx
config {
type: "view",
schema: "stg_storefront",
name: "stg_storefront__order",
tags: ["storefront", "staging", "hourly"],
description: "One row per storefront order, latest version. Types cast, columns renamed.",
columns: {
order_id: "Source order id. Primary key.",
customer_id: "Source customer id. Nullable for guest checkout.",
ordered_at: "Order placement time in UTC.",
order_total_usd: "Order total in USD, excluding tax and shipping."
},
assertions: {
uniqueKey: ["order_id"],
nonNull: