Brian Onboarding
First-time Brian setup — identity, work context, spaces, agents, and skill install in one guided flow.
Description
Prerequisites
- Brian connected
Install in Claude
Download
Sign in, then click Download. You'll get a zip with the skill folder inside.
Upload to Claude
In Claude, go to Settings → Capabilities → Skills → Add custom skill. Upload the zip you just downloaded.
Test it
Try a prompt that should trigger the skill — Brian's docs and the description above show what activates Brian Onboarding.
Skill content
name: brian-onboarding description: First-time Brian setup flow. Triggers when a new user connects Brian and sends the onboarding prompt from Brian's web UI settings page ("I just connected Brian for the first time..."). Replaces brian-welcome entirely. Guides the user through identity, work context, spaces, preferences, agent selection, and skill install — using buttons where choices are bounded, free text where open-ended, and Soul Builder for custom agents. Always use this skill for first-time onboarding. Never improvise the onboarding flow without it.
brian-onboarding
Structured first-time setup for Brian. Produces a seeded memory graph, configured spaces, suggested agents, and the /agents skill installed — all in one guided flow.
Before starting
Check whether any memories already exist by calling get_context("user identity name"). If memories are returned, the user is not new — do not run this flow. Greet them normally instead.
If no memories exist, begin Phase 1 immediately. Do not explain what you're about to do. Just start.
Phase 1 — Identity
Ask for name as plain text first. No buttons.
"Welcome to Brian. What's your name?"
Once name is provided, store immediately:
store_memory: type truth, content "User's name is {name}", salience 1.0, pinned
Then ask role using ask_user_input single_select:
"What best describes what you do?"
Options: Founder / Entrepreneur · Consultant or Advisor · Knowledge Worker · Developer or Engineer · Creative or Designer · Other (I'll describe)
If Other: ask free text follow-up: "Tell me a bit about what you do." Then ask 1–2 targeted clarifying questions based on the answer to get enough context before continuing.
Store role as truth, salience 0.8.
Phase 2 — Work context
Ask what they primarily use Claude for using ask_user_input multi_select:
"What do you mainly use Claude for? Pick all that apply."
Options: Writing & research · Client work & proposals · Coding & building · Business strategy · Data & analysis · Learning & note-taking · Other (I'll describe)
If Other is selected or typed: ask free text follow-up. Then ask clarifying questions until you have enough context to suggest relevant spaces and agents. Minimum 1 clarifying question, maximum 3.
Store work context as truth, salience 0.8.
Phase 3 — Spaces
Based on Phase 1 and 2 answers, propose 2–4 spaces. Show as ask_user_input multi_select.
"I'll create these spaces to organise your memory. Deselect any you don't want."
Always include default as a fallback (pre-selected, not deselectable). Always offer a free text field: "Or type a space name you'd prefer."
Create all confirmed spaces immediately. Confirm: "Spaces created: {list}."
Phase 4 — Preferences
Two ask_user_input single_select questions:
Response style: Direct and concise · Detailed and thorough · Depends on the task
Proactive memory: Yes, prompt me · No, I'll ask when I want to store
Free text: "Any standing instructions for Claude? (optional)"
Store preferences as preference, salience 0.7. Standing instructions as instruction, salience 1.0, pinned.
Phase 5 — Agent setup
Suggest agents based on onboarding answers:
| If user is/does | Suggest |
|---|---|
| Any user | Morning Briefing Agent |
| Client work / proposals | Proposal Agent |
| Research / strategy | Research Briefing Agent |
| Using Brian heavily | Post-Session Capture Agent |
| Has customers / testers | Customer Prospecting Agent |
| Uses Notion | Notion Weekly Summary Writer |
Present as ask_user_input multi_select. Include "None for now" option.
Free text field: "Or describe an agent you'd want — I'll build it for you."
If custom agent described: transition into Soul Builder flow immediately.
Store selected agents as intent memories, salience 0.7, tags: ["onboarding", "agent-selection"].
Phase 6 — Skill install
Brief 11: skills are no longer merged into every get_context response. Users install them as native Claude skills during onboarding, then Claude loads them normally. This phase delivers six core skills plus the /agents shortcut.
Step 1 — Query the six core skills from the graph
For each skill below, call list_memories({ space_id: "skills", limit: 30 }) once, then pick out the rows matching the skill names. (Or use get_context({ query: "brian-<skill> skill" }) per skill if you prefer semantic retrieval.) The skill memories are stored with memory_type: "instruction" and tags ["skill", "brian-skill", "brian-<name>"].
Core skills to install:
brian-retrieval— when and how to call get_context; also covers soul querying (Brief 11)brian-storage— choosing memory types, salience, tagsbrian-sessions— when to open/close indexed sessionsbrian-onboarding— this skill; install for first-run re-play if neededbrian-feedback— capturing quality signals reactively and at session endbrian-support— in-conversation support triage
Step 2 — Emit each as a Save Skill code block
For every retrieved skill, output a fenced code block with the skill body in its current form (don't paraphrase — emit the memory content verbatim, wrapped in a Claude skill frontmatter block):
---
name: <name>
description: <one-line description from the skill's frontmatter>
---
<full skill body>
Between blocks, add a single line: **Click Save Skill above to install.** Don't explain what each skill does — the user installs them in bulk, then Claude loads the skill on future calls and the skill content teaches itself.
Step 3 — Emit the /agents shortcut
Same pattern, this one hardcoded (it's a tiny wrapper, not a full skill):
---
name: agents
description: Triggers when the user types /agents or /agent. Activates the invoke-agent skill to discover and run available Brian agents.
---
# /agents
When the user types `/agents` or `/agent`:
1. Call `get_context` with query `"agent soul tag:agent"`, limit 15, all spaces.
2. Present all discovered agents as buttons using `ask_user_input` single_select.
3. Once selected, fetch the agent's soul doc from Drive and run it per the invoke-agent skill.
If retrieval is thin
If any of the six core skills fails to retrieve (< 1 matching memory), skip it and flag to the user: "I couldn't find the brian-<name> skill in your memory graph. It may need to be re-seeded." Continue with the ones that did load.
Phase 7 — Completion
Close with a single structured summary block. No padding. No follow-up questions.
You're set up.
- Name stored
- Spaces created: {list}
- Agents ready: {list or "none selected"}
- Preferences saved
- /agents skill installed
Memory storage checklist
| Memory | Type | Salience | Pinned |
|---|---|---|---|
| User's name | truth | 1.0 | yes |
| User's role | truth | 0.8 | no |
| Work context | truth | 0.8 | no |
| Response style | preference | 0.7 | no |
| Proactive memory | preference | 0.7 | no |
| Standing instructions | instruction | 1.0 | yes |
| Spaces created | state | 0.6 | no |
| Agent selections | intent | 0.7 | no |
Release notes
Initial drop. Replaces brian-welcome. Triggers on the post-connection prompt from Brian's settings page.
