# Claude Code Customizations - Scripts Guide

This guide explains all the automated scripts created for managing Claude Code customizations.

## Available Scripts

### 1. `install-claude-customizations.sh` 📥

**Purpose**: Automated installer for setting up Claude Code customizations on a new machine.

**Usage**:
```bash
./install-claude-customizations.sh
```

**What it does**:
- Checks prerequisites (Node.js, npm, python3, curl)
- Creates directory structure (~/.claude/agents/, plugins/, etc.)
- Configures settings.json and settings.local.json
- Installs MCP tools (@z_ai/mcp-server, @z_ai/coding-helper)
- Sets up plugin configurations
- Creates agent directory structure (you must copy agent files separately)

**Options**:
- `--skip-agents` - Skip agent file copying (if already present)
- `--help` - Show help message

**Best for**: Fresh installation on a new machine when you have access to agent files from another source.

---

### 2. `export-claude-customizations.sh` 📦

**Purpose**: Export/pack existing customizations for transfer to another machine.

**Usage**:
```bash
./export-claude-customizations.sh
```

**What it does**:
- Copies all agent definitions from ~/.claude/agents/
- Exports plugin configurations
- Creates settings template (without sensitive API tokens)
- Exports hooks if present
- Creates README and MANIFEST
- Packages everything into a .tar.gz archive

**Output**:
- `claude-customizations-YYYYMMDD_HHMMSS.tar.gz` - Compressed archive
- `claude-customizations-export/` - Unpacked directory (optional cleanup)

**Best for**: Backing up your customizations or transferring to another machine.

---

### 3. `create-complete-package.sh` 🎁

**Purpose**: Creates a complete, distributable package with ALL agent files included.

**Usage**:
```bash
./create-complete-package.sh
```

**What it does**:
- Copies ALL agent files from current machine
- Copies plugin configurations
- Creates settings templates
- Copies hooks
- Generates install.sh script (self-contained installer)
- Generates verify.sh script
- Creates comprehensive README
- Packages everything into .tar.gz archive

**Output**:
- `claude-customizations-complete-YYYYMMDD_HHMMSS.tar.gz` - Complete package
- `claude-complete-package/` - Unpacked directory with:
  - `agents/` - All agent .md files
  - `plugins/` - Plugin configurations
  - `config/` - Settings templates
  - `install.sh` - Automated installer
  - `verify.sh` - Verification script
  - `README.md` - Package documentation
  - `MANIFEST.json` - Package metadata

**Best for**: Creating a complete, ready-to-distribute package that includes everything.

---

### 4. `verify-claude-setup.sh` ✅

**Purpose**: Verify that customizations are properly installed.

**Usage**:
```bash
./verify-claude-setup.sh
```

**What it checks**:
- Directory structure (Claude, agents, plugins)
- Agent categories (8 categories)
- Configuration files (settings.json, etc.)
- MCP tools availability (npx, @z_ai packages)
- Plugin registrations (glm-plan-bug, glm-plan-usage)
- Critical agent files exist and have content
- Settings file validity (JSON format, API token configured)

**Output**:
- Pass/Fail status for each check
- Summary with totals
- Exit code 0 if all pass, 1 if any fail

**Best for**: Troubleshooting installation issues or confirming setup is complete.

---

## Workflow Examples

### Scenario 1: Transfer to New Machine

**On source machine**:
```bash
# Create complete package
./create-complete-package.sh

# Transfer archive
scp claude-customizations-complete-*.tar.gz user@new-machine:~/
```

**On new machine**:
```bash
# Extract
tar -xzf claude-customifications-complete-*.tar.gz
cd claude-complete-package

# Install
./install.sh

# Verify
./verify.sh
```

---

### Scenario 2: Fresh Install Without Agent Files

```bash
# Run installer (creates directory structure)
./install-claude-customizations.sh

# Manually copy agent files
scp -r user@source:~/.claude/agents/* ~/.claude/agents/

# Verify
./verify-claude-setup.sh
```

---

### Scenario 3: Backup Customizations

```bash
# Export current setup
./export-claude-customizations.sh

# Store archive safely
mv claude-customizations-*.tar.gz ~/backups/
```

---

### Scenario 4: Create Distribution Package

```bash
# Create complete package for distribution
./create-complete-package.sh

# Upload to share location
# (GitHub Releases, Google Drive, etc.)
```

---

## Script Comparison

| Script | Creates Package | Installs | Verifies | Includes Agents |
|--------|----------------|----------|----------|-----------------|
| install-claude-customizations.sh | ❌ | ✅ | ❌ | ❌ (copies structure only) |
| export-claude-customizations.sh | ✅ | ❌ | ❌ | ✅ |
| create-complete-package.sh | ✅ | ✅ (via install.sh) | ✅ (via verify.sh) | ✅ |
| verify-claude-setup.sh | ❌ | ❌ | ✅ | N/A |

---

## Quick Reference

### To Install Everything:
```bash
./create-complete-package.sh    # On machine with customizations
# Transfer to new machine, then:
./install.sh                    # Included in package
./verify.sh                     # Included in package
```

### To Just Backup:
```bash
./export-claude-customizations.sh
```

### To Just Verify:
```bash
./verify-claude-setup.sh
```

---

## File Locations

All scripts are located in: `/home/uroma/`

- `install-claude-customizations.sh`
- `export-claude-customizations.sh`
- `create-complete-package.sh`
- `verify-claude-setup.sh`

Documentation:
- `CLAUDE-CUSTOMIZATIONS-README.md` - Complete feature documentation
- `SCRIPTS-GUIDE.md` - This file

---

## Troubleshooting

### Script not executable?
```bash
chmod +x /path/to/script.sh
```

### Permission denied?
```bash
bash /path/to/script.sh
```

### npx not found?
```bash
# Install Node.js from https://nodejs.org/
# Or use nvm: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
```

### Agent files not copying?
- Check source directory exists: `ls ~/.claude/agents/`
- Check permissions: `ls -la ~/.claude/agents/`
- Verify script has read permissions

---

## Customization

### Modify Agent Categories

Edit the `CATEGORIES` array in scripts:
```bash
CATEGORIES=("engineering" "marketing" "product" "studio-operations" "project-management" "testing" "design" "bonus")
```

### Add Custom MCP Tools

Edit the MCP installation section in install scripts:
```bash
npm install -g your-custom-mcp-server
```

### Change Package Format

Edit the tar command in export scripts:
```bash
# For zip instead:
zip -r package.zip claude-complete-package/
```

---

## Support

For issues with:
- **Scripts**: Check script permissions and dependencies
- **Installation**: Run verify script to identify issues
- **Agent behavior**: Check agent .md files in ~/.claude/agents/
- **MCP tools**: Verify npm packages installed with `npm list -g`

---

**Last Updated**: 2025-01-15
**Version**: 1.0.0
