Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when auditing server configuration or diagnosing broken resources. Applies to any web server serving HTML, CSS, JS, images, fonts, or other static assets.
.claude/skills/thedaviddias-mime-type/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 100% | 4 |
| gemini-3.1-pro-preview | 100% | 1 |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-12 | ✗→✓ | ▲ Improved | -22% | 0% |
| case-01 | ✓→✓ | = Same ✓ | -17% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 38% | 0% |
| case-03 | ✓→✓ | = Same ✓ | -3% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 49% | 0% |
Incorrect MIME types cause browsers to block stylesheets and scripts (MIME sniffing is disabled by X-Content-Type-Options: nosniff), breaking page rendering and signalling poor site quality to crawlers.
For key pages and their linked resources, inspect the HTTP Content-Type response header. Verify HTML responses use text/html; charset=utf-8, CSS uses text/css, JS uses text/javascript, and images use image/jpeg, image/png, etc.
Update your server configuration to serve each file type with its correct MIME type. Set X-Content-Type-Options: nosniff to prevent browsers from guessing content types. In Next.js and similar frameworks, configure headers in next.config.js.
The Content-Type header tells browsers and crawlers what kind of content is being sent. When it mismatches the actual file type, browsers either block the resource or render it incorrectly—CSS served as text/plain won't be applied, and JavaScript served as text/html may be blocked by strict MIME checking.
For HTML, CSS, and JS assets, check the Content-Type response header. Verify HTML responses include 'charset=utf-8'. Check that X-Content-Type-Options: nosniff is set. Flag any resource returning Content-Type: text/html that is not an HTML page. Check for missing charset declarations on text responses.
For full implementation details, code examples, and framework-specific guidance, see references/rule.md.
Rule page: https://frontendchecklist.io/en/rules/seo/mime-type
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | pass→pass | 5,757 | 2,342 | -59% | 1 | 1 | 0% | 1,012 | 840 | -17% | 0 | 0 | — |
case-02 | pass→pass | 4,139 | 3,703 | -11% | 1 | 1 | 0% | 759 | 1,049 | +38% | 0 | 0 | — |
case-03 | pass→pass | 5,940 | 3,408 | -43% | 1 | 1 | 0% | 1,061 | 1,024 | -3% | 0 | 0 | — |
case-04 | pass→pass | 2,793 | 1,584 | -43% | 1 | 1 | 0% | 472 | 705 | +49% | 0 | 0 | — |
case-05 | pass→pass | 12,927 | 7,720 | -40% | 1 | 1 | 0% | 2,214 | 1,756 | -21% | 0 | 0 | — |
case-06 | pass→pass | 8,731 | 4,302 | -51% | 1 | 1 | 0% | 1,511 | 1,153 | -24% | 0 | 0 | — |
case-07 | pass→pass | 9,051 | 4,950 | -45% | 1 | 1 | 0% | 1,808 | 1,395 | -23% | 0 | 0 | — |
case-08 | pass→pass | 1,433 | 1,840 | +28% | 1 | 1 | 0% | 210 | 742 | +253% | 0 | 0 | — |
case-09 | pass→pass | 2,267 | 3,687 | +63% | 1 | 1 | 0% | 390 | 950 | +144% | 0 | 0 | — |
case-10 | pass→pass | 6,222 | 5,011 | -19% | 1 | 1 | 0% | 1,102 | 1,372 | +25% | 0 | 0 | — |
case-11 | pass→pass | 8,005 | 5,244 | -34% | 1 | 1 | 0% | 1,457 | 1,320 | -9% | 0 | 0 | — |
case-12 | fail→pass | 15,580 | 10,321 | -34% | 1 | 1 | 0% | 2,658 | 2,067 | -22% | 0 | 0 | — |
case-13 | pass→pass | 8,861 | 2,682 | -70% | 1 | 1 | 0% | 1,680 | 929 | -45% | 0 | 0 | — |
case-14 | pass→pass | 7,494 | 2,096 | -72% | 1 | 1 | 0% | 1,287 | 759 | -41% | 0 | 0 | — |
case-15 | pass→pass | 4,565 | 3,224 | -29% | 1 | 1 | 0% | 866 | 1,004 | +16% | 0 | 0 | — |
case-16 | pass→pass | 4,866 | 2,257 | -54% | 1 | 1 | 0% | 988 | 801 | -19% | 0 | 0 | — |
case-17 | pass→pass | 10,165 | 7,477 | -26% | 1 | 1 | 0% | 1,982 | 1,916 | -3% | 0 | 0 | — |
case-18 | pass→pass | 10,918 | 4,668 | -57% | 1 | 1 | 0% | 1,959 | 1,220 | -38% | 0 | 0 | — |
case-19 | pass→pass | 10,686 | 3,993 | -63% | 1 | 1 | 0% | 1,866 | 1,200 | -36% | 0 | 0 | — |
case-20 | pass→pass | 4,388 | 3,907 | -11% | 1 | 1 | 0% | 886 | 1,177 | +33% | 0 | 0 | — |
case-21 | pass→pass | 4,815 | 4,249 | -12% | 1 | 1 | 0% | 981 | 1,251 | +28% | 0 | 0 | — |
case-22 | pass→pass | 3,541 | 3,845 | +9% | 1 | 1 | 0% | 695 | 1,121 | +61% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +5 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.