snowtower-user
Helps end-users get Snowflake access and use the platform. Use when users ask about requesting access, generating RSA keys, connecting to Snowflake, or basic Snowflake usage. Triggers on mentions of access requests, RSA keys, connection issues, or "how do I get access".
Best use case
snowtower-user is best used when you need a repeatable AI agent workflow instead of a one-off prompt. It is especially useful for teams working in multi. Helps end-users get Snowflake access and use the platform. Use when users ask about requesting access, generating RSA keys, connecting to Snowflake, or basic Snowflake usage. Triggers on mentions of access requests, RSA keys, connection issues, or "how do I get access".
Helps end-users get Snowflake access and use the platform. Use when users ask about requesting access, generating RSA keys, connecting to Snowflake, or basic Snowflake usage. Triggers on mentions of access requests, RSA keys, connection issues, or "how do I get access".
Users should expect a more consistent workflow output, faster repeated execution, and less time spent rewriting prompts from scratch.
Practical example
Example input
Use the "snowtower-user" skill to help with this workflow task. Context: Helps end-users get Snowflake access and use the platform. Use when users ask about requesting access, generating RSA keys, connecting to Snowflake, or basic Snowflake usage. Triggers on mentions of access requests, RSA keys, connection issues, or "how do I get access".
Example output
A structured workflow result with clearer steps, more consistent formatting, and an output that is easier to reuse in the next run.
When to use this skill
- Use this skill when you want a reusable workflow rather than writing the same prompt again and again.
When not to use this skill
- Do not use this when you only need a one-off answer and do not need a reusable workflow.
- Do not use it if you cannot install or maintain the related files, repository context, or supporting tools.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/snowtower-user/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How snowtower-user Compares
| Feature / Agent | snowtower-user | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Helps end-users get Snowflake access and use the platform. Use when users ask about requesting access, generating RSA keys, connecting to Snowflake, or basic Snowflake usage. Triggers on mentions of access requests, RSA keys, connection issues, or "how do I get access".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# SnowTower End-User Guide
A skill for helping end-users navigate the SnowTower platform to get Snowflake access and start working with data.
## Who This Skill Is For
- **Data analysts** who need to query Snowflake data
- **Data scientists** who need database access for analysis
- **Engineers** who need to connect applications to Snowflake
- **New team members** requesting their first Snowflake account
## Quick Reference
### Getting Access (3 Steps)
```
Step 1: Generate RSA Keys → Step 2: Submit Request → Step 3: Connect
(on your machine) (GitHub issue) (after approval)
```
---
## Step 1: Generate Your RSA Keys
**You MUST do this BEFORE requesting access.**
```bash
# Generate RSA key pair (run on your local machine)
openssl genrsa 2048 | openssl pkcs8 -topk8 -inform PEM -nocrypt -out ~/.ssh/snowflake_rsa_key.p8
openssl rsa -in ~/.ssh/snowflake_rsa_key.p8 -pubout -out ~/.ssh/snowflake_rsa_key.pub
# Secure your private key (IMPORTANT!)
chmod 400 ~/.ssh/snowflake_rsa_key.p8
# Display your PUBLIC key (copy this for the access request)
cat ~/.ssh/snowflake_rsa_key.pub
```
**Output looks like:**
```
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
...many lines of characters...
-----END PUBLIC KEY-----
```
### Key Security Rules
| Key Type | File | Share? |
|----------|------|--------|
| **Private key** | `~/.ssh/snowflake_rsa_key.p8` | **NEVER share this** |
| **Public key** | `~/.ssh/snowflake_rsa_key.pub` | Safe to share |
---
## Step 2: Request Access
1. Go to the **[Access Request Form](../../issues/new/choose)**
2. Select "New User Request"
3. Fill in your details:
- Full name
- Email address
- Team/department
- Reason for access
- **Paste your PUBLIC key** (from Step 1)
4. Submit the form
**Typical approval time:** 3-5 business days
---
## Step 3: Connect to Snowflake
After your account is approved, you'll receive:
- Your **username** (usually FIRSTNAME_LASTNAME)
- The **account identifier**
- Your **default role** and **warehouse**
### Using Snow CLI (Recommended)
```bash
# Add your connection
snow connection add \
--connection-name prod \
--account YOUR_ACCOUNT \
--user YOUR_USERNAME \
--authenticator SNOWFLAKE_JWT \
--private-key-path ~/.ssh/snowflake_rsa_key.p8
# Test the connection
snow sql -c prod -q "SELECT CURRENT_USER(), CURRENT_ROLE()"
```
### Using Python
```python
import snowflake.connector
conn = snowflake.connector.connect(
account='YOUR_ACCOUNT',
user='YOUR_USERNAME',
private_key_file_pwd=None,
private_key_file='~/.ssh/snowflake_rsa_key.p8',
warehouse='MAIN_WAREHOUSE',
role='YOUR_ROLE'
)
```
### Using the Snowflake Web UI
1. Go to your organization's Snowflake URL
2. Enter your username
3. Use the **password provided by IT** (not your RSA key)
4. Enable MFA when prompted
---
## What You Get After Approval
### Your Default Role
New users typically receive a role like `SNOWTOWER_USERS__T_ROLE` which grants:
- Read access to shared production data
- Access to common warehouses
- Ability to create objects in your personal database
### Your Personal Database
You get your own database: `DEV_YOURNAME`
```sql
-- Switch to your database
USE DATABASE DEV_YOURNAME;
-- Create schemas and tables freely
CREATE SCHEMA my_analysis;
CREATE TABLE my_analysis.test_data (id INT, value VARCHAR);
```
### Your Default Warehouse
Usually `MAIN_WAREHOUSE`:
- Auto-suspends after 60 seconds of inactivity
- X-Small size by default
- Shared resource - be mindful of heavy queries
---
## First Session Checklist
```sql
-- 1. Check your current context
SELECT CURRENT_USER(), CURRENT_ROLE(), CURRENT_WAREHOUSE();
-- 2. See what databases you can access
SHOW DATABASES;
-- 3. See what roles you have
SHOW ROLES;
-- 4. Switch to your dev database
USE DATABASE DEV_YOURNAME;
-- 5. Create your first schema
CREATE SCHEMA IF NOT EXISTS sandbox;
USE SCHEMA sandbox;
-- 6. Test creating a table
CREATE TABLE test (id INT);
INSERT INTO test VALUES (1), (2), (3);
SELECT * FROM test;
DROP TABLE test;
```
---
## Common Issues & Solutions
### "Authentication failed"
**Cause:** RSA key mismatch or incorrect setup
**Solution:**
```bash
# Verify your private key is readable
ls -la ~/.ssh/snowflake_rsa_key.p8
# Check permissions (should be 400 or 600)
chmod 400 ~/.ssh/snowflake_rsa_key.p8
# Verify the public key matches what was submitted
cat ~/.ssh/snowflake_rsa_key.pub
```
### "Insufficient privileges"
**Cause:** You don't have access to that object
**Solution:**
- Check you're using the correct role: `SELECT CURRENT_ROLE();`
- Request additional access if needed via GitHub issue
### "Warehouse is suspended"
**Cause:** Warehouse auto-suspended to save costs
**Solution:**
```sql
-- Just run a query - it auto-resumes
SELECT 1;
```
### "Cannot connect to Snowflake"
**Checklist:**
1. Is your account approved? (Check the GitHub issue)
2. Is the account identifier correct?
3. Is your private key path correct?
4. Are you on the corporate network / VPN if required?
---
## Getting More Access
Need access to additional databases, schemas, or roles?
1. Open a new GitHub issue
2. Specify exactly what you need access to
3. Include business justification
4. Your request will be reviewed by an admin
---
## Two Authentication Methods
| Method | Use For | How |
|--------|---------|-----|
| **RSA Key** | CLI, scripts, applications | Private key file |
| **Password** | Web UI only | Provided by IT |
**Best Practice:** Always use RSA key authentication for programmatic access. Only use password for the web interface.
---
## Need Help?
- **Access issues:** Open a GitHub issue
- **Connection problems:** Check the troubleshooting section above
- **General questions:** Ask your team lead or Snowflake adminRelated Skills
user-guide-writing
Write clear and helpful user guides and tutorials for end users. Use when creating onboarding docs, how-to guides, or FAQ pages. Handles user-focused documentation, screenshots, step-by-step instructions.
when-analyzing-user-intent-use-intent-analyzer
Advanced intent interpretation system using cognitive science principles and probabilistic intent mapping
snowtower-maintainer
Maintains SnowTower project documentation, README, and Claude configuration. Use when updating documentation, auditing .claude folder contents, syncing README with actual project state, or reviewing agent/pattern definitions. Triggers on mentions of documentation, README, maintenance, or .claude folder updates.
snowtower-admin
Advanced skill for SnowTower infrastructure administrators. Use for SnowDDL operations, user provisioning, role management, CI/CD deployments, troubleshooting, and Snowflake administration. Triggers on mentions of snowddl, deploy, user creation, role grants, infrastructure changes, or admin operations.
ask-user
Pattern for effectively interacting with users to gather information or get decisions. Use when you need user input.
azure-quotas
Check/manage Azure quotas and usage across providers. For deployment planning, capacity validation, region selection. WHEN: "check quotas", "service limits", "current usage", "request quota increase", "quota exceeded", "validate capacity", "regional availability", "provisioning limits", "vCPU limit", "how many vCPUs available in my subscription".
raindrop-io
Manage Raindrop.io bookmarks with AI assistance. Save and organize bookmarks, search your collection, manage reading lists, and organize research materials. Use when working with bookmarks, web research, reading lists, or when user mentions Raindrop.io.
zlibrary-to-notebooklm
自动从 Z-Library 下载书籍并上传到 Google NotebookLM。支持 PDF/EPUB 格式,自动转换,一键创建知识库。
discover-skills
当你发现当前可用的技能都不够合适(或用户明确要求你寻找技能)时使用。本技能会基于任务目标和约束,给出一份精简的候选技能清单,帮助你选出最适配当前任务的技能。
web-performance-seo
Fix PageSpeed Insights/Lighthouse accessibility "!" errors caused by contrast audit failures (CSS filters, OKLCH/OKLAB, low opacity, gradient text, image backgrounds). Use for accessibility-driven SEO/performance debugging and remediation.
project-to-obsidian
将代码项目转换为 Obsidian 知识库。当用户提到 obsidian、项目文档、知识库、分析项目、转换项目 时激活。 【激活后必须执行】: 1. 先完整阅读本 SKILL.md 文件 2. 理解 AI 写入规则(默认到 00_Inbox/AI/、追加式、统一 Schema) 3. 执行 STEP 0: 使用 AskUserQuestion 询问用户确认 4. 用户确认后才开始 STEP 1 项目扫描 5. 严格按 STEP 0 → 1 → 2 → 3 → 4 顺序执行 【禁止行为】: - 禁止不读 SKILL.md 就开始分析项目 - 禁止跳过 STEP 0 用户确认 - 禁止直接在 30_Resources 创建(先到 00_Inbox/AI/) - 禁止自作主张决定输出位置
obsidian-helper
Obsidian 智能笔记助手。当用户提到 obsidian、日记、笔记、知识库、capture、review 时激活。 【激活后必须执行】: 1. 先完整阅读本 SKILL.md 文件 2. 理解 AI 写入三条硬规矩(00_Inbox/AI/、追加式、白名单字段) 3. 按 STEP 0 → STEP 1 → ... 顺序执行 4. 不要跳过任何步骤,不要自作主张 【禁止行为】: - 禁止不读 SKILL.md 就开始工作 - 禁止跳过用户确认步骤 - 禁止在非 00_Inbox/AI/ 位置创建新笔记(除非用户明确指定)