336774a164c082d9e93a1d8d37c9b68f990ed198
Convert OptimizationConfig from dataclass to Pydantic BaseModel with field validators for ranges, types, and enum values. Missing/invalid fields now produce actionable CLI errors instead of cryptic KeyErrors. - Range validators: max_iterations>=1, minibatch_size>=1, seed>=0, etc. - Enum validator: error_strategy must be skip|retry|abort - Config migration hook via config_version field - CLI catches ValidationError and prints per-field error messages - Remove unused AppSettings class (Bug #7) - 30 unit tests covering all validation edge cases Co-Authored-By: Paperclip <noreply@paperclip.ing>
Prometheus
Prompt evolution without reference data.
Quick Start
uv sync
uv run prometheus optimize -i examples/sample_config.yaml -o result.yaml -v
Architecture
Clean hexagonal architecture with four layers:
- Domain — entities, ports, scoring (zero external dependencies)
- Application — use cases, bootstrap, evaluator, evolution loop
- Infrastructure — DSPy signatures, modules, adapters, file I/O
- CLI — Typer app with
optimizecommand
Testing
uv run pytest
uv run ruff check .
uv run mypy src/
Description
Languages
Python
99.9%
Shell
0.1%