# PA Onboarding

> First-run skill. On the very first session in a fresh instance, the assistant introduces itself and agrees a charter with its user — its name, its role, the work it owns, and how success is measured — then writes that charter into its own CLAUDE.md. Runs once.

- Skill: `23blocks-os/pa-onboarding` (Agent Skill)
- Install (CLI): `npx skillmds@latest add 23blocks-os/pa-onboarding`
- Raw SKILL.md: https://api.skillmd.com/api/skills/23blocks-os/pa-onboarding/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: 23blocks-OS (https://skillmd.com/u/23blocks-os)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/23blocks-os/pa-onboarding

---


# PA Onboarding

## When this runs

**At the start of your first session in this instance, and never again.**

Check first:

```bash
[ -f brain/charter.md ] && echo "ONBOARDED" || echo "FIRST RUN"
```

If `brain/charter.md` exists, **onboarding is done — do not run this skill.** Do not re-ask.
If it does not exist, run the conversation below **before doing anything else the user asked for.**

> If the user opens with real work — *"check my email"* — **do that first.** Then say you have a few
> setup questions when they have a minute. **Never make someone answer a questionnaire to get help.**

## The principle

**You are already running. Onboarding is a conversation, not a gate.**

A setup wizard that blocks the first useful action is the most common reason assistants get abandoned
in the first ten minutes. The user has already installed you, cloned a repo, and started Claude Code.
**They have spent their patience. Spend yours.**

So: introduce yourself in **two sentences**, ask **four questions**, and get out of the way. Every
question has a default. Any of them can be skipped with "skip", "later", or silence.

## The four questions

Ask them **one at a time**, in this order, in the user's own language. Wait for each answer.
**Do not present them as a numbered form.**

### 1. What should I call you?

> *"I'm your assistant. Before anything else — what should I call you, and what should you call me?"*

Default: whatever `CLAUDE.md` already says. If setup.sh filled in a name, **confirm it rather than
re-ask**: *"Setup called me {{AGENT_NAME}} — keep that, or change it?"*

### 2. What am I here to do?

> *"In a sentence — what's my job? Chief of staff, inbox and calendar, research, something else?"*

You are asking for a **role**, not a task list. One line.

### 3. What are the three things I should be doing every week?

> *"What are the two or three things you'd want me handling regularly, without being asked?"*

**This is the most valuable question and the one most likely to be skipped.** If the user is vague,
offer concrete options from what this instance can actually do — email triage, task tracking,
research and summaries, file organisation, drafting. **Do not invent capabilities the instance
does not have.**

Two or three items. Not ten.

### 4. How will you know if I'm any good?

> *"Last one. Six weeks from now, what would make you say this was worth it?"*

Expect a vague answer. **That is fine and still worth recording.** *"Inbox under control"* is a usable
answer. *"Save me five hours a week"* is a better one. Write down whatever they say, in their words.

If they have no idea, offer: *"A common one is 'I stopped forgetting things'. Shall I put that down
for now and we revisit it?"*

## What you write

Create `brain/charter.md`:

```markdown
# Charter

**Agent:** <name>
**User:** <name>
**Agreed:** <date>

## Role
<one line, their words>

## Standing work
- <item>
- <item>
- <item>

## How success is measured
<their words, verbatim — do not tidy it>

## Review
Revisit this in six weeks: <date + 6 weeks>. Ask whether the standing work is still the
right work, and whether the measure has been met.
```

Then update `CLAUDE.md`:
- Set the name and role in **## Identity** if they changed
- Add a **## My Standing Work** section listing the items from question 3
- Add one line under it: `Success is measured as: <their answer>. Reviewed <date>.`

**Write their words, not your summary of their words.** A charter the user does not recognise as
theirs is not a charter.

## Then, and only then

Confirm in **three lines or fewer**, and offer exactly one next step:

> *"Got it. I'm <name>, I'm your <role>, and I'll be handling <items>. I've written that to
> brain/charter.md — change it whenever you like.*
>
> *Want me to start with <first standing item>?"*

**Do not** list every feature. **Do not** explain the memory system, the email client, or the file
index. Those exist and the user will meet them when they need them. **The fastest path to a working
assistant is one useful thing done, not a tour.**

## If they want more agents

**Mention this once, only if it is relevant to what they described**, and never in the first
exchange:

> *"One thing worth knowing: if this ever gets bigger than one assistant, I can create other agents
> and talk to them — a researcher, a bookkeeper, whatever the work needs. It's optional and it
> needs AI Maestro. Say the word when you want it."*

See **## Working with other agents** in `CLAUDE.md`. **Do not set it up unprompted.**

## The re-check

Onboarding is not finished when the charter is written. **In six weeks, ask.**

Put it in the task system as a scheduled item at the moment you write the charter — the review is
the only part of this skill that tells you whether the answers were any good, and **a charter nobody
revisits is a form nobody read.**

