prodigy 0.4.4

Turn ad-hoc Claude sessions into reproducible development pipelines with parallel AI agents
Documentation
## Global Configuration Structure

Global configuration is stored in `~/.prodigy/config.yml` in your home directory. These settings apply to all Prodigy projects unless overridden by project-specific configuration.

### Location

- **File**: `~/.prodigy/config.yml`
- **Created**: Automatically on first run with defaults
- **Format**: YAML

### Fields

#### `prodigy_home`

**Type**: Path
**Default**: `~/.prodigy` (or platform-specific data directory)

Base directory for global Prodigy data including events, DLQ, state, and worktrees.

```yaml
prodigy_home: /Users/username/.prodigy
```

#### `default_editor`

**Type**: String (optional)
**Default**: None

Default text editor for interactive operations. Falls back to `EDITOR` environment variable if not set.

```yaml
default_editor: vim
```

#### `log_level`

**Type**: String (optional)
**Default**: `info`
**Valid values**: `trace`, `debug`, `info`, `warn`, `error`

Controls logging verbosity for Prodigy operations.

```yaml
log_level: debug
```

#### `claude_api_key`

**Type**: String (optional)
**Default**: None

Claude API key for AI-powered commands. Can be overridden by project config or `PRODIGY_CLAUDE_API_KEY` environment variable.

```yaml
claude_api_key: "sk-ant-api03-..."
```

**Security Note**: Store API keys in environment variables or project config (not committed to version control) rather than global config.

#### `max_concurrent_specs`

**Type**: Integer (optional)
**Default**: `1`

Maximum number of concurrent spec implementations to run in parallel.

```yaml
max_concurrent_specs: 3
```

#### `auto_commit`

**Type**: Boolean (optional)
**Default**: `true`

Whether to automatically commit changes after successful command execution.

```yaml
auto_commit: false
```

#### `storage`

**Type**: Object (optional)
**Default**: File storage in `~/.prodigy`

Storage backend configuration for events, DLQ, state, and worktrees. See [Storage Configuration](storage-configuration.md) for details.

```yaml
storage:
  backend: file
  backend_config:
    base_dir: ~/.prodigy
    repository_grouping: true
```

**Storage Fields**:
- `backend`: Storage type (`file` or `memory`)
- `backend_config.base_dir`: Base directory for file storage
- `backend_config.repository_grouping`: Group data by repository name (default: true)

See [Storage Configuration](storage-configuration.md) for complete documentation.

#### `plugins`

**Type**: Object (optional)
**Default**: None

Plugin system configuration. See [Plugin Configuration](#plugin-configuration) below.

### Complete Example

```yaml
# ~/.prodigy/config.yml
prodigy_home: /Users/username/.prodigy
default_editor: code
log_level: info
claude_api_key: "sk-ant-api03-..."
max_concurrent_specs: 2
auto_commit: true

storage:
  backend: file
  backend_config:
    base_dir: /Users/username/.prodigy
    repository_grouping: true

plugins:
  enabled: true
  directory: /Users/username/.prodigy/plugins
  auto_load:
    - github-integration
    - slack-notifications
```

### Plugin Configuration

The `plugins` field controls the plugin system:

#### `enabled`

**Type**: Boolean
**Default**: `false`

Enable or disable the plugin system.

```yaml
plugins:
  enabled: true
```

#### `directory`

**Type**: Path
**Default**: `~/.prodigy/plugins`

Directory to search for plugins.

```yaml
plugins:
  directory: /custom/plugin/path
```

#### `auto_load`

**Type**: Array of strings
**Default**: `[]`

List of plugin names to automatically load on startup.

```yaml
plugins:
  auto_load:
    - plugin-name-1
    - plugin-name-2
```

### Creating Global Config

If the file doesn't exist, create it manually:

```bash
mkdir -p ~/.prodigy
cat > ~/.prodigy/config.yml << 'EOF'
log_level: info
auto_commit: true
EOF
```

### Relationship to Project Config

- Global config applies to **all projects**
- Project config (`.prodigy/config.yml`) **overrides** global config per field
- Settings not specified in project config are **inherited** from global config
- See [Configuration Precedence Rules]configuration-precedence-rules.md for details