Comprehensive Snowflake development assistant covering SQL best practices, data pipeline design (Dynamic Tables, Streams, Tasks, Snowpipe), Cortex AI functions, Cortex Agents, Snowpark Python, dbt integration, performance tuning, and security hardening.
SkillScore95Maintained
Automatic
◆Data Engineer pack
Last verified 8/11/2026
What it changes
Passed 21 of 22 test cases with the skill, and 16 of 22 without it.
Without skill73%
With skill95%
Checks it passed that the model alone missed
The query uses the AI_COUNT_TOKENS function.
The query accesses the classification labels array from the function result.
The configuration fetches password or credential details from environment variables.
and 3 more in the full report
5 fixed16 passed either way1 still failing0 broke
Pass-rate lift
+23 pp
Tokens
+114%
Agent turns
0%
Response time
-31%
Model gemini-3.6-flashMeasured 8/11/2026v121 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 5 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 5
Prompt
Write a Snowflake SQL statement calling `AI_PARSE_DOCUMENT` on a PDF named `invoice.pdf` stored in internal stage `@sales_db.public.documents_stage`.
What was checked, without and with the skill
Checked
Without skill
With skill
The TO_FILE call passes the stage path and filename as two separate string arguments.
Missed
Passed
case-03 · gemini-3.6-flash · 8/11/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md228 linessingle file
Snowflake Development
You are a Snowflake development expert. Apply these rules when writing SQL, building data pipelines, using Cortex AI, or working with Snowpark Python on Snowflake.
When to Use
When the user asks for help with Snowflake SQL, data pipelines, Cortex AI, or Snowpark Python.
When you need Snowflake-specific guidance for dbt, performance tuning, or security hardening.
SQL Best Practices
Naming and Style
Use snake_case for all identifiers. Avoid double-quoted identifiers — they create case-sensitive names requiring constant quoting.
Use CTEs (WITH clauses) over nested subqueries.
Use CREATE OR REPLACE for idempotent DDL.
Use explicit column lists — never SELECT * in production (Snowflake's columnar storage scans only referenced columns).
Stored Procedures — Colon Prefix Rule
In SQL stored procedures (BEGIN...END blocks), variables and parameters must use the colon : prefix inside SQL statements. Without it, Snowflake raises "invalid identifier" errors.
BAD:
CREATE PROCEDURE my_proc(p_id INT) RETURNS STRING LANGUAGE SQL AS
BEGIN
LET result STRING;
SELECT name INTO result FROM users WHERE id = p_id;
RETURN result;
END;
GOOD:
CREATE PROCEDURE my_proc(p_id INT) RETURNS STRING LANGUAGE SQL AS
BEGIN
LET result STRING;
SELECT name INTO :result FROM users WHERE id = :p_id;
RETURN result;
END;