agentleFS
jeronimo114jeronimo114/claude-skills/skills/fix-my-mac-edit/SKILL.md

fix-my-mac-edit

Skill0 starsChanged 54 days agoMITView on GitHub

Pipeline autocontenido para editar los reels de FixMac (servicio técnico Apple en Medellín) — videos verticales 1080x1920 montados 100% por código en Remotion: voz en off limpia sobre b-roll de reparación, subtítulos karaoke, zoom multicam, callouts de inspección sobre la board, reveal de marca y CTA, con la identidad REAL de FixMac (wordmark condensado en itálica, monograma FM, monocromo blanco/negro, Poppins + Saira Condensed). Úsalo SIEMPRE que se edite un video de FixMac: ponerle captions, cortar retomas de la voz, sincronizar subtítulos, resaltar zonas dañadas de un MacBook, armar el reel de "le cayó líquido", mostrar el proceso de reparación, o cerrar con el CTA de diagnóstico sin costo. Dispara con "edita este video de FixMac", "ponle captions", "hazme el reel de humedad/líquido", "resalta la board", "estilo FixMac", "reel de reparación". Todo se crea por código; no depende de otras skills. Formato vertical para Reels/TikTok.

  • Installs packages

The file

Files
SKILL.md

FixMac — edición de reels (autocontenido)

Sistema para convertir el metraje crudo de FixMac (voz en off + b-roll de reparación, clips de celular, clips IA) en reels verticales 1080x1920 muy dinámicos y con la marca real de FixMac. Todo se monta en Remotion (React). No se usa Premiere ni otra skill: esta carpeta trae los componentes, los assets de marca, los SFX y los scripts.

Es un pipeline de voz en off sobre b-roll (no cabeza parlante): un narrador explica y cada frase se ilustra con material real de la reparación. La marca se ve cara porque sigue una receta estricta y usa el logo/tipografía reales, no porque cada pieza sea difícil.

Para el detalle profundo mira references/: brand.md (identidad), pipeline.md (paso a paso), remotion-components.md (los componentes), audio-y-captions.md (corte de retomas + karaoke).

Lo no negociable (reglas de marca y de texto)

  • NUNCA emojis. NUNCA em dashes. Nada de guru-cringe.
  • "tú" siempre, español neutro LatAm, cero anglicismos con equivalente claro ("correo" no "email"). Marcas con su caso: MacBook, Apple, FixMac, ChatGPT.
  • Marca monocroma (blanco/negro). El logo de FixMac es blanco y negro, condensado en itálica. NO inventes colores de acento (nada de rojo/azul de relleno). El resalte se hace con tipografía + tamaño, no con color. La única excepción funcional: los anillos de callout van en blanco.
  • Logo y tipografía REALES (ver brand.md): wordmark FixMac y monograma FM (están en assets/brand/), captions en Poppins, keywords/hook/CTA en Saira Condensed oblicua (eco del wordmark).
  • Captions: UNA palabra por chunk, case natural (nunca TODO MAYÚSCULAS), sin puntos ni comas, SIN fondo/caja (legibilidad por contorno + sombra), keyword en tamaño mayor + condensada oblicua.
  • SIN grades de color sobre el video (regla firme). La única transformación de color permitida es la conversión técnica HDR->SDR. La viñeta oscura para legibilidad sí va.
  • SFX mínimos: impact.mp3 al inicio del derrame (volume ~0.14) y whoosh.mp3 cuando entra un elemento/reveal (volume ~0.09). Nada más. Talking-head tranquilo: cero.
  • Música: NO quemarla. Se agrega como audio trending desde Instagram al subir. Entrega solo voz + SFX.

El pipeline (resumen — detalle en references/pipeline.md)

  1. Sondea el crudo con ffprobe. Chequea rotación (iPhone auto-rota, no recortes), 4K (baja a 1080x1920 en el filtro), color_transfer (si es arib-std-b67/bt2020 es HDR: mezzanine con avconvert, sin tonemap ni grade), y desync VFR.
  2. Voz en off: úsala tal cual (si ya viene "enhanced", no la reproceses). Nivel bajo se compensa con ganancia pura en Remotion (volume={N}), nunca con denoise/loudnorm.
  3. Transcribe con timestamps por palabra (scripts/transcribe_words.py). Corre VARIOS modelos y contrasta: Whisper se come marcas (Cloud->Claude, board->"labor") y esconde retomas.
  4. Corta las retomas (scripts/build_clean_vo.py): define los tramos buenos en silencio, deja SIEMPRE la última toma, quita el "Hola" fantasma. El script arma el vo_clean.wav y remapea el captions.json. Verifica transcribiendo el resultado.
  5. Prepara el b-roll (scripts/prep_clips.sh): 1080x1920 30fps, mute, cover-crop.
  6. Monta en Remotion reusando los componentes de assets/remotion/ (ver HumedadReel.tsx como plantilla completa): b-roll con Ken Burns por beat, callouts de inspección, karaoke, reveal de marca, CTA, SFX.
  7. QA por frame (npx remotion still ... --frame=N) escena por escena ANTES de renderizar. Un still tarda ~5s, un render minutos.
  8. Render (--image-format=png --crf=16), optimiza para IG (scripts/optimize_ig.sh) y entrega junto al material del proyecto. Renderiza también la versión SIN captions (composición HumedadReelNoCaptions) por si quieren poner captions nativos de Instagram.

El molde de reel de FixMac (validado: "Humedad — le cayó líquido")

Es un showcase de proceso: la voz explica un problema y cada frase se DEMUESTRA con material real. Orden probado (mapea el guion a objetos visuales):

  1. Hook en frío (0-5s): el derrame. Sin saludo. Arranca con el problema visual más dramático (líquido cayendo sobre el teclado) + un badge contrarian a pantalla ("Que prenda no significa que esté bien"). impact SFX en el derrame.
  2. El mito. "aunque prenda no pasó nada" -> un Mac que enciende normal (para romper la falsa sensación de seguridad).
  3. Dónde se esconde la humedad. Macro de la board con corrosión + anillos de callout (teclado, batería, conectores, board) que nombran cada zona de riesgo.
  4. Lo que va a pasar. "puede fallar, apagarse, no cargar, dejar de encender" -> b-roll de líquido cerca del portátil + un flash de pantalla muerta en "encender".
  5. El proceso FixMac. Reveal del wordmark real sobre el taller, luego el proceso real (abrir, desconectar batería, limpiar, diagnosticar) con el metraje de reparación.
  6. CTA. "No esperes a que falle · Revísalo cuanto antes" + wordmark + "Diagnóstico sin costo", sobre el Mac terminado.
  7. Karaoke palabra por palabra todo el tiempo (se apaga en el CTA porque la tarjeta ya muestra el copy).

Principio: por cada frase del guion pregúntate "¿qué objeto visual la representa?" y constrúyelo (derrame, macro con anillos, lista, palabra gigante), en vez de dejar b-roll suelto. Eso es lo que lo hace sentir caro.

Componentes reutilizables (assets/remotion/src/)

Cópialos a src/ de un proyecto Remotion nuevo. Detalle en references/remotion-components.md.

  • HumedadReel.tsx — PLANTILLA completa del reel de FixMac (todas las escenas, SFX, marca, captions). El mejor punto de partida: duplícala y reemplaza clips/guion. Acepta prop showCaptions (la versión sin captions ya está registrada en Root.tsx).
  • MantReels.tsx — DOS plantillas más (reels 002 "Historia" y 003 "Prevención"): hook genérico parametrizable (kicker + keyword condensada), flash de pantalla muerta, keyword grande sobre footage ("+2 años") y CTA con copy por reel. El 003 demuestra cómo armar un reel SIN b-roll propio reusando la librería de otros proyectos.
  • Captions.tsx — karaoke una palabra por chunk (props: accent, base, font, keywordFont, fontSize, bottom). Keyword condensada oblicua + más grande.
  • textFx.tsx — ShineText (barrido de brillo + glow), RevealText (blur+escala), SlideIn (entrada corta + easing + motion blur), Flicker (solo hook).
  • Clip.tsx — clip de b-roll con cover-fill, Ken Burns (zoom/pan) y scrim de legibilidad. trimBeforeSec para entrar en un punto del origen. Sin grades de color.
  • Brand.tsx — TODA la marca FixMac: Wordmark, FMMark, Watermark, HookBadge, CalloutRing, FixMacReveal, CtaCard, y los tokens (BASE, ACCENT, KEYFONT, BASEFONT, OBLIQUE). Usa los PNG reales de assets/brand/.

Assets incluidos

  • assets/brand/ — logos REALES de FixMac, blanco y negro sobre transparente: fixmac_wordmark_white/black.png, fixmac_fm_white/black.png. Cópialos a public/brand/ del proyecto. (Origen: fixmac.co; regenéralos con process_logo.py si te dan un logo nuevo.)
  • assets/sfx/ — impact.mp3, whoosh.mp3. Cópialos a public/sfx/.
  • assets/remotion/ — proyecto Remotion de referencia (package.json, tsconfig, remotion.config, src/ completo, captions.example.json).

Scripts (scripts/)

  • transcribe_words.py — audio -> JSON de palabras con timestamps (faster-whisper).
  • build_clean_vo.py — corta retomas -> vo_clean.wav + remapea captions.json.
  • prep_clips.sh — b-roll crudo -> 1080x1920 30fps mute cover.
  • process_logo.py — logo fuente -> versiones blanco/negro transparentes recortadas.
  • optimize_ig.sh — render raw -> mp4 optimizado para Instagram (faststart).

Cómo arrancar un proyecto nuevo (rápido)

mkdir fixmac-reelX && cd fixmac-reelX
cp -R ~/.claude/skills/fix-my-mac-edit/assets/remotion/* .
mkdir -p public/brand public/sfx public/clips public/audio
cp ~/.claude/skills/fix-my-mac-edit/assets/brand/*.png public/brand/
cp ~/.claude/skills/fix-my-mac-edit/assets/sfx/*.mp3 public/sfx/
npm install
# 1) transcribe la voz, 2) corta retomas, 3) prepara clips, 4) ajusta HumedadReel.tsx,
# 5) QA por frame, 6) render + optimize.

Feedback del cliente FixMac (jul 22 2026, reglas firmes)

Correcciones que pidió el cliente sobre el primer reel entregado. Aplican a TODOS los reels de FixMac de ahora en adelante:

  • SIN watermark de esquina. El logo NO va persistente en la esquina. La marca aparece solo en el CTA final (y en un hook/reveal si el guion lo pide).
  • SIN aviso/reveal a pantalla completa en la mitad. El reveal de marca en el medio "corta" el flujo. El footage corre continuo; la marca se concentra en el CTA. (Texto grande SOBRE el footage sí va, p. ej. el "+2 años": el video sigue debajo.)
  • Los callouts deben apuntar a la PIEZA EXACTA. El cliente detectó un anillo de "board" sobre el chasis vacío. Antes de posicionar un CalloutRing, renderiza el still del frame donde aparece, identifica la pieza real (board = PCB con componentes; batería = celdas negras; ventilador = el rotor) y ajusta x/y. QA visual obligatorio de CADA callout.
  • SIN pills/cápsulas. Nada de chips con fondo (tipo "ZONAS DE RIESGO" o pasos numerados). Los labels van como texto plano con contorno + sombra.

Lecciones aprendidas (evita re-trabajo)

  • Multi-STT SIEMPRE. Un solo modelo se come marcas y esconde retomas. Con 2-3 y contraste cortas y subtitulas exacto. Verifica el render final transcribiéndolo.
  • La voz en off "enhanced" trae retomas. El WAV puede tener 2-3 tomas de la misma frase y un "Hola" fantasma (alucinación de Whisper en el silencio inicial). Corta en los silencios (silencedetect), deja la ÚLTIMA toma, arranca en frío sin "Hola".
  • Onsets de Whisper adelantados. En las fronteras de silencio pone el inicio de la palabra ANTES del audible real. Cruza con silencedetect y elige el cut point dentro del silencio, no en el onset crudo.
  • NO reproceses la voz. Si ya viene enhanced, úsala tal cual. Nivel bajo = ganancia pura en Remotion (volume={N}), nunca denoise/loudnorm/compresión.
  • NO grades de color. Ni "sutiles". La única excepción es HDR->SDR técnico. Viñeta para legibilidad sí (no es color).
  • HDR del iPhone (arib-std-b67): mezzanine con avconvert -p Preset1920x1080 y corta desde ahí (audio directo del MOV crudo). Sin tonemap ffmpeg (piel roja), sin matriz pura de swscale (lavado).
  • QA por frame antes de renderizar. Escena por escena con remotion still.
  • Marca monocroma. El logo de FixMac es blanco/negro. No metas colores de acento. El keyword se diferencia por Saira Condensed oblicua + tamaño, no por color.
  • Callouts sobre la board = valor. Los anillos que nombran teclado/batería/ conectores/board convierten un macro plano en una "inspección". No taparlos con captions (captions abajo, callouts al medio).
  • Render sin captions también. Deja la versión limpia (HumedadReelNoCaptions) por si prefieren captions nativos de IG.
  • Música fuera del render por defecto (se agrega en Instagram al subir), SALVO que el cliente pida quemarla. Si se quema: pistas de Pixabay (sin copyright, uso comercial), herramienta de audición HTML para que el cliente elija, duck a ~0.09-0.16 bajo la voz (Jero aprobó 0.09), fade-in 0.25s, fade-out 2s muriendo con el CTA. Mezclar con ffmpeg sobre el render raw (la voz+SFX ya vienen mezclados), sin re-renderizar Remotion.
  • Cortes cuantizados al beat ("super aesthetic"). Como la voz es una capa continua, los cortes de b-roll pueden moverse ±9 frames sin dañar nada. Detectar período y fase del beat (autocorrelación del onset envelope + fold de fase en numpy), cuantizar cada frame de corte al golpe más cercano, y re-renderizar: cada cambio de plano cae EXACTO en el beat. Entregar siempre con y sin captions como archivos nuevos (no reemplazar las versiones sin música).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.