Add blazor skills to dotnet-blazor plugin - #357
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new dotnet-aspnet plugin entry to the repo and introduces an author-component skill intended to guide idiomatic Blazor component authoring, along with eval coverage for the new skill.
Changes:
- Added
dotnet-aspnetplugin manifest and registered it in both marketplace files + README. - Added
author-componentskill documentation and supporting reference guides (async rules, decomposition, disposal). - Added eval scenarios under
tests/dotnet-aspnet/author-component/to validate skill behavior.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
plugins/dotnet-aspnet/plugin.json |
Introduces the new plugin manifest. |
.github/plugin/marketplace.json |
Registers dotnet-aspnet in the GitHub marketplace index. |
.claude-plugin/marketplace.json |
Mirrors the marketplace registration for Claude. |
README.md |
Adds dotnet-aspnet to the top-level plugin list. |
.github/CODEOWNERS |
Adds ownership rules for the new plugin/tests paths. |
plugins/dotnet-aspnet/skills/author-component/SKILL.md |
Main skill content: Blazor component authoring rules and patterns. |
plugins/dotnet-aspnet/skills/author-component/references/async-programming-rules.md |
Deep-dive reference for async patterns and pitfalls in Blazor. |
plugins/dotnet-aspnet/skills/author-component/references/breaking-down-components.md |
Reference for component decomposition patterns. |
plugins/dotnet-aspnet/skills/author-component/references/component-disposal.md |
Reference for disposal patterns and cleanup rules. |
tests/dotnet-aspnet/author-component/eval.yaml |
Adds eval scenarios/rubrics to measure the new skill. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
4ad6c98 to
9637c51
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new dotnet-blazor plugin with an author-component skill intended to guide component authoring/review toward idiomatic Blazor patterns (parameters, EventCallback, RenderFragment, lifecycle, async, disposal), along with eval coverage.
Changes:
- Introduces
dotnet-blazorplugin manifest and registers it in both marketplaces, CODEOWNERS, and repo README. - Adds the
author-componentskill (SKILL.md) plus reference docs for async rules, decomposition, and disposal patterns. - Adds eval scenarios for the new skill under
tests/dotnet-blazor/author-component.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
plugins/dotnet-blazor/plugin.json |
New plugin manifest for dotnet-blazor. |
plugins/dotnet-blazor/skills/author-component/SKILL.md |
Primary skill guidance for authoring/reviewing Blazor components. |
plugins/dotnet-blazor/skills/author-component/references/async-programming-rules.md |
Deep-dive guidance for async patterns and anti-patterns in Blazor. |
plugins/dotnet-blazor/skills/author-component/references/breaking-down-components.md |
Reference patterns for decomposing UI into components and cascading context. |
plugins/dotnet-blazor/skills/author-component/references/component-disposal.md |
Reference patterns for disposal (IAsyncDisposable), timers, and JS interop cleanup. |
tests/dotnet-blazor/author-component/eval.yaml |
Adds evaluation scenarios/rubrics for the new skill. |
.github/plugin/marketplace.json |
Registers the new plugin in the GitHub marketplace list. |
.claude-plugin/marketplace.json |
Mirrors the marketplace registration for Claude Code. |
.github/CODEOWNERS |
Adds ownership entries for the new plugin and its tests. |
README.md |
Adds dotnet-blazor to the repo’s plugin list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Introduces a new dotnet-blazor plugin to the repo, intended to provide curated guidance/evals for Blazor component authoring patterns (and, as included in the changes, JS interop patterns as well).
Changes:
- Adds the
dotnet-blazorplugin manifest plus marketplace/README/CODEOWNERS wiring. - Adds the
author-componentskill (SKILL.md + reference docs) and authoring-focused eval scenarios. - Adds a
use-js-interopskill and corresponding eval scenarios undertests/dotnet-blazor/use-js-interop/.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
plugins/dotnet-blazor/plugin.json |
Defines the new plugin manifest and skill root. |
plugins/dotnet-blazor/skills/author-component/SKILL.md |
New guidance for idiomatic Blazor component authoring. |
plugins/dotnet-blazor/skills/author-component/references/async-programming-rules.md |
Deep-dive reference for async patterns in Blazor components. |
plugins/dotnet-blazor/skills/author-component/references/breaking-down-components.md |
Deep-dive reference for component decomposition patterns. |
plugins/dotnet-blazor/skills/author-component/references/component-disposal.md |
Deep-dive reference for component disposal patterns. |
tests/dotnet-blazor/author-component/eval.yaml |
Adds eval scenarios validating author-component guidance. |
plugins/dotnet-blazor/skills/use-js-interop/SKILL.md |
New JS interop guidance for Blazor, including module/disposal patterns. |
tests/dotnet-blazor/use-js-interop/eval.yaml |
Adds JS interop eval scenarios. |
.github/plugin/marketplace.json |
Registers dotnet-blazor plugin in the GitHub marketplace manifest. |
.claude-plugin/marketplace.json |
Mirrors the marketplace registration for Claude plugin manifest. |
.github/CODEOWNERS |
Adds ownership entries for the new plugin and tests paths. |
README.md |
Adds dotnet-blazor to the repo’s plugin list. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Adds a new dotnet-blazor plugin to the repo’s skill ecosystem, with Blazor-focused SKILL.md guidance and corresponding eval scenarios, plus validator enhancements to support scenario filtering and improved work-dir handling.
Changes:
- Introduces the
plugins/dotnet-blazorplugin (skills + plan + MCP config) and registers it in marketplace + CODEOWNERS + README. - Adds
tests/dotnet-blazor/**/eval.yamlsuites for multiple Blazor skill areas (component authoring, JS interop, prerendering, auth, etc.). - Extends
eng/skill-validatorto support per-scenarioenvironment, scenario name filtering, and configurable/readable work directories.
Reviewed changes
Copilot reviewed 40 out of 40 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/dotnet-blazor/use-js-interop/eval.yaml | Eval scenarios asserting Blazor JS interop best practices. |
| tests/dotnet-blazor/support-prerendering/eval.yaml | Eval scenarios for prerender-to-interactive correctness patterns. |
| tests/dotnet-blazor/plan-ui-change/eval.yaml | Eval scenarios for UI decomposition/planning behaviors. |
| tests/dotnet-blazor/fetch-and-send-data/eval.yaml | Eval scenario for async data loading/cancellation/error handling patterns. |
| tests/dotnet-blazor/create-blazor-project/eval.yaml | Eval scenarios for choosing correct Blazor template/config for different requirements. |
| tests/dotnet-blazor/coordinate-components/eval.yaml | Eval scenario for cross-component state propagation patterns. |
| tests/dotnet-blazor/configure-auth/eval.yaml | Eval scenarios for Identity + auth routing patterns across render modes. |
| tests/dotnet-blazor/collect-user-input/eval.yaml | Eval scenarios for forms, validation, and file upload constraints. |
| tests/dotnet-blazor/author-component/eval.yaml | Eval scenarios for general component authoring + lifecycle/async/disposal rules. |
| plugins/dotnet-blazor/skills/use-js-interop/SKILL.md | New skill content for Blazor JS interop guidance. |
| plugins/dotnet-blazor/skills/support-prerendering/SKILL.md | New skill content for prerendering pitfalls + solutions. |
| plugins/dotnet-blazor/skills/plan-ui-change/SKILL.md | New skill content for structured component decomposition planning. |
| plugins/dotnet-blazor/skills/fetch-and-send-data/SKILL.md | New skill content for data fetching/submission lifecycle patterns. |
| plugins/dotnet-blazor/skills/create-blazor-project/assets/agents-md/webassembly-per-page.md | AGENTS.md template asset for WASM per-page projects. |
| plugins/dotnet-blazor/skills/create-blazor-project/assets/agents-md/webassembly-global.md | AGENTS.md template asset for WASM global projects. |
| plugins/dotnet-blazor/skills/create-blazor-project/assets/agents-md/ssr-none.md | AGENTS.md template asset for static SSR-only projects. |
| plugins/dotnet-blazor/skills/create-blazor-project/assets/agents-md/server-per-page.md | AGENTS.md template asset for Server per-page projects. |
| plugins/dotnet-blazor/skills/create-blazor-project/assets/agents-md/server-global.md | AGENTS.md template asset for Server global projects. |
| plugins/dotnet-blazor/skills/create-blazor-project/assets/agents-md/auto-per-page.md | AGENTS.md template asset for Auto per-page projects. |
| plugins/dotnet-blazor/skills/create-blazor-project/assets/agents-md/auto-global.md | AGENTS.md template asset for Auto global projects. |
| plugins/dotnet-blazor/skills/create-blazor-project/SKILL.md | New skill content for scaffolding/initial project choices. |
| plugins/dotnet-blazor/skills/coordinate-components/SKILL.md | New skill content for shared state patterns across components/render modes. |
| plugins/dotnet-blazor/skills/configure-auth/SKILL.md | New skill content for auth/Identity patterns across render modes. |
| plugins/dotnet-blazor/skills/collect-user-input/SKILL.md | New skill content for forms + SSR vs interactive input patterns. |
| plugins/dotnet-blazor/skills/author-component/references/component-disposal.md | Reference doc for correct disposal patterns (IAsyncDisposable). |
| plugins/dotnet-blazor/skills/author-component/references/breaking-down-components.md | Reference doc for decomposition patterns and cascading context. |
| plugins/dotnet-blazor/skills/author-component/references/async-programming-rules.md | Reference doc for Blazor async/sync-context rules. |
| plugins/dotnet-blazor/skills/author-component/SKILL.md | New/updated core component-authoring guidance. |
| plugins/dotnet-blazor/plugin.json | New plugin manifest for dotnet-blazor. |
| plugins/dotnet-blazor/PLAN.md | Dotnet-blazor plugin plan/structure document. |
| plugins/dotnet-blazor/.mcp.json | MCP server definitions intended for the plugin. |
| eng/skill-validator/src/Services/EvalSchema.cs | Adds environment field parsing for scenarios. |
| eng/skill-validator/src/Services/AgentRunner.cs | Adds configurable/readable work dirs + run indexing. |
| eng/skill-validator/src/Models/Models.cs | Adds scenario Environment and new validator CLI config flags. |
| eng/skill-validator/src/Commands/ValidateCommand.cs | Adds CLI flags: keep work dirs, work dir base, readable names, scenario/env filtering; threads RunIndex. |
| README.md | Adds dotnet-blazor entry to the plugin list. |
| .github/plugin/marketplace.json | Registers dotnet-blazor in GitHub marketplace catalog. |
| .github/CODEOWNERS | Adds ownership rules for dotnet-blazor plugin/tests. |
| .claude-plugin/marketplace.json | Registers dotnet-blazor in Claude marketplace catalog. |
| .agents/skills/create-skill-evaluation/SKILL.md | Documentation update describing new work-dir preservation workflow/flags. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
46203b1 to
a174bf4
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 33 out of 33 changed files in this pull request and generated 6 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
5b17cbd to
5aef6f4
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
|
/evaluate |
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 |
Add the dotnet-blazor plugin with 9 skills covering Blazor Web App development: - plan-ui-change: Plan and scaffold UI features in Blazor Web Apps - create-blazor-project: Create new Blazor projects with proper render mode setup - author-component: Author Razor components with parameters, events, lifecycle - coordinate-components: Share state across components using CascadingValueSource/scoped services - use-js-interop: Call JavaScript from Blazor and vice versa - fetch-and-send-data: HTTP data access with proper service patterns - configure-auth: Set up ASP.NET Core Identity and authorization in Blazor - collect-user-input: Build forms with EditForm, validation, and file uploads - support-prerendering: Handle prerendering lifecycle and state persistence Add convert-blazor-server-to-webapp skill to the dotnet-aspnet plugin for migrating .NET 7 Blazor Server apps to .NET 8+ Blazor Web App architecture. All 10 skills pass evaluation with quality improvements ranging from 12-50% and overfitting scores within acceptable thresholds. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
/evaluate |
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
dotnet-blazorplugin with 9 skills covering component authoring, state management, data fetching, authentication, prerendering, JS interop, and UI planning.What's included
Plugin infrastructure
plugins/dotnet-blazor/plugin.json— plugin manifest.github/plugin/marketplace.jsonand.claude-plugin/marketplace.json— marketplace entries.github/CODEOWNERS— ownership for@lewing,@javiercnand@danroth27README.md— plugin entrySkill: author-component
Create Blazor components from scratch — parameters, events, render fragments, lifecycle, async patterns, disposal, CSS isolation.
5 runs per scenario
Skill: use-js-interop
JS interop patterns — collocated
.razor.jsmodules, lifecycle timing, typed C# wrapper classes,DotNetObjectReference,ElementReference, disposal.+33.4% | 5 runs per scenario
Skill: plan-ui-change
5-step planning workflow that decomposes complex UI requests into focused, composable components instead of monolithic single-page components.
+59.7% | 1 run per scenario
Skill: create-blazor-project
Scaffold new Blazor Web Apps with the correct
dotnet new blazoroptions for the target interactivity mode and scope. WritesAGENTS.mdmetadata for downstream skills.1 run per scenario
Skill: support-prerendering
Fix prerendering problems —
[PersistentState]with??=,RendererInfo.IsInteractiveguards,[ExcludeFromInteractiveRouting]for static SSR pages, disabling prerender.1 run per scenario
Skill: collect-user-input
Build forms with
EditForm,[SupplyParameterFromForm], validation, multi-form SSR patterns, and enhanced navigation.1 run per scenario
Skill: fetch-and-send-data
Data fetching patterns across render modes — cancellation with
CancellationTokenSource,OnParametersSetAsyncfor route-driven loads, error handling, retry UI,IAsyncDisposable.1 run per scenario
Skill: coordinate-components
Share state across components using
CascadingValueSource<T>via DI, scoped services with change events, andNotifyChangedAsyncprotocol.+35.4% | Overfitting: 0.22 | 1 run per scenario
Skill: configure-auth
Authentication and authorization across render modes — Identity setup with roles/policies,
AuthorizeRouteView,ExcludeFromInteractiveRoutingfor Identity pages,AddAuthenticationStateSerialization/Deserializationfor WebAssembly/Auto.+27.7% | Overfitting: 0.06 | 1 run per scenario
All evals run on
claude-opus-4.6with pairwise judging.