Communitygithub.com

Rail-to-door

Construye una tienda animada completa para cualquier marca, desde cero: recortes de productos generados por IA (Higgsfield) exhibidos en un riel que giran hacia ti, arrastra y suelta en una bolsa/carrito/caja, un cajón de edición y un pago de demostración, y luego una película 3D impulsada por desplazamiento del pedido siendo empaquetado en envases personalizados, clasificado en una cinta transportadora, conducido en un camión de reparto, volado en un avión de carga a través de un mapa del mundo real y entregado en la puerta de una casa.

¿Qué es Rail-to-door?

Rail-to-door es una habilidad de agente de IA (compatible con Claude Code, Cursor, Codex y otros) que transforma un prompt simple en una tienda de una sola página completamente funcional con una experiencia de compra cinematográfica. A partir de una plantilla HTML/CSS/JS autocontenida (con three.js), la habilidad orquesta un proceso de múltiples etapas: primero, define la identidad de la marca (nombre, logotipo, colores, tipografía) y genera los productos mediante IA (Higgsfield). Luego, construye una página de exposición donde los recortes de los productos cuelgan en un riel y giran al pasar el ratón, permitiendo arrastrarlos a un contenedor (bolsa, cesta, carrito o caja). Después, implementa un cajón de edición del pedido y una pantalla de pago de demostración. Finalmente, genera una secuencia 3D animada al desplazarse que muestra el empaquetado, la cinta transportadora, el camión de reparto, el avión de carga con una ruta sobre un mapa mundial real, y la entrega en la puerta de la casa. Cada elemento se personaliza con los colores, el logotipo y el nombre de la marca. La habilidad se ejecuta como un pipeline completo (`/rail-to-door`) o por etapas independientes (marca, productos, riel, pago, viaje, verificación), y puede trabajar con un prompt detallado, una línea de texto o incluso sin ningún prompt, diseñando automáticamente una marca ficticia. Incluye scripts de verificación para garantizar la calidad visual y funcional.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/KooEmmanuel/rail-to-door/tree/HEAD/skills/rail-to-door

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Rail to door

Una tienda de una sola página que convierte la compra en una pequeña película:

  1. La exhibición — recortes de productos cuelgan de lado en un riel y giran hacia ti al pasar el ratón; haz clic para ver un visor frontal/trasero; arrastra uno al contenedor.
  2. Contenedor y pago — una bolsa (o cesta, carrito, caja) que se llena, un cajón para editar el pedido, una pantalla de pago de demostración.
  3. El viaje del pedido — después de pagar, una secuencia 3D autoejecutable impulsada por desplazamiento: los artículos se empaquetan en envases personalizados → se sellan y etiquetan con el nombre del cliente → cinta transportadora y pórtico de escaneo → camión de reparto → cargador de aeropuerto → avión de carga → un mapa mundial con costas reales y el vuelo → el paquete aterriza en la puerta de una casa.

Esta habilidad es autocontenida

Todo lo necesario está dentro de la carpeta de la habilidad. No necesitas, y no debes buscar, un sitio existente, un proyecto anterior o los archivos de marca de nadie:

  • assets/template/ — el sitio completo funcional (HTML/CSS/ES modules plano + three.js, sin paso de compilación) que lleva una marca neutral de ejemplo ("Maison") y seis camisetas de muestra. Es el punto de partida para cada ejecución.
  • scripts/ — crea un sitio, aplica una marca, crea un logotipo provisional, procesa imágenes de productos, verificación de estado.
  • references/ — una guía por etapa.

Siempre comienza un nuevo sitio desde la plantilla y modifícalo; nunca lo reescribas desde cero. La plantilla incorpora muchas decisiones visuales difíciles de conseguir (iluminación, proporciones, detalles), y rehacerlas las pierde. La marca de ejemplo nunca debe llegar al usuario: cada ejecución la reemplaza con su marca, o con una que tú diseñes.

Cómo ejecutar: pipeline completo o una etapa

La primera palabra de los argumentos elige una etapa. Sin palabra de etapa, ejecuta el pipeline completo.

InvocaciónQué haceGuía
/rail-to-door [prompt]Todo lo siguiente, en ordeneste archivo, luego cada guía a medida que la alcances
/rail-to-door-brand · … brand …Escribe el brief, crea el sitio, aplica nombre, logotipo, colores, origen, contenedor, colores del vehículoreferences/brand.md
/rail-to-door-products · … products …Genera imágenes de productos con Higgsfield, las recorta, escribe el catálogoreferences/products.md
/rail-to-door-rail · … rail …La página de la tienda: exhibición, giro al pasar, visor, arrastrar al contenedorreferences/rail.md
/rail-to-door-checkout · … checkout …Cajón, totales, pantalla de pagoreferences/checkout.md
/rail-to-door-journey · … journey …El viaje 3D: empaquetado, cinta transportadora, camión, avión, mapa, casareferences/journey.md
/rail-to-door-verify · … verify …Sírvete, ejecuta todo el flujo en un navegador, mira cada escenareferences/verify.md

En qué sitio trabaja una etapa: la carpeta que nombre el usuario; de lo contrario, el directorio actual si es un sitio rail-to-door (tiene brand.json junto a index.html); de lo contrario, uno nuevo creado desde la plantilla en ./<brand-slug>-store. No busques en la máquina uno.

El brief: cada parte es una elección

Antes de construir, establece el brief. Léelo del prompt; donde el prompt no diga nada, decídelo tú mismo de una manera que se adapte a la marca, y enumera tus decisiones en el informe final. Haz una pregunta solo cuando una suposición incorrecta desperdiciaría dinero o trabajo real (ver "Cuándo preguntar").

EspacioIntegradoCómo cambia
Nombre de la marca, dominio, eslogan—Claves de brand.json → apply_brand.py
Logotipo—archivo del usuario · generado con Higgsfield · monograma provisional de make_logo.py
Colores de la página (papel, tinta, tinta suave, apagado, línea, lavado, acento)blanco cálido + casi negrobrand.json
TipografíaFraunces + Intermanual, ver brand.md
Qué se vende y cuántosseis camisetas (ejemplo)etapa de productos
Exhibiciónriel colgante, de lado → frontal al pasaretapa de riel (variantes de estante / percha son una edición, ver rail.md)
Contenedortote (bolsa) · basket (cesta) · cart (carrito) · box (caja)brand.json container, más la palabra usada para él
Empaquetadocaja de envío impresa, cinta de papel, etiquetaboxBoard, boxPrint; rediseñar en journey.md
Clasificacióncinta transportadora con pórtico de escaneoconveyorFrame, beltColor; rediseñar en journey.md
Tramo terrestrecamión con cabina sobre cajatruckBody, truckCab; otros vehículos en journey.md
Tramo largoavión de carga + mapa mundialplaneBody, liveryDark; solo carretera o mar en journey.md
Destinocasa de ladrillo, puerta paneladadoorColor; otros edificios en journey.md
Ciudad de origen / aeropuerto, ciudades de destinoLisboa (ejemplo)brand.json, CITIES en js/data.js
Leyendas y textosgenéricosindex.html

Las piezas integradas son un valor predeterminado sólido, no un límite. Si el brief pide algo que no está integrado (un repartidor en scooter, un barco, un puesto de mercado en lugar de un riel, una caja de regalo como carrito), constrúyelo con el mismo estilo y al mismo nivel: las guías de etapa dicen cómo.

Con un prompt, con un enlace, con nada

  • Un prompt — síguelo. Todo lo que omita, decídelo.
  • Un enlace a un sitio que le guste al usuario (solo cuando ellos lo proporcionen — nunca vayas a buscar uno y nunca asumas uno): estúdialo por su sensación — paleta, ambiente tipográfico, tono de voz, qué venden y cómo se fotografía — y diseña algo original en ese espíritu. No copies su nombre, logotipo, imágenes, texto ni diseño. Ver brand.md.
  • Sin prompt — diseña una marca tú mismo: un nombre, un posicionamiento de una línea, una paleta, una ciudad de origen, una pequeña colección que encaje. Luego ejecuta el pipeline. Presenta la marca que inventaste al principio del informe para que el usuario pueda redirigir.

Cuándo preguntar

Una pregunta, como máximo, antes de que comience el trabajo — y solo por estas:

  • Gastar créditos de Higgsfield. Siempre verifica el costo antes y obtén un sí claro (ver products.md). Agrupa "aquí está la colección y la marca que construiré, cuesta N créditos — ¿adelante?" en esa única pregunta.
  • El nombre de la propia marca del usuario está claramente implícito pero no se proporcionó.

Todo lo demás: decide, construye, informa.

Pipeline completo

  1. Brief + marca — references/brand.md. Termina con una carpeta de sitio que lleva la marca en todas partes.
  2. Productos — references/products.md. Genera (después de la autorización), recorta, cataloga. Si el usuario rechaza el gasto o Higgsfield no está disponible, usa sus propias fotos; si no, conserva las camisetas de muestra y di claramente que son marcadores de posición.
  3. Exhibición — references/rail.md: copia, tamaño, el contenedor.
  4. Pago — references/checkout.md.
  5. Viaje — references/journey.md: confirma que cada escena lleva la marca; haz los cambios que pida el brief.
  6. Verificación — python3 scripts/check_site.py <site>, luego la ejecución en el navegador descrita en references/verify.md. No te la saltes: la mayoría de los defectos en este tipo de construcción solo son visibles en una captura de pantalla.
  7. Informe — dónde está el sitio y cómo abrirlo; el brief tal como se construyó (incluyendo lo que decidiste); qué es marcador de posición (nombres, precios, un logotipo provisional, el pago de demostración); créditos gastados; qué no verificaste.

Dónde viven las cosas en un sitio

index.html          todo el marcado: exhibición, contenedor, visor, cajón, pago, leyendas del viaje, HUD
css/style.css       todos los estilos; los tokens de marca son las variables `:root` al principio
js/data.js          PRODUCTS (generados), CONFIG (contenedor + redacción), ORIGIN, CITIES
js/shop.js          exhibición, giro al pasar, arrastrar, visor, carrito, cajón, pago de demostración
js/main.js          cambia entre tienda ↔ viaje, reproducción automática (SECONDS = duración de la reproducción)
js/journey.js       los cuatro mundos 3D, cámaras, la línea de tiempo de desplazamiento
js/models.js        el camión y la aeronave
js/parcels.js       la caja (solapas, cinta, etiqueta) y los paquetes cerrados
js/textures.js      todo pintado en lienzos: arte de caja, etiqueta, cinta, costado del camión, letrero, banda, felpudo
js/world.js         costas reales → mapa de puntos, ruta de círculo máximo
assets/logo.png     marca oscura sobre fondo transparente; teñida en el código dondequiera que aparezca
assets/rail/        recortes de productos:  <slug>-front.webp, -back.webp, -side.webp
vendor/             three.js, ayudantes de iluminación, datos de costas
brand.json          lo que el sitio dice actualmente; editado por scripts/apply_brand.py
serve.py            pequeño servidor estático:  python3 serve.py 8792

Nivel de calidad (no negociable, sea cual sea la marca)

  • Recortes reales, de lado. Los productos cuelgan delgados en reposo y giran al frente al pasar el ratón. Las imágenes frontales planas en fila no logran el efecto.
  • Una paleta. La página, el empaquetado, la cinta transportadora, los vehículos y la ruta usan todos los colores de la marca. No introduzcas un color que la marca no tenga; las lámparas de los vehículos son la única excepción.
  • Nada de juguete. Los vehículos, máquinas y edificios se modelan a partir de sus partes reales — vidrio que se lee como vidrio, lámparas, rejillas, ruedas con llantas, herrajes de puertas — no cajas con cilindros. Ver la regla de molduras en journey.md.
  • La propia marca y tipografía de la marca en todo lo impreso (empaquetado, cinta, etiqueta, camión, estabilizador vertical, felpudo). Los nombres largos deben caber: la plantilla encoge el texto para que quepa; verifica que lo hizo.
  • La pantalla de pago es una demostración. No recopila datos de tarjeta y no cobra nada. Mantenlo así a menos que el usuario pida explícitamente conectar un proveedor de pago real, y nunca preguntes ni manejes números de tarjeta reales.
  • Verifica mirando. El código que pasa una verificación de sintaxis aún puede renderizarse incorrectamente.
  • Di qué es marcador de posición o no verificado.

Scripts

ScriptUso
scripts/new_site.py <site> [--brand b.json] [--force]Copia la plantilla a una nueva carpeta (y aplica una marca)
scripts/apply_brand.py <site> <b.json>Aplica / cambia los valores de la marca en todo el sitio (ejecutable de nuevo)
scripts/make_logo.py "<Name>" <out.png>Monograma provisional cuando no hay logotipo
scripts/process_cutouts.py --raw <dir> --site <site> [--synth-side] [--append]Recorta, ajusta, redimensiona las imágenes de los productos; reescribe el catálogo
scripts/check_site.py <site>Verificación de estado estática antes de la ejecución en el navegador

process_cutouts.py y make_logo.py necesitan Pillow; el primero también numpy, opencv-python y scipy (pip install pillow numpy opencv-python scipy).

Skills relacionados