setup · diff

git:20260205.08b72ef to git:20260205.14df1c7

16 added, 13 removed. Audit A to A.

---
name: setup
description: Detects your Python environment and guides you through installing plugin dependencies. Use on first-time setup or when MCP server fails to start.
argument-hint: <blank for full check | "mcp" | "mastering" | "document-hunter">
model: claude-haiku-4-5-20251001
allowed-tools:
- Bash
---
Base directory for this skill: ${CLAUDE_PLUGIN_BASE_DIR}
## Your Task
Guide the user through installing bitwize-music plugin dependencies based on their Python environment and requested components.
---
# Setup Assistant
You help users install and verify plugin dependencies.
---
## Step 1: Detect Environment
**Run these checks in parallel:**
```bash
# Python version
python3 --version
# Check if externally managed
python3 -c "import sysconfig; print(sysconfig.get_path('purelib'))" 2>&1 | grep -q "/usr" && echo "EXTERNALLY_MANAGED" || echo "USER_MANAGED"
# Check for pipx
command -v pipx >/dev/null 2>&1 && echo "pipx: installed" || echo "pipx: not installed"
# Check for venv support
python3 -m venv --help >/dev/null 2>&1 && echo "venv: supported" || echo "venv: not supported"
# Platform
uname -s
```
---
## Step 2: Check Component Status
**IMPORTANT:** Run these checks **sequentially**, not in parallel. If one check fails, continue with the remaining checks to show complete status.
- Based on user's request (or check all if no argument):
-
- ### Check All Components
+ **CRITICAL:** Always check the venv, not system Python!
```bash
- # MCP Server
- python3 -c "import mcp; print('✅ mcp installed')" 2>&1 || echo "❌ mcp not installed"
-
- # Audio Mastering
- python3 -c "import matchering; print('✅ matchering installed')" 2>&1 || echo "❌ matchering not installed"
+ # Set venv path
+ VENV_PYTHON=~/.bitwize-music/venv/bin/python3
- # Cloud Uploads
- python3 -c "import boto3; print('✅ boto3 installed')" 2>&1 || echo "❌ boto3 not installed"
+ # Check if venv exists
+ if [ -f "$VENV_PYTHON" ]; then
+ echo "✅ Venv exists at ~/.bitwize-music/venv"
- # Document Hunter
- python3 -c "from playwright.sync_api import sync_playwright; print('✅ playwright installed')" 2>&1 || echo "❌ playwright not installed"
+ # Check each component in the venv
+ $VENV_PYTHON -c "import mcp; print('✅ mcp installed')" 2>&1 || echo "❌ mcp not installed"
+ $VENV_PYTHON -c "import matchering; print('✅ matchering installed')" 2>&1 || echo "❌ matchering not installed"
+ $VENV_PYTHON -c "import boto3; print('✅ boto3 installed')" 2>&1 || echo "❌ boto3 not installed"
+ $VENV_PYTHON -c "from playwright.sync_api import sync_playwright; print('✅ playwright installed')" 2>&1 || echo "❌ playwright not installed"
+ else
+ echo "❌ Venv not found at ~/.bitwize-music/venv"
+ echo " Run: python3 -m venv ~/.bitwize-music/venv"
+ fi
```
- All components are installed together via requirements.txt.
+ All components are installed together in the venv via requirements.txt.
---
## Step 3: Show Installation Commands
**Always use the unified venv approach** — it works on all platforms and is automatically detected by the plugin.
```bash
# Create unified venv (if it doesn't exist)
python3 -m venv ~/.bitwize-music/venv
# Install ALL plugin dependencies
~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt
# Set up document hunter browser
~/.bitwize-music/venv/bin/playwright install chromium
```
**That's it!** The plugin automatically detects and uses `~/.bitwize-music/venv`. No configuration needed.
**Works on:**
- ✅ Linux (externally-managed Python)
- ✅ macOS
- ✅ Windows (WSL)
- ✅ All other systems
---
## Step 4: Installation Guide
Present a clear, simple installation guide:
1. **Environment detected**: [Python version, Platform]
2. **Missing components**: [list what needs to be installed]
3. **Installation commands**:
```bash
python3 -m venv ~/.bitwize-music/venv
~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt
~/.bitwize-music/venv/bin/playwright install chromium
```
4. **After installation**:
- Restart Claude Code to reload the plugin
- MCP server should show as running in `/plugin` status
- Run `/bitwize-music:setup` again to verify
---
## Step 5: Verify Installation (if requested)
After user reports they've installed, re-run the checks from Step 2 and confirm:
✅ **MCP server**: Ready
✅ **Audio mastering**: Ready
✅ **Cloud uploads**: Ready
✅ **Document hunter**: Ready
**Next steps**: Run `/bitwize-music:configure` to set up your workspace paths.
---
## Output Format
Use clear sections with checkboxes for status:
```markdown
## bitwize-music Setup
### Environment
- Python: 3.12.3
- System: Linux
### Component Status
- [❌] MCP server
- [❌] Audio mastering
- [❌] Cloud uploads
- [❌] Document hunter
### Installation
Run these commands to install all plugin dependencies:
```bash
# Create unified venv
python3 -m venv ~/.bitwize-music/venv
# Install ALL dependencies
~/.bitwize-music/venv/bin/pip install -r ${CLAUDE_PLUGIN_ROOT}/requirements.txt
# Set up browser
~/.bitwize-music/venv/bin/playwright install chromium
```
**After installation:**
1. Restart Claude Code
2. All components will work automatically
3. Run `/bitwize-music:setup` to verify
The plugin automatically detects `~/.bitwize-music/venv` — everything just works!
```
---
## Remember
- **Be specific** - show exact commands for their environment
- **Prioritize user install** for externally-managed Python
- **Explain what each component does** so they can decide what to install
- **Test commands work** before suggesting them
- **Clear next steps** after installation