Repository navigation
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
This PR has been automatically marked as stale because it has no activity for 30 days. It will be closed if no further activity occurs within another 7 days of this comment. If it is closed, you may reopen it anytime when you're ready again. |
AbhitejJohn
left a comment
There was a problem hiding this comment.
Current-head migration findings: top-level-config (1).
The repository has moved to Vally 0.18 in #1309. This upgrade includes several breaking evaluation-schema changes.
I checked the existing open PRs against the new schema. This PR adds or changes an eval.yaml file that still uses syntax removed or changed by Vally 0.18. Now that #1309 has merged, the eval will not load or will not preserve its intended behavior until these fields are migrated.
I added inline suggestions for the affected field types. Where a field repeats, apply the same mapping to the remaining occurrences. These are schema-only changes and should preserve the existing prompts, graders, activation contracts, tool restrictions, timeouts, and shard assignments. After applying them, please update this branch from main and rerun the repository eval-quality and Vally corpus checks.
The migration mappings, runtime evidence, and validation results are documented in #1309.
Skill Coverage Report
Uncovered:
|
…et-breaking-changes-skill
Add decision table for changes a green build won't catch (optional params, Shipped.txt edits, interface members, sealing, const values), review classification, and three new stimuli: overload-vs-optional-parameter, interface extension with downstream implementer, and green-PR breaking-change review. Fix dormancy tag schema, de-overfit graders, and make golden patches checkable by the eval-quality gate. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fc04e3ed-c253-433f-b33b-6a54ca30cf16
- check_eval_quality: merge suite + stimulus environment files when checking golden patches (mirrors Vally) and reject stimulus redeclaration of a suite dest, which made Vally load zero stimuli. Two new self-tests. - eval.yaml: drop duplicated PublicAPI entries; phrase rename/extend/interface prompts the way users ask them and guard against *REMOVED* baseline edits. - SKILL.md: trigger-led description so the skill activates on user phrasing. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fc04e3ed-c253-433f-b33b-6a54ca30cf16
Co-authored-by: Abhitej John <aajohn@microsoft.com>
…m/dotnet/skills into add-dotnet-breaking-changes-skill
There was a problem hiding this comment.
🟡 Changes recommended
Evaluation inputs expose expected answers, and the graders do not reliably enforce compatibility, requested behavior, or routing and no-op preservation.
6 open issues
Add no-op case to prevent unnecessary rewrites · New Exclude eval.yaml from staged agent workspace · New Add grader-owned checks for the shipped API contract · New Add dormancy test for genuinely excluded fixtures · New Add executable coverage for hexadecimal parsing · New Test multi-target runtime behavior on both frameworks · New
What changed in this PR
Adds a standalone .NET breaking-changes skill to the dotnet plugin, separating compatibility guidance for independent evaluation.
Changes:
- Adds guidance for public APIs, multi-targeting, generated code, and friend assemblies.
- Adds six evaluation scenarios backed by a Billing library and test fixture.
- Registers the skill in the plugin README and assigns ownership.
| File | Description |
|---|---|
| tests/dotnet/dotnet-breaking-changes/tests/Billing.Tests/BillingTests.cs | Adds baseline behavior tests. |
| tests/dotnet/dotnet-breaking-changes/tests/Billing.Tests/Billing.Tests.csproj | Configures the net10.0 test project. |
| tests/dotnet/dotnet-breaking-changes/src/Billing/PublicAPI.Shipped.txt | Records shipped parsing APIs. |
| tests/dotnet/dotnet-breaking-changes/src/Billing/Pricing.cs | Supplies pricing and legacy-wrapper fixtures. |
| tests/dotnet/dotnet-breaking-changes/src/Billing/PlatformInfo.cs | Supplies framework-conditional behavior. |
| tests/dotnet/dotnet-breaking-changes/src/Billing/OrderProcessor.cs | Supplies the local-rename fixture. |
| tests/dotnet/dotnet-breaking-changes/src/Billing/Coupons.g.cs.template | Provides generated partial-type input. |
| tests/dotnet/dotnet-breaking-changes/src/Billing/Coupons.cs | Provides the hand-authored partial type. |
| tests/dotnet/dotnet-breaking-changes/src/Billing/Billing.csproj | Configures multi-targeting and code generation. |
| tests/dotnet/dotnet-breaking-changes/src/Billing/AppSettingsHelper.cs | Supplies duplicated public parsing helpers. |
| tests/dotnet/dotnet-breaking-changes/Fixture.sln | Connects the library and tests. |
| tests/dotnet/dotnet-breaking-changes/eval.yaml | Defines compatibility and restraint scenarios. |
| plugins/dotnet/skills/dotnet-breaking-changes/SKILL.md | Defines routing and compatibility checks. |
| plugins/dotnet/skills/dotnet-breaking-changes/references/source-generation.md | Explains generated-code editing constraints. |
| plugins/dotnet/skills/dotnet-breaking-changes/references/public-api.md | Explains API validation and compatibility techniques. |
| plugins/dotnet/skills/dotnet-breaking-changes/references/multi-targeting.md | Covers conditional branches and target validation. |
| plugins/dotnet/skills/dotnet-breaking-changes/references/internals-visible-to.md | Covers friend-assembly compatibility. |
| plugins/dotnet/README.md | Lists the new skill. |
| .github/CODEOWNERS | Assigns skill and evaluation ownership. |
Review effort: Balanced
Updated evaluation configuration to specify source and destination files. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Version.cs is written by the msbuild-quality-review fixture's design-time build and is not tracked on main. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fc04e3ed-c253-433f-b33b-6a54ca30cf16
…l' into add-dotnet-breaking-changes-skill # Conflicts: # tests/dotnet/dotnet-breaking-changes/eval.yaml
- Stage grader-only xunit checks via grading_environment so agents cannot edit them: shipped parsing consumer, hex parsing, per-TFM Tag/Current, and rename compatibility. - Pin PublicAPI.Shipped.txt for the consolidation scenario. - Add an already-shared no-op stimulus guarded by a full hash snapshot. - Replace the local-rename dormancy case with a private single-target app so the off-target case is genuinely outside the skill's scope. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: fc04e3ed-c253-433f-b33b-6a54ca30cf16
There was a problem hiding this comment.
🟡 Changes recommended
Suite-only validation bypasses, incomplete deterministic grading, and an inaccurate golden reference undermine the evaluation’s reliability.
7 open issues
Suite-only workspaces bypass stimulus patch requirements · New Suite-level fixture files bypass patch applicability validation · New Signature checks allow incompatible Redeem replacement · New Tests do not verify complete unchanged workspace state · New Tests do not verify provider-sensitive overload behavior · New Tests do not require Describe to provide meaningful labels · New Golden answer incorrectly claims Trim changes bool parsing · New
6 resolved since last review
Review effort: Balanced
|
👋 @webreidi — this PR has 7 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 |
Updated breaking changes in eval.yaml to clarify issues with ParseBoolSetting, Coupons, and PlatformInfo. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Prevent platform and parsing mutants from rewriting same-named members on unrelated types, while preserving mutation of conditional declarations within the target type. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 37b06761-a6ee-45b9-a80b-c67cad2c857a
Preserve references inside raw interpolated strings, cover single- and multi-dollar delimiters, and include the inherited global.json in private-app complete-state grading. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 37b06761-a6ee-45b9-a80b-c67cad2c857a
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 37b06761-a6ee-45b9-a80b-c67cad2c857a
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 37b06761-a6ee-45b9-a80b-c67cad2c857a
|
👋 @webreidi — this PR has 1 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 |
📊 Skill and Agent Evaluation Results2 model/target results across 1 target and 2 models — ✅ 0 improved, ➖ 2 results without a clear winner, Measurement identity: evaluated commit Measurement health: 2 expected / 2 observed / 2 written; 0 missing, 0 unexpected, 0 invalid; 0 recovered comparison error slots and 0 unresolved comparison error slots. Objective completion gate: not enabled. Aggregate completion transitions are telemetry only, so this report does not claim that zero objective regressions were proven. A result passes only when preference-eligible distinct-stimulus votes have aggregate net win of at least 20% and an exact one-sided sign-test result of
ℹ️ How to read this report
➖ Improvement signal, unproven — dotnet-breaking-changes (claude-sonnet-5)Why: Net win +27.3% (4W/6T/1L over 11 preference-eligible stimulus vote(s), sign test p=0.188), mean preference +21.5% across 13 paired run(s), 2 dormancy stimulus/stimuli excluded from preference — not credible (sign test p=0.188 > 0.05) Next action: The signal favors the target but is inconsistent; inspect tied or lost scenarios and fix weak behavior. State: Gate evidence: n=11; 4W/6T/1L; d=5; p=0.188; net +27.3%; 2 dormancy excluded Warnings: Activation: isolated 11/11; plugin 9/11 Overfit: Moderate (score 0.25) Repeated-run reliability (not used by the gate): 13 paired runs (5W/7T/1L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. ➖ No preference — dotnet-breaking-changes (gpt-5.6-luna)Why: Net win +0.0% (0W/11T/0L over 11 preference-eligible stimulus vote(s), sign test p=1.000), mean preference +0.0% across 13 paired run(s), 2 dormancy stimulus/stimuli excluded from preference — no improvement Next action: Inspect tie rationales and arm outputs; replace inert scenarios rather than adding repeated runs. State: Gate evidence: n=11; 0W/11T/0L; d=0; p=1.000; net +0.0%; 2 dormancy excluded Warnings: Activation: isolated 11/11; plugin 6/11 Repeated-run reliability (not used by the gate): 13 paired runs (0W/13T/0L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. 🔍 Full Results - all metrics and investigation details
|
|
✅ Evaluation passed for |
…n public API documentation
…pSettingsHelper and ConfigReader
Refactor typeBody function to handle multiple class bodies and return them as a concatenated string. Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
📊 Skill and Agent Evaluation Results2 model/target results across 1 target and 2 models — ✅ 1 improved, ➖ 1 result without a clear winner, Measurement identity: evaluated commit Measurement health: 2 expected / 2 observed / 2 written; 0 missing, 0 unexpected, 0 invalid; 0 recovered comparison error slots and 0 unresolved comparison error slots. Objective completion gate: not enabled. Aggregate completion transitions are telemetry only, so this report does not claim that zero objective regressions were proven. A result passes only when preference-eligible distinct-stimulus votes have aggregate net win of at least 20% and an exact one-sided sign-test result of
ℹ️ How to read this report
➖ No preference — dotnet-breaking-changes (gpt-5.6-luna)Why: Net win +0.0% (0W/11T/0L over 11 preference-eligible stimulus vote(s), sign test p=1.000), mean preference +0.0% across 13 paired run(s), 2 dormancy stimulus/stimuli excluded from preference — no improvement Next action: Inspect tie rationales and arm outputs; replace inert scenarios rather than adding repeated runs. State: Gate evidence: n=11; 0W/11T/0L; d=0; p=1.000; net +0.0%; 2 dormancy excluded Warnings: Activation: isolated 10/11; plugin 6/11 Repeated-run reliability (not used by the gate): 13 paired runs (0W/13T/0L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. ✅ Improved — dotnet-breaking-changes (claude-sonnet-5)Why: Net win +54.5% (7W/3T/1L over 11 preference-eligible stimulus vote(s), sign test p=0.035), mean preference +41.5% across 13 paired run(s), 2 dormancy stimulus/stimuli excluded from preference — credibly better Next action: Fix activation gaps. State: Gate evidence: n=11; 7W/3T/1L; d=8; p=0.035; net +54.5%; 2 dormancy excluded Warnings: Activation: isolated 11/11; plugin 7/11 Overfit: Low (score 0.17) Repeated-run reliability (not used by the gate): 13 paired runs (7W/5T/1L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. 🔍 Full Results - all metrics and investigation details
|
… terse models Luna isolated arm skipped the skill on an internal-helper rename and missed an out-of-solution InternalsVisibleTo friend; it also replaced a requested optional parameter with an overload without stating the causal reason. - Description: trigger on renaming/removing an internal member or helper - Inspect-first: compare InternalsVisibleTo names against the solution - Decision table: row for internal renames visible to external friends - Final answer: required fill-in Compatibility line Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7c2c2860-dc9c-48c9-b8a3-7fc751a2fba9
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7c2c2860-dc9c-48c9-b8a3-7fc751a2fba9
📊 Skill and Agent Evaluation Results2 model/target results across 1 target and 2 models — ✅ 0 improved, ➖ 2 results without a clear winner, Measurement identity: evaluated commit Measurement health: 2 expected / 2 observed / 2 written; 0 missing, 0 unexpected, 0 invalid; 0 recovered comparison error slots and 0 unresolved comparison error slots. Objective completion gate: not enabled. Aggregate completion transitions are telemetry only, so this report does not claim that zero objective regressions were proven. A result passes only when preference-eligible distinct-stimulus votes have aggregate net win of at least 20% and an exact one-sided sign-test result of
ℹ️ How to read this report
➖ Improvement signal, unproven — dotnet-breaking-changes (claude-sonnet-5)Why: Net win +45.5% (6W/4T/1L over 11 preference-eligible stimulus vote(s), sign test p=0.063), mean preference +38.5% across 13 paired run(s), 2 dormancy stimulus/stimuli excluded from preference — not credible (sign test p=0.063 > 0.05) Next action: The signal favors the target but is inconsistent; inspect tied or lost scenarios and fix weak behavior. State: Gate evidence: n=11; 6W/4T/1L; d=7; p=0.063; net +45.5%; 2 dormancy excluded Warnings: Activation: isolated 9/11; plugin 8/11 Overfit: Moderate (score 0.24) Repeated-run reliability (not used by the gate): 13 paired runs (6W/6T/1L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. ➖ Mixed evidence — dotnet-breaking-changes (gpt-5.6-luna)Why: Net win +0.0% (1W/9T/1L over 11 preference-eligible stimulus vote(s), sign test p=0.750), mean preference +0.0% across 13 paired run(s), 2 dormancy stimulus/stimuli excluded from preference — no improvement Next action: Compare winning and losing scenarios to isolate where the target helps versus hurts. State: Gate evidence: n=11; 1W/9T/1L; d=2; p=0.750; net +0.0%; 2 dormancy excluded Warnings: Activation: isolated 9/11; plugin 6/11 Repeated-run reliability (not used by the gate): 13 paired runs (1W/11T/1L). Weak or warning scenarios:
Illustrative judge evidence:
This is one example, not the aggregate verdict. Open Full Results for every judgment. 🔍 Full Results - all metrics and investigation details
|
…premise first Run 40549192176: the friend-assembly and shared-parsing scenarios did not activate the skill in either arm. The InternalsVisibleTo-only wording no longer matched 'rename the internal ... helper', and nothing claimed consolidation requests. Move the already-delegates premise check into inspect-first and keep the escalation list contiguous. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 7c2c2860-dc9c-48c9-b8a3-7fc751a2fba9
|
❌ Evaluation did not complete successfully (the evaluate job reported 2 partial result file(s) were preserved for diagnosis but were not consolidated because the full matrix did not complete. |



Summary
This was pulled out of the C# Refactoring skill as a separate skill to work on an evaluate.
Related issue
Validation
Checklist
eng/known-domains.txtfor any new external domains referenced by skill content.