Skip to content

Add blazor skills to dotnet-blazor plugin#357

Open
javiercn wants to merge 29 commits into
dotnet:mainfrom
javiercn:javiercn/author-component
Open

Add blazor skills to dotnet-blazor plugin#357
javiercn wants to merge 29 commits into
dotnet:mainfrom
javiercn:javiercn/author-component

Conversation

@javiercn
Copy link
Copy Markdown
Member

@javiercn javiercn commented Mar 13, 2026

Summary

Adds a new dotnet-blazor plugin 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.json and .claude-plugin/marketplace.json — marketplace entries
  • .github/CODEOWNERS — ownership for @lewing, @javiercn and @danroth27
  • README.md — plugin entry

Skill: author-component

Create Blazor components from scratch — parameters, events, render fragments, lifecycle, async patterns, disposal, CSS isolation.

Scenario Baseline Isolated Plugin Verdict
Data-loading search component 3.2 4.6 4.2
Multi-step wizard with shared state 3.6 4.2 4.2
Generic data table component 3.2 5.0 5.0
Real-time notification badge 2.2 4.2 5.0
Sortable list with code-behind 4.0 4.6 5.0

5 runs per scenario


Skill: use-js-interop

JS interop patterns — collocated .razor.js modules, lifecycle timing, typed C# wrapper classes, DotNetObjectReference, ElementReference, disposal.

Scenario Baseline Isolated Plugin Verdict
Auto-saving notepad 2.8 4.2 3.6
User activity tracker 2.6 4.8 4.2
Drag-and-drop file upload zone 2.2 4.4 3.4
Responsive layout (screen size) 3.0 4.8 5.0
Infinite scroll (IntersectionObserver) 2.6 4.4 4.0

+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.

Scenario Baseline Isolated Plugin Verdict
Kanban board 1.0 4.0 4.0
E-commerce product catalog 2.0 4.0 4.0
Help desk ticket dashboard 1.0 5.0 4.0
Team calendar scheduler 1.0 5.0 4.0
Employee directory dashboard 1.0 5.0 4.0

+59.7% | 1 run per scenario


Skill: create-blazor-project

Scaffold new Blazor Web Apps with the correct dotnet new blazor options for the target interactivity mode and scope. Writes AGENTS.md metadata for downstream skills.

Scenario Baseline Isolated Plugin Verdict
Per-page Server interactivity 3→5 3→5 ✅ create-blazor-project
Global WebAssembly app 3→5 3→5 ✅ create-blazor-project
Auto mode with per-page scope 3→5 3→5 ✅ create-blazor-project

1 run per scenario


Skill: support-prerendering

Fix prerendering problems — [PersistentState] with ??=, RendererInfo.IsInteractive guards, [ExcludeFromInteractiveRouting] for static SSR pages, disabling prerender.

Scenario Baseline Isolated Plugin Verdict
Equipment inventory loaded once 3→5 3→5 ✅ support-prerendering
Privacy page that reads cookies (global interactive) 3→5 3→5 ✅ support-prerendering
Notifications page with live polling 3→5 3→5 ✅ support-prerendering

1 run per scenario


Skill: collect-user-input

Build forms with EditForm, [SupplyParameterFromForm], validation, multi-form SSR patterns, and enhanced navigation.

Scenario Baseline Isolated Plugin Verdict
Conference talk submission (SSR) 2→5 2→5 ✅ collect-user-input
Inventory grid editor (interactive) 3→5 3→5 ✅ collect-user-input

1 run per scenario


Skill: fetch-and-send-data

Data fetching patterns across render modes — cancellation with CancellationTokenSource, OnParametersSetAsync for route-driven loads, error handling, retry UI, IAsyncDisposable.

Scenario Baseline Isolated Plugin Verdict
Recipe browser with resilient loading 3→5 3→5 ✅ fetch-and-send-data
Real-time shipment tracker 3→5 3→5 ✅ fetch-and-send-data

1 run per scenario


Skill: coordinate-components

Share state across components using CascadingValueSource<T> via DI, scoped services with change events, and NotifyChangedAsync protocol.

Scenario Baseline Isolated Plugin Verdict
Warehouse dashboard with site selector and live stock alerts 2→5 2→5 ✅ coordinate-components

+35.4% | Overfitting: 0.22 | 1 run per scenario


Skill: configure-auth

Authentication and authorization across render modes — Identity setup with roles/policies, AuthorizeRouteView, ExcludeFromInteractiveRouting for Identity pages, AddAuthenticationStateSerialization/Deserialization for WebAssembly/Auto.

Scenario Baseline Isolated Plugin Verdict
Company intranet with role-based access and policies 5/5 5/5
Login and account management (global interactive) 5/5 5/5
Multi-tier app with WebAssembly auth 3→5 3→5 ✅ configure-auth

+27.7% | Overfitting: 0.06 | 1 run per scenario


All evals run on claude-opus-4.6 with pairwise judging.

Copilot AI review requested due to automatic review settings March 13, 2026 15:14
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-aspnet plugin manifest and registered it in both marketplace files + README.
  • Added author-component skill 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.

Comment thread plugins/dotnet-blazor/skills/author-component/references/component-disposal.md Outdated
Comment thread plugins/dotnet-blazor/skills/author-component/SKILL.md
Comment thread .github/CODEOWNERS Outdated
@javiercn javiercn changed the title Add author-component skill to dotnet-aspnet plugin Add author-component skill to dotnet-blazor plugin Mar 13, 2026
Copilot AI review requested due to automatic review settings March 13, 2026 15:20
@javiercn javiercn force-pushed the javiercn/author-component branch from 4ad6c98 to 9637c51 Compare March 13, 2026 15:20
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-blazor plugin manifest and registers it in both marketplaces, CODEOWNERS, and repo README.
  • Adds the author-component skill (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.

Comment thread plugins/dotnet-blazor/skills/author-component/references/component-disposal.md Outdated
Comment thread plugins/dotnet-blazor/skills/author-component/SKILL.md Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-blazor plugin manifest plus marketplace/README/CODEOWNERS wiring.
  • Adds the author-component skill (SKILL.md + reference docs) and authoring-focused eval scenarios.
  • Adds a use-js-interop skill and corresponding eval scenarios under tests/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.

Comment thread plugins/dotnet-blazor/skills/use-js-interop/SKILL.md
Comment thread .github/CODEOWNERS Outdated
@javiercn javiercn changed the title Add author-component skill to dotnet-blazor plugin Add blazor skills to dotnet-blazor plugin Mar 15, 2026
Copilot AI review requested due to automatic review settings March 24, 2026 09:12
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-blazor plugin (skills + plan + MCP config) and registers it in marketplace + CODEOWNERS + README.
  • Adds tests/dotnet-blazor/**/eval.yaml suites for multiple Blazor skill areas (component authoring, JS interop, prerendering, auth, etc.).
  • Extends eng/skill-validator to support per-scenario environment, 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.

Comment thread eng/skill-validator/src/Services/AgentRunner.cs Outdated
Comment thread plugins/dotnet-blazor/plugin.json Outdated
Comment thread tests/dotnet-blazor/support-prerendering/eval.yaml
@javiercn javiercn force-pushed the javiercn/author-component branch from 46203b1 to a174bf4 Compare March 27, 2026 13:36
Copilot AI review requested due to automatic review settings March 27, 2026 13:41
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread plugins/dotnet-blazor/plugin.json
Comment thread .github/CODEOWNERS
Comment thread .github/plugin/marketplace.json Outdated
Comment thread .claude-plugin/marketplace.json Outdated
Comment thread plugins/dotnet-blazor/plugin.json Outdated
Comment thread tests/dotnet-blazor/support-prerendering/eval.yaml
javiercn and others added 25 commits May 22, 2026 13:30
- async-programming-rules.md: Reword 'await every Task' to allow intentional fire-and-forget with DispatchExceptionAsync
- async-programming-rules.md: Replace _ = InvokeAsync(...) with async void + await + DispatchExceptionAsync
- component-disposal.md: Rename Timer section to 'Anti-pattern', use async void handler with error routing
- SKILL.md: Fix @OnClick wording (actual downsides, not 're-render')
- SKILL.md: Add comment explaining why PollAsync discard is safe
Skill teaches 7 Blazor JS interop patterns: collocated modules,
lifecycle timing, batching, typed interop wrappers, DotNetObjectReference
with JS class encapsulation, disposal/JSDisconnectedException, and
ElementReference.

Eval covers 5 scenarios (notepad, activity tracker, drag-drop,
responsive layout, infinite scroll) with rubrics for typed C# wrapper
classes, JS class wrappers for dotNetRef, and async/await error handling.

5-run eval: +33.4% overall, all scenarios pass.
Teaches agents to decompose complex Blazor UI requests into focused,
composable components instead of building monolithic single-page
components. The 5-step planning workflow covers: mapping visual regions
to a component tree, classifying components, designing parameter/
EventCallback data flow, identifying reuse, and ordering implementation
bottom-up.

Eval: 5 scenarios (Kanban board, e-commerce catalog, help desk dashboard,
team calendar, employee directory) scoring 59.7% improvement. Baselines
produce 1-2 monolithic files; skilled agent decomposes into 4-6+ focused
components.
…s to skill validator

--scenario <substring>: filter scenarios by name substring (case-insensitive,
repeatable). Useful for iterating on a specific scenario without running the
full eval suite.

--keep-work-dirs: preserve temporary working directories after the run instead
of cleaning them up. Enables post-run inspection of baseline vs skilled output.

--work-dir <path>: set a custom base directory for working directories instead
of the system temp folder. Helps keep artifacts organized.

--readable-work-dirs: use human-readable directory names
(<timestamp>/<scenario-slug>/run-N/<variant>) instead of GUIDs. Makes it easy
to find and compare baseline/isolated/plugin outputs.
A skill that teaches agents how to write eval.yaml files for the skill
validator. Covers eval design principles (goal-oriented prompts, non-overlapping
domains, baseline calibration), eval.yaml structure (setup, assertions, rubric
items), and an iteration workflow for fast feedback and result analysis.
Wire up Playwright MCP (local/stdio) and Microsoft Learn Docs MCP (remote/http)
for the dotnet-blazor plugin via .mcp.json, and reference it from plugin.json.
Scenarios in eval.yaml can now declare an 'environment' field (e.g. 'ci',
'local', 'daily'). When --environment is passed, only scenarios whose
environment matches (or that have no environment set) will run. Scenarios
without an environment always run regardless of the flag.

This enables limiting expensive scenarios on CI while keeping them
available for local development.
Skill guides scaffolding Blazor Web App projects with correct render mode
selection (SSR, Server, WebAssembly, Auto) and interactivity scope
(per-page vs global). Includes precomputed AGENTS.md templates for all
7 mode combinations.

Eval covers 5 scenarios: Static SSR, Server+Auth (global), WebAssembly
(per-page), Server (per-page), Auto+Auth (global). All pass at 5/5.
Each template now includes a structured table with Interactivity Mode
and Interactivity Scope values that other skills can read to adapt
their guidance to the project's configuration.
- SKILL.md: Covers [PersistentState], PersistentComponentState,
  RendererInfo, [ExcludeFromInteractiveRouting], prerender:false,
  and client service resolution during prerender
- eval.yaml: 3 scenarios (Equipment inventory, Privacy page,
  Notifications polling) — all pass with quality improvement
- PLAN.md: Blazor plugin skill roadmap with create-blazor-project
  done and support-prerendering as next skill
Skill covers EditForm, built-in input components, data annotation
validation, custom validator with ValidationMessageStore for
server-side field-specific errors, SSR form patterns, @Bind:after,
InputFile for uploads, and double-submit prevention.

Eval: 2 scenarios, both pass with significant improvement:
- Event registration with custom validation: 3->5 (isolated), 3->4 (plugin)
- Product review with photo upload: 3->5 (isolated), 3->5 (plugin)
- Add 'dotnet new blazor' setup command to all scenarios so the
  project is pre-scaffolded and the model focuses on form work
- Add 'Editable inventory grid with inline row editing' scenario
  (Base=3, Iso=5, Plug=5) — tests Blazor input components vs raw
  HTML inputs and DataAnnotationsValidator vs manual validation
- Remove pre-dropped files from inventory setup (was cueing the skill)
SKILL.md:
- Add numbered workflow quick reference section
- Add NotifyChangedAsync update protocol callout
- Add NavigationManager.Refresh anti-pattern to Don'ts

eval.yaml:
- Rewrite scenario from gym domain to warehouse management
- Replace CascadingParameter assertion (matched default Error.razor)
  with AddCascadingValue and NotifyChangedAsync assertions
- Rewrite rubric items to be outcome-focused (reduces overfitting)

Eval results: PASS, Isolated 5/5, Overfitting 0.32->0.22
Skill covers auth across render modes: AuthorizeView, [Authorize],
Identity pages with ExcludeFromInteractiveRouting, auth state
serialization for WebAssembly/Auto, and common mistakes matrix.

Three eval scenarios:
- Company intranet with Identity roles and authorization policies
- Login/register pages in a globally interactive app (SignInManager)
- Auto-mode app with auth state surviving WASM handoff

Eval results: 1/1 passed, 27.7% improvement, 0.06 overfitting.
Remove skill-validator modifications (--scenario, --keep-work-dirs,
--work-dir, --readable-work-dirs, --environment, RunIndex) and the
create-skill-evaluation skill. Only blazor plugin and eval changes
should remain in this branch.
…ODEOWNERS

- Inline mcpServers object in plugin.json instead of referencing .mcp.json
  file path (skill-validator expects JSON object, not string reference)
- Remove now-redundant .mcp.json file
- Update CODEOWNERS to use @dotnet/aspnet-blazor-eng team instead of
  individual users
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- configure-auth: Make prompt less prescriptive — remove named policy
  instruction, let model decide [Authorize(Roles)] vs policy. Relax
  rubric and assertions to accept either approach.

- coordinate-components: Add 2 scenarios (shopping cart with scoped
  service, multi-page wizard with CascadingValueSource) to test
  mechanism selection beyond the existing warehouse dashboard.

- create-blazor-project: Add file_exists assertion for .Client/*.razor
  on WebAssembly and Auto scenarios to verify components are placed in
  the correct project.

- fetch-and-send-data: Soften error-handling prompt to avoid teaching
  the cancellation pattern directly while keeping a light timeout hint.
  Replace second scenario with Auto-mode shipment tracker to cover
  HTTP service abstraction pattern instead of duplicating Server async.

- plan-ui-change: Replace 3 homogeneous dashboard scenarios (help desk,
  calendar, employee directory) with diverse UI shapes: multi-step
  wizard, nested settings tabs, and chat interface with threads.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
MCPServerDef.Command is null for HTTP-type servers (which use Url
instead). Add Url field to MCPServerDef, handle http/streamable-http/sse
transport types with URL validation, use explicit type allowlist for
stdio/local, reject unknown types, and null-guard IsAllowedMcpCommand.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Timed-out scenarios (coordinate-components shopping cart/wizard,
plan-ui-change wizard/settings/chat) were missing timeout fields and
defaulting to 120s. Set 1800s for medium scenarios and 2400s for
complex multi-component scenarios. Bump configure-auth intranet
(900→1800) and login (600→1200) which also timed out.

Tweak recipe browser prompt to mention 'fetches and displays' and
'data-loading lifecycle' to improve skill activation alignment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add skill-specific trigger phrases to eval prompts that were failing
activation in plugin mode (all 9 skills loaded). In isolated mode these
all activated consistently, but in plugin mode the agent sometimes chose
competing skills like author-component.

Changes:
- coordinate-components/shopping-cart: Frame as coordinating shared state
  between components without parent-child relationships
- fetch-and-send-data/recipe-browser: Emphasize calling backend service
  to fetch data and async data loading lifecycle
- plan-ui-change/kanban: Ask for component decomposition plan before code
- plan-ui-change/settings: Ask for component breakdown and interaction model

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@javiercn javiercn force-pushed the javiercn/author-component branch from 864d07e to e07e4e9 Compare May 22, 2026 11:30
@javiercn
Copy link
Copy Markdown
Member Author

/evaluate

github-actions Bot added a commit that referenced this pull request May 22, 2026
github-actions Bot added a commit that referenced this pull request May 22, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Skill Validation Results

Skill Scenario Quality Skills Loaded Overfit Verdict
plan-ui-change Project management Kanban board 5.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.34
plan-ui-change E-commerce product catalog with filters and pagination 2.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.34
plan-ui-change Multi-step job application wizard 1.0/5 → 1.0/5 ⚠️ NOT ACTIVATED 🟡 0.34 [1]
plan-ui-change Application settings page with nested tab panels 2.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.34
plan-ui-change Team chat interface with message threads 1.0/5 → 1.0/5 ⚠️ NOT ACTIVATED 🟡 0.34 [2]
create-blazor-project University course catalog with enrollment form 2.7/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.25
create-blazor-project Veterinary clinic management with staff login 3.3/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.25
create-blazor-project Building inspection app for field technicians 2.7/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.25
create-blazor-project Recipe community with interactive ratings on static pages 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.25
create-blazor-project Global logistics tracking for worldwide users 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.25
use-js-interop Auto-saving notepad that survives page reloads 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.17
use-js-interop User activity tracker that detects idle timeout 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.17
use-js-interop Drag-and-drop file upload zone 1.3/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.17 [3]
use-js-interop Responsive layout that adapts to screen size 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.17
use-js-interop Infinite scroll list using IntersectionObserver 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.17
fetch-and-send-data Recipe browser with resilient data loading 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.18
fetch-and-send-data Real-time shipment tracker with Auto interactivity 3.3/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.18
configure-auth Company intranet with role-based access and authorization policies 4.7/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.09
configure-auth Login and account management in a globally interactive app 4.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.09
configure-auth Multi-tier app with WebAssembly auth 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.09
collect-user-input Event registration with custom validation 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.13
collect-user-input Product review with photo upload and server-side checks 4.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.13
collect-user-input Editable inventory grid with inline row editing 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.13
coordinate-components Warehouse dashboard with site selector and live stock alerts 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.34
coordinate-components Shopping cart shared across product and checkout pages 5.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.34
coordinate-components Multi-page wizard with shared progress indicator 1.0/5 → 1.0/5 ⚠️ NOT ACTIVATED 🟡 0.34 [4]
support-prerendering Equipment inventory loaded once 2.7/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.32
support-prerendering Privacy page that reads cookies in a global interactive app 4.3/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.32
support-prerendering Notifications page with live polling 2.3/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED 🟡 0.32
author-component Author a data-loading search component 3.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.19
author-component Author a multi-step wizard with shared state 3.3/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.19
author-component Author a generic data table component 3.7/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.19
author-component Author a real-time notification badge component 2.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.19
author-component Author a sortable list with code-behind pattern 4.0/5 → 1.0/5 🔴 ⚠️ NOT ACTIVATED ✅ 0.19

[1] (Isolated) Quality unchanged but weighted score is -45.8% due to: judgment, quality, errors (0 → 1)
[2] (Isolated) Quality unchanged but weighted score is -41.0% due to: judgment, quality, errors (0 → 1)
[3] ⚠️ High run-to-run variance (CV=71%) — consider re-running with --runs 5
[4] (Isolated) Quality unchanged but weighted score is -65.0% due to: quality, judgment, errors (0 → 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

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants