write-script-snowflake

Write and test Snowflake SQL scripts for Windmill with parameterized queries and S3 integration.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing Snowflake scripts for Windmill involves platform-specific conventions — parameter placeholders, metadata lock files, preview-versus-deploy workflows — that are easy to get wrong. This Skill encodes those conventions so scripts are written correctly, tested locally, and deployed only when intended. ## Core Features & Use Cases - Parameterized Snowflake queries: Declare named arguments with -- ? name (type) comments and ? placeholders, including defaults and S3Object file inputs parsed via PARSE_JSON and LATERAL FLATTEN. - Correct CLI workflow: Distinguishes wmill script preview (test local edits) from wmill script run (deployed version) and wmill generate-metadata (sync locks and schemas), preventing accidental deploys of untested code. - Streaming results to S3: Use the -- s3 directive to export large result sets as JSON, Parquet, or CSV, bypassing the 10000-row return cap. - Use Case: You need a Windmill script that queries a Snowflake users table filtered by name and age, then exports the full result to S3 as Parquet. The Skill produces the correctly annotated SQL and previews it with sample arguments. ## Quick Start Write a Windmill Snowflake script that selects users by name and minimum age, then preview it locally with sample arguments.

Frequently Asked Questions about write-script-snowflake

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

FAQPage Schema
How do I write a parameterized Snowflake script in Windmill?▼

Use `?` placeholders in the SQL and name each parameter with a comment before the statement, such as `-- ? name (text)` or `-- ? age (number) = 0`. Windmill renders these as typed input fields in the auto-generated args UI.

What is the difference between wmill script preview and wmill script run?▼

wmill script preview executes your local script file without deploying, making it the default for iterating on edits. wmill script run executes the version already deployed in the workspace, so use it only when you explicitly want to test the deployed version.

How do I pass an S3 file as a parameter to a Snowflake script?▼

Declare the argument with type `(s3object)` in the parameter comment. Windmill renders an S3 file picker, decodes Parquet or CSV into JSON records, and you wrap the bind with PARSE_JSON(?) and walk it using LATERAL FLATTEN.

How do I export large Snowflake query 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 stored content hash and leaves the lock and input schema stale. Run wmill generate-metadata to regenerate them, or use the rehash subcommand when only hashes need refreshing.