wizz-method 2.6.0 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "wizz-method",
4
- "version": "2.6.0",
4
+ "version": "2.7.0",
5
5
  "description": "Wizz Method: método de agência orientado por IA em PT-BR",
6
6
  "keywords": [
7
7
  "agile",
@@ -164,6 +164,43 @@ areas:
164
164
  # Pin de supply chain (2026-08-23): clone temporário + checkout do SHA
165
165
  # + `skills add` local. Atualizar conscientemente.
166
166
  install: 'd="$(mktemp -d)" && git clone https://github.com/bradautomates/claude-video.git "$d" && git -C "$d" checkout 83da59fa78c3eee9e20f515fe75c438bb5166efd && npx skills add "$d" -g -y --copy && printf "%s\\n" 83da59fa78c3eee9e20f515fe75c438bb5166efd > "$HOME/.claude/skills/watch/.wizz-pin" && rm -rf "$d"'
167
+ - id: get-brolls
168
+ # Versão que o SKILL.md do upstream declara no SHA pinado abaixo. A
169
+ # última tag publicada lá é a v2.3.7; o 2.3.8 só existe como HEAD.
170
+ metadata:
171
+ version: "2.3.8"
172
+ when: "CAPTAR B-roll/insert: acha a fonte LITERAL do que a narração cita (o fato, a pessoa, o produto, a notícia, a tela) em YouTube (yt-dlp, sem API key), Instagram/TikTok (navegador/Playwright, sessão do usuário), Pexels/Pixabay/Wikimedia Commons/NASA ou arquivo local; gera prévia (poster, contact sheet numerado, GIF), monta um Storyboard HTML para REVISÃO HUMANA e entrega o corte com origem/autor/condições de uso registrados. Etapa de CAPTAÇÃO do pipeline de vídeo: enche a timeline de material real antes do corte fino e da montagem. Stock só quando o usuário pedir stock explicitamente — nunca como preenchimento de um beat sem fonte literal."
173
+ not_when:
174
+ - "Analisar/resumir um vídeo que já se tem em mãos: é claude-video."
175
+ - "Cortar/montar footage já captado: é buttercut (corte fino) ou wizz-remotion-best-practices (montagem final)."
176
+ - "Gerar imagem/vídeo por IA: é fal-video. O get-brolls busca material REAL, não sintético."
177
+ - "Desenhar uma tela/cena em HTML: é hyperframes."
178
+ - "Minerar/estudar criativo ou oferta de concorrente (Biblioteca de Anúncios, 'baixa esse anúncio pra eu ver'): é wizz-lowticket-minerador na área ads. O get-brolls capta insert para a SUA edição, com procedência registrada — não é ferramenta de inteligência competitiva, e o fato de saber baixar um Reel não o torna uma."
179
+ rel:
180
+ before: [buttercut, wizz-remotion-best-practices]
181
+ pairs_with: [claude-video]
182
+ # macOS apenas: o upstream declara macOS/Windows (Linux não é testado lá)
183
+ # e o `install` daqui é POSIX. Windows fica fora porque o installer do
184
+ # Wizz não roda nele — quem estiver no Windows segue o README do upstream.
185
+ platform: [darwin]
186
+ # O check confere o SHA fixado, não só a existência da pasta: o bundle é
187
+ # copiado (não clonado), então o pin é gravado num marcador no install.
188
+ check: 'grep -qx 3d2313b0b856594617371697875ccfd59861c693 "$HOME/.claude/skills/get-brolls/.wizz-pin" 2>/dev/null'
189
+ # Pin de supply chain (2026-09-17): clone temporário + checkout do SHA
190
+ # + `skills add` global + o `install.sh` do próprio upstream (cria .venv
191
+ # e .tools DENTRO da skill: yt-dlp fixado, EJS e Playwright CLI). O
192
+ # upstream documenta 2.3.8 mas a última tag publicada é v2.3.7, então o
193
+ # pin é o SHA do HEAD de 2026-09-17 (mesmo caso do apple-design).
194
+ # Atualizar conscientemente. O install.sh aborta sozinho se faltar
195
+ # python3/ffmpeg/node 22+; sem pin gravado, o installer volta a oferecer.
196
+ # Escopo GLOBAL (-g) de propósito: a skill guarda .venv/.tools/.env na
197
+ # própria raiz e recebe o projeto por `--project`, então é instalar uma
198
+ # vez e usar em todos — igual hyperframes e claude-video.
199
+ install: 'd="$(mktemp -d)" && git clone https://github.com/engenheirodevideo/get-brolls.git "$d" && git -C "$d" checkout 3d2313b0b856594617371697875ccfd59861c693 && npx skills add "$d" -g -y --copy && bash "$HOME/.claude/skills/get-brolls/scripts/install.sh" && printf "%s\\n" 3d2313b0b856594617371697875ccfd59861c693 > "$HOME/.claude/skills/get-brolls/.wizz-pin" && rm -rf "$d"'
200
+ # Sem drawtext (libfreetype) o contact sheet sai sem número e timecode e
201
+ # o Storyboard degrada EM SILÊNCIO — por isso o probe olha o filtro, não
202
+ # só o binário do ffmpeg. A venv prova que o install.sh chegou ao fim.
203
+ verify: 'command -v ffmpeg >/dev/null 2>&1 && ffmpeg -hide_banner -filters 2>/dev/null | grep -q " drawtext " && test -x "$HOME/.claude/skills/get-brolls/.venv/bin/python"'
167
204
  - id: buttercut
168
205
  when: "EDITAR vídeo por IA: cortes, selects, cenas, roughcut via XML/FFmpeg. Sugerir quando o pedido for editar/cortar vídeo. Clone-and-run no PROJETO (não é skill add), pesado: Ruby + Python + FFmpeg + WhisperX. AVISOS: ~GB de modelos (WhisperX), build demorado, só Apple Silicon."
169
206
  platform: darwin-arm64
@@ -22,6 +22,7 @@
22
22
  | Assemble the film: sequence of scenes + narration + SFX + captions + frame timing | **Remotion** (skill `wizz-remotion-best-practices`) |
23
23
  | Word-by-word timestamps of the TTS narration (sync captions/cuts/animation) | `ctc-align` |
24
24
  | Narration / voice / TTS / voice cloning | `voicebox` |
25
+ | **Source B-roll / inserts: find real footage of what the script names** | `get-brolls` (darwin) |
25
26
  | Edit/cut recorded footage (cuts, selects, roughcut) | `buttercut` (darwin-arm64 only) |
26
27
  | Analyze an existing reference video (frames + transcription) | `claude-video` |
27
28
  | AI-generated video ad (Sora/Veo/Kling) + publish to Meta | `arcads` (ads area) |
@@ -34,10 +35,22 @@
34
35
  (single source of timing; replaces Whisper and manual estimation).
35
36
  4. **Screens** — `hyperframes` draws each visual scene, SILENT, isolated
36
37
  (one composition per scene avoids CSS leaking between screens).
37
- 5. **Assembly** — **Remotion** joins the exported scenes, adds audio, SFX, and
38
- captions at the ctc-align timestamps, with frame precision.
39
- 6. **Fine cut** (if there's recorded footage) — `buttercut`.
40
- 7. **Publishing/distribution** — social/ads area.
38
+ 5. **B-roll / inserts** — `get-brolls` sources the REAL footage the script names
39
+ (the fact, the person, the product, the news item, the screen), builds previews
40
+ and a Storyboard, waits for the human to approve, and only then delivers the cut
41
+ with its provenance recorded. Runs in parallel with steps 2–4: it depends on the
42
+ script, not on the voice. **This step has a human gate — the agent never
43
+ self-approves.**
44
+ 6. **Assembly** — **Remotion** joins the exported scenes and the approved B-roll,
45
+ adds audio, SFX, and captions at the ctc-align timestamps, with frame precision.
46
+ 7. **Fine cut** (if there's recorded footage) — `buttercut`.
47
+ 8. **Publishing/distribution** — social/ads area.
48
+
49
+ **Screens vs. B-roll — they are not interchangeable.** `hyperframes` invents a
50
+ visual (a mockup, a chart, a title); `get-brolls` finds the real thing that the
51
+ narration cites. A script that says "Nvidia's CEO announced" wants the actual
52
+ footage, not a drawn card with his name on it. Reach for `hyperframes` when
53
+ there is nothing real to show; reach for `get-brolls` when there is.
41
54
 
42
55
  ## Anti-patterns (don't do this)
43
56
 
@@ -46,3 +59,15 @@
46
59
  isolation between them.
47
60
  - Don't migrate a working Remotion composition to HyperFrames "to standardize":
48
61
  the pipeline direction is screens in HyperFrames, film in Remotion.
62
+ - Don't fill a beat with generic stock just to hit a clip count. `get-brolls`
63
+ searches for the literal source first; stock (Pexels/Pixabay) only enters when
64
+ the user explicitly asks for stock.
65
+ - Don't approve your own B-roll. `get-brolls approve` records a decision a human
66
+ already made; the agent serves the Storyboard and waits. Changing the clip's
67
+ in/out range or its context invalidates an approval that was already given.
68
+ - Don't describe frames you didn't look at. The contact sheet exists to be opened
69
+ and read before the clip goes into the cut.
70
+ - Don't publish signed URLs or the private `_video.conf`/`_audio.conf` pairs that
71
+ the Instagram route writes, and don't invent a licence: `permit --evidence`
72
+ records the real terms. Responsibility for the terms of use sits with whoever
73
+ produces the video; the skill answers for fidelity and for the provenance record.
@@ -25,7 +25,7 @@ You are Wizz's Designer. It creates high-level interfaces and landing pages, sho
25
25
 
26
26
  ## How I work (bridge to global skills)
27
27
 
28
- > **Single source (registry) — ALWAYS read before the examples below:** the real list for your area (`designer`) lives in `skills-registry.yaml`. Resolve the **light slice for your area** first, `{project-root}/_wizz/_config/registry/designer.yaml` (already comes as the full `areas.designer` block — skills/mcps/clis/references); if it's missing (old install), fall back to the monolith in order `{project-root}/_wizz/_config/skills-registry.yaml` → `{project-root}/_wizz/skills-registry.yaml` → `{project-root}/skills-registry.yaml` and find the `areas.designer` block there. If you need something cross-cutting (utility/mcp_utility/cli_utility/squads), also read `{project-root}/_wizz/_config/registry/_shared.yaml`. Route by the `when:` field — `skills:` (invoke via `Skill`), `clis:` (run the `check:`; if missing, show the `install:`, opt-in; respect `platform:` — e.g. `buttercut` is `darwin-arm64` only) and `mcps:` (propose `claude mcp add <id>` with the `server` block). **Entry points (skills):** offer only the 3 skills with `entry: true` (direction → wizz-decision-maker, building → wizz-ui-ux-pro-max, motion/assets → wizz-animate); the rest carry a `door:` field and only come in pulled by their layer's door or by an explicit user request — never offer the full list. The examples below are just a readable shortcut; the registry is the source of truth and picks up whatever gets added later (e.g. video tools: hyperframes, claude-video, buttercut, voicebox, ctc-align). **Video:** before choosing a tool, apply `_shared/video-pipeline.md` — HyperFrames draws the screens (silent visual, one scene per composition), Remotion assembles the film (audio, SFX, captions, frame timing via ctc-align); never position audio/captions in HyperFrames.
28
+ > **Single source (registry) — ALWAYS read before the examples below:** the real list for your area (`designer`) lives in `skills-registry.yaml`. Resolve the **light slice for your area** first, `{project-root}/_wizz/_config/registry/designer.yaml` (already comes as the full `areas.designer` block — skills/mcps/clis/references); if it's missing (old install), fall back to the monolith in order `{project-root}/_wizz/_config/skills-registry.yaml` → `{project-root}/_wizz/skills-registry.yaml` → `{project-root}/skills-registry.yaml` and find the `areas.designer` block there. If you need something cross-cutting (utility/mcp_utility/cli_utility/squads), also read `{project-root}/_wizz/_config/registry/_shared.yaml`. Route by the `when:` field — `skills:` (invoke via `Skill`), `clis:` (run the `check:`; if missing, show the `install:`, opt-in; respect `platform:` — e.g. `buttercut` is `darwin-arm64` only) and `mcps:` (propose `claude mcp add <id>` with the `server` block). **Entry points (skills):** offer only the 3 skills with `entry: true` (direction → wizz-decision-maker, building → wizz-ui-ux-pro-max, motion/assets → wizz-animate); the rest carry a `door:` field and only come in pulled by their layer's door or by an explicit user request — never offer the full list. The examples below are just a readable shortcut; the registry is the source of truth and picks up whatever gets added later (e.g. video tools: hyperframes, get-brolls, claude-video, buttercut, voicebox, ctc-align). **Video:** before choosing a tool, apply `_shared/video-pipeline.md` — HyperFrames draws the screens (silent visual, one scene per composition), Remotion assembles the film (audio, SFX, captions, frame timing via ctc-align); never position audio/captions in HyperFrames. **B-roll:** when the script names something real (a fact, a person, a product, a news item, a screen), the insert is sourced with `get-brolls`, not drawn — it searches the literal source, builds a Storyboard, and stops at a human approval gate you never sign for the user. Stock only enters if the user asks for stock.
29
29
 
30
30
  For every task, **go through the right door via the `Skill` tool** and bring the result in plain language:
31
31
  - Decide BEFORE building (brief, visual direction, motion/3D path) → `wizz-decision-maker` (pulls in wizz-taste-skill, wizz-motion-3d-director)
@@ -76,7 +76,7 @@ The Diretor (`wizz-router`) has already done the triage and handed it to you bec
76
76
  - `areas:` — `agent` (must match the menu's) and `skills:` (each with an `id` + short `when`). Instruct the agent to invoke the global skill(s) whose `when` matches the request.
77
77
  - `utility:` — cross-cutting skills (find-skills, enhance-prompt, wizz-router). Offer when it fits.
78
78
  - `mcps:` (per area) and `mcp_utility:` (cross-cutting) — MCP servers the area uses to actually ACT (e.g. architect→supabase, analyst→exa, util→context7; qa does NOT use a browser MCP — it's agent-browser via CLI). If the request needs real access to the tool and the MCP isn't active (`claude mcp list`), propose `claude mcp add <id> -- <command>` using the registry's `server` block (secrets via env/placeholder).
79
- - `clis:` (per area) and `cli_utility:` (cross-cutting) — command-line tools the agent calls directly (neither a skill nor an MCP): e.g. qa→agent-browser; designer→hyperframes/claude-video/buttercut/voicebox (video); ads→arcads; growth→scrapling; seo→distribb. When the `when:` matches the request, offer the tool: run the `check:` to see if it's already installed; if not, show the `install:` (opt-in, never auto-run without confirming). Respect the `platform:` field — if present and it doesn't match the current OS/arch, DON'T offer it (e.g., `buttercut` is `darwin-arm64`, Apple Silicon only). Clone-and-run tools (buttercut/voicebox/arcads) install into the project; warn about heavy deps.
79
+ - `clis:` (per area) and `cli_utility:` (cross-cutting) — command-line tools the agent calls directly (neither a skill nor an MCP): e.g. qa→agent-browser; designer→hyperframes/get-brolls/claude-video/buttercut/voicebox (video); ads→arcads; growth→scrapling; seo→distribb. When the `when:` matches the request, offer the tool: run the `check:` to see if it's already installed; if not, show the `install:` (opt-in, never auto-run without confirming). Respect the `platform:` field — if present and it doesn't match the current OS/arch, DON'T offer it (e.g., `buttercut` is `darwin-arm64`, Apple Silicon only). Clone-and-run tools (buttercut/voicebox/arcads) install into the project; warn about heavy deps.
80
80
  - `squads:` — advisory panels (run via `wizz-party-mode`). When the request calls for validation/strategy in a `domain`, run the squad BEFORE the agent in `advises` executes.
81
81
 
82
82
  In short: **the menu chooses the agent, the registry chooses the skill(s) and the squads.** Dev/product roles reuse the WIZZ agents; the agency ones are the `wizz-*`. Don't memorize agent names here — they come from the menu and the registry's `agent:` field.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: wizz-social
3
- description: Wizz Method Social and Viral Scripts (Rafa persona). Use for Reels/TikTok/Shorts scripts, viral hooks, content calendar, and social strategy. Routes to the global skills wizz-social-content and wizz-content-strategy, and to the video pipeline (voicebox, ctc-align, hyperframes draws the screens, Remotion assembles the film, buttercut, claude-video) when the script becomes a video.
3
+ description: Wizz Method Social and Viral Scripts (Rafa persona). Use for Reels/TikTok/Shorts scripts, viral hooks, content calendar, and social strategy. Routes to the global skills wizz-social-content and wizz-content-strategy, and to the video pipeline (voicebox, ctc-align, hyperframes draws the screens, get-brolls sources the B-roll, Remotion assembles the film, buttercut, claude-video) when the script becomes a video.
4
4
  ---
5
5
 
6
6
  # Social · Viral Scripts and Content (Rafa persona)
@@ -43,7 +43,7 @@ Optional (when the topic calls for it): **Novelty** (just launched? determines F
43
43
 
44
44
  ## How I work (global bridge)
45
45
 
46
- > **Single source (registry) · ALWAYS read before the examples below:** the real list for your area (`social`) lives in `skills-registry.yaml`. Resolve first the **lightweight slice for your area**, `{project-root}/_wizz/_config/registry/social.yaml` (already comes as the full `areas.social` block); if it's missing (older install), fall back to the monolith in order `{project-root}/_wizz/_config/skills-registry.yaml` → `{project-root}/_wizz/skills-registry.yaml` → `{project-root}/skills-registry.yaml` and find the `areas.social` block inside it. Offer **everything that matches** the request by `when:`. `skills:` (via `Skill`), `clis:` (run the `check:`; if missing, show the `install:`, opt-in; respect `platform:`, e.g. `buttercut` is `darwin-arm64` only) and `mcps:`. The video CLIs (hyperframes, claude-video, buttercut, voicebox) belong to the `designer` area; read `{project-root}/_wizz/_config/registry/designer.yaml` (or `_shared.yaml` for cross-cutting utility/mcp_utility/cli_utility/squads) to get their block. The examples below are a readable shortcut; the registry is the source of truth and picks up anything added later.
46
+ > **Single source (registry) · ALWAYS read before the examples below:** the real list for your area (`social`) lives in `skills-registry.yaml`. Resolve first the **lightweight slice for your area**, `{project-root}/_wizz/_config/registry/social.yaml` (already comes as the full `areas.social` block); if it's missing (older install), fall back to the monolith in order `{project-root}/_wizz/_config/skills-registry.yaml` → `{project-root}/_wizz/skills-registry.yaml` → `{project-root}/skills-registry.yaml` and find the `areas.social` block inside it. Offer **everything that matches** the request by `when:`. `skills:` (via `Skill`), `clis:` (run the `check:`; if missing, show the `install:`, opt-in; respect `platform:`, e.g. `buttercut` is `darwin-arm64` only) and `mcps:`. The video CLIs (hyperframes, get-brolls, claude-video, buttercut, voicebox) belong to the `designer` area; read `{project-root}/_wizz/_config/registry/designer.yaml` (or `_shared.yaml` for cross-cutting utility/mcp_utility/cli_utility/squads) to get their block. The examples below are a readable shortcut; the registry is the source of truth and picks up anything added later.
47
47
 
48
48
  Script and content (you yourself, with the blueprint + skills):
49
49
  - Viral Reel/Short script, any format (hook, body, CTA) → apply the blueprint (Sections 1-11; Section 12 for the 3D-character format).
@@ -64,11 +64,14 @@ When the script becomes a video (you route, you don't do the editing yourself; f
64
64
  - **Narration / voice / TTS** → CLI `voicebox`
65
65
  - **Timing** of the narration (word-by-word timestamps for captions and cuts) → `ctc-align`
66
66
  - **Draw the screens** (visual scene changes in HTML/CSS, HTML→MP4) → CLI `hyperframes`
67
+ - **Source the B-roll / inserts** (real footage of the fact, person, product, news item or screen the script names) → CLI `get-brolls` (macOS). It searches the literal source; stock only if the user explicitly asks for stock. Ends in a Storyboard the **human** approves — never approve on their behalf
67
68
  - **Assemble the film** (audio, SFX, captions, frame timing) → **Remotion** (skill `wizz-remotion-best-practices`); never place audio/captions in hyperframes
68
69
  - **Edit/cut** the recorded video (cuts, selects, roughcut) → CLI `buttercut` (Apple Silicon only)
69
70
  - **Analyze** a reference video (frames + transcription) → CLI `claude-video`
70
71
 
71
- These tools belong to the `designer` area in the registry. You point to the right pipeline stage (script → voice → timing → screens → assembly → cut); the heavy video build work is done by **wizz-designer**.
72
+ These tools belong to the `designer` area in the registry. You point to the right pipeline stage (script → voice → timing → screens → B-roll → assembly → cut); the heavy video build work is done by **wizz-designer**.
73
+
74
+ A viral script names things out loud ("the CEO said", "this app's screen", "the flood in Petrópolis"). Each of those is a `get-brolls` insert, not a title card: reach for it while the script is still fresh, since sourcing runs in parallel with voice and timing.
72
75
 
73
76
  ## Script delivery format
74
77
  ```
@@ -40,7 +40,7 @@ principles = [
40
40
  "Specific numbers, fast pacing, visual result mandatory. If visual proof is missing, I flag that it loses impact.",
41
41
  "Always deliver a diagnosis (formula, trigger, strong point, point of attention) + 2 hook variations for A/B testing.",
42
42
  "Never deliver something generic: if the script would work for any creator in any niche, I stop and rewrite.",
43
- "When the script becomes a video, I route to the video CLIs (buttercut edits, voicebox narrates, hyperframes renders, claude-video analyzes) and to wizz-designer.",
43
+ "When the script becomes a video, I route to the video CLIs (get-brolls sources the inserts, buttercut edits, voicebox narrates, hyperframes renders, claude-video analyzes) and to wizz-designer.",
44
44
  "I close with ✅ o que fiz / ➡️ próximo passo / 🎯 comando.",
45
45
  ]
46
46
 
@@ -72,4 +72,4 @@ prompt = "For an Instagram post caption, apply knowledge/legenda-instagram.md (h
72
72
  [[agent.menu]]
73
73
  code = "VID"
74
74
  description = "Turn the script into a video (voice, render, cut)"
75
- prompt = "Route to the registry's video CLIs (designer area): 'voicebox' (narration/TTS), 'hyperframes' (HTML→MP4 render), 'buttercut' (edit/cut, Apple Silicon only), 'claude-video' (analyze reference). Run the check for each one; if missing, show the install (opt-in). The heavy video build work is done by wizz-designer."
75
+ prompt = "Route to the registry's video CLIs (designer area): 'voicebox' (narration/TTS), 'hyperframes' (HTML→MP4 render), 'get-brolls' (source real B-roll/inserts for what the script names; macOS; ends in a Storyboard the human approves), 'buttercut' (edit/cut, Apple Silicon only), 'claude-video' (analyze reference). Run the check for each one; if missing, show the install (opt-in). The heavy video build work is done by wizz-designer."
@@ -110,7 +110,7 @@ agents:
110
110
  title: Social and Viral Scripts
111
111
  icon: "🎥"
112
112
  team: wizz
113
- description: "Writes viral Reels/Shorts scripts (Rafa persona) with the Viral Script Blueprint, and creates/schedules content routing to wizz-social-content and wizz-content-strategy. When the script becomes a video, points to the video CLIs (buttercut, hyperframes, voicebox, claude-video). Runs a briefing before writing."
113
+ description: "Writes viral Reels/Shorts scripts (Rafa persona) with the Viral Script Blueprint, and creates/schedules content routing to wizz-social-content and wizz-content-strategy. When the script becomes a video, points to the video CLIs (get-brolls, buttercut, hyperframes, voicebox, claude-video). Runs a briefing before writing."
114
114
 
115
115
  - code: wizz-ads
116
116
  name: Ads
@@ -48,6 +48,7 @@ Use this table to map skills/CLIs/MCPs directly **outside a Wizz project** (no `
48
48
  | **Video with audio, narration, SFX, or synced captions** (film assembly) | `wizz-remotion-best-practices` (Remotion assembles; frame timing). Pipeline rule: HyperFrames draws the mute screens, Remotion assembles the film — don't use hyperframes to position audio/captions (~2.76s drift and CSS leaking between screens in production) | 1 |
49
49
  | Draw a video SCREEN/scene in HTML/CSS, mute visual (app mockup, animated chart, title, loop; HTML→MP4) | CLI `hyperframes` (designer registry; `npx skills add heygen-com/hyperframes`) — mute screens only; assembly with audio goes to Remotion (line above) | 2 |
50
50
  | Word-by-word timestamps for TTS narration (sync captions/cuts/animation with speech) | `ctc-align` (designer registry; single source of timing, replaces Whisper) | 2 |
51
+ | **Find B-roll / inserts / cutaways / supporting footage** for a video or Reel (real footage of the fact, person, product, news item or screen the script names; YouTube/Instagram/TikTok/Pexels/Pixabay/Commons/NASA) | CLI `get-brolls` (designer registry; **macOS**, global `skills add` + its own `install.sh`; needs ffmpeg with drawtext, Node 22+, Python 3.11+). Ends in a Storyboard the HUMAN approves — the agent never self-approves. Stock only when the user explicitly asks for stock | 1 |
51
52
  | **Edit/cut video** (cuts, selects, roughcut) | CLI `buttercut` (designer registry; **Apple Silicon only**, clone-and-run in the project, heavy deps) | 1 |
52
53
  | Generate an AI video ad/image (Sora/Veo/Kling) + publish to Meta | CLI `arcads` (`ads` registry; git clone + Arcads API key) | 1 |
53
54
  | Analyze/understand an existing video (frames + transcription) | CLI `claude-video` (designer registry; `npx skills add bradautomates/claude-video`) | 2 |