You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adds the syncfusion-blazor-toolkit-install skill to the existing dotnet-blazor plugin so AI agents can correctly install and configure the open-source Syncfusion Blazor Toolkit (Syncfusion.Blazor.Toolkit). It covers package identity, AddSyncfusionBlazorToolkit() registration, component namespaces, Fluent and High Contrast theme CSS, interactive render modes, and split Blazor Web App setup, with progressive-disclosure references.
No separate plugin is introduced. An earlier revision added a standalone dotnet-blazor-toolkit plugin with component skills; that was removed in favour of this install-only skill.
Scope is install/configure only. It excludes commercial packages, license keys, Hybrid/MAUI, and per-component API guidance.
Key Changes
Added plugins/dotnet-blazor/skills/syncfusion-blazor-toolkit-install/SKILL.md with core rules, a host/topology decision table, and minimal setup steps (package, Program.cs, imports, CSS, render modes).
Added references under references/:
package-identity.md - Toolkit vs commercial Syncfusion.Blazor* packages; no license key for the Toolkit.
theme-and-host-files.md - stylesheet path and the correct host file per app type (Components/App.razor, _Host.cshtml, wwwroot/index.html).
render-modes.md - when interactive render modes are required, and when they must not be added.
split-webapp-registration.md - Server/Client registration for split Web Apps, including prerendering.
troubleshooting.md - common failure symptoms, fixes, and a general checklist.
Added tests/dotnet-blazor/syncfusion-blazor-toolkit-install/eval.yaml (Vally schema): 16 tagged stimuli, each with a type: prompt rubric grader; most also have deterministic graders. Includes two dormancy cases (expect_activation: false) for project creation and MAUI Blazor Hybrid.
Updated the dotnet-blazor descriptions in the marketplace files and README.md to mention Syncfusion Blazor Toolkit installation.
Updated .github/CODEOWNERS for the skill and test paths.
Scope is install/configure only. It excludes commercial packages, license keys, Hybrid/MAUI, and per-component API guidance.
Validation
python eng/eval-quality/check_eval_quality.py --base-ref origin/main reports no errors.
Frontmatter includes name (matches the directory), description, and license: MIT.
Markdown links from SKILL.md to the reference files resolve.
Guidance reviewed against current Blazor templates for host files, render modes, and split-app registration.
Notes
Evals do not run automatically on fork PRs ("Fork PR evaluation requires a trusted branch"); a maintainer run is needed to get eval results.
@Indhumathy-Loganathan please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.
(default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@dotnet-policy-service agree
(when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
There are eval/doc issues that are internally inconsistent or overly broad (causing false failures or misleading guidance) and should be corrected before approval.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR introduces the initial Syncfusion Blazor Toolkit skill pack (skills + reference docs) and adds Vally eval coverage to validate the new skills’ expected outputs and guidance.
Changes:
Added new Syncfusion Blazor Toolkit skills (Popups router + Dialog, Notifications/Spinner, Inputs, Calendars, Buttons) with supporting reference documentation.
Added a new Charts reference documentation set to guide correct Toolkit usage patterns (enums, events, axes, styling, accessibility).
Added Vally eval specs under tests/dotnet-blazor-toolkit/ to validate correct component selection and key anti-pattern avoidance.
The example marks TValue="TimeOnly?" as a binding error, which contradicts the rest of this PR (including the SfTimePicker eval rubric). Update the snippet so agents don’t learn the wrong API surface. plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-calendars/references/critical-gotchas.md:191
The "When in doubt" guidance still says to avoid TimeOnly?, which conflicts with the rest of this PR’s calendar guidance. Align this summary with the corrected SfTimePicker support statement.
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
The added skill documentation contains a few concrete correctness issues (contradictory guidance and inaccurate enum compilation wording) that could mislead agents and/or cause eval failures.
Review details
Suppressed comments (3)
Previously missed (3) — in code that hasn't changed since the last review.
This note says using a non-existent Theme.* enum value "compiles to silence". Since Theme is an enum, invalid members won’t compile; updating the wording will avoid spreading incorrect guidance. plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-charts/references/appearance-styling.md:131
This note says using a non-existent Theme.* enum value "compiles to silence". Since Theme is an enum, invalid members won’t compile; updating the wording will avoid spreading incorrect guidance. plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-notifications/SKILL.md:40
The guidance for Label + <Template> is internally inconsistent: this section says "Never both", but references/spinner-template.md later shows using Label together with a <Template> that is aria-hidden. Consider rewording to forbid only duplicate visible text, while still allowing Label for screen readers alongside an aria-hidden visual template.
This Razor snippet has nested double-quotes inside an attribute value, which makes it invalid syntax if copied. Escape the inner string literals (or move the label to a variable). plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-charts/references/accessibility-internationalization.md:20
The _includes/sample-data.md link is broken (file doesn’t exist), and there’s an orphaned blockquote code fence (`> ```), which will break Markdown rendering for the rest of the file. plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-charts/references/advanced-features.md:15
This references _includes/sample-data.md, but there is no references/_includes/sample-data.md in the charts skill, so the link is broken. plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-charts/references/axes-and-scales.md:13
This references _includes/sample-data.md, but there is no references/_includes/sample-data.md in the charts skill, so the link is broken. plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-charts/references/data-handling.md:12
This references _includes/sample-data.md, but there is no references/_includes/sample-data.md in the charts skill, so the link is broken. plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-charts/references/events.md:1
The first line appears to include a stray BOM/zero-width character before # Events, which can show up as an odd glyph in some renderers and diffs. Prefer a plain # Events header line. plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-charts/references/events.md:17
This references _includes/sample-data.md, but there is no references/_includes/sample-data.md in the charts skill, so the link is broken. plugins/dotnet-blazor-toolkit/skills/syncfusion-blazor-toolkit-charts/references/interactive-features.md:13
This references _includes/sample-data.md, but there is no references/_includes/sample-data.md in the charts skill, so the link is broken.
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
The PR introduces a few concrete documentation/eval issues (self-contradictory guidance and a grader regex likely to fail correct responses) that should be corrected before merging.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
The reason will be displayed to describe this comment to others. Learn more.
🟡 Changes recommended
A new plugin appears to be introduced without the required plugins/dotnet-blazor-toolkit/plugin.json manifest, and there are correctness issues in added documentation snippets that should be fixed before merge.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
The reason will be displayed to describe this comment to others. Learn more.
🔵 Needs a closer look
A few documentation/tooling-alignment issues were found (skill-validator warning avoidance and inconsistent/likely incorrect namespace and CSS filename guidance) that should be corrected before approval.
Plugin manifest descriptions are not synchronized with marketplace metadata
.github/plugin/marketplace.json:75
The marketplace description is updated here, but plugins/dotnet-blazor/plugin.json and its .claude-plugin/.codex-plugin manifests remain unchanged. Existing plugins keep these descriptions synchronized (for example, plugins/dotnet-maui/plugin.json:4 matches .github/plugin/marketplace.json:45), so direct manifest consumers will not advertise the new Toolkit skill. Update all three manifest descriptions as well.
This negative matcher rejects a valid diagnosis that explicitly reassures the user, for example “you do not need to install a different package; add the missing stylesheet.” Because the rubric asks the agent to distinguish CSS trouble from a package problem, that wording is likely and should not fail the deterministic contract. Remove this response-wide substring check or make it detect an affirmative replacement/install action.
Add dormancy cases for Blazor and Hybrid boundaries
The only dormancy case covers component API questions, but the skill explicitly excludes Blazor project creation and Hybrid/MAUI in its frontmatter. Without separate uncued expect_activation: false cases for those real routing boundaries, a regression that hijacks either request can still pass the eval; add guards that check recognition, restraint, and redirection for each boundary.
These preference prompts directly name the target package and, in several cases, exact target vocabulary such as AddSyncfusionBlazorToolkit and the final _content/... path. That makes activation and path recall easier for the skilled arm instead of measuring an incremental outcome; the eval guidance requires natural requests that do not name the skill's vocabulary. Rewrite the prompts to describe the developer's problem without prescribing the target terminology, retaining a supplied wrong value only where it is the subject of diagnosis.
This response-wide matcher still rejects the correct prohibition “do not add/register a license key,” because it matches the add a license key substring without checking polarity. Remove this negative matcher or replace it with a check for an affirmative recommendation; otherwise the required no-license guidance can fail the eval.
This issue also appears on line 221 of the same file.
This no-match pattern rejects a valid explanation such as “this is not a Fluent theme-only problem” even though that is exactly the required diagnosis for _content JavaScript 404s. It scans response wording rather than an affirmative bad recommendation; remove it and rely on the positive asset/package and rubric checks.
This issue also appears in the following locations of the same file:
This combined registration block adds Interactive Server services even for the -int WebAssembly topology. The repository's template guidance shows WebAssembly-only apps use only AddInteractiveWebAssemblyComponents() (plugins/dotnet-blazor/skills/create-blazor-project/SKILL.md:189-200), so this contradicts the preceding rule not to add unused render modes and can introduce an unnecessary server circuit. Keep this block for Auto/split apps and provide a separate WebAssembly-only block.
WebAssembly guidance incorrectly requires a Server endpoint
dotnet new blazor -int WebAssembly does not generate both interactive endpoints: this repository's template guidance shows only AddInteractiveWebAssemblyComponents() and AddInteractiveWebAssemblyRenderMode() for that mode. Telling users to keep the Server endpoint here can make them add an unavailable or unnecessary server-interactivity configuration; reserve both endpoints for Auto or a deliberately combined topology.
This response-wide negative matcher rejects a correct answer such as “Do not register a license key,” because it does not account for negation. That conflicts with the rubric and the skill’s required guidance that Toolkit does not need a license key; remove this brittle matcher or make it detect an affirmative request to register one.
This issue also appears on line 93 of the same file.
Capability prompts reveal expected product and API vocabulary
These capability prompts repeatedly name the exact product and, in several cases, the exact API/path vocabulary that the skill is supposed to supply. That makes the baseline arm a recall test and inflates activation/overfitting rather than measuring an improvement over a natural request. Rewrite the prompts around the developer's goal, topology, or symptom (without giving the package ID, extension method, or expected host path), while keeping enough context to distinguish the scenario.
The reason will be displayed to describe this comment to others. Learn more.
This review was written by GitHub Copilot with help from a human (Shane).
Thanks for the updates, and for moving this into dotnet-blazor. I checked the new head against the current Blazor templates and the Toolkit 1.0.2 sources and package. Most of what I raised earlier is fixed. What's left is mostly copy/paste issues in the Program.cs examples and a few eval regexes that can score opposite answers incorrectly. Inline comments below.
check_eval_quality.py passes. The evaluation-status check still reports "Fork PR evaluation requires a trusted branch", so there's no skilled-vs-baseline result yet. A maintainer needs to run it from a trusted branch, so that isn't something to fix on your side.
The reason will be displayed to describe this comment to others. Learn more.
This combined sample is right for Auto, but not for dotnet new blazor -int WebAssembly. That template only adds the WebAssembly services and render mode, and it keeps .AddAdditionalAssemblies(typeof(<App>.Client._Imports).Assembly) so Client routes are available to server-side endpoint routing (Syncfusion's own v1.0.2 split sample keeps it too). Copied over a WebAssembly app, this turns on Interactive Server it never configured and drops that call, so direct requests to Client pages can stop resolving.
Could this show only the AddSyncfusionBlazorToolkit() line and say to keep the template's endpoint chain, or split Auto and WebAssembly into separate samples that keep the generated chain?
Default prerendering renders Interactive WebAssembly and Interactive Auto components on the server first. If the server does not have Toolkit services, that first render fails even when `.Client` is registered correctly. Disable prerendering only when the user explicitly asks; otherwise register Toolkit on both hosts.
`dotnet new blazor -int Auto` and `dotnet new blazor -int WebAssembly` already add interactive server and WebAssembly endpoints on the server. Keep those endpoints. A server-only Interactive Server app should not gain WebAssembly endpoints just to host Toolkit.
The reason will be displayed to describe this comment to others. Learn more.
-int WebAssembly doesn't add Interactive Server services or endpoints, only Auto adds both. Could this distinguish the two, and keep the generated .AddAdditionalAssemblies(...) call on the WebAssembly and Auto server chains in the samples below?
The reason will be displayed to describe this comment to others. Learn more.
Toolkit 1.0.2 only ships assets for net8.0, net9.0 and net10.0. A legacy _Host.cshtml project may still target .NET 6 or 7, where package restore fails. Could the flow check the project's TargetFramework first and give upgrade guidance if it's older than .NET 8? The server-install-success stimulus in the eval could also say which framework it targets, so it doesn't reward installing unconditionally.
The reason will be displayed to describe this comment to others. Learn more.
The examples use <SfButton>, which lives in Syncfusion.Blazor.Toolkit.Buttons, not the root namespace. With this import commented out, those examples won't resolve in a fresh app. Could the Buttons import be included with the button examples (render-modes.md, troubleshooting.md), or made explicit where the component is first used?
The reason will be displayed to describe this comment to others. Learn more.
This diagnosis covers both the Server and Client Program.cs (line 52), but the fix shown is server-only. .Client/Program.cs uses WebAssemblyHostBuilder.CreateDefault(args), so this version won't compile there. Could this be labelled as the server example with a client variant, or show only the shared builder.Services.AddSyncfusionBlazorToolkit() line?
The reason will be displayed to describe this comment to others. Learn more.
These host examples are full documents, so someone replacing App.razor with this loses <HeadOutlet /> (page titles and head content) and any render mode that was on <Routes />, which can turn a globally interactive app into static SSR. Could this show just the <link> line to add inside the existing <head>?
The reason will be displayed to describe this comment to others. Learn more.
The v1.0.2 package doesn't contain dropdown.min.css (the source has no dropdown.scss either). Could this be removed, or the list limited to stylesheets confirmed in the package?
The reason will be displayed to describe this comment to others. Learn more.
These response-wide negative patterns still reject correct warnings (the repo's anti-patterns eval around line 285 describes this failure mode). For example, "Do not run dotnet add package Syncfusion.Blazor" matches line 35, "Do not add a license key" matches line 38, and "don't register only on the server" matches line 95. Line 308 has the same problem with "this is not a Fluent theme only problem". Could these detect an affirmative instruction, or be dropped in favor of the positive checks plus the prompt grader?
The reason will be displayed to describe this comment to others. Learn more.
This matcher also accepts "Never call RootComponents.Add<App>("#app")", so the opposite advice passes the deterministic check. Could it be made directional, or left to the prompt grader?
The reason will be displayed to describe this comment to others. Learn more.
Thanks for adding a deterministic check here, but this one has the same negation problem, and it may also fail the right answer for a Hybrid app. A correct reply could say "this isn't a Web App, so skip Components/App.razor and _Host.cshtml" (matches), or tell the user to call AddSyncfusionBlazorToolkit() in MauiProgram.cs, since the components still need the service (matches). Either would fail the grader while the rubric below says they're fine. Could this be dropped in favor of the prompt grader, or limited to wording that only a Web App-style answer would use?
The reason will be displayed to describe this comment to others. Learn more.
This review was written by GitHub Copilot with help from a human (Shane).
Thanks for the big rework. I went back through the new head and most of my earlier comments are fixed: the endpoint recipes now preserve each template's generated calls (including AddAdditionalAssemblies where it applies), the -int WebAssembly description is correct, the net8+ prerequisite is there, SfButton has its .Buttons using, the host-file examples are additive, dropdown.min.css is gone, and the negated phrases I listed now pass the graders. The eval-quality check passes with no errors.
Still open from before: the RootComponents.Add matcher at eval.yaml:65 (see that thread). The inline comments below are new: one placement rule that is too broad for -ai WebAssembly/Auto apps, one remaining copy/paste snippet, a stylesheet claim that doesn't match the package, the net7 failure symptom, and a few graders that can pass a wrong answer.
The evaluation-status check still fails with "Fork PR evaluation requires a trusted branch", so there's no skilled-vs-baseline result yet. That needs a maintainer to run it from a branch in dotnet/skills, so it isn't something you need to fix.
| Web App `-int Server` (**per-page**) | Yes | n/a (no `.Client` project) | `Components/App.razor` | Pages with `@rendermode InteractiveServer`; pages without it are static SSR |
| Web App `-int Server -ai` (**global**) | Yes | n/a | `Components/App.razor` | Anywhere; inherited from `Routes`. Do not add a different mode |
| Web App `-int WebAssembly` (**per-page**) | Yes | Yes; **no** `RootComponents.Add` | `Components/App.razor` | Pages with `@rendermode InteractiveWebAssembly`, which **must** be in `.Client` (a server-project page prerenders, then fails in the browser) |
| Web App `-int WebAssembly -ai` (**global**) | Yes | Yes | `Components/App.razor` | Anywhere; inherited from `Routes` |
The reason will be displayed to describe this comment to others. Learn more.
The "Anywhere" in the global WebAssembly and Auto rows (this one and line 57, and render-modes.md:32) isn't right for the generated template. With dotnet new blazor -int WebAssembly -ai (I generated one to check), Routes and every page live in the .Client project, and the server project only has Error.razor. A page added under the server's Components/Pages still prerenders, but the browser can't find the component in the client assembly. Could these rows say that Toolkit components for WebAssembly and Auto need to live in the .Client project, and keep "Anywhere" for Server -ai, legacy Server and standalone WebAssembly?
The reason will be displayed to describe this comment to others. Learn more.
This snippet still has the same full-Program.cs shape as the earlier example. It starts a WebApplication.CreateBuilder and always calls AddInteractiveServerComponents(), then stops at builder.Build(). Pasted into a WebAssembly or Auto server Program.cs it drops the template's other calls and, for WebAssembly, adds Server interactivity the template doesn't have. Pasted into .Client/Program.cs it replaces WebAssemblyHostBuilder. The "Services not configured" fix earlier in this file already has the right shape: just the using and builder.Services.AddSyncfusionBlazorToolkit();. Could this one do the same?
Pick the host file from the Quick Decision Table. Use `highcontrast.min.css` only when the user asks for high contrast. `SfNumericTextBox` additionally needs `numerictextbox.min.css`, because its selectors are not in the Fluent or High Contrast bundle. See [Theme and host files](./references/theme-and-host-files.md).
The reason will be displayed to describe this comment to others. Learn more.
I checked the 1.0.2 package contents. numerictextbox.min.css has no .e-numerictextbox selector, and I couldn't find any of its rules missing from fluent.min.css, so the Fluent bundle does style SfNumericTextBox and the extra link is redundant, not required. The same claim is in theme-and-host-files.md:41 and in the numeric-textbox-unstyled stimulus (eval.yaml:444-447), where the rubric rewards the extra link. I'd drop it from all three. If you want a stylesheet-diagnosis case there, a genuinely missing or wrong stylesheet path would fit better.
1. **Verify the target framework first.** `Syncfusion.Blazor.Toolkit` 1.0.2 targets `net8.0`, `net9.0`, and `net10.0`. Always check the project's `<TargetFramework>` before installation. On `net6.0`, `net7.0`, or older frameworks, the package may restore successfully, but Toolkit assemblies are not available to the application, so the build later fails with errors such as `CS0246: The type or namespace name 'Syncfusion' could not be found`. Do not proceed with Toolkit installation on unsupported frameworks. Recommend upgrading the application to .NET 8 or later first (for example with the `dotnet-upgrade` plugin), then continue with the installation steps. If the `<TargetFramework>` is unknown, read it before doing anything else. Never edit the TFM just to make the package install.
The reason will be displayed to describe this comment to others. Learn more.
Good to have the framework check. The symptom isn't quite what happens though. The package only ships net8.0, net9.0 and net10.0 assets, so on a net6/net7 project a normal PackageReference restore fails with NU1202 (package not compatible), rather than restoring and then failing later with CS0246. The same story is repeated in the Common Mistakes table (line 154), troubleshooting.md:123, and the rubric at eval.yaml:365-367, which also says not to claim restore fails. Could those all say "restore fails with NU1202 on unsupported frameworks, upgrade the app first"?
1. ✓ `<TargetFramework>` in the `.csproj` is `net8.0`, `net9.0`, or `net10.0`. If it is older, recommend upgrading first.
2. ✓ Package name is `Syncfusion.Blazor.Toolkit` (not a commercial `Syncfusion.Blazor.*` package)
3. ✓ `using Syncfusion.Blazor.Toolkit;` and `AddSyncfusionBlazorToolkit()` are in `Program.cs` (in both Server and Client projects of a split Web App)
4. ✓ `@using Syncfusion.Blazor.Toolkit` is in `_Imports.razor` (in both projects of a split Web App). Per-component namespaces (e.g. `@using Syncfusion.Blazor.Toolkit.Buttons` for `SfButton`) are added to the `_Imports.razor` of every project that renders the component.
The reason will be displayed to describe this comment to others. Learn more.
This checklist item requires @using Syncfusion.Blazor.Toolkit in _Imports.razor, but SKILL.md rule 4 and line 141 of this file say the root using is optional (only needed for the enums). Could this item just require the component-family namespaces, like .Buttons for SfButton?
The reason will be displayed to describe this comment to others. Learn more.
The prompt links _content/Syncfusion.Blazor.Toolkit/themes/bootstrap5.css and says DevTools shows no 404. That path isn't in the package (stylesheets are under styles/ and there's no bootstrap5 file), so the request would 404 and the scenario contradicts itself. Could the prompt say DevTools shows a 404 for that file?
The reason will be displayed to describe this comment to others. Learn more.
The "no license key" check also matches "does not work without a license key", which is the opposite of the right answer, so it passes this deterministic matcher. Since the prompt grader already covers the conclusion, this might be better as a directional pattern (for example "does not need/require a license key") or dropped.
The reason will be displayed to describe this comment to others. Learn more.
This endpoint guard only matches lines that start with AddInteractive.... An answer that incorrectly adds builder.Services.AddRazorComponents().AddInteractiveServerComponents(); for the Hybrid app isn't caught by it (I ran the pattern), while a correct answer that shows a standalone .AddInteractiveServerComponents() line as the thing to remove is rejected. Allowing a builder.Services... prefix, with the same clause-level negation handling you used on the line above, would close the gap.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the
syncfusion-blazor-toolkit-installskill to the existingdotnet-blazorplugin so AI agents can correctly install and configure the open-source Syncfusion Blazor Toolkit (Syncfusion.Blazor.Toolkit). It covers package identity,AddSyncfusionBlazorToolkit()registration, component namespaces, Fluent and High Contrast theme CSS, interactive render modes, and split Blazor Web App setup, with progressive-disclosure references.No separate plugin is introduced. An earlier revision added a standalone
dotnet-blazor-toolkitplugin with component skills; that was removed in favour of this install-only skill.Scope is install/configure only. It excludes commercial packages, license keys, Hybrid/MAUI, and per-component API guidance.
Key Changes
plugins/dotnet-blazor/skills/syncfusion-blazor-toolkit-install/SKILL.mdwith core rules, a host/topology decision table, and minimal setup steps (package,Program.cs, imports, CSS, render modes).references/:package-identity.md- Toolkit vs commercialSyncfusion.Blazor*packages; no license key for the Toolkit.theme-and-host-files.md- stylesheet path and the correct host file per app type (Components/App.razor,_Host.cshtml,wwwroot/index.html).render-modes.md- when interactive render modes are required, and when they must not be added.split-webapp-registration.md- Server/Client registration for split Web Apps, including prerendering.troubleshooting.md- common failure symptoms, fixes, and a general checklist.tests/dotnet-blazor/syncfusion-blazor-toolkit-install/eval.yaml(Vally schema): 16 tagged stimuli, each with atype: promptrubric grader; most also have deterministic graders. Includes two dormancy cases (expect_activation: false) for project creation and MAUI Blazor Hybrid.dotnet-blazordescriptions in the marketplace files andREADME.mdto mention Syncfusion Blazor Toolkit installation..github/CODEOWNERSfor the skill and test paths.Validation
python eng/eval-quality/check_eval_quality.py --base-ref origin/mainreports no errors.name(matches the directory),description, andlicense: MIT.SKILL.mdto the reference files resolve.Notes