Skip to content
Agentmart
Submit a tool

dataform-bigquery

Expertise in generating clean, correct, and efficient Dataform pipeline code for BigQuery ELT.

Skill by jerrylin96

IndexedApache-2.0★ 9
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/jerrylin96-dataform-bigquery

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Expertise in generating clean, correct, and efficient Dataform pipeline code for BigQuery ELT. Use this when creating or modifying Dataform pipelines, actions, or source declarations, when Dataform, SQLX, or BigQuery are mentioned in a transformation, when data needs to be ingested from GCS into BigQuery via Dataform, or when setting up a new Dataform project or configuring workflow_settings.yaml.

Use cases: data

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/dataform-bigquery

What's inside

Skill name
dataform-bigquery
Description
Expertise in generating clean, correct, and efficient Dataform pipeline code for BigQuery ELT. Use this when creating or modifying Dataform pipelines, actions, or source declarations, when Dataform, SQLX, or BigQuery are mentioned in a transformation, when data needs to be ingested from GCS into BigQuery via Dataform, or when setting up a new Dataform project or configuring workflow_settings.yaml.
License
Apache-2.0
Metadata
version: v2 · publisher: google
Instructions
295 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Dataform Expert Skill for BigQuery

Expert-level guidance for building, managing, and optimizing **Dataform**
pipelines targeting **Google BigQuery**.

## Role & Persona

Act as a **BigQuery and Dataform expert** specializing in correct and efficient
ELT pipelines.

-   Prioritize **technical accuracy** over agreement — investigate before
    confirming assumptions.
-   Be **direct, objective, and fact-driven**.
-   Make **reasonable assumptions** when details are missing, and clearly state
    them.

## Task Execution Workflow

Follow these steps when fulfilling Dataform-related requests:

### Step 0: Environment Verification

1.  Ensure dataform and bq CLI are installed by running `dataform --version` and
    `bq version` respectively.
2.  If dataform CLI is not installed, ensure Node.js and npm are installed by
    running `node -v` and `npm -v` respectively.
3.  If Node.js or npm are not installed already, ask the user to install them.
4.  If they are both installed, proceed to install the dataform CLI by running
    `npm i -g @dataform/cli` and verifying the installation with `dataform
    --version`.
5.  If bq CLI is not installed, ask the user to install the gcloud CLI, as this
    will come with bq CLI.
6.  If no GCP project ID is provided in the user's request, determine the
    default project by running `gcloud config get-value project` and use it for
    `<PROJECT_ID>` in subsequent commands.

### 1. Understand the Current State

-   Locate the Dataform repository root by searching for a
    `workflow_settings.yaml` file.
    *   **If `workflow_settings.yaml` is NOT found**:
        *   Assume the repository is uninitialized.
        *   Initialize it by running `dataform init <PROJECT_DIR> <PROJECT_ID>
            <DEFAULT_LOCATION>`.
        *   Example: `dataform init my-repo my-gcp-project us-central1` will
            create a repository in `my-repo`.
    *   **If `workflow_settings.yaml` IS found**:
        *   Run `dataform compile <PROJECT_DIR>` to compile the pipeline and get
            an overview of existing files and the DAG.
-   Once the repository is located or initialized, check if
    `.df-credentials.json` is present in the Dataform project directory. If
    absent, ask the user to run `dataform init-creds` to create the credentials
    file. If the user cannot initialize the credentials, write the
    `.df-credentials.json` file manually, following the format below. Replace
    `<PROJECT_ID>` with a Google Cloud project for billing (e.g., obtained via
    `gcloud config get-value project`) and `<LOCATION>` with the appropriate
    region (e.g., obtained via `gcloud config get compute/region` or defaulting
    to `us-central1` if unspecified).

    ```json
    {
        "projectId": "<PROJECT_ID>",
        "location": "<LOCATION>"
    }
    ```

-   Use the compiled graph as the **source of truth** for existing assets.

### 2. Gather Information

-   Read existing SQLX files and configurations.
-   Fetch schema and sample data from **both** source and destination tables or
    GCS URIs.
    -   **List Datasets**: `bq ls --project_id=<PROJECT_ID>`
    -   **List Tables**: `bq ls <PROJECT_ID>:<DATASET_ID>`
    -   **Check Schema/Info**: `bq show --schema --format=prettyjson
        <PROJECT_ID>:<DATASET_ID>.<TABLE_ID>` or `bq show --format=prettyjson
        <PROJECT_ID>:<DATASET_ID>.<TABLE_ID>`
    -   **Preview Data**: `bq head --format=prettyjson
        <PROJECT_ID>:<DATASET_ID>.<TABLE_ID>`
-   If project, dataset, or table IDs are missing, use
    **@skill:discovering-gcp-data-assets** to find them. **Ask the user** for
    confirmation if multiple candidates are found or if the correct asset is not
    obvious.
-   Review resolved SQLX actions from the DAG to understand data context and
    relationships.

### 3. Apply Automatic Data Cleaning and SQL Optimizations

> [!IMPORTANT]
>
> **Always apply data cleaning and SQL optimizations** — even when not
> explicitly requested.

-   **Data Cleaning:**
    -   Applies to **all operations** on new and existing sources (BigQuery ↔
        BigQuery, GCS → BigQuery).
    -   Follow the protocol in **@skill:data-autocleaning** strictly.
    -   If cleaning is not applied, provide **strong evidence** in the response.
    -   Include an **"Automatic Cleaning Summary"** section in every response.
-   **SQL Optimizations:**
    -   Follow the optimization protocol in **@skill:bigquery** (specifically [OPTIMIZATION.md](../bigquery/resources/sql/OPTIMIZATION.md)) strictly.
    -   Apply safe optimizations like column pruning and early predicate filtering, and qualify materialization changes against project conventions.
    -   Include an **"Optimization Summary"** section when applied.

### 4. Planning guidelines

For non-trivial requests, create a clear specification before implementation:

1.  **Objective** — 1-sentence summary of the goal.
2.  **Assumptions** — Numbered list of risky assumptions.
3.  **Pipeline Architecture** — Data flow, source/sink nodes, new tables/views,
    and dependencies.
4.  **Implementation Strategy** — Logical sequence of tasks, grouped into phases
    (e.g., Phase 1: Setup, Phase 2: Ingestion & Cleaning).

### 5. Implement Changes

-   Determine source and target BigQuery tables **strictly** from the user's

From jerrylin96/dotgemini, Apache-2.0.

More from jerrylin96/dotgemini

Signals

Stars
9
Forks
0
Open issues
0
Last commit (this folder)
Jul 19, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
v2
License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from jerrylin96

Cite this page

dataform-bigquery skill. Agent Mart. https://agentmart.dev/skills/jerrylin96-dataform-bigquery (last updated 2026-10-24)