Communitygithub.com

robertomanfroi/videos-opus

Puerta de entrada para editar un video grabado en el celular y transformarlo en Reel. Úsalo siempre que la alumna pida editar, 'edita este video', 'haz un reel', 'transforma mi video', 'edita mi último video', 'edita al estilo X', pegue la ruta de un video, o pregunte cómo editar. Encuentra el video sola, verifica que sirva, pregunta el estilo UNA vez si falta, delega a la skill del estilo (estilo-celular, estilo-editorial, estilo-explicativo, estilo-colagem, estilo-anuncio) y entrega el video listo en la carpeta 'prontos'.

¿Qué es videos-opus?

Esta skill es la puerta de entrada para editar videos grabados en el celular y transformarlos en Reels. Su propósito es que la alumna no necesite saber de rutas, terminal o estructura de carpetas: ella graba en el móvil, pasa el video al computador (Downloads, Desktop, WhatsApp Web, Google Drive…) y habla en portugués contigo para que la skill lo procese automáticamente. La skill localiza el video (por ruta, último enviado, o buscando en la carpeta), verifica que sea adecuado (duración, orientación, sin archivos en progreso), pregunta el estilo de edición solo una vez si no se deduce, lee el perfil de la creadora, y delega la edición a la skill específica del estilo (celular, editorial, explicativo, colagem, anuncio). Finalmente, renderiza el video y lo entrega en la carpeta 'prontos' y en la carpeta 'Vídeos editados' del escritorio, con una respuesta clara de 3 a 5 líneas. Soporta ajustes posteriores (cortar secciones, cambiar leyendas, reemplazar elementos) sin sobrescribir versiones anteriores.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/robertomanfroi/videos-opus/tree/HEAD/kit/.claude/skills/editar

Preguntar en tu IA favorita

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

Documentación

Editar — puerta de entrada

La alumna no sabe (ni necesita saber) de carpetas, rutas o terminal. Ella graba en el celular, pasa el video al computador (Downloads, Escritorio, WhatsApp Web, Google Drive…) y te habla en portugués. Todo lo que ella ve es la respuesta y el video listo. Habla corto, en portugués simple, sin jerga.

M=.claude/skills/_motor · K = el lanzador de la skill videos-opus: "<VO>\bin\node.exe" "<VO>\scripts\video.mjs" kit, donde <VO> es la carpeta de la skill videos-opus (la que tiene el SKILL.md que te envió a leer esta guía). Él pone los programas portátiles en el camino y ejecuta todo en la carpeta de trabajo del kit ($K carpeta muestra cuál es). Las rutas de esta guía (video-projects/…, prontos/…, perfil.json) son relativas a ella: para leer o editar un archivo, júntalo con esa carpeta. $K --em <subcarpeta> … ejecuta dentro de una subcarpeta. Nada de npx, Python o node suelto: todo pasa por $K.

Estándar visual premium (obligatorio, aplica a todos los estilos): nunca contorno en las letras, nunca rayos/espiral, chispas, flash blanco o temblor; legibilidad por sombra suave o velo oscuro; movimiento lento y suave; sonido discreto. Detalles en la sección "Estándar visual premium" del SKILL.md de la skill videos-opus. Esto prevalece sobre lo que una guía de estilo diga.

Paso 0 — ¿retomar o ajustar?

Antes de buscar video nuevo, mira el estado:

  • Pedido de ajuste ("quita la parte…", "cambia la leyenda", "el último video") → lee prontos/ULTIMO.json: él dice el slug y el proyecto del último video entregado. Ve directamente a Ajustes en ese proyecto.
  • Algún video-projects/*/projeto.json con etapa diferente de entregue, modificado en las últimas 24 h → pregunta: "Tengo un video a medio hacer (<slug>, parado en ). ¿Lo continúo?" Si sí, retoma desde la etapa.
  • Render en curso (video-projects/<slug>/renders/progresso.json con fase: renderizando) → $K node $M/renderizar.mjs <slug> --esperar.

Paso 1 — encontrar el video

La alumna dijoEjecuta
pegó una ruta (con o sin comillas)$K node $M/achar-video.mjs "<ruta>"
"mi último video", "el que acabo de enviar", o nada$K node $M/achar-video.mjs --ultimo
"¿qué video crees?", o el anterior dio varios$K node $M/achar-video.mjs

Lee el JSON {ok, video, motivo, aviso, confirmar, candidatos[], checks{}}:

  • ok: true y confirmar: false → sigue con video (el script ya guardó una copia en meus-videos/). Confirma en una línea: "Encontré IMG_2041.mp4, de hoy 14:02, 3 min — editando."
  • ok: true y confirmar: true → PREGUNTA antes de gastar tiempo: "¿Es este: IMG_2041.mp4, recibido ayer 14:02, 3 min?" (no está en meus-videos o llegó hace más de 2 h — puede ser un video de WhatsApp en Downloads).
  • aviso (video con más de 3 min) → díselo y pregunta qué parte usar; el Reel queda con máximo 90 s.
  • motivo: "varios candidatos; elegir" → muestra hasta 4 candidatos con nombre, fecha/hora y tamaño y pregunta cuál. Luego ejecuta de nuevo con la ruta elegida.
  • motivo: "ningún video reciente encontrado" → explica: "No encontré ningún video nuevo. Pasa el video del celular al computador (por ejemplo: envíatelo a ti misma por WhatsApp Web y descárgalo; cae en Downloads) y avísame, o pega aquí la ruta del archivo."
  • cualquier otro motivo (sin sonido, acostado, corto, llegando, poco espacio) → repite el motivo en una frase y DETENTE. Video acostado: sugiere grabar de nuevo en vertical. Nunca gastes minutos de transcripción en un video que no sirve.

El script ya espera que el archivo deje de crecer (una descarga aún en curso). No intentes evitarlo.

Paso 2 — estilo

Entiende el pedido:

Ella diceEstiloSkill
celular, crudo, "parece que edité en Instagram", natural, simple, sin estilo dicho y el video es ella hablandocelularestilo-celular
editorial, revista, chic, elegante, "cara de editado", serifadaeditorialestilo-editorial
explicativo, noticia, explicar, "con imágenes encima", didácticoexplicativoestilo-explicativo
collage, recortes, fotos recortadas, scrapbookcollageestilo-colagem
anuncio, ad, tráfico, patrocinado, vender, ofertaanuncioestilo-anuncio

Si ella no lo dijo y no se puede inferir, pregunta UNA vez, mostrando el catálogo en 5 líneas (nombre + 1 frase). Si la skill del estilo aún no existe en esta instalación, díselo y ofrece el estilo celular.

Paso 3 — perfil

Lee perfil.json en la carpeta de trabajo del kit. Si no existe o falta nombre/usuario, sigue .claude/skills/perfil-criadora.md y pregunta todo en un solo mensaje. Guárdalo antes de continuar.

Paso 4 — extras (solo cuando tienen sentido)

  • Capturas (por defecto: SIN captura). Si el video habla de resultado, número, comentario, post o perfil, pregunta AHORA, antes de la transcripción, en una línea: "¿Quieres capturas en el video? Ponlas en la carpeta Mis capturas del Escritorio ahora; si no, sigo sin y puedes pedirlas después." No te quedes esperando: sin respuesta, sigue sin captura y ofrécelo como ajuste en la entrega. Esto prevalece sobre lo que la skill del estilo diga sobre pedir la pantalla exacta. Mira como máximo las 12 capturas más recientes, en una sola hoja de contacto.
  • Anuncio: pregunta producto/oferta y el CTA, en una sola pregunta.
  • Nunca inventes captura, número, logo o testimonio. Si falta, pide la pantalla exacta o déjalo fuera.

Paso 5 — delegar

Lee la SKILL.md del estilo elegido y sigue su flujo de principio a fin (proyecto → corte → conferencia → capturas → composición → snapshots → renderizar.mjs). Slug del proyecto: 2–4 palabras del tema, en minúsculas, con guión (dos-noches-engrané). Si el novo-projeto dice que el nombre ya existe, usa el nombre que él sugiera (-2).

Antes de cada etapa lenta, una línea: "Transcribiendo — puede tomar unos minutos." / "Renderizando el video final…". Estilo collage: avisa antes de que es el más lento (recorte de la persona + render: en PC sin placa de video puede superar los 40 min) y pregunta si continúa o prefiere el celular. Ejecuta el recorte en segundo plano.

Paso 6 — entregar

El renderizar.mjs del paso anterior ya revisa, renderiza, valida y copia a prontos/ y a la carpeta Vídeos editados del Escritorio — no ejecutes prontos.mjs de nuevo. Si salió con código 3, ejecuta --esperar hasta que aparezca LISTO.

Respuesta final, en 3 a 5 líneas:

  1. Dónde está: "¡Listo! Está en Vídeos editados, en el Escritorio, como dos-noches-engrané-2026-10-09.mp4 (65 s)."
  2. Lo que cortó: pausas, repeticiones, fragmentos descartados (en palabras de ella, no en segundos).
  3. Lo que usó: capturas y títulos.
  4. Lo que quedó en duda: nombres que el transcriptor pudo haber errado, fragmentos de los que no estuviste seguro.
  5. Cómo ajustar: "¿Quieres cambiar algo? Di, por ejemplo: 'quita la parte del precio' o 'leyenda más abajo'."

Nunca publiques, envíes o borres videos. El original queda donde estaba (y una copia en meus-videos/ del kit).

Ajustes (la alumna vuelve después de la entrega)

Modifica solo lo que ella pidió, en el proyecto de prontos/ULTIMO.json (o en el que ella nombre), y renderiza una vez con $K node $M/renderizar.mjs <slug>. Mapa rápido:

PedidoModificaRehace
quita/acorta un fragmentoassets/keeps.jsoncorte → transcripción → montaje → render
leyenda más arriba/abajoreel.json (capTop)montaje → render
cambia/quita captura o títulosrc/index.template.htmlmontaje → snapshots → render
palabra incorrecta en la leyendaassets/caption-fixes.json ({"incorrecto": "correcto"}, sin importar mayúscula/puntuación)montaje → render
otra palabra destacadaassets/enfase.json (editorial) / assets/emphasis.json (collage)montaje → render
otro estilonuevo proyecto con otro slugtodo

El renderizar.mjs entrega como -v2, -v3 sin sobrescribir. Después de cortar fragmento, los tiempos de los elementos cambian: recálcalos con ancoras.mjs antes de montar.

Individual skills in this repo

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

Skills relacionados