install
source · Clone the upstream repo
git clone https://github.com/ai-analyst-lab/ai-analyst
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ai-analyst-lab/ai-analyst "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/first-run-welcome" ~/.claude/skills/ai-analyst-lab-ai-analyst-first-run-welcome && rm -rf "$T"
manifest:
.claude/skills/first-run-welcome/skill.mdsource content
Skill: First-Run Welcome
Purpose
Provide an adaptive welcome experience based on setup state. Routes new users through
/setup for guided onboarding. Welcomes returning users with context
about their active dataset and quick actions.
When to Use
- Session start (triggered by Knowledge Bootstrap)
- Before any analysis work begins
Instructions
Step 1: Detect setup state
Read
.knowledge/setup-state.yaml. Classify into one of three states:
- Cold start — file does not exist OR
with nosetup_complete: false
(empty or missing).phases_completed - Partial setup — file exists,
, and at least one entry insetup_complete: false
.phases_completed - Warm start — file exists and
.setup_complete: true
Step 2: Route based on state
Cold Start (no setup-state.yaml or setup_complete: false, no phases done)
Present this welcome and route to
/setup:
Welcome to AI Analyst — your analytical partner for product teams. I help you turn business questions into validated insights, charts, and presentations. Think funnel analysis, segmentation, root cause investigation, trend detection — from question to slide deck. Let's get you set up. I'll walk you through a quick interview to learn about your data, your role, and what you want to analyze. Starting setup now...
Then invoke
/setup to begin the guided interview. Do NOT show dataset info,
tutorial content, or example queries. The setup flow handles all onboarding.
Partial Setup (some phases complete, setup not finished)
Read
phases_completed and phases_remaining from .knowledge/setup-state.yaml.
Welcome back! Your setup is partially complete. Done: [list phases_completed] Remaining: [list phases_remaining] Want to pick up where you left off? Type `/setup` to resume, or ask me a question if you'd rather dive in.
Warm Start (setup_complete: true)
Read context from:
→.knowledge/active.yaml
nameactive_dataset
→ table count.knowledge/datasets/{active}/manifest.yaml
→.knowledge/analyses/index.yaml
for last analysis datelast_updated
Welcome back! Here's where things stand: Dataset: [DATASET_NAME] ([N] tables) Last analysis: [DATE or "none yet"] Quick actions: - Ask a question — "What's our conversion rate by channel?" - /explore — interactive data exploration - /run-pipeline — full analysis from question to deck What would you like to work on?
If
active_dataset is null (setup complete but no data connected), show:
Welcome back! Setup is complete but no dataset is active yet. - /connect-data — add a dataset - /datasets — see available datasets What would you like to do?
Step 3: Proceed
After presenting the welcome:
- Cold start: Hand off to
. Do not proceed with analysis./setup - Partial setup: If user types
, hand off. If user asks a question, route through Question Router and note that setup can be finished later./setup - Warm start: If user asks a question, route through Question Router. If user picks a quick action, invoke that skill/agent.
Anti-Patterns
- Never show welcome to warm-start users who typed a question. If their first message is a question, answer it — weave a one-line "welcome back" naturally.
- Never show dataset details or tutorial content on cold start. The
flow handles all onboarding./setup - Never overwhelm with feature lists. Keep each welcome variant concise.
- Never reference NovaMart, bootcamp, or workshop content. This is a general-purpose tool, not a course.
- Never block on welcome. If the user already asked a question, serve it — adapt the welcome around their intent.