Goal
Implement the --interpret flag for ev verify that passes failure results through an LLM for natural-language explanation of why each encoding failed.
Background
The --interpret flag is documented in CLI examples but not implemented. It should run a lightweight LLM pass over failures and explain why each one occurred.
Design considerations
- API key management via environment variable (
EV_LLM_API_KEY)
- Prompt template design: provide field spec, constraint spec, and the specific failing combination
- Rate limiting and caching of explanations (same failure pattern → same explanation)
- Optional: support multiple LLM backends (OpenAI, Anthropic, local via Ollama)
Deliverables
--interpret flag on ev verify and ev simulate subcommands
- LLM client module with configurable backend
- Prompt template for constraint violation explanation
- Rate limiting and result caching
- Integration with existing TextReporter (append explanations to text output)
References
src/main.rs — CLI subcommands
src/reporter.rs — ReporterCapable trait
Cargo.toml — already has reqwest dependency (for HTTP calls)
Parent Issue
#13 — Phase 2: Spike simulation backend and CVA6 XIF exhaustive verification
Goal
Implement the
--interpretflag forev verifythat passes failure results through an LLM for natural-language explanation of why each encoding failed.Background
The
--interpretflag is documented in CLI examples but not implemented. It should run a lightweight LLM pass over failures and explain why each one occurred.Design considerations
EV_LLM_API_KEY)Deliverables
--interpretflag onev verifyandev simulatesubcommandsReferences
src/main.rs— CLI subcommandssrc/reporter.rs— ReporterCapable traitCargo.toml— already hasreqwestdependency (for HTTP calls)Parent Issue
#13 — Phase 2: Spike simulation backend and CVA6 XIF exhaustive verification