From cortex-code
Auto-routing skill loaded by the prompt filter hook. Routes Snowflake-related operations to Cortex Code CLI. Not for direct invocation — use $cortex-run instead.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cortex-code:cortex-routerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Route Snowflake operations to Cortex Code CLI, which has specialized bundled skills
Route Snowflake operations to Cortex Code CLI, which has specialized bundled skills (data-quality, semantic-view, cost-intelligence, ML, governance, etc.).
CRITICAL: Follow steps 1 → 2 → 3 in order. Do NOT skip to Step 3.
which cortex 2>/dev/null && cortex --version
If cortex is NOT found:
cortex-code:cortex-setup skill using the Skill tool.Run the routing script to check if this prompt should go to Cortex or stay in Claude Code:
python "${CLAUDE_PLUGIN_ROOT}/scripts/router/route_request.py" --prompt "USER_PROMPT_HERE"
Replace USER_PROMPT_HERE with the actual user prompt (shell-escaped).
Read the output carefully:
Only reach this step if Step 2 confirmed routing to Cortex.
Choose a security envelope based on the operation:
Default to RW unless the request is clearly read-only.
python "${CLAUDE_PLUGIN_ROOT}/scripts/router/execute_cortex.py" \
--prompt "USER_PROMPT_HERE" \
--envelope "RW"
Add --connection CONNECTION_NAME if a specific Snowflake connection is needed.
--resume-last vs freshEvery cortex invocation returns a session_id that the router persists. Follow-up
turns can resume that session so Cortex sees the prior conversation -- real
multi-turn, not one-shot batches per prompt.
--resume-last when the current prompt is a continuation of the
previous Cortex turn: "keep going", "apply the top suggestion", "dig deeper",
"also show me ...", "and for last quarter", "fix that", or any clarification
of an answer Cortex just gave.--resume-last (start fresh) when the user switches topics, asks
about a different database/warehouse, or begins a clearly new task.--resume <session_id> is also accepted if you have an explicit id.# Follow-up on the previous Cortex turn
python "${CLAUDE_PLUGIN_ROOT}/scripts/router/execute_cortex.py" \
--prompt "drill into the top customer" --envelope "RO" \
--resume-last
Timeout: This command may take 30-90 seconds. If it takes longer than 2 minutes, it likely hung — kill the process and tell the user to try $cortex-run for direct invocation.
Format Cortex's output for the user:
route_request.py is missing or fails, fall back to Claude Code tools--resume-last (see Step 3)npx claudepluginhub snowflake-labs/snowflake-ai-kit --plugin snowflake-cortex-codeONLY load this skill when the user explicitly types $cortex-run or /cortex-run. NEVER load this skill from auto-routing hooks or keyword matching. For auto-routed prompts, use cortex-code:cortex-router instead.
Assists with Snowflake SQL best practices, data pipelines (Dynamic Tables, Streams, Tasks, Snowpipe), Cortex AI, Snowpark Python, dbt, performance tuning, and security hardening.
Guides Databricks CLI operations: authentication, profiles, data exploration with AI tools, bundles, and command execution. Ensures CLI installation, auth, and profile selection.