Kit + skill · sitios con IA

Tu referencia se convierte en el estilo del sitio

Reúne de 2 a 5 imágenes que te gusten. La IA pregunta antes de generar, crea todas las imágenes con el mismo estilo, arma la página con movimiento y comprueba si el visitante todavía encuentra el botón.

Banner de site-inspirado: referencias impresas sobre la mesa se convierten en una página web
En resumen

site-inspirado es un kit con una skill para Claude Code que crea sitios que no parecen «hechos por IA». Le das imágenes de referencia (de Pinterest, de una invitación ya impresa o de una foto del local) y la IA hace preguntas e investiga antes de generar cualquier cosa. Después analiza el estilo de esas imágenes, genera las imágenes del sitio con ese mismo estilo mediante Codex y arma la página con transiciones. Al final, una prueba automática comprueba que el botón principal aparezca y que la página funcione en el celular. Para usarlo, necesitas Claude Code, Codex con tu sesión iniciada mediante tu suscripción, Python y Node.

Qué es

El proceso es lo que marca la diferencia, no el código

Pedir «haz un sitio bonito» da como resultado el mismo sitio de siempre. Aportar referencias, responder preguntas y revisar el resultado da como resultado un sitio con identidad propia.

Las seis etapas de site-inspirado: referencias, preguntas, estilo definido, imágenes con ese estilo, movimiento y prueba final

🎯 Preguntas antes de generar

Un guion de preguntas para cada tipo de sitio (evento, negocio, servicio, portafolio). Lo que la persona no responde se investiga o se deja fuera.

🖌️ Estilo definido

estilo.py extrae la paleta de las referencias y calcula el contraste. Todas las imágenes reciben el mismo prompt de estilo y las mismas referencias.

✅ Prueba antes de publicar

portao.js abre la página en una computadora y en un celular, y bloquea el sitio si oculta el botón, falla o ignora la opción «reducir movimiento».

Cómo funciona

Seis etapas, una revisión en cada una

Ninguna etapa comienza sin que se haya aprobado la anterior. La guía de abajo tiene 8 pasos: instalar, estas 6 etapas (pasos 2 a 7) y publicar. La «prueba final» es la comprobación automática del último paso.

refs/→ BRIEF.md→ estilo.json→ img/ + hoja.jpg→ index.html→ prueba: APROBADO
Requisitos

Qué necesitas tener instalado

Funciona en Linux y Mac (en Windows, usa WSL, Linux dentro de Windows). Todo se ejecuta en tu máquina. Las imágenes se generan con Codex mediante tu suscripción, sin clave de API.

Codex CLI con sesión iniciada

Genera las imágenes con image_gen (el generador de imágenes de Codex), adjuntando las referencias. El script ejecuta Codex sin pedir confirmación para cada imagen (--dangerously-bypass-approvals-and-sandbox): úsalo en una carpeta dedicada solo al sitio.

npm i -g @openai/codex   # instala (si aparece el error EACCES: antepón sudo)
codex login              # inicia sesión con tu cuenta de ChatGPT
codex login status       # comprueba el estado

Python 3 + Pillow

Analiza la paleta y crea la hoja de contacto.

python3 -m pip install --user pillow
# si aparece "externally-managed-environment":
sudo apt install python3-pil   # Ubuntu/Debian
brew install pillow            # Mac
python3 -c "import PIL"  # comprueba

Node 18+ y GitHub CLI

Instala primero Node (npm, que Codex necesita, viene incluido) y Git. Node ejecuta la prueba final, que abre la página en un navegador sin ventana, instalado en el paso 1. gh publica en el paso 8.

brew install node git gh   # Mac (o nodejs.org)
sudo apt install nodejs npm git gh   # Ubuntu/Debian
node -v             # 18 o superior
gh auth login      # gh: cli.github.com
Guía de uso · paso a paso

Desde cero hasta publicar el sitio

T es la carpeta de tu sitio (una por sitio). S es la carpeta de la skill. Los pasos 3 y 6 se hacen conversando con Claude Code; los demás son comandos en la terminal.

1

Instala la skill

Clona el repositorio y conecta la skill con Claude Code. $T es la carpeta mi-sitio dentro de tu carpeta personal: las referencias van en mi-sitio/refs. S y T solo sirven en la terminal donde las creaste: en una terminal nueva, vuelve a ejecutar la tercera línea. Ejecuta estas líneas en la carpeta donde quieras guardar el kit (ln -s usa la carpeta actual).

git clone https://github.com/inematds/site-inspirado
mkdir -p ~/.claude/skills && ln -sfn "$PWD/site-inspirado/skill/site-inspirado" ~/.claude/skills/site-inspirado
S=~/.claude/skills/site-inspirado; T=~/mi-sitio; mkdir -p $T/refs
cd $S/scripts && npm install && npx playwright install --with-deps chromium && cd -  # navegador de la prueba final
2

Reúne las referencias

Guarda de 2 a 5 imágenes en $T/refs/: las que ya tienes (invitación, logo, foto del local) y otras de inspiración (en Pinterest, busca «site padaria» o «wedding website watercolor»). También ayuda incluir una imagen de lo que NO quieres.

3

Deja que la IA pregunte primero

Abre Claude Code dentro de la carpeta del sitio (así el BRIEF, el estilo y la página quedan en $T) y escribe la frase que cambia el resultado. Las preguntas para cada tipo de sitio están en referencias/perguntas.md; las respuestas se guardan en $T/BRIEF.md, junto con el tipo: negocio (el sitio busca que se realice una acción, como hacer un pedido o reservar una cita) o visual (evento, portafolio: puede tener más movimiento).

Los pasos 4, 5 y 7, el cp del paso 6 y el paso 8 se hacen en la terminal: abre una segunda terminal (la primera queda con Claude Code) y ejecuta allí la línea S=…; T=… del paso 1 antes de continuar.

# en la terminal
cd $T && claude
# dentro de Claude Code (escríbelo, no es un comando de terminal)
/site-inspirado "Quiero el sitio de mi panadería. Antes de generar nada, pregúntame todo lo necesario e investiga qué suele incluir un sitio de este tipo."
4

Analiza el estilo

El script analiza la paleta de las referencias y sugiere colores de fondo, texto y acento según el contraste calculado. El prompt de estilo describe la técnica, la luz y los colores en inglés: pídele a Claude Code que lo redacte mirando tus referencias. El número con «:1» es el contraste entre el texto y el fondo (por debajo de 4,5:1 cuesta leer).

python3 $S/scripts/estilo.py $T/refs $T/estilo.json --prompt "honest food photography, warm window light, dark walnut, terracotta"
# estilo.json: 12 colores · fondo #110a04 · texto #ebdbce (14.55:1) · acento #b07042
5

Genera las imágenes con un estilo uniforme

Escribe $T/plano.json (una línea por imagen: nome, prompt del tema, largura, altura). Cada imagen usa las 2 primeras referencias (en orden alfabético: pon nombres como 1-invitacion.jpg a las más importantes) y la primera imagen generada como modelo (el «ancla»), para que toda la serie conserve el mismo estilo. Al final se crea folha.jpg, una hoja con todas las imágenes una al lado de la otra: revísala y vuelve a generar las que desentonen. No hace falta escribir el JSON a mano: pídele a Claude Code «escribe el plano.json a partir del BRIEF» o copia pilotos/padaria/plano.json y cambia los textos. Cada imagen tarda alrededor de 1 minuto y usa la cuota de tu suscripción de Codex.

# plano.json: [{"nome": "hero", "prompt": "panes enfriándose sobre la mesa", "largura": 1536, "altura": 1024}, ...]
python3 $S/scripts/imagens.py $T/plano.json $T/estilo.json $T/img --refs $T/refs
python3 $S/scripts/imagens.py $T/plano.json $T/estilo.json $T/img --refs $T/refs --so croissant  # vuelve a generar una
6

Arma la página con movimiento

Pídele a Claude Code: «arma la página con el BRIEF, el estilo y las imágenes». Diseñará una página para el tema y marcará el botón principal (el CTA, la acción que quieres que realice el visitante) con data-cta. Las transiciones vienen de movimento.js y se activan mediante atributos: data-revela hace que el bloque aparezca al entrar en pantalla, data-parallax hace que la imagen se mueva más lento que el desplazamiento, data-intro crea una apertura breve, data-conta cuenta un número y data-contagem muestra los días que faltan para una fecha. Todo se detiene cuando el sistema solicita «reducir movimiento». Copia movimento.js a la carpeta del sitio antes de ejecutar la prueba final:

<section data-revela="cortina"> … sobe | surge | lado | zoom | cortina
<img data-parallax="0.12">  <b data-conta="36">  <div data-intro="900">
<a data-cta href="#encomendar">Encomendar</a>
<script src="movimento.js"></script>
cp $S/runtime/movimento.js $T/
7

Pasa la prueba final

Abre la página en 1440×900 y 390×844, con y sin la opción «reducir movimiento». Usa --tipo según el BRIEF (negocio o visual). Si aparece NO APROBADO, la lista indica el motivo: pégala en Claude Code y pídele que lo corrija. Publica solo si aparece APROBADO.

node $S/scripts/portao.js $T/index.html --tipo negocio --fotos ~/fotos-portao
# portão visual × conversão — meu-site (negocio)
#   desktop          CTA na 1ª tela: sim · CTAs: 3 · peso 0.22 MB · erros 0
#   celular          CTA na 1ª tela: sim · CTAs: 3 · peso 0.55 MB · erros 0
#   desktop+reduzir  … · celular+reduzir  …
# PASSA
8

Publica

La carpeta $T ya es un sitio estático completo. Súbelo a GitHub y activa GitHub Pages, el alojamiento gratuito de páginas de GitHub (o usa Vercel o el alojamiento del cliente). Cambia TU_USUARIO por tu usuario de GitHub. El sitio estará disponible en https://TU_USUARIO.github.io/meu-site/ unos minutos después.

# no publiques datos del cliente ni borradores:
printf 'BRIEF.md\nrefs/\nfotos/\nimg/.codex/\nimg/folha.jpg\n' > $T/.gitignore
git config --global user.name "Tu Nombre"; git config --global user.email "tu@email.com"  # solo la primera vez
cd $T && git init -b main && git add -A && git commit -m "site"
gh repo create meu-site --public --source=. --push
gh api -X POST repos/TU_USUARIO/meu-site/pages -f "source[branch]=main" -f "source[path]=/"
Ejemplos

Dos pruebas piloto, dos estilos distintos al nuestro

El mismo kit, con referencias diferentes. Los nombres, lugares y precios son ficticios. Haz clic para abrir.

Prueba piloto de evento: invitación de boda en acuarela con viñedo, capilla y lapacho rosado
Evento (visual): acuarela en tonos vino y salvia, apertura tipo velo, cuenta regresiva, historia en cortina y confirmación por WhatsApp.
Prueba piloto de panadería: panes sobre una mesa oscura y botón para hacer un pedido en la primera pantalla
Panadería (negocio): fotografía cálida de horno de leña, botón para hacer un pedido en la primera pantalla y barra fija en el celular.
Visual × conversión

Demasiada belleza también puede estorbar

Un sitio existe para que alguien haga algo. El tipo indicado en BRIEF define cuánto movimiento cabe. La prueba final mide el botón (en la primera pantalla y en 1,5 s para el tipo negocio), el peso, la vista en celular y la opción «reducir movimiento»; el resto de la dosis (apertura breve, barra fija) sigue las reglas de la skill y puedes revisarlo en las capturas de la prueba.

🧁 Negocio

Botón en la primera pantalla en hasta 1,5 s, sin apertura, barra fija en el celular y hasta 3 MB.

# panadería
APROBADO

💐 Visual

Apertura de hasta 1,2 s, cortina, parallax y cuenta regresiva; el botón puede aparecer más abajo, pero debe verse. Hasta 8 MB.

# evento
APROBADO

🚫 Página «inmersiva»

Apertura que ocupa una pantalla y media, botón hasta abajo y animación infinita. Corresponde a la prueba tests/ruim.html.

# ruim.html
NÃO PASSA: CTA fora da primeira tela
animação rodando com "reduzir movimento"
Hoja de ruta

Lo que ya existe y lo que viene

Lo que aparece como terminado está en el repositorio y se probó.

v1 · listo
Kit + skill + 2 pruebas pilotoPreguntas, estilo definido, imágenes con Codex, movimento.js, prueba final y pruebas (bash tests/rodar.sh).
siguiente
Video corto a partir de las imágenesClip animado como fondo (Kling y similares), opcional y solo con autorización para el servicio; por ahora, todo el movimiento se crea con código.
siguiente
Más tipos en el guion de preguntasClínica, curso, inmobiliaria: cada uno con sus preguntas y la dosis adecuada de movimiento.