Two contract changes, both about a tool being readable — by a person looking at a number, and by an agent reading an exit code.
The core presence checks are weighted like fundamentals
core-title-present, core-viewport-present, core-description-present, core-h1-present and core-canonical-present were all weight 1, the bottom of a scale running to 25, while ten canonical edge-case rules sat at 6–8 and passed vacuously on a page with no canonical to examine.
A page missing its title lost a single weight-point. <html><body><p>x</p></body></html> — no title, description, lang, viewport, canonical or h1 — scored 84/100. core-title-unique at 5 meant a duplicated title counted five times a missing one.
It read as an oversight rather than a policy, because the product already weights presence checks heavily elsewhere: schema-present 25, images-alt-present 20, core-title-present 1. They are now 25, 20, 15, 15 and 10.
Scores move, in the right direction. A site that has the fundamentals is unaffected or better, because they now count:
| before | after | |
|---|---|---|
| growthmarketing.ai | 94 | 94 (core 100) |
| livechatai.com | 87 | 92 (core 100) |
| a properly marked-up page | — | core 99 |
| a blank document | 84 | 81 (core 85 → 47) |
Every audit records run.scoringVersion, and compare treats a change in it as a material run difference — so compare --fail-on-regression reports a model change instead of failing a build over a site that did not change.
Errors exit 2 everywhere
analyze and compare returned 1 for both a failure and a low score, so an agent could not tell "the analysis failed" from "the site scored 65".
| Code | Meaning |
|---|---|
0 |
Success |
1 |
The run worked, result below a threshold (score < 70, or a regression) |
2 |
The command failed |
130 |
Cancelled |
compare keeps 1 for --fail-on-regression. SKILL.md documents the table, which it never did.
Upgrading
If you gate CI on a score, re-baseline once: a site with the fundamentals in place should hold steady or rise. If you branch on exit code 1 to detect errors, switch to 2.