¿Qué hace 100x-prompt-compose?
Posicionamiento en una frase
Ingresa un ID de plantilla de prompt (o una descripción de necesidad) + variables, y genera el prompt final renderizado palabra por palabra, empaquetado según el modelo objetivo (Veo/Seedance/Jichuang). Pertenece al paso "prompt + modelo" del sistema 100x, conectando los skills upstream de personajes/escenas/palabras clave de búsqueda con el modelo de generación AI downstream.
Cuándo activarlo
El usuario dice:
- "Ayúdame a armar un prompt" / "Completa la plantilla y dame el prompt" / "¿Qué modelo usar para este video?" / "Genera un prompt para video" / "Selecciona una plantilla y asigna variables"
- "compose a video prompt" / "fill in this template" / "which model should I use for this" / "generate an AI video prompt"
- O proporciona directamente una descripción de producto/personaje/escena, solicitando un prompt listo para alimentar a un modelo de generación de imágenes/video
Entrada
Entrada mínima (Categoría A, obligatoria): template_id (uno de los 14 templates, ver templates.json)
o una descripción de necesidad lo suficientemente única como para coincidir con una plantilla (categoría + escenario use_when, ver workflow.md Phase 1, paso 1); todas las variables en variables[] cuyo label no contenga "(opcional)" deben ser proporcionadas (no adivinar ni inventar apariencias/diálogos específicos).
Complemento suave (Categoría B, si falta se degrada, ver workflow.md Phase 1, pasos 2/4): variables cuyo label contenga "(opcional)"; selección de model para plantillas de video (si falta, preguntar una vez; si no responde, por defecto model_hint[0]).
Salida opcional upstream (Categoría C, si falta se omite silenciosamente, no bloquea ni obliga al usuario a ejecutar otro skill): existing_refs_input (bloqueos de producto/personaje establecidos en llamadas anteriores, ver axioma 2).
Salida
Estructura según schema.json: ComposedPromptBundle = template_id/category + variables_used + rendered_body (cuerpo chino renderizado palabra por palabra, ya incluye realism_suffix) + reference_locks (registro de creación o referencia de bloqueos de producto/personaje) + (para plantillas de video) model + video_unit (prompt final empaquetado según modelo + duración) + meta. Opcionalmente, renderizar un resumen legible (nombre de plantilla/tabla de variables/prompt final).
Restricciones principales (4 axiomas, ver axioms.md)
- El prompt final debe reemplazar palabra por palabra el cuerpo de la plantilla, sin paráfrasis ni eliminaciones:
rendered_bodydebe ser el resultado de interpolación palabra por palabra del cuerpo de la plantilla correspondiente entemplates.json(incluyendo expansión de marcadores entre corchetes), no una reescritura libre "que tenga el mismo significado" - Las referencias a números de imágenes de referencia deben apuntar a bloqueos ya declarados, no pueden ser ficticias: la primera aparición de un producto/personaje bloquea su apariencia, las siguientes deben escribir "referencia N producto/personaje", y N debe existir realmente en el conjunto de números ya establecidos (limitación conocida: aquí solo se puede verificar "si el formato es correcto" y "si el número realmente existe", no se puede verificar si la descripción del primer bloqueo es realmente específica (todos los elementos de apariencia del producto / todos los cinco elementos de edad+raza+género+vestimenta+apariencia del personaje) ——
persona: "a person",product_lock: "a thing"y otros textos de marcador de posición vacíos pueden pasar la validación actualmente, porqueschema.json/scripts/validate.jssolo verifican que la cadena no esté vacía, el formato y la existencia del número, sin hacer juicios semánticos de contenido; se evaluó el uso de heurísticas como la longitud mínima para bloquear, pero también eliminarían ejemplos cortos válidos de la propia plantilla, por lo que no se implementó, y se registra fielmente en el párrafo "límite conocido" del axioma 2 deaxioms.md; aún depende completamente de que el invocador siga la disciplina de "preguntar cuando falte, no inventar" del paso 2 de la Fase 1 deworkflow.md) - Las variables de escena no pueden contener palabras de iluminación; la iluminación se controla de manera uniforme mediante el sufijo: si las variables
scene/scenes/place/roomscoinciden con la lista cerrada de palabras de iluminación, se rechazan; las palabras de clima están permitidas - Para videos, el límite de duración y la lista de palabras prohibidas se ejecutan según el modelo seleccionado, con tolerancia cero: veo 8.0s/seedance 10.0s + sus respectivas listas de palabras prohibidas + oración fija al final; Jichuang no tiene material de fuente dedicado, solo se verifica la clasificación de tomas narrativas, sin verificación estricta de duración/palabras prohibidas (limitación conocida: actualmente no se incluye material de axioma dedicado para el modelo Jichuang, ver
sources.md); limitación conocida (confirmada mediante pruebas con corpus real, no suposiciones teóricas): la lista de palabras prohibidas de veo/seedance es una coincidencia de límites de palabras puramente léxica, no puede distinguir entre "professional" usado como adjetivo de estilo AI (el objetivo de la lista de palabras prohibidas, como "professional lighting") y "professional" usado como descripción fiel de la profesión real del hablante (por ejemplo, traducir fielmente la profesión real del hablante al inglés y que contenga esta palabra) —— describir fielmente la identidad real también resultará en FAIL, solo se puede reemplazar con un sinónimo que no choque, ver el párrafo "límite conocido" del axioma 4 deaxioms.md
Proceso de tres fases
Ver workflow.md: Fase 1 Recepción + Validación (seleccionar plantilla → variables completadas → escena sin palabras de iluminación → [video] seleccionar modelo → contexto de números de referencia) → Fase 2 (renderizado palabra por palabra → expansión de corchetes → registro de bloqueos de referencia → [video] empaquetado según modelo → autoverificación elemento por elemento) → Fase 3 Retrabajo iniciado por el usuario (L1 variable única / L2 cambiar modelo / L3 completo; no hay rama de "diálogo no en inglés" —— la biblioteca de plantillas exige que los diálogos sean en inglés americano para TikTok en EE. UU., sin excepción, ver la última fila de la tabla de la Fase 3 de workflow.md).
Garantía de invocación independiente
Si falta la Categoría A (no se puede seleccionar plantilla + faltan variables obligatorias) → preguntar con un mensaje de rechazo fijo, sin adivinar ni inventar apariencias/diálogos específicos. Si falta la Categoría B, se degrada (las variables opcionales se procesan según la semántica de la plantilla; si falta model, preguntar una vez y luego usar el valor predeterminado). Si falta la Categoría C (existing_refs_input), se omite silenciosamente: este skill no exige al usuario "ejecutar primero IMG-01 para establecer un bloqueo de producto" antes de comenzar; en la primera aparición, se permite directamente usar descripciones textuales en lugar de imágenes de referencia.
Palabras prohibidas
Hágame / Espero / Quizás / Más o menos / Posible / Tal vez / Dejemos que; tono de atención al cliente AI (as an AI / I'd be happy to / feel free to); no inventar certificaciones de eficacia o testimonios de usuarios que no estén en el guion/texto; no inventar detalles de apariencia de producto o personaje que el usuario no haya proporcionado para completar variables; las palabras prohibidas para empaquetado de video veo/seedance se encuentran en profiles/veo.md/profiles/seedance.md (palabras de estilo AI como cinematic/stunning/flawless, etc. + comillas dobles + bloques de código markdown; la lista específica está en los archivos correspondientes, no se repite aquí para evitar desincronización con la tabla de constantes del script).
Enrutamiento (recomendado, no obligatorio)
- Si solo hay un texto, sin materiales de producto/personaje/escena → skills de personaje/escena (si existen)
- Si se buscan imágenes de referencia visual antes de decidir cómo completar la plantilla → skill de palabras clave de búsqueda (si existe)
- Si el prompt ya está listo y se quieren hacer múltiples variantes → skill de fisión de prompts (si existe)
- Si se quiere volver a la entrada para un nuevo triaje → entrada general del sistema 100x (si existe)
Todo lo anterior son "recomendaciones posteriores a la salida según necesidad", no dependencias previas; si el skill correspondiente aún no está construido, no afecta el funcionamiento independiente de este skill.
Autoverificación de fábrica
Ejecutar node scripts/validate.js --selftest para verificar. El axioma 1 (reconstrucción de plantilla), axioma 2 (integridad de bloqueos de referencia), axioma 4 (duración/palabras prohibidas/oración final específica del modelo) son criterios que cruzan archivos/entradas/listas de palabras grandes; schema.json (vanilla JSON Schema) no puede expresarlos, quien realmente ejecuta el juicio es scripts/validate.js:
npm install # Primera vez, instalar ajv
node scripts/validate.js <bundle.json> [bundle2.json ...] # Validar salidas
node scripts/validate.js --selftest # Ejecutar casos de prueba incorporados
Fuentes
Este skill se construye combinando la biblioteca de plantillas de prompts con las reglas de adaptación de los principales modelos (Veo / Seedance): templates.json proporciona 14 plantillas de prompts estandarizadas; profiles/veo.md y profiles/seedance.md proporcionan las especificaciones de empaquetado para los modelos objetivo. El sistema de criterios incluye integridad de referencias, detección de listas cerradas de palabras y validación de duración y palabras prohibidas del modelo. Los detalles de diseño y las explicaciones de las fuentes se encuentran en sources.md.