What problem does it solve? Writing DuckDB scripts for Windmill involves more than SQL: you must declare typed arguments, choose the right run command (preview vs. deployed run vs. deploy), keep lock files and input schemas in sync, and wire up S3 or external database access. This Skill encodes those rules so scripts are written and tested correctly the first time. ## Core Features & Use Cases - Correct CLI workflow: Distinguishes wmill script preview (local iteration) from wmill script run (deployed version) and wmill sync push (deploy), preventing accidental overwrites of workspace scripts. - Metadata synchronization: Runs wmill generate-metadata after edits that change imports or main arguments so .lock, .script.yaml, and wmill-lock.yaml hashes stay consistent. - DuckDB-specific patterns: Covers $name argument syntax, Ducklake attachment, external database connections via resources, and S3 reads/writes including s3object parameters and COPY ... TO exports. - Use Case: You need a Windmill script that reads a Parquet file from S3, joins it against a Postgres table, and exports results back to S3 — this Skill produces the script with correct argument declarations and previews it with sample args. ## Quick Start Write a DuckDB Windmill script that reads a CSV from S3 and filters rows by a name argument, then preview it with sample data.