write-script-bigquery

Writes and tests BigQuery SQL scripts for Windmill workflows.

1|Updated Aug 3, 2026
One-click install
npx skills add https://github.com/vpzed-dev/smithy --skill write-script-bigquery-vpzed-dev
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: write-script-bigquery
Source: https://github.com/vpzed-dev/smithy/tree/main/windmill/local-dev/.agents/skills/write-script-bigquery
Command: npx skills add https://github.com/vpzed-dev/smithy --skill write-script-bigquery-vpzed-dev

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing BigQuery scripts for Windmill requires knowing the correct parameter syntax, testing workflow, and metadata regeneration steps, and mistakes like deploying untested code or leaving stale lock files cause spurious diffs and broken runs. ## Core Features & Use Cases - BigQuery parameter syntax: Declares named script arguments using @name placeholders with typed comments, including defaults and S3Object file inputs decoded as JSON. - Correct test workflow: Distinguishes wmill script preview for local iteration from wmill script run for deployed versions, preventing accidental deploys of untested changes. - Metadata synchronization: Runs wmill generate-metadata after edits to keep .lock files, .script.yaml schemas, and wmill-lock.yaml hashes consistent. - S3 result streaming: Uses the -- s3 directive to stream large query results to S3 in JSON, Parquet, or CSV format, bypassing the 10000-row return cap. - Use Case: You need a Windmill script that queries a BigQuery users table with filterable parameters and exports results to S3 as Parquet; this Skill produces the correctly annotated SQL and previews it locally. ## Quick Start Write a Windmill BigQuery script that selects users by name and minimum age using @name parameters, then preview it locally with sample arguments.

Frequently Asked Questions about write-script-bigquery

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a BigQuery script with parameters in Windmill?▼

Declare parameters with @name placeholders in the SQL and add typed comments before the statement, such as `-- @name1 (string)` or `-- @name2 (int64) = 0` for defaults. Windmill uses these comments to build the script's input schema.

How do I test a Windmill script locally without deploying?▼

Use `wmill script preview <script_path>` to run the local file with sample arguments without deploying. Reserve `wmill script run` for executing the version already deployed in the workspace, and only push when explicitly asked to deploy.

Can a Windmill BigQuery script accept an S3 file as input?▼

Yes, declare the argument with type `(s3object)` and Windmill renders an S3 file picker, downloads the file, and binds it as a JSON string parameter. Parquet and CSV files are decoded server-side into JSON records you consume with JSON_EXTRACT_ARRAY or JSON_VALUE.

How do I export large BigQuery results to S3 from Windmill?▼

Add a `-- s3` directive at the top of the script with optional prefix, storage, and format keys (json, parquet, or csv). Windmill streams rows directly to S3 and returns an S3Object, bypassing the 10000-row return cap.

Why does wmill-lock.yaml show diffs after editing a script?▼

Editing script content, especially imports or main's arguments, invalidates the recorded content hash and leaves locks and schemas stale. Run `wmill generate-metadata` to regenerate them, or `wmill generate-metadata rehash` if only hashes need refreshing.