{"slug":"dotnet-htmlhint","title":"dotnet-htmlhint","summary":"Use HTMLHint in .NET repositories that ship static HTML output or standalone frontend templates. Use when a repo needs a focused CLI lint gate for DOM structure, invalid attributes, and basic HTML correctness checks on static pages.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-27T21:00:32.133051Z","repo":{"url":"https://github.com/Postpartum-genushyacinthus29/dotnet-skills","stars":12,"forks":1,"license":"MIT","updatedAt":"2026-09-27T19:34:14Z"},"bodyHtml":"<hr>\n<h2>name: dotnet-htmlhint\nversion: \"1.0.0\"\ncategory: \"Code Quality\"\ndescription: \"Use HTMLHint in .NET repositories that ship static HTML output or standalone frontend templates. Use when a repo needs a focused CLI lint gate for DOM structure, invalid attributes, and basic HTML correctness checks on static pages.\"\ncompatibility: \"Requires a .NET repository with static HTML assets or generated frontend output; use on rendered output rather than raw Razor or Blazor source files.\"</h2>\n<h1>HTMLHint for Static HTML in .NET Repositories</h1>\n<h2>Trigger On</h2>\n<ul>\n<li>the repo has static HTML files, generated frontend output, or standalone templates under <code>wwwroot/</code>, <code>dist/</code>, or other web folders</li>\n<li>the user asks for HTML structure checks, invalid attribute detection, or basic DOM-quality linting</li>\n<li>the repo wants a narrow HTML gate separate from JS, CSS, and full-site runtime audits</li>\n</ul>\n<h2>Do Not Use For</h2>\n<ul>\n<li>raw <code>.cshtml</code> or <code>.razor</code> source with server-side directives; lint the rendered or published output instead</li>\n<li>JavaScript or TypeScript linting; route that to <code>dotnet-eslint</code></li>\n<li>runtime performance, accessibility, SEO, or headers; route that to <code>dotnet-webhint</code></li>\n</ul>\n<h2>Inputs</h2>\n<ul>\n<li>the nearest <code>AGENTS.md</code></li>\n<li><code>package.json</code></li>\n<li><code>.htmlhintrc</code> or equivalent config if present</li>\n<li>the real static HTML target: source templates, built output, or deployed URL</li>\n</ul>\n<h2>Workflow</h2>\n<ol>\n<li>Choose the right target first:\n<ul>\n<li>static HTML source files</li>\n<li>generated build output such as <code>dist/</code></li>\n<li>a reachable URL when the page is already served</li>\n</ul>\n</li>\n<li>Prefer repo-local installation and checked-in config for repeatable runs.</li>\n<li>Keep HTMLHint focused on static HTML correctness and lightweight policy.</li>\n<li>Add narrow scripts to <code>package.json</code>, for example:\n<ul>\n<li><code>htmlhint \"dist/**/*.html\"</code></li>\n<li><code>htmlhint \"wwwroot/**/*.html\"</code></li>\n</ul>\n</li>\n<li>If the repo has templating syntax that confuses the parser, lint the rendered output instead of forcing source templates through the tool.</li>\n<li>Use rule overrides deliberately for real project conventions; do not disable broad classes of checks just to make a noisy first pass green.</li>\n<li>Rerun the publish or frontend build flow if fixes touched generated or packaged HTML sources.</li>\n</ol>\n<h2>Bootstrap When Missing</h2>\n<ol>\n<li>Detect current state:\n<ul>\n<li><code>rg --files -g 'package.json' -g '.htmlhintrc*' -g '*.html'</code></li>\n<li><code>rg -n '\"htmlhint\"' --glob 'package.json' .</code></li>\n</ul>\n</li>\n<li>Prefer a repo-local install:\n<ul>\n<li><code>npm install --save-dev htmlhint</code></li>\n</ul>\n</li>\n<li>Add or refine <code>.htmlhintrc</code> only after confirming the actual target files.</li>\n<li>Add repeatable commands to <code>AGENTS.md</code> and <code>package.json</code>, then verify with:\n<ul>\n<li><code>npx htmlhint \"dist/**/*.html\"</code></li>\n<li><code>npx htmlhint https://example.com</code></li>\n</ul>\n</li>\n<li>Return <code>status: configured</code> if HTMLHint now owns a clear static-HTML gate, or <code>status: improved</code> if the existing setup was tightened.</li>\n<li>Return <code>status: not_applicable</code> when the repo's HTML is primarily server-rendered templates that should be validated after rendering instead.</li>\n</ol>\n<h2>Handle Failures</h2>\n<ul>\n<li>Parser noise on Razor, Blazor, or other server-side template syntax is a target-selection problem; lint built output instead of source templates.</li>\n<li>URL-based checks can fail on auth, SPA routing, or environment drift; verify the served target is reachable and stable before trusting the result.</li>\n<li>Large volumes of trivial attribute warnings usually mean the config was copied from another stack and needs to be adapted to the repo's real HTML conventions.</li>\n</ul>\n<h2>Deliver</h2>\n<ul>\n<li>a repeatable static HTML lint gate</li>\n<li>clear targeting rules for source HTML versus rendered output</li>\n<li>checked-in config that matches the repo's actual page structure</li>\n</ul>\n<h2>Validate</h2>\n<ul>\n<li>the lint target contains real static HTML, not unsupported template syntax</li>\n<li>commands are reproducible from repo-local dependencies</li>\n<li>HTMLHint ownership is kept separate from broader site-audit tooling</li>\n<li>fixes were verified on the built or served output that actually ships</li>\n</ul>\n<h2>Ralph Loop</h2>\n<ol>\n<li>Plan: analyze current state, target outcome, constraints, and risks.</li>\n<li>Execute one step and produce a concrete delta.</li>\n<li>Review the result and capture findings.</li>\n<li>Apply fixes in small batches and rerun checks.</li>\n<li>Update the plan after each iteration.</li>\n<li>Repeat until outcomes are acceptable.</li>\n<li>If a dependency is missing, bootstrap it or return <code>status: not_applicable</code> with a reason.</li>\n</ol>\n<h3>Required Result Format</h3>\n<ul>\n<li><code>status</code>: <code>complete</code> | <code>clean</code> | <code>improved</code> | <code>configured</code> | <code>not_applicable</code> | <code>blocked</code></li>\n<li><code>plan</code>: concise plan and current step</li>\n<li><code>actions_taken</code>: concrete changes made</li>\n<li><code>verification</code>: commands, checks, or review evidence</li>\n<li><code>remaining</code>: unresolved items or <code>none</code></li>\n</ul>\n<h2>Example Requests</h2>\n<ul>\n<li>\"Add HTMLHint for the built static site in this repo.\"</li>\n<li>\"Lint the generated HTML before deployment.\"</li>\n<li>\"Why is HTMLHint failing on Razor pages?\"</li>\n</ul>\n","files":[{"path":"SKILL.md","sizeBytes":4752,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-27T21:02:13.06196Z","sha256":"2DE3FA27877E41DD2EDF6B84696B1DA8D68A23E76E77B567B0D44A2938878F8F","sizeBytes":2227},"review":null,"source":{"repositoryUrl":"https://github.com/Postpartum-genushyacinthus29/dotnet-skills","path":"skills/dotnet-htmlhint","license":"MIT","commit":"bfa4ebd86f6bd674800f209ebf72ca770c2f026b","subtreeSha":"E0F1C6C1E41715642E1212B942CDCA534E8A5865613797B88CB3591A0E719EA9","lastSyncedAt":"2026-09-27T21:00:28.368219Z"},"reviewedAt":"2026-09-27T21:10:46.810714Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/Postpartum-genushyacinthus29/dotnet-skills/tree/main/skills/dotnet-htmlhint"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install postpartum-genushyacinthus29-dotnet-skills@llmmart"},{"target":"git","command":"git clone https://github.com/Postpartum-genushyacinthus29/dotnet-skills.git"}]}