Add setup-local-sdk skill for global.json paths feature#506
Add setup-local-sdk skill for global.json paths feature#506jfversluis wants to merge 6 commits intodotnet:mainfrom
Conversation
|
Note This PR is from a fork and modifies infrastructure files ( Changes to infrastructure typically need to be submitted from a branch in Please consider recreating this PR from an upstream branch. If you don't have push access to |
Adds a skill that guides users through installing a .NET SDK into a project-local directory using the global.json paths feature (.NET 10+). Includes: - 12-step workflow: verify host, install SDK, configure global.json, gitignore, workloads, team scripts, verification - MAUI and wasm-tools workload support - Cross-platform install scripts (bash + PowerShell) - 7 eval scenarios covering basic setup, exact version, team scripts, troubleshooting, incompatible host, existing .dotnet/, and MAUI workload - CODEOWNERS entry for @jfversluis and @Redth Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
5e7f56d to
a027331
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new .NET skill (setup-local-sdk) under the dotnet plugin to guide users through installing a project-local SDK via global.json paths (requires .NET 10+ host), along with evaluation scenarios and ownership routing.
Changes:
- Added
plugins/dotnet/skills/setup-local-sdk/SKILL.mdwith a 12-step workflow for local SDK installs (including workloads and team scripts). - Added
tests/dotnet/setup-local-sdk/eval.yamlwith 7 evaluation scenarios for the skill. - Updated
.github/CODEOWNERSto assign owners for the new skill and tests.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 6 comments.
| File | Description |
|---|---|
| plugins/dotnet/skills/setup-local-sdk/SKILL.md | New skill documentation/workflow for project-local SDK installs via global.json paths, including workload and script guidance. |
| tests/dotnet/setup-local-sdk/eval.yaml | New eval coverage for the skill’s expected guidance/behavior. |
| .github/CODEOWNERS | Adds owners for the new skill and its tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
/evaluate |
- Add Windows PowerShell equivalents for version check (Step 6) and workload list commands - Fix rollForward description: latestFeature rolls across feature bands, not just patches - Add global.json backup in team install scripts before overwriting - Fix eval scenario: provide explicit host version (9.0.306) in prompt so the incompatible-host test is deterministic Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment was marked as outdated.
This comment was marked as outdated.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
SKILL.md: - Windows -Version flag for exact installs (vs --version on bash) - Workload note includes both ./.dotnet/dotnet and .\.dotnet\dotnet.exe - Cleanup includes Windows Remove-Item equivalent - Revert/delete instructions include both OS forms eval.yaml: - Remove brittle --version assertion; use rubric for version flag check - Increase all scenario timeouts from 120s to 180s (many were timing out) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/evaluate |
This comment was marked as outdated.
This comment was marked as outdated.
239 lines, -52%): - Rewrite description: intent-focused USE FOR/DO NOT USE FOR pattern with activation keywords (MAUI, existing, testing, team) - Remove personas table, checkpoint markers, verbose notes - Condense all sections while preserving complete workflow 5 entries) - Remove redundant Validation section 5 scenarios): - Drop 'Handle existing' (handled naturally by Step 4) - Drop 'Verify SDK resolution' (covered by basic setup rubric) - Add expect_tools: ['bash'] to actionable scenarios - Reduce rubric items to 3-4 per scenario - Incompatible host scenario: 60s timeout (quick response) Expected improvements: - Token usage: -50% (skill is half the size) - Activation: USE FOR keywords match all prompts - Variance: fewer scenarios = less variability - Eval time: -40% (fewer scenarios, shorter timeouts) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/evaluate |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Skill Validation Results
[1] (Isolated) Quality unchanged but weighted score is -1.7% due to: tokens (24374 → 28707), tool calls (3 → 4)
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 |
- MINGW/MSYS/CYGWIN treated as bash-capable (Git Bash), not PowerShell - Remove hardcoded 'Install directory' input row - Make allowPrerelease conditional on preview installs - Make errorMessage conditional on team scripts being created - Add PowerShell equivalent for .gitignore update - Add assertion to incompatible host eval scenario Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/evaluate |
|
Closing this fork-based PR and reopening from an upstream branch. The eval judges can't access secrets from fork PRs, causing all quality scores to default to 3.0/5. Same commits, new PR from |
Skill Validation Results
[1]
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 |
Summary
Adds a new skill that guides users through installing a .NET SDK into a project-local directory using the
global.jsonpathsfeature (new in .NET 10).Files
plugins/dotnet/skills/setup-local-sdk/SKILL.mdtests/dotnet/setup-local-sdk/eval.yaml.github/CODEOWNERS@jfversluisand@redthWhat the skill covers
dotnet-installscriptsglobal.jsonwithpathsand$host$.gitignoreKey design decisions
./.dotnet/dotnetrather than the systemdotnet. Testing revealed thatglobal.jsonpathsroutes SDK resolution correctly for build/run/test, but workload metadata is stored relative to the host's dotnet root, not the resolved SDK root (dotnet/sdk#49825).Related