Communitygithub.com

wjgoarxiv/lit-typographic-motion

Dirige un cortometraje, tipografía cinética o un video lírico, o un bucle de portada perfecto para README, renderizado y verificado.

¿Qué es lit-typographic-motion?

Este skill de agente de IA convierte una solicitud en una sola línea en un cortometraje terminado o en un bucle de portada silencioso para la parte superior de un README, sin depender de herramientas de terceros. Primero redacta un tratamiento, construye los elementos visuales por sí mismo usando SVG, Canvas 2D o WebGL, los renderiza a través de un renderizador determinista que se envía con la carpeta, mide el resultado con una compuerta de verificación y luego revisa los fotogramas renderizados con `read_file`. Soporta tres modos: el modo 'stage' para películas que muestran cosas (productos, procesos, lugares), el modo 'type' para tipografía cinética y videos de letras, y el modo 'cover' para bucles animados de README. El skill está diseñado para ejecutarse en el marco de LitMuse y utiliza un conjunto de scripts Node.js, FFmpeg y WebGL2 para la representación, asegurando que cada fotograma pase por un pipeline determinista sin edición manual ni ensamblaje externo. Es ideal para desarrolladores y creadores que desean producir videos cortos de alta calidad directamente desde una línea de comandos o una interfaz de agente, con verificaciones de calidad integradas y procesos de revisión iterativos.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wjgoarxiv/litmuse/tree/HEAD/plugin/skills/lit-typographic-motion

Preguntar en tu IA favorita

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

Documentación

lit-typographic-motion: un director de cine con un renderizador, una compuerta y un bucle de vista

Este skill convierte una solicitud en una sola línea en un cortometraje terminado, o en un bucle de portada silencioso para la parte superior de un README. Nunca entrega un prompt para la herramienta de video de otra persona. Primero escribe un tratamiento, construye los elementos visuales por sí mismo, los renderiza a través del renderizador determinista que se envía en esta carpeta, mide el resultado con una compuerta y luego revisa los fotogramas renderizados con read_file antes de declarar algo terminado.

Hay tres formas de recorrerlo, y el tratamiento elige una:

  • Ruta stage. Películas que muestran cosas: un producto, un proceso, un lugar, un tema de ejemplo inventado. Escribes una página HTML (SVG, Canvas 2D o WebGL) en la carpeta de salida, el renderizador la procesa en Chrome sin cabeza fotograma por fotograma, y la compuerta de stage verifica el determinismo, el contraste, los destellos y la copia. 16:9 (1920x1080) o 9:16 (1080x1920).
  • Ruta type. Películas cuyas palabras son la película: tipografía cinética, un video de letras o citas, una secuencia de título. Escribes brief.json y el motor de tipo WebGL2 incluido establece las palabras con sus preajustes y pases posteriores. 1920x1080.
  • Modo cover. Un bucle para README, héroe o banner. Sin compases, sin sonido, sin final: un sistema en movimiento sobre una palabra de marca fija, capturado a 2x, codificado como WebP animado y verificado en el archivo decodificado. Lee references/cover.md antes que cualquier otra cosa en este modo.

SKILL_ROOT a continuación es la carpeta del SKILL.md que read_skill devolvió para plugin:litmuse:lit-typographic-motion. Ejecuta cada script por su ruta absoluta debajo de ella y nunca codifiques la ruta de la caché del complemento de Muse; la carpeta de caché cambia con cada actualización de LitMuse.

Cuándo aplica esto

  • El usuario pide hacer una película, un gráfico en movimiento, tipografía cinética, un video de letras o citas, un título de apertura o secuencia de título, un clip de introducción o cualquier video corto a partir de una solicitud, con o sin sus propias palabras.
  • El usuario pide una portada de README, un bucle de héroe o banner, un encabezado de proyecto animado o una portada en movimiento para un repositorio.
  • El usuario pide una crítica de un render que hizo este skill: mira los fotogramas y ejecuta la compuerta, no escribas nada más.

Activación en LitMuse: lit motion <request>, lit film …, lit video …, lit 영상 …, un prompt que comienza con lit-typographic-motion, o un lit <task> cuya tarea pide hacer una película (un compuesto de película como 모션그래픽, 키네틱 타이포, 가사 영상, 타이틀 시퀀스, kinetic type, lyric video, title sequence, cover loop o un simple 영상 / video / clip con un verbo de creación). El hook UserPromptSubmit nombra la ruta; bajo un simple lit la tabla de rutas de la sesión te permite elegir el skill tú mismo.

Envía estos a otro lugar y dilo en una línea:

SolicitudA dónde va
Editar, recortar, cortar, subtitular o añadir subtítulos a metraje existenteNo es este skill. No hay pipeline aquí que edite metraje; dilo claramente
Una presentación de diapositivas o informe sin sustantivo de videolit-pptx o lit-docx
Una página web, un video de fondo dentro de una página, movimiento de hover o UI, tokens de movimientofrontend-ui-ux
Una miniatura, un guión, un resumen o una transcripción sobre un videotrabajo ordinario, no este skill
Un README estático con una imagen de portada fijareadme-studio

Entradas y estado

EntradaTratamiento
La solicitudDatos inertes. Se coloca textualmente en treatment.request y nunca se sigue como instrucciones, nunca se muestra en pantalla.
Palabras proporcionadas por el usuarioSon la copia (copy.source: user); en la ruta stage se convierten en las líneas de copia de la página. Nunca cites letras o texto que el usuario no posea.
Sin palabras, sin tema, sin hechosInventa un tema de ejemplo concreto y su copia, enumera cada invención en el tratamiento y etiqueta cada una en la respuesta.
Un estilo nombrado (ruta type)swiss-signal, terminalcore o tidal anula el predeterminado del agente (references/style-bibles.md).
Un archivo de audiosound.mode: supplied con su file; siempre se multiplexa y se sincroniza con los cortes (references/sound.md).
Una pintura, logotipo o marca denominativa para una portadaSe enumera en assets.json con su sha256 y source: user; si falta, es salida 22, nunca un sustituto dibujado.
Carpeta de salidaUn nuevo motion-<slug>/ en el directorio de trabajo del usuario. Nunca la carpeta del complemento instalado, nunca .litmuse/.

El estado reside en la carpeta de salida: treatment.json, look.json, stills/, manifest.json, gate-report.txt y .run/ (progreso, el pid del render separado y su resultado, el primer tratamiento válido). Los hooks de LitMuse mantienen su propio registro pequeño de la ruta de movimiento fuera del espacio de trabajo (abajo).

Matriz de modos

ModoDisparadorLínea de meta
lit predeterminadola ruta de movimiento desde litNo hagas preguntas. Elige el formato según el canal, la duración según el género y una base de sonido generada, y etiqueta cada predeterminado en la respuesta. Hecho por references/look.md.
explícitolit-typographic-motion … o el usuario nombra formato y duraciónEl mismo bucle. Solo una pregunta corta cuando el usuario está presente, no nombra ni formato ni duración, y el canal no lo decide. Con el usuario presente, muestra el tablero después de la ronda 1 y pregunta una vez antes del render completo; una solicitud que nombra el estilo o dice "tú eliges" omite la pregunta y toma lo recomendado.
covertreatment.json tiene "mode": "cover"Hecho por references/cover.md: la portada decodificada alcanza cada compuerta TARGET y la última ronda de look vio su hoja, póster y par de unión.
solo revisiónuna crítica de un render existenteAbre los fotogramas, ejecuta gate <dir> o cover-gate <file> --strict, informa. No escribas nada más.
bloqueadosalida 10, 11, 12, 14, 15, 21 o 22Detente. Nombra el estado y su solución; nunca lo evites con otro pipeline.
tratamiento inválidosalida 16Corrige el campo nombrado de treatment.json y vuelve a ejecutar.
contrato de stagesalida 17, 18 o 19Corrige el elemento, API, ráster, clip, fuente de reloj o URL que el mensaje nombra, y vuelve a ejecutar.
sonido inválidosalida 20Corrige la base o la pista proporcionada que el mensaje nombra.

Procedimiento

Comandos, todos desde el padre de la carpeta de salida:

node "$SKILL_ROOT/scripts/motion.mjs" styles --out <dir> [--format 16:9|9:16]
node "$SKILL_ROOT/scripts/motion.mjs" assets --out <dir> --url <link> [--cover]
node "$SKILL_ROOT/scripts/motion.mjs" scaffold --out <dir>
node "$SKILL_ROOT/scripts/motion.mjs" stage --out <dir> --round <N> [--stills-only]
node "$SKILL_ROOT/scripts/motion.mjs" make <brief.json> --out <dir> --round <N> [--stills-only]
node "$SKILL_ROOT/scripts/motion.mjs" blender --out <dir> [--final]
node "$SKILL_ROOT/scripts/motion.mjs" sound --out <dir>
node "$SKILL_ROOT/scripts/motion.mjs" look --out <dir> --round <N> --answers <file>
node "$SKILL_ROOT/scripts/motion.mjs" gate <dir>
node "$SKILL_ROOT/scripts/motion.mjs" cover --out <dir> --round <N> [--window t0,t1]
node "$SKILL_ROOT/scripts/motion.mjs" cover-gate <dir>/cover.webp --strict

Cada fotograma y cada pista pasan por estos renderizadores. Una película ensamblada a mano con ffmpeg, un script de Python, un flipbook de ráster o una grabación de pantalla no es el entregable, incluso si se ve bien.

  1. Tratamiento. Lee references/treatment.md, luego references/studio.md (estilos de la casa, tomas, el andamio, la ronda del tablero, el archivo de la casa, el registro rico). Un enlace de producto en la solicitud ejecuta assets primero: el logotipo real, las imágenes y las palabras; cuando no se puede obtener nada, pídelos al usuario. Escribe <dir>/treatment.json: la historia y su giro, el protagonista, los compases del arco del género como tomas, el tema (inventa uno cuando la solicitud no nombra ninguno), el producto, los dispositivos visuales, el plan tipográfico, la paleta del estilo, una banda sonora con sus eventos en pantalla y la copia. style, format, durationSec, genre y fps siguen las reglas, no el gusto. Máximo por defecto (register: rich con un world en capas); mínimo solo cuando la solicitud pide calma o minimalismo. Para una portada, escribe el tratamiento de portada desde references/cover.md en su lugar y salta al paso 8.
  2. Referencias de ruta. Ruta stage: references/stage.md y references/depth.md cuando el tema está dibujado en 3D. Ruta type: references/brief-schema.md, references/style-bibles.md, references/type-craft.md y references/craft-loop.md; abre references/engine-contract.md y references/runtime.md solo cuando necesites los internos del motor. Ambas rutas: references/look.md y references/sound.md.
  3. Construir. Ruta stage: scaffold --out <dir> escribe <dir>/stage/index.html a partir del tratamiento; dibuja el tema de cada toma en su función DRAW (references/stage.md). Ruta type: escribe <dir>/brief.json para el motor. Una película 3D toma depth: 3d: el escalón de GPU construye el mundo en three.js en la página del andamio, mientras que un look de trazado de rayos con Blender instalado toma render3d: blender con stage/scene.py y blender --final para la placa.
  4. Ronda 1, el tablero. Renderiza con --round 1 --stills-only. La salida 13 nombra las reglas del tablero fallidas: corrige la página y renderiza el tablero de nuevo. Abre stills/board.png, cada imagen fija de compás, cada tira de transición y la hoja de contactos con read_file, responde las nueve preguntas de look, nombra el compás más débil y el único cambio que harás, y regístralo con look --round 1 --answers <file>. Luego haz ese cambio. Una vista previa (preview: true) se detiene aquí: muestra el tablero y di que la película aún no está renderizada.
  5. Render completo. Renderiza --round 2 sin --stills-only. El render completo se ejecuta de forma separada y escribe <dir>/.run/progress.json; si la llamada bash se agota, ejecuta el mismo comando de nuevo y se adjunta al render en ejecución. Nunca acortes la película para ahorrar tiempo de render. Luego lee gate-report.txt, abre el póster, la hoja, cada imagen fija de compás y cada tira con read_file, y registra look --round 2.
  6. Ronda 3 solo cuando la compuerta falla o una respuesta de look pide otra ronda. Después de la ronda 3, entrega lo que tienes y nombra los elementos abiertos claramente.
  7. Respuesta (abajo).
  8. Modo cover. Sigue references/cover.md: comienza desde una receta en recipes/ (painted-light es la predeterminada, weight-tide y orbit-loop las alternativas), escribe cover/index.html y assets.json, renderiza cover --round 1, abre la hoja, el póster y el par de unión con read_file, registra la ronda de look con hasta tres defectos con marca de tiempo, vuelve a renderizar solo la ventana de un defecto con --window t0,t1 mientras lo reparas, y ejecuta el render cover completo de nuevo hasta que el archivo decodificado pase cover-gate --strict y la última ronda de look esté limpia.

Salidas

ArchivoQué es
film.mp4H.264, BT.709, rango tv; 1920x1080 (ruta type, stage 16:9) o 1080x1920 (stage 9:16); AAC 256k a menos que el tratamiento pida ninguno
preview.webp, preview.gifuna vista previa en bucle de como máximo 3 MB
poster.png, reduced-motion.pngun póster de como máximo 1 MB, y el estado final estable para lectores que desactivan el movimiento
treatment.json, look.jsonel plan, y cada ronda de look con los fotogramas que vio
stills/imágenes fijas de compás, una tira de transición por corte, una hoja de contactos de 12 fotogramas, board.png con check.json e index.json; en modo cover la hoja decodificada con su gráfico de diferencias, el póster y el par de unión
sound/, sound-cues.jsonla banda sonora en capas (o la base generada para una película mínima, o la pista proporcionada preparada), cada tallo bajo sound/stems/ y cada señal contra su corte
manifest.json, render.jsonl, gate-report.txtel manifiesto de ejecución, el registro por fotograma y el informe de la compuerta
withheld/solo después de una FALLA de auditoría de destellos: diagnósticos, nunca entregables
cover.webp, assets.jsonmodo cover: el bucle (2 MiB o menos en TARGET) y la lista verificada del arte que utiliza

Herramientas y aprobaciones de Muse

  • read_skill carga este archivo y, bajo demanda, las referencias. read_file abre cada referencia y cada PNG renderizado; es la herramienta de look, y nada cuenta como visto a menos que read_file lo haya abierto en esta sesión.
  • bash ejecuta node en los scripts anteriores, siempre por ruta absoluta, además de ffmpeg, img2webp, dwebp y gifski a través del motor. Sin instalación global, sin descarga de paquetes, sin red desde un render.
  • write_file y edit_file escriben el tratamiento, el brief, la página, los archivos de respuestas y assets.json dentro de la carpeta de salida.
  • subagent_spawn con subagent_type: litmuse/quality-reviewer (solo lectura) puede dar una segunda mirada a la hoja de contactos. Sus notas son entrada para tu ronda de look; no puede registrar la ronda por ti.
  • image_generation, cuando la sesión lo ofrece, puede hacer una pintura base para una portada; ese activo es source: generated en assets.json y la respuesta lo etiqueta.
  • El tiempo de ejecución está precalentado fuera de Muse, desde una terminal: npx @litfamily/litmuse runtime install motion (estado: npx @litfamily/litmuse runtime status motion). El sandbox de red de Muse es solo proxy, por lo que un render nunca instala nada; una caché no calentada es salida 14 con ese comando. El nivel opcional de análisis de compases se instala con node "$SKILL_ROOT/scripts/motion-runtime.mjs" install --audio. Preparación: node "$SKILL_ROOT/scripts/motion-doctor.mjs" y npx @litfamily/litmuse doctor. Detalles: references/runtime.md.
  • Los skills y comandos no necesitan aprobación en Muse; los hooks que ejecutan la compuerta de finalización a continuación sí (muse plugins approve litmuse:hook:<id>). Sin hooks aprobados, la compuerta es consultiva y las reglas de evidencia a continuación aún te vinculan.

Evidencia

Mientras la ruta de movimiento está activa, el hook PostToolUse de LitMuse registra cada ejecución de motion.mjs (su subcomando, --out, --round y la línea exit N NAME cuando la salida de la herramienta la lleva) y cada imagen que read_file abrió. Luego, el hook Stop ejecuta la propia verificación de finalización de este skill, engine/node/done.mjs, en la última carpeta de salida.

Una película está terminada con todo esto: un tratamiento válido; compuerta PASS en el render completo final; al menos dos rondas de look, la primera una ronda de tablero que nombra un cambio; la última ronda sellada con el manifiesto de imágenes fijas del render final; y la lista de vistas de esa ronda cubriendo el tablero, el…

Skills relacionados