dotnet-stylelint
Stylelint for Stylesheets in .NET Repositories
Trigger On
- the repo has
stylelint.config.*,.stylelintrc*, or CSS and SCSS assets under frontend folders - the user asks for CSS linting, duplicate style cleanup, naming convention enforcement, or design-system guardrails
- the repo needs a stylesheet gate beyond formatting alone
Do Not Use For
- JavaScript or TypeScript ownership; route that to
dotnet-eslintordotnet-biome - runtime accessibility, performance, SEO, or header checks; route that to
dotnet-webhint - repos that intentionally use only Biome for CSS linting and do not want a separate stylesheet linter
Inputs
- the nearest
AGENTS.md package.jsonstylelint.config.*or.stylelintrc*- the stylesheet file types in scope: CSS, SCSS, Less, embedded styles, or generated output
Workflow
- Confirm what Stylelint should own:
- plain CSS only
- CSS plus SCSS
- embedded styles in HTML, Markdown, or framework files
- Prefer repo-local installation and checked-in config.
- Start from a known shared config such as
stylelint-config-standard, then add syntax-specific packages only when the repo truly needs them. - Add repeatable scripts to
package.json, for example:stylelint "**/*.{css,scss}"stylelint "**/*.{css,scss}" --fix
- Keep ignore patterns explicit so build output, vendored assets, and generated CSS do not pollute the signal.
- Treat autofix as controlled cleanup:
- run on a bounded scope first
- inspect the diff
- rerun the frontend build if the repo compiles styles
- Use Stylelint for semantic CSS and selector policy, not as a replacement for site-level audits.
Bootstrap When Missing
- Detect current state:
rg --files -g 'package.json' -g 'stylelint.config.*' -g '.stylelintrc*'rg -n '"stylelint"|"stylelint-config-" --glob 'package.json' .
- Prefer a repo-local install:
npm install --save-dev stylelint stylelint-config-standard
- Add syntax packages only when the repo needs them for SCSS or embedded styles.
- Create or refine
stylelint.config.js,stylelint.config.mjs, or the existing config format. - Add repeatable commands to
AGENTS.mdandpackage.json, then verify with:npx stylelint "**/*.{css,scss}"npx stylelint "**/*.{css,scss}" --fix
- Return
status: configuredif Stylelint is now wired and repeatable, orstatus: improvedif the existing baseline was tightened. - Return
status: not_applicableonly when another documented tool already owns stylesheet linting and migration is not requested.
Handle Failures
Unknown ruleusually means the config expects a plugin or a different Stylelint major version.Unknown wordon SCSS, Vue, or mixed-content files usually means the repo needs the matching custom syntax package instead of plain CSS parsing.- Massive autofix churn usually means generated assets or third-party CSS slipped into the lint target.
- Design-system rule noise should be handled by tuning the checked-in config, not by skipping the linter entirely.
Current 17.5 Guidance
- Stylelint
17.5.0deprecates the*syntaxrule options underdeclaration-property-value-no-unknown. If the repo still relies on those options, move the compatibility intocustomSyntaxor parser selection instead of extending deprecated rule config. media-feature-name-value-no-unknownnow supportsignoreMediaFeatureNameValues. Use it when the design system or platform layer intentionally allows non-standard media feature values and you want that exception recorded explicitly.- Stylelint
17.5.0fixednode_modulesignore behavior in Node.js API flows that passcodeFilename. Keep repo ignores focused on generated or vendored assets instead of compensating for the old bug with over-broad globs. - Selector and deprecated-keyword false-positive fixes landed in
no-descending-specificity,no-duplicate-selectors, anddeclaration-property-value-keyword-no-deprecated. Re-run the repo baseline before preserving stale disables or waivers.
Official Sources
- Stylelint 17.5.0 release notes
references/release-notes.md
Deliver
- explicit stylesheet lint ownership
- checked-in config and repeatable commands
- clear scope boundaries for CSS, SCSS, and generated assets
Validate
- the lint target matches the repo's real stylesheet sources
- ignores exclude generated or vendored assets
- Stylelint ownership does not conflict with Biome without an explicit plan
- fixes were verified against the repo's stylesheet build flow when one exists
Ralph Loop
- Plan: analyze current state, target outcome, constraints, and risks.
- Execute one step and produce a concrete delta.
- Review the result and capture findings.
- Apply fixes in small batches and rerun checks.
- Update the plan after each iteration.
- Repeat until outcomes are acceptable.
- If a dependency is missing, bootstrap it or return
status: not_applicablewith a reason.
Required Result Format
status:complete|clean|improved|configured|not_applicable|blockedplan: concise plan and current stepactions_taken: concrete changes madeverification: commands, checks, or review evidenceremaining: unresolved items ornone
Example Requests
- "Add Stylelint for the SCSS in this ASP.NET Core app."
- "Block duplicate selectors and invalid CSS in CI."
- "Fix the current Stylelint violations without touching generated CSS."
References
- release-notes.md - Current 17.5.0 release changes that matter for repo config, rule tuning, and Node API integrations
More from managedcode/dotnet-skills
dotnet
Primary router skill for broad .NET work. Classify the repo by app model and cross-cutting concern first, then switch to the narrowest matching .NET skill instead of staying at a generic layer.
18dotnet-aspnet-core
Build, debug, modernize, or review ASP.NET Core applications with correct hosting, middleware, security, configuration, logging, and deployment patterns on current .NET.
13dotnet-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.
12dotnet-code-review
Review .NET changes for bugs, regressions, architectural drift, missing tests, incorrect async or disposal behavior, and platform-specific pitfalls before you approve or merge them.
11dotnet-architecture
Design or review .NET solution architecture across modular monoliths, clean architecture, vertical slices, microservices, DDD, CQRS, and cloud-native boundaries without over-engineering.
11dotnet-signalr
Implement or review SignalR hubs, streaming, reconnection, transport, and real-time delivery patterns in ASP.NET Core applications.
10