azure/run-evals
Run evaluation tests for prompt quality. Use for: run evals, validate prompt changes, check prompt quality, eval recording, evaluation failure, debug eval, use recording.
npx skills add https://github.com/Azure/azure-sdk-tools --skill run-evals
.prompty file to validate quality hasn't regressedAlways activate the virtualenv first: .venv\Scripts\activate (Windows) or source .venv/bin/activate (Linux/macOS).
# Run all workflows
avc test eval
# Run a specific workflow
avc test eval --test-paths evals/tests/mention_action
# Run a single test file
avc test eval --test-paths evals/tests/filter_existing_comment/discard_azure_sdk_repeat_comment.yaml
# Multiple runs (median result kept)
avc test eval --num-runs 5 --test-paths evals/tests/filter_comment_metadata
# Use recordings (cached LLM responses) — first run saves, subsequent runs reuse
avc test eval --use-recording --test-paths evals/tests/mention_action
# Verbose output (show passing tests too)
avc test eval --style verbose
cd evals
python run.py --test-paths tests/mention_action
| Workflow directory | Kind | Target function in _custom.py | Prompt tested |
|---|---|---|---|
| mention_action | prompt | _mention_action_workflow | parse_conversation_action.prompty |
| mention_summarize | summarize_prompt | _mention_summarize_workflow | summarize_github_actions.prompty |
| thread_resolution_action | prompt | _thread_resolution_action_workflow | parse_thread_resolution_action.prompty |
| filter_comment_metadata | prompt | _filter_comment_metadata | filter_comment_with_metadata.prompty |
| filter_existing_comment | prompt | _filter_existing_comment | filter_existing_comment.prompty |
| deduplicate_parser_issue | prompt | _deduplicate_parser_issue | deduplicate_parser_issue.prompty |
| deduplicate_guidelines_issue | prompt | _deduplicate_guidelines_issue | deduplicate_guidelines_issue.prompty |
| filter_generic_comment | prompt | _filter_generic_comment | filter_generic_comment.prompty |
| judge_comment_confidence | prompt | _judge_comment_confidence | judge_comment_confidence.prompty |
| merge_comments | summarize_prompt | _merge_comments | merge_comments.prompty |
| generate_correlation_ids | prompt | _generate_correlation_ids | generate_correlation_ids.prompty |
prompt — Action-based. Compares expected vs actual action, then similarity-scores the rationale. Wrong action = 0%.summarize_prompt — Summary-based. Uses SimilarityEvaluator on full output. Success threshold: score > 70%.evals/recordings/<workflow_name>/<testcase_id>.json--use-recording--use-recording on first run makes LLM calls and saves; subsequent runs reuse cached responsespython cli.py not .\avc: The avc.bat script calls bare python which may resolve to the system Python instead of the venv. Use .venv\Scripts\activate; python cli.py test eval ... to ensure the venv Python is used.testcase and response)--use-recording to get fresh resultstestcase field must be unique across all test files in a workflow — it's the cache keykind in test-config.yaml must be registered in _config_loader.py (prompt or summarize_prompt)Take azure/run-evals from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.