agentleFS
Microsoft AzureKnown publisherAzure/azure-sdk-tools/packages/python-packages/apiview-copilot/.github/skills/run-evals/SKILL.md

run-evals

Skill135 starsChanged 2 months agoMITView on GitHub

Run evaluation tests for prompt quality. Use for: run evals, validate prompt changes, check prompt quality, eval recording, evaluation failure, debug eval, use recording.

We split this skill into the rules it gives an agent

5 rules. 0 are common, 0 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 7 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    After modifying any .prompty file to validate quality hasn't regressed

    line 9
  2. Very specific:

    Always activate the virtualenv first: .venv\Scripts\activate (Windows) or source .venv/bin/activate (Linux/macOS).

    line 15
  3. Very specific:

    If you change a test file, delete its recording or run without --use-recording

    line 68
  4. Very specific:

    Field name mismatch: Test YAML fields must exactly match target function parameter names (excluding testcase and response)

    line 74
  5. Very specific:

    Stale recordings: After changing a prompt, delete recordings or run without --use-recording to get fresh results

    line 75

“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Run Evaluations

When to Use

  • After modifying any .prompty file to validate quality hasn't regressed
  • Debugging failing or partial eval results
  • Iterating on prompts with cached recordings to avoid LLM costs

Running Evals

Always activate the virtualenv first: .venv\Scripts\activate (Windows) or source .venv/bin/activate (Linux/macOS).

Via CLI

# 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

Via run.py directly

cd evals
python run.py --test-paths tests/mention_action

Existing Workflows

Workflow directoryKindTarget function in _custom.pyPrompt tested
mention_actionprompt_mention_action_workflowparse_conversation_action.prompty
mention_summarizesummarize_prompt_mention_summarize_workflowsummarize_github_actions.prompty
thread_resolution_actionprompt_thread_resolution_action_workflowparse_thread_resolution_action.prompty
filter_comment_metadataprompt_filter_comment_metadatafilter_comment_with_metadata.prompty
filter_existing_commentprompt_filter_existing_commentfilter_existing_comment.prompty
deduplicate_parser_issueprompt_deduplicate_parser_issuededuplicate_parser_issue.prompty
deduplicate_guidelines_issueprompt_deduplicate_guidelines_issuededuplicate_guidelines_issue.prompty
filter_generic_commentprompt_filter_generic_commentfilter_generic_comment.prompty
judge_comment_confidenceprompt_judge_comment_confidencejudge_comment_confidence.prompty
merge_commentssummarize_prompt_merge_commentsmerge_comments.prompty
generate_correlation_idsprompt_generate_correlation_idsgenerate_correlation_ids.prompty

Evaluator kinds

  • 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%.

Recordings

  • Stored in evals/recordings/<workflow_name>/<testcase_id>.json
  • Gitignored — each dev builds their own cache
  • If you change a test file, delete its recording or run without --use-recording
  • --use-recording on first run makes LLM calls and saves; subsequent runs reuse cached responses

Gotchas

  • Use python 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.
  • Field name mismatch: Test YAML fields must exactly match target function parameter names (excluding testcase and response)
  • Stale recordings: After changing a prompt, delete recordings or run without --use-recording to get fresh results
  • Testcase uniqueness: The testcase field must be unique across all test files in a workflow — it's the cache key
  • Kind validation: The kind in test-config.yaml must be registered in _config_loader.py (prompt or summarize_prompt)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.