CtrlK
BlogDocsLog inGet started
Tessl Logo

write-script-snowflake

MUST use when writing Snowflake queries.

52

Quality

66%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./system_prompts/auto-generated/skills/write-script-snowflake/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is highly actionable, with concrete wmill commands and executable Snowflake code covering the common cases, plus a sensible preview-first workflow with dry-run and lock-diff checkpoints. Its weaknesses are repetition of the deploy caution across sections, an inverted heading hierarchy, and general Windmill boilerplate mixed into a Snowflake-specific skill.

Suggestions

Consolidate the three repetitions of the "deploy only when explicitly asked" caution into one place and reference it from the other sections.

Fix the heading hierarchy — "CLI Commands" and its subsections appear before the first H1 ("Windmill Script Writing Guide"); promote or reorder so levels nest correctly.

Trim the general Windmill sections (Preprocessor Scripts, Return Values) that are not Snowflake-specific, or move them to a shared reference file, to cut tokens and sharpen the skill's focus.

DimensionReasoningScore

Conciseness

The body is mostly lean and concrete, but the "not a deploy" caution for preview/generate-metadata/deploy is repeated across three sections ("CLI Commands", "Preview vs run", "After writing"), and the metadata section carries dense parenthetical asides ("the same as deploying from the UI; expected, not a bug"). That is more than the "minor instances" of over-trimming tolerated at score 4, but well short of heavily padded.

3 / 5

Actionability

Fully executable throughout: concrete commands (`wmill script preview <script_path>`, `wmill generate-metadata --dry-run`, `wmill generate-metadata rehash`, `wmill resource-type list --schema`) and copy-paste-ready SQL blocks for ? parameter comments, PARSE_JSON + LATERAL FLATTEN on (s3object) inputs, and the `-- s3 prefix=... format=parquet` directive. The common Snowflake cases are all covered with real code.

5 / 5

Workflow Clarity

A clear sequenced workflow emerges: write → preview with plausible args → generate-metadata (scoped, with --dry-run to inspect blast radius) → diff regenerated locks and report version changes → deploy only on explicit request. Checkpoints exist (preview validates before deploy, dry-run, lock diff), but the layout is topic-sectioned rather than linear and the deploy-is-destructive guard is scattered, leaving minor gaps versus the explicit feedback-loop structure of score 5.

4 / 5

Progressive Disclosure

A single well-sectioned ~110-line file with no bundle files; guidance stays one level deep (external pointers like AGENTS.wmill.md are clearly signaled). Minor gaps: general Windmill material (General Principles, Return Values, Preprocessor Scripts) is inlined in a Snowflake-named skill, and the heading hierarchy is inverted (two H2 sections appear before the first H1), so it falls short of the cleanly organized score-5 case.

4 / 5

Total

16

/

20

Passed

Description

40%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description has a strong, explicit trigger clause but says nothing about what the skill actually does. It reads as a pure routing instruction rather than a capability summary, leaving Claude unable to distinguish it from generic Snowflake SQL help.

Suggestions

State what the skill does before the trigger, e.g. "Write and test Windmill scripts in the Snowflake dialect: ? parameter placeholders, (s3object) inputs via PARSE_JSON/LATERAL FLATTEN, and streaming results to S3. Use when writing Snowflake queries or Snowflake scripts in Windmill."

Add natural trigger variations users would say — "Snowflake SQL", "Snowflake script", "query Snowflake" — so the trigger fires on phrasing beyond the exact word "writing".

Mention Windmill in the description to eliminate overlap with generic Snowflake SQL assistance skills.

DimensionReasoningScore

Specificity

"MUST use when writing Snowflake queries." names the domain (Snowflake queries) but enumerates zero concrete actions — matching "Processes PDF files"-level minimalism. It is not entirely vague (score 1), but it also lists no capabilities, so it cannot reach the 1-2-actions bar of score 3.

2 / 5

Completeness

An explicit 'when' is present ("MUST use when writing Snowflake queries") but no 'what' — the description never states what the skill does (authoring Windmill Snowflake scripts, ? placeholders, S3 streaming). This is exactly the anchor-2 case of only 'when' present without 'what', not score 3's inverse case of a clear 'what' with a missing 'when'.

2 / 5

Trigger Term Quality

"writing", "Snowflake", "queries" are natural terms a user would say, paralleling "Works with PDF files". Common variations and synonyms ("Snowflake SQL", "Snowflake script", "database") are missing, which keeps it below the good-coverage anchor of 4.

3 / 5

Distinctiveness Conflict Risk

Snowflake is a distinct product so the trigger is fairly targeted, but the description never mentions Windmill, so it would also fire on generic Snowflake SQL assistance — minor overlap with closely related skills per anchor 4. It lacks the clear-niche-with-distinct-triggers quality of score 5.

4 / 5

Total

11

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
windmill-labs/windmill
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.