skills/golem-powers/wizard/SKILL.md
Fresh machine setup wizard for the golems ecosystem. Checks prerequisites (brew, node, bun, claude, gh, git), reads or creates ~/.golems/config.yaml, clones required repos, runs sync-config.sh to wire MCP servers, creates .claude.local.md in each repo with machine-specific paths, verifies BrainLayer MCP connection, and reports setup status. Triggers on 'setup', 'wizard', 'fresh machine', 'new machine setup', 'configure workspace', 'onboard', 'install golems'. NOT for: daily skill usage (invoke skills directly), individual MCP server debugging (check MCP docs), updating existing skills (use writing-skills).
npx skillsauth add etanhey/golems wizardInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automated fresh-machine setup. Checks prerequisites, writes config, clones repos, wires MCP servers, verifies connections.
ALL opt-in features are OFF by default. The user must explicitly enable each one. No surprises, no unsolicited actions.
Run all checks in parallel where possible:
for cmd in brew node bun claude gh git; do
path=$(which $cmd 2>/dev/null)
if [ -n "$path" ]; then
version=$($cmd --version 2>/dev/null | head -1)
echo " $cmd : $path ($version)"
else
echo " $cmd : NOT FOUND"
fi
done
| Tool | Required? | Install if missing |
|------|-----------|-------------------|
| git | YES | xcode-select --install (macOS) or sudo apt install git |
| brew | YES (macOS) | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" |
| node | YES | brew install node or nvm install --lts |
| bun | YES | brew install oven-sh/bun/bun or curl -fsSL https://bun.sh/install \| bash |
| claude | YES | brew install claude or npm install -g @anthropic-ai/claude-code |
| gh | YES | brew install gh then gh auth login |
If any required tool is missing: List what's missing, provide install commands, and ask the user to install them before continuing. Do NOT proceed without all 6 tools.
After gh is confirmed installed, verify auth:
gh auth status
If not authenticated, guide the user through gh auth login.
Check if config exists:
cat ~/.golems/config.yaml 2>/dev/null
bash <reposPath>/orchestrator/scripts/sync-config.sh --validate (substituting the actual reposPath from config)Create it interactively:
Ask for workspace root (parent dir for repos, e.g., ~/Gits):
ls -d "<expanded_path>" 2>/dev/null~ to full path before writing.Detect tool paths (store absolute paths for launchd compatibility):
which claude && which gh && which bun && which node && which git
Ask about features (all OFF by default):
| Feature | Default | Description |
|---------|---------|-------------|
| nightShift | OFF | Autonomous improvement loop at 3am |
| telegram | OFF | Telegram notifications |
| emailGolem | OFF | Email triage and scoring |
Write the config:
mkdir -p ~/.golems
Write ~/.golems/config.yaml with this structure:
# Golems Configuration
reposPath: "<workspace_root>"
stateDir: "<home>/.golems-zikaron"
tools:
claude: "<path>"
gh: "<path>"
# ... other detected tools
features:
nightShift: false
telegram: false
emailGolem: false
mcpServers:
brainlayer:
command: socat
args: ["STDIO", "UNIX-CONNECT:/tmp/brainbar.sock"]
context7:
command: npx
args: ["-y", "@upstash/context7-mcp@latest"]
supabase:
command: npx
args: ["-y", "@supabase/mcp-server-supabase@latest", "--access-token", "<token>"]
contextProfiles:
# Start with one profile per cloned repo — user adds more later
Show the written config to the user for confirmation.
Read reposPath from config.yaml. Check which repos exist:
REPOS_PATH=$(python3 -c "import yaml; print(yaml.safe_load(open('$HOME/.golems/config.yaml'))['reposPath'])")
for repo in golems orchestrator brainlayer; do
if [ -d "$REPOS_PATH/$repo" ]; then
echo " $repo : EXISTS"
else
echo " $repo : NOT FOUND — will clone"
fi
done
| Repo | URL | Purpose |
|------|-----|---------|
| golems | [email protected]:EtanHey/golems.git | Main monorepo (skills, packages) |
| orchestrator | [email protected]:EtanHey/orchestrator.git | Scripts, sync-config.sh, plans |
| brainlayer | [email protected]:EtanHey/brainlayer.git | Memory layer (BrainBar daemon) |
For each missing repo:
cd "$REPOS_PATH"
gh repo clone EtanHey/<repo>
After cloning golems, install dependencies:
cd "$REPOS_PATH/golems" && bun install
Wire MCP servers across all repos using the config.yaml source of truth:
bash "$REPOS_PATH/orchestrator/scripts/sync-config.sh" --diff
Show the diff output to the user. Ask:
"This is what sync-config.sh will change. Apply these changes?"
If yes:
bash "$REPOS_PATH/orchestrator/scripts/sync-config.sh" --enforce
If sync-config.sh is not available (orchestrator not yet cloned or script missing), skip this step and note it in the final report.
For each repo in reposPath that has a CLAUDE.md, create a .claude.local.md with machine-specific paths:
for repo in golems orchestrator brainlayer; do
repo_path="$REPOS_PATH/$repo"
if [ -f "$repo_path/CLAUDE.md" ] && [ ! -f "$repo_path/.claude.local.md" ]; then
echo "Creating .claude.local.md for $repo"
fi
done
Template for .claude.local.md:
# Local Machine Config (not committed)
## Paths
- Repos: <reposPath>
- State: <stateDir>
- Config: ~/.golems/config.yaml
## Tools
- claude: <path>
- gh: <path>
- bun: <path>
## Environment
- Platform: <uname -s>
- Shell: <echo $SHELL>
- Node: <node --version>
- Bun: <bun --version>
IMPORTANT: Check .gitignore includes .claude.local.md in each repo. If not, warn the user to add it.
Check if BrainLayer is running:
# Check if BrainBar socket exists
ls -la /tmp/brainbar.sock 2>/dev/null
# Check if BrainBar process is running
pgrep -f BrainBar 2>/dev/null || pgrep -f brainbar 2>/dev/null
Test the MCP connection by calling brain_search with a simple query:
brain_search(query="test connection", limit=1)
Report:
"BrainLayer MCP is not available. BrainBar daemon is not running. To start: open /Applications/BrainBar.app Skills that use memory (coach, catchup, research) will have reduced functionality."
Do NOT block setup on BrainLayer — it's optional but recommended.
Display a summary of everything that was configured:
=== Golems Setup Complete ===
Prerequisites:
brew : /opt/homebrew/bin/brew (4.x)
node : /opt/homebrew/bin/node (v22.x)
bun : /opt/homebrew/bin/bun (1.x)
claude : ~/.local/bin/claude (1.x)
gh : /usr/local/bin/gh (2.x)
git : /usr/bin/git (2.x)
Config: ~/.golems/config.yaml
Workspace: ~/Gits
State dir: ~/.golems-zikaron
Repos:
golems : CLONED (bun install done)
orchestrator : CLONED
brainlayer : CLONED
MCP Servers: sync-config.sh applied (3 servers wired)
.claude.local: Created in 3 repos
BrainLayer: CONNECTED (BrainBar running)
Skills: Symlinked from golems/skills/golem-powers/
=== Manual Setup Needed ===
- [ ] Configure Supabase access token in config.yaml
- [ ] Set up 1Password: op account list
- [ ] Enable Telegram if needed: update config.yaml features.telegram
List anything that needs manual setup — secrets, tokens, services that couldn't be auto-configured.
This skill is invoked by:
/wizard slash command in Claude CodeINSTALL_PROMPT.md paste into a Claude sessionIt uses:
sync-config.sh from orchestrator repoconfig.yaml as single source of truthdevelopment
Create, edit, and verify golem-powers skills using the standard SKILL.md structure, workflow files, adapters, templates, and eval fixtures. Use for new skills, structural edits, workflows/adapters, and pre-deploy validation. NOT for invoking existing skills, superpowers skills, or skill-creator agent workflows.
testing
Extract structured knowledge from any video source — YouTube URLs or local screen recordings. YouTube → gems workflow (yt-dlp transcript → keyword hotspots → frame extract → brain_digest → structured gems). Screen recordings → QA workflow (reuses /qa-video stalker pipeline). Use when user shares a YouTube link wanting deep extraction with frames, shares a .mov/.mp4 for QA processing, says "extract from video", "video gems", "process this recording", or mentions gem extraction from video content.
testing
Use when running or reviewing any recurring monitor loop for merge queues, worker queues, collab tails, or agent completion. Enforces drive-to-completion ticks: every tick must query live state with `!`, classify whether real progress happened, and then dispatch, verify-and-decrement, or escalate-park. Triggers on: monitor loop, /loop, recurring tick, keep monitoring, silent autonomous, merge gate, blocked review, no-progress loop.
tools
MeHayom freelance client management — daily updates, decision tracking, time logging. Use when drafting Yuval updates, logging scope changes, tracking hours, or any MeHayom client communication. Triggers: 'draft Yuval update', 'client update', 'daily update', 'log decision', 'track time', 'mehayom'.