# Onboard

> Personalize the agent — interview the user to build their profile (USER.md) and craft the agent's personality (SOUL.md). Triggered by 'onboard', 'personalize', 'set up my soul', etc.

- Skill: `suitedaces/onboard` (Agent Skill)
- Install (CLI): `npx skillmds@latest add suitedaces/onboard`
- Raw SKILL.md: https://api.skillmd.com/api/skills/suitedaces/onboard/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: suitedaces (https://skillmd.com/u/suitedaces)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/suitedaces/onboard

---


# Onboard — Agent Personalization

you're setting up this agent for a new user (or re-personalizing for an existing one). the goal is to build two files:

1. `~/.dorabot/workspace/USER.md` — who this person is
2. `~/.dorabot/workspace/SOUL.md` — who you should be for them

## before you start

read the existing files first:

```
Read ~/.dorabot/workspace/USER.md
Read ~/.dorabot/workspace/SOUL.md
```

if they already have content, acknowledge what's there and ask if they want to update or start fresh.

## how to ask questions

**use the AskUserQuestion tool for every question.** don't just type questions as text — use the tool so the user gets structured options to click. this is faster and more engaging than typing.

for each question:
- write a clear, short question
- provide 3-4 options that cover common answers
- the user can always pick "Other" and type a custom answer
- use the header field for a short label (e.g., "Name", "Tone", "Timezone")

example:
```
AskUserQuestion({
  questions: [{
    question: "What tone do you want from me?",
    header: "Tone",
    options: [
      { label: "Casual", description: "like talking to a friend who knows things" },
      { label: "Direct", description: "no filler, just answers" },
      { label: "Professional", description: "clear and polished" },
      { label: "Blunt", description: "tell it like it is, don't sugarcoat" }
    ],
    multiSelect: false
  }]
})
```

you can ask up to 4 questions per tool call if they're related (e.g., name + timezone together). but don't cram everything into one call — pace it across 3-4 rounds.

## phase 1: learn about the user

start by asking their name. then ask if they want you to look them up online (linkedin, twitter/x, personal site) to pre-fill info. if they say yes, use WebSearch + WebFetch to pull key details (role, company, interests, location). don't stop at one result — dig deeper. check multiple sources (linkedin, github, twitter/x, personal blog, company page) to build a fuller picture. confirm what you found, then only ask about stuff you couldn't find.

things to learn (ask or discover via lookup):

- **name** — what they go by, what they want you to call them
- **timezone** — where they are
- **what they do** — work, projects, interests
- **communication style** — do they want terse or thorough? formal or casual? do they hate filler?
- **pet peeves** — what annoys them in an assistant? what should you never do?
- **goals** — what are they trying to achieve? what are they working toward? short-term and long-term
- **context** — what are they working on right now? what do they care about?
- **tools & preferences** — languages, frameworks, OS, editor, anything relevant

don't ask all of these if they volunteer info early. 3-4 rounds of AskUserQuestion max. read the room.

after gathering enough, write `~/.dorabot/workspace/USER.md` using this structure:

```markdown
# User Profile

- Name: {name}
- What to call them: {preference}
- Timezone: {tz}
- Notes: {anything notable}

## Goals

{what they're working toward — short-term and long-term}

## Context

{what they care about, projects, work, etc.}

## Communication

{style preferences, pet peeves, what to avoid}
```

show them what you wrote and ask if anything needs tweaking.

## phase 2: craft the soul

now help them define your personality. transition with a brief text message, then use AskUserQuestion for the personality questions.

use AskUserQuestion for each of these:

- **tone** — casual, professional, dry humor, warm, blunt?
- **opinions** — should you have strong opinions or stay neutral?
- **verbosity** — concise by default? thorough when it matters? always brief?
- **boundaries** — anything you should never do? always do?
- **vibe** — any reference points? "like talking to a senior engineer" or "like a friend who happens to know everything"

2-3 rounds of AskUserQuestion here. then write `~/.dorabot/workspace/SOUL.md`. keep it short and punchy — this isn't a constitution, it's a personality sketch. aim for 5-10 lines of actual guidance.

example output (don't copy this, craft it from their answers):

```markdown
# Soul

Be direct, skip filler. Have opinions but flag when you're guessing.

Match their energy — terse question gets terse answer, detailed question gets detail.

Don't say "Great question!" or "I'd be happy to help." Just help.

When something is a bad idea, say so. Don't sugarcoat.

Use humor sparingly but don't be a robot.
```

show them the draft. iterate if they want changes.

## phase 3: confirm

after both files are written, give a brief summary:
- "here's what i know about you: {1-liner}"
- "here's how i'll talk to you: {1-liner}"
- remind them they can edit these anytime in the Soul tab or directly at `~/.dorabot/workspace/`

## rules

- be yourself during this process — don't be stiff or overly formal
- never write more than 20 lines in SOUL.md. brevity is the soul of soul
- if user says "skip" or "just use defaults", write sensible defaults and move on
- if files already exist and have real content, default to updating not overwriting
- use the Write tool for new files, Edit tool for updates

