reviewer-web
Skill0 starsChanged 57 days agoMITView on GitHub
Review static web pages and browser code: HTML, CSS, JavaScript that runs in the page, SVG, web manifests and robots.txt (design atlases, privacy and terms pages, landing pages, PWA shells). Use when reviewing changes to these files, or when the user types /reviewer-web. Catches XSS through innerHTML, contrast and accessibility failures, hard-coded colours that bypass design tokens, mobile overflow, unguarded storage, broken links, SVGs that do not scale, and legal pages that contradict what the app does. Part of the reviewer bundle.
In this repository15 other files it gives its agents.
- ai-scaffoldingSkill
- comment-hygieneSkill
- microfrontendsSkill
- reviewer-cloudflareSkill
- reviewer-dataSkill
- reviewer-docsSkill
- reviewer-godotSkill
- reviewer-pythonSkill
- reviewer-readabilitySkill
- reviewer-shellSkill
- reviewer-toolingSkill
- reviewer-unitySkill
- reviewerSkill
- startup-scriptSkill
- typed-blocksSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
No secrets, internal URLs or <!-- --> notes meant for developers.
- Very specific: line 36
No horizontal scroll at 320–375px.
- Distinctive: line 37
No selectors left behind for removed markup.
- Distinctive: line 43
No accidental globals. Listeners on elements that are re-rendered get removed or delegated.
- Distinctive: line 49
No embedded scripts, external references or leftover editor metadata.
- Very specific: line 77
Use the reviewer format: [severity] path:line — problem, then failure: (the concrete input, state or platform → wrong result) and fix: (the …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Web reviewer
Scope: *.html, *.css, browser *.js/*.mjs, *.svg, *.webmanifest, robots.txt. Worker code goes to reviewer-cloudflare, Unity WebGL templates to reviewer-unity.
Before reviewing
- Open changed pages in a browser when one is available. Check them at 375px wide and at desktop width, in light and dark mode if the page supports both.
- Find the design tokens (CSS custom properties on
:root) and the shared stylesheet.
Checklist
Security
- Data inserted with
innerHTML,outerHTML,insertAdjacentHTMLordocument.writeis an XSS hole unless it is a constant. UsetextContent, or build elements. target="_blank"links to other origins haverel="noopener".- No secrets, internal URLs or
<!-- -->notes meant for developers. HTML comments ship to every visitor. - Third-party scripts are pinned to an exact version, with
integritywhere the CDN supports it.
Accessibility
<html lang>,<meta charset>,<meta name="viewport">and a<title>are present.- Text contrast is at least 4.5:1 (3:1 for large text and UI outlines). Compute it for each token pair the change introduces.
- Actions are
<button>s and navigation is<a href>. Inputs have labels; images havealt(alt=""when decorative). Headings go in order. - Focus is visible. Everything works by keyboard. Touch targets are at least 44px. Animations respect
prefers-reduced-motion.
CSS
- Colours, radii and spacing come from the tokens. A hard-coded hex that duplicates a token drifts on the next palette change.
- Dark mode, when supported, redefines the tokens, so no component hard-codes light colours.
- No horizontal scroll at 320–375px. Use
dvh/svhrather than100vhon mobile. - No selectors left behind for removed markup.
Browser JavaScript
localStorage/sessionStorageaccess is wrapped intry/catch. It throws in private modes and with blocked storage.fetchhandles network failure and non-2xx status.- No accidental globals. Listeners on elements that are re-rendered get removed or delegated.
- Feature detection before using newer APIs.
SVG
viewBoxis set, so the image scales. No fixedwidth/heightwhen it is resized by CSS.- No embedded scripts, external references or leftover editor metadata.
ids are unique when SVGs are inlined together. Text is converted to paths when the font isn't guaranteed.
Content
- Privacy and terms pages match what the app actually does: data collected, where it is stored, third parties, contact address, effective date. Check the claims against the code (analytics, leaderboards, device ids, crash reporting).
- Relative links and anchors resolve after files move.
PWA
- The manifest has
name,start_url,display, and icons at 192 and 512 px (plus maskable if used). - The service worker update flow does not trap users on an old build.
Readability
Apply reviewer-readability to the same files (names, structure, dead code, and whether comments are true, needed and well-shaped), plus:
- CSS custom properties are named by role (
--muted,--delft-deep), not by value (--grey-2). Class names follow one scheme. - Notes for developers go in CSS
/* */or JS comments, never HTML comments. - JSDoc on browser functions the project documents. Inline
style=""only for one-off values such as a swatch colour.
Not findings
- Vendor prefixes and formatting a build tool or formatter handles.
- Contrast of purely decorative elements.
Report
Use the reviewer format: [severity] path:line — problem, then failure: (the concrete input, state or platform → wrong result) and fix: (the smallest change). Most severe first. Prove each finding before reporting it, and say No findings with what you checked when there are none.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

