ChemaVXandClaude Opus 5 0580357333 infografia_brief: slug y sitio opcionales
Escribir un slug de 40 caracteres y acordarse del --site era casi toda la
fricción de la herramienta, y el caso normal es siempre el mismo: quiero la
infografía del borrador que acabo de terminar.

    infografia            → el borrador más recién tocado de los dos sitios
    infografia --lista    → los enumera, con si tienen imagen ya o no
    infografia <slug>     → busca en los dos sitios; los slugs no se repiten
                            entre blogs, así que no hay ambigüedad posible
    infografia <URL>      → el sitio sale del dominio (pegada del navegador)

--site sigue existiendo, ahora solo para desambiguar o para acotar la búsqueda
de borradores a un blog.

Solo se ofrecen borradores al elegir automáticamente: un post publicado ya
tiene su imagen, y pedir el guion de uno publicado es la excepción, para la que
está pasar el slug o la URL a mano.

_post_list vuelca a fichero y no a PIPE, copiando el patrón de seo_watch y
remate_watch: un PIPE se trunca a 64 KB en silencio y con --formats html los
cuerpos son largos.

Verificado: las dos formas de URL (EN en www, ES en apex) resuelven su sitio,
el slug suelto encuentra el blog correcto, el slug inexistente sale con un
error claro, y la selección automática coge el más reciente y avisa de cuántos
más hay. El caso "no hay borradores" sale limpio en vez de reventar.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 14:28:32 +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%