Borrowing it
Nothing to install: this file belongs to afernandes/Omni.Blazor. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/afernandes/Omni.Blazor/main/.agents/skills/building-omni-blazor-apps/SKILL.mdgit clone --depth 1 https://github.com/afernandes/Omni.BlazorWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/afernandes/omni.blazor/building-omni-blazor-apps)<a href="https://agentmods.dev/skills/afernandes/omni.blazor/building-omni-blazor-apps"><img src="https://agentmods.dev/badge/skills/afernandes/omni.blazor/building-omni-blazor-apps/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/afernandes/omni.blazor/building-omni-blazor-apps"><img src="https://agentmods.dev/badge/skills/afernandes/omni.blazor/building-omni-blazor-apps.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00071 | $0.00836 |
| Opus 5 | $0.00036 | $0.00418 |
| Sonnet 5 | $0.00014 | $0.00167 |
| Haiku 4.5 | $0.00007 | $0.00084 |
Grade A, and why
building-omni-blazor-apps scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 71 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Build applications with Omni.Blazor
Use Omni.Blazor as the application's UI vocabulary while preserving the consumer project's architecture, language, render mode, and product conventions.
Required workflow
- Resolve the consumer's actual
AndersonN.Omni.Blazorversion. Check direct and centrally managed package references; when necessary, inspect restored assets to resolve variables, ranges, or floating versions. - Select a catalog that matches that version. Follow
catalog and versioning. Do not use an old
global MCP catalog for a newer package or
maindocumentation for an older package. - Search by user intent, then inspect each chosen component's exact API. If a component uses a typed schema, builder, or provider, inspect the corresponding configuration API as well. Never infer a parameter, event, slot, enum member, service method, or CSS class from its name.
- Read component selection when alternatives overlap. Read application patterns when composing a complete screen or flow.
- Implement the smallest coherent UI that satisfies the request. Preserve existing application structure and keep business rules, authorization, persistence, and orchestration outside Razor presentation code.
- Validate at the level affected by the change. Build the consuming project. For overlays, focus, keyboard behavior, JavaScript interop, responsive layout, or render-mode-sensitive behavior, exercise the rendered application in a browser.
Catalog rules
- Prefer the
omni-blazorMCP tools when their catalog version matches the resolved package: callget_catalog_info, thensearch_componentsandget_component. - Use
search_configuration_apisandget_configuration_apifor schema-driven forms, grids, filters, charts, schedulers, Kanban, Gantt, diagrams, or imports. - In a source checkout,
llms.txtis the discovery index anddocs/components.json/llms-full.txtare the public contract. Do not browse component source merely to discover its API. - Treat source inspection as implementation diagnosis, not as permission to use internal members.
OmniAiConversationbelongs to the optionalAndersonN.Omni.Blazor.Aipackage; confirm that dependency before using it.
What ships with it
4 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 71 lines · 71 tokens per session scan A 48384cecd1b3
building-omni-blazor-apps is a skill published in the GitHub repository afernandes/Omni.Blazor (4 stars, last pushed yesterday), licensed MIT. It adds 71 tokens to every session and 836 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
avalonia-viewmodels-zafiro
Optimal ViewModel and Wizard creation patterns for Avalonia using Zafiro and ReactiveUI.
avalonia-zafiro-development
Mandatory skills, conventions, and behavioral rules for Avalonia UI development using the Zafiro toolkit.
convert-blazor-server-to-webapp
Guides conversion of a pre-.NET 8 Blazor Server app into a .NET 8+ Blazor Web App. USE FOR: migrating apps that use AddServerSideBlazor and MapBlazorHub to the AddRazorComponents/MapRazorComponents model, converting Host.cshtml to an App.razor root component, replacing blazor.server.js with blazor.web.js, migrating…
create-blazor-project
Create a new ASP.NET Core web application or web site using Blazor. USE FOR: creating a new Blazor web app, scaffolding a new web project, starting a new web site, choosing render modes (Static SSR, Interactive Server, Interactive WebAssembly, Auto), running dotnet new blazor with the right options, setting up initial…
coordinate-components
Share state between components that don't have a direct parent-child parameter relationship, using cascading values, scoped services with change events, or CascadingValueSource via DI. USE WHEN the user needs a CascadingParameter or CascadingValue that works across render mode boundaries, a shopping cart or…
use-js-interop
Add, review, or fix JavaScript interop in Blazor components. USE FOR: calling JavaScript from Blazor, calling .NET from JavaScript, collocated .razor.js modules, IJSRuntime, IJSObjectReference lifecycle, DotNetObjectReference, ElementReference, timing rules for when JS is available, IAsyncDisposable disposal of JS…