/webhint
Use webhint in .NET repositories that ship browser-facing frontends. Use when a repo needs CLI audits for accessibility, performance, security headers, PWA signals, SEO, or runtime page quality against a. USE FOR: the repo ships a browser-facing site and the user asks about
$ npx -y skills add managedcode/dotnet-skills --skill webhint --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/webhint
Context preview
The summary Claude sees to decide when to auto-load this skill.
Use webhint in .NET repositories that ship browser-facing frontends. Use when a repo needs CLI audits for accessibility, performance, security headers, PWA signals, SEO, or runtime page quality against a. USE FOR: the repo ships a browser-facing site and the user asks about
SKILL.md
webhint.SKILL.mdname: webhint
description: "Use webhint in .NET repositories that ship browser-facing frontends. Use when a repo needs CLI audits for accessibility, performance, security headers, PWA signals, SEO, or runtime page quality against a. USE FOR: the repo ships a browser-facing site and the user asks about accessibility, performance, SEO, security headers, or page quality; the repo has .hintrc, hint scripts, or a. DO NOT USE FOR: JavaScript or TypeScript semantic linting; route that to eslint or biome; stylesheet-only linting; route that to stylelint. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made."
compatibility: "Requires a .NET repository with a browser-facing site or frontend build output; works best against a reachable local or deployed URL and a checked-in `.hintrc`."
webhint for Browser-Facing Frontends in .NET Repositories
Trigger On
- the repo ships a browser-facing site and the user asks about accessibility, performance, SEO, security headers, or page quality
- the repo has `.hintrc`, `hint` scripts, or a served local frontend that should be audited
- the team needs more than syntax linting and wants runtime-oriented site checks
Do Not Use For
- JavaScript or TypeScript semantic linting; route that to `eslint` or `biome`
- stylesheet-only linting; route that to `stylelint`
- static HTML structure checks alone; route that to `htmlhint`
Inputs
- the nearest `AGENTS.md`
- `package.json`
- `.hintrc` if present
- the real audit target: local dev URL, preview URL, deployed URL, or built output
Workflow
1. Choose the audit surface deliberately:
- running local URL such as `https://localhost:3000`
- preview or deployed URL
- local connector against built output when no browser runtime is needed
2. Prefer repo-local installation and a checked-in `.hintrc`. 3. Start from a documented preset such as `web-recommended`, then customize only for real repo requirements. 4. Add repeatable scripts to `package.json`, for example:
- `hint https://localhost:3000`
- `hint https://example.test --config .hintrc`
5. Keep runtime prerequisites explicit:
- supported Node.js version
- browser availability when the connector needs Chromium-based automation
6. Treat findings as categorized work:
- headers and transport
- accessibility and HTML issues
- performance
- PWA and manifest signals
7. Re-run the audit after fixes on the same URL or build output so results are comparable.
Bootstrap When Missing
1. Detect current state:
- `rg --files -g 'package.json' -g '.hintrc*'`
- `rg -n '"hint"' --glob 'package.json' .`
2. Prefer a repo-local install:
- `npm install --save-dev hint`
3. Create or refine `.hintrc` with a known baseline such as `web-recommended`. 4. Add repeatable commands to `AGENTS.md` and `package.json`, then verify with:
- `npx hint https://localhost:3000`
- `npx hint -c ./.hintrc https://example.com`
5. Return `status: configured` if the repo now has a working site-audit gate, or `status: improved` if the baseline was tightened. 6. Return `status: not_applicable` when the repo does not expose a stable browser-facing surface that can be audited in the current task.
Handle Failures
- Missing-browser errors usually mean the environment lacks Chrome, Chromium, or Edge for the selected connector.
- WSL is a poor default for browser-backed runs; prefer a native environment or switch to a `jsdom`-style connector when appropriate.
- `EACCES` or install-permission failures are usually fixed by installing `hint` as a repo devDependency instead of relying on a global tool.
- If the audit target is unstable, authenticated, or still booting, fix the serving workflow first; otherwise the noise is not actionable.
Deliver
- a repeatable webhint audit command and config
- a stable target URL or build-output strategy
- categorized runtime-quality findings the team can act on
Validate
- the audited target matches the site that actually ships
- browser or connector prerequisites are documented
- webhint is not being used as a substitute for ESLint or Stylelint
- reruns on the same target produce consistent comparisons
Ralph Loop
1. Plan: analyze current state, target outcome, constraints, and risks. 2. Execute one step and produce a concrete delta. 3. Review the result and capture findings. 4. Apply fixes in small batches and rerun checks. 5. Update the plan after each iteration. 6. Repeat until outcomes are acceptable. 7. If a dependency is missing, bootstrap it or return `status: not_applicable` with a reason.
Required Result Format
- `status`: `complete` | `clean` | `improved` | `configured` | `not_applicable` | `blocked`
- `plan`: concise plan and current step
- `actions_taken`: concrete changes made
- `verification`: commands, checks, or review evidence
- `remaining`: unresolved items or `none`
Example Requests
- "Run webhint against the local frontend before release."
- "Add accessibility and security-header audits for this site."
- "Why does webhint fail in CI but not locally?"
Read more
name: webhint description: "Use webhint in .NET repositories that ship browser-facing frontends. Use when a repo needs CLI audits for accessibility, performance, security headers, PWA signals, SEO, or runtime page quality against a. USE FOR: the repo ships a browser-facing site and the user asks about accessibility, performance, SEO, security headers, or page quality; the repo has .hintrc, hint scripts, or a. DO NOT USE FOR: JavaScript or TypeScript semantic linting; route that to eslint or biome; stylesheet-only linting; route that to stylelint. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made." compatibility: "Requires a .NET repository with a browser-facing site or frontend build output; works best against a reachable local or deployed URL and a checked-in `.hintrc`."
webhint for Browser-Facing Frontends in .NET Repositories
Trigger On
- the repo ships a browser-facing site and the user asks about accessibility, performance, SEO, security headers, or page quality
- the repo has `.hintrc`, `hint` scripts, or a served local frontend that should be audited
- the team needs more than syntax linting and wants runtime-oriented site checks
Do Not Use For
- JavaScript or TypeScript semantic linting; route that to `eslint` or `biome`
- stylesheet-only linting; route that to `stylelint`
- static HTML structure checks alone; route that to `htmlhint`
Inputs
- the nearest `AGENTS.md`
- `package.json`
- `.hintrc` if present
- the real audit target: local dev URL, preview URL, deployed URL, or built output
Workflow
1. Choose the audit surface deliberately:
- running local URL such as `https://localhost:3000`
- preview or deployed URL
- local connector against built output when no browser runtime is needed
2. Prefer repo-local installation and a checked-in `.hintrc`. 3. Start from a documented preset such as `web-recommended`, then customize only for real repo requirements. 4. Add repeatable scripts to `package.json`, for example:
- `hint https://localhost:3000`
- `hint https://example.test --config .hintrc`
5. Keep runtime prerequisites explicit:
- supported Node.js version
- browser availability when the connector needs Chromium-based automation
6. Treat findings as categorized work:
- headers and transport
- accessibility and HTML issues
- performance
- PWA and manifest signals
7. Re-run the audit after fixes on the same URL or build output so results are comparable.
Bootstrap When Missing
1. Detect current state:
- `rg --files -g 'package.json' -g '.hintrc*'`
- `rg -n '"hint"' --glob 'package.json' .`
2. Prefer a repo-local install:
- `npm install --save-dev hint`
3. Create or refine `.hintrc` with a known baseline such as `web-recommended`. 4. Add repeatable commands to `AGENTS.md` and `package.json`, then verify with:
- `npx hint https://localhost:3000`
- `npx hint -c ./.hintrc https://example.com`
5. Return `status: configured` if the repo now has a working site-audit gate, or `status: improved` if the baseline was tightened. 6. Return `status: not_applicable` when the repo does not expose a stable browser-facing surface that can be audited in the current task.
Handle Failures
- Missing-browser errors usually mean the environment lacks Chrome, Chromium, or Edge for the selected connector.
- WSL is a poor default for browser-backed runs; prefer a native environment or switch to a `jsdom`-style connector when appropriate.
- `EACCES` or install-permission failures are usually fixed by installing `hint` as a repo devDependency instead of relying on a global tool.
- If the audit target is unstable, authenticated, or still booting, fix the serving workflow first; otherwise the noise is not actionable.
Deliver
- a repeatable webhint audit command and config
- a stable target URL or build-output strategy
- categorized runtime-quality findings the team can act on
Validate
- the audited target matches the site that actually ships
- browser or connector prerequisites are documented
- webhint is not being used as a substitute for ESLint or Stylelint
- reruns on the same target produce consistent comparisons
Ralph Loop
1. Plan: analyze current state, target outcome, constraints, and risks. 2. Execute one step and produce a concrete delta. 3. Review the result and capture findings. 4. Apply fixes in small batches and rerun checks. 5. Update the plan after each iteration. 6. Repeat until outcomes are acceptable. 7. If a dependency is missing, bootstrap it or return `status: not_applicable` with a reason.
Required Result Format
- `status`: `complete` | `clean` | `improved` | `configured` | `not_applicable` | `blocked`
- `plan`: concise plan and current step
- `actions_taken`: concrete changes made
- `verification`: commands, checks, or review evidence
- `remaining`: unresolved items or `none`
Example Requests
- "Run webhint against the local frontend before release."
- "Add accessibility and security-header audits for this site."
- "Why does webhint fail in CI but not locally?"
Stop explaining .NET to your AI. Start building. We've all been there: asking Claude to use Entity Framework, only to get EF6 patterns in a .NET 8 project. Explaining to Copilot that Blazor Server and Blazor WebAssembly aren't the same thing.
Repo: managedcode/dotnet-skills
Other skills on dotnet-skills.
- /aspnet-core
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET. USE FOR: working on ASP.NET Core apps, services, or middleware; changing auth, routing, configuration,
Open skill - /aspire
Build, upgrade, and operate Aspire 13.4.x C# or TypeScript application hosts with the current CLI, AppHost, ServiceDefaults, integrations, dashboard, testing, MCP, and deployment patterns for distributed apps. USE FOR: Aspire.AppHost.Sdk, Aspire.Hosting.*,
Open skill - /azure-functions
Build, review, or migrate Azure Functions in .NET with correct execution model, isolated worker setup, bindings, DI, and Durable Functions patterns. USE FOR: working on Azure Functions in .NET; migrating from the in-process model to the isolated worker model; adding Durable
Open skill - /blazor
Build and review Blazor applications across server, WebAssembly, web app, and hybrid scenarios with correct component design, state flow, rendering, and hosting choices. USE FOR: building interactive web UIs with C# instead of JavaScript; choosing between Server, WebAssembly, or
Open skill - /entity-framework6
Maintain or migrate EF6-based applications with realistic guidance on what to keep, what to modernize, and when EF Core is or is not the right next step. USE FOR: EF6 codebases; runtime versus ORM migration decisions; EDMX, code-first, ObjectContext, and legacy data-access
Open skill - /entity-framework-core
Design, tune, or review EF Core data access with proper modeling, migrations, query translation, performance, and lifetime management for modern .NET applications. USE FOR: DbContext, migrations, model configuration, EF queries, tracking, loading, performance, transactions, and
Open skill

