Add setup-local-sdk skill for global.json paths feature#508
Add setup-local-sdk skill for global.json paths feature#508jfversluis wants to merge 7 commits intomainfrom
Conversation
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>
- 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>
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>
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>
- 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 |
There was a problem hiding this comment.
Pull request overview
Adds a new dotnet skill documenting how to install and use a project-local .NET SDK via global.json paths (requires .NET 10+ host), along with evaluation scenarios and CODEOWNERS coverage for the new folders.
Changes:
- Added
setup-local-sdkskill documentation describing a 12-step workflow (install,global.jsonconfiguration, workloads, team scripts, cleanup). - Added eval scenarios for the new skill under
tests/dotnet/setup-local-sdk/. - Added CODEOWNERS entries for the new skill and test directories.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
plugins/dotnet/skills/setup-local-sdk/SKILL.md |
New skill doc guiding local SDK install + global.json paths configuration + workload/team-script guidance. |
tests/dotnet/setup-local-sdk/eval.yaml |
New eval scenarios validating expected guidance for local SDK setup. |
.github/CODEOWNERS |
Adds owners for the new skill/test directories. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This comment was marked as outdated.
This comment was marked as outdated.
Immediate fixes based on eval results analysis: eval.yaml: 120s) Rationale: All 5 scenarios timed out; runs need more time to produce output - Remove expect_tools constraints: redundant with timeout fix and brittle - Change incompatible-host assertion from '.10.' to '.NET 10.' for specificity SKILL.md: -fsSL (fail fast on HTTP errors) - Improve global.json merge guidance: explicitly document backing up and preserving existing msbuild-sdks/tools properties - Rationale: Addresses 5 unresolved PR review comments Key findings from eval artifact analysis: - Plugin mode produces correct output (skill is good) - Isolated mode times out + no output (timeout is blocker) - Judge JSON-RPC failures are infrastructure issue (not our problem) - Skill activates correctly in all scenarios Next: Wait for CI to run with longer timeouts, then address judge infrastructure. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/evaluate |
Analysis of Eval ResultsI've analyzed the eval artifacts from run 24140442696 using the investigation guide. The 3.0/5 scores mask real skill quality. Root Causes1. Timeout blocks everything (FIXED)
2. Judge infrastructure failures (NOT OUR PROBLEM)
3. Plugin mode works perfectly (STRONG SIGNAL)
Changes Made300s, removed brittle
Next StepsAwait re-evaluation with 300s timeouts1. Summary: The skill works (plugin mode proves it). Scores are suppressed by timeout + judge infrastructure issues. We've fixed what we control (timeouts). The rest requires infrastructure support. |
Status Update (15:02 UTC)All 5 review comments resolved and addressed:
Awaiting re-evaluation with longer timeouts to see if isolated mode can now produce output. Will address any new issues that arise. |
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).Reopened from #506 (fork PR) to allow eval judges to access CI secrets.
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