Snowflake Quickstart Guide
Guide users through interactive Snowflake tutorials with environment checks and live instruction.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/snowflake-quickstart-guide/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Use when a user pastes a Snowflake Quickstart URL or asks to learn/walk through a Quickstart. Fetches the source content from GitHub, parses it into stages, checks the learner's environment, and delivers a guided build experience with two modes (learner or builder). Triggers: quickstarts.snowflake.com, snowflake.com/en/developers/guides/, walk me through this quickstart, teach me this quickstart, learn this guide, I want to do this quickstart. Do NOT use for general SQL help or non-Quickstart tutorials.
What this skill does
Quickstart Guide
Take a Snowflake Quickstart URL and deliver a guided, interactive learning experience. The learner pastes a link; you fetch the content, plan the build, check their environment, and teach it live.
When to Use
Trigger this skill when the user's input contains a URL matching either pattern:
https://www.snowflake.com/en/developers/guides/<slug>(trailing slash optional)https://quickstarts.snowflake.com/guide/<slug>(trailing slash optional, legacy pattern)
Also trigger when the user says something like "walk me through [quickstart name]" or "teach me [quickstart topic]" alongside a URL.
Workflow
Step 1: Detect and Extract Slug
Parse the URL to extract the Quickstart slug.
New pattern: https://www.snowflake.com/en/developers/guides/<slug>
- Extract everything after
/guides/up to the next/or end of string
Old pattern: https://quickstarts.snowflake.com/guide/<slug>
- Extract everything after
/guide/up to the next/or end of string - Note: old slugs may use underscores where new ones use hyphens
Store the extracted slug for Step 2.
Step 2: Fetch Quickstart Content
Retrieve the source markdown from GitHub. The Quickstart source lives at:
https://github.com/Snowflake-Labs/sfquickstarts under site/sfguides/src/<folder>/
Fetch sequence:
-
Get the folder listing. Use
web_fetchon:https://api.github.com/repos/Snowflake-Labs/sfquickstarts/contents/site/sfguides/src/<slug>This returns a JSON array of file objects. -
If 404, try slug variations:
- Replace hyphens with underscores (or vice versa)
- Try the original slug with/without trailing characters
- Repeat the folder listing request with the alternate slug
-
Fetch the raw markdown. From the JSON array response, access and read the raw markdown content by fetching the value for the
download_urlkey of the.mdfile. -
Verify the content. Read the first ~20 lines of the fetched markdown. Check that the
id:field in the frontmatter matches the URL slug. If it doesn't match, you may have the wrong Quickstart — try another variation. -
Fallback. If GitHub fetch fails entirely (repo restructured, file moved), fall back to
web_fetchon the original URL the user pasted. Parse whatever structured content is available from the rendered page.
If fetch fails completely: Tell the learner the content couldn't be retrieved. Ask if they have the content locally or can provide an alternative URL.
Step 3: Parse and Plan Stages
Load references/quickstart-parsing.md for detailed structure rules.
From the fetched markdown, extract:
- Metadata from frontmatter:
id,summary(title),authors,categories,duration - Prerequisites from the Prerequisites/Setup steps: roles, privileges, warehouses, external tools
- Logical stages by mapping Quickstart steps:
- Overview/Prerequisites → inputs for diagnostics (Step 5)
- Setup/Environment → Stage 1 (schema, grants, warehouse)
- Core tutorial steps → Stages 2-N (one per major deliverable)
- Steps with external dependencies (SPCS, third-party tools) → optional stages
- Conclusion → use as source material for the recap in Step 8
- Code blocks (SQL, Python, YAML) — these are what gets executed or written to files
- Final deliverable — what the learner will have when done
Target 4-8 stages total. Combine small steps; split large ones.
Step 4: Check for Companion Repo
Many Quickstarts have a companion GitHub repo containing SQL scripts, Python code, YAML configs, or data files. Check for one.
Detection:
- Look for a
fork repo link:field in the Quickstart frontmatter - Scan the markdown body for GitHub URLs pointing to a
Snowflake-Labs/sfguide-*repo (typically in a Prerequisites or Setup step)
If a companion repo is found:
-
Use the GitHub API to list its top-level contents:
https://api.github.com/repos/<owner>/<repo>/contents/Note the key files (.sql,.py,.yaml,.json, notebooks). -
Present the finding to the learner: "This Quickstart has a companion repo at [url] containing [list key files — e.g., setup.sql, app.py, model.yaml]."
-
Ask the learner via
ask_user_question:- Clone it — "Download the full repo to my machine. I'll use the files directly." Best if you want to keep the code after the session.
- Reference it (lightweight) — "Don't download anything. Access individual files from GitHub as needed." No git clone — files are fetched on demand during the build, same way the Quickstart markdown was fetched.
-
If Clone: Ask where to clone (suggest current directory as default). Run
git clone <url> <path>. Reference files from the cloned path during execution. -
If Reference (lightweight): During Step 7 execution, fetch individual files on demand via the GitHub API (
download_urlfrom the contents listing) — the same pattern used for the Quickstart markdown itself. No local clone needed.
If no companion repo is found: Skip this step silently.
⚠️ STOPPING POINT: Wait for the learner's choice before proceeding.
Step 5: Lightweight Diagnostics
Check that the learner's environment can handle this Quickstart.
Run session context:
SELECT CURRENT_ORGANIZATION_NAME(), CURRENT_ACCOUNT_NAME(), CURRENT_ROLE(),
CURRENT_WAREHOUSE(), CURRENT_DATABASE(), CURRENT_USER();
Check grants on current role:
SHOW GRANTS TO ROLE <current_role>;
Compare against Quickstart requirements:
- Does the role have CREATE SCHEMA/TABLE/VIEW privileges?
- Is a warehouse set and active?
- Does the Quickstart need specific features (Cortex, SPCS, Streamlit)?
- Does the Quickstart need access to SNOWFLAKE_SAMPLE_DATA or ACCOUNT_USAGE?
Present findings:
- If ready: "Your environment looks good for this Quickstart."
- If gaps: List what's missing with specific GRANT statements to fix each one.
⚠️ STOPPING POINT: If issues found, present them. Ask the learner: "Want to fix these first, or proceed anyway?" Do not block — let them choose.
Step 6: Introduce and Choose Mode
Attribution: "This is the [title from summary field] Quickstart."
Explain the deliverable: Summarize what the learner will have at the end — the tables, services, apps, or models they'll build.
Nudge (CLI/Desktop only): Suggest opening Snowsight alongside the session, rendering their account URL from the diagnostics results: "You may want to open Snowsight to explore objects as we build them: https://app.snowflake.com/<org_name>/<account_name>"
Set up learning database:
CREATE DATABASE IF NOT EXISTS LEARN_SNOWFLAKE_QUICKSTARTS;
Ask permission before creating. Then create a schema named after the slug:
CREATE SCHEMA IF NOT EXISTS LEARN_SNOWFLAKE_QUICKSTARTS.<slug_as_identifier>;
Choose mode using ask_user_question:
- Learner mode — Step by step. I'll explain what we're building at each stage, execute it, recap, and check in before moving on.
- Builder mode — Build everything at once. I'll execute all stages and give you a full summary at the end.
Load references/teaching-guide.md for mode-specific behavior.
⚠️ STOPPING POINT: Wait for mode selection before proceeding.
Step 7: Execute Learning Journey
Execute each stage from the plan created in Step 3.
Detect the execution surface:
- If the working directory is under
/workspace/→ Snowsight workspace - Otherwise → CLI
Learner mode (CLI):
For each stage:
- Explain what will be built and why
- Render the SQL/Python/code directly in the terminal with explanatory comments so the learner can read and understand it
- Use
ask_user_questionto give the learner agency before executing — e.g., "Run it", "Explain more", "I want to make changes" - Execute via
sql_execute - Brief recap: what was created, key results (row counts, object status)
- ⚠️ STOPPING POINT — pause between stages
Learner mode (Snowsight workspace):
For each stage:
- Explain what will be built and why
- Write code to
.sqlor.pyfiles with explanatory comments - Prompt the learner to run the file
- Brief recap after they've run it
- ⚠️ STOPPING POINT — pause between stages
Builder mode (any surface):
- CLI: execute all stages directly via
sql_executewithout pausing - Snowsight: write all files and tell the learner to run them in sequence
- Only stop for optional stages (ask include/skip)
- Full summary at the end
Handling outdated content: If the Quickstart uses deprecated syntax or old patterns, flag it: "Note: This Quickstart uses [old pattern]. The current recommended approach is [new pattern]. I'll use the modern approach." Use the correct current approach — don't blindly replicate deprecated code.
Handling errors: If a stage fails during execution:
- Read the error
- Diagnose the likely cause (permissions, missing prerequisites, syntax)
- Suggest a fix or workaround
- Ask the learner how to proceed
Step 8: Recap and Cleanup
After all stages complete:
Recap: Briefly congratulate the learner and summarize what they built — the key objects created, the concepts covered, and what they now have running in their account. Keep it concise (3-5 sentences). Draw from the Quickstart's Conclusion step if available.
Cleanup: Then ask the learner: "Want to keep everything, or clean up?"
- If cleaning up: drop the schema (which drops all objects within it)
DROP SCHEMA IF EXISTS LEARN_SNOWFLAKE_QUICKSTARTS.<slug_as_identifier> CASCADE; - Never drop the
LEARN_SNOWFLAKE_QUICKSTARTSdatabase itself - Never drop or alter any Snowflake-provided databases
Stopping Points
- ⚠️ After companion repo detection (Step 4) — wait for clone/reference choice
- ⚠️ After diagnostics (Step 5) if environment issues found
- ⚠️ After mode selection (Step 6) — wait for learner's choice
- ⚠️ Between stages (Step 7, learner mode only)
- ⚠️ Before optional stages (both modes) — ask include/skip
- ⚠️ Before cleanup (Step 8) — ask keep/remove
Troubleshooting
Quickstart not found on GitHub:
- Try alternate slug formats (hyphens ↔ underscores)
- Check if the Quickstart was recently renamed or archived
- Fall back to web_fetch on the original URL
Learner's role lacks privileges:
- Present specific GRANT statements
- Suggest switching to a role with more access
- Skip stages that require unavailable privileges and note what was skipped
Quickstart references external tools (Kafka, S3, third-party APIs):
- Mark those stages as optional
- Explain what would happen if the tool were available
- Offer to simulate or skip
Quickstart is very long (15+ steps):
- Chunk into logical phases (setup, core build, optional extensions)
- In learner mode: add phase-level checkpoints
- In builder mode: execute in phases with brief summaries between
Code execution fails:
- Read error message carefully
- Common issues: wrong schema context, missing warehouse, object already exists
- Fix and retry — don't ask the learner to debug unless the fix is unclear
Examples
Example 1: Basic usage
User: $quickstart-guide https://www.snowflake.com/en/developers/guides/getting-started-with-cortex-agents/ Assistant: Fetches the Cortex Agents Quickstart, checks environment, asks mode, and guides the learner through building a sales intelligence agent.
Example 2: Legacy URL
User: $quickstart-guide https://quickstarts.snowflake.com/guide/getting_started_with_dataengineering_ml_using_snowpark_python Assistant: Detects legacy URL pattern, converts underscores to hyphens, fetches content, and delivers the Data Engineering with Snowpark experience.
Related skills
Skill Builder & Optimizer
anthropics
Create, edit, and optimize Claude skills with performance testing and benchmarking.
CFO Financial Advisor
alirezarezvani
Build financial models, analyze unit economics, and plan fundraising strategy for startups.
Claude Code Session History Finder
daymade
Search and recover code from previous Claude Code sessions and conversations.
Network & Streaming Debugger
daymade
Debug network and streaming bugs using evidence-driven investigation and layered isolation experiments.