AgentV Eval Migrations
Use this skill when updating existing AgentV eval YAML, examples, docs, or
generated eval authoring guidance after a schema-breaking change.
Before editing, read references/breaking-changes.md. For stale evals from
AgentV v4.42.4, use that reference as the migration map: it lists the
v4.42.4-era shape, current shape, migration steps, verification commands, and
compatibility notes for each major breaking authoring change. Then compare the
eval file against the current portable contract:
- Treat migrations as rule-based rewrites first. Do not rely on a manual
"looks current" pass when the old field has a direct current replacement.
- Rewrite authored prompt data into top-level
prompts plus tests[].vars;
keep input only for documented raw-case import compatibility.
- Move sibling
expected_output to vars.expected_output, then add or keep an
explicit assertion that consumes it, usually llm-rubric with
{{ expected_output }}.
- Rewrite target identity to
id, keep provider for the backend/adapter kind,
put provider settings under config, and rewrite env references to
{{ env.NAME }}.
- Remove
use_target, eval_cases, evalcases, providerPromptMap, and
provider_prompt_map from authored eval/config YAML. Current AgentV rejects
these fields, so do not preserve them as compatibility aliases.
- Keep committed eval YAML portable: prompts, cases, assertions, workspace
templates, repos, hooks, env checks, Docker preflight/container config, and
workspace.scope.
- Do not put machine-local existing workspace directories in eval YAML. Use
--workspace-path for one-off runs or .agentv/config.local.yaml with
execution.workspace_path for persistent local binding.
- Use
workspace.scope: suite | attempt for portable workspace lifetime. Docker
config is not a replacement for workspace folder lifetime.
- Keep wire-format fields in
snake_case and TypeScript internals in
camelCase.
After migration, validate with bun apps/cli/src/cli.ts validate <file> when
working in the AgentV repo, or agentv validate <file> from an installed CLI.
Run the repo's parser/schema tests for generated examples and fixtures when the
change affects shared skill data or examples.
1---2name: agentv-eval-migrations3description: Migrate AgentV eval YAML across breaking schema changes, especially workspace contract updates and portable-vs-local runtime binding cleanup.4---56# AgentV Eval Migrations78Use this skill when updating existing AgentV eval YAML, examples, docs, or9generated eval authoring guidance after a schema-breaking change.1011Before editing, read `references/breaking-changes.md`. For stale evals from12AgentV v4.42.4, use that reference as the migration map: it lists the13v4.42.4-era shape, current shape, migration steps, verification commands, and14compatibility notes for each major breaking authoring change. Then compare the15eval file against the current portable contract:1617- Treat migrations as rule-based rewrites first. Do not rely on a manual18 "looks current" pass when the old field has a direct current replacement.19- Rewrite authored prompt data into top-level `prompts` plus `tests[].vars`;20 keep `input` only for documented raw-case import compatibility.21- Move sibling `expected_output` to `vars.expected_output`, then add or keep an22 explicit assertion that consumes it, usually `llm-rubric` with23 `{{ expected_output }}`.24- Rewrite target identity to `id`, keep `provider` for the backend/adapter kind,25 put provider settings under `config`, and rewrite env references to26 `{{ env.NAME }}`.27- Remove `use_target`, `eval_cases`, `evalcases`, `providerPromptMap`, and28 `provider_prompt_map` from authored eval/config YAML. Current AgentV rejects29 these fields, so do not preserve them as compatibility aliases.30- Keep committed eval YAML portable: prompts, cases, assertions, workspace31 templates, repos, hooks, env checks, Docker preflight/container config, and32 `workspace.scope`.33- Do not put machine-local existing workspace directories in eval YAML. Use34 `--workspace-path` for one-off runs or `.agentv/config.local.yaml` with35 `execution.workspace_path` for persistent local binding.36- Use `workspace.scope: suite | attempt` for portable workspace lifetime. Docker37 config is not a replacement for workspace folder lifetime.38- Keep wire-format fields in `snake_case` and TypeScript internals in39 `camelCase`.4041After migration, validate with `bun apps/cli/src/cli.ts validate <file>` when42working in the AgentV repo, or `agentv validate <file>` from an installed CLI.43Run the repo's parser/schema tests for generated examples and fixtures when the44change affects shared skill data or examples.