melkin — ~/lab/doodle.mdx

~/lab/doodle

Doodle

Dibujos en tinta negra sobre papel con textura para mis posts de Substack

· claude-code · svg · node · headless-chrome · repo

claude --plugin-dir /path/to/hidkit
skills/doodle/SKILL.md
| Preset | Size in pixels | Use |
|---|---|---|
| `cover` | 1456 × 1048 | Post header and social preview |
| `wide` | 1200 × 630 | Wide social preview |
| `inline` | 1460 wide, free height | Drawing inside the text, such as a diagram |
| `spot` | 600 × 600 | Small icon between sections |

Por qué lo construí

Quiero que mis posts de Substack tengan dibujos que parezcan hechos por una persona, con un chiste pequeño adentro. Las imágenes de stock y el clip art no logran eso. Doodle me da un boceto en tinta negra a partir de la idea del post.

Lo pido con palabras normales, como “portada para Substack”, “garabato” o “dibújame”. La tabla del snippet lista los formatos, y cover es el formato por defecto. Los tamaños vienen de guías de terceros, no de la ayuda de Substack, así que no están verificados.

La guía de estilo

El modelo piensa 3 conceptos y elige el que se lee más rápido. La guía pide un giro sobre un objeto conocido en lugar de una escena literal. Evita los símbolos de stock, como el bombillo y el cohete, salvo que un giro cambie su sentido.

  • Voz: autocrítica y tierna. El personaje duda, comete errores pequeños y lo vuelve a intentar.
  • Composición: un punto focal fuera del centro, entre 40 y 60 por ciento de la hoja vacía, y de 3 a 7 elementos.
  • Línea: una sola pluma con 3 grosores. Las formas son paths, no <rect> ni <circle>, porque una forma perfecta parece clip art.

Salvo que yo pida otras personas, la persona del dibujo es el personaje recurrente. Es un hombre de piel oscura con afro corto, bigote, chivera y lentes redondos. Tiene 5 expresiones (neutral, feliz, preocupada, sorprendida y cansada) y una cara de parpadeo para la animación.

El script de tinta

node <skill-dir>/scripts/ink.mjs --preset <preset> <dir>/<slug>.svg

El script revisa que el dibujo no tenga color: rechaza el gris, el color, los degradados y la opacidad. Agrega un filtro de tinta a mano y una segunda línea de pluma, más delgada.

Después pone el dibujo sobre papel: newsprint, sketchbook, kraft o white. Por defecto también agrega cinta en 2 esquinas y 2 manchas de tinta. --material full agrega un aro de café, y --material none quita las marcas.

El script exporta un PNG con Chrome headless. Después el modelo mira el PNG y responde un chequeo de gusto, por ejemplo “¿la idea se lee en 2 segundos sin el título?”. Si un chequeo falla, corrige el SVG una vez.

hire.me

¿Construyes algo parecido? Lo hago para clientes. Respondo en menos de 48 h.