Code & Engineering

HTML Email Compatibility Review

Reviews ONE HTML email (the source of a newsletter, a receipt or a notice) for the four mistakes that make it fall apart in common mail clients, and lists only those, one line each with a fixed code, the place, which client breaks it and the fix - or exactly No findings. It catches flex or grid used to lay out columns, layout rules that exist only in a style block in the head, images with no alt attribute, and a CSS background image with no colour fallback behind the text. It leaves out the safe look-alikes, such as a style block used only for media queries and an empty alt on a decorative spacer. Use before an email goes to a sending tool, to audit a template someone else built, or to find out why a message looks broken in Outlook for Windows or in a webmail that strips styles.

HTML Email Compatibility Review is a tested SKILL.md that reviews ONE HTML email (the source of a newsletter, a receipt or a notice) for the four mistakes that make it fall apart in common mail clients, and lists only those, one line each with a fixed code, the place, which client breaks it and the fix - or exactly No findings; an agent buys it once for $0.01 over x402.

Tested 2026-10-19No code, no hidden instructionsv1.0.0 · 7.4 KB · perpetual license

Not for

Sender records, spam scores, links, the copy, dark mode, the length of the whole message and the sending service. No size is given for the point where Gmail cuts a message, because Google names none. It reads one pasted source and judges only the markup.

Tested, honestly

Tested 2026-10-19 with a strong and a weak model.

SonnetStrong model, claude-sonnet-5-5
Right on all 3 cases, read by hand. On the autumn-sale email it gave the flex wrapper and the background image with no colour behind the white heading, and left out the media-query style block. On the shipping notice it gave the head-only layout and the logo without alt, and left out the spacer with an empty alt. On the clean receipt it answered exactly No findings. My first version of one check wrongly rejected its mention of a media query inside a fix; the check was relaxed and the recorded answer re-evaluated without a new call.
HaikuWeak model, claude-haiku-5-5
Right on all 3 cases, read by hand. It gave the same two lines for the autumn-sale email and the shipping notice, indented by four spaces, which the format check allows, and answered exactly No findings on the clean receipt, including its background image that has a dark colour set beside it.

Full test summary

Example

Our own test text, before and after the skill ran. Excerpts only.

English · claude-sonnet-5-5

Before

<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>Your order has shipped</title> <style> .wrap { width: 600px; margin: 0 auto; padding: 24px; background: #ffffff; } .title { font: bold 24px Arial, sans-serif; color: #222222; text-align: center; } .body-text { font: 16px/1.5 Arial, sans-serif; color: #444444; }…

After

HEAD-ONLY-LAYOUT — the `style` block in the head holds `.wrap` (width, margin, padding, background), `.title`, `.body-text` and `.btn`, and none of the elements carry inline equivalents — webmail clients that do not support head `style` blocks (Gmail's mobile webmail, some European webmail services) and Gmail apps on non-Google mailboxes show an unstyled email with no 600px frame, no button…

What is in the file

  • The answer
  • What the clients do (a public support table for email clients, data of 16 September 2026)
  • The codes
  • How to read the email
  • Rules
  • Work in this order
  • Short example

Languages

English. Tried in: English.

License

Perpetual, non-exclusive; use and modify for yourself incl. paid work; no resale or republishing. Holder: Georgi Kalchev, aiskills402.com. Full terms.

Versions

Current version 1.0.0, updated 2026-10-19. Whoever bought an earlier version gets new ones free through the same re-download token.

  1. v1.0.0 · 2026-10-19

    First release, written in the light-test batch of 19 October 2026 (three cases, price $0.01). The idea is ours; no foreign skill was opened, facts come from public pages (see notes/ideas.md). Output: one line per finding with a fixed code, or exactly `No findings.`

    Test: three cases written by hand (an email built with flex and a background image with no fallback colour, a shipping notice with layout only in the head and a logo without alt, and a clean receipt), one run on Claude Sonnet and one on Claude Haiku, no run without the skill, no iteration on the skill text after the runs. `test/control.mjs` shows that the checks pass on the ideal answers and fail on realistic wrong ones. See `test-summary.json` for the verdicts read by hand.

FAQ

Would a head style block that only holds media queries be reported?

No. Media queries only improve a layout that is already complete inline, so a head style block used for them, or for a hover rule, is left alone. The skill reports layout rules that exist only in the head.

Does an empty alt on a spacer image count as a defect?

No. For a picture that carries no meaning the empty form is the correct one. The skill reports only an img element that has no alt attribute at all.

Which emails were used in the trial?

An autumn-sale email using flex and a background image with no colour behind white text, a shipping notice with all structure in the head and a logo without alt, and a clean receipt. Claude Sonnet and Claude Haiku ran once each; both were right by hand.

What is returned for an email that is fine?

The sentence No findings. and nothing more. A problem arrives as a line with a code, the place, the client that breaks it and the fix.

Share

Read this page as Markdown: /skills/html-email-compat-review.md.

More in Code & Engineering

  • Stripe Webhook Review

    Code & Engineering

    SKILL.md · v1.0.0 · 8.0 KB

    Reviews ONE Stripe webhook handler (the route code, in any language or framework) for the five mistakes that let a forged or repeated event move money, grant access or ship goods, and lists only those, one line each with a fixed code, the place, why it is dangerous and the fix - or exactly No findings. It catches a body parsed or re-serialized before the signature is checked, a handler that never checks the signature, a recency tolerance switched off or set huge, no record of event ids so a retry repeats the side effect, and slow work done before the 2xx answer. It leaves out the safe look-alikes, such as a raw body kept on the webhook route while the other routes parse JSON, and the default tolerance. Use to review a webhook route before going live, to audit one that someone else wrote, or to find out why signature checks fail or orders are fulfilled twice.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 19 Oct 2026

  • GitHub Actions Security Review

    Code & Engineering

    SKILL.md · v1.0.0 · 8.3 KB

    Reviews ONE GitHub Actions workflow file (YAML) for the five mistakes that let an outsider run code or read secrets in your pipeline, and lists only those, one line each with a fixed code, the place, why it is dangerous and the fix - or exactly No findings. It catches text from an issue, pull request, comment or branch name pasted straight into a shell step, a pull_request_target or workflow_run job that checks out and runs the code of the pull request, a third-party action pinned to a tag or branch instead of a full commit hash, a missing or too wide permissions block, and a secret that is printed or handed to code you do not control. It leaves out the safe look-alikes, such as untrusted text passed through an env variable and quoted, or first-party actions pinned to a version tag. Use to review a workflow before merging it, to audit the pipelines of a repository, or to gate a pull request that edits a workflow file.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 19 Oct 2026

  • API Breaking Change Check for OpenAPI

    Code & Engineering

    SKILL.md · v1.0.1 · 10.7 KB

    Compares two versions of one API description (OpenAPI 3.0 or 3.1 in YAML or JSON, or two JSON Schemas of one request or response) and lists ONLY the changes that break clients written against the old version, one line each with a fixed code, the place, old and new, and who breaks - or exactly No breaking changes. The skill judges by direction - a request may widen safely and breaks when it narrows, a response may narrow safely and breaks when it widens - and it follows each $ref and allOf to the operations that use it, so a change made only in a shared schema is still found, while a renamed path variable, a new optional field, a reformatted file and a field moved between allOf branches are left out. Use to check an API change before release, review a pull request that edits an OpenAPI file, or gate a pipeline on breaking changes.

    $0.03once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 18 Oct 2026

  • GDPR Cookie Consent Review: Banner, Consent Mode

    Code & Engineering

    SKILL.md · v1.0.0 · 17.9 KB

    Reviews a pasted snapshot of a website's cookie and consent setup (scripts in the head, the banner with each toggle's default, the Consent Mode or tag-manager setup, what a fresh browser stored and contacted before any click, the cookie table, the owner's note) against published EU law, court rulings, EDPB guidance, national regulators and vendor documents. It is a technical review, not legal advice. It flags trackers and embeds that store or read before a choice, a Consent Mode default that is late or granted, pre-ticked and implied consent, analytics filed as strictly necessary, legitimate interest used for cookies, a reject option that is missing or disguised, bundled purposes, missing cookie information, no easy withdrawal, a refusal that is not kept, missing Consent Mode v2 signals, personalised Google ads without a certified CMP, cookie walls, and cookieless pings or Google font links treated as exempt. Each finding has a fixed code, the place, the named source with its weight and a fix, then one verdict. Where sources disagree, the line says so and never picks a side. Use to review cookie consent banner setups, run a GDPR cookie banner check or do a Consent Mode setup review before a regulator or a customer asks.

    $0.01once

    • x402
    • USDC
    • Base
    Get skill

    Tested with Sonnet and Haiku, 16 Oct 2026