| name | setup |
| description | First-run vault initialization. Creates missing vault directories, verifies MCP connectivity, offers guided tool tour. Safe to re-run at any time. |
| invocation_pattern | /setup |
| auto_invoked | false |
Setup
First-run experience for MindStone. Creates any missing vault directories, verifies the intelligence pipeline is reachable, and offers a live tool demo to get you oriented.
Phase 0: Vault Context Check
Before creating any directories, confirm the vault root.
-
Use Glob to check for CLAUDE.md in the current directory.
-
If CLAUDE.md is found: output "Vault root confirmed." and continue to Phase 1.
-
If CLAUDE.md is NOT found: output exactly:
This skill requires vault context. Please open Claude Code from your vault root directory (the directory containing CLAUDE.md), then run /setup again.
Then STOP — do not create any directories or proceed further.
Phase 1: Create Vault Structure (Idempotent)
Check each required directory. Create only missing ones. Never overwrite existing content.
Step 1.1: Check all required directories (run in parallel)
Use Glob to check each directory. For each directory, Glob {dir}/**/*.md or {dir}/README.md — if Glob returns any result, the directory already exists and should be skipped.
Required directories to check:
daily/
library/books/
library/repos/
library/research/
library/youtube/
learnings/
journal/
events/
mocs/
health/
goals/annual/
goals/quarterly/
goals/weekly/
reviews/weekly/
reviews/quarterly/
reviews/annual/
Step 1.2: Create missing directories
For each missing directory, create a README.md (use Write tool) with a brief description of what goes in that directory.
README content by directory:
daily/ — Daily notes. One file per day (YYYY-MM-DD.md). Holds your plan, log entries, and review of the day.
library/books/ — Book notes and summaries. One file per book.
library/repos/ — GitHub repository extractions. One file per repo.
library/research/ — Research articles, papers, and web extractions.
library/youtube/ — YouTube video transcripts and summaries.
learnings/ — Atomic learning notes. One insight or concept per file.
journal/ — Free-form journal entries. One file per entry.
events/ — Tasks and events. Timed events sync to Google Calendar.
mocs/ — Maps of Content. Auto-generated by the intelligence pipeline. Do not create manually.
health/ — Health journal entries and state. Written by the Doctor persona.
goals/annual/ — Annual goals. One file per year (e.g., 2026.md).
goals/quarterly/ — Quarterly goals. One file per quarter (e.g., 2026-Q1.md).
goals/weekly/ — Weekly goals. One file per week (e.g., 2026-W01.md).
reviews/weekly/ — Weekly reviews. Written by Claude during /shutdown.
reviews/quarterly/ — Quarterly reviews. Written by Claude during /shutdown.
reviews/annual/ — Annual reviews. Written by Claude during /shutdown.
For content directories (daily, library/, learnings, journal, events, goals/): also create one minimal sample .md file with correct frontmatter so new users see an example.
For health/ specifically: If health/STATE.md does not exist, create it with all 6 section headings:
---
type: state
---
# Health STATE
## Profile
## Current Goals
## Habits
## Baselines
## Patterns
## Next Session Proposal
Never overwrite an existing health/STATE.md.
Step 1.3: Report
After checking and creating:
- List which directories already existed (skipped)
- List which directories were created
- If nothing was created: output "Vault structure complete — all directories already present."
Phase 2: Verify MCP Connectivity
Test that the MCP server is reachable with two lightweight calls.
Step 2.1: Test search_notes
Call:
search_notes({ query: "test", limit: 1 })
- If it returns results or empty results (no error): search_notes is connected.
- If it returns an error: note "search_notes: NOT CONNECTED"
Step 2.2: Test list_events
Call:
list_events({ filter: "all", limit: 1 })
- If it returns results or empty results (no error): list_events is connected.
- If it returns an error: note "list_events: NOT CONNECTED"
Step 2.3: Report connectivity status
If both pass:
MCP connected. The intelligence pipeline is reachable.
If either fails:
MCP not connected. Check that your INTELLIGENCE_SERVER_URL in CLAUDE.md points to the deployed Railway URL.
Troubleshooting: Railway dashboard → your intelligence service → copy the public domain → add to CLAUDE.md as INTELLIGENCE_SERVER_URL.
Phase 3: MCP Guided Tour
Step 3.1: List all available tools
Output the full tool inventory with one-line descriptions:
| Tool | Description |
|---|
extract_content | Extract and save content from YouTube videos, web articles, PDFs, or GitHub repos |
search_notes | Hybrid semantic + keyword search across your entire vault |
read_note | Read any vault file by path or search for it by content |
manage_note | Create, update, or delete vault files with auto-tagging and embeddings |
manage_event | Create, update, complete, or cancel events with Google Calendar sync |
list_events | Query events by date, priority, context, or tag |
get_calendar_events | Fetch timed events from Google Calendar for a date range |
doctor | Initialize a Doctor health journaling session (loads STATE + last 7 journal entries) |
Step 3.2: Offer interactive demo
Ask:
Want a live demo of any tool category?
- search — run a real search across your vault
- events — list your upcoming events
- extract — extract content from a URL
- no thanks — skip the demo
Wait for response.
Step 3.3: Run the selected demo
If search: call search_notes({ query: "goals" }) and show results.
If events: call list_events({ filter: "upcoming" }) and show results.
If extract: ask for a URL, then call extract_content({ url: "[provided URL]" }).
If no thanks or no response: skip.
Phase 4: Mark Setup Complete
Step 4.1: Update CLAUDE.md
Read CLAUDE.md. Find the ## Current Context section. Append to it:
Setup complete: YYYY-MM-DD
(Use today's actual date in YYYY-MM-DD format.)
Write the updated CLAUDE.md back using the Edit tool.
Step 4.2: Confirm to user
Output:
Setup complete. Your vault is ready.
Next steps:
- Run
/brief to get your morning briefing
- Run
/doctor to start a health journaling session
- Run
/goals to set up your goals
All skills: /brief, /shutdown, /log, /doctor, /meeting, /goals, /setup
Error Handling
| Situation | Action |
|---|
| CLAUDE.md not found at Phase 0 | Stop — output instructions to run from vault root |
| MCP connectivity fails | Continue setup but report not connected with troubleshooting tip |
| health/STATE.md already exists | Skip — never overwrite existing state file |
| Directory creation fails | Report which directory failed; continue with others |