Detectable checks
The layer the engine actually runs on files and code: 80 core and 268 granular checks.
Boundary: Not a catalog row count; one check can cover several catalog items.
The R50 number contract: security patterns, 348 implemented checks, 68 security patterns, 26 SafeFix, 21 runtime bridges, 24 external recipes.
THE R50 CAPABILITY SET
The engine is read in three separate layers: detectable checks, security patterns, and the verification/action layers. These numbers do not measure the same thing; each shows a different function of the product.
The layer the engine actually runs on files and code: 80 core and 268 granular checks.
Boundary: Not a catalog row count; one check can cover several catalog items.
Covers the fundamentals: meta, canonical addresses, structured data, accessibility, security readiness and deployment hygiene.
Extends the core layer with finer fields, types, attributes and page contexts.
Scans source and configuration files for secret leaks, exposed files, risky client code and server-side security signals.
Boundary: Not active exploitation or a penetration test.
Produces low-risk, reversible changes in a working copy and records changed files with rollback data.
Links results that cannot be measured from static files to independent tools such as PageSpeed and SSL Labs.
Turns steps required on DNS, CDN, hosting, Search Console and similar platforms into actionable instructions.
WORKING LAYER

The ten-domain scoreboard: the full decision surface from security to delivery.
The four-class split: static, runtime, external and outside-automated-scope.
Each domain follows the same seven-part template: purpose, typical problems, what the engine checks, what it can fix, live verification, sample output and executive meaning.
The Security Headers domain examines the policy layer that tells modern browsers within which security boundaries to run the page. It is not a mere 'is the header present?' check; HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy and Permissions-Policy must be handled in a way that fits the target site type.
What the engine checks: The engine statically classifies header presence, value quality, in-site conflicts (inline code ↔ strict CSP) and the risk of clashing with an existing server policy.
What it can fix: In supported environments (.htaccess) it produces a secure baseline header set; if the site already has its own CSP it does not add a duplicate policy; it turns advice into a recipe.
Live verification: Whether headers actually apply live depends on hosting behaviour; verified post-deployment with SecurityHeaders and Mozilla Observatory.
| Sample indicator | Before | After |
|---|---|---|
| Header coverage | 3/9 | 9/9 |
| CSP conflict | present | none |
| HSTS | none | max-age + subdomains |
What the engine does: The engine statically classifies header presence, value quality, in-site conflicts (inline code ↔ strict CSP) and the risk of clashing with an existing server policy.
Splitting the 348 checks into two layers is not arbitrary. The 80 core checks are the backbone that runs on every site in every review: the header family, canonical structure, schema skeleton, delivery hygiene — the non-negotiable signals. The 268 granular checks deepen with context: multilingual structures, media variants, form and interaction surfaces — continuing where the core leaves off.
The practical consequence: a small site and a large corporate surface pass through the same backbone, while the granular layer opens only as far as needed. Every finding carries the layer it came from, so 'why did this check run?' is answered inside the report itself. The same three counters — CLI, quality gate and ledger — independently count 348 on every run; if the number drifts, the release is not sealed.
A map of the web-quality universe.
0 — nothing left open.
Yes; implemented/runtime/external/conditional/manual/N-A.
80 core + 268 granular = 348.
Static meta/SEO/a11y/schema/security/performance signals.
26 SafeFix generators make reversible fixes.