wizz-method 2.17.2 → 2.19.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.
Files changed (177) hide show
  1. package/THIRD-PARTY-NOTICES.md +12 -0
  2. package/package.json +5 -3
  3. package/removals.txt +10 -0
  4. package/skills-registry.yaml +72 -42
  5. package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +9 -9
  6. package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +1 -1
  7. package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +1 -1
  8. package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/SKILL.md +1 -1
  9. package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/checklist.md +1 -1
  10. package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +1 -1
  11. package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +5 -5
  12. package/src/bmm-skills/module-help.csv +1 -1
  13. package/src/bmm-skills/module.yaml +1 -1
  14. package/src/core-skills/_shared/handoff-protocol.md +5 -3
  15. package/src/modules/lowticket/skills/wizz-lowticket-funil/SKILL.md +1 -1
  16. package/src/modules/lowticket/skills/wizz-lowticket-guia/SKILL.md +1 -1
  17. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/SKILL.md +1 -1
  18. package/src/modules/lowticket/skills/wizz-lowticket-minerador/SKILL.md +1 -1
  19. package/src/modules/lowticket/skills/wizz-lowticket-pagina/SKILL.md +1 -1
  20. package/src/modules/lowticket/skills/wizz-lowticket-trafego/SKILL.md +1 -1
  21. package/src/modules/wizz/_shared/cerebro.md +7 -7
  22. package/src/modules/wizz/_shared/communication-rules.md +1 -1
  23. package/src/modules/wizz/_shared/despacho-barato.md +1 -1
  24. package/src/modules/wizz/_shared/encerramento.md +4 -3
  25. package/src/modules/wizz/_shared/model-ladder.md +10 -0
  26. package/src/modules/wizz/_shared/organizacao.md +8 -4
  27. package/src/modules/wizz/_shared/token-economy.md +1 -1
  28. package/src/modules/wizz/_shared/video-pipeline.md +13 -3
  29. package/src/modules/wizz/agents/wizz-ads/SKILL.md +4 -1
  30. package/src/modules/wizz/agents/wizz-ads/customize.toml +12 -3
  31. package/src/modules/wizz/agents/wizz-ads/knowledge/playbook.md +36 -0
  32. package/src/modules/wizz/agents/wizz-copy/SKILL.md +4 -1
  33. package/src/modules/wizz/agents/wizz-copy/customize.toml +2 -3
  34. package/src/modules/wizz/agents/wizz-copy/knowledge/playbook.md +34 -0
  35. package/src/modules/wizz/agents/wizz-designer/SKILL.md +2 -2
  36. package/src/modules/wizz/agents/wizz-designer/customize.toml +2 -3
  37. package/src/modules/wizz/agents/wizz-growth/SKILL.md +4 -1
  38. package/src/modules/wizz/agents/wizz-growth/customize.toml +33 -4
  39. package/src/modules/wizz/agents/wizz-growth/knowledge/playbook.md +39 -0
  40. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +7 -9
  41. package/src/modules/wizz/agents/wizz-maestro/customize.toml +2 -3
  42. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +7 -7
  43. package/src/modules/wizz/agents/wizz-memoria/customize.toml +5 -6
  44. package/src/modules/wizz/agents/wizz-qa/SKILL.md +5 -6
  45. package/src/modules/wizz/agents/wizz-qa/customize.toml +3 -4
  46. package/src/modules/wizz/agents/wizz-seo/SKILL.md +4 -1
  47. package/src/modules/wizz/agents/wizz-seo/customize.toml +2 -3
  48. package/src/modules/wizz/agents/wizz-seo/knowledge/playbook.md +31 -0
  49. package/src/modules/wizz/agents/wizz-social/SKILL.md +5 -3
  50. package/src/modules/wizz/agents/wizz-social/customize.toml +12 -3
  51. package/src/modules/wizz/overrides/wizz-agent-analyst.toml +2 -2
  52. package/src/modules/wizz/overrides/wizz-agent-architect.toml +3 -3
  53. package/src/modules/wizz/overrides/wizz-agent-dev.toml +3 -3
  54. package/src/modules/wizz/overrides/wizz-agent-pm.toml +2 -2
  55. package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +2 -2
  56. package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +2 -2
  57. package/src/modules/wizz/subagents/codex/wizz-exec-standard.toml +1 -1
  58. package/src/modules/wizz/subagents/codex/wizz-exec-strong.toml +1 -1
  59. package/src/modules/wizz/subagents/gemini/wizz-exec-standard.md +1 -1
  60. package/src/modules/wizz/subagents/gemini/wizz-exec-strong.md +1 -1
  61. package/src/modules/wizz/subagents/opencode/wizz-exec-standard.md +1 -1
  62. package/src/modules/wizz/subagents/opencode/wizz-exec-strong.md +1 -1
  63. package/src/modules/wizz/subagents/spec.yaml +6 -6
  64. package/src/modules/wizz/subagents/wizz-exec-standard.md +1 -1
  65. package/src/modules/wizz/subagents/wizz-exec-strong.md +1 -1
  66. package/src/skills-lib/_shared/complexity-signal.md +8 -9
  67. package/src/skills-lib/_shared/dispatch-rule.yaml +21 -0
  68. package/src/skills-lib/{cerebro → wizz-cerebro}/SKILL.md +1 -1
  69. package/src/skills-lib/{ctc-align → wizz-ctc-align}/SKILL.md +1 -1
  70. package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/SKILL.md +1 -1
  71. package/src/skills-lib/{find-skills → wizz-find-skills}/SKILL.md +1 -1
  72. package/src/skills-lib/wizz-hook-extractor/LICENSE +21 -0
  73. package/src/skills-lib/wizz-hook-extractor/SKILL.md +56 -0
  74. package/src/skills-lib/wizz-hook-extractor/references/examples.md +59 -0
  75. package/src/skills-lib/wizz-hook-extractor/references/formulas.md +136 -0
  76. package/src/skills-lib/wizz-hook-extractor/scripts/read-post.sh +83 -0
  77. package/src/skills-lib/wizz-huashu-design/references/sfx-library.md +1 -1
  78. package/src/skills-lib/wizz-huashu-design/scripts/add-music.sh +1 -1
  79. package/src/skills-lib/wizz-huashu-design/scripts/html2pptx.js +45 -37
  80. package/src/skills-lib/wizz-huashu-design/scripts/mix-voiceover.sh +1 -1
  81. package/src/skills-lib/wizz-huashu-design/scripts/narrate-pipeline.mjs +11 -5
  82. package/src/skills-lib/wizz-huashu-design/scripts/test_scripts.py +209 -0
  83. package/src/skills-lib/wizz-huashu-design/scripts/tts-doubao.mjs +42 -28
  84. package/src/skills-lib/wizz-ig-profile-optimizer/LICENSE +21 -0
  85. package/src/skills-lib/wizz-ig-profile-optimizer/SKILL.md +74 -0
  86. package/src/skills-lib/wizz-ig-profile-optimizer/scripts/capture-profile.sh +41 -0
  87. package/src/skills-lib/wizz-ig-profile-optimizer/scripts/limits.mjs +82 -0
  88. package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +1 -1
  89. package/src/skills-lib/wizz-launch-readiness/SKILL.md +7 -7
  90. package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +3 -3
  91. package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +5 -5
  92. package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +1 -1
  93. package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +6 -6
  94. package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +1 -1
  95. package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +1 -1
  96. package/src/skills-lib/wizz-offer-forge/SKILL.md +3 -3
  97. package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/README.md +1 -1
  98. package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/SKILL.md +1 -1
  99. package/src/skills-lib/wizz-router/SKILL.md +3 -3
  100. package/src/skills-lib/wizz-router/references/routing-table-flat.md +11 -9
  101. package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/SKILL.md +1 -1
  102. package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/SKILL.md +1 -1
  103. package/src/skills-lib/wizz-video-effects/SKILL.md +4 -3
  104. package/src/skills-lib/wizz-video-effects/references/data-contract.md +3 -3
  105. package/src/skills-lib/wizz-video-effects/scripts/fill_breaths.py +15 -1
  106. package/src/skills-lib/wizz-video-effects/scripts/test_fill_breaths.py +20 -0
  107. package/src/skills-lib/wizz-video-styles/SKILL.md +11 -5
  108. package/src/skills-lib/wizz-video-styles/data/recipes.json +65 -2
  109. package/src/skills-lib/wizz-video-styles/data/references.json +386 -1
  110. package/src/skills-lib/wizz-video-styles/data/styles.json +109 -0
  111. package/src/skills-lib/wizz-video-styles/references/generated-prompts.md +70 -0
  112. package/src/skills-lib/wizz-video-styles/references/measured-patterns.md +2 -0
  113. package/src/skills-lib/wizz-video-styles/references/style-picker.md +8 -4
  114. package/src/skills-lib/wizz-video-styles/references/styles/tipografia-cinetica.md +68 -0
  115. package/src/skills-lib/wizz-video-styles/references/styles/ui-morph.md +68 -0
  116. package/src/skills-lib/wizz-video-styles/scripts/analyze.sh +23 -10
  117. package/src/skills-lib/wizz-video-styles/scripts/beat_grid.py +68 -0
  118. package/src/skills-lib/wizz-video-styles/scripts/references.mjs +265 -0
  119. package/src/skills-lib/wizz-web-security/SKILL.md +1 -1
  120. package/tools/fetch-assets.mjs +1 -1
  121. package/tools/hooks/README.md +18 -14
  122. package/tools/hooks/rtk-rewrite.js +95 -0
  123. package/tools/hooks/security-defensive-context.js +17 -1
  124. package/tools/hooks/session-rules.js +25 -5
  125. package/tools/hooks/wizz-arrumar.js +126 -12
  126. package/tools/hooks/wizz-artifact-guard.js +41 -7
  127. package/tools/hooks/wizz-cerebro-lib.js +239 -0
  128. package/tools/hooks/wizz-close-reminder.js +124 -0
  129. package/tools/hooks/wizz-debug-lib.js +55 -0
  130. package/tools/hooks/wizz-decision-trace.js +19 -2
  131. package/tools/hooks/wizz-feature.js +20 -4
  132. package/tools/hooks/wizz-router-enforce.js +30 -13
  133. package/tools/installer/command-text.js +243 -0
  134. package/tools/installer/commands/catalog.js +2 -0
  135. package/tools/installer/commands/doctor.js +10 -12
  136. package/tools/installer/commands/fetch-assets.js +5 -5
  137. package/tools/installer/commands/install.js +6 -7
  138. package/tools/installer/commands/resolve.js +17 -17
  139. package/tools/installer/commands/trace-report.js +40 -37
  140. package/tools/installer/core/doctor.js +60 -55
  141. package/tools/installer/core/hooks-settings.js +88 -14
  142. package/tools/installer/core/hooks-smoke.js +134 -0
  143. package/tools/installer/core/installer.js +61 -52
  144. package/tools/installer/core/quick-update.js +2 -3
  145. package/tools/installer/install-text.js +201 -0
  146. package/tools/installer/modules/channel-plan.js +2 -2
  147. package/tools/installer/modules/env-vars.js +5 -6
  148. package/tools/installer/modules/skills-lib.js +1 -1
  149. package/tools/installer/ui.js +17 -9
  150. /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-pesquisa-e-memoria.md +0 -0
  151. /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-rotina-e-captura.md +0 -0
  152. /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-sessao.md +0 -0
  153. /package/src/skills-lib/{ctc-align → wizz-ctc-align}/scripts/align.py +0 -0
  154. /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/README.md +0 -0
  155. /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/references/KEYWORDS.md +0 -0
  156. /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/assets/template.html +0 -0
  157. /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/prompts.md +0 -0
  158. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-1-validacao-entrada.md +0 -0
  159. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-2-autorizacao.md +0 -0
  160. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-3-abuso-volume.md +0 -0
  161. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-4-vazamento-resposta.md +0 -0
  162. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-5-fusao-plano.md +0 -0
  163. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/01-cta-principal.md +0 -0
  164. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/02-barra-fixa-mobile.md +0 -0
  165. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/03-tempo-de-resposta.md +0 -0
  166. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/04-prova-social.md +0 -0
  167. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/05-faq-decisao.md +0 -0
  168. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/06-imagens-reais.md +0 -0
  169. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/07-endereco-como-chegar.md +0 -0
  170. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/08-titles.md +0 -0
  171. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/09-open-graph.md +0 -0
  172. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/10-breadcrumbs.md +0 -0
  173. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/11-alt-text.md +0 -0
  174. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/12-schema-local.md +0 -0
  175. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/13-robots-sitemap.md +0 -0
  176. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/14-privacidade-termos.md +0 -0
  177. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/15-medicao.md +0 -0
@@ -3393,5 +3393,390 @@
3393
3393
  "on_cuts": "0/2"
3394
3394
  },
3395
3395
  "lufs": "-14.4"
3396
+ },
3397
+ {
3398
+ "id": "5EoO5413dBY",
3399
+ "url": "https://www.youtube.com/watch?v=5EoO5413dBY",
3400
+ "channel": "mexicat",
3401
+ "views": "120706",
3402
+ "nicho": "i",
3403
+ "idioma": "en",
3404
+ "style": "tipografia-cinetica",
3405
+ "estilo_visual": "Clipe musical renderizado em código (three.js): fundo preto, uma palavra ou verso gigante por batida sobre cenas 3D (buraco negro, criatura, torre, grade em perspectiva), HUD de interface e formulários de papel",
3406
+ "motion_transicoes": "Troca de cena no downbeat, texto entra palavra a palavra no tempo da voz, câmera orbita objetos 3D, bloom e grão de filme, texto curvado em volta de objetos",
3407
+ "legenda": "A letra É o visual: palavra-chave gigante (sans bold ou serifa) + verso pequeno em mono no canto; nunca legenda embaixo",
3408
+ "hook_0_3s": "Linhas de código de terminal e uma palavra laranja enorme ('AGI') já no primeiro verso",
3409
+ "paleta": "preto, laranja incandescente, branco/creme; um respiro em papel bege",
3410
+ "tipografia": "sans grotesca pesada (Archivo), mono (IBM Plex Mono), serifa itálica (Cormorant) e fonte de traço único",
3411
+ "ritmo": {
3412
+ "cuts_per_10s": 3.57,
3413
+ "shot_median_s": 0.27
3414
+ },
3415
+ "musica": {
3416
+ "guess": "continua",
3417
+ "ratio": 0.326,
3418
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3419
+ },
3420
+ "sfx": {
3421
+ "counts": {
3422
+ "pop_click": 0,
3423
+ "whoosh": 29,
3424
+ "impact_low": 0
3425
+ },
3426
+ "per_10s": 1.85,
3427
+ "on_cuts": "5/56"
3428
+ },
3429
+ "lufs": "-15.5",
3430
+ "formato": "16:9 (horizontal); adaptar para 9:16"
3431
+ },
3432
+ {
3433
+ "id": "FOMWS5pChuA",
3434
+ "url": "https://www.youtube.com/watch?v=FOMWS5pChuA",
3435
+ "channel": "Ninh Truong",
3436
+ "views": "243944",
3437
+ "nicho": "i",
3438
+ "idioma": "en",
3439
+ "style": "tipografia-cinetica",
3440
+ "estilo_visual": "Lyric video em tipografia cinética: palavras da letra montadas como objetos num mundo 2D (mapa de ruas visto de cima, nuvens, rádio), fundo verde-petróleo",
3441
+ "motion_transicoes": "Câmera viaja e gira pelo mapa seguindo o verso, palavras dobram em 3D e se encaixam nas ruas, poucas trocas de cena (plano contínuo)",
3442
+ "legenda": "A letra é o visual: verso inteiro, palavras de pesos e tamanhos misturados, palavra-chave em destaque de cor",
3443
+ "hook_0_3s": "Letra 'I' gigante no escuro, depois o verso se monta em blocos",
3444
+ "paleta": "verde-petróleo escuro, verde-menta, coral/salmão de acento, cinza nas cenas de céu",
3445
+ "tipografia": "sans condensada em caixa alta misturada com sans fina e script; pesos alternados no mesmo verso",
3446
+ "ritmo": {
3447
+ "cuts_per_10s": 0.63,
3448
+ "shot_median_s": 9.92
3449
+ },
3450
+ "musica": {
3451
+ "guess": "continua",
3452
+ "ratio": 0.218,
3453
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3454
+ },
3455
+ "sfx": {
3456
+ "counts": {
3457
+ "pop_click": 0,
3458
+ "whoosh": 2,
3459
+ "impact_low": 0
3460
+ },
3461
+ "per_10s": 0.63,
3462
+ "on_cuts": "0/2"
3463
+ },
3464
+ "lufs": "-15.9",
3465
+ "formato": "16:9 (horizontal); adaptar para 9:16"
3466
+ },
3467
+ {
3468
+ "id": "Kt8vGm8_ekQ",
3469
+ "url": "https://www.youtube.com/watch?v=Kt8vGm8_ekQ",
3470
+ "channel": "PixelValet",
3471
+ "views": "928526",
3472
+ "nicho": "h",
3473
+ "idioma": "en",
3474
+ "style": "tipografia-cinetica",
3475
+ "estilo_visual": "Uma palavra por cena (emoções) no centro de um fundo de cor chapada; cada palavra é animada pelo significado dela (PAIN quebra, CHEERFUL pula em arco, LIGHT acende)",
3476
+ "motion_transicoes": "Uma bolinha guia passa de cena em cena; troca de fundo a cada palavra; a letra se deforma conforme o sentido",
3477
+ "legenda": "Sem legenda; a palavra é o único elemento",
3478
+ "hook_0_3s": "Fundo roxo, bolinha e a primeira palavra se desenhando",
3479
+ "paleta": "cores chapadas que mudam por emoção (roxo, amarelo, azul, verde, vermelho, cinza escuro)",
3480
+ "tipografia": "sans geométrica, uma família só, variando peso e espaçamento",
3481
+ "ritmo": {
3482
+ "cuts_per_10s": 0.68,
3483
+ "shot_median_s": 7.29
3484
+ },
3485
+ "musica": {
3486
+ "guess": "sem",
3487
+ "ratio": 0.021,
3488
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3489
+ },
3490
+ "sfx": {
3491
+ "counts": {
3492
+ "pop_click": 0,
3493
+ "whoosh": 78,
3494
+ "impact_low": 16
3495
+ },
3496
+ "per_10s": 21.18,
3497
+ "on_cuts": "1/3"
3498
+ },
3499
+ "lufs": "-22.5",
3500
+ "formato": "16:9 (horizontal); adaptar para 9:16"
3501
+ },
3502
+ {
3503
+ "id": "9ngNySFSWWU",
3504
+ "url": "https://www.youtube.com/watch?v=9ngNySFSWWU",
3505
+ "channel": "PiXeL ARTWORKS",
3506
+ "views": "1215529",
3507
+ "nicho": "d",
3508
+ "idioma": "en",
3509
+ "style": "tipografia-cinetica",
3510
+ "estilo_visual": "Texto pequeno branco no centro de fundo preto, alternando com fundo branco de papel; nada além do texto",
3511
+ "motion_transicoes": "Corte seco a cada frase no ritmo da narração/batida; palavras trocam de lugar e de caixa; sem objetos",
3512
+ "legenda": "O texto é a narração escrita, uma frase curta por vez",
3513
+ "hook_0_3s": "Logo do estúdio, depois 'fine good? ok' no preto",
3514
+ "paleta": "preto, branco, um vermelho só na abertura",
3515
+ "tipografia": "sans neutra pequena com tracking largo",
3516
+ "ritmo": {
3517
+ "cuts_per_10s": 4.62,
3518
+ "shot_median_s": 1.54
3519
+ },
3520
+ "musica": {
3521
+ "guess": "sem",
3522
+ "ratio": 0.0,
3523
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3524
+ },
3525
+ "sfx": {
3526
+ "counts": {
3527
+ "pop_click": 0,
3528
+ "whoosh": 44,
3529
+ "impact_low": 78
3530
+ },
3531
+ "per_10s": 28.2,
3532
+ "on_cuts": "16/20"
3533
+ },
3534
+ "lufs": "-8.9",
3535
+ "formato": "16:9 (horizontal); adaptar para 9:16"
3536
+ },
3537
+ {
3538
+ "id": "A0CKFb24MJ8",
3539
+ "url": "https://www.youtube.com/watch?v=A0CKFb24MJ8",
3540
+ "channel": "Cinthya Studios",
3541
+ "views": "353630",
3542
+ "nicho": "d",
3543
+ "idioma": "en",
3544
+ "style": "tipografia-cinetica",
3545
+ "estilo_visual": "Promo em tipografia cinética: palavras em caixa alta condensada que preenchem a tela, algumas com vídeo de cidade dentro das letras",
3546
+ "motion_transicoes": "Corte na batida, palavras escalam e deslizam, texto vira máscara de vídeo, ícone animado no fim",
3547
+ "legenda": "O texto é a mensagem de venda; uma ou duas palavras por vez",
3548
+ "hook_0_3s": "'CONVERT' em condensada preta no branco, inverte pra fundo preto",
3549
+ "paleta": "preto, branco, azul e vermelho só no logo final",
3550
+ "tipografia": "sans condensada em caixa alta (estilo Bebas), pesos variando",
3551
+ "ritmo": {
3552
+ "cuts_per_10s": 5.54,
3553
+ "shot_median_s": 1.32
3554
+ },
3555
+ "musica": {
3556
+ "guess": "continua",
3557
+ "ratio": 0.176,
3558
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3559
+ },
3560
+ "sfx": {
3561
+ "counts": {
3562
+ "pop_click": 0,
3563
+ "whoosh": 0,
3564
+ "impact_low": 46
3565
+ },
3566
+ "per_10s": 19.6,
3567
+ "on_cuts": "9/13"
3568
+ },
3569
+ "lufs": "-10.7",
3570
+ "formato": "16:9 (horizontal); adaptar para 9:16"
3571
+ },
3572
+ {
3573
+ "id": "x-twoclipping-2103273003555402193",
3574
+ "url": "https://x.com/twoclipping/status/2103273003555402193",
3575
+ "channel": "zero",
3576
+ "views": "1164424",
3577
+ "nicho": "a",
3578
+ "idioma": "en",
3579
+ "style": "ui-morph",
3580
+ "estilo_visual": "Uma forma preta só sobre cinza quente claro, que vira botão, player, slider de volume, toggle, abas, gráfico, ⌘K e toast, e volta ao botão do início (loop)",
3581
+ "motion_transicoes": "Sem corte nenhum: cada estado nasce do anterior por mola (tamanho, cantos, cor); o conteúdo troca com blur curto; um cursor clica e arrasta de verdade",
3582
+ "legenda": "Nenhuma; o texto é o da própria interface (rótulos de botão, título da faixa, número do gráfico)",
3583
+ "hook_0_3s": "Botão \"Generate\" parado e o cursor chegando nele no primeiro tempo",
3584
+ "paleta": "cinza quente #EDEBE6, preto, branco; um gradiente só na capa do player",
3585
+ "tipografia": "uma sans de interface (tipo Inter), pesos regular e semibold",
3586
+ "ritmo": {
3587
+ "cuts_per_10s": 0.0,
3588
+ "shot_median_s": 14.06
3589
+ },
3590
+ "musica": {
3591
+ "guess": "continua",
3592
+ "ratio": 0.33,
3593
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3594
+ },
3595
+ "sfx": {
3596
+ "counts": {
3597
+ "pop_click": 0,
3598
+ "whoosh": 1,
3599
+ "impact_low": 0
3600
+ },
3601
+ "per_10s": 0.71,
3602
+ "on_cuts": "0/0"
3603
+ },
3604
+ "lufs": "-14.1",
3605
+ "formato": "1:1 (quadrado); recompor para 9:16"
3606
+ },
3607
+ {
3608
+ "id": "x-verbove-2103483957266268381",
3609
+ "url": "https://x.com/verbove/status/2103483957266268381",
3610
+ "channel": "Martijn Verbove",
3611
+ "views": "17438",
3612
+ "nicho": "d",
3613
+ "idioma": "en",
3614
+ "style": "ui-morph",
3615
+ "estilo_visual": "A mesma forma contínua contando um produto real (MakerMap): pílula da marca, busca, cartão de perfil, globo de pontos com os makers, lista de matches, contador, evento com RSVP",
3616
+ "motion_transicoes": "Sem corte: morfose de pílula para cartão e para globo; o globo gira e se enche de pontos; cursor dirige cada passo",
3617
+ "legenda": "Nenhuma; dados reais na interface (2.266 produtos, 6 matches)",
3618
+ "hook_0_3s": "Pílula preta com o nome do produto e o ponto laranja da marca",
3619
+ "paleta": "cinza quente claro, preto, branco e um laranja de destaque",
3620
+ "tipografia": "sans de interface; mono só na URL do fim",
3621
+ "ritmo": {
3622
+ "cuts_per_10s": 0.0,
3623
+ "shot_median_s": 20.05
3624
+ },
3625
+ "musica": {
3626
+ "guess": "continua",
3627
+ "ratio": 0.3,
3628
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3629
+ },
3630
+ "sfx": {
3631
+ "counts": {
3632
+ "pop_click": 2,
3633
+ "whoosh": 2,
3634
+ "impact_low": 31
3635
+ },
3636
+ "per_10s": 17.45,
3637
+ "on_cuts": "0/0"
3638
+ },
3639
+ "lufs": "-14.6",
3640
+ "formato": "1:1 (quadrado); recompor para 9:16"
3641
+ },
3642
+ {
3643
+ "id": "x-AnnaCher___-2103571096549433425",
3644
+ "url": "https://x.com/AnnaCher___/status/2103571096549433425",
3645
+ "channel": "Anna Chernikova",
3646
+ "views": "1605",
3647
+ "nicho": "d",
3648
+ "idioma": "en",
3649
+ "style": "ui-morph",
3650
+ "estilo_visual": "Promo feito da própria interface do produto (Sprites): spinner, biblioteca de anúncios, slider de orçamento, abas de plataforma, gráfico de ROAS, toggle de piloto automático, ⌘K",
3651
+ "motion_transicoes": "Sem corte: um componente vira o próximo; números contam; o cursor arrasta o orçamento e liga o toggle",
3652
+ "legenda": "Nenhuma; a interface carrega a mensagem (4.2x ROAS, $200/dia)",
3653
+ "hook_0_3s": "Spinner sozinho no centro, o produto já trabalhando",
3654
+ "paleta": "bege quente, preto, branco e um pêssego de destaque no gráfico",
3655
+ "tipografia": "sans de interface única",
3656
+ "ritmo": {
3657
+ "cuts_per_10s": 0.0,
3658
+ "shot_median_s": 42.09
3659
+ },
3660
+ "musica": {
3661
+ "guess": "sem",
3662
+ "ratio": 0.0,
3663
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3664
+ },
3665
+ "sfx": {
3666
+ "counts": {
3667
+ "pop_click": 2,
3668
+ "whoosh": 27,
3669
+ "impact_low": 0
3670
+ },
3671
+ "per_10s": 6.89,
3672
+ "on_cuts": "0/0"
3673
+ },
3674
+ "lufs": "-24.0",
3675
+ "formato": "1:1 (quadrado); recompor para 9:16"
3676
+ },
3677
+ {
3678
+ "id": "x-nezbuilds-2103487427365294391",
3679
+ "url": "https://x.com/nezbuilds/status/2103487427365294391",
3680
+ "channel": "Nez",
3681
+ "views": "519",
3682
+ "nicho": "a",
3683
+ "idioma": "en",
3684
+ "style": "ui-morph",
3685
+ "estilo_visual": "Refeito com o mesmo prompt: botão \"Get started\", loader, ilha que abre em player, volume, toggle, abas, gráfico com tooltip, ⌘K \"Export chart\" e toast com Undo",
3686
+ "motion_transicoes": "Sem corte; molas com overshoot pequeno; cursor arrasta a barra do player e escolhe a aba",
3687
+ "legenda": "Nenhuma",
3688
+ "hook_0_3s": "Botão com seta e o cursor clicando no primeiro tempo",
3689
+ "paleta": "bege quente, preto, branco",
3690
+ "tipografia": "sans de interface única",
3691
+ "ritmo": {
3692
+ "cuts_per_10s": 0.0,
3693
+ "shot_median_s": 14.06
3694
+ },
3695
+ "musica": {
3696
+ "guess": "continua",
3697
+ "ratio": 0.226,
3698
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3699
+ },
3700
+ "sfx": {
3701
+ "counts": {
3702
+ "pop_click": 3,
3703
+ "whoosh": 3,
3704
+ "impact_low": 20
3705
+ },
3706
+ "per_10s": 18.49,
3707
+ "on_cuts": "0/0"
3708
+ },
3709
+ "lufs": "-19.2",
3710
+ "formato": "1:1 (quadrado); recompor para 9:16"
3711
+ },
3712
+ {
3713
+ "id": "x-dzhohola-2103605737595249003",
3714
+ "url": "https://x.com/dzhohola/status/2103605737595249003",
3715
+ "channel": "Andromedus",
3716
+ "views": "222",
3717
+ "nicho": "a",
3718
+ "idioma": "en",
3719
+ "style": "ui-morph",
3720
+ "estilo_visual": "A mesma técnica sobre a interface real de um app (T3 Code): diff de código, menu de esforço, permissões, toggles, temas, gráfico de uso, lista de PRs, celular e contador de estrelas do GitHub",
3721
+ "motion_transicoes": "Sem corte; troca de tema claro para escuro no meio; cada cartão nasce do anterior",
3722
+ "legenda": "Nenhuma",
3723
+ "hook_0_3s": "Pílula \"Working 2m\" com spinner",
3724
+ "paleta": "branco e cinza claros, depois quase preto; azul só nos toggles",
3725
+ "tipografia": "sans de interface; mono no diff",
3726
+ "ritmo": {
3727
+ "cuts_per_10s": 0.0,
3728
+ "shot_median_s": 60.05
3729
+ },
3730
+ "musica": {
3731
+ "guess": "continua",
3732
+ "ratio": 0.454,
3733
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3734
+ },
3735
+ "sfx": {
3736
+ "counts": {
3737
+ "pop_click": 0,
3738
+ "whoosh": 7,
3739
+ "impact_low": 0
3740
+ },
3741
+ "per_10s": 1.17,
3742
+ "on_cuts": "0/0"
3743
+ },
3744
+ "lufs": "-14.2",
3745
+ "formato": "1:1 (quadrado); recompor para 9:16"
3746
+ },
3747
+ {
3748
+ "id": "x-daniel_haida-2104139720829636937",
3749
+ "url": "https://x.com/daniel_haida/status/2104139720829636937",
3750
+ "channel": "Daniel Haida",
3751
+ "views": "3968",
3752
+ "nicho": "d",
3753
+ "idioma": "en",
3754
+ "style": "ui-morph",
3755
+ "estilo_visual": "Variante escura: filme de produto de um app de contabilidade (taxtello) feito em React, painel com número grande, gráfico, recibo de papel, anel de score e a marca no fim",
3756
+ "motion_transicoes": "Câmera em perspectiva passando sobre o painel; elementos entram em sequência sem corte; o logo fecha",
3757
+ "legenda": "Duas frases curtas grandes (\"Alles im Blick.\", \"In guter Ordnung\")",
3758
+ "hook_0_3s": "Ícone do app sozinho no escuro",
3759
+ "paleta": "azul-marinho quase preto, um amarelo de destaque, verde no score",
3760
+ "tipografia": "sans de interface, números grandes em mono",
3761
+ "ritmo": {
3762
+ "cuts_per_10s": 0.0,
3763
+ "shot_median_s": 14.06
3764
+ },
3765
+ "musica": {
3766
+ "guess": "sem",
3767
+ "ratio": 0.033,
3768
+ "impressão": "heurística de áudio; nome da faixa não confirmado"
3769
+ },
3770
+ "sfx": {
3771
+ "counts": {
3772
+ "pop_click": 0,
3773
+ "whoosh": 0,
3774
+ "impact_low": 3
3775
+ },
3776
+ "per_10s": 2.13,
3777
+ "on_cuts": "0/0"
3778
+ },
3779
+ "lufs": "-17.1",
3780
+ "formato": "16:9 (horizontal); recompor para 9:16"
3396
3781
  }
3397
- ]
3782
+ ]
@@ -722,5 +722,114 @@
722
722
  "url": "https://www.youtube.com/shorts/zKJSyVJB_yE"
723
723
  }
724
724
  ]
725
+ },
726
+ "tipografia-cinetica": {
727
+ "n": 5,
728
+ "nichos": [
729
+ "d",
730
+ "h",
731
+ "i"
732
+ ],
733
+ "langs": [
734
+ "en"
735
+ ],
736
+ "views_max": 1215529,
737
+ "views_median": 353630,
738
+ "cuts_per_10s": [
739
+ 0.63,
740
+ 3.57,
741
+ 5.54
742
+ ],
743
+ "shot_median_s": 1.54,
744
+ "music": {
745
+ "continua": 3,
746
+ "fraca": 0,
747
+ "sem": 2
748
+ },
749
+ "sfx_on_cuts": [
750
+ 31,
751
+ 94
752
+ ],
753
+ "top": [
754
+ {
755
+ "channel": "PiXeL ARTWORKS",
756
+ "views": "1215529",
757
+ "url": "https://www.youtube.com/watch?v=9ngNySFSWWU"
758
+ },
759
+ {
760
+ "channel": "PixelValet",
761
+ "views": "928526",
762
+ "url": "https://www.youtube.com/watch?v=Kt8vGm8_ekQ"
763
+ },
764
+ {
765
+ "channel": "Cinthya Studios",
766
+ "views": "353630",
767
+ "url": "https://www.youtube.com/watch?v=A0CKFb24MJ8"
768
+ },
769
+ {
770
+ "channel": "Ninh Truong",
771
+ "views": "243944",
772
+ "url": "https://www.youtube.com/watch?v=FOMWS5pChuA"
773
+ },
774
+ {
775
+ "channel": "mexicat",
776
+ "views": "120706",
777
+ "url": "https://www.youtube.com/watch?v=5EoO5413dBY"
778
+ }
779
+ ]
780
+ },
781
+ "ui-morph": {
782
+ "n": 6,
783
+ "nichos": [
784
+ "a",
785
+ "d"
786
+ ],
787
+ "langs": [
788
+ "en"
789
+ ],
790
+ "views_max": 1164424,
791
+ "views_median": 2786,
792
+ "cuts_per_10s": [
793
+ 0.0,
794
+ 0.0,
795
+ 0.0
796
+ ],
797
+ "shot_median_s": 17.05,
798
+ "music": {
799
+ "continua": 4,
800
+ "fraca": 0,
801
+ "sem": 2
802
+ },
803
+ "sfx_on_cuts": [
804
+ 0,
805
+ 0
806
+ ],
807
+ "top": [
808
+ {
809
+ "channel": "zero",
810
+ "views": "1164424",
811
+ "url": "https://x.com/twoclipping/status/2103273003555402193"
812
+ },
813
+ {
814
+ "channel": "Martijn Verbove",
815
+ "views": "17438",
816
+ "url": "https://x.com/verbove/status/2103483957266268381"
817
+ },
818
+ {
819
+ "channel": "Daniel Haida",
820
+ "views": "3968",
821
+ "url": "https://x.com/daniel_haida/status/2104139720829636937"
822
+ },
823
+ {
824
+ "channel": "Anna Chernikova",
825
+ "views": "1605",
826
+ "url": "https://x.com/AnnaCher___/status/2103571096549433425"
827
+ },
828
+ {
829
+ "channel": "Nez",
830
+ "views": "519",
831
+ "url": "https://x.com/nezbuilds/status/2103487427365294391"
832
+ }
833
+ ]
725
834
  }
726
835
  }
@@ -0,0 +1,70 @@
1
+ # Generated-video prompts, by catalogue style
2
+
3
+ Eighteen prompts picked from [awesome-opus5-5-videos](https://github.com/yihui-dev/awesome-opus5-5-videos) (513 entries in its `data/videos.json`, MIT, checked on 2026-10-10): videos that a model wrote as code (canvas, SVG, three.js) and that went viral. Each line says what the prompt asks for, in our words; the full prompt and the video are at the links. The prompts belong to their creators: link to them, quote at most a phrase, never paste the whole prompt into a project or a skill.
4
+
5
+ This page is a fixed sample. For current videos, and to skip the ones a project already used, run `node scripts/references.mjs pick --style <key>`.
6
+
7
+ Use this page **after** the style is chosen ([style-picker.md](style-picker.md)), to see how others briefed a model for that look. These are not measured references: none of them enter `data/references.json` unless one is measured with `scripts/analyze.sh`.
8
+
9
+ ## How a generated piece runs in the Method
10
+
11
+ - **HyperFrames draws, Remotion assembles** (`_shared/video-pipeline.md`, wizz module). A prompt that asks for "one HTML file with the music" becomes: scenes drawn silent in HyperFrames, assembled in Remotion with the audio.
12
+ - **Timing is measured, never guessed.** Words from `wizz-ctc-align`; cuts on the downbeats from [`scripts/beat_grid.py`](../scripts/beat_grid.py). Several prompts below ask for a "120 BPM grid" by hand; the script gives the real grid of the actual song.
13
+ - **Recompose for 9:16** when the original was square or horizontal: keyword in the upper-middle, nothing important in the bottom 20 %.
14
+
15
+ ## Kinetic typography and lyric video ([card](styles/tipografia-cinetica.md))
16
+
17
+ | Prompt | What it asks | Links |
18
+ |---|---|---|
19
+ | anabology · Claude Pop remake | Reimagine a whole pop song's video end to end with the same audio, every lyric represented on screen, free to go abstract. | [post](https://x.com/anabology/status/2103534482930491441) · [video](https://skillry.dev/ai-videos/opus-5-5/anabology-491441) |
20
+ | doubleunplussed · music video "like P(doom)" | Music video in the P(doom) style for another song, with references and lore instead of literal lyrics ("tokens" becomes a stochastic parrot). | [post](https://x.com/doubleunplussed/status/2103697580421181894) · [video](https://skillry.dev/ai-videos/opus-5-5/doubleunplussed-181894) |
21
+ | ParanoidAmerica · evil pizza parlour | A full music video synced to a `lyrics.txt`, one continuous camera journey through a place, collage plus ballpoint-pen look. | [post](https://x.com/ParanoidAmerica/status/2103570879619686717) · [video](https://skillry.dev/ai-videos/opus-5-5/paranoidamerica-686717) |
22
+ | twoclipping · wordmark launch film | A one-word brand built in one continuous take to a 120 BPM song with a drop and a breakdown; every scene grows out of the previous one, nothing fades or cuts. | [post](https://x.com/twoclipping/status/2103835273813496100) · [video](https://skillry.dev/ai-videos/opus-5-5/twoclipping-496100) |
23
+
24
+ ## UI morph: one shape, many UI states ([card](styles/ui-morph.md))
25
+
26
+ The most remade prompt in the catalogue: the "8 to 12 UI states" brief appears 7 times, by different authors, with the same result. All six measured references of the style come from here.
27
+
28
+ | Prompt | What it asks | Links |
29
+ |---|---|---|
30
+ | twoclipping · one shape, many UI states | One element morphs through 8 to 12 UI states (button, loader, player, chart), a cursor drives each change, springs, cut on a 120 BPM grid. | [post](https://x.com/twoclipping/status/2103273003555402193) · [video](https://skillry.dev/ai-videos/opus-5-5/twoclipping-402193) |
31
+ | verbove · product story in one canvas | The same morphing-shape idea as strict rules: one `draw(t)` function, real UI and real data, something on every beat, exports in 1:1, 16:9 and 9:16. | [post](https://x.com/verbove/status/2103483957266268381) · [video](https://skillry.dev/ai-videos/opus-5-5/verbove-268381) |
32
+ | AnnaCher · promo from the product's own UI | Same structure built from the real product UI, one accent colour, last frame equals the first so it loops; a long banned list (glows, particles, bouncy easing). | [post](https://x.com/AnnaCher___/status/2103571096549433425) · [video](https://skillry.dev/ai-videos/opus-5-5/annacher-433425) |
33
+ | dzhohola · the template on a real app | The same "8 to 12 UI states" brief pointed at an existing product (T3 Code): diff, settings, toggles, themes, usage chart and GitHub stars, light turning dark halfway. | [post](https://x.com/dzhohola/status/2103605737595249003) · [video](https://skillry.dev/ai-videos/opus-5-5/dzhohola-249003) |
34
+ | daniel_haida · dark product film | 15 s Apple-level film for a bookkeeping app in React + Remotion, "not a feature walkthrough"; dashboard in perspective, a paper receipt, one yellow accent, soundtrack synthesised in code. | [post](https://x.com/daniel_haida/status/2104139720829636937) · [video](https://skillry.dev/ai-videos/opus-5-5/daniel-haida-636937) |
35
+ | Bilimfili1 · a glance inside the app (vertical) | 45 to 50 s vertical tour of every feature, recorded for real in the simulator, each feature breaking out of the phone; every number on screen comes from the recordings. | [post](https://x.com/Bilimfili1/status/2103743617848459762) · [video](https://skillry.dev/ai-videos/opus-5-5/bilimfili1-459762) |
36
+
37
+ ## Motion editorial and product UI ([card](styles/motion-editorial.md))
38
+
39
+ | Prompt | What it asks | Links |
40
+ |---|---|---|
41
+ | jhylee95 · launch video | Research the product, hook in the first second, distinct beats for proof, every cut and hit retimed until it lands on a beat or drop. | [post](https://x.com/jhylee95/status/2103604431627452427) · [video](https://skillry.dev/ai-videos/opus-5-5/jhylee95-452427) |
42
+ | twoclipping · minimal launch with real footage | 10 bars at 120 BPM, one idea per shot, masked type reveals and match cuts over the owner's real vertical clips; no placeholder cards. | [post](https://x.com/twoclipping/status/2102554209166000267) · [video](https://skillry.dev/ai-videos/opus-5-5/twoclipping-000267) |
43
+ | Mounnna · logo reveal | Logo drawn as a wireframe, low-poly shards fly in and assemble it, then the icon background and the typed brand name. A 3 to 5 s sting for the CTA. | [post](https://x.com/Mounnna/status/2103802871934497266) · [video](https://skillry.dev/ai-videos/opus-5-5/mounnna-497266) |
44
+
45
+ ## Animated explainer ([card](styles/explicador-animado.md))
46
+
47
+ | Prompt | What it asks | Links |
48
+ |---|---|---|
49
+ | alex_prompter · 30 s business explainer | Five scenes: the customer's problem, what you do, how it works in 3 steps, one proof point, your name. The simplest brief that works. | [post](https://x.com/alex_prompter/status/2103499977632997524) · [video](https://skillry.dev/ai-videos/opus-5-5/alex-prompter-997524) |
50
+ | emollick · recursion | Explain one idea where each explanation switches to a radically different visual style; self-referential and fast. | [post](https://x.com/emollick/status/2103688362960019567) · [video](https://skillry.dev/ai-videos/opus-5-5/emollick-019567) |
51
+ | koldo2k · infinite zoom loop | A looping camera flight from landscape to landscape through vintage objects, collage and halftone look, film grain. | [post](https://x.com/koldo2k/status/2103129343253778767) · [video](https://skillry.dev/ai-videos/opus-5-5/koldo2k-778767) |
52
+
53
+ ## Whiteboard ([card](styles/quadro-branco.md))
54
+
55
+ | Prompt | What it asks | Links |
56
+ |---|---|---|
57
+ | tak3sh8 · hand-drawn physics | Hand-drawn whiteboard animation of a hard concept, then a second prompt turning it into an MP4 with narration. | [post](https://x.com/tak3sh8/status/2103667481139441895) · [video](https://skillry.dev/ai-videos/opus-5-5/tak3sh8-441895) |
58
+
59
+ ## Fast meme ([card](styles/meme-rapido.md))
60
+
61
+ | Prompt | What it asks | Links |
62
+ |---|---|---|
63
+ | kloss_xyz · 9:16 brain rot | A chaotic vertical video generated in Python and rendered with ffmpeg, with motion and sound design, told from the model's point of view. | [post](https://x.com/kloss_xyz/status/2103664956482941143) · [video](https://skillry.dev/ai-videos/opus-5-5/kloss-xyz-941143) |
64
+
65
+ ## What the good ones share
66
+
67
+ - **Inputs first.** The strongest prompts open with an `<inputs>` block: ask for the real product, the real UI states, the real data, the brand colour and the song before drawing anything.
68
+ - **A banned list.** Glows, particle bursts, RGB split, camera shake, bouncy easing: naming what not to do does more than adjectives.
69
+ - **One rule for continuity.** "One shape, never cut" or "every scene is made out of the previous one" gives the piece its identity.
70
+ - **The beat as the clock.** Every change lands on a beat or a drop. Here that clock comes from `beat_grid.py`, not from a hand-typed BPM.
@@ -2,6 +2,8 @@
2
2
 
3
3
  Set measured on 2026-10-04: **99 public shorts**, 46 in English and 53 in Brazilian Portuguese, 8 niche groups (9 to 16 per group), views from 23,718 to 107,324,401 (median 608,820). Per-style numbers live in [`data/styles.json`](../data/styles.json) and at the top of each card; this page keeps only what holds across styles. Method and limits: [research-method.md](research-method.md).
4
4
 
5
+ Added on 2026-10-10: 5 kinetic typography and lyric videos (style `tipografia-cinetica`, all 16:9, a 9th niche group: music). They are in the per-style numbers and their card, but not in the cross-style aggregates below, which still describe the 99 vertical shorts.
6
+
5
7
  ## Sound effects are rare
6
8
 
7
9
  | | Cuts with a sound effect on them |
@@ -7,6 +7,8 @@ The material decides which styles are **possible**. Niche and goal only rank the
7
7
  | What the project has | Possible styles |
8
8
  |---|---|
9
9
  | Voice only (own recording or TTS), no one on camera | [motion-editorial](styles/motion-editorial.md), [explicador-animado](styles/explicador-animado.md), [meme-rapido](styles/meme-rapido.md) |
10
+ | A song with its lyrics, or a voice-over or slogan with no footage at all | [tipografia-cinetica](styles/tipografia-cinetica.md) (the words are the image; scenes generated in code) |
11
+ | Only the product's UI (its screens, or a list of states), no person and no voice | [ui-morph](styles/ui-morph.md) (one shape becomes each UI state, a cursor drives it, cut on the beat) |
10
12
  | Voice + app/site screens | [motion-editorial](styles/motion-editorial.md) (screenshots in a phone card), [camera-no-setup](styles/camera-no-setup.md) (film the screen), [meme-rapido](styles/meme-rapido.md) |
11
13
  | A person on camera talking, nothing else | [talking-head-legenda](styles/talking-head-legenda.md) |
12
14
  | A person on camera + headlines, articles, charts, b-roll | [talking-head-cards](styles/talking-head-cards.md) (face bubble over full-screen b-roll is a variant) |
@@ -28,21 +30,23 @@ From [`data/references.json`](../data/references.json): the styles measured in e
28
30
 
29
31
  | Niche | Styles found (highest views) |
30
32
  |---|---|
31
- | dev / AI / build in public (EN) | meme-rapido (8.8M), camera-no-setup (8.1M), talking-head-legenda (5.4M), quadro-branco (4.4M), motion-editorial (0.83M), talking-head-cards (0.82M), podcast-clip (0.48M) |
33
+ | dev / AI / build in public (EN) | meme-rapido (8.8M), camera-no-setup (8.1M), talking-head-legenda (5.4M), quadro-branco (4.4M), ui-morph (1.2M), motion-editorial (0.83M), talking-head-cards (0.82M), podcast-clip (0.48M) |
32
34
  | dev / AI / tech business (BR) | quadro-branco (1.1M), talking-head-cards (0.41M), talking-head-legenda (0.26M), meme-rapido (0.23M), camera-no-setup (0.11M) |
33
35
  | personal finance / investing | podcast-clip (1.2M), talking-head-cards (1.2M), talking-head-legenda (0.77M) |
34
- | product / SaaS / marketing / business / law | desafio-numero (20.9M), talking-head-legenda (9.8M), camera-no-setup (0.53M), podcast-clip (0.33M), quadro-branco (0.15M), talking-head-cards (0.09M) |
36
+ | product / SaaS / marketing / business / law | desafio-numero (20.9M), talking-head-legenda (9.8M), tipografia-cinetica (1.2M), camera-no-setup (0.53M), podcast-clip (0.33M), quadro-branco (0.15M), talking-head-cards (0.09M), ui-morph (0.02M) |
35
37
  | health / fitness / nutrition | explicador-animado (33.4M), podcast-clip (9.8M), quadro-branco (0.61M), macro-asmr (0.54M), talking-head-cards (0.43M), desafio-numero (0.22M) |
36
38
  | food / recipes / lifestyle / travel | desafio-numero (107M), pov-vlog (8.7M), macro-asmr (7.7M), tour (1.05M) |
37
39
  | beauty / fashion / local services (clinic, salon, architecture, real estate) | macro-asmr (10.6M), talking-head-legenda (3.8M), talking-head-cards (2.0M), pov-vlog (1.4M), tour (0.37M) |
38
- | education / science / comedy | experimento (49M), explicador-animado (4.7M), esquete (2.9M), talking-head-cards (2.2M), talking-head-legenda (1.7M) |
40
+ | education / science / comedy | experimento (49M), explicador-animado (4.7M), esquete (2.9M), talking-head-cards (2.2M), talking-head-legenda (1.7M), tipografia-cinetica (0.93M) |
41
+ | music / artists / lyric videos | tipografia-cinetica (0.24M) |
39
42
 
40
43
  BR local services (clinic, salon, law, architecture), BR travel and BR sales/marketing were filled with a second pass (300k to 10.6M views). Still thin: BR software/SaaS proper (only sales/marketing found), real-estate agents in BR, and every niche has 9 to 16 references, not hundreds. When a niche is missing, pick by material and by the closest niche, and say the reference is borrowed.
41
44
 
42
45
  ## 3. Goal → tie-breaker
43
46
 
44
47
  - **Saves and comments (teach, explain a system):** motion-editorial, explicador-animado, quadro-branco, talking-head-cards.
45
- - **Reach and shares (curiosity, humour):** desafio-numero, experimento, meme-rapido, esquete, pov-vlog.
48
+ - **Reach and shares (curiosity, humour):** desafio-numero, experimento, meme-rapido, esquete, pov-vlog, tipografia-cinetica (music and manifestos).
49
+ - **Show the product working (launch, new feature, store page):** ui-morph, motion-editorial.
46
50
  - **Trust and authority (a person the audience should know):** talking-head-legenda, podcast-clip, camera-no-setup.
47
51
  - **Desire for a product:** macro-asmr, desafio-numero, camera-no-setup.
48
52