vtcode-eval
September 9, 2026 · View on GitHub
Root AGENTS.md | Agent evaluation framework: pass@k / pass^k metrics, capability/regression evals, environment-based outcome verification.
Module Groups
| Area | Modules |
|---|---|
| Data model | task — EvalTask, EvalCategory, RunOutcome, EvalRunResult |
| Suite config | suite — EvalSuite (tasks + attempts + id) |
| Metrics | metric — pass@k/pass^k; test_quality — asymmetric/panic-only triage |
| Orchestration | executor — EvalExecutor trait + bounded run_suite_with_options (pure, I/O-free) |
| Environment | environment — EnvironmentProbe + CommandProbe, FileExistsProbe, GitCleanProbe |
| Reporting | report — EvalReport, SuiteReport, TaskReport, to_markdown, build_task_report |
| Trace analysis | trace_analyzer — privacy-preserving JSONL aggregate summaries |
Rules
lib.rsre-exports the public facade: types fromtask/suite/metric/test_quality/report,executor::{EvalExecutor, run_suite}, andtrace_analyzersummaries.run_suite_with_optionsdepends only on theEvalExecutortrait — no file I/O, config, or trust checks. It bounds concurrent attempts (default two), validatesattempts/k, and sorts results by task then attempt before reporting.- The four
EvalCategorystrings (Capability,Regression) are the only valid split keys;reportfilters oncategory.label()serialization. EvalSuiteis defined once insuite.rsand re-exported fromlib.rs. Do not duplicate it intask.rs.
Gotchas
attempts >= 1is NOT enforced by serde (suite.rs test confirmsattempts: 0deserializes).run_suite_with_optionsand the CLI both reject zero-attempt suites before scheduling.run_suiteuses the default bounded scheduler; userun_suite_with_optionsto set a different concurrency or metrick. The executor still owns task execution semantics and environment verification.- Environment verification (
EnvironmentProbe) is a separate concern from outcome grading —EvalExecutorimplementations decide how/whether to apply probes before returningRunOutcome. trace_analyzerretains aggregate facts only; summaries must not include command arguments, file contents, or tool output. Its public facade delegates bounded streaming and metric accounting to private submodules.