Tarjeta de la skill markeup-images del sistema MarkeUP

La imagen del post

La imagen del post: una fuente por nombre con markeup-images

La skill markeup-images lleva la portada desde la fuente del vault hasta public/img: recorte 1920×1080, variantes 640 y 1280 en WebP y aviso si dos archivos compiten por el mismo nombre.

Admin4 de octubre de 2026, 18:115 min de lectura

La skill markeup-images —«Procesa las imagenes del post: una fuente, tres tamanos»— es una de las habilidades que el sistema MarkeUP tiene escritas para Hermes Agent y para Cline. Esta página es su ficha pública: lo que sabe hacer, cuándo se usa y qué comandos ejecuta.

De la foto original a la portada del post: un solo archivo por nombre y tres tamaños que genera el pipeline.

El texto de la sección «Instrucciones del canon» está transcrito del fichero fuente —que se escribe sin tildes por convención de su propio gate—, así que es exactamente lo que lee el agente cuando le pides algo. La cabecera y esta entradilla sí están redactadas para leerlas.

DatoValor
Skillmarkeup-images
ResponsabilidadProcesa las imagenes del post: una fuente, tres tamanos.
Versión1.0.0
Autoríauriszarernesto-blip · licencia MIT
Plataformaslinux · macos
Tags del canonimages · sharp · webp · pipeline · vault · markeup
Skills relacionadasmarkeup-frontmatter · markeup-cli · markeup-media
Fuente~/.hermes/skills/markeup/markeup-images/SKILL.md

Responsabilidad unica: la imagen de un post, de la fuente a public/img/. La regla que gobierna todo lo demas: una sola fuente por nombre.

Detalle (variantes, informe de colisiones, roturas historicas): references/pipeline-rules.md. Doc de sistema: AGENTS.md § Imagenes.

  • Un post nuevo necesita portada (image: del frontmatter).
  • Hay que reemplazar una foto sin que produccion y local sirvan cosas distintas.
  • npm run images:check (o npm run doctor) falla en rojo.
  • image: apunta a un archivo que no existe, o el -640.webp que pinta ResponsiveImage no aparece.

src/content/posts/img/<nombre>.<ext> (la fuente) → npm run images → public/img/<nombre>.webp (master 1920×1080 recortado cover + variantes -640 y -1280, solo WebP).

QueDondeManda
Fuentesrc/content/posts/img/ (solo el nivel superior)La persona
Salidapublic/img/ (generado)npm run images
Sobrantessrc/content/posts/img/_originales/La persona (mover, no borrar)

Un archivo por nombre. foto.jpeg y foto.webp escriben el mismo public/img/foto.webp, y quien gana no puede depender del orden de procesado: en local ganaba la ultima que editabas y en un clon limpio (Cloudflare) decidia una prioridad de extension → produccion servia una foto y local otra.

Al reemplazar una imagen se sustituye la fuente que ya existe (mismo nombre, misma extension) y lo que sobra se mueve a _originales/.

cd ~/markeup
npm run images                  # procesa lo nuevo/modificado
npm run images -- --force       # regenera TODO (tras cambiar fuentes de sitio)
npm run images -- --watch       # vigila y reprocesa
npm run images:collisions       # informe: quien compite por cada nombre
npm run images:check            # lo mismo + exit 1 si hay duplicados (BLOQUEANTE en CI)
npm run images:verify           # hash a hash: ¿public/img es lo que producen las fuentes?
npm run sync:images             # imagenes huerfanas en public/img (dry-run, no borra)
npm run sync:images:apply       # borra las huerfanas (pide confirmacion; --yes en CI)
  • images:check es el gate: dos fuentes con el mismo basename lo tumban, y esta en npm run doctor. En un clon limpio (Cloudflare) no se ejecuta: hay que dejarlo verde en local.
  • sync:images nunca toca public/img/og/ (tarjetas Open Graph) ni _originales/ (esa carpeta esta fuera del nivel escaneado).
  • --include-sources es la unica forma de que sync:images mire src/content/posts/img/: sin ese flag tus fuentes estan a salvo.

SintomaCausaQue se hace
images:check exit 1Dos fuentes, mismo nombrenpm run images:collisions, decidir cual es la buena, mover la otra a _originales/
images:verify exit 1public/img no coincide con las fuentesnpm run images -- --force y commitear public/img/
La foto no cambia en produccion pero si en localColision de fuentes resuelta por el ordenVer la tabla de arriba (es el sintoma clasico)
image: rotoArchivo fuera de img/, con tilde o .md de masVer markeup-frontmatter
Hueco en vez de imagenLa fuente no esta en el nivel superiorMoverla a src/content/posts/img/

  1. La imagen se guarda en .webp desde el principio: el pipeline no “convierte lo que le llegue”, espera la fuente correcta en el sitio correcto.
  2. Nombra la fuente igual que el slug del post (el-aura.webp), como pide markeup-frontmatter; ahorra el placeholder.
  3. No editar a mano nada de public/img/: es salida del pipeline (se regenera y se commitea).
  4. Tras cambiar fuentes, npm run images -- --force antes de npm run build.
  5. Tocar imagenes no invalida la cache de render (el .md no cambia): no hace falta npm run content:cache. Esa cache es la de las caches de medios (markeup-media).

cd ~/markeup
npm run images:check     # exit 0: sin duplicados
npm run images:verify    # exit 0: public/img coincide con las fuentes

  • references/pipeline-rules.md — variantes, recorte, informe de colisiones y las dos roturas.
  • markeup-frontmatter — el campo image: y su valor por defecto.
  • Codigo: scripts/js/process-images.js (pipeline) y scripts/js/sync-images.js (huerfanas).

¿Quieres saber cómo se piden estas cosas? La guía completa está en skills de Hermes Agent, con la chuleta de objetivos y los casos paso a paso.

La imagen del post

Explora las ramas del artículo

Compartir este artículo

Posts que enlazan a este artículo

Skills para Hermes Agent