Skip to content

Improve dotnet-test eval coverage and efficiency - #917

Merged
Evangelink merged 21 commits into
dotnet:mainfrom
Evangelink:issue-899-dotnet-test-followup
Jul 24, 2026
Merged

Improve dotnet-test eval coverage and efficiency#917
Evangelink merged 21 commits into
dotnet:mainfrom
Evangelink:issue-899-dotnet-test-followup

Conversation

@Evangelink

@Evangelink Evangelink commented Jul 20, 2026

Copy link
Copy Markdown
Member

Summary

Addresses remaining high-confidence work from #899:

  • bounds code-testing research and implementation to the requested scope
  • removes default discovery fan-out and repeated workspace inventories
  • reuses research artifacts and loads deep examples only when needed
  • strengthens canonical Vally eval.yaml coverage for code-testing-agent, find-untested-sources, and grade-tests
  • covers TypeScript test generation plus the Python sparse-workspace integrity guardrail
  • adds discriminating C# namespace and TypeScript source-pairing fixtures, including nested-namespace disambiguation
  • removes fixture trees left orphaned by retired scenarios

The four remaining coverage gaps are non-user-invocable reference skills and need dependency-level evaluation design rather than direct-activation tests.

Checks

  • skill-validator check --plugin ./plugins/dotnet-test passes for all 20 skills and 10 agents
  • eval YAML and fixture references parse successfully
  • the expanded namespace fixture builds and Roslyn reports the expected paired/unpaired paths
  • final Vally evaluation passes all three changed skills:
    • code-testing-agent: +40.0% [40.0%, 40.0%], 2/0/0
    • find-untested-sources: +40.0% [40.0%, 40.0%], 3/0/0
    • grade-tests: +70.0% [14.9%, 125.1%], 4/0/0
  • the independent five-model cross-family run reported positive preference in every cell; code-testing-agent was credibly better for 3/5 models and find-untested-sources for 2/5

Refs #899

Address remaining high-confidence items from dotnet#899 by bounding the code-testing pipeline and adding eval coverage for grade-tests and find-untested-sources.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: e430fee9-d3df-4ef5-85a4-745ae4b17046
Copilot AI review requested due to automatic review settings July 20, 2026 08:14
@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves the dotnet-test plugin’s evaluation coverage and reduces agent/runtime cost by tightening the code-testing-agent RPI pipeline to use bounded discovery and reusable artifacts, and by adding new eval scenarios for find-untested-sources and cross-family (Vally) coverage for grade-tests.

Changes:

  • Added new eval.yaml + eval.vally.yaml coverage for find-untested-sources (including fixtures).
  • Added Vally coverage for grade-tests.
  • Updated code-testing-agent and its sub-agents to bound scope, avoid whole-repo inventories, reuse .testagent/* artifacts, and load deep examples only when needed.
Show a summary per file
File Description
tests/dotnet-test/grade-tests/eval.vally.yaml Adds Vally capability eval coverage for grade-tests.
tests/dotnet-test/find-untested-sources/eval.yaml Adds skill-validator eval scenarios for find-untested-sources (C# pairing + non-C# rejection).
tests/dotnet-test/find-untested-sources/eval.vally.yaml Adds Vally capability eval scenario for find-untested-sources.
tests/dotnet-test/find-untested-sources/fixtures/pairing-repo/tests/Store.Tests/Store.Tests.csproj Adds test-project fixture for pairing analysis.
tests/dotnet-test/find-untested-sources/fixtures/pairing-repo/tests/Store.Tests/CustomerServiceTests.cs Adds paired test fixture to ensure one source is detected as “tested”.
tests/dotnet-test/find-untested-sources/fixtures/pairing-repo/src/Store/Store.csproj Adds production-project fixture for pairing analysis.
tests/dotnet-test/find-untested-sources/fixtures/pairing-repo/src/Store/OrderProcessor.cs Adds intentionally-unpaired source fixture to be detected as “untested”.
tests/dotnet-test/find-untested-sources/fixtures/pairing-repo/src/Store/CustomerService.cs Adds paired production source fixture.
plugins/dotnet-test/skills/code-testing-agent/SKILL.md Updates the user-facing pipeline docs to emphasize bounded context and reuse of pairing artifacts.
plugins/dotnet-test/agents/code-testing-researcher.agent.md Refactors researcher behavior toward bounded scope + cheaper discovery paths.
plugins/dotnet-test/agents/code-testing-planner.agent.md Refines planner guidance to rely on research artifacts and avoid embedding templates.
plugins/dotnet-test/agents/code-testing-implementer.agent.md Refines implementer guidance to read only what’s needed per phase and avoid redundant reads.
plugins/dotnet-test/agents/code-testing-generator.agent.md Updates generator guidance to minimize extension/example loading and avoid rescanning workspaces.

Copilot's findings

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 13/13 changed files
  • Comments generated: 4

Comment thread tests/dotnet-test/grade-tests/eval.vally.yaml Outdated
Comment thread tests/dotnet-test/find-untested-sources/eval.yaml Outdated
Comment thread tests/dotnet-test/find-untested-sources/eval.vally.yaml Outdated
Comment thread plugins/dotnet-test/agents/code-testing-researcher.agent.md
@github-actions

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
code-testing-agent Generate tests for ContosoUniversity ASP.NET Core MVC app 3.0/5 → 3.0/5 ✅ code-testing-agent; tools: skill / ✅ code-testing-agent; tools: skill, task, read_agent 🟡 0.23 [1]
code-testing-agent Generate pytest tests for the Flask tasks API (Python polyglot) 4.7/5 → 4.3/5 🔴 ✅ code-testing-agent; tools: skill 🟡 0.23 [2]
code-testing-agent Generate Vitest tests for the shopping-cart library (TypeScript polyglot) 5.0/5 → 5.0/5 ✅ code-testing-agent; tools: skill 🟡 0.23 [3]
code-testing-agent Does not revert a gutted-looking workspace (workspace integrity) 5.0/5 → 5.0/5 ⚠️ NOT ACTIVATED 🟡 0.23 [4]
find-untested-sources Identify unpaired C# source files and suggest a test location 4.0/5 → 4.0/5 ⚠️ NOT ACTIVATED 🟡 0.33 [5]
find-untested-sources Reject non-C# source discovery 4.0/5 → 3.7/5 🔴 ℹ️ not activated (expected) 🟡 0.33 [6]
grade-tests Grade a curated list of MSTest tests with mixed quality 3.7/5 → 4.7/5 🟢 ✅ grade-tests; tools: skill, glob / ✅ grade-tests; tools: skill, bash, glob 🟡 0.20
grade-tests Grade pytest test methods using the same rubric 5.0/5 → 4.7/5 🔴 ✅ grade-tests; tools: skill / ✅ grade-tests; tools: skill, glob 🟡 0.20 [7]
grade-tests Decline to grade the entire workspace when no test list is provided 1.0/5 → 2.0/5 🟢 ✅ grade-tests; tools: skill, glob / ✅ grade-tests; tools: skill 🟡 0.20 [8]
grade-tests Grade Go table-driven tests without misreading the loop as branching 4.3/5 → 4.0/5 🔴 ✅ grade-tests; tools: skill, glob 🟡 0.20 [9]
grade-tests Grade tests when the production code under test is unavailable 4.0/5 → 4.0/5 ✅ grade-tests; tools: skill / ✅ grade-tests; tools: skill, bash, glob 🟡 0.20 [10]

[1] ⚠️ High run-to-run variance (CV=79%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -15.5% due to: judgment, quality, tokens (1117945 → 1397080)
[2] ⚠️ High run-to-run variance (CV=81%) — consider re-running with --runs 5
[3] ⚠️ High run-to-run variance (CV=296%) — consider re-running with --runs 5
[4] ⚠️ High run-to-run variance (CV=104%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -4.2% due to: quality
[5] ⚠️ High run-to-run variance (CV=142%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -10.1% due to: judgment
[6] ⚠️ High run-to-run variance (CV=145%) — consider re-running with --runs 5
[7] ⚠️ High run-to-run variance (CV=564%) — consider re-running with --runs 5. (Plugin) Quality dropped but weighted score is +1.4% due to: completion (✗ → ✓)
[8] ⚠️ High run-to-run variance (CV=509%) — consider re-running with --runs 5. (Plugin) Quality unchanged but weighted score is -2.7% due to: time (29.0s → 42.9s), quality, tokens (68075 → 79518)
[9] ⚠️ High run-to-run variance (CV=741%) — consider re-running with --runs 5
[10] (Plugin) Quality unchanged but weighted score is -9.2% due to: tokens (26435 → 141728), tool calls (2 → 6), time (17.6s → 42.5s)

Model: claude-opus-4.6 | Judge: claude-opus-4.6

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 917 in dotnet/skills, download eval artifacts with gh run download 29727415666 --repo dotnet/skills --pattern "skill-validator-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/c8c6687ff36a126e98477e44c8feb8b6b7a6c3ac/eng/skill-validator/src/docs/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 9c5c1a52-4f99-49d6-b503-1bec713a6e98
Copilot AI review requested due to automatic review settings July 20, 2026 09:21
@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 17/17 changed files
  • Comments generated: 1

Comment thread plugins/dotnet-test/skills/find-untested-sources/SKILL.md Outdated
@github-actions github-actions Bot added the waiting-on-author PR state label label Jul 20, 2026
@github-actions

Copy link
Copy Markdown
Contributor

👋 @Evangelink — this PR has 5 unresolved review thread(s). When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
code-testing-agent Generate tests for ContosoUniversity ASP.NET Core MVC app 3.3/5 → 3.0/5 🔴 ✅ code-testing-agent; tools: skill / ⚠️ NOT ACTIVATED 🟡 0.26 [1]
code-testing-agent Generate pytest tests for the Flask tasks API (Python polyglot) 4.3/5 → 4.3/5 ✅ code-testing-agent; tools: skill, edit / ⚠️ NOT ACTIVATED 🟡 0.26 [2]
code-testing-agent Generate Vitest tests for the shopping-cart library (TypeScript polyglot) 5.0/5 → 4.7/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.26 [3]
code-testing-agent Does not revert a gutted-looking workspace (workspace integrity) 5.0/5 → 5.0/5 ✅ code-testing-agent; tools: skill / ✅ code-testing-agent; test-gap-analysis; assertion-quality; tools: skill, task, read_agent, edit 🟡 0.26 [4]
find-untested-sources Identify unpaired C# source files and suggest a test location 4.0/5 → 5.0/5 🟢 ✅ find-untested-sources; tools: skill, bash / ✅ find-untested-sources; tools: skill 🟡 0.30 [5]
find-untested-sources Identify unpaired Python source files and suggest a test location 5.0/5 → 5.0/5 ✅ find-untested-sources; tools: skill, bash / ⚠️ NOT ACTIVATED 🟡 0.30 [6]
grade-tests Grade a curated list of MSTest tests with mixed quality 3.7/5 → 4.7/5 🟢 ✅ grade-tests; tools: skill, glob / ✅ grade-tests; tools: skill, glob, bash 🟡 0.21
grade-tests Grade pytest test methods using the same rubric 5.0/5 → 5.0/5 ✅ grade-tests; tools: skill / ✅ grade-tests; tools: skill, glob 🟡 0.21 [7]
grade-tests Decline to grade the entire workspace when no test list is provided 1.0/5 → 3.7/5 🟢 ✅ grade-tests; tools: skill, glob / ✅ grade-tests; tools: skill 🟡 0.21 [8]
grade-tests Grade Go table-driven tests without misreading the loop as branching 5.0/5 → 5.0/5 ✅ grade-tests; tools: skill 🟡 0.21
grade-tests Grade tests when the production code under test is unavailable 4.0/5 → 4.0/5 ✅ grade-tests; tools: skill / ✅ grade-tests; tools: skill, bash, glob 🟡 0.21 [9]

[1] ⚠️ High run-to-run variance (CV=128%) — consider re-running with --runs 5
[2] ⚠️ High run-to-run variance (CV=122%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -21.6% due to: judgment, quality, tokens (209482 → 232679)
[3] ⚠️ High run-to-run variance (CV=65%) — consider re-running with --runs 5
[4] (Plugin) Quality unchanged but weighted score is -10.1% due to: tokens (86054 → 314377), time (42.4s → 113.7s), tool calls (11 → 17), quality
[5] ⚠️ High run-to-run variance (CV=78%) — consider re-running with --runs 5
[6] ⚠️ High run-to-run variance (CV=351%) — consider re-running with --runs 5
[7] ⚠️ High run-to-run variance (CV=827%) — consider re-running with --runs 5
[8] ⚠️ High run-to-run variance (CV=277%) — consider re-running with --runs 5
[9] (Plugin) Quality unchanged but weighted score is -8.4% due to: tokens (26428 → 144198), tool calls (2 → 6), time (16.6s → 39.8s)

Model: claude-opus-4.6 | Judge: claude-opus-4.6

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 917 in dotnet/skills, download eval artifacts with gh run download 29731149764 --repo dotnet/skills --pattern "skill-validator-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/292855a1c8d175f92b04fc4ffca61cf04a8444c6/eng/skill-validator/src/docs/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 9c5c1a52-4f99-49d6-b503-1bec713a6e98
@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

Copilot AI review requested due to automatic review settings July 20, 2026 11:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

Comments suppressed due to low confidence (1)

plugins/dotnet-test/skills/find-untested-sources/SKILL.md:11

  • find-untested-sources no longer sets user-invocable: false / disable-model-invocation: true, so it will now appear in the model-facing skill menu and be eligible for direct routing. That’s a behavioral change compared to other internal helper/reference skills in this plugin (e.g., test-analysis-extensions, code-testing-extensions, filter-syntax, platform-detection) which are explicitly hidden to reduce routing noise and skill-menu budget pressure. If this skill is still primarily an internal pipeline helper, consider restoring the hidden/internal metadata; if it’s intentionally user-facing now, consider whether the broadened “MANDATORY” description could cause unwanted activations and keep the front-matter metadata consistent with the intended exposure.
---
name: find-untested-sources
description: >
  MANDATORY for static requests to find, identify, or list untested source files
  or modules, sources without tests, source-to-test pairing, test-gap worklists,
  or suggested test locations. Invoke even for a tiny package; do not substitute
  manual globbing. Uses Roslyn for C#/.NET and tree-sitter for Python, TS/JS, Go,
  Java, Rust, and Ruby. DO NOT USE FOR: line/branch coverage, CRAP risk, or
  grading existing tests.
license: MIT
---
  • Files reviewed: 18/18 changed files
  • Comments generated: 0 new

@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

@github-actions

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
code-testing-agent Generate tests for ContosoUniversity ASP.NET Core MVC app 3.0/5 → 3.0/5 ✅ code-testing-agent; tools: skill / ✅ code-testing-agent; tools: skill, task, read_agent, glob 🟡 0.32 [1]
code-testing-agent Generate pytest tests for the Flask tasks API (Python polyglot) 4.3/5 → 4.0/5 🔴 ✅ code-testing-agent; tools: skill / ✅ code-testing-agent; tools: skill, task, read_agent, edit 🟡 0.32 [2]
code-testing-agent Generate Vitest tests for the shopping-cart library (TypeScript polyglot) 5.0/5 → 5.0/5 ✅ code-testing-agent; tools: skill / ✅ code-testing-agent; tools: skill, task, read_agent 🟡 0.32 [3]
code-testing-agent Does not revert a gutted-looking workspace (workspace integrity) 5.0/5 → 5.0/5 ✅ code-testing-agent; tools: skill / ✅ code-testing-agent; test-gap-analysis; assertion-quality; tools: skill, task, read_agent 🟡 0.32 [4]
find-untested-sources Identify unpaired C# source files and suggest a test location 4.0/5 → 5.0/5 🟢 ✅ find-untested-sources; tools: skill, bash / ✅ find-untested-sources; tools: skill, glob 🟡 0.38 [5]
find-untested-sources Identify unpaired Python source files and suggest a test location 5.0/5 → 5.0/5 ✅ find-untested-sources; tools: skill, bash / ✅ find-untested-sources; tools: skill 🟡 0.38 [6]
grade-tests Grade a curated list of MSTest tests with mixed quality 4.0/5 → 4.7/5 🟢 ✅ grade-tests; tools: skill, glob 🟡 0.23 [7]
grade-tests Grade pytest test methods using the same rubric 5.0/5 → 5.0/5 ✅ grade-tests; tools: skill 🟡 0.23 [8]
grade-tests Decline to grade the entire workspace when no test list is provided 1.0/5 → 3.7/5 🟢 ✅ grade-tests; tools: skill / ✅ grade-tests; tools: skill, bash 🟡 0.23 [9]
grade-tests Grade Go table-driven tests without misreading the loop as branching 5.0/5 → 5.0/5 ✅ grade-tests; tools: skill, glob / ✅ grade-tests; tools: skill, bash 🟡 0.23
grade-tests Grade tests when the production code under test is unavailable 4.0/5 → 4.0/5 ✅ grade-tests; tools: skill, glob / ✅ grade-tests; tools: skill, bash, glob 🟡 0.23 [10]

[1] ⚠️ High run-to-run variance (CV=360%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -21.8% due to: judgment, quality, tokens (1484628 → 2044573)
[2] ⚠️ High run-to-run variance (CV=85%) — consider re-running with --runs 5
[3] ⚠️ High run-to-run variance (CV=58%) — consider re-running with --runs 5
[4] ⚠️ High run-to-run variance (CV=56%) — consider re-running with --runs 5. (Plugin) Quality unchanged but weighted score is -9.5% due to: tokens (92053 → 391626), time (44.7s → 143.4s), tool calls (11 → 20)
[5] ⚠️ High run-to-run variance (CV=482%) — consider re-running with --runs 5. (Isolated) Quality improved but weighted score is -1.4% due to: completion (✓ → ✗), tokens (69720 → 91848), time (23.2s → 27.9s)
[6] ⚠️ High run-to-run variance (CV=64%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -5.5% due to: tokens (51185 → 119597), time (18.1s → 33.4s)
[7] ⚠️ High run-to-run variance (CV=130%) — consider re-running with --runs 5
[8] ⚠️ High run-to-run variance (CV=189%) — consider re-running with --runs 5
[9] ⚠️ High run-to-run variance (CV=2605%) — consider re-running with --runs 5. (Plugin) Quality unchanged but weighted score is -7.6% due to: tokens (58238 → 114470), time (26.2s → 48.5s), tool calls (8 → 10)
[10] (Isolated) Quality unchanged but weighted score is -9.6% due to: tokens (26470 → 59895), tool calls (2 → 4), time (17.8s → 32.7s)

Model: claude-opus-4.6 | Judge: claude-opus-4.6

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 917 in dotnet/skills, download eval artifacts with gh run download 29738204403 --repo dotnet/skills --pattern "skill-validator-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/7765e90301b4bc74ea29ba2f4261b56e887dc345/eng/skill-validator/src/docs/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

@Evangelink
Evangelink enabled auto-merge (squash) July 20, 2026 12:01
Preserve the bounded test-generation and activation changes while taking the latest delegation syntax and fixture namespace imports from main.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 9c5c1a52-4f99-49d6-b503-1bec713a6e98
Copilot AI review requested due to automatic review settings July 20, 2026 13:43

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 10/10 changed files
  • Comments generated: 1

Comment thread tests/dotnet-test/find-untested-sources/eval.yaml Outdated

@AbhitejJohn AbhitejJohn left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multi-model review (GPT-5.5 + Gemini 3.1 Pro + manual verification). Substance looks good; two items are worth resolving before merge. Details inline.

  • Skill-menu budget: this PR takes dotnet-test from 14,671 to 14,943 of the 15,000 rendered-menu cap (57 chars headroom). Please rerun the skill-validator on a clean worktree since the PR notes it couldn't be verified on the final state.
  • Polyglot vs. C#-only callers: the re-enabled polyglot description isn't matched by the orchestrator instructions, which still restrict find-untested-sources to C#.

Verified clean: regex escaping in both eval formats, Python suggested_test_path (test_pricing.py), no dangling refs from the removed Examples section, generator user-invocable: false consistent with README, and additional_required_skills usage in grade-tests.

Comment thread plugins/dotnet-test/skills/find-untested-sources/SKILL.md
Comment thread plugins/dotnet-test/skills/code-testing-agent/SKILL.md Outdated
Comment thread tests/dotnet-test/find-untested-sources/eval.vally.yaml Outdated
Reconcile dotnet#917's dotnet-test eval configs into the sole eval.yaml convention.

main completed the Vally harness migration (single eval.yaml per skill, zero
eval.vally.yaml). This branch still carried interim eval.vally.yaml files and
old-schema eval.yaml edits, causing conflicts in three dotnet-test skills.

Resolution (honoring both the PR's intent and main's invariant):
- code-testing-agent: kept main's canonical eval.yaml plus the PR's prompt
  additions (standard test-generation workflow lines) via clean auto-merge.
- find-untested-sources: adopted main's canonical eval.yaml and folded in the
  PR's tightened OrderProcessorTests path grader; deleted eval.vally.yaml.
- grade-tests: kept main's redesigned MSTest + no-list scenarios and re-authored
  the PR's three polyglot coverage scenarios (pytest, Go table-driven,
  production-unavailable) in the canonical Vally schema.

All eval.vally.yaml files removed repo-wide (invariant preserved); YAML validated
and markdownlint clean on changed docs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 21, 2026 23:52
Copilot AI review requested due to automatic review settings July 24, 2026 08:59
@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 67/67 changed files
  • Comments generated: 0 new

@github-actions

Copy link
Copy Markdown
Contributor

📊 Skill Evaluation Results

3 skill(s) evaluated — 2 improved, 1 no credible improvement. A skill passes only on a credible improvement over baseline (mean preference > 0 with its 95% CI above 0).

Skill Result Δ Preference [95% CI] W/T/L Quality Baseline
code-testing-agent +20.0% [-234.1%, +274.1%] 1/1/0 4.9/5 4.7/5
find-untested-sources +40.0% [+40.0%, +40.0%] 3/0/0 4.2/5 3.8/5
grade-tests +70.0% [+14.9%, +125.1%] 4/0/0 5.0/5 1.4/5

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 917 in dotnet/skills, download eval artifacts with gh run download 30080906675 --repo dotnet/skills --pattern "vally-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/f5e892e46f67b96b74c703cd2a7d8a2ec8d81fad/eng/vally-adapter/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

@github-actions

Copy link
Copy Markdown
Contributor

📊 Skill Evaluation Results

3 skill(s) evaluated — 2 improved, 1 no credible improvement. A skill passes only on a credible improvement over baseline (mean preference > 0 with its 95% CI above 0).

Skill Result Δ Preference [95% CI] W/T/L Quality Baseline
code-testing-agent +40.0% [+40.0%, +40.0%] 2/0/0 4.9/5 4.7/5
find-untested-sources +26.7% [-30.7%, +84.0%] 2/1/0 4.0/5 3.7/5
grade-tests +55.0% [+7.3%, +102.7%] 4/0/0 5.0/5 1.3/5

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 917 in dotnet/skills, download eval artifacts with gh run download 30082162230 --repo dotnet/skills --pattern "vally-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/f5e892e46f67b96b74c703cd2a7d8a2ec8d81fad/eng/vally-adapter/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

@github-actions

Copy link
Copy Markdown
Contributor

📊 Skill Evaluation Results

3 skill(s) evaluated — 1 improved, 2 no credible improvement. A skill passes only on a credible improvement over baseline (mean preference > 0 with its 95% CI above 0).

Skill Result Δ Preference [95% CI] W/T/L Quality Baseline
code-testing-agent +20.0% [-234.1%, +274.1%] 1/1/0 4.9/5 4.7/5
find-untested-sources +13.3% [-101.4%, +128.1%] 2/0/1 4.4/5 3.5/5
grade-tests +70.0% [+14.9%, +125.1%] 4/0/0 4.2/5 1.2/5

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 917 in dotnet/skills, download eval artifacts with gh run download 30082956386 --repo dotnet/skills --pattern "vally-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/f5e892e46f67b96b74c703cd2a7d8a2ec8d81fad/eng/vally-adapter/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

@github-actions

Copy link
Copy Markdown
Contributor

👋 @Evangelink — this PR has 6 unresolved review thread(s). When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

📊 Skill Evaluation Results

3 skill(s) evaluated — 1 improved, 2 no credible improvement. A skill passes only on a credible improvement over baseline (mean preference > 0 with its 95% CI above 0).

Skill Result Δ Preference [95% CI] W/T/L Quality Baseline
code-testing-agent +20.0% [-234.1%, +274.1%] 1/1/0 4.9/5 3.8/5
find-untested-sources +26.7% [-30.7%, +84.0%] 2/1/0 4.2/5 3.5/5
grade-tests +70.0% [+14.9%, +125.1%] 4/0/0 4.2/5 1.4/5

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 917 in dotnet/skills, download eval artifacts with gh run download 30083086021 --repo dotnet/skills --pattern "vally-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/f5e892e46f67b96b74c703cd2a7d8a2ec8d81fad/eng/vally-adapter/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

Require auditable requirement evidence from generation runs and remove the disambiguation hint from the added Roslyn scenario.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 78c33fd6-c8b7-4053-8257-1845129f79ff
@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

Copilot AI review requested due to automatic review settings July 24, 2026 10:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

Comments suppressed due to low confidence (1)

tests/dotnet-test/grade-tests/eval.yaml:71

  • This scenario now relies on the “production code unavailable” policy (since the fixture omits the production module), but the objective graders don’t currently require the Production-dependent behavior coverage: Unverified disclaimer. Adding a concrete check makes the eval more robust and keeps it aligned with the skill’s contract.
  • Files reviewed: 67/67 changed files
  • Comments generated: 1

Comment thread tests/dotnet-test/grade-tests/eval.yaml Outdated
@github-actions

Copy link
Copy Markdown
Contributor

📊 Skill Evaluation Results

3 skill(s) evaluated — 2 improved, 1 no credible improvement. A skill passes only on a credible improvement over baseline (mean preference > 0 with its 95% CI above 0).

Skill Result Δ Preference [95% CI] W/T/L Quality Baseline
code-testing-agent +20.0% [-234.1%, +274.1%] 1/1/0 5.0/5 3.9/5
find-untested-sources +40.0% [+40.0%, +40.0%] 3/0/0 4.9/5 3.8/5
grade-tests +70.0% [+14.9%, +125.1%] 4/0/0 4.4/5 1.2/5

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 917 in dotnet/skills, download eval artifacts with gh run download 30085354712 --repo dotnet/skills --pattern "vally-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/026a83ff225ef4cbb904cf49f3bfbe27d38b1854/eng/vally-adapter/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

State that production code is unavailable and require the standard Unverified disclaimer for production-dependent behavior.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 78c33fd6-c8b7-4053-8257-1845129f79ff
Copilot AI review requested due to automatic review settings July 24, 2026 10:37
@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 67/67 changed files
  • Comments generated: 0 new

@github-actions

Copy link
Copy Markdown
Contributor

📊 Skill Evaluation Results

3 skill(s) evaluated — 1 improved, 2 no credible improvement. A skill passes only on a credible improvement over baseline (mean preference > 0 with its 95% CI above 0).

Skill Result Δ Preference [95% CI] W/T/L Quality Baseline
code-testing-agent +40.0% [+40.0%, +40.0%] 2/0/0 4.2/5 3.1/5
find-untested-sources +26.7% [-30.7%, +84.0%] 2/1/0 4.2/5 3.3/5
grade-tests +45.0% [-20.6%, +110.6%] 3/1/0 4.7/5 1.4/5

🔍 Full Results - additional metrics and failure investigation steps

To investigate failures, paste this to your AI coding agent:

For PR 917 in dotnet/skills, download eval artifacts with gh run download 30086796105 --repo dotnet/skills --pattern "vally-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/f5ac754b1252c404256c5a2792b313e6f12717dd/eng/vally-adapter/InvestigatingResults.md and follow it to analyze the results.json files. Diagnose each failure, suggest fixes to the eval.yaml and skill content, and tell me what to fix first.

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

@Evangelink

Copy link
Copy Markdown
Member Author

/evaluate

@github-actions

Copy link
Copy Markdown
Contributor

📊 Skill Evaluation Results

3 skill(s) evaluated — 3 improved, 0 no credible improvement. A skill passes only on a credible improvement over baseline (mean preference > 0 with its 95% CI above 0).

Skill Result Δ Preference [95% CI] W/T/L Quality Baseline
code-testing-agent +40.0% [+40.0%, +40.0%] 2/0/0 4.8/5 3.9/5
find-untested-sources +40.0% [+40.0%, +40.0%] 3/0/0 5.0/5 3.8/5
grade-tests +70.0% [+14.9%, +125.1%] 4/0/0 3.7/5 1.2/5

🔍 Full Results - additional metrics and failure investigation steps

▶ Sessions Visualisation -- interactive replay of all evaluation sessions
📊 Session Analytics (preview) -- aggregated metrics across evaluation sessions

@Evangelink
Evangelink merged commit 71414ce into dotnet:main Jul 24, 2026
31 of 33 checks passed
@Evangelink
Evangelink deleted the issue-899-dotnet-test-followup branch July 24, 2026 14:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-author PR state label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants