Skip to content

Add .NET refactoring skill - #873

Open
AbhitejJohn wants to merge 58 commits into
mainfrom
add-dotnet-refactoring-skills
Open

Add .NET refactoring skill#873
AbhitejJohn wants to merge 58 commits into
mainfrom
add-dotnet-refactoring-skills

Conversation

@AbhitejJohn

Copy link
Copy Markdown
Collaborator

Summary

Refactoring is a common operation for .NET developers, and a dedicated skill can help agents make these changes in the way .NET teams expect: behavior-preserving, incremental, and validated with build/test gates.

This PR adds two related skills:

  • csharp-refactoring: guides safe C#/.NET refactoring work such as rename, move, extract, inline, split, consolidate/de-duplicate, and modernization while preserving behavior.
  • dotnet-breaking-changes: provides the compatibility guardrails needed when a refactor touches public API, multi-targeting, source-generated/partial code, or InternalsVisibleTo surfaces.

Why these skills

csharp-refactoring focuses on the refactoring workflow itself: establish a green baseline, choose one named operation, find true references, prefer semantics-aware edits, and re-gate after each step. Its reference file expands the operation catalog and maps common refactoring operations to the kinds of changes .NET teams regularly make.

dotnet-breaking-changes covers the .NET-specific surfaces where a change can compile and pass tests while still breaking downstream consumers. Its reference files explain how to inspect and handle:

  • public API gates (PublicAPI.*, ApiCompat, package validation)
  • multi-targeting and #if branches
  • source-generated and partial code
  • friend assemblies via InternalsVisibleTo

Together, the skills let an agent keep refactoring focused on behavior preservation while still checking the .NET compatibility surfaces that matter in real repos.

Validation

  • Added eval coverage for both skills.
  • Included fixture scenarios that exercise rename, extraction, consolidation, public API checks, multi-targeting, generated/partial code, and friend assembly hazards.
  • Ran the skill validator successfully.
  • Verified the eval fixtures build and test successfully in isolated copies.

AbhitejJohn and others added 2 commits July 7, 2026 13:56
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Skill Coverage Report

Plugin Skill Covered Coverage
⚠️ dotnet setup-local-sdk 4/8 50%
Uncovered: dotnet/setup-local-sdk
  • [Pitfall] dotnet app.dll wrong runtime (line 386)
  • [CodePattern] [pscustomobject] (line 301)
  • [CodePattern] [guid] (line 104)
  • [CodePattern] [ordered] (line 301)

@AbhitejJohn

Copy link
Copy Markdown
Collaborator Author

/evaluate

github-actions Bot added a commit that referenced this pull request Jul 8, 2026
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
csharp-refactoring Rename a method across its declaration and every caller 3.0/5 → 1.7/5 🔴 ✅ csharp-refactoring; tools: skill, glob / ✅ csharp-refactoring; tools: skill, read_bash, glob ✅ 0.16 [1]
csharp-refactoring Extract a repeated calculation into a private helper 2.0/5 → 1.7/5 🔴 ✅ csharp-refactoring; tools: grep, skill / ⚠️ NOT ACTIVATED ✅ 0.16 [2]
csharp-refactoring Consolidate a duplicated block into a single shared helper 1.3/5 → 1.0/5 🔴 ✅ csharp-refactoring; tools: skill, glob / ⚠️ NOT ACTIVATED ✅ 0.16 [3]
csharp-refactoring Inline a pass-through wrapper and update callers 2.7/5 → 1.0/5 🔴 ✅ csharp-refactoring; tools: skill, bash / ⚠️ NOT ACTIVATED ✅ 0.16 [4]
csharp-refactoring Merge two near-identical types into one parameterized type 1.0/5 → 1.0/5 ⚠️ NOT ACTIVATED / ✅ csharp-refactoring; tools: bash, read_bash, glob, edit, skill ✅ 0.16 [5]
csharp-refactoring Decline a framework and package upgrade dressed up as a refactor 1.3/5 → 1.0/5 ⏰ 🔴 ℹ️ not activated (expected) ✅ 0.16 [6]
csharp-refactoring Decline a new-feature request dressed up as a refactor 4.7/5 → 3.0/5 ⏰ 🔴 ℹ️ not activated (expected) ✅ 0.16 [7]
csharp-refactoring Keep behavior-changing bug fixes out of a behavior-preserving refactor 3.7/5 ⏰ → 2.3/5 ⏰ 🔴 ℹ️ not activated (expected) ✅ 0.16 [8]
dotnet-breaking-changes Answer a public-API question before consolidating duplicated parsing 2.0/5 → 1.3/5 🔴 ✅ dotnet-breaking-changes; tools: skill, glob / ⚠️ NOT ACTIVATED ✅ 0.10 [9]
dotnet-breaking-changes Add behavior to a shipped public member without breaking the contract 3.3/5 → 2.3/5 🔴 ✅ dotnet-breaking-changes; tools: skill / ⚠️ NOT ACTIVATED ✅ 0.10 [10]
dotnet-breaking-changes Rename a helper referenced from every #if branch of a multi-targeted type 3.0/5 → 3.0/5 ✅ dotnet-breaking-changes; tools: skill / ⚠️ NOT ACTIVATED ✅ 0.10 [11]
dotnet-breaking-changes Rename a member of a partial type that a generated part references 3.0/5 → 2.0/5 🔴 ✅ dotnet-breaking-changes; tools: skill, glob / ⚠️ NOT ACTIVATED ✅ 0.10 [12]
dotnet-breaking-changes Add a new public method that must be correct on every target framework 2.0/5 → 1.0/5 🔴 ✅ dotnet-breaking-changes; tools: bash, glob, skill / ⚠️ NOT ACTIVATED ✅ 0.10 [13]
dotnet-breaking-changes Do not raise breaking-change concerns for a purely internal local rename 5.0/5 → 5.0/5 ℹ️ not activated (expected) ✅ 0.10 [14]

[1] ⚠️ High run-to-run variance (CV=82%) — consider re-running with --runs 5
[2] ⚠️ High run-to-run variance (CV=87%) — consider re-running with --runs 5
[3] ⚠️ High run-to-run variance (CV=109%) — consider re-running with --runs 5
[4] ⚠️ High run-to-run variance (CV=58%) — consider re-running with --runs 5
[5] ⚠️ High run-to-run variance (CV=265%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -15.5% due to: judgment, quality
[6] ⚠️ High run-to-run variance (CV=71%) — consider re-running with --runs 5
[7] ⚠️ High run-to-run variance (CV=122%) — consider re-running with --runs 5. (Isolated) Quality dropped but weighted score is +4.0% due to: tokens (180608 → 105541), tool calls (19 → 11), time (211.0s → 136.3s)
[8] ⚠️ High run-to-run variance (CV=114%) — consider re-running with --runs 5
[9] ⚠️ High run-to-run variance (CV=159%) — consider re-running with --runs 5. (Isolated) Quality dropped but weighted score is +15.2% due to: completion (✗ → ✓), tokens (90688 → 78437)
[10] ⚠️ High run-to-run variance (CV=171%) — consider re-running with --runs 5
[11] ⚠️ High run-to-run variance (CV=105%) — consider re-running with --runs 5
[12] ⚠️ High run-to-run variance (CV=103%) — consider re-running with --runs 5
[13] ⚠️ High run-to-run variance (CV=56%) — consider re-running with --runs 5
[14] ⚠️ High run-to-run variance (CV=106%) — consider re-running with --runs 5

timeout — run(s) hit the (300s) scenario timeout limit; scoring may be impacted by aborting model execution before it could produce its full output (increase via timeout in eval.yaml)

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 873 in dotnet/skills, download eval artifacts with gh run download 28962446218 --repo dotnet/skills --pattern "skill-validator-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/1b3a5bd13db825237d579a4dd9d2c1dfc87d9953/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

@AbhitejJohn
AbhitejJohn marked this pull request as ready for review July 13, 2026 17:18
Copilot AI lite review requested due to automatic review settings July 13, 2026 17:18

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 adds two new .NET-focused skills to the plugins/dotnet plugin—one for behavior-preserving C# refactoring workflows and one for .NET-specific breaking-change/compatibility guardrails—along with eval coverage and fixtures that exercise the key hazards (public API baselines, multi-targeting #if, generated/partial code, and friend assemblies).

Changes:

  • Added csharp-refactoring skill guidance plus an operation catalog reference.
  • Added dotnet-breaking-changes skill guidance plus focused reference docs for the four “hidden surfaces”.
  • Added eval suites + identical lightweight Billing fixture solutions under tests/dotnet/ for both skills; updated CODEOWNERS and dotnet plugin README.
Show a summary per file
File Description
tests/dotnet/dotnet-breaking-changes/tests/Billing.Tests/BillingTests.cs Adds fixture tests used by the breaking-change eval scenarios.
tests/dotnet/dotnet-breaking-changes/tests/Billing.Tests/Billing.Tests.csproj Adds an xUnit test project targeting net10.0 for the breaking-change fixture solution.
tests/dotnet/dotnet-breaking-changes/src/Billing/PublicAPI.Shipped.txt Adds a public API baseline file used by eval prompts/assertions.
tests/dotnet/dotnet-breaking-changes/src/Billing/Pricing.cs Adds pricing/tax types used for refactor/breaking-change exercises.
tests/dotnet/dotnet-breaking-changes/src/Billing/PlatformInfo.cs Adds multi-targeting #if example surface for breaking-change checks.
tests/dotnet/dotnet-breaking-changes/src/Billing/OrderProcessor.cs Adds intentionally-refactorable implementation used by scenarios.
tests/dotnet/dotnet-breaking-changes/src/Billing/Coupons.g.cs.template Adds generator-input template to simulate generated/partial hazards.
tests/dotnet/dotnet-breaking-changes/src/Billing/Coupons.cs Adds hand-authored partial type paired with the generated template.
tests/dotnet/dotnet-breaking-changes/src/Billing/Billing.csproj Adds multi-targeted library project and build-time generation hook.
tests/dotnet/dotnet-breaking-changes/src/Billing/AppSettingsHelper.cs Adds duplicated parsing helpers for public-API consolidation scenarios.
tests/dotnet/dotnet-breaking-changes/Fixture.sln Adds the breaking-change fixture solution container.
tests/dotnet/dotnet-breaking-changes/eval.yaml Adds breaking-change eval scenarios and build/test gates.
tests/dotnet/csharp-refactoring/tests/Billing.Tests/BillingTests.cs Adds fixture tests used by the refactoring eval scenarios.
tests/dotnet/csharp-refactoring/tests/Billing.Tests/Billing.Tests.csproj Adds an xUnit test project targeting net10.0 for the refactoring fixture solution.
tests/dotnet/csharp-refactoring/src/Billing/PublicAPI.Shipped.txt Adds a public API baseline file used by refactoring prompts/assertions.
tests/dotnet/csharp-refactoring/src/Billing/Pricing.cs Adds pricing/tax types used for refactoring exercises.
tests/dotnet/csharp-refactoring/src/Billing/PlatformInfo.cs Adds multi-targeting #if example surface for refactoring checks.
tests/dotnet/csharp-refactoring/src/Billing/OrderProcessor.cs Adds intentionally-refactorable implementation used by scenarios.
tests/dotnet/csharp-refactoring/src/Billing/Coupons.g.cs.template Adds generator-input template to simulate generated/partial hazards.
tests/dotnet/csharp-refactoring/src/Billing/Coupons.cs Adds hand-authored partial type paired with the generated template.
tests/dotnet/csharp-refactoring/src/Billing/Billing.csproj Adds multi-targeted library project and build-time generation hook.
tests/dotnet/csharp-refactoring/src/Billing/AppSettingsHelper.cs Adds duplicated parsing helpers used in refactoring scenarios.
tests/dotnet/csharp-refactoring/Fixture.sln Adds the refactoring fixture solution container.
tests/dotnet/csharp-refactoring/eval.yaml Adds refactoring eval scenarios and build/test gates.
plugins/dotnet/skills/dotnet-breaking-changes/SKILL.md Introduces the breaking-change skill and when/when-not-to-use guidance.
plugins/dotnet/skills/dotnet-breaking-changes/references/source-generation.md Adds detailed guidance for generated/partial code hazards.
plugins/dotnet/skills/dotnet-breaking-changes/references/public-api.md Adds detailed guidance for public API gating and compatibility decisions.
plugins/dotnet/skills/dotnet-breaking-changes/references/multi-targeting.md Adds detailed guidance for multi-targeting and #if branch correctness.
plugins/dotnet/skills/dotnet-breaking-changes/references/internals-visible-to.md Adds detailed guidance for friend-assembly/internal-surface hazards.
plugins/dotnet/skills/csharp-refactoring/SKILL.md Introduces the refactoring skill and a stepwise safety contract.
plugins/dotnet/skills/csharp-refactoring/references/operation-catalog.md Adds a more detailed refactoring operation taxonomy reference.
plugins/dotnet/README.md Updates the dotnet plugin skill list to include the new skills.
eng/known-domains.txt Adds github.com/dotnet/skills to known domains.
.github/CODEOWNERS Adds ownership entries for the new skills and their tests.

Copilot's findings

Tip

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

  • Files reviewed: 34/34 changed files
  • Comments generated: 0

@AbhitejJohn

Copy link
Copy Markdown
Collaborator Author

/evaluate

Comment thread plugins/dotnet/skills/csharp-refactoring/SKILL.md Outdated
@github-actions github-actions Bot added the waiting-on-author PR state label label Jul 13, 2026
@github-actions

Copy link
Copy Markdown
Contributor

👋 @AbhitejJohn — 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 no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
csharp-refactoring Rename a method across its declaration and every caller 3.0/5 → 1.0/5 🔴 ✅ csharp-refactoring; tools: skill, glob / ✅ csharp-refactoring; tools: skill, read_bash, glob, stop_bash ✅ 0.17
csharp-refactoring Extract a repeated calculation into a private helper 2.0/5 → 1.7/5 🔴 ✅ csharp-refactoring; tools: grep, skill / ✅ csharp-refactoring; tools: grep, read_bash, skill ✅ 0.17 [1]
csharp-refactoring Consolidate a duplicated block into a single shared helper 2.0/5 → 1.7/5 🔴 ✅ csharp-refactoring; tools: glob, skill, bash / ⚠️ NOT ACTIVATED ✅ 0.17 [2]
csharp-refactoring Inline a pass-through wrapper and update callers 2.3/5 → 1.0/5 🔴 ✅ csharp-refactoring; tools: skill, bash / ⚠️ NOT ACTIVATED ✅ 0.17
csharp-refactoring Merge two near-identical types into one parameterized type 1.3/5 → 1.0/5 🔴 ✅ csharp-refactoring; tools: skill, edit / ⚠️ NOT ACTIVATED ✅ 0.17 [3]
csharp-refactoring Decline a framework and package upgrade dressed up as a refactor 1.0/5 → 1.0/5 ℹ️ not activated (expected) ✅ 0.17 [4]
csharp-refactoring Decline a new-feature request dressed up as a refactor 4.0/5 → 5.0/5 🟢 ℹ️ not activated (expected) ✅ 0.17 [5]
csharp-refactoring Keep behavior-changing bug fixes out of a behavior-preserving refactor 2.3/5 ⏰ → 3.3/5 ⏰ 🟢 ℹ️ not activated (expected) ✅ 0.17 [6]
dotnet-breaking-changes Answer a public-API question before consolidating duplicated parsing 2.3/5 → 2.3/5 ✅ dotnet-breaking-changes; tools: glob, skill / ⚠️ NOT ACTIVATED ✅ 0.12 [7]
dotnet-breaking-changes Add behavior to a shipped public member without breaking the contract 2.7/5 → 2.3/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.12 [8]
dotnet-breaking-changes Rename a helper referenced from every #if branch of a multi-targeted type 3.3/5 → 2.7/5 🔴 ✅ dotnet-breaking-changes; tools: skill / ⚠️ NOT ACTIVATED ✅ 0.12 [9]
dotnet-breaking-changes Rename a member of a partial type that a generated part references 1.7/5 → 1.7/5 ⚠️ NOT ACTIVATED ✅ 0.12 [10]
dotnet-breaking-changes Add a new public method that must be correct on every target framework 2.0/5 → 2.0/5 ⚠️ NOT ACTIVATED ✅ 0.12 [11]
dotnet-breaking-changes Do not raise breaking-change concerns for a purely internal local rename 4.7/5 → 5.0/5 🟢 ℹ️ not activated (expected) ✅ 0.12 [12]

[1] ⚠️ High run-to-run variance (CV=214%) — consider re-running with --runs 5. (Isolated) Quality dropped but weighted score is +1.7% due to: tokens (79654 → 66925), time (82.4s → 64.0s)
[2] ⚠️ High run-to-run variance (CV=177%) — consider re-running with --runs 5
[3] ⚠️ High run-to-run variance (CV=895%) — consider re-running with --runs 5
[4] ⚠️ High run-to-run variance (CV=98%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -17.3% due to: judgment, quality
[5] ⚠️ High run-to-run variance (CV=379%) — consider re-running with --runs 5. (Isolated) Quality improved but weighted score is -0.9% due to: tokens (151034 → 171934)
[6] ⚠️ High run-to-run variance (CV=404%) — consider re-running with --runs 5. (Plugin) Quality improved but weighted score is -71.1% due to: quality, judgment, tokens (212959 → 255721)
[7] ⚠️ High run-to-run variance (CV=337%) — consider re-running with --runs 5
[8] ⚠️ High run-to-run variance (CV=1202%) — consider re-running with --runs 5
[9] ⚠️ High run-to-run variance (CV=97%) — consider re-running with --runs 5
[10] ⚠️ High run-to-run variance (CV=339%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -48.4% due to: judgment, quality
[11] ⚠️ High run-to-run variance (CV=213%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -15.4% due to: judgment, quality
[12] ⚠️ High run-to-run variance (CV=215%) — consider re-running with --runs 5

timeout — run(s) hit the (300s, 600s) scenario timeout limit; scoring may be impacted by aborting model execution before it could produce its full output (increase via timeout in eval.yaml)

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 873 in dotnet/skills, download eval artifacts with gh run download 29270232281 --repo dotnet/skills --pattern "skill-validator-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/a5265d860095cbd1b989dcaa451c1716de027d77/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

@JanKrivanek JanKrivanek left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Since the skills have nontrivial size - the main concern now is overlap between the two skills + cross-loading cost. csharp-refactoring instructs the agent to also load dotnet-breaking-changes, and the two share material ("stop and escalate," public API, forwarders, partial/generated). The split is defensible (breaking-changes is meant to apply to features/fixes too, not just refactors), but loading two long skills for one refactor is a real context cost that the evals don't yet justify.

AbhitejJohn added a commit that referenced this pull request Jul 17, 2026
Trim study for PR #873: csharp-refactoring-trim is a ~30% shorter rewrite of csharp-refactoring (drops When-to-use/Inputs/Outputs boilerplate + verbose LSP launch prose, compresses the dbc-overlapping hazards section) while preserving every rubric-rewarded behavior. Adds a 'trimmed' experiment arm and bumps runs to 3 so CI generates baseline/skilled/trimmed trajectories for local cross-family re-judging. Eval-only scratch branch; not part of the PR.

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

Copilot-Session: 3c9f9823-7f2f-4f7d-9d1b-f2b9e7a20c60
@github-actions

Copy link
Copy Markdown
Contributor

👋 @AbhitejJohn — 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 no-stale label to silence further pings.)

AbhitejJohn added a commit that referenced this pull request Jul 17, 2026
Robustness probe for the csharp-refactoring trim: all prior CI trajectories
were executed by claude-opus-4.6. Flip executor to gpt-5.5 (GPT family) and
CI judge to claude-opus-4.8 so the (executor, judge) pair stays cross-family.
Tests whether trimmed-vs-current non-inferiority holds under a different model
family. Eval-branch only; not on PR #873.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3c9f9823-7f2f-4f7d-9d1b-f2b9e7a20c60
AbhitejJohn added a commit that referenced this pull request Jul 20, 2026
Closes the 'refactoring-only endpoint too narrow' risk flagged by the
cross-family rubber-duck. Adds two boundary stimuli never used in trim tuning:
  9. Separate a smuggled behavior change from a requested rename (rename +
     smuggled 10%->12% discount change) -> should separate/flag, not bundle.
 10. Recognize a behavior-changing simplification is not a refactor (remove
     free-shipping-over-\ rule under a 'cleanup' framing) -> should not
     silently change observable behavior.
Executor reverted to claude-opus-4.6 / judge gpt-5.5 (re-judge) to match the
stringent Confirm A family where boundary behavior looked weakest.
Eval-branch only; not on PR #873.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3c9f9823-7f2f-4f7d-9d1b-f2b9e7a20c60
Replaces the shipped skill body with the validated v3 variant: judgment-first,
rigor proportional to blast radius, redundant catalog/list scaffolding removed.
~53% smaller (12,811->6,039 chars) with equal or better cross-family eval quality
and no measured regression. Description (929 chars) and all safety rules retained.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3c9f9823-7f2f-4f7d-9d1b-f2b9e7a20c60
@github-actions

Copy link
Copy Markdown
Contributor

👋 @AbhitejJohn — 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 no-stale label to silence further pings.)

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

Copilot-Session: 3c9f9823-7f2f-4f7d-9d1b-f2b9e7a20c60
Copilot AI review requested due to automatic review settings July 22, 2026 06:10
Co-authored-by: webreidi <55603905+webreidi@users.noreply.github.com>

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 review overview

🔵 Needs a closer look

Unresolved moderate guidance and evaluation issues, plus one build-target nit, remain.

Review tier: Lite
Findings: 2 High severity

Pre-existing issues (2)
Severity Finding
High severity tests/​dotnet/​csharp-refactoring/​golden-patches/​rename-generated-member.patch — Align the generated-member golden patch with its scenario View comment
High severity tests/​dotnet/​csharp-refactoring/​eval.yaml — Copy CollisionExamples into the shared fixture View comment
Issues resolved since last review (1)
Severity Finding
High severity tests/​dotnet/​csharp-refactoring/​eval.yaml — Use the xUnit pass marker for this test gate View resolved comment
Previously missed findings (2)

In code that hasn't changed since last review

tests/dotnet/csharp-refactoring/eval.yaml:201

  • This stimulus is exclusively a framework/package upgrade, while the new skill explicitly says not to use it for upgrades. Add expect_activation: false; otherwise a correct routing decision to leave this skill dormant is counted as a missed activation by the eval harness.
    tests/dotnet/csharp-refactoring/eval.yaml:214
  • This stimulus is exclusively a new-feature request, while the new skill explicitly says not to use it for adding features. Add expect_activation: false; otherwise a correct routing decision to leave this skill dormant is counted as a missed activation by the eval harness.

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 review overview

🟡 Changes recommended

Unresolved moderate findings remain in workflow routing, promised skill scope, and evaluation test-count assertions.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Lite
Findings: 2 High severity · 1 Medium severity

New issues introduced by this change (1)
Severity Finding
Medium severity .github/​workflows/​evaluation.yml — Remove duplicate sonnet-5 judge route
Pre-existing issues (2)
Severity Finding
High severity tests/​dotnet/​csharp-refactoring/​golden-patches/​rename-generated-member.patch — Align the generated-member golden patch with its scenario View comment
High severity tests/​dotnet/​csharp-refactoring/​eval.yaml — Copy CollisionExamples into the shared fixture View comment

Comment thread .github/workflows/evaluation.yml Outdated
webreidi and others added 2 commits September 10, 2026 15:12
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

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 review overview

🔵 Needs a closer look

The promised breaking-changes skill is absent, several evaluation graders/fixtures are incorrect or unused, and the workflow includes an unrelated model change.

Review tier: Lite
Findings: 1 High severity

Pre-existing issues (1)
Severity Finding
High severity tests/​dotnet/​csharp-refactoring/​golden-patches/​rename-generated-member.patch — Align the generated-member golden patch with its scenario View comment
Issues resolved since last review (2)
Severity Finding
Medium severity .github/​workflows/​evaluation.yml — Remove duplicate sonnet-5 judge route View resolved comment
High severity tests/​dotnet/​csharp-refactoring/​eval.yaml — Copy CollisionExamples into the shared fixture View resolved comment

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 review overview

🟡 Changes recommended

The generated fixture is syntactically invalid, and unresolved plugin-scope and evaluation issues remain.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Lite
Findings: 1 High severity

New issues introduced by this change (1)
Severity Finding
High severity tests/​dotnet-msbuild/​item-management/​Constants.g.cs — Do not ship a malformed generated C# file
Issues resolved since last review (1)
Severity Finding
High severity tests/​dotnet/​csharp-refactoring/​golden-patches/​rename-generated-member.patch — Align the generated-member golden patch with its scenario View resolved comment
Previously missed findings (1)

In code that hasn't changed since last review

.github/workflows/evaluation.yml:1098

  • This hunk changes the default model for every PR and scheduled evaluation, but the PR description only covers adding refactoring skills. That changes evaluation cost and results outside this feature and makes failures harder to attribute; move the matrix rollout to a separate PR or document and validate it as part of this change.

Comment thread tests/dotnet-msbuild/item-management/Constants.g.cs Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

❌ Evaluation did not complete successfully (the evaluate job reported failure). Check the workflow run logs, then comment /evaluate 88bac3ebe7ae27d8885c10dc10a4ce35a0919096 to retry this exact commit.

2 partial result file(s) were preserved for diagnosis but were not consolidated because the full matrix did not complete.

AbhitejJohn and others added 5 commits September 10, 2026 15:41
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8c45529b-2515-483d-9e51-e6c0b7cb6852
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8c45529b-2515-483d-9e51-e6c0b7cb6852
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8c45529b-2515-483d-9e51-e6c0b7cb6852
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8c45529b-2515-483d-9e51-e6c0b7cb6852

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 review overview

🔵 Needs a closer look

Unresolved scope, routing, and evaluation issues remain.

Review tier: Lite
Findings: None

Issues resolved since last review (1)
Severity Finding
High severity tests/​dotnet-msbuild/​item-management/​Constants.g.cs — Do not ship a malformed generated C# file View resolved comment
Previously missed findings (1)

In code that hasn't changed since last review

.github/workflows/evaluation.yml:1095

  • This changes the default executor for every evaluation from claude-sonnet-4.6 to claude-sonnet-5, affecting unrelated plugin results and making this PR's eval comparison non-comparable. The PR description does not mention this CI-wide behavior change; please split it into a separate change or document and validate the rollout here.

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 review overview

🟡 Changes recommended

Required fixes remain for the evaluation graders, workflow model metadata and scope, missing companion skill, and validation heading.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review tier: Lite
Findings: 1 High severity · 1 Medium severity

New issues introduced by this change (2)
Severity Finding
High severity tests/​dotnet/​csharp-refactoring/​eval.yaml — Make the consolidation grader accept block-bodied methods
Medium severity tests/​dotnet/​csharp-refactoring/​eval.yaml — Verify the old API stays in the shipped surface

Comment thread tests/dotnet/csharp-refactoring/eval.yaml
Comment thread tests/dotnet/csharp-refactoring/eval.yaml
webreidi and others added 2 commits September 10, 2026 15:52
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

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 review overview

🔵 Needs a closer look

Unresolved moderate findings cover the missing companion skill, stale workflow labeling, and insufficient evaluation checks.

Review tier: Lite
Findings: None

Issues resolved since last review (2)
Severity Finding
Medium severity tests/​dotnet/​csharp-refactoring/​eval.yaml — Verify the old API stays in the shipped surface View resolved comment
High severity tests/​dotnet/​csharp-refactoring/​eval.yaml — Make the consolidation grader accept block-bodied methods View resolved comment
Previously missed findings (1)

In code that hasn't changed since last review

.github/workflows/evaluation.yml:1095

  • This changes the default executor from claude-sonnet-4.6 to claude-sonnet-5, but the workflow still writes the comparison report under opus-4.8-vs-sonnet-4.6 later in the same file. New data will therefore be published with a stale model label; update the report identifier with this change or keep this unrelated matrix change separate.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 8c45529b-2515-483d-9e51-e6c0b7cb6852

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 review overview

🔵 Needs a closer look

Unresolved moderate issues affect the promised skill scope and evaluation coverage.

Review tier: Lite
Findings: None

Previously missed findings (1)

In code that hasn't changed since last review

tests/dotnet/csharp-refactoring/eval.yaml:10

  • The eval adds golden patches for extract-subtotal, rename-local, and rename-friend-member, but no stimulus includes those files or asks for those operations; the shared environment copies only the fixture source and test files. The extraction and friend-assembly cases therefore provide no evaluation coverage despite being listed in the PR summary. Add stimuli that exercise these cases or remove the unconsumed patches and narrow the coverage claim.

This issue also appears on line 51 of the same file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-state/evals-in-progress PR evaluations are in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants