Communitygithub.com

Changelog → Branded Video

Transforme um changelog .md semanal em um vídeo de changelog finalizado com marca (1080 quadrado, ~45-60s, narração Annie, fundo animado com a marca, visualizações mock-UI, legendas discretas). Use quando o usuário fornecer um changelog/digest markdown e quiser o vídeo semanal, ou disser "changelog video". Autocontido — fontes, fundo, léxico e scripts são fornecidos nesta skill.

O que é Changelog → Branded Video?

Esta skill automatiza a transformação de um changelog markdown semanal em um vídeo curto e polido, no estilo HyperFrames, com narração da Annie (voz HeyGen), fundo animado da marca, visualizações mock da interface do usuário e legendas sincronizadas. Ela é autocontida, incluindo todas as fontes, fundo animado, léxico de pronúncia e scripts de construção. A skill segue um pipeline rígido: primeiro, ela carrega assets e doutrinas de movimento obrigatórias; depois, analisa e poda o changelog, roteiriza cada tema para uma visualização mock (evitando listas de texto sempre que possível), gera a narração e as legendas, e constrói o projeto final em HTML. O principal objetivo é visualizar as mudanças, não listá-las, usando mocks animados da interface real para demonstrar cada tema. A skill verifica rigorosamente a presença de legendas e a integridade do áudio, garantindo que o vídeo final esteja sempre legendado e sem erros técnicos. Ela é projetada para ser executada a partir da raiz do repositório HyperFrames, mas pode ser adaptada para outros ambientes com ajustes nos caminhos dos scripts.

Funciona com✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/Drama2557/4RealDigital-Video-Studio/tree/HEAD/.agents/skills/changelog-video

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Changelog → Vídeo com Marca

Entrada: um changelog .md (temas + itens, como o digest semanal do HyperFrames). Saída: um projeto HyperFrames limpo e sem erros em projects/active/weekly-changelog-<range>/. Renderize apenas quando solicitado.

Carregue primeiro, sem exceção: motion-doctrine (+ cut-the-curve, oversized-cursor se um cursor aparecer, seam-craft) e captions-overlay. Esta skill fornece o pipeline específico do changelog; a doutrina fornece a lei de movimento.

A diretriz principal: visualize, não liste

Cada tema é ilustrado por um mock animado da interface real ou um análogo fiel que encena a mudança na experiência — nunca marcadores de texto. Roteie cada tema/item através de references/visualization-registry.md ANTES de escrever o roteiro; o registro decide ui-recreate / ui-analog / terminal / checklist. A lista de texto é o ÚLTIMO recurso, reservado para itens genuinamente não visuais (listas de correções de confiabilidade).

Pipeline

0 · Inicialize o projeto a partir dos assets DESTA skill — sem exceção

Faça isso antes de escrever qualquer HTML de composição. Ignorar isso sempre produz um vídeo que se parece com um projeto similar que você construiu antes, NÃO com a marca desta skill — essa é a forma mais comum de esta skill sair da marca. Os assets, fontes e scaffold da skill são a skill; o prompt SKILL.md é um roteador.

mkdir -p project/assets/fonts
cp <SKILL_DIR>/assets/fonts/*.woff2 project/assets/fonts/
cp <SKILL_DIR>/assets/bgm.mp3 project/bgm.mp3
ffmpeg -y -stream_loop 15 -i <SKILL_DIR>/assets/bg-pattern.mp4 -t <TOTAL> \
  -vf "scale=1080:1080,fps=30,eq=saturation=0.72,[email protected]:t=fill" \
  -an -c:v libx264 -crf 20 -pix_fmt yuv420p project/assets/bg-pattern-<TOTAL>s.mp4
cp <SKILL_DIR>/examples/master-skeleton.html project/index.html

Em seguida, leia references/build-spec.md do começo ao fim (sem pular) — ele define os tokens da marca (TT Norms Pro + ABC Solar Display + TT Norms Mono, creme #f5f6f4, verde controlado #5ef17c, cartões de vidro com bordas verdes, formato de pílula kicker/seção, trilho de legendas de 32px em top: 990) que cada cena herda do scaffold.

SÓ ENTÃO comece os passos 1-6 abaixo. Os passos 1-4 (analisar, rotear, roteirizar, narração) planejam o que vai no scaffold; o passo 5 preenche os placeholders (<RANGE>, <TOTAL>, <CUT_N>, <DUR_N>, corpos das cenas) dentro do project/index.html já copiado — você NÃO reescreve o chrome, fontes, paleta ou layout do scaffold.

Se você se pegar tentando cp de um index.html de vídeo anterior, ou escrevendo suas próprias declarações @font-face, ou projetando um fundo shader WebGL em vez de usar o bg-pattern MP4 codificado acima: PARE. Exclua o index.html atual e recomece no cp do scaffold master-skeleton. Reconstruir o conteúdo da cena no scaffold correto é mais barato do que adaptar a marca ao scaffold errado.

1 · Análise + corte editorial

  • Extraia: intervalo da semana, estatísticas do título (lançamentos, commits), temas, itens.
  • Orçamento: 45-60s no total. Título ≤2s, encerramento ≤3.5s, 4 temas ≈ 9-12s cada.
  • Por tema, mantenha UMA visualização herói + no máximo 3 itens falados. Todo o resto existe apenas como ponteiro para o "digest completo" no encerramento. Cortar é o trabalho: um changelog com 30 itens ainda produz ≤14 batidas faladas.
  • Ordene os temas por história: recurso principal → superfície do produto → performance → confiabilidade (o digest geralmente já lê assim).

2 · Roteamento de visualização

Para cada tema, escolha a superfície de references/visualization-registry.md e escreva uma linha: tema → superfície → as 2-4 ações sequenciadas que o mock executa, cada uma vinculada a uma frase do roteiro. Se nenhuma superfície do registro se encaixar e não existir um análogo fiel, é uma cena de checklist — não invente uma UI falsa para algo que não podemos representar honestamente.

3 · Roteiro de duas camadas (fala vs. exibição)

Escreva o roteiro como linhas de token por references/script-voice.md: registro conversacional, cada termo técnico carregando uma forma fonética spoken de references/lexicon.json enquanto display mantém a grafia padrão. As legendas mostram display; a narração lê spoken. Qualquer termo não no léxico: PARE e pergunte ao usuário como se pronuncia, depois adicione- o ao léxico. Salve como script-tokens.json no projeto.

4 · Narração — Annie (HeyGen, fixa)

# Texto da camada falada apenas; words JSON = timestamps verdadeiros do texto FALADO
# Caminho nativo do repositório: a skill changelog-video é executada a partir da raiz do repositório hyperframes,
# então ela usa o auxiliar TTS hyperframes-media rastreado diretamente (sem passo `npx hyperframes
# skills install`). Se você copiou a skill para outro repositório, substitua pelo
# seu próprio caminho para o script heygen-tts.mjs do media-use / hyperframes-media.
node skills/hyperframes-media/scripts/heygen-tts.mjs ./vo-spoken.txt \
  -o voiceover.mp3 --words vo-words.json \
  --voice 330290724a1b470fb63153f34d4c0183   # Annie — realista (não substitua)

Requer CLI heygen ≥0.3.0 autenticada (heygen auth login --oauth). Em seguida, alinhe os timestamps falados de volta aos tokens de exibição:

node <SKILL_DIR>/scripts/align-captions.mjs \
  --tokens script-tokens.json --words vo-words.json --out captions.json

captions.json é a entrada do trilho de legendas (grafia de exibição, tempo de fala). O alinhador imprime avisos MISMATCH — resolva cada um antes de construir (geralmente uma grafia do léxico que o TTS renderiza como múltiplas palavras). O áudio é o relógio: todos os tempos das batidas vêm de vo-words.json; uma regeração da narração reabre cada costura.

Os tempos das palavras são uma barreira rígida. Antes de prosseguir para o passo 5, verifique se vo-words.json não está vazio e tem um array words: [...] com start/end por palavra. Se estiver vazio (0 bytes) ou faltar o array — um modo de falha conhecido quando o provedor TTS retorna áudio mas sem payload de timestamp — NÃO PROSSIGA sem eles. Alternativa: alinhamento forçado do áudio produzido contra o roteiro de exibição usando whisper local:

uvx --from openai-whisper whisper voiceover.mp3 \
  --model base.en --language en --word_timestamps True \
  --output_format json --output_dir .
# então execute align-captions.mjs com --words voiceover.json (mesma forma)

Whisper entende mal as renderizações TTS ("gee-sap" → "gsap", "heyjen" → "hey Jen", etc.) — as legendas ainda usam a grafia DISPLAY de script-tokens.json; whisper fornece apenas os timestamps. align-captions.mjs lida com a junção. Essa alternativa é a diferença entre uma construção legendada e uma silenciosamente sem legendas.

5 · Construção

Siga references/build-spec.md exatamente: tokens da marca + fontes (incluídas em <SKILL_DIR>/assets/), a codificação do fundo animado, scaffold da cena, chrome, trilho de legendas, um momento verde controlado por cena. Então a ordem da doutrina: ledger.json (todas as costuras comuns cut-the-curve LEFT) → carimbo de costura → batidas internas nas palavras da narração → verificação da barreira de costura.

Legendas não são opcionais. O master-skeleton inclui uma IIFE de trilho de legendas que lê um array LINES — deixar esse array vazio é um bug enviado, não uma escolha de estilo. Preencha-o a partir de captions.json antes de prosseguir para o passo 6:

// cole no lugar de "const LINES = /* … */ []" na IIFE do trilho de legendas:
const LINES = /* conteúdo de captions.json */ [
  { id: 0, end: 2.74, w: [["This", 0.0], ["week,", 0.30], …] },
  …
];

Se align-captions.mjs foi pulado ou LINES está [], a verificação de quadro no passo 6 falhará — não tente esconder isso removendo #cap-line do scaffold.

6 · Barreiras (todas verdes antes de apresentar)

  1. bun run --cwd packages/cli hyperframes check (ou a CLI hyperframes instalada a partir da skill skills/hyperframes-cli/ local do repositório) — 0 erros (contraste: texto escuro ≥ .66 de alfa). NÃO use npx hyperframes@latest; a CLI local rastreada do repositório é a fonte da verdade para o contrato de composição que esta skill produz.
  2. seam-gate.mjs verify — 0 falhas.
  3. Reinicie o servidor de pré-visualização (ele armazena em cache o pacote), verifique 3-4 batidas via __player.seek na página de composição bruta.
  4. NÃO renderize a menos que o usuário peça. Após uma renderização solicitada, verifique quadros do MP4 (ffmpeg -ss <t> … -frames:v 1): legendas presentes, vídeo de fundo não preto, sem quadros minúsculos/congelados.
  5. Barreira de presença de legendas — falha rígida. Amostre 3-4 quadros distribuídos pela janela de fala da narração (ex. t=3, t=15, t=30, t=42 para uma narração de 48s) e confirme que o trilho de legendas em top: 990 renderiza texto visível em cada um. Se qualquer quadro em um intervalo de fala estiver sem legendas, a construção é enviada sem legendas — trate como uma barreira vermelha e re-verifique a população de LINES do passo 5. Isso é exatamente o que deu errado na construção v4 de 13 a 20 de julho.

Layout do projeto

projects/active/weekly-changelog-<range>/
├── index.html            # mestre de documento único (cenas como slides, costuras carimbadas)
├── ledger.json           # vetor de ledger (entrada do carimbo de costura)
├── script-tokens.json    # roteiro de duas camadas (fonte da verdade para narração + legendas)
├── vo-spoken.txt         # gerado: camada falada, uma linha
├── voiceover.mp3 + vo-words.json + captions.json
├── bgm.mp3               # cópia de <SKILL_DIR>/assets/bgm.mp3 (a faixa padrão) a menos que o usuário forneça uma
└── assets/fonts/ + assets/bg-pattern-<dur>s.mp4

Anti-padrões

Não façaEm vez disso
Slides com marcadores para mudanças de UICrie um mock da superfície encenando a mudança
UI falsa para itens não representáveisCena de checklist honesta
"JSON"/"CLI" simples no texto TTSFormas faladas do léxico; exibição permanece padrão
Grafias fonéticas nas legendasLegendas sempre renderizam a camada de exibição
Adivinhar a pronúncia de um termo desconhecidoPergunte e depois aumente o léxico
Falar de cada item do changelog≤3 por tema; o link do digest carrega o resto
Destaques verdes em todos os lugaresUm momento verde por cena (#5ef17c)
Começar de um index.html de vídeo anteriorPasso 0 — copie examples/master-skeleton.html desta skill para project/index.html, sempre
@font-face / shader WebGL / BGM personalizado feito à mãoPasso 0 — copie os assets/ desta skill na íntegra; os assets da skill SÃO a marca
Entregue sem invalidação do CloudFrontExecute aws cloudfront create-invalidation na distribuição E2BSLVSZ7FG3U0 para o caminho exato após qualquer substituição no S3 — o CDN armazena em cache o arquivo antigo caso contrário
Enviar com o array LINES vazio no scaffoldO passo 4 deve produzir um captions.json preenchido; o passo 5 deve colar no IIFE; a barreira 6 do passo 6 deve confirmar legendas nos quadros renderizados. Um LINES vazio = envio sem legendas = refazer a execução
Sem vo-words.json → pular legendas e enviar mesmo assimUse o alinhamento forçado whisper no áudio produzido; legendas não são opcionais

Individual skills in this repo

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

Drama2557/4RealDigital-Video-Studio

Overlay doctrine for the embedded-captions workflow — the caption MODEL (drop / rail / embed) and the rule that captions are an OVERLAY composited on top of the film, never a reserved bottom band you shift content up to avoid. Load when adding captions/subtitles to a talking-head or launch video, when deciding whether a phrase should be dropped, ride the verbatim rail, or be promoted to a scarce embedded climax, when laying out a composition that will carry captions (do NOT reserve a keep-out band), or when centering a composition on the true frame center under captions. Quotes the rail+embed model from embedded-captions and constraint #13 (captions overlay, keep-out band retired) from the product-launch-video scene agent. Applies ON TOP of embedded-captions.

Drama2557/4RealDigital-Video-Studio

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]

Drama2557/4RealDigital-Video-Studio

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet `anchor` rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.

Drama2557/4RealDigital-Video-Studio

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

Drama2557/4RealDigital-Video-Studio

Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated motion-first unit, including an animated title. Route fresh creation through hyperframes before using this skill.

Drama2557/4RealDigital-Video-Studio

Use the HyperFrames CLI development loop: init, add, catalog, capture, lint, check, snapshot, compare, grade-compare, preview, play, present, beats, keyframes, single or batch render, publish, cloud, cloudrun, feedback, lambda, doctor, browser, info, upgrade, skills, compositions, docs, benchmark, telemetry, transcribe, auth, tts, and remove-background. Also use when diagnosing build or render failures. validate, inspect, and layout are deprecated aliases; use check. Covers local, HeyGen-hosted cloud, AWS Lambda, and Google Cloud Run rendering.

Drama2557/4RealDigital-Video-Studio

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class="clip"`, tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Also covers Tailwind projects and the STORYBOARD.md / SCRIPT.md plan formats. Read before writing composition HTML.

Drama2557/4RealDigital-Video-Studio

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

Drama2557/4RealDigital-Video-Studio

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

Drama2557/4RealDigital-Video-Studio

Agent Media OS, the single skill for every media need in a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image models when the catalog misses; produce voiceover, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal.

Drama2557/4RealDigital-Video-Studio

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

Drama2557/4RealDigital-Video-Studio

A short, design-led motion graphic where motion is the message — kinetic typography, stat count-up, chart/data-viz hit, logo sting / brand lockup, lower-third / callout / social overlay, animated map (highlight regions, connect places, zoom to a location), animated tweet / news-article / headline, webpage / UI animation (scroll, cursor, callouts), or fusing a real image's geometry into a chart. Usually under 10s (up to ~30s), no narration or live-action subject; renders to MP4 or transparent overlay. Longer / narrated / multi-scene → /general-video. Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

Drama2557/4RealDigital-Video-Studio

Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR topic explainer (/faceless-explainer). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

Drama2557/4RealDigital-Video-Studio

Author a HyperFrames slideshow — a presentation, pitch deck, or interactive deck with discrete slides, fragment reveals, branching, hotspot navigation, and built-in presenter mode with speaker notes; also converts an existing page into a deck. Output is a navigable deck, not a rendered MP4. If the user didn't explicitly ask for a slideshow, confirm before authoring. Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on "graphic overlays", "on-screen graphics", "package / dress up my video". Not plain subtitles (/embedded-captions). Unclear → /hyperframes.

Drama2557/4RealDigital-Video-Studio

Agent skill / project related to launch or product demo video: Drama2557/4RealDigital-Video-Studio

Habilidades Relacionadas