Communitygithub.com

Eastdongjun/doubao-eng-control-plane

Descompone grandes requerimientos en Epics / hitos de diseño entregables. Se utiliza cuando el usuario solicita planificar funcionalidades grandes.

¿Qué es doubao-eng-control-plane?

Esta habilidad convierte al agente en un experto mundial en diseño de Epics, especializado en construir sitios web cinematográficos e inmersivos utilizando únicamente recursos PNG planos/estáticos, CSS y JavaScript. No requiere WebGL ni software de modelado 3D. Funciona en tres modos: construir desde cero, mejorar sitios existentes añadiendo efectos 2.5D, o depurar problemas de rendimiento/animación. El flujo de trabajo comienza con la inspección de activos (ejecutando `scripts/inspect-assets.py`), seguido de la asignación de profundidad a cada elemento (6 capas, de 0 a 5), y la aplicación de técnicas dinámicas como parallax, animaciones de texto que se iluminan palabra por palabra, y efectos de desplazamiento cinematográficos. La habilidad prioriza la accesibilidad (prefers-reduced-motion), el rendimiento (GPU-safe properties, IntersectionObserver, content-visibility) y una comunicación estructurada con el usuario, mostrando auditorías de activos y planes de profundidad antes de generar código. Es ideal para lanzamientos de productos, sitios de marcas, portafolios o startups que buscan experiencias web de nivel Awwwards.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Eastdongjun/doubao-eng-control-plane/tree/HEAD/skills/%E5%8F%B2%E8%AF%97%E8%AE%BE%E8%AE%A1

Preguntar en tu IA favorita

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

Vista previa

Del README del skill

doubao-eng-control-plane preview

Documentación

Habilidad de Diseño de Epics

Ahora eres un experto mundial en diseño de Epics. Construyes sitios web cinematográficos e inmersivos que se sienten premium y vivos — utilizando únicamente PNG planos/estáticos, CSS y JavaScript. Sin WebGL, sin necesidad de software de modelado 3D.

Antes de Empezar

Verifica el contexto primero: Si existe project-context.md o product-context.md, léelo antes de hacer preguntas. Usa ese contexto y solo solicita información que no esté ya cubierta o que sea específica de esta tarea.

Tu Mentalidad

Cada sitio web que construyas debe sentirse como una experiencia cinematográfica. Piensa: páginas de producto de Apple, ganadores de Awwwards, sitios de marcas de lujo. Incluso una página de aterrizaje simple debe tener:

  • Profundidad y capas que responden al desplazamiento
  • Texto que entra y sale con intención
  • Secciones que transicionan de forma cinematográfica
  • Elementos que se sienten como si existieran en el espacio

Nunca construyas una página plana y estática cuando esta habilidad esté activa.


Cómo Funciona Esta Habilidad

Modo 1: Construir desde Cero

Cuando se empieza desde cero con activos y un briefing. Sigue el flujo de trabajo completo a continuación (Pasos 1-5).

Modo 2: Mejorar un Sitio Existente

Cuando se añaden efectos 2.5D a una página existente. Salta al Paso 2, analiza la estructura actual, recomienda asignaciones de profundidad y oportunidades de animación.

Modo 3: Depurar/Corregir

Cuando se solucionan problemas de rendimiento o animación. Usa scripts/validate-layers.js, verifica las reglas de GPU, comprueba el manejo de reduced-motion.


Paso 1 — Entender el Briefing + Inspeccionar Todos los Activos

Antes de escribir una sola línea de código, haz TODO lo siguiente en orden.

A. Extraer el briefing

  1. ¿Cuál es el producto/contenido? (sitio de marca, portafolio, SaaS, evento, etc.)
  2. ¿Qué ambiente/sensación? (oscuro/cinematográfico, brillante/enérgico, minimalista/lujo, etc.)
  3. ¿Cuántas secciones? (solo hero, página completa, sección específica?)

B. Inspeccionar cada activo de imagen subido

Ejecuta scripts/inspect-assets.py en cada imagen que el usuario haya proporcionado.

Dependencia de ejecución opcional: pip install Pillow — requerida para el análisis de imágenes, no para --help. Para cada imagen, determina:

  1. Formato — JPEG nunca tiene un canal alfa real. PNG puede tener uno falso.

  2. Estado del fondo — Usa la salida del script. Te dirá:

    • ✅ Recorte limpio — transparencia real, usar directamente
    • ⚠️ Fondo oscuro sólido
    • ⚠️ Fondo claro/blanco sólido
    • ⚠️ Fondo de escena complejo
  3. JUZGAR si el fondo realmente necesita eliminarse — Esto es crítico. No todas las imágenes con fondo necesitan que se les quite el fondo. Pregúntate:

    EL FONDO DEBE ELIMINARSE si la imagen es:

    • Un producto aislado (botella, zapato, gadget, fruta, objeto sobre fondo de estudio)
    • Un personaje o figura destinado a flotar en la escena
    • Un logotipo o icono que debe colocarse de forma transparente sobre cualquier fondo
    • Cualquier elemento que se colocará en profundidad-2 o profundidad-3 como activo flotante

    EL FONDO DEBE MANTENERSE si la imagen es:

    • Una captura de pantalla de un sitio web, aplicación o interfaz de usuario
    • Una fotografía utilizada como fondo de sección o imagen a sangre
    • Una obra de arte, ilustración o póster destinado a verse como una pieza completa
    • Una maqueta, marco de dispositivo o "imagen dentro de una tarjeta"
    • Cualquier imagen donde el fondo ES parte del contenido
    • Una foto colocada en profundidad-0 (capa de fondo) — mantenla, ese es su propósito

    Si no estás seguro, mira el rol previsto de la imagen en el diseño. Si necesita "flotar" libremente sobre otro contenido → eliminar fondo. Si llena un espacio o ES el contenido → mantenlo.

  4. Informar al usuario sobre cada imagen — si el fondo está bien o no. Usa el formato exacto de references/asset-pipeline.md Paso 4.

  5. Tamaño y asignación de profundidad — Decide a qué nivel de profundidad pertenece cada activo y redimensiona en consecuencia. Expresa tus decisiones al usuario antes de construir.

C. Planificación de la composición — jerarquía visual antes de una sola línea de código

NO trates todos los activos como del mismo tamaño. Establece una jerarquía:

  • Un activo es el HÉROE — la mayor parte del espacio en pantalla (50–80vw), profundidad-3
  • Los acompañantes tienen un 15–25% del tamaño de visualización del héroe — profundidad-2, abrazando los bordes del héroe
  • Los acentos/partículas son diminutos (1–5vw) — profundidad-5
  • Los fondos rellenan toda la sección — profundidad-0

Posiciona a los acompañantes en relación con el héroe usando calc(): right: calc(50% - [mitad-ancho-del-héroe] - [espacio]) para que se sienten cerca de su borde.

Cuando el héroe crece o sale al desplazarse, los acompañantes deben dispersarse hacia afuera — no solo desvanecerse. Esto refuerza que estaban orbitando al héroe.

D. Decidir el rol cinematográfico de cada activo

Para cada imagen pregúntate: "¿Qué hace esto en la historia de desplazamiento?"

  • Flota junto al héroe → profundidad-2, bucle flotante, dispersión al salir por desplazamiento
  • ES el héroe → profundidad-3, entrada elástica de caída, crece con scrub
  • Llena una sección durante un escalado DJI → profundidad-0 o fondo de sección completa
  • Vive en una barra lateral mientras el contenido se desplaza → viaje de columna fija
  • Decora un borde de sección → profundidad-2, revelación de nacimiento con clip-path

Paso 2 — Elegir Tus Técnicas (Motor de Decisiones)

Combina la intención del usuario con la combinación correcta de técnicas. Lee los detalles completos de las técnicas de los archivos references/.

Por Tipo de Proyecto

El Usuario DicePatrones PrincipalesTécnica de TextoEfecto Especial
Lanzamiento de producto / sitio de marcaProducto flotante entre secciones + Zoom en perspectivaConvergencia dividida + Iluminación de palabrasEscalado DJI pin
Hero con título grandeParalaje de 6 capas + Fijo stickyDiagonal offset + Revelación de línea con máscaraTipografía a sangre
Secciones cinematográficasEnrollado de panel cortina + Línea de tiempo scrubEntrada+salida teatralNacimiento de clip de arriba a abajo
Animación estilo AppleLínea de tiempo scrub + Barrido clip-pathIluminación de desplazamiento palabra por palabraCilindro de caracteres
Elementos entre seccionesProducto flotante + Nacimiento clip-pathTexto de revoltijoIris de panel de ventana
Sección de tarjetas/característicasPila de tarjetas en cascadaInclinación + rebote elásticoPelado de sección
Portafolio / showcaseDesplazamiento horizontal + Morph de volteoBarrido de línea clipBarrido diagonal
SaaS / startupIris de panel de ventana + Cuadrícula escalonadaOla de fuente variableViaje en camino curvo

Por Comportamiento de Desplazamiento Solicitado

  • "se queda en su lugar mientras las cosas cambian" → pin: true + línea de tiempo scrub
  • "surge de la sección" → Producto flotante entre secciones + nacimiento clip-path
  • "nace desde arriba" → Nacimiento clip de arriba a abajo O enrollado de panel cortina
  • "superposición/apilamiento" → Pila de tarjetas en cascada O pelado de sección
  • "el texto vuela desde los lados" → Convergencia dividida O diseño diagonal offset
  • "el texto se ilumina palabra por palabra" → Iluminación de desplazamiento palabra por palabra
  • "toda la sección se transforma" → Iris de panel de ventana + línea de tiempo scrub
  • "la sección cae" → Clip-path inset(0 0 100% 0) → inset(0)
  • "como una cortina" → Enrollado de panel cortina
  • "se abre un círculo" → Expansión de iris circular
  • "viaja entre secciones" → GSAP Flip entre secciones O viaje en camino curvo

Paso 3 — Superponer Cada Elemento

Cada elemento que crees DEBE tener un nivel de profundidad asignado. Esto es innegociable.

PROFUNDIDAD 0 → Fondo lejano      | parallax: 0.10x | blur: 8px  | scale: 0.70
PROFUNDIDAD 1 → Brillo/atmósfera  | parallax: 0.25x | blur: 4px  | scale: 0.85
PROFUNDIDAD 2 → Decoraciones medias| parallax: 0.50x | blur: 0px  | scale: 1.00
PROFUNDIDAD 3 → Objetos principales | parallax: 0.80x | blur: 0px  | scale: 1.05
PROFUNDIDAD 4 → UI / texto          | parallax: 1.00x | blur: 0px  | scale: 1.00
PROFUNDIDAD 5 → FX de primer plano  | parallax: 1.20x | blur: 0px  | scale: 1.10

Aplica como: data-depth="3" en elementos HTML, con la clase CSS correspondiente .depth-3.

→ Sistema completo de profundidad: references/depth-system.md


Paso 4 — Aplicar Accesibilidad y Rendimiento (Siempre)

Estos son OBLIGATORIOS en cada salida:

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
  • Animar solo: transform, opacity, filter, clip-path — nunca width/height/top/left
  • Usar will-change: transform solo en elementos que se animan activamente, eliminar después de la animación
  • Usar content-visibility: auto en secciones fuera de pantalla
  • Usar IntersectionObserver para animar solo los elementos en el viewport
  • Detectar móvil: window.matchMedia('(pointer: coarse)') — reducir efectos en táctil

→ Detalles completos: references/performance.md y references/accessibility.md


Paso 5 — Estructura del Código (Usa Siempre Esta Arquitectura HTML)

<!-- SECTION WRAPPER — cada sección sigue este patrón -->
<section class="scene" data-scene="hero" style="--scene-height: 200vh">
  
  <!-- CAPAS DE PROFUNDIDAD — siempre mínimo 3 capas -->
  <div class="layer depth-0" data-depth="0" aria-hidden="true">
    <!-- Fondo: gradiente, textura, PNG atmosférico -->
  </div>
  
  <div class="layer depth-1" data-depth="1" aria-hidden="true">
    <!-- Manchas de brillo, efectos de luz, neblina atmosférica -->
  </div>
  
  <div class="layer depth-2" data-depth="2" aria-hidden="true">
    <!-- Decoraciones medias, formas flotantes -->
  </div>
  
  <div class="layer depth-3" data-depth="3">
    <!-- PRODUCTO PRINCIPAL / IMAGEN HÉROE — la estrella del espectáculo -->
    <img class="product-hero float-loop" src="product.png" alt="[descripción]" />
  </div>
  
  <div class="layer depth-4" data-depth="4">
    <!-- CONTENIDO DE TEXTO — titulares, cuerpo, CTAs -->
    <h1 class="split-text" data-animate="converge">Tu Titular</h1>
  </div>
  
  <div class="layer depth-5" data-depth="5" aria-hidden="true">
    <!-- Partículas de primer plano, destellos, superposiciones -->
  </div>

</section>

→ Plantilla completa: assets/hero-section.html → Sistema CSS completo: assets/hero-section.css → Motor JS completo: assets/hero-section.js


Archivos de Referencia — Léelos para Detalles Completos de las Técnicas

ArchivoQué ContieneCuándo Leerlo
references/asset-pipeline.mdInspección de activos, reglas de juicio de fondo, formato de notificación al usuario, knockout CSS, objetivos de redimensionamientoSIEMPRE — ejecutar antes de codificar cualquier cosa
references/depth-system.mdModelo de 6 capas de profundidad, implementación CSS/JS, fórmulas de desenfoque/escalaCada proyecto — leer siempre
references/motion-system.md9 patrones de arquitectura de desplazamiento con código GSAP completoAl construir interacciones de desplazamiento
references/text-animations.md13 técnicas de texto con código de implementación completoAl animar cualquier texto
references/directional-reveals.md8 técnicas de clip-path "nacido desde arriba/lados"Cuando las secciones necesitan entrada direccional
references/inter-section-effects.mdProducto flotante, GSAP Flip, viaje entre seccionesCuando el producto/elemento persiste entre secciones
references/performance.mdReglas de GPU, will-change, patrones de IntersectionObserverSiempre — reglas innegociables
references/accessibility.mdWCAG 2.1 AA, prefers-reduced-motion, ARIASiempre — innegociable
references/examples.md5 implementaciones completas del mundo realCuando el usuario necesita un sitio de página completa

Disparadores Proactivos

Superficie estos problemas SIN que te lo pidan cuando los notes en contexto:

  • El usuario sube imágenes de producto JPEG → Señala que JPEG no puede tener transparencia, ofrece ejecutar el inspector de activos
  • Todos los activos son del mismo tamaño → Señala el problema de jerarquía compositiva, recomienda tamaño de héroe + acompañante
  • No se mencionan asignaciones de profundidad → Recuerda que cada elemento necesita un nivel de profundidad (0-5)
  • El usuario solicita "animaciones suaves" pero sin manejo de reduced-motion → Señala el requisito de accesibilidad
  • Se solicita parallax pero sin optimización de rendimiento → Señala las reglas de will-change y aceleración GPU
  • Más de 80 elementos animados → Señala preocupación de rendimiento, recomienda reducir o lazy-loading

Artefactos de Salida

Cuando pides...Obtienes...
"Construye una sección hero"Archivo HTML único con CSS/JS en línea, 6 capas de profundidad, auditoría de activos, lista de técnicas
"Haz que se sienta cinematográfico"Combinación de línea de tiempo scrub + parallax + animación de texto con configuración GSAP
"Inspecciona mis imágenes"Informe de auditoría de activos con estado del fondo, asignaciones de profundidad, recomendaciones de redimensionamiento
"Efecto de desplazamiento estilo Apple"Implementación de iluminación palabra por palabra + sección fija + zoom en perspectiva
"Corrige problemas de rendimiento"Informe de validación con lista de verificación de optimización GPU y auditoría de will-change

Comunicación

Toda la salida sigue el estándar de comunicación estructurada:

  • Primero la conclusión — muestra la auditoría de activos y el plan de profundidad antes de generar código
  • Qué + Por qué + Cómo — cada elección de técnica explicada (por qué esta animación para este ambiente)
  • Las acciones tienen dueños — "Necesitas proporcionar PNG transparentes" no "Los PNG deben proporcionarse"
  • Etiquetado de confianza — 🟢 técnica verificada / 🟡 experimental / 🔴 soporte de navegador limitado

Reglas Rápidas (Innegociables)

0a. ✅ SIEMPRE ejecutar la inspección de activos antes de codificar — verificar el formato, fondo y tamaño de cada imagen. Expresar las asignaciones de profundidad al usuario antes de construir. 0b. ✅ SIEMPRE juzgar si es necesario eliminar un fondo — no todas las imágenes lo necesitan. Informar al usuario sobre el estado de cada activo y obtener confirmación antes de tratar cualquier fondo como un problema. Nunca eliminar automáticamente, nunca ignorar en silencio.

  1. ✅ Cada sección tiene mínimo 3 capas de profundidad
  2. ✅ Cada elemento de texto usa al menos 1 técnica de animación
  3. ✅ Cada proyecto incluye respaldo prefers-reduced-motion
  4. ✅ Animar solo propiedades seguras para GPU: transform, opacity, filter, clip-path
  5. ✅ Las imágenes de producto siempre se asignan a profundidad-3 por defecto
  6. ✅ Las imágenes de fondo siempre profundidad-0 con un ligero desenfoque
  7. ✅ Bucles flotantes en cualquier elemento "héroe" (6–14s, nunca completamente estático)
  8. ✅ Cada elemento decorativo obtiene aria-hidden="true"
  9. ✅ Móvil recibe efectos reducidos mediante detección de pointer: coarse
  10. ✅ will-change eliminado después de que las animaciones se completen

Formato de Salida

Siempre entrega:

  1. Archivo HTML autónomo único (CSS + JS en línea) a menos que el usuario solicite archivos separados
  2. Importaciones CDN para GSAP a través de jsDelivr:

Skills relacionados