/effects
Argumentos: $ARGUMENTS
Todo se ejecuta desde la carpeta de este skill (la carpeta que contiene este archivo, usualmente ~/.claude/skills/effects). Llámala SKILL_DIR. Responde al usuario en su idioma (por defecto, francés).
1. Asegúrate de que esté instalado
Ejecuta node SKILL_DIR/scripts/effects.mjs doctor. Si algo muestra ✗, dile al usuario que es una instalación única (3–10 min, descarga ~1–2 GB) y ejecuta bash SKILL_DIR/setup.sh en segundo plano, luego vuelve a ejecutar doctor. Si doctor dice que no hay tarjeta gráfica, advierte que los efectos marcados con ✂ serán lentos (~15 s por imagen) y sugiere --seconds 5 o --fast.
2. Reúne lo que necesitas
- El clip: el video que el usuario adjuntó o nombró (vertical 9:16 de cámara facial funciona mejor; cualquier formato se recorta a 1080×1920). Si no hay, pídelo. Nunca inventes una ruta.
- El efecto: el primer argumento. Si falta o es desconocido, ejecuta
node SKILL_DIR/scripts/effects.mjs list, muestra la lista y pregunta cuál. "all" / "toutes" / "aperçu" → ejecuta el comandosheet(paso 4). - Su perfil: si
SKILL_DIR/profile.jsonno existe, pregunta una vez por su nombre o marca y su @, luego escríbelo:{"name": "Salim", "handle": "@salim", "accent": "#ff2d87"}(accent opcional). Reutilízalo cada vez después. - Textos: usa las palabras del usuario si las dio, de lo contrario los valores predeterminados están bien. Qué opción lee cada efecto está en la tabla a continuación.
3. Renderiza, mostrando la lista de verificación
Crea una lista de tareas con estos 5 pasos y márcalos a medida que el script imprime sus líneas ✓ n/5:
- Visage trouvé
- Détouré de la pièce
- Texte placé derrière toi
- Couleurs étalonnées
- Rendu en 4K
node SKILL_DIR/scripts/effects.mjs render <efecto> "<clip>" [opciones]
Ejecútalo en segundo plano cuando sea largo (los efectos marcados con ✂ necesitan ~1 s por imagen con una tarjeta gráfica, así que ~2–3 min para 10 s de video) y transmite las líneas de progreso. El resultado se guarda junto al clip como <clip>-<efecto>.mp4 (2160×3840). Dale al usuario esa ruta.
Opciones útiles:
| Opción | Efecto |
|---|---|
--hd | 1080p en lugar de 4K, el doble de rápido |
--start 3 --seconds 8 | solo mantiene una sección del clip |
--smooth | recorte a 30 fps en lugar de 15 (el doble de tiempo, más suave en movimiento rápido) |
--fast | recorte rápido pero más tosco (restos de fondo alrededor del cabello) |
--images <carpeta> | capturas de pantalla de sus reels para orbit, phone-fan, profile-wall, tier-list |
--grade warm|cool|bw|none | gradación de color (warm por defecto) |
--accent "#00c2ff" | color principal |
--props '{"notes":["…"]}' | cualquier otra propiedad (JSON) |
Antes de un render largo con ✂, si los textos del usuario son largos o inusuales, ejecuta primero una vista previa (~30 s) y mírala:
node SKILL_DIR/scripts/effects.mjs still <efecto> "<clip>" [mismas opciones]
4. Ver los 36 en su clip
node SKILL_DIR/scripts/effects.mjs sheet "<clip>" [--name … --handle …]
Genera <clip>-36-effets.jpg (un fotograma de cada efecto). Muéstralo al usuario para que elija.
Textos que lee cada efecto
Usa *asteriscos* alrededor de una palabra en --headline o --title para colorearla. \n para un salto de línea.
| Efecto | Opciones que lee (valores predeterminados entre corchetes) |
|---|---|
| glass-widgets | --name --handle --followers [71K], --props '{"chart":{"values":[…],"labels":[…],"unit":"K"}}' |
| documentary ✂ | --headline ["UN *CLIP.*\n36 EFFETS.\n*ZÉRO* APP."] --name --handle --kicker --word (texto fantasma) |
| orbit ✂ | --images |
| kallaway-split | --props '{"chart":{"title":"Mis 7 mejores reels\npor *vistas*","values":[615,353,…],"labels":["Reel 1",…],"unit":"K"}}' |
| spotlight ✂ | --word [CLAUDIT] (una palabra corta funciona mejor) |
| checklist | --props '{"steps":[["Visage trouvé","chaque frame"],…]}' (5 pares) |
| timeline | --title ["Claude *el editor*"] --headline (chips) |
| lineup | --title |
| shortcut-rain | ninguno |
| red-collage ✂ | --headline --word (texto de fondo) |
| comment-box | --comment ["claude 🔥"] --handle |
| cover-star ✂ | --name (título gigante) --headline --handle |
| headline-wall | --props '{"notes":["…","…","…","…"]}' |
| phone-fan | --word [MIS REELS] --handle --images |
| rabbit-hole | ninguno |
| profile-wall | --handle --name --followers --images |
| noise | ninguno |
| the-bill | --name --handle |
| split-headline | --title ["Claude *edita* mis reels."] (la palabra con asteriscos se resalta) |
| pastel-word ✂ | --word [REELS] |
| tier-list | --title --images |
| polaroid | --title (pie de foto, por defecto el nombre) |
| filmstrip | ninguno |
| comic-book | --word [BOUM] |
| glitch | --word [GLITCH] |
| duotone | --word [FOCUS] --accent |
| scanline | --title |
| cinema | --kicker [Capítulo I] --title (subtítulo) |
| breaking-news | --headline --word --name --handle |
| quote-card | --title (la cita) --name --handle |
| countdown | --accent |
| progress-ring | --word [visto] --handle |
| emoji-burst | ninguno |
| neon-frame | --word [live] --accent |
| typewriter | --title o --headline |
| zoom-punch | --title (una palabra por golpe) |
Si algo falla
clip introuvable: verifica la ruta, ponla entre comillas si tiene espacios.- Las fuentes provienen de Google Fonts y Remotion descarga un Chrome sin interfaz gráfica en el primer render: ambos necesitan internet.
- Un efecto ✂ con una persona apenas visible o varias personas: el recorte mantiene a todos los que detecta como personas. Dilo al usuario.
- Los archivos preparados se almacenan en caché en
SKILL_DIR/.work/(una carpeta por clip). Se puede eliminar en cualquier momento para liberar espacio.