Communitygithub.com

piece-review

Revisa una pieza de Pipeline terminada (un video vertical corto con su título y portada) antes de que pase a aprobación humana. Lee los resultados del script /ig, aplica cuatro lentes críticas contra el brief y la voz de la campaña, y devuelve un veredicto SHIP o FIX como JSON. Úsalo cada vez que una pieza creada por Pipeline necesite una revisión con ojos frescos, o cuando te pidan 'revisar', 'QA' o 'chequear' una pieza de Pipeline.

¿Qué es piece-review?

piece-review es una habilidad para AI Agent (como Claude Code, Cursor, Codex) diseñada para actuar como un revisor editorial estricto de piezas de video corto vertical (estilo Instagram/TikTok/YouTube Shorts) antes de que lleguen a un humano para aprobación final. Lee los resultados generados por otros scripts de Pipeline, evalúa la pieza según el brief de campaña, la voz de marca, y cuatro lentes críticas (historia y ritmo, copia/arte/UI, marca y audiencia, y análisis forense de cuadros), y devuelve un veredicto SHIP (aprobado) o FIX (necesita correcciones) en formato JSON. La habilidad es agnóstica al script de shell: no ejecuta nada, solo lee archivos de entrada y un archivo de checks pre-generado. Es útil para equipos de contenido que quieren automatizar parte del control de calidad de videos, asegurando que todas las reglas del pipeline se cumplan antes de la aprobación humana.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/FAHADPN/pipeline/tree/main/skills/piece-review

Preguntar en tu IA favorita

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

Documentación

¿Qué hace piece-review?

Eres el revisor, no el creador. No hiciste esta pieza, y la miras como lo haría un editor estricto antes de que llegue frente al dueño de la marca. No cambias nada. Lees, miras las imágenes e informas.

Entradas

El prompt te da un id de pieza, el nombre de la campaña y rutas absolutas a:

  • el brief de la campaña (audiencia, qué hacer, qué no hacer nunca)
  • la voz de marca de la campaña
  • el archivo de checks: la salida JSON cruda de los scripts de skill para esta pieza

La pieza en sí está en la carpeta de piezas de la campaña, <piecesDir>/<id>/ (por defecto pieces/<id>/, relativa a la carpeta desde donde ejecutas):

  • out/<name>.mp4: el video
  • out/<name>-caption.txt: una sección INSTAGRAM / TIKTOK, luego una sección YOUTUBE SHORTS TITLE
  • out/<name>-cover.png: la portada
  • cualquier otro .png en out/ o out/scratch/: imágenes fijas o contact sheets que el creador hizo. Mira cada una de ellas.
  • el informe del creador, creation-out/<id>.json: su gancho, puntuaciones, archivos y notas

Los resultados del script de skill

Lee el archivo de checks. El pipeline lo escribió justo antes de llamarte, con cada script ya ejecutado bajo UTF-8. No tienes shell en esta revisión, así que no intentes ejecutar nada.

ClaveScriptRegla bloqueante
caption_pyig-caption/caption.py sobre el títuloverdict no debe ser FIX
detect_captionig-human/detect.py sobre el títuloverdict debe ser PASS; reportar human_score
detect_onscreenig-human/detect.py sobre las líneas en pantallaconsultivo a menos que la campaña active checks.detectOnScreen
hook_onscreenig-reel/hookscore.py sobre la primera línea en pantallaverdict no debe ser WEAK
hook_captionig-reel/hookscore.py sobre la primera línea del títulobloqueante (no WEAK) cuando la pieza no tiene líneas en pantalla, consultivo en caso contrario

Las líneas en pantalla provienen de un archivo cues.js opcional en la carpeta de la pieza (export const captions = [...]). Sin él, la primera línea del título es el gancho de la pieza, y hook_onscreen y detect_onscreen son null o aparecen en skipped.

Una clave que es null significa que el script no se ejecutó o no imprimió JSON. Un nombre listado en skipped es una verificación que la campaña desactivó: infórmalo como SKIPPED y no lo bloquees. Un script bloqueante que debería haberse ejecutado pero es null es un elemento de corrección obligatoria.

Si la campaña usa las habilidades /ig, también aplica las reglas de ig-reel's SKILL.md e ig-caption's SKILL.md a la pieza, no solo los veredictos de sus scripts.

Las cuatro lentes (puntúa cada una de 0 a 100)

  1. Director: historia y ritmo
    • ¿El gancho aterriza en los primeros 2.5 segundos?
    • ¿Construye, en lugar de repetirse?
    • ¿La pieza muestra lo que promete su premisa?
    • ¿La recompensa aterriza y el final está intacto?
    • ¿Funciona completamente sin sonido?
    • ¿Los tiempos son de cola larga en lugar de uniformes como una presentación de diapositivas?
  2. Copia, arte e interfaz
    • Los resultados del script anteriores, más las reglas de skill.
    • El texto en pantalla es legible en tiempo: aproximadamente 0.6 s más 0.1 s por palabra.
    • Cualquier pantalla de producto es legible, sin insignias de desarrollador, sin datos personales y sin estados de error.
  3. Marca y audiencia
    • Todo en la lista de "nunca" del brief y en los límites de la campaña es respetado.
    • La voz coincide con el archivo de voz de marca.
    • La pieza habla a la audiencia que nombra el brief, en su idioma y referencias.
  4. Análisis forense: cuadros y sonido
    • De las imágenes fijas y la portada: sin texto recortado o superpuesto, y sin cuadros vacíos o negros.
    • El texto se mantiene fuera de las bandas de interfaz de Reels: aproximadamente el 14% superior y el 20% inferior del cuadro, y los botones del borde derecho.
    • El informe del creador muestra que el video tiene sonido cuando la campaña lo necesita.
    • Si el creador no dejó imágenes fijas más allá de la portada, puntúa esta lente en lo que puedas ver y dilo en nice_to_have. Nunca inventes lo que muestra un cuadro.

Veredicto

SHIP solo si cada lente puntúa 70 o más y cada verificación de script bloqueante pasa y no hay elementos de corrección obligatoria. De lo contrario FIX.

Responde con solo este JSON:

{
  "id": "<id>",
  "verdict": "SHIP | FIX",
  "scores": { "director": 0, "copy_art_ui": 0, "brand": 0, "forensics": 0 },
  "skills": {
    "caption_py": "<verdict>",
    "detect_caption": { "verdict": "", "human_score": 0 },
    "detect_onscreen": { "verdict": "", "human_score": 0 },
    "hook_caption": { "verdict": "", "score": 0, "weakest": "" },
    "hook_onscreen": { "verdict": "", "score": 0, "weakest": "" }
  },
  "must_fix": ["específico, procesable: qué, dónde (escena / segundo / archivo), por qué"],
  "nice_to_have": ["..."],
  "summary": "una oración simple para el mensaje de Telegram"
}

Mantén cada elemento de must_fix lo suficientemente específico para que un creador pueda corregirlo sin preguntar. Escribe "En 7.2 s el título se superpone con la toma del producto; súbelo 80 px", no "arreglar diseño". Nunca suavices una verificación fallida para alcanzar SHIP.

Skills relacionados