Skip to content

Trim dotnet-msbuild skill-menu under 15K char limit - #809

Merged
Evangelink merged 1 commit into
dotnet:mainfrom
YuliiaKovalova:ykovalova/trim-msbuild-skill-menu
Jun 24, 2026
Merged

Trim dotnet-msbuild skill-menu under 15K char limit#809
Evangelink merged 1 commit into
dotnet:mainfrom
YuliiaKovalova:ykovalova/trim-msbuild-skill-menu

Conversation

@YuliiaKovalova

Copy link
Copy Markdown
Member

Problem

The plugin loader rejects the dotnet-msbuild plugin:

❌ [plugin:dotnet-msbuild] Plugin 'dotnet-msbuild' rendered skill-menu size is 16,679 characters — maximum is 15,000.

Change

Trim two categories of content from all 18 skill descriptions that do not help an agent decide when to invoke a skill:

  1. INVOKES: clauses — these enumerate which MCP tools / fallback shell commands a skill runs internally. That's implementation mechanics, not routing signal.
  2. The boilerplate Only activate in MSBuild/.NET build context. repeated verbatim in all 18 skills — redundant, since every description is already saturated with MSBuild-specific terms and each DO NOT USE FOR still excludes non-MSBuild build systems.

The high-signal routing content — capability summary, USE FOR: triggers, and DO NOT USE FOR: cross-references — is fully preserved.

Result

Before After
Aggregate skill description chars 14,551 12,536
Rendered skill-menu 16,679 14,664

Now under the 15,000 limit. Per-skill descriptions remain within the 1,024-char spec limit (max 975).

The rendered skill-menu for the dotnet-msbuild plugin was 16,679 characters, exceeding the 15,000 limit. Trim two categories of content from the 18 skill descriptions that do not help agents decide when to invoke a skill:

- Remove INVOKES: clauses (which MCP tools / fallback shell commands a skill runs internally) — implementation mechanics, not routing signal.
- Remove the boilerplate 'Only activate in MSBuild/.NET build context.' repeated verbatim in all 18 skills — redundant, since every description is already MSBuild-specific and each DO NOT USE FOR still excludes non-MSBuild build systems.

USE FOR triggers and DO NOT USE FOR cross-references are preserved. Aggregate skill description size drops from 14,551 to 12,536 chars (rendered menu 16,679 -> 14,664).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 23, 2026 16:55

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

Reduces the rendered dotnet-msbuild plugin skill-menu size to fit under the 15,000 character loader limit by trimming low-signal boilerplate from skill front-matter descriptions, while preserving the routing-relevant USE FOR: / DO NOT USE FOR: content.

Changes:

  • Removed the repeated “Only activate in MSBuild/.NET build context.” sentence from all dotnet-msbuild skill description: front matter strings.
  • Removed INVOKES: clauses from skill description: front matter strings to avoid leaking internal mechanics and reduce size.
  • Kept per-skill routing signals (capability summary, triggers, and cross-skill references) intact.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated no comments.

Show a summary per file
File Description
plugins/dotnet-msbuild/skills/target-authoring/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/resolve-project-references/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/property-patterns/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/msbuild-server/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/msbuild-modernization/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/msbuild-antipatterns/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/item-management/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/incremental-build/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/including-generated-files/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/extension-points/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/eval-performance/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/directory-build-organization/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/check-bin-obj-clash/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/build-perf-diagnostics/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/build-perf-baseline/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/build-parallelism/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/binlog-generation/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.
plugins/dotnet-msbuild/skills/binlog-failure-analysis/SKILL.md Trimmed front-matter description to reduce aggregated skill-menu size.

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

@YuliiaKovalova

Copy link
Copy Markdown
Member Author

/evaluate

@github-actions github-actions Bot added the pr-state/ready-for-eval PR is mergeable and awaiting evaluation label Jun 23, 2026
github-actions Bot added a commit that referenced this pull request Jun 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
msbuild-antipatterns Review MSBuild files for anti-patterns and style issues 4.7/5 → 4.3/5 🔴 ✅ msbuild-antipatterns; tools: skill, glob / ⚠️ NOT ACTIVATED ✅ 0.09
msbuild-antipatterns Add a module to an F# project 5.0/5 → 5.0/5 ⚠️ NOT ACTIVATED ✅ 0.09 [1]
msbuild-antipatterns Fix broken file order causing FS0039 4.0/5 → 4.0/5 ⚠️ NOT ACTIVATED ✅ 0.09 [2]
msbuild-antipatterns Add a signature file to define public API 5.0/5 → 5.0/5 ⚠️ NOT ACTIVATED ✅ 0.09 [3]
eval-performance Analyze MSBuild evaluation performance issues 5.0/5 → 5.0/5 ✅ eval-performance; tools: skill ✅ 0.11 [4]
item-management Diagnose item group and batching issues 5.0/5 → 5.0/5 ✅ item-management; tools: skill ✅ 0.11 [5]
item-management Diagnose cascading item and batching bugs in code generation pipeline 4.3/5 → 5.0/5 🟢 ✅ item-management; tools: skill, glob, bash / ✅ item-management; tools: skill, bash ✅ 0.11 [6]
item-management Fix item management anti-patterns 3.7/5 → 4.7/5 🟢 ✅ item-management; tools: skill, bash / ⚠️ NOT ACTIVATED ✅ 0.11 [7]
directory-build-organization Organize build infrastructure for a multi-project repo 3.7/5 → 4.7/5 🟢 ✅ directory-build-organization; tools: skill, create, edit, bash / ✅ directory-build-organization; tools: skill, create, edit, bash, task, read_agent 🟡 0.20 [8]
incremental-build Analyze incremental build issues 3.0/5 → 3.0/5 ⚠️ NOT ACTIVATED ✅ 0.13 [9]
target-authoring Diagnose custom target build regression 3.3/5 → 5.0/5 🟢 ✅ target-authoring; tools: skill / ✅ target-authoring; tools: skill, bash 🟡 0.23 [10]
target-authoring Diagnose broken SDK target chain across files 3.0/5 → 3.3/5 🟢 ✅ target-authoring; tools: skill / ✅ target-authoring; tools: skill, glob 🟡 0.23 [11]
target-authoring Fix custom target anti-patterns 4.0/5 → 4.0/5 ✅ target-authoring; tools: skill, bash / ⚠️ NOT ACTIVATED 🟡 0.23 [12]
msbuild-server Recommend MSBuild Server for slow CLI incremental builds 2.7/5 → 4.7/5 🟢 ✅ msbuild-server; tools: skill ✅ 0.15 [13]
build-perf-baseline Establish build performance baseline and recommend optimizations 3.0/5 → 2.7/5 ⏰ 🔴 ✅ build-perf-baseline; tools: skill, binlog-binlog_overview, binlog-binlog_diagnose, binlog-binlog_incremental_analysis, binlog-binlog_expensive_targets, binlog-binlog_expensive_tasks, binlog-binlog_build_graph, binlog-binlog_target_reasons, binlog-binlog_analyzer_summary, binlog-binlog_search, binlog-binlog_expensive_projects, binlog-binlog_double_writes, binlog-binlog_explain_property, binlog-binlog_imports, binlog-binlog_search_files, binlog-binlog_files, binlog-binlog_evaluations, binlog-binlog_evaluation_global_properties, binlog-binlog_evaluation_properties / ⚠️ NOT ACTIVATED 🟡 0.37 [14]
property-patterns Diagnose shared build property issues 5.0/5 → 5.0/5 ✅ property-patterns; tools: skill, glob ✅ 0.13 [15]
property-patterns Diagnose multi-level property hierarchy bugs 4.3/5 → 4.3/5 ✅ property-patterns; tools: glob, skill / ✅ property-patterns; tools: skill, glob ✅ 0.13 [16]
property-patterns Fix shared property configuration 5.0/5 → 5.0/5 ✅ property-patterns; tools: glob, skill / ⚠️ NOT ACTIVATED ✅ 0.13 [17]
binlog-generation Build project with /bl flag 1.3/5 → 5.0/5 🟢 ✅ binlog-generation; tools: skill / ⚠️ NOT ACTIVATED 🟡 0.32 [18]
binlog-generation Build with /bl in PowerShell 3.3/5 → 5.0/5 🟢 ✅ binlog-generation; tools: skill, glob / ⚠️ NOT ACTIVATED 🟡 0.32 [19]
binlog-generation Build multiple configurations with unique binlogs 3.7/5 → 3.7/5 ✅ binlog-generation; tools: skill / ⚠️ NOT ACTIVATED 🟡 0.32 [20]
resolve-project-references Explain misleading ResolveProjectReferences time 3.7/5 → 5.0/5 🟢 ✅ resolve-project-references; tools: skill ✅ 0.14 [21]
extension-points Diagnose build extension point failures 3.0/5 → 5.0/5 🟢 ✅ extension-points; tools: skill, edit / ✅ extension-points; tools: glob, skill, edit ✅ 0.11 [22]
extension-points Diagnose NuGet package and repo extension conflicts 3.0/5 → 3.0/5 ✅ extension-points; tools: skill, edit ✅ 0.11 [23]
extension-points Fix extension point anti-patterns 4.7/5 → 5.0/5 🟢 ✅ extension-points; tools: skill / ⚠️ NOT ACTIVATED ✅ 0.11 [24]
build-perf-diagnostics Diagnose slow build for a small project 4.0/5 → 4.0/5 ⚠️ NOT ACTIVATED 🟡 0.21 [25]
check-bin-obj-clash Diagnose bin/obj output path clashes 4.3/5 → 4.7/5 🟢 ✅ check-bin-obj-clash; tools: skill, binlog-binlog_overview, binlog-binlog_evaluations, binlog-binlog_double_writes, binlog-binlog_evaluation_properties, binlog-binlog_evaluation_global_properties, binlog-binlog_properties / ✅ check-bin-obj-clash; tools: glob, skill, binlog-binlog_double_writes, binlog-binlog_evaluations, binlog-binlog_properties, binlog-binlog_evaluation_global_properties, binlog-binlog_evaluation_properties, binlog-binlog_overview ✅ 0.14 [26]
binlog-failure-analysis Diagnose build failures from binlog only (no source files) 4.0/5 → 4.0/5 ⚠️ NOT ACTIVATED ✅ 0.11 [27]
msbuild-modernization Modernize legacy project to SDK-style 5.0/5 → 5.0/5 ✅ msbuild-modernization; tools: skill ✅ 0.06 [28]
including-generated-files Diagnose generated file inclusion failure 3.0/5 → 4.7/5 🟢 ✅ including-generated-files; tools: skill 🟡 0.23
build-parallelism Analyze build parallelism bottlenecks 4.0/5 → 4.3/5 🟢 ✅ build-parallelism; tools: glob, binlog-binlog_build_graph, binlog-binlog_overview, binlog-binlog_errors, edit, binlog-binlog_expensive_projects, binlog-binlog_diagnose, skill / ⚠️ NOT ACTIVATED ✅ 0.20 [29]

[1] (Plugin) Quality unchanged but weighted score is -2.6% due to: tokens (107352 → 186307)
[2] (Plugin) Quality unchanged but weighted score is -3.2% due to: tokens (72719 → 117342)
[3] (Plugin) Quality unchanged but weighted score is -5.4% due to: quality, tokens (80469 → 123994)
[4] ⚠️ High run-to-run variance (CV=93%) — consider re-running with --runs 5
[5] (Plugin) Quality unchanged but weighted score is -5.4% due to: tokens (40368 → 80472)
[6] ⚠️ High run-to-run variance (CV=494%) — consider re-running with --runs 5. (Plugin) Quality improved but weighted score is -21.1% due to: judgment, quality, tokens (141917 → 180401)
[7] ⚠️ High run-to-run variance (CV=147%) — consider re-running with --runs 5
[8] ⚠️ High run-to-run variance (CV=95%) — consider re-running with --runs 5. (Plugin) Quality dropped but weighted score is +2.7% due to: efficiency metrics
[9] ⚠️ High run-to-run variance (CV=91%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -5.9% due to: quality, tokens (26205 → 38657)
[10] ⚠️ High run-to-run variance (CV=57%) — consider re-running with --runs 5
[11] ⚠️ High run-to-run variance (CV=1119%) — consider re-running with --runs 5. (Isolated) Quality improved but weighted score is -5.3% due to: tokens (73700 → 137451), time (55.9s → 71.8s)
[12] ⚠️ High run-to-run variance (CV=3154%) — consider re-running with --runs 5
[13] ⚠️ High run-to-run variance (CV=54%) — consider re-running with --runs 5
[14] ⚠️ High run-to-run variance (CV=100%) — consider re-running with --runs 5
[15] (Plugin) Quality unchanged but weighted score is -3.5% due to: tokens (146903 → 254524)
[16] ⚠️ High run-to-run variance (CV=134%) — consider re-running with --runs 5
[17] ⚠️ High run-to-run variance (CV=94%) — consider re-running with --runs 5. (Plugin) Quality unchanged but weighted score is -1.9% due to: tokens (172758 → 240940)
[18] ⚠️ High run-to-run variance (CV=71%) — consider re-running with --runs 5
[19] ⚠️ High run-to-run variance (CV=231%) — consider re-running with --runs 5
[20] ⚠️ High run-to-run variance (CV=176%) — consider re-running with --runs 5
[21] ⚠️ High run-to-run variance (CV=55%) — consider re-running with --runs 5
[22] ⚠️ High run-to-run variance (CV=189%) — consider re-running with --runs 5
[23] ⚠️ High run-to-run variance (CV=76%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -5.8% due to: tokens (73505 → 163640), time (66.6s → 82.6s)
[24] ⚠️ High run-to-run variance (CV=702%) — consider re-running with --runs 5
[25] ⚠️ High run-to-run variance (CV=95%) — consider re-running with --runs 5
[26] ⚠️ High run-to-run variance (CV=196%) — consider re-running with --runs 5
[27] ⚠️ High run-to-run variance (CV=604%) — consider re-running with --runs 5. (Isolated) Quality unchanged but weighted score is -11.3% due to: judgment, quality
[28] (Plugin) Quality unchanged but weighted score is -3.4% due to: tokens (81698 → 142225), time (37.5s → 47.2s)
[29] ⚠️ High run-to-run variance (CV=497%) — consider re-running with --runs 5

timeout — run(s) hit the (360s) 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 809 in dotnet/skills, download eval artifacts with gh run download 28043132362 --repo dotnet/skills --pattern "skill-validator-results-*" --dir ./eval-results, then fetch https://raw.githubusercontent.com/dotnet/skills/5385ef282e6c4e31da8f46676f473f8f5f1a6e07/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

@github-actions github-actions Bot added waiting-on-review PR state label and removed pr-state/ready-for-eval PR is mergeable and awaiting evaluation labels Jun 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

✅ Evaluation passed for 5385ef2. cc @ViktorHofer @JanKrivanek @dotnet/skills-msbuild-reviewers — please review.

@Evangelink
Evangelink merged commit 67e2a47 into dotnet:main Jun 24, 2026
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-review PR state label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants