| name | setup |
| description | First-run onboarding interview for the second brain starter kit. Triggers on: 'set me up', 'initialize', 'setup', 'let's start', or automatically when START-HERE.md exists and templates still contain {{PLACEHOLDER}} markers. Runs once; after completion START-HERE.md is deleted. |
Setup Skill — Onboarding Interview
Turn the template kit into the owner's personal system. One conversational interview, then fill every placeholder, create stream files, record DEC-001, and hand over a working brain.
Precondition check: if START-HERE.md is gone AND a repo-wide search for {{ finds nothing AND DEC-001 exists in vault/DECISIONS.md, setup already ran. Say so and stop.
Step 1: The Interview
Ask conversationally, in 3 small batches — not one giant form. Note answers as you go. If the user skips a question, use the stated default and tell them.
Batch A — Identity
- "What's your name?" →
OWNER_NAME
- "What do you want to call this brain?" (default: "Pensiever") →
SYSTEM_NAME
- "What timezone are you in?" →
TIMEZONE
- "In 2–3 sentences: what do you do, and what are you building or working toward right now?" →
OWNER_CONTEXT (this is classification context — it helps route captures)
Batch B — Streams
-
"What are the 3–8 ongoing areas of your life and work you want this brain to track?" For each stream, collect:
- a short name (e.g., "Day job", "Side project", "Health", "Writing")
- a priority: P0 (critical) … P3 (someday) — default P1
- how many days of silence before the brain should nudge you about it — default 7
- one sentence of context / current goal
- is any stream confidential (e.g., employer work that must be obfuscated in captures)? — default no
Derive a slug stream_id from each name (lowercase, hyphenated).
Batch C — Tools & Options
- "How will you capture things?" (multi-select: chat with the agent, voice memos, mobile notes, email, other) →
CAPTURE_CHANNELS
- "Which agent tool(s) will run this brain?" (Claude Code / Cowork / Cursor / other) → informational; note in SOUL.md Tools & Stack
- "Do you want a cloud mirror?" (e.g., Notion — the vault stays the source of truth; the mirror is a backup reachable from your phone). Default: no.
- If yes: note which tool; set
integrations.cloud_mirror accordingly and leave cloud_mirror_databases as an empty map with a comment that the owner must fill in their database IDs before mirror writes work.
- "Do you want scheduled heartbeat jobs?" (morning brief, daily harvest, nightly dream, weekly retro — see
vault/HEARTBEAT.md). Default: no.
- If yes: set
integrations.scheduler (cowork / cron), and propose creating the scheduled tasks if the current environment supports it — otherwise explain how (e.g., cron entries or the agent tool's scheduler) and leave it as a next step.
- Voice/tone (optional): "Any preferences for how I should talk to you?" →
VOICE_EXTRAS / BOUNDARIES_EXTRAS (empty is fine — remove the placeholder lines if unused)
Step 2: Fill the Templates
Replace every {{PLACEHOLDER}} in these files (the complete list — verify nothing else contains {{):
| File | Placeholders |
|---|
CLAUDE.md | SYSTEM_NAME, OWNER_NAME, TIMEZONE, STREAMS_LIST (YAML list items), CAPTURE_CHANNELS, integrations values |
vault/SOUL.md | OWNER_NAME, SYSTEM_NAME, OWNER_CONTEXT, STREAMS_TABLE (markdown rows), TOOLS_LIST, VOICE_EXTRAS, BOUNDARIES_EXTRAS |
vault/MEMORY.md | OWNER_NAME |
vault/DECISIONS.md | SETUP_DATE (today, YYYY-MM-DD) |
Formatting notes:
STREAMS_LIST in CLAUDE.md: proper YAML list entries matching the commented example (id, name, priority, nudge_after_days). Remove the example comments once real entries exist.
STREAMS_TABLE in SOUL.md: one markdown table row per stream. Mark confidential streams with "obfuscate content" in Notes.
- If an optional placeholder has no content, delete the placeholder line entirely — no empty
{{}} residue.
- You may remove the instructional HTML comments as you fill each section, or leave them as future editing hints — owner's choice (ask once).
Step 3: Create Stream Files
For each stream, create vault/streams/{stream_id}.md using the template in vault/streams/README.md, filled with the collected name, priority, nudge threshold, goal, and context. For confidential streams add confidential: true to frontmatter and a note that captures must be obfuscated (people → roles, org names → codenames).
Step 4: Record DEC-001
Append to vault/DECISIONS.md:
## DEC-001 — System initialized
- **Date:** YYYY-MM-DD
- **Status:** ACTIVE
- **Decision:** [system name] initialized for [owner name] with N streams (list ids), capture channels (list), cloud mirror: yes/no, scheduled jobs: yes/no.
- **Rationale:** Configuration chosen during the setup interview.
(Use the real values, of course.) Also add a one-line pointer under Key Decisions in vault/MEMORY.md.
Step 5: Compile (setup is a vault write like any other)
- Add the new stream files to
vault/index.md under Streams (one row each).
- Append to
vault/log.md:
## [YYYY-MM-DD HH:MM] init | system initialized — N streams, channels: [...], mirror: none, scheduler: none
Step 6: Verify and Clean Up
- Search the whole repo for
{{ — zero matches must remain outside START-HERE.md (about to be deleted) and this skill file (skills/setup/SKILL.md, whose own instructions mention the marker).
- Confirm
DEC-001 exists and every stream file was created.
- Delete
START-HERE.md.
- If the folder isn't a git repo yet, offer:
git init && git add -A && git commit -m "Initialize second brain" — the vault is memory; git is its history.
Step 7: Greet and Propose Next Steps
Greet the owner by name, summarize the configuration in ≤6 lines, then propose:
- Try a capture — "Tell me something on your mind right now and I'll file it" (runs
/capture end-to-end, chain receipt included).
- Seed the brain — drop a few existing notes/documents into
vault/inbox/ and run /capture on them, or verbatim sources into vault/raw/.
- Tune the soul — skim
vault/SOUL.md and adjust voice/boundaries to taste.
- Schedule the heartbeat (if they said yes but it wasn't wired) — set up the 4 jobs from
vault/HEARTBEAT.md.
- Commit — make the first git commit if not done in Step 6.
End with: "Your brain is live. What should it remember first?"