Validation
Profile validation rules checked at load time and by heretic-cli agents validate — image, runner, volumes, SSH, MCP, and secrets
Validation Rules
| Rule | Description |
|---|---|
image is non-empty | Docker image must be specified |
runner is valid | Must be docker, compose, or custom |
agent_type is valid | Must be claude, aider, copilot-cli, kilocode-cli, or generic |
provider is valid | Must be anthropic, thirdparty, copilot, or kilocode (when specified) |
| Volume sources are absolute | After ${VAR} interpolation, paths must be absolute |
| Env var values are strings | All environment variable values must be strings |
ssh.host non-empty | Required when SSH is configured |
ssh.port in range | Must be between 1 and 65535 |
ssh.key_path is absolute | Must be an absolute path |
mcp[].name non-empty | Each MCP server needs a name |
mcp[].command non-empty | Each MCP server needs a command |
mcp_file is non-empty string | When specified, must have a value |
mcp_override is boolean | When specified |
git.token non-empty | When specified |
secrets is object | Must be an object with string values |
secrets values non-empty | All secret values must be non-empty strings |
Running Validation
# Validate all global profiles
heretic-cli agents validate
# Validate a specific profile
heretic-cli agents validate claude
# Validate local configurations
heretic-cli local-validate
# Validate a specific local override
heretic-cli local-validate claude
Verbose Output
Use --verbose on any command to see detailed validation and resolution output:
heretic-cli run claude --verbose