Communitygithub.com

xhs-card-video

Crea videos cortos de tarjeta de captura de pantalla 3:4 para Xiaohongshu (小红书) sin voz explicativa, combinando capturas reales de X, fondos dinámicos y BGM local verificado, empaquetados en un video y un borrador de publicación archivados por semana. No se publica automáticamente.

¿Qué es xhs-card-video?

Este skill está diseñado para creadores de contenido en Xiaohongshu que desean producir videos cortos estilo 'tarjeta de captura' sin narración. Toma una captura de pantalla de X (o un post visible en la aplicación X), la combina con un fondo de video dinámico (proporcionado por el usuario o descargado de fuentes con licencia como Pexels/Unsplash) y una banda sonora local verificada (BGM) para generar un video MP4 de 8 segundos en formato 1080×1440 píxeles (proporción 3:4). Además, crea un archivo Markdown con el texto de publicación (título, cuerpo de 50 caracteres chinos exactos y 5 hashtags) siguiendo estrictas reglas de revisión editorial. Soporta Claude (para generación de borradores) y Codex (para edición profunda y revisión final), con un flujo de trabajo que incluye verificación de geometría, tiempo, códecs y licencias. No publica automáticamente en Xiaohongshu; solo guarda como borrador si el usuario lo solicita explícitamente.

Compatible con✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/dingchenhui0618-arch/agent-skills/tree/HEAD/skills/xhs-card-video

Preguntar en tu IA favorita

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

Documentación

Sin Rostro Video Explicativo Xiaohongshu

Esta es una ruta de producción de video corto independiente, especializada en ensamblar "tarjeta de captura de contenido real + fondo de paisaje dinámico + BGM local" para borradores de Xiaohongshu (小红书). No modifica ni reemplaza el skill $explainer existente; este último sigue siendo responsable de videos 16:9, locución y explicaciones completas.

Los lectores principales del contenido son personas que desean emprender por su cuenta, están aprendiendo sobre IA y poseen una comprensión básica de negocios e IA. La captura de pantalla es solo una puerta de entrada a la evidencia; el verdadero valor del contenido es traducir las ideas de la captura en acciones que estos lectores puedan juzgar y ejecutar.

Primero, Define los Límites

  • Cada contenido entrega al usuario solo dos elementos: un archivo .mp4 reproducible y un archivo .md de borrador de publicación con el mismo título; los pares de archivos de múltiples contenidos de la misma semana se colocan directamente en el mismo directorio semanal; el manifiesto interno de seguimiento no cuenta como entrega y no se coloca en el directorio semanal.
  • Por defecto, se coloca en Explicación XiaohongshuXX/Semana N/, los videos terminados y los borradores de publicación de la misma semana se colocan directamente en el directorio semanal, sin crear subdirectorios para contenido individual.
  • El borrador de publicación siempre tiene publish_status: draft; antes de la entrega final, title_status debe ser locked. Por defecto, no se inicia sesión, carga, publica, comenta, da "me gusta" ni sigue; solo cuando el editor lo solicita explícitamente, se puede cargar el video y el borrador de publicación designados al centro de creación de Xiaohongshu con sesión iniciada y guardar como borrador, sin hacer clic en publicar. Si el usuario confirma explícitamente una lista de cuentas candidatas, se puede seguir manualmente una por una en la aplicación X con sesión iniciada, sin automatización masiva ni interacciones de crecimiento.
  • El contenido de X debe provenir de capturas de pantalla proporcionadas por el usuario o de publicaciones visibles en la aplicación X con sesión iniciada. No se pueden eludir CAPTCHAS, muros de pago o permisos, ni reorganizar el texto de las capturas, ni inventar cuentas/números/fechas.
  • Por defecto, no se escribe una línea de fuente de X, a menos que el usuario lo solicite; la fuente y la licencia solo se colocan en los metadatos de la biblioteca de materiales.
  • Una sola captura de pantalla es la única tarjeta de información. No se superpondrán subtítulos, barras de título, pegatinas, logotipos, intros, créditos finales, CTA, segunda tarjeta ni personajes.
  • Cuando el usuario no proporciona evidencia factual, el título y el texto solo pueden hacer resúmenes claramente etiquetados, sin presentar especulaciones como hechos.
  • Cada video terminado debe tener un run_manifest.json interno, ubicado fuera del directorio semanal, que registre la captura de pantalla, el fondo, el BGM, el público objetivo, la puntuación del tema, los títulos candidatos, la estructura del cuerpo, el paquete de revisión, los hashes y la confirmación humana; no es un archivo de publicación y no debe colocarse en el directorio semanal.

Cuándo Usar

Usa este skill cuando el usuario diga "haz un video explicativo para Xiaohongshu", "convierte esta captura de X en video", "usa un paisaje dinámico como fondo", "ponle una BGM", "dame el video y el borrador de publicación". Cuando se necesite operar la aplicación X de escritorio o la aplicación X con sesión iniciada, primero lee el skill de computer-use/control de navegador disponible. La detección y renderización de medios se realiza con ffprobe, ffmpeg o herramientas de edición autorizadas localmente. Si faltan capturas de pantalla, fondo, BGM conforme o evidencia de título que altere el significado de los hechos, detente en WAIT_DATA/WAIT_USER, no inventes.

Contrato de Entrada y Salida

Las reglas de generación y revisión de títulos, cuerpo de 50 caracteres y etiquetas se encuentran en content-generation-contract.md. Este archivo de referencia es el estándar de producción de contenido de este skill, no una inspiración opcional.

Entrada Mínima

  1. Una captura de pantalla de X, o un post localizable en la aplicación X con sesión iniciada.
  2. Una imagen de referencia de diseño cargada por el usuario, para fijar source_crop_rect_px; solo si el usuario confirma explícitamente que la captura de X también sirve como imagen de referencia, se puede reutilizar el mismo archivo.
  3. Un video de fondo dinámico. Si el usuario no lo proporciona, se puede obtener de páginas de descarga explícita de Pexels/Unsplash, guardando la licencia/registro de fuente; no se pueden usar materiales solo desde páginas de resultados de búsqueda.
  4. Un BGM local, o se permite seleccionar de la Biblioteca de BGM para explicaciones de Xiaohongshu local. Los archivos de audio con autorización desconocida no deben incluirse en el video final.

Opcional: tema, emoción objetivo, número de semana, título especificado por el usuario, si se debe conservar el área de imagen visible en el post original; la duración del video no se toma como entrada, está fijada permanentemente en 8 segundos.

Especificaciones Fijas del Video

  • Lienzo fijo permanentemente en 1080×1440 px (3:4), por defecto 30 fps, video H.264, audio AAC.
  • Duración del video fija permanentemente en 8 segundos; no se puede ajustar a otra duración.
  • El fondo dinámico cubre todo el lienzo, se puede atenuar ligeramente/añadir viñeta/desenfocar para sostener la tarjeta; no se puede congelar el fondo en un fotograma estático.
  • El ancho de la tarjeta de captura está fijo permanentemente en 880 px, los márgenes izquierdo y derecho del lienzo están fijos permanentemente en 100 px (100 + 880 + 100 = 1080).
  • La tarjeta de captura primero se recorta según la referencia del usuario para fijar el área de recorte de la captura fuente, luego se llena y recorta (cover) para ocupar 880 px de ancho; está prohibido usar pad, letterbox o cualquier relleno en blanco. No se puede reescribir, reorganizar ni ocultar texto clave.
  • La altura de la tarjeta de captura está determinada naturalmente por la proporción de la captura después de fijar el recorte con la referencia: si logical_card_height <= 1440, entonces final_card_height = logical_card_height y y = floor((1440 - final_card_height) / 2); si supera 1440px, primero se recorta verticalmente centrado con source_vertical_crop_px = floor((logical_card_height - 1440) / 2), final_card_height = 1440, resultando y = 0. En ningún caso se especifica un espacio en blanco fijo superior/inferior, ni se reduce el ancho o se añade relleno.
  • La capa visible final de la captura utiliza una máscara de bordes redondeados de 24 px (medidos en píxeles de salida 1080×1440), con un borde interior de 2 px de color gris claro #C9D1D8 en el borde más externo de la tarjeta, y añade una sombra suave: negra, opacidad 16%, radio de desenfoque 12 px, desplazamiento (0, 8 px), extensión de reserva 36 px. El borde y la sombra pertenecen a la tarjeta de captura, no cambian las dimensiones externas de 880px de la tarjeta ni añaden una segunda capa de información. Cuando no se proporciona una imagen de referencia, detente en WAIT_USER, no fijes el rectángulo de recorte.
  • La tarjeta de captura aparece desde el segundo 0 por defecto, como la única tarjeta de información al principio del video y permanece hasta el final; si el usuario solicita explícitamente una animación de entrada, solo se pueden hacer cambios ligeros y legibles en la tarjeta misma.
  • La escena contiene solo "fondo + una tarjeta de captura". Están prohibidos subtítulos adicionales, pegatinas, barras de fuente, intros, créditos finales y una segunda capa de información.
  • Por defecto, solo hay una pista de audio BGM, sin narración; la música cubre todo el video y tiene una breve entrada/salida gradual para evitar picos y cortes bruscos.

Especificaciones Fijas del Borrador de Publicación

El nombre base del Markdown debe ser exactamente el mismo que el del video: <título>.mp4 y <título>.md. El cuerpo del texto tiene estrictamente 50 caracteres chinos por defecto; el conteo solo considera caracteres chinos en el cuerpo, sin contar título, puntuación, números, inglés, etiquetas y campos de estado. Solo cuando el usuario selecciona explícitamente el modo flexible, se puede usar un rango de 45–65 caracteres. El borrador solo conserva:

publish_status: draft
title_status: locked
copy_length: exact_50
platform: xiaohongshu
content_review_status: claude_approved
content_review_agent: claude
content_generation_agent: claude
editorial_review_status: codex_approved
editorial_review_agent: codex

# Título

Cuerpo del texto (exactamente 50 caracteres chinos, incluyendo un gancho atractivo y un cierre claro)

#Etiqueta1 #Etiqueta2 #Etiqueta3

No metas la licencia del BGM, enlaces de descarga o proceso de producción en el texto para lectores. Cuando sea necesario dejar constancia, escríbelo en el index.json de la biblioteca de materiales o en los resultados internos de ejecución, sin aumentar los archivos de entrega semanal.

Flujo de Trabajo

  1. Recepción y Verificación: Confirmar captura, imagen de diseño de referencia independiente (o confirmación explícita del usuario de que la captura sirve como referencia), fondo, tema, número de semana y estado de la biblioteca de materiales; listar las carencias. Si el título contiene números, causalidad o promesas de beneficio, primero verificar si la captura realmente lo respalda.
  2. Captura de Contenido: Cuando el usuario autoriza operar la aplicación X, solo capturar el contenido visible actual; copiar la captura original como solo lectura a un espacio de trabajo temporal; al finalizar el video, limpiar la copia temporal sin eliminar la captura original del usuario, el video original ni la música original.
  3. Filtrado, Selección de Tema y Borrador Inicial con Claude: La automatización posterior solo leerá publicaciones públicas de un grupo de cuentas X confirmadas, primero pasando el umbral de calidad de captura de content-generation-contract.md; una vez superado, crear un topic_packet y puntuarlo, luego hacer que Claude genere 5 títulos candidatos, 1 título recomendado, 2 títulos de respaldo, cuatro versiones del cuerpo y 5 etiquetas. Cuando el editor ya ha especificado un título, se fija directamente ese título, Claude solo genera el cuerpo y las etiquetas. La salida de Claude es siempre un borrador de material, no puede entregarse directamente.
  4. Edición Profunda de Codex y Revisión Final: Codex debe repensar el borrador inicial de Claude, enfocándose en revisar el gancho, el atractivo visual, los puntos débiles reales, el conflicto, la reivindicación de identidad, la frase memorable, el valor de acción y los límites de la evidencia; si es necesario, reescribir completamente, no solo reducir la longitud. Después de completar la verificación mecánica de exactamente 50 caracteres chinos y 5 etiquetas, enviar el borrador final a Claude para una revisión de cumplimiento; solo cuando Claude no esté disponible, se puede cambiar a Hermes y registrar fallback_reason. Solo cuando editorial_review_status: codex_approved y el estado de cumplimiento sea claude_approved o hermes_approved legal, se puede pasar a entrega.
  5. Seleccionar Fondo: Priorizar el video proporcionado por el usuario; los materiales externos solo se descargan de páginas oficiales con licencia explícita y se registra la fuente. Recortar/escalar a 3:4, sin cambiar el área de lectura de la tarjeta de captura.
  6. Seleccionar BGM: Primero ejecutar audit_bgm.py, luego de los registros locales con approved, sync_allowed=true, commercial_allowed=true, filtrar por estado de ánimo, energía, duración y presencia vocal, y seleccionar una usando una semilla fija de las 3–5 mejores puntuaciones. pending solo puede ser una sugerencia candidata; la producción/entrega debe usar --confirmed-only y human_listen_status=confirmed. La IA no toma la decisión final por el humano. Las pistas CC BY también deben tener un texto de atribución colocable, de lo contrario son eliminadas.
  7. Síntesis: Reconstruir la línea de tiempo completa desde la captura fuente, el fondo y el BGM, usando ffmpeg/herramienta de edición para generar un MP4 de 1080×1440. Si se encuentra un error, volver a los materiales fuente y reconstruir, sin superponer parches en el MP4 ya renderizado.
  8. Aceptación: Usar ffprobe para verificar obligatoriamente la proporción, la tasa de fotogramas, H.264/yuv420p, AAC, una sola pista de audio, audio desde el segundo 0 y cubriendo el video, duración de 8 segundos (tolerancia de encapsulado ±0.05 segundos); extraer fotogramas para confirmar que la tarjeta está nítida y sin capas de texto adicionales; verificar que el audio no tenga picos, no comience en silencio y no tenga conflicto vocal evidente; el texto debe pasar primero la edición profunda de Codex y luego la revisión de cumplimiento de Claude, o la revisión de respaldo de Hermes si la conexión con Claude falla y se registra el motivo.
  9. Archivado: Escribir exactamente un MP4 y un Markdown directamente en Explicación XiaohongshuXX/Semana N/; colocar el manifiesto interno fuera del directorio semanal. Limpiar solo las copias temporales generadas en esta ejecución, fotogramas temporales, registros y versiones de respaldo, sin limpiar los materiales originales del usuario; conservar los registros de fuente, licencia y hash en el manifiesto; mantener los borradores locales, sin publicación externa.
  10. Bandeja de Borradores de Xiaohongshu (solo cuando el usuario lo solicite explícitamente): Priorizar tomar el control del centro de creación de Xiaohongshu en Google Chrome del ordenador con sesión iniciada por el usuario, no considerar el estado de inicio de sesión del navegador incorporado de Codex como una sesión de navegador de ordenador. Confirmar que el centro de creación ha iniciado sesión, luego cargar el .mp4 especificado, llenar el título y el cuerpo final/5 etiquetas del Markdown, esperar a que se complete el procesamiento y hacer clic en "Guardar borrador" o un botón equivalente. Después de guardar, verificar autoritativamente con mensajes de página, lista de borradores o relectura del título, y escribir draft_upload_status, hora e identificador del borrador en el manifiesto fuera del directorio semanal. Ante páginas de inicio de sesión, CAPTCHA, control de riesgos, declaración de derechos de autor u otras que requieran juicio del usuario, detenerse en WAIT_USER; no hacer clic en "Publicar", publicación programada, publicación sincronizada ni ninguna acción de interacción.

Restricciones Duras de Aceptación de Hermes / Sin Rostro

Cada entrega debe registrar evidencia factual, no solo aprobar basándose en "se ve bien":

  • Lienzo: ffprobe debe ser 1080×1440.
  • Geometría Horizontal: Los registros de extracción de fotogramas o filtros deben probar que la tarjeta de captura tiene x=100, w=880, margen derecho=100.
  • Relleno y Recorte: La tarjeta de captura no debe tener pad, letterbox, bordes blancos ni relleno transparente; el contenido que sobresalga debe provenir del recorte cover.
  • Geometría Vertical: Cuando no supera la altura, y=floor((1440-final_card_height)/2); cuando supera la altura, primero registrar source_vertical_crop_px centrado, la altura final de la tarjeta es 1440 y y=0.
  • Bordes Redondeados, Borde, Sombra y Capas: El radio de la máscara de la capa visible final de la captura es 24px, el borde interior en el borde más externo de la tarjeta está fijo en 2px #C9D1D8, la sombra está fija en negro 16%, desenfoque 12px, desplazamiento (0,8px), extensión 36px; la escena solo puede tener el fondo dinámico y esta única tarjeta de captura.
  • Reproducible: El manifiesto debe indicar los valores geométricos anteriores, la ruta/hash de la imagen de referencia del usuario, source_crop_rect_px, hora de aceptación, rutas/hashes del primer fotograma/fotograma intermedio/último fotograma, ruta del registro de filtro y next_state; cuando falten la imagen de referencia o la evidencia, detenerse en WAIT_USER.

Los bordes redondeados, el borde y la sombra deben completarse antes de que la tarjeta de captura entre en la composición: primero dibujar un borde interior de 2px #C9D1D8 en el borde más externo de la tarjeta, luego usar scripts/make_rounded_mask.py --width 880 --height FINAL_CARD_H --radius 24 --output rounded-mask.pgm para generar una máscara PGM del tamaño final y aplicar alphamerge; a partir del alpha de la misma tarjeta con bordes redondeados, generar la sombra extendida, desenfocada y desplazada, y luego componer la sombra y la tarjeta original sobre el fondo. No se pueden agregar capas sobre el MP4 ya renderizado. El manifiesto debe registrar todos los parámetros fijos del borde y la sombra.

Puntos de Entrada de Intención

Trata las siguientes frases como rutas internas estables, no requiriendo que el usuario conozca los parámetros del script:

/xhs-card-video make
/xhs-card-video make --source x-app --week auto --bgm random --confirmed-only --record
/xhs-card-video make --source <screenshot> --background <video> --bgm <bgm-id>
/xhs-card-video bgm init --count 100
/xhs-card-video bgm ingest <file-or-folder>
/xhs-card-video bgm confirm <bgm-id> --status confirmed
/xhs-card-video bgm audit
/xhs-card-video bgm pick --mood rainy --energy low-mid --seed <seed> --confirmed-only --record
/xhs-card-video audit <week-folder>
/xhs-card-video audit <week-folder> --title <título> --manifest <run-manifest.json>
/xhs-card-video audit <week-folder> --manifest <run-manifest.json>

Los scripts correspondientes están en scripts/ de este skill. Los scripts son herramientas auxiliares reutilizables, no representan que se haya ejecutado una publicación externa.

Biblioteca Local de BGM

Ruta por defecto:

{{CREATOR_ROOT}}/BibliotecaBGMXiaohongshu/

Priorizar el uso de la variable de entorno PROOF_EXPLAINER_XHS_BGM_LIBRARY para sobrescribir; la variable anterior EXPLAINER_XHS_BGM_LIBRARY solo se mantiene por compatibilidad. El primer lote de la biblioteca tiene 100 pistas, divididas en 10 categorías: Concentración y Vida Diaria, Noche Lluviosa y Clima, Ambiente y Sueños, Noche y Neón, Calidez y Ritmo Lento, Jazz y Librería, Ligero y Cotidiano, Oriente y Zen, Retro y Ritmo, Mundo y Sensación Cinematográfica. 100 pistas son solo un grupo de materiales invocables, no son las Top 100 populares de Xiaohongshu, ni constituyen una clasificación de tendencias.

Requisitos Mínimos de Metadatos

Cada pista en index.json debe tener al menos:

{
  "id": "bgm-001",
  "relative_path": "audio/01_Concentración_y_Vida_Diaria/bgm-001__track.mp3",
  "source_page_url": "https://…",
  "download_url": "https://…",
  "source_platform": "openlofi|user_local|manual_other",
  "license_class": "cc0|cc_by|site_custom|user_owned|reference_only|blocked",
  "sync_allowed": true,
  "commercial_allowed": true,
  "standalone_redistribution_allowed": false,
  "license_checked_at": "YYYY-MM-DD",
  "license_snapshot_path": "licenses/…",
  "license_snapshot_sha256": "…",
  "rights_notes": "…",
  "trend_status": "verified|unverified|not_claimed",
  "duration_s": 12.3,
  "sha256": "…",
  "review_status": "approved|review|rejected",
  "human_listen_status": "pending|confirmed|rejected"
}

Solo las pistas con review_status=approved, sync_allowed=true, commercial_allowed=true y una clase de licencia clara pueden incluirse en el video. reference_only solo se usa para registros de inspiración, blocked no se puede invocar. El audio de videos locales proporcionados por el usuario es por defecto review; solo cuando el usuario confirma que posee los derechos o ha obtenido autorización, se puede cambiar a user_owned. El permiso para empaquetar/re vender audio por separado es diferente de "incrustar en un video final", no se puede inferir por defecto.

El primer lote de la biblioteca usa el paquete de lanzamiento fijo de Open Lo-Fi v1.0.0, manteniendo en el directorio el catálogo ascendente, README, instantánea de la licencia y SHA-256. El README declara CC0 1.0, pero las muestras de terceros/derechos regionales no son auditados independientemente por este skill; rights_notes debe conservar esta advertencia. Si la fuente es Pixabay, Mixkit, OpenGameArt, DOVA, etc., se debe leer la página de licencia oficial elemento por elemento, no se puede raspar en lote ni usar una URL de vista previa como prueba de autorización/descarga formal. No descargar ni redistribuir fuentes de audio populares restringidas de XHS/TikTok/Instagram.

Reglas de Selección

random no es aleatorio sin restricciones:

Licencia o decodificación no conforme      → Eliminar
Coincidencia de estado de ánimo              +4
Coincidencia de energía/ritmo                +3
Duración, bucleable, música instrumental     +2
Usado recientemente                          -1
Conflicto vocal con tarjeta de captura       -3

Primero conservar las 3–5 pistas con mayor puntuación, luego seleccionar una usando una semilla fija; escribir bgm_id, semilla y motivo de filtrado en selection_history.jsonl, sin llevar los registros de ejecución al directorio de entrega semanal.

Directorio Semanal, Nombres de Archivo y Estado

Explicación XiaohongshuXX/
└── Semana N/
    ├── <título>.mp4
    └── <título>.md
  • Semana N por defecto toma la semana ISO actual; cuando el usuario especifica un número de semana, se usa el del usuario.
  • El nombre del archivo es el título confirmado. Solo reemplazar caracteres prohibidos por el sistema, saltos de línea y /, no cambiar silenciosamente a un número.
  • El directorio semanal solo puede contener pares de archivos MP4/Markdown, sin materiales temporales, registros o subdirectorios; cuando contiene múltiples contenidos, usar audit_delivery.py --title <título> para auditar un par específico.
  • El directorio padre del directorio semanal debe ser exactamente Explicación XiaohongshuXX, el nombre de la semana debe cumplir con Semana 1–Semana 53; el manifiesto interno se coloca en {{CREATOR_ROOT}}/.xhs-card-video-runs/ (o una ruta fuera del directorio semanal especificada por el usuario).
  • El estado interno se puede escribir como:
state: INTAKE | WAIT_DATA | WAIT_USER | WAIT_REVIEW | BUILD | AUDIT | local_ready
source_status: captured | supplied | missing
bgm_status: approved_confirmed | approved_pending_listen | review | missing
title_status: locked | draft
publish_status: draft
draft_upload_status: not_requested | pending | saved | blocked
draft_upload_platform: xiaohongshu | none
draft_upload_at: <ISO-8601 or null>
draft_entry_identifier: <title/url/id or null>
copy_length: exact_50 | range_45_65
platform: xiaohongshu
content_review_status: pending | claude_approved | hermes_approved | rework_required
content_review_agent: claude | hermes | none
content_generation_agent: claude | hermes | none
editorial_review_status: pending | codex_approved | rework_required
editorial_review_agent: codex | none
run_manifest: <absolute path outside week folder>
delivery_path: <absolute week folder>
next_state: DONE | WAIT_DATA | WAIT_USER

Solo cuando ambos archivos finales se pueden abrir, audit_bgm.py y audit_delivery.py --manifest … pasan todas las verificaciones, la visualización/escucha humana ha sido confirmada y no hay acción de publicación externa, se puede informar local_ready.

Manejo de Fallos

  • Falta captura/fondo/BGM disponible: Informar la carencia específica, detenerse en WAIT_DATA, no descargar sustitutos no autorizados.
  • El título alteraría los hechos del post original: Detenerse en WAIT_USER, dar los límites fácticos que necesitan confirmación.
  • El audio no se puede decodificar, el hash se duplica o faltan campos de licencia: Eliminar del grupo candidato, ejecutar audit_bgm.py, no "usar primero y luego ver".
  • El BGM sigue con human_listen_status=pending, el manifiesto falta/está dentro del directorio semanal, o la atribución CC BY no tiene lugar donde colocarse: Detenerse en WAIT_USER/AUDIT, no informar local_ready.
  • La proporción de renderizado, la legibilidad de la tarjeta o la pista de audio no son conformes: Eliminar esa salida temporal, reconstruir desde los materiales fuente; no superponer capas de parche.
  • Cualquier solicitud de publicación pública, publicación programada o interacción: Mantener borrador y requerir explícitamente que el usuario confirme/ejecute personalmente; este skill solo carga en la bandeja de borradores de Xiaohongshu cuando el usuario lo solicita explícitamente, y debe detenerse en "Guardar borrador", sin publicar en su lugar.

Archivos de Referencia

  • references/xhs-video-contract.md: Restricciones de lienzo, tarjeta, audio y renderizado.
  • references/bgm-library-contract.md: Directorio, licencia, campos y algoritmo de selección.
  • references/delivery-checklist.md: Lista de verificación ejecutable antes de la entrega.
  • references/run-manifest.md: Lista de verificación de fuente, licencia, hash y confirmación humana fuera del directorio semanal.
  • references/content-generation-contract.md: Público objetivo, puntuación del tema, borrador inicial de Claude, edición profunda de Codex, mecanismo de título/cuerpo de 50 caracteres/5 etiquetas, y ruta final de revisión de cumplimiento.
  • scripts/install_openlofi.py: Inicializar el primer grupo de 100 pistas desde un lanzamiento oficial fijo.
  • scripts/select_bgm.py: Filtrar y seleccionar con semilla aleatoria, sin modificar el audio.
  • scripts/ingest_bgm.py: Colocar audio local del usuario en la bandeja de entrada pendiente de revisión, sin otorgar derechos por defecto.
  • scripts/confirm_bgm.py: Solo registrar la aprobación/rechazo de escucha humana según el ID especificado explícitamente por el usuario, sin tomar decisiones por él.
  • scripts/audit_bgm.py: Verificar índice, rutas, decodificación, hash y campos de licencia.
  • scripts/audit_delivery.py: Verificar el contrato de los dos archivos del directorio semanal, estado de borrador, estado de revisión de contenido, evidencia geométrica e información de flujo base del MP4.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

design-showcase-websites

Design and build distinctive, high-impact websites and clickable, presentation-ready prototypes for any industry, language, or site type from business briefs, public links, local media, existing sites, or product requirements. Use for brand and corporate sites, landing pages, ecommerce, SaaS and product sites, portfolios, editorial and content sites, education and nonprofit sites, events and communities, local and hospitality businesses, campaigns, web product interfaces, and website UI redesigns. Support Chinese, English, Japanese, Korean, and multilingual experiences without defaulting to one locale or visual style. Also use for requests mentioning 网站原型, 宣传网站, 企业官网, 营销官网, 电商网站, 落地页, 内容网站, 官网重构, 可点击演示, website prototype, landing page, or redesign.

kinetic-typography-video

动效 KINETIC — 把口播视频(数字人或真人实拍)做成爆款动效质感的视觉语言与逐帧渲染器。用一条贯穿全片的"光"、按音节落下的大字、剪辑师才认得的圈内物件(框选框、真实声波、关键帧、时间线、口型条)、人物抠像后"字藏身后"、音画同钟的合成音效与节拍对齐的配乐。用户说"用动效做/用动效风格/做得更炫/像那条爆款动效视频一样/Opus 那种动效"、或要给数字人/真人口播加高密度动效包装时使用。不用于:只要简单字幕的口播、纯 MG 无人物讲解(用 knowledge-explainer)、结构化信息单镜头(shotcraft-motion)。

knowledge-explainer

把文字、文章、笔记、PPT 或 HTML 课件提炼为有配音字幕的 16:9 知识讲解视频。 使用 Remotion 语义动画与 Fish Audio / ElevenLabs 配音,先做短样片再扩展。 用于课件转视频、知识视频、内训片、科普 explainer,也用于参考视频的解释型动效拆解与原创复现;不负责真人口播剪辑、数字人生成或未知作者工具归属鉴定。

video-prompt-director

创作者的主力 AI 视频提示词 Skill。先按脚本风格选档位,再像导演一样把脚本、故事、口播稿、分镜表或一句想法,拆成能直接生成的分段视频提示词。短视频档(抖音/小红书节奏:一镜到底、多分镜、街拍、角色小故事、竖屏短剧,标杆是《丹眉》和赛博原子)和电影精品档(慢节奏剧情、表演、对白、对手戏、AU 微表情、八维公式),各有结构和示例。每段含生成模式与参数、参考图绑定、人物道具场景、镜头时间轴、声音和硬约束。适用 Seedance 2.0/2.5、即梦、dreamina、LibTV、TT AI。Use when 用户要写视频提示词、AI 视频提示词、Seedance 提示词、即梦提示词、脚本转视频、拆分镜、分镜提示词、快剪、短视频提示词、storyboard、shot list、多图参考、首尾帧、人物表演提示词、AI 演技、情绪递进、导演式提示词,或给出脚本/故事/想法要变成视频。当前项目若有专用工作流 Skill(Vlog、情感钩子、新闻解说等),优先用专用的。

Skills relacionados