seo-score — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited seo-score (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<!-- Portions Copyright (c) 2026 Enrique Rocha (@soyenriquerocha) - see LICENSE for original authors · tododeia.com · id er-d03758e1 -->
Turns findings (conforming to schema/finding.schema.json) into the two scores. Full model in references/scoring-model.md — follow it exactly.
expected_impact.axis (search, ai, or both).100 × Σ(status_factor × severity for scored findings) / Σ(severity), where status_factor: pass 1.0, warn 0.5, fail 0.0. Exclude needs_api and not_applicable from both sums.Σ(category_value × weight) / Σ(active weight) for each of Search SEO and AI Visibility.severity: 5 and status: fail, cap the affected score at 40 and set capped: true.6b. Coverage floor: report coverage (the % of the axis's always-on weight that carried a scored finding). Below 50% the axis comes back provisional: true with state: "partial" — quote the band and the coverage figure together, never the letter on its own.
Prefer node "${CLAUDE_PLUGIN_ROOT}/scripts/score.mjs" --run <run-dir> (it reads <run-dir>/findings.json) or --findings <path> for a bare findings file, adding --vertical a,b, --multilingual and --environment production|preview|staging|local when the file carries no run context, so the number is reproducible and CI-checkable. --run takes a path, never the word latest: the score command resolves latest[:host] from <root>/<host>/latest.json first and passes the directory. If Node is unavailable, compute by hand following the same formula and note the fallback. Either way the math must match references/scoring-model.md.
{ "search_seo": { "value": 78, "band": "C", "capped": false, "interpretation": "...", "categories": [ {"name":"Indexability & Crawl","weight":22,"value":91,"active":true}, ... ] },
"ai_visibility": { "value": 64, "band": "D", "capped": false, "interpretation": "Citable structure missing; add answer blocks and schema.", "categories": [ ... ] } }~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.