Skip to content
Back to skills

Onboard

ASecurity

Get this machine, this repo and its Snowflake account ready for StreamSnow. Detects what is already done and does only what is missing, so it is safe to re-run to ask "am I set up?". Use when the user says "set me up", "onboard", "I just cloned this repo", "is my machine ready", "add StreamSnow to this repo", or "set up Snowflake for StreamSnow", and when /build-app finds the machine or repo isn't ready.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
developmentpythonrustgobashsqlgitdatabase

Works with

  • claude code
  • cli

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 6, 2026

npx -y skills add kyle-chalmers/streamsnow --skill onboard --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Onboard?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Onboard
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kyle-chalmers-onboard/badge)](https://www.skillsdirectory.com/skills/kyle-chalmers-onboard)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: onboard
description: Get this machine, this repo and its Snowflake account ready for StreamSnow. Detects what is already done and does only what is missing, so it is safe to re-run to ask "am I set up?". Use when the user says "set me up", "onboard", "I just cloned this repo", "is my machine ready", "add StreamSnow to this repo", or "set up Snowflake for StreamSnow", and when /build-app finds the machine or repo isn't ready.
argument-hint: "(none: detects what this machine and repo need)"
allowed-tools: [Bash, Read, Write, Edit, Glob, Grep, AskUserQuestion]
---

# /onboard

> **Repo overlay:** if `.streamsnow/overlays/onboard.md` exists in this repo, read it first: committed, repo-specific additions and overrides ([_shared/overlays.md](../_shared/overlays.md)). Outside Claude Code, also read [_shared/other-agents.md](../_shared/other-agents.md).

Gets this machine, this repo and its Snowflake account ready to build and ship apps.
Everything that needs no answers runs first, then one round of questions, then the build,
then the steps that wait on other people. Re-running re-checks and does only what is missing.
The trust rules at the top of [setup.md](setup.md) apply throughout.

## Narrate every step

- Open each stage with one line: what it does, and whether it will ask anything.
- Before each action, one line of what and why; after it, one line with the result. Actions
  that need no approval are narrated too.
- Every question says what it decides and what each answer changes. Setup questions follow the
  question rule in Stage 2.
- Close each stage with what got done and what is next. Plain words, no walls of text.

## Stage 1 · Detect and prepare (no questions except one install approval)

1. Native Windows outside WSL: stop and follow setup.md §0.
2. Detect: `streamsnow doctor --format json` (no CLI: setup.md §0b first), whether
   `streamsnow.config.yaml` exists, whether `apps/*/streamlit_app.py` exists, whether
   `.claude/settings.json` enables `streamsnow@streamsnow`, and the Snowflake access
   inventory (setup.md §2a). Report the state in one line.
3. With any Snowflake access: the read-only investigation (setup.md §2b), including the
   admin check (setup.md §2d step 1).
4. One batched approval for every missing tool, then install one at a time and re-run
   doctor after each (setup.md §0b and §1). If `snow` was just installed or fixed, redo step 3.
5. The project Python environment (setup.md §1c) and the browser check (setup.md §1b).
6. Add the plugin to the repo's Claude settings when missing (setup.md §2e).

Nothing in Stage 1 writes `streamsnow.config.yaml` or the governed repo files.

## Stage 2 · One round of questions

**The question rule.** Explain each setting immediately before its separate question. Use the
host agent's question interface when it has one (Claude Code: `AskUserQuestion`, up to 4 per
call); otherwise ask in chat and wait for an explicit answer. Detection never counts as
confirmation: what Stage 1 found is the recommended first option. With a config already present
nothing is being decided, so skip the setup questions (setup.md §2c). In order:
- no Snowflake connection: set it up for them, or guide them (setup.md §2a); then redo Stage 1 step 3;
- one question each: runtime, database, allowed schemas, denied schemas, deploy source, and the
  connection when §2a has not confirmed it (setup.md §2c);
- the defaults it does not ask: bullets explaining each, then one keep or change question (§2c);
- git name and email, only if missing;
- apps but no config: confirm the adopt plan ([adopt.md](adopt.md));
- admin setup not confirmed: explain the script, then ask who runs it (setup.md §2d).

## Stage 3 · Build (after the user confirms)

- No config, no apps: `streamsnow configure` with the confirmed flags, then
  `streamsnow init --no-starter-app` (setup.md §2c).
- Apps, no config: the adopt flow ([adopt.md](adopt.md)).
- Config present and doctor's `repo-files` lists missing files: `init --no-starter-app` writes only those.
- A non-default connection: choose how local preview reads it (setup.md §3).
- Then `pre-commit install`, and doctor until every required row passes. Show the tree and the result.

## Stage 4 · Finish what waits on others

1. Snowflake admin setup when not confirmed (setup.md §2d): `streamsnow ci-key create`, the
   admin file in `.internal/`, the hand-off. Never run the admin SQL.
2. Once the admin objects are confirmed: `streamsnow ci-key push` (setup.md §2e).
3. Offer to commit the new repo files and `.claude/settings.json`.

## Done when

Name the end state:
- **Ready to build and preview:** Stages 1 to 3 pass. Next: `/build-app`.
- **Ready to deploy:** Stage 4 passes too.

With only the first, name what is pending ("waiting on your Snowflake admin") and say that
re-running `/onboard` re-checks.

## Out of scope

Building an app: `/build-app`. Porting one: `/migrate-app`. Deploying: `/ship-app`.

Files in this skill

  • SKILL.md4.3 KB
  • adopt.md3.6 KB
  • setup.md36.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…