## Default Values Reference
Complete reference of all default configuration values in Prodigy. These defaults are used when settings are not explicitly configured in global config, project config, or environment variables.
### Global Configuration Defaults
Source: `src/config/mod.rs:51-59, 88-100`
| `prodigy_home` | `~/.prodigy` | Global storage directory (platform-specific) |
| `default_editor` | None | Text editor (falls back to `$EDITOR`) |
| `log_level` | `"info"` | Logging verbosity (`trace`, `debug`, `info`, `warn`, `error`) |
| `claude_api_key` | None | Claude API key (use environment variable) |
| `max_concurrent_specs` | `1` | Maximum concurrent spec implementations |
| `auto_commit` | `true` | Automatically commit after successful commands |
| `plugins.enabled` | `false` | Enable plugin system |
| `plugins.directory` | `~/.prodigy/plugins` | Plugin directory |
| `plugins.auto_load` | `[]` | Plugins to load on startup |
### Project Configuration Defaults
Source: `src/config/mod.rs:66-74`
| `name` | **Required** | Project identifier (no default) |
| `description` | None | Human-readable project description |
| `version` | None | Project version |
| `spec_dir` | `"specs"` | Directory containing specification files |
| `claude_api_key` | Inherits from global | Project-specific API key |
| `auto_commit` | Inherits from global | Project-specific auto-commit setting |
| `variables` | `{}` | Project variables for workflows |
### Storage Configuration Defaults
Source: `src/storage/config.rs:24-55, 228-241`
| `backend` | `"file"` | Storage backend type (`file` or `memory`) |
| `connection_pool_size` | `10` | Connection pool size (for future backends) |
| `timeout` | `30s` | Default operation timeout |
| `enable_locking` | `true` | Enable distributed locking |
| `enable_cache` | `false` | Enable caching layer |
### File Storage Defaults
Source: `src/storage/config.rs:66-86, 196-198`
| `base_dir` | `~/.prodigy` | Base storage directory |
| `use_global` | `true` | Use global storage (recommended) |
| `enable_file_locks` | `true` | Enable file-based locking |
| `max_file_size` | `104857600` (100MB) | Max file size before rotation |
| `enable_compression` | `false` | Compress archived files |
### Memory Storage Defaults
Source: `src/storage/config.rs:89-111, 200-201`
| `max_memory` | `1073741824` (1GB) | Maximum memory usage |
| `persist_to_disk` | `false` | Persist memory storage to disk |
| `persistence_path` | None | Path for disk persistence |
### Retry Policy Defaults
Source: `src/storage/config.rs:114-147, 204-212`
| `max_retries` | `3` | Maximum retry attempts |
| `initial_delay` | `1s` | Initial retry delay |
| `max_delay` | `30s` | Maximum retry delay (with backoff) |
| `backoff_multiplier` | `2.0` | Exponential backoff multiplier |
| `jitter` | `true` | Add random jitter to delays |
### Cache Configuration Defaults
Source: `src/storage/config.rs:150-173`
| `max_entries` | `1000` | Maximum cached entries |
| `ttl` | `3600s` (1 hour) | Cache time-to-live |
| `cache_type` | `"memory"` | Cache implementation type |
### Environment Variable Defaults
These settings can be overridden by environment variables (see [Environment Variables](environment-variables.md)):
| `PRODIGY_CLAUDE_API_KEY` | `claude_api_key` | None |
| `PRODIGY_LOG_LEVEL` | `log_level` | `"info"` |
| `PRODIGY_EDITOR` | `default_editor` | None |
| `PRODIGY_AUTO_COMMIT` | `auto_commit` | `true` |
| `PRODIGY_STORAGE_TYPE` | `storage.backend` | `"file"` |
| `PRODIGY_STORAGE_BASE_PATH` | `storage.base_dir` | `~/.prodigy` |
| `PRODIGY_CLAUDE_STREAMING` | - | `true` |
| `PRODIGY_AUTOMATION` | - | Not set (set by Prodigy) |
### CLI Parameter Defaults
Source: `src/cook/command.rs:28-29`
These are CLI-level parameters, not workflow configuration fields:
| `--max-iterations` | `1` | Number of workflow iterations to run |
| `--path` | Current directory | Repository path to run in |
### Command Metadata Defaults
Source: `src/config/command.rs:130-154, src/config/mod.rs:363-365`
Applied to individual commands when not specified:
| `retries` | `2` | Retry attempts for failed commands |
| `timeout` | `300` | Command timeout (seconds) |
| `continue_on_error` | `false` | Continue workflow on command failure |
| `commit_required` | `false` | Whether command must create git commits |
| `env` | `{}` | Environment variables for command |
### Understanding Defaults
**How defaults work:**
1. Prodigy starts with built-in defaults
2. Global config (`~/.prodigy/config.yml`) overrides defaults
3. Project config (`.prodigy/config.yml`) overrides global config
4. Environment variables override file config
5. CLI flags override everything
**Example precedence flow:**
```
Built-in default: log_level = "info"
↓
Global config: log_level = "warn" (overrides default)
↓
Project config: (not specified, inherits "warn")
↓
Environment: PRODIGY_LOG_LEVEL=debug (overrides all configs)
↓
Result: log_level = "debug"
```
### Practical Example: Overriding Storage Defaults
This example shows how to override storage defaults in a project config:
```yaml
# .prodigy/config.yml
name: my-project
storage:
backend: file
timeout: 60s # Override default 30s
enable_cache: true # Override default false
backend_config:
file:
base_dir: /custom/storage # Override default ~/.prodigy
max_file_size: 524288000 # 500MB (override default 100MB)
enable_compression: true # Override default false
cache_config:
max_entries: 5000 # Override default 1000
ttl: 7200s # 2 hours (override default 1 hour)
```
With this configuration:
- Storage timeout increases from 30s → 60s
- Caching is enabled (default: disabled)
- Files can be 500MB instead of 100MB
- Cache holds 5000 entries instead of 1000
### See Also
- [Configuration Precedence Rules](configuration-precedence-rules.md)
- [Global Configuration Structure](global-configuration-structure.md)
- [Project Configuration Structure](project-configuration-structure.md)
- [Storage Configuration](storage-configuration.md)
- [Environment Variables](environment-variables.md)