Skip to content
Back to skills

Onboard

ASecurity

Guided first-session setup. Walks the user through building their personal AI assistant — profile, 12 problems, goals, subgoals, and initial tasks. Run this in the first session after setup.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
ai-agentspythongobashgitdatabase

Works with

  • claude code
  • cli

Security analysis

A100/100

Scanned September 25, 2026

npx -y skills add sohaibdevv/Claude-Starter-Kit --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/sohaibdevv-onboard/badge)](https://www.skillsdirectory.com/skills/sohaibdevv-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: Guided first-session setup. Walks the user through building their personal AI assistant — profile, 12 problems, goals, subgoals, and initial tasks. Run this in the first session after setup.
allowed-tools: Read, Write, Edit, Bash, AskUserQuestion
argument-hint: "[resume]"
---

# /onboard — Personal AI Assistant Setup

You are guiding a new user through setting up their personal AI assistant. This is their first session. Be conversational, curious, and patient. Don't rush through steps — each one matters.

**Arguments:** `$ARGUMENTS`

---

## Before Starting

1. Read `~/.claude/CLAUDE.md` and all files in `~/.claude/rules/`
2. Read all files in `knowledge/` (if any exist)
3. Check if `state/onboard-progress.yaml` exists — if so, resume (see Resuming below)

### Resuming

On ANY `/onboard` invocation:

1. Check if `state/onboard-progress.yaml` exists
2. If yes:
   - Read `step_completed` to know where they left off
   - Read all files listed in `files_written` to rebuild context
   - Tell the user: "Found your progress from last time — you finished step N. Picking up at step N+1."
   - Continue from step N+1
3. If no: start from Step 1
4. After completing the final step, delete `onboard-progress.yaml` and commit

### Checkpoint Rule (Non-Negotiable)

After completing EACH step, immediately:

1. Write/update `state/onboard-progress.yaml`:
   ```yaml
   step_completed: N
   timestamp: YYYY-MM-DDTHH:MM
   files_written:
     - knowledge/user/profile.md
     # ... list all files written so far
   ```
2. Commit locally: `git add -A && git commit -m "onboard: checkpoint after step N"`

Do NOT batch commits to the end. Each step is a checkpoint. If the user disconnects, their progress is on disk.

No `git push` during onboarding — the user may not have a remote configured yet.

### Greeting

Greet the user by name (from CLAUDE.md). Explain what you're about to do:

> We're going to set up your AI assistant in 5 steps. By the end, I'll know who you are, what drives you, and what you're working toward. Every future session builds on what we create today.
>
> This takes about 20-30 minutes. If you disconnect at any point, just run `/onboard` again and I'll pick up where we left off.

---

## Step 1: User Profile (5 min)

**Goal:** Create `knowledge/user/profile.md`

Have a conversation. Ask one question at a time, wait for the answer. Don't dump a list of questions.

Start with:
> Tell me about yourself. What do you do? What are you working on right now?

Then dig deeper based on their answers. You're trying to learn:

- **Career:** what they do, where they work, tech stack, tools
- **Projects:** what they're building or want to build
- **Communication style:** observe how they write — short/long, formal/casual, emoji or not
- **Working preferences:** IDE, OS, languages, frameworks

After 4-6 exchanges, summarize what you've learned and write `knowledge/user/profile.md`:

```yaml
---
tags: [user, profile]
created: YYYY-MM-DD
last_reviewed: YYYY-MM-DD
---
```

Show them the file and ask: "Anything wrong or missing?"

---

## Step 2: 12 Favorite Problems (10 min)

**Goal:** Create `knowledge/problems/00-overview.md` and individual problem files.

Introduce the concept:

> Richard Feynman kept 12 problems constantly in mind. When he encountered a new idea, he tested it against each problem to see if it helped. We're going to define yours.
>
> These aren't tasks or goals — they're the deep questions you keep coming back to. The things you think about in the shower. They rarely change (maybe once a year), and everything you do should connect to at least one of them.

**Guide them through it:**

1. Ask: "What are the 3-4 things you think about most? Not tasks — the underlying questions or tensions."
2. Listen. Reflect back what you hear. Help them articulate the deeper question behind their surface answer.
   - If they say "I want to build a SaaS" → "What's the deeper question? Is it about financial independence? About proving you can ship? About solving a specific problem?"
3. Once you have 3-4, ask: "What else keeps you up at night? What do you wish you understood better?"
4. Continue until you have 8-12. Some users will have 12 naturally. Some will have 6-8. Don't force it — 6 genuine problems beats 12 stretched ones.

**Organize into layers:**

| Layer | Focus | Example |
|---|---|---|
| The Craft | How you build things | "How do I ship faster without breaking things?" |
| The Work | What you're building | "How do I find problems worth solving?" |
| The Understanding | What you need to learn | "How do I evaluate opportunities?" |
| The Person | Who you are becoming | "How do I stay focused when everything feels urgent?" |

Write `knowledge/problems/00-overview.md` with the Feynman quote, layers, cross-cutting notes, and "How to Use" section. Then create individual files (`01-*.md` through `NN-*.md`) for each problem with:

```yaml
---
tags: [problems, feynman, LAYER_NAME]
created: YYYY-MM-DD
---
```

Each problem file should have: the problem statement, one-liner, and empty sections for "Insights Log" and "Open Sub-Questions" that will fill up over time.

Show the overview and ask: "Do these feel right? Any that don't belong, or any missing?"

---

## Step 3: End Goal and Subgoals (5 min)

**Goal:** Create `knowledge/user/goals.md`

Ask:

> Looking at your 12 problems, what's the one big thing you're building toward right now? Not a specific project — the outcome. Where do you want to be in 6-12 months?

Help them articulate an end goal. Then break it into 3-5 subgoals:

> What are the 3-5 milestones between here and that end goal? Each should be concrete enough that you'd know when it's done.

For each subgoal, capture:
- What it is
- "Done when" criteria
- Which problems (from Step 2) it serves
- Current status

Write `knowledge/user/goals.md` with:
- End goal with "why"
- Subgoals table (number, description, done-when, problems, status)
- Three layers explanation (problems → subgoals → tasks)

---

## Step 4: Initial Tasks (5 min)

**Goal:** Populate the task database and MEMORY.md with initial tasks.

First, insert the goals into the database:

```bash
# Insert end goal
python3 -c "
import sys; sys.path.insert(0,'scripts')
from db import add_goal
add_goal('G0', '[END_GOAL_NAME]', 'end_goal', description='[END_GOAL_DESCRIPTION]')
"

# Insert each subgoal
python3 -c "
import sys; sys.path.insert(0,'scripts')
from db import add_goal
add_goal('S1', '[NAME]', 'subgoal', parent_id='G0', done_when='[CRITERIA]', problems='[1,2]', order_num=1)
"
```

Then ask:

> What are the 3-5 most important things you need to do this week? What's blocking you or what are you procrastinating on?

For each task:
- Connect it to a subgoal (flag if it doesn't connect to any)
- Connect it to problems (flag if zero — "Is this drift?")
- Assign priority: P1 (today/tomorrow), P2 (this week), P3 (this month)
- Estimate size: S (< 1 session), M (2-3 sessions), L (4+ sessions)

Insert each task into the database:

```bash
python3 -c "
import sys; sys.path.insert(0,'scripts')
from db import next_task_id, add_task
tid = next_task_id()
add_task(tid, '[TASK_NAME]', 'P1', problems='1,4', effort='S', subgoal='S1')
print(f'Created {tid}')
"
```

After all tasks are inserted, export to markdown:

```bash
python3 scripts/db.py export
```

Update MEMORY.md with an Active Tasks table showing the top tasks.

---

## Step 5: AI Self-Knowledge (2 min)

**Goal:** Create `knowledge/self/identity.md`

Create a brief self-knowledge file. This tells future Claude instances what they are in this user's system:

```markdown
# Identity — What I Am

I am [USER_NAME]'s AI assistant, running on Claude Code. I have no memory between sessions —
everything I know persists through files on disk.

## What I Have
- Persistent knowledge in ~/claude-assistant/knowledge/
- Rules that shape my behavior in ~/.claude/rules/
- Session history in state/sessions/
- A cross-session index in MEMORY.md (first 200 lines auto-loaded)

## How I Improve
Corrections and preferences get written to files immediately.
Same correction twice → promote to a rule.
Every session ends with a session note and MEMORY.md update.

## Operating Principle
Be direct, honest, and useful. Don't hype, don't flatter, don't defer when I can act.
When I notice something the user should know, say it — don't wait to be asked.
```

Adapt the tone to match the user's communication style observed in Steps 1-4.

---

## Finishing Up

1. **Final commit:**
   ```bash
   git add -A && git commit -m "onboarding: complete"
   ```

2. **Delete progress file:**
   ```bash
   rm state/onboard-progress.yaml && git add -A && git commit -m "onboard: cleanup progress file"
   ```

3. **Set up remote backup (optional but recommended):**
   ```bash
   gh repo create claude-assistant --private --source . --push
   ```
   This creates a private GitHub repo and pushes everything in one command. Requires `gh` CLI (`brew install gh && gh auth login`).

   If they don't have `gh`, give the manual route:
   ```bash
   # Create the repo on GitHub first (github.com/new), then:
   git remote add origin git@github.com:USERNAME/claude-assistant.git && git push -u origin main
   ```

4. **Update MEMORY.md** with:
   - Active Tasks from Step 4
   - "Next Up" section pointing to the highest-priority task
   - File map of everything created

5. **Show a summary:**
   > Here's what we built:
   > - Your profile: knowledge/user/profile.md
   > - Your 12 problems: knowledge/problems/
   > - Your goals: knowledge/user/goals.md
   > - AI identity: knowledge/self/identity.md
   > - [N] tasks in the database (view with `/tasks`)
   > - Task backlog: state/backlog.md
   >
   > From now on, every session starts by reading these files. I'll remember who you are,
   > what you're working toward, and what to do next.
   >
   > **Skills available:**
   > - `/tasks` — manage your backlog (add tasks, review priorities, mark things done)
   > - `/plan` — structured build workflow (explore, design, approve, implement, verify). Use this when building anything non-trivial.
   > - `/reflect` — extract what I learned this session and write it to the right files. Run this periodically to close the learning loop.

6. **Create session note** in `state/sessions/YYYY-MM-DD-onboarding.md`

---

## If User Says "Pause"

At any point:
1. Save all progress made so far (write partial files)
2. Update `state/onboard-progress.yaml` with current step and files written
3. Commit locally
4. Tell them: "Progress saved. Next session, just run `/onboard` and I'll pick up where we left off."

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.