agentleFS
mkolewmkolew/ai/skills/reviewer/reviewer-web/SKILL.md

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.

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
  1. Very specific:

    No secrets, internal URLs or <!-- --> notes meant for developers.

    line 22
  2. Very specific:

    No horizontal scroll at 320–375px.

    line 36
  3. Distinctive:

    No selectors left behind for removed markup.

    line 37
  4. Distinctive:

    No accidental globals. Listeners on elements that are re-rendered get removed or delegated.

    line 43
  5. Distinctive:

    No embedded scripts, external references or leftover editor metadata.

    line 49
  6. Very specific:

    Use the reviewer format: [severity] path:line — problem, then failure: (the concrete input, state or platform → wrong result) and fix: (the …

    line 77

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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, insertAdjacentHTML or document.write is an XSS hole unless it is a constant. Use textContent, or build elements.
  • target="_blank" links to other origins have rel="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 integrity where 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 have alt (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/svh rather than 100vh on mobile.
  • No selectors left behind for removed markup.

Browser JavaScript

  • localStorage/sessionStorage access is wrapped in try/catch. It throws in private modes and with blocked storage.
  • fetch handles 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

  • viewBox is set, so the image scales. No fixed width/height when 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.