ChemaVX cf61b8bda3 seo_exceptions: waivers de enlazado del backlog ES
Barrido del 2026-07-21: se buscaron todas las entidades del catálogo ES en la
prosa de los 26 posts con enlazado flojo y se pusieron los 24 enlaces honestos
que había. Los 19 que siguen bajo el umbral es porque no hay más entidades del
corpus nombradas en su texto — el catálogo español se cruza poco y forzar un
enlace temático es justo lo que estas excepciones existen para evitar.

Cada waiver dice qué enlaza y qué nombra la prosa que NO tiene artículo, para
que se pueda revisar cuando el catálogo crezca.

Un falso positivo descartado a mano: el «Roosevelt» de la batalla de Los
Ángeles es el presidente, no el portaaviones del artículo de Gimbal/GoFast.

Fuera el waiver de roswell-1947-preguntas-sin-respuesta: ya tiene 2 enlaces
(el de mayo y PURSUE), así que decía algo falso.

El ES pasa de 143 violaciones accionables a 12 (11 meta_description y 1
meta_title largos, que ya estaban ahí pero tapados por el corte del top-6).
2026-07-21 08:10:48 +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%