Skip to content

Update .NET 10→11 migration skill for Preview 2 and 3 - #628

Merged
danmoseley merged 3 commits into
mainfrom
danmose/dotnet11-preview2-3
May 11, 2026
Merged

Update .NET 10→11 migration skill for Preview 2 and 3#628
danmoseley merged 3 commits into
mainfrom
danmose/dotnet11-preview2-3

Conversation

@danmoseley

Copy link
Copy Markdown
Contributor

Summary

Updates the migrate-dotnet10-to-dotnet11 skill to cover breaking changes through .NET 11 Preview 3 (previously Preview 1 only).

Changes

Reference files — 15 new breaking changes added:

  • core-libraries: BackgroundService exceptions stop host, ZipArchive CRC32 validation, TarWriter HardLink, Zstandard APIs in-box
  • cryptography: AIA certificate downloads disabled by default
  • efcore: Cosmos empty collections, MigrationsNotFound throws, Tools/Design dependency removed, EFOptimizeContext removed, SqlVector excluded, SqlClient 7.0 Entra auth, SQLitePCLRaw encryption bundles removed
  • runtime-jit: NativeAOT lib prefix on Unix
  • sdk-msbuild: NETSDK1235 warning, --self-contained parsing fix
  • aspnetcore (new file): OpenAPI v3/Microsoft.OpenApi breaking changes, Blazor Virtualize OverscanCount 3→15

SKILL.md — Updated frontmatter (P1→P3), Step 1 assessment checklist, Step 3 code patterns, Step 4 behavioral changes, Step 5 global.json version, Step 6 verification items, reference tables.

Evals — 4 new scenarios: BackgroundService+ZipCRC32, EF Core SqlClient+Design, ASP.NET Core OpenAPI+Blazor, mTLS AIA certificates.

known-domains.txt — Added \github.com/dotnet/aspnetcore.

Validation

  • ✅ skill-validator check passes (0 errors, 3465 BPE tokens)
  • ✅ markdownlint — no new regressions
  • ✅ All referenced GitHub URLs return HTTP 200

Copilot AI review requested due to automatic review settings May 7, 2026 22:13
@danmoseley

Copy link
Copy Markdown
Contributor 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

Updates the migrate-dotnet10-to-dotnet11 skill content to cover additional .NET 11 breaking changes through Preview 3, including new reference documentation and expanded evaluation scenarios.

Changes:

  • Expanded SKILL.md guidance (assessment checklist, breaking-change patterns, verification items) and updated Preview 3 SDK pin example.
  • Added/updated reference documents for new breaking changes (ASP.NET Core OpenAPI/Microsoft.OpenApi v3, BackgroundService host-stop behavior, ZipArchive CRC32 validation, EF Core/SqlClient, AIA downloads, NativeAOT lib prefix, etc.).
  • Added 4 new eval scenarios and updated known external domains to allow new reference URLs.
Show a summary per file
File Description
tests/dotnet-upgrade/migrate-dotnet10-to-dotnet11/eval.vally.yaml Adds new evaluation stimuli for Preview 2/3 breaking changes (worker services, EF Core, ASP.NET Core, mTLS/AIA).
plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/SKILL.md Updates skill instructions/checklists and reference loading table for Preview 3 coverage.
plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/references/sdk-msbuild-dotnet10to11.md Documents new SDK/MSBuild/CLI breaking changes (NETSDK1235, --self-contained parsing).
plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/references/runtime-jit-dotnet10to11.md Adds NativeAOT Unix lib prefix output change.
plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/references/efcore-dotnet10to11.md Adds EF Core Preview 3 breaking changes (migrations behavior, dependencies, SqlClient, SQLite bundle removal, etc.).
plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/references/cryptography-dotnet10to11.md Adds AIA intermediate cert download behavior change documentation.
plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/references/core-libraries-dotnet10to11.md Adds core library breaking changes (CRC32 validation, BackgroundService behavior, tar hardlinks, Zstandard in-box).
plugins/dotnet-upgrade/skills/migrate-dotnet10-to-dotnet11/references/aspnetcore-dotnet10to11.md New ASP.NET Core reference doc (OpenAPI.NET v3 upgrade, Blazor Virtualize default change).
eng/known-domains.txt Allows new GitHub repo domain prefix used by the added ASP.NET Core reference sources.

Copilot's findings

Tip

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

Comments suppressed due to low confidence (1)

tests/dotnet-upgrade/migrate-dotnet10-to-dotnet11/eval.vally.yaml:329

  • The output-matches regex (Virtualize|OverscanCount|3|15) is overly permissive: it will pass if the model mentions any "3" (e.g., "Preview 3") or any other incidental number, without actually addressing the Virtualize OverscanCount change. Tighten this check by requiring Virtualize/OverscanCount and the new default value (15) in the same regex (e.g., via lookaheads) or by splitting into multiple, more specific output-matches graders.
          pattern: (OpenApi|Microsoft\.OpenApi|v3|3\.2|upgrade)
      - type: output-matches
        config:
          pattern: (Virtualize|OverscanCount|3|15)
      - type: prompt
  • Files reviewed: 9/9 changed files
  • Comments generated: 3

Comment thread tests/dotnet-upgrade/migrate-dotnet10-to-dotnet11/eval.vally.yaml Outdated
@github-actions

github-actions Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

Skill Coverage Report

Plugin Skill Covered Coverage
dotnet-upgrade migrate-dotnet10-to-dotnet11 5/6 83.3%
Uncovered: dotnet-upgrade/migrate-dotnet10-to-dotnet11
  • [WorkflowStep] Step 5: Update infrastructure (line 169)

github-actions Bot added a commit that referenced this pull request May 7, 2026
@github-actions

github-actions Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
migrate-dotnet10-to-dotnet11 Console app with compression and TAR operations 4.0/5 ⏰ → 4.7/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: skill, view ✅ 0.04 [1]
migrate-dotnet10-to-dotnet11 C# 15 compiler breaking changes — Span safe-context, nameof, with() 3.0/5 → 5.0/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: skill, report_intent, view ✅ 0.04
migrate-dotnet10-to-dotnet11 EF Core app with Cosmos DB provider using sync APIs 4.0/5 → 5.0/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: skill, report_intent, view / ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, view ✅ 0.04 [2]
migrate-dotnet10-to-dotnet11 Deployment to older hardware with minimum requirement changes 3.7/5 → 5.0/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, view ✅ 0.04 [3]
migrate-dotnet10-to-dotnet11 Cryptography app using DSA on macOS 3.7/5 → 5.0/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, view ✅ 0.04 [4]
migrate-dotnet10-to-dotnet11 Basic TFM update with Docker and global.json 3.7/5 → 4.7/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: skill / ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill ✅ 0.04 [5]
migrate-dotnet10-to-dotnet11 C# 15 dynamic operator and ref readonly delegate issues 2.3/5 → 5.0/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: skill, report_intent, view / ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, view ✅ 0.04

[1] ⚠️ High run-to-run variance (CV=12.75) — consider re-running with --runs 5
[2] ⚠️ High run-to-run variance (CV=0.86) — consider re-running with --runs 5. (Isolated) Quality improved but weighted score is -30.2% due to: judgment, quality, tokens (13145 → 49433), tool calls (0 → 4)
[3] ⚠️ High run-to-run variance (CV=0.50) — consider re-running with --runs 5
[4] ⚠️ High run-to-run variance (CV=8.55) — consider re-running with --runs 5. (Isolated) Quality improved but weighted score is -24.2% due to: judgment, quality, tokens (13279 → 47780), tool calls (0 → 4)
[5] ⚠️ High run-to-run variance (CV=1.08) — consider re-running with --runs 5

timeout — run(s) hit the (180s) 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

▶ Sessions Visualisation -- interactive replay of all evaluation sessions

Dan Moseley and others added 2 commits May 8, 2026 08:37
Add breaking changes from .NET 11 Preview 2 and Preview 3 to the
migrate-dotnet10-to-dotnet11 skill. The skill previously covered only
Preview 1.

Changes:
- Add 15 new breaking changes across all reference files
- Create new aspnetcore-dotnet10to11.md reference (OpenAPI v3, Blazor)
- Update SKILL.md workflow steps, assessment checklist, and patterns
- Add 4 new eval scenarios covering high-impact P2/P3 changes
- Add github.com/dotnet/aspnetcore to known-domains.txt

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace prompt-echoable 'corrupt' in ZipArchive eval regex with 'checksum'
- Update EF Core reference note to say 'Preview 1 through Preview 3'
- Add missing Source link for Zstandard entry

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 8, 2026 07:38
@danmoseley
danmoseley force-pushed the danmose/dotnet11-preview2-3 branch from a4d8e2e to 4139cc7 Compare May 8, 2026 07:38

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: 9/9 changed files
  • Comments generated: 2

Comment thread tests/dotnet-upgrade/migrate-dotnet10-to-dotnet11/eval.vally.yaml Outdated
- Tighten OverscanCount grader regex to require 'OverscanCount' with
  a number, instead of matching bare '3' anywhere
- Wrap Blazor component snippet in backticks so it renders as code

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

Copy link
Copy Markdown
Contributor Author

/evaluate

@danmoseley
danmoseley enabled auto-merge (squash) May 11, 2026 19:20
@danmoseley
danmoseley merged commit fe11dec into main May 11, 2026
37 checks passed
@danmoseley
danmoseley deleted the danmose/dotnet11-preview2-3 branch May 11, 2026 19:29
@github-actions

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
migrate-dotnet10-to-dotnet11 Console app with compression and TAR operations 5.0/5 → 4.3/5 🔴 ✅ migrate-dotnet10-to-dotnet11; tools: skill, view ✅ 0.05
migrate-dotnet10-to-dotnet11 C# 15 compiler breaking changes — Span safe-context, nameof, with() 3.3/5 → 5.0/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: skill, report_intent, view / ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, view ✅ 0.05
migrate-dotnet10-to-dotnet11 EF Core app with Cosmos DB provider using sync APIs 4.3/5 → 5.0/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, bash, view / ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, view ✅ 0.05 [1]
migrate-dotnet10-to-dotnet11 Deployment to older hardware with minimum requirement changes 2.3/5 → 5.0/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, view ✅ 0.05
migrate-dotnet10-to-dotnet11 Cryptography app using DSA on macOS 3.3/5 → 5.0/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: skill, report_intent, view / ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, view ✅ 0.05 [2]
migrate-dotnet10-to-dotnet11 Basic TFM update with Docker and global.json 3.7/5 → 4.3/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: skill ✅ 0.05 [3]
migrate-dotnet10-to-dotnet11 C# 15 dynamic operator and ref readonly delegate issues 2.0/5 ⏰ → 4.7/5 🟢 ✅ migrate-dotnet10-to-dotnet11; tools: report_intent, skill, view ✅ 0.05

[1] (Isolated) Quality improved but weighted score is -12.4% due to: quality, tokens (13296 → 48909), tool calls (0 → 4)
[2] ⚠️ High run-to-run variance (CV=1.60) — consider re-running with --runs 5. (Isolated) Quality improved but weighted score is -29.1% due to: judgment, quality, tokens (13777 → 47651), tool calls (0 → 4)
[3] ⚠️ High run-to-run variance (CV=1.71) — consider re-running with --runs 5

timeout — run(s) hit the (180s) 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

▶ Sessions Visualisation -- interactive replay of all evaluation sessions

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants