ChemaVX 7bc9b3e2aa validador: aceptar --site, que llevaba desde siempre clavado al EN
seo_validate solo sabía preguntar a ghst-en, así que un slug español daba
404 y el paso 5 del remate —validar hasta que quede limpio— NUNCA pudo
completarse en el blog ES, pese a que el checklist afirma que todas las
herramientas aceptan --site.

Y arrastraba el mismo fallo de SITE_HOST que ya apareció en el auditor:
validando el Varginha del ES con el host del EN cuenta 0 enlaces internos
donde hay 1, y pediría añadir los que ya tiene. Ahora llama a R.usar_sitio.

Peor de cara al futuro, y por eso queda escrito en el módulo: hoy no hay
ningún slug repetido entre los dos blogs, pero el día que lo hubiera el
validador habría validado el post equivocado sin decir una palabra.
2026-07-28 07:51:51 +00:00

seo-tools

SEO rule engine + tooling for the Ghost blogs (EN: theexclusionzone.com).

  • seo_rules.py — shared rule engine (pure functions, no I/O). Single source of truth for thresholds + checks. Consumed by the auditor, the validator, and (vendored) by ResearchOwl's blog pipeline.
  • seo_audit.py — Tool A: site-wide auditor (reads all published posts via ghst-en).
  • seo_validate.py — Tool C: single-post pre-publish validator (seo-check wraps this).
  • seo_exceptions.py — documented, consciously-accepted waivers (auditor reporting filter).
  • seo_mirror.py — OG/Twitter mirroring helper.
  • phase2_*.py/json — one-off batch helpers (kept for provenance).

No secrets live here. Ghost access is via the ghst-en wrapper (~/.local/bin), which fetches a staff token on demand from the pod and never writes it to disk.

S
Description
No description provided
Readme
683 KiB
Languages
Python 100%