wizz-method 2.1.1 → 2.3.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 (212) hide show
  1. package/README.md +62 -62
  2. package/SECURITY.md +15 -16
  3. package/THIRD-PARTY-NOTICES.md +49 -49
  4. package/package.json +1 -1
  5. package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +1 -1
  6. package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +1 -1
  7. package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +1 -1
  8. package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +1 -1
  9. package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +1 -1
  10. package/src/bmm-skills/4-implementation/wizz-code-review/SKILL.md +2 -2
  11. package/src/bmm-skills/4-implementation/wizz-code-review/customize.toml +102 -8
  12. package/src/bmm-skills/4-implementation/wizz-code-review/references/review-economy.md +75 -0
  13. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-01-gather-context.md +29 -15
  14. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-02-review.md +13 -10
  15. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-03-triage.md +11 -5
  16. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-04-present.md +4 -0
  17. package/src/bmm-skills/4-implementation/wizz-quick-dev/customize.toml +103 -7
  18. package/src/bmm-skills/4-implementation/wizz-quick-dev/references/review-economy.md +75 -0
  19. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-04-review.md +43 -18
  20. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-05-present.md +4 -0
  21. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-oneshot.md +2 -2
  22. package/src/core-skills/_shared/handoff-protocol.md +72 -71
  23. package/src/core-skills/wizz-review-adversarial-general/SKILL.md +1 -1
  24. package/src/modules/lowticket/skills/wizz-lowticket-funil/references/copy-das-paginas.md +39 -39
  25. package/src/modules/lowticket/skills/wizz-lowticket-funil/references/mapa-do-funil.md +23 -23
  26. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/CATALOGO.md +72 -72
  27. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/01-principios.md +10 -10
  28. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/02-diagnostico-funil.md +50 -50
  29. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/03-campanha-bidcap.md +68 -68
  30. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04-criativos.md +44 -44
  31. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04a-criativos-ia.md +77 -77
  32. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04b-criativos-formatos.md +121 -121
  33. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/05-oferta.md +35 -35
  34. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06-pagina-vendas.md +122 -122
  35. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06a-instagram.md +93 -93
  36. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06b-player-vsl.md +57 -57
  37. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07-funil-upsell.md +83 -83
  38. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07a-copy-humanizacao.md +61 -61
  39. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/08-pesquisa-publico.md +11 -11
  40. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/09-especialista-coproducao.md +26 -26
  41. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/10-levantar-caixa.md +29 -29
  42. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/11-checklist-roi.md +22 -22
  43. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12-mineracao-ofertas.md +80 -80
  44. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12a-mineracao-veredito.md +72 -72
  45. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12b-fabrica-de-ofertas.md +63 -63
  46. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12c-anatomia-low-ticket.md +71 -71
  47. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/13-benchmarks-vsl.md +6 -6
  48. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/14-vocabulario.md +53 -51
  49. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/15-como-estender.md +26 -26
  50. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/17-rastreamento.md +76 -76
  51. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/18-copy-desejo-oferta.md +149 -149
  52. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/INDEX.md +45 -45
  53. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/guardrails.md +45 -45
  54. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/pontos-em-aberto.md +64 -66
  55. package/src/modules/lowticket/skills/wizz-lowticket-minerador/references/rubrica.md +63 -63
  56. package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/metas-e-medicao.md +23 -23
  57. package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/padroes-de-codigo.md +50 -50
  58. package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/formato-do-diagnostico.md +9 -9
  59. package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/reguas.md +42 -42
  60. package/src/modules/wizz/README.md +27 -27
  61. package/src/modules/wizz/_shared/cerebro.md +37 -37
  62. package/src/modules/wizz/_shared/communication-rules.md +15 -15
  63. package/src/modules/wizz/_shared/despacho-barato.md +6 -6
  64. package/src/modules/wizz/_shared/encerramento.md +23 -23
  65. package/src/modules/wizz/_shared/model-ladder.md +29 -28
  66. package/src/modules/wizz/_shared/planning-gate.md +30 -30
  67. package/src/modules/wizz/_shared/token-economy.md +28 -28
  68. package/src/modules/wizz/_shared/video-pipeline.md +42 -42
  69. package/src/modules/wizz/agents/wizz-ads/SKILL.md +16 -16
  70. package/src/modules/wizz/agents/wizz-ads/customize.toml +21 -21
  71. package/src/modules/wizz/agents/wizz-copy/SKILL.md +18 -18
  72. package/src/modules/wizz/agents/wizz-copy/customize.toml +24 -24
  73. package/src/modules/wizz/agents/wizz-designer/SKILL.md +24 -24
  74. package/src/modules/wizz/agents/wizz-designer/customize.toml +29 -29
  75. package/src/modules/wizz/agents/wizz-growth/SKILL.md +20 -20
  76. package/src/modules/wizz/agents/wizz-growth/customize.toml +34 -34
  77. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +63 -63
  78. package/src/modules/wizz/agents/wizz-maestro/customize.toml +38 -38
  79. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +19 -19
  80. package/src/modules/wizz/agents/wizz-memoria/customize.toml +24 -24
  81. package/src/modules/wizz/agents/wizz-qa/SKILL.md +22 -22
  82. package/src/modules/wizz/agents/wizz-qa/customize.toml +29 -29
  83. package/src/modules/wizz/agents/wizz-seo/SKILL.md +19 -19
  84. package/src/modules/wizz/agents/wizz-seo/customize.toml +27 -27
  85. package/src/modules/wizz/agents/wizz-social/SKILL.md +53 -53
  86. package/src/modules/wizz/agents/wizz-social/customize.toml +37 -37
  87. package/src/modules/wizz/agents/wizz-social/knowledge/analise-imagem-referencia.md +20 -20
  88. package/src/modules/wizz/agents/wizz-social/knowledge/biblioteca-prompts-imagem.md +71 -71
  89. package/src/modules/wizz/agents/wizz-social/knowledge/blueprint-roteiro-viral.md +196 -196
  90. package/src/modules/wizz/agents/wizz-social/knowledge/legenda-instagram.md +32 -32
  91. package/src/modules/wizz/agents/wizz-social/knowledge/prompts-imagem-video.md +48 -48
  92. package/src/modules/wizz/module.yaml +28 -28
  93. package/src/modules/wizz/overrides/wizz-agent-analyst.toml +17 -17
  94. package/src/modules/wizz/overrides/wizz-agent-architect.toml +21 -21
  95. package/src/modules/wizz/overrides/wizz-agent-dev.toml +20 -20
  96. package/src/modules/wizz/overrides/wizz-agent-pm.toml +11 -11
  97. package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +14 -14
  98. package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +14 -14
  99. package/src/modules/wizz/subagents/codex/wizz-exec-haiku.toml +17 -17
  100. package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +19 -19
  101. package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +18 -17
  102. package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +18 -18
  103. package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +17 -17
  104. package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +19 -19
  105. package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +18 -17
  106. package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +18 -18
  107. package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +17 -17
  108. package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +19 -19
  109. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +18 -17
  110. package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +18 -18
  111. package/src/modules/wizz/subagents/spec.yaml +84 -82
  112. package/src/modules/wizz/subagents/wizz-exec-haiku.md +17 -17
  113. package/src/modules/wizz/subagents/wizz-exec-opus.md +19 -19
  114. package/src/modules/wizz/subagents/wizz-exec-review.md +18 -17
  115. package/src/modules/wizz/subagents/wizz-exec-sonnet.md +18 -18
  116. package/src/skills-lib/cerebro/SKILL.md +61 -61
  117. package/src/skills-lib/cerebro/references/comandos-pesquisa-e-memoria.md +46 -46
  118. package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +65 -65
  119. package/src/skills-lib/cerebro/references/comandos-sessao.md +74 -74
  120. package/src/skills-lib/ctc-align/SKILL.md +37 -37
  121. package/src/skills-lib/find-skills/SKILL.md +19 -19
  122. package/src/skills-lib/pesquisa-de-publico-do-piva/README.md +33 -33
  123. package/src/skills-lib/pesquisa-de-publico-do-piva/SKILL.md +42 -42
  124. package/src/skills-lib/pesquisa-de-publico-do-piva/prompts.md +20 -20
  125. package/src/skills-lib/references/premium-agency-rules.md +63 -63
  126. package/src/skills-lib/security-audit-pentest/SKILL.md +31 -31
  127. package/src/skills-lib/security-audit-pentest/references/stage-1-validacao-entrada.md +37 -37
  128. package/src/skills-lib/security-audit-pentest/references/stage-2-autorizacao.md +61 -61
  129. package/src/skills-lib/security-audit-pentest/references/stage-3-abuso-volume.md +37 -37
  130. package/src/skills-lib/security-audit-pentest/references/stage-4-vazamento-resposta.md +52 -52
  131. package/src/skills-lib/site-launch-kit/SKILL.md +42 -42
  132. package/src/skills-lib/site-launch-kit/references/01-cta-principal.md +20 -20
  133. package/src/skills-lib/site-launch-kit/references/02-barra-fixa-mobile.md +24 -24
  134. package/src/skills-lib/site-launch-kit/references/03-tempo-de-resposta.md +21 -21
  135. package/src/skills-lib/site-launch-kit/references/04-prova-social.md +22 -22
  136. package/src/skills-lib/site-launch-kit/references/05-faq-decisao.md +28 -28
  137. package/src/skills-lib/site-launch-kit/references/06-imagens-reais.md +27 -27
  138. package/src/skills-lib/site-launch-kit/references/07-endereco-como-chegar.md +25 -25
  139. package/src/skills-lib/site-launch-kit/references/08-titles.md +30 -30
  140. package/src/skills-lib/site-launch-kit/references/09-open-graph.md +23 -23
  141. package/src/skills-lib/site-launch-kit/references/10-breadcrumbs.md +23 -23
  142. package/src/skills-lib/site-launch-kit/references/11-alt-text.md +28 -28
  143. package/src/skills-lib/site-launch-kit/references/12-schema-local.md +22 -22
  144. package/src/skills-lib/site-launch-kit/references/13-robots-sitemap.md +26 -26
  145. package/src/skills-lib/site-launch-kit/references/14-privacidade-termos.md +27 -27
  146. package/src/skills-lib/site-launch-kit/references/15-medicao.md +23 -23
  147. package/src/skills-lib/wizz-ai-product-design/SKILL.md +70 -70
  148. package/src/skills-lib/wizz-auth-and-secrets/SKILL.md +78 -78
  149. package/src/skills-lib/wizz-caching-and-queues/SKILL.md +40 -40
  150. package/src/skills-lib/wizz-cloud-and-infra/SKILL.md +22 -22
  151. package/src/skills-lib/wizz-database-and-deps/SKILL.md +52 -52
  152. package/src/skills-lib/wizz-database-scaling/SKILL.md +31 -31
  153. package/src/skills-lib/wizz-desktop-security/SKILL.md +49 -49
  154. package/src/skills-lib/wizz-implementation-planner/SKILL.md +56 -56
  155. package/src/skills-lib/wizz-implementation-planner/references/folder-structure-and-dependencies.md +14 -14
  156. package/src/skills-lib/wizz-implementation-planner/references/implementation-phases.md +15 -15
  157. package/src/skills-lib/wizz-implementation-planner/references/implementation-types.md +9 -9
  158. package/src/skills-lib/wizz-implementation-planner/references/motion-path-implementation.md +19 -19
  159. package/src/skills-lib/wizz-implementation-planner/references/performance-plan.md +27 -27
  160. package/src/skills-lib/wizz-infrastructure/SKILL.md +21 -21
  161. package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +63 -63
  162. package/src/skills-lib/wizz-inicio-de-projeto/references/implementacao-api-forms.md +27 -27
  163. package/src/skills-lib/wizz-inicio-de-projeto/references/padroes-arquiteturais-e-pastas.md +31 -31
  164. package/src/skills-lib/wizz-inicio-de-projeto/references/seguranca-e-regras-codigo.md +21 -21
  165. package/src/skills-lib/wizz-launch-readiness/SKILL.md +61 -61
  166. package/src/skills-lib/wizz-launch-readiness/references/01-tecnico-build.md +16 -16
  167. package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +16 -16
  168. package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +16 -16
  169. package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +15 -15
  170. package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +15 -15
  171. package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +15 -15
  172. package/src/skills-lib/wizz-launch-readiness/references/07-infra-deploy-rollback.md +16 -16
  173. package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +19 -19
  174. package/src/skills-lib/wizz-launch-readiness/references/09-persistencia-project-context.md +26 -26
  175. package/src/skills-lib/wizz-motion-3d-director/SKILL.md +70 -70
  176. package/src/skills-lib/wizz-motion-3d-director/references/image-to-video-workflow.md +34 -35
  177. package/src/skills-lib/wizz-motion-3d-director/references/motion-paths.md +70 -70
  178. package/src/skills-lib/wizz-motion-3d-director/references/performance-and-handoff.md +17 -17
  179. package/src/skills-lib/wizz-offer-forge/README.md +9 -9
  180. package/src/skills-lib/wizz-offer-forge/SKILL.md +64 -64
  181. package/src/skills-lib/wizz-offer-forge/references/empilhamento-valor.md +17 -17
  182. package/src/skills-lib/wizz-offer-forge/references/garantia-reversa.md +16 -16
  183. package/src/skills-lib/wizz-offer-forge/references/mecanismo-unico.md +19 -19
  184. package/src/skills-lib/wizz-offer-forge/references/ponte-trafego.md +17 -17
  185. package/src/skills-lib/wizz-premium-landing-ui-researcher/SKILL.md +36 -36
  186. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/audit-protocol.md +81 -82
  187. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/component-sources.md +105 -105
  188. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/core-goal.md +39 -39
  189. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/dashboard-and-portfolio-modes.md +49 -50
  190. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/handoffs.md +33 -34
  191. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/landing-page-strategy.md +141 -142
  192. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/mandatory-process.md +24 -24
  193. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/output-format-and-quality.md +73 -73
  194. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/prompt-templates.md +4 -4
  195. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/site-levels.md +282 -283
  196. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-first-protocol.md +39 -39
  197. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-links.md +8 -8
  198. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/stack-and-visual-direction.md +63 -64
  199. package/src/skills-lib/wizz-router/SKILL.md +38 -38
  200. package/src/skills-lib/wizz-router/references/auditoria-360.md +12 -12
  201. package/src/skills-lib/wizz-router/references/routing-table-flat.md +80 -80
  202. package/src/skills-lib/wizz-tracking-audit/SKILL.md +48 -48
  203. package/src/skills-lib/wizz-tracking-audit/references/modo-diagnostico.md +43 -43
  204. package/src/skills-lib/wizz-tracking-audit/references/modo-implantacao.md +59 -59
  205. package/src/skills-lib/wizz-tracking-audit/references/utm-e-atribuicao.md +35 -35
  206. package/src/skills-lib/wizz-web-security/SKILL.md +35 -35
  207. package/src/skills-lib/wizz-web-security/references/checklist-deploy.md +50 -50
  208. package/src/skills-lib/wizz-web-security/references/headers-rate-limit-cors.md +33 -33
  209. package/src/skills-lib/wizz-web-security/references/owasp-top5-detalhado.md +36 -36
  210. package/tools/hooks/session-rules.js +14 -11
  211. package/tools/installer/core/resolved-customizations.js +58 -10
  212. package/tools/installer/core/resolved-schema.js +116 -18
@@ -1,147 +1,147 @@
1
- ## 6-A. Instagram da oferta — onde a venda realmente fecha
1
+ ## 6-A. The offer's Instagram — where the sale actually closes
2
2
 
3
- > Shard da metodologia desta base. Índice: [`INDEX.md`](INDEX.md) · Sempre carregado junto: [`guardrails.md`](guardrails.md)
4
- > Onde a skill genérica contradisser este shard, **o shard vence**, e isso deve ser dito na resposta.
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
4
+ > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
- Fonte: + `mapa-mental-instagram-forte` (site da aula, 2026-08-17). Complementa e detalha a seção 11.2 do checklist do ROI.
6
+ Source: + `mapa-mental-instagram-forte` (the lesson's site, 2026-08-17). Complements and details section 11.2 of the ROI checklist.
7
7
 
8
- ### 6A.1 A prova: de onde vêm as vendas
8
+ ### 6A.1 The proof: where the sales come from
9
9
 
10
- Operação A, 464 vendas aprovadas, por fonte:
10
+ Operation A, 464 approved sales, by source:
11
11
 
12
- | Fonte | Vendas |
12
+ | Source | Sales |
13
13
  |-------|--------|
14
- | Link da bio | 179 |
15
- | Organic / outras | 156 |
14
+ | Bio link | 179 |
15
+ | Organic / other | 156 |
16
16
  | Story | 77 |
17
- | Meta Ads (clique direto no anúncio) | 52 |
17
+ | Meta Ads (direct click on the ad) | 52 |
18
18
 
19
- **Só 11% veio do clique direto no anúncio. 89% passou pelo perfil antes de comprar.** Em uma operação B, mesmo com o anúncio dominando (622 vendas diretas de 1.086 totais), o perfil quase dobrou o resultado.
19
+ **Only 11% came from a direct click on the ad. 89% went through the profile before buying.** In an Operation B, even with the ad dominating (622 direct sales out of 1,086 total), the profile nearly doubled the result.
20
20
 
21
- **O contrafactual:** com perfil fraco, a mesma operação faria 52 vendas em vez de 464 — mesmo criativo, mesmo público, mesmo orçamento, e no prejuízo.
21
+ **The counterfactual:** with a weak profile, the same operation would make 52 sales instead of 464 — same creative, same audience, same budget, and at a loss.
22
22
 
23
- **Por que é o maior boost de ROI da operação:** a visita ao perfil já foi paga junto com o clique. É o único lugar onde a receita sobe sem o custo subir. Criativo custa teste, CPA custa otimização, ticket custa reestruturar oferta. O perfil, não.
23
+ **Why it's the operation's biggest ROI boost:** the profile visit was already paid for along with the click. It's the only place where revenue goes up without cost going up. The creative costs testing, CPA costs optimization, the ticket costs restructuring the offer. The profile doesn't.
24
24
 
25
- > A frase da aula: **o anúncio apresenta, o perfil vende.**
25
+ > The lesson's line: **the ad introduces, the profile sells.**
26
26
 
27
- ### 6A.2 O comportamento de quem compra
27
+ ### 6A.2 The behavior of the buyer
28
28
 
29
- **O gatilho é desconfiança.** Nicho concorrido + promessa forte + preço baixo: o primeiro pensamento não é "quero", é "será que é golpe?".
29
+ **The trigger is distrust.** A crowded niche + a strong promise + a low price: the first thought isn't "I want it," it's "is this a scam?"
30
30
 
31
- **O julgamento acontece em ~15 segundos, nesta ordem:**
31
+ **The judgment happens in ~15 seconds, in this order:**
32
32
 
33
- 1. **Foto** — tem gente real aqui?
34
- 2. **Bio** — é o que o anúncio prometeu?
35
- 3. **Destaques** — tem prova?
36
- 4. **Feed** — essa conta existe há mais de uma semana?
37
- 5. **Stories** — tem alguém vivo hoje?
33
+ 1. **Photo** — are there real people here?
34
+ 2. **Bio** — is this what the ad promised?
35
+ 3. **Highlights** — is there proof?
36
+ 4. **Feed** — has this account existed for more than a week?
37
+ 5. **Stories** — is someone alive today?
38
38
 
39
- Passou nos cinco, compra pela bio ou pelo story. Falhou em um, sai — e o clique você pagou igual.
39
+ Pass all five, they buy through the bio or the story. Fail one, they leave — and you paid for the click either way.
40
40
 
41
- ### 6A.3 Anatomia do perfil
41
+ ### 6A.3 Profile anatomy
42
42
 
43
- - **Foto:** rosto, legível num círculo de 40px.
44
- - **Nome:** expert + o que entrega. É campo de busca, então usar palavra que o público procura.
45
- - **@:** sem número aleatório no fim.
46
- - **Bio:** 4 linhas — quem, prova, para quem, CTA.
47
- - **Link:** destino único, sempre com UTM. Link direto converte mais que agregador; se usar agregador, confirmar que ele repassa a UTM.
48
- - **Fixados:** 3 posts no topo.
49
- - **Feed:** 9 a 12 posts antes de subir tráfego.
43
+ - **Photo:** a face, legible inside a 40px circle.
44
+ - **Name:** expert + what it delivers. It's a search field, so use a word the audience actually searches for.
45
+ - **Handle (@):** no random number at the end.
46
+ - **Bio:** 4 lines — who, proof, for whom, CTA.
47
+ - **Link:** a single destination, always with UTM. A direct link converts better than an aggregator; if using an aggregator, confirm it passes the UTM through.
48
+ - **Pinned posts:** 3 at the top.
49
+ - **Feed:** 9 to 12 posts before sending traffic.
50
50
 
51
- **Sinais de conta fake** (marcou 3 ou mais, não sobe tráfego ainda): sem foto, @ com número, bio genérica, menos de 5 posts, zero destaque, comentários desativados, story parado há uma semana.
51
+ **Signs of a fake account** (3 or more flags, don't send traffic yet): no photo, a number in the handle, generic bio, fewer than 5 posts, zero highlights, comments disabled, story idle for a week.
52
52
 
53
- ### 6A.3-A Verificação do perfil — categoria Comunidade
53
+ ### 6A.3-A Profile verification — Community category
54
54
 
55
- - Checar se o perfil está na categoria **"Comunidade"**, que é a mais fácil de verificar.
56
- - Usar foto coerente com o documento de identidade **da própria pessoa** (mesmo nome, mesmo gênero).
57
- - **Efeito relatado:** CPA e CPM mais baixos mesmo sem o selo oficial de verificado.
58
- - Útil sobretudo para operar em mercados como Portugal.
55
+ - Check whether the profile is in the **"Community"** category, the easiest one to get verified.
56
+ - Use a photo consistent with the ID document **of the actual person** (same name, same gender).
57
+ - **Reported effect:** lower CPA and CPM even without the official verified badge.
58
+ - Especially useful for operating in markets like Portugal.
59
59
 
60
- > A fonte também ensina a enviar documento de **terceiro** (o exemplo dado é usar o documento da mãe) para passar a verificação. **Este projeto não faz isso.** Ver [`guardrails.md`](guardrails.md) item 32 e [Ponto em aberto 32](pontos-em-aberto.md).
60
+ > The source also teaches submitting a **third party's** document (the example given is using the mother's document) to pass verification. **This project does not do that.** See [`guardrails.md`](guardrails.md) item 32 and [Open item 32](pontos-em-aberto.md).
61
61
 
62
- ### 6A.4 Destaques — organize por objeção, não por assunto
62
+ ### 6A.4 Highlights — organize by objection, not by topic
63
63
 
64
- A ordem que mata objeção:
64
+ The order that kills objections:
65
65
 
66
- 1. **RESULTADOS** — isso funciona mesmo?
67
- 2. **COMO FUNCIONA** — o que eu recebo?
68
- 3. **DEPOIMENTOS** — outras pessoas compraram?
69
- 4. **DÚVIDAS** — e se não der certo pra mim?
70
- 5. **QUEM SOU** — quem é essa pessoa?
71
- 6. **COMPRAR** — onde eu compro?
66
+ 1. **RESULTS** — does this actually work?
67
+ 2. **HOW IT WORKS** — what do I get?
68
+ 3. **TESTIMONIALS** — have other people bought it?
69
+ 4. **QUESTIONS** — what if it doesn't work for me?
70
+ 5. **WHO I AM** — who is this person?
71
+ 6. **BUY** — where do I buy it?
72
72
 
73
- Regras: 5 a 7 destaques, 4 a 8 stories cada. **Todo destaque termina com um story com link.** UTM própria por destaque, para descobrir qual deles vende. Trocar o destaque de resultados a cada 15 dias.
73
+ Rules: 5 to 7 highlights, 4 to 8 stories each. **Every highlight ends with a story that has a link.** Its own UTM per highlight, to find out which one sells. Refresh the results highlight every 15 days.
74
74
 
75
- ### 6A.5 Rotina (a operação inteira cabe em 20 min/dia)
75
+ ### 6A.5 Routine (the whole operation fits in 20 min/day)
76
76
 
77
- - **Stories:** 3 a 5 por dia. Prova, bastidor, dúvida respondida. **1 story com link por dia, só um.**
78
- - **Reels:** 3 por semana, gravados em bloco e programados.
79
- - **Feed:** 2 a 3 por semana, pode ser com IA.
80
- - **Congruência:** tudo no perfil conversa com a oferta.
77
+ - **Stories:** 3 to 5 a day. Proof, behind-the-scenes, an answered question. **1 story with a link per day, only one.**
78
+ - **Reels:** 3 a week, recorded in a batch and scheduled.
79
+ - **Feed:** 2 to 3 a week, can be AI-made.
80
+ - **Congruence:** everything on the profile speaks to the offer.
81
81
 
82
- Constância vence volume. Presença constante com conteúdo relevante gera confiança; inconsistência destrói credibilidade rápido.
82
+ Consistency beats volume. Constant presence with relevant content builds trust; inconsistency destroys credibility fast.
83
83
 
84
- **Comentários do anúncio** são parte do criativo — a pessoa lê antes de clicar. Responder objeção converte mais do que deletar. Ocultar spam e configurar palavras bloqueadas. Usar publicação existente para acumular prova social.
84
+ **Comments on the ad** are part of the creative — people read them before clicking. Answering an objection converts better than deleting it. Hide spam and set up blocked words. Use an existing post to accumulate social proof.
85
85
 
86
- **Direct:** quem desconfia muito pergunta em vez de comprar. Ter respostas rápidas salvas, todas terminando com link, e com UTM própria — senão a venda some dentro do "organic".
86
+ **DMs:** whoever is very distrustful asks instead of buying. Keep quick saved replies ready, all of them ending with a link, with their own UTM — otherwise the sale disappears into "organic."
87
87
 
88
- ### 6A.6 Rastreamento — sem isso você está cego
88
+ ### 6A.6 Tracking — without this you're blind
89
89
 
90
- - Ativar no ícone do lápis: **vendas por fonte** e **funil de conversão**. As melhores métricas não vêm ligadas por padrão.
91
- - **"Organic" = venda que chegou sem UTM**: destaque cru, direct, acesso direto, recompra, recuperação. Taguear os destaques e ver o organic cair prova isso. Deixa de ser balde cego e vira dado.
92
- - **UTM por canal:** anúncio (template com parâmetro dinâmico), bio, story, destaque, direct, feed, recuperação. Minúscula, sem acento, padrão fixo para sempre.
93
- - **O que quebra o rastreamento:** encurtador que não repassa parâmetro, cloaker sem suporte a UTM, script fora do `<head>`.
94
- - **Compra-teste por cada caminho antes de escalar.**
90
+ - Turn on, in the pencil icon: **sales by source** and **conversion funnel**. The best metrics aren't on by default.
91
+ - **"Organic" = a sale that arrived with no UTM**: a raw highlight, DM, direct access, repeat purchase, recovery. Tag the highlights and watch organic drop — that proves it. It stops being a blind bucket and becomes data.
92
+ - **UTM per channel:** ad (template with a dynamic parameter), bio, story, highlight, DM, feed, recovery. Lowercase, no accents, a fixed pattern forever.
93
+ - **What breaks tracking:** a shortener that doesn't pass the parameter through, a cloaker with no UTM support, a script outside the `<head>`.
94
+ - **A test purchase through every path before scaling.**
95
95
 
96
- ### 6A.7 Encanamento: Instagram + Página + BM
96
+ ### 6A.7 Plumbing: Instagram + Page + Business Manager
97
97
 
98
- **O erro que mata a operação:** deixar marcado "usar a Página para representar sua empresa no Instagram". O @ do anúncio não leva a perfil nenhum — você gera a desconfiança e não dá para onde ela ir.
98
+ **The mistake that kills the operation:** leaving "use the Page to represent your business on Instagram" checked. The ad's @ handle doesn't lead to any profile — you create the distrust and give it nowhere to go.
99
99
 
100
- Setup correto:
100
+ Correct setup:
101
101
 
102
- 1. Conta profissional tipo **Empresa**, não Criador.
103
- 2. Página completa, com você como admin.
104
- 3. Vincular pelo Instagram, pela Página ou pela Central de Contas.
105
- 4. Na BM: Página, Instagram, conta de anúncios, pixel, domínio.
106
- 5. Domínio verificado, 8 eventos priorizados, CAPI ligada.
107
- 6. Identidade definida no nível do anúncio.
108
- 7. Validar na prévia de Stories e Reels.
102
+ 1. A professional **Business** account, not Creator.
103
+ 2. A complete Page, with you as admin.
104
+ 3. Link it through Instagram, through the Page, or through Accounts Center.
105
+ 4. In the Business Manager: Page, Instagram, ad account, pixel, domain.
106
+ 5. Domain verified, 8 priority events, CAPI turned on.
107
+ 6. Identity set at the ad level.
108
+ 7. Validate in the Stories and Reels preview.
109
109
 
110
- **Posicionamentos:** Stories, Reels, Feed e Explorar ativos. Cortar Instagram para baixar CPM entrega clique barato e operação pobre.
110
+ **Placements:** Stories, Reels, Feed and Explore all active. Cutting Instagram to lower CPM delivers a cheap click and a poor operation.
111
111
 
112
- **Travamentos comuns:** IG não aparece na identidade (falta adicionar na BM); "já conectada a outra Página" (desvincular na antiga); conta de Criador (trocar para Empresa).
112
+ **Common blockers:** IG doesn't show up in the identity (needs to be added in the Business Manager); "already connected to another Page" (unlink it from the old one); a Creator account (switch to Business).
113
113
 
114
- **Segurança:** 2FA no Instagram, no Facebook e na BM. Admin reserva em outra conta. E-mail da operação, nunca o pessoal.
114
+ **Security:** 2FA on Instagram, on Facebook and on the Business Manager. A backup admin on another account. A business email, never the personal one.
115
115
 
116
- ### 6A.8 Ofertas, ângulos e perfis
116
+ ### 6A.8 Offers, angles and profiles
117
117
 
118
- > **O expert em si mudou para a [`09-especialista-coproducao.md`](09-especialista-coproducao.md)**, junto com co-produção. O que fica aqui é o que é decisão de perfil de Instagram.
118
+ > **The expert topic itself moved to [`09-especialista-coproducao.md`](09-especialista-coproducao.md)**, along with co-production. What stays here is what's an Instagram-profile decision.
119
119
 
120
- **Criação de oferta: nunca uma, sempre cinco ao mesmo tempo.** O objetivo é acertar uma que escale. Recomendação da aula: uma oferta principal com ~10 entregáveis comuns e ofertas secundárias variando por sub-nicho ou ângulo.
120
+ **Creating an offer: never just one, always five at the same time.** The goal is to land one that scales. The lesson's recommendation: one main offer with ~10 common deliverables and secondary offers varying by sub-niche or angle.
121
121
 
122
- **Ângulos = mesma oferta, público diferente.** Trocar o ângulo ressuscita oferta morta. Exemplo da aula: ângulo 1 já escalou (+500k); ângulo 2 deu lucro de 4.500 em 1 mês e 6 dias. "Não vale meu tempo" ≠ "não dá dinheiro".
122
+ **Angles = same offer, different audience.** Changing the angle revives a dead offer. Example from the lesson: angle 1 already scaled (+500k); angle 2 produced a profit of 4,500 in 1 month and 6 days. "Not worth my time" ≠ "doesn't make money."
123
123
 
124
- **Quantos perfis eu preciso?**
124
+ **How many profiles do I need?**
125
125
 
126
- - Ângulos da mesma oferta → mesmo perfil.
127
- - Ofertas diferentes → perfis separados.
128
- - Experts diferentes → perfis separados.
126
+ - Angles of the same offer → same profile.
127
+ - Different offers → separate profiles.
128
+ - Different experts → separate profiles.
129
129
 
130
- ### 6A.9 Ler o funil: persiga venda cara, não CPA baixo
130
+ ### 6A.9 Reading the funnel: chase the expensive sale, not the low CPA
131
131
 
132
- Exemplos numéricos da aula:
132
+ Numeric examples from the lesson:
133
133
 
134
- - **Connect rate:** perda de 25% num WordPress antigo; ganho de +12% migrando para builder novo. Nem todo furo vale tapar, mas tem que ser escolha, não ignorância.
135
- - **Página com VSL x sem VSL:** com VSL 75→32; sem VSL 87→35. (Sem VSL entrega mais gente na página e converte parecido no fim.)
136
- - **Recorrência distorce o funil:** vendas iniciadas aparecem acima do checkout iniciado, porque parte das pessoas vai direto para o checkout.
134
+ - **Connect rate:** a 25% loss on an old WordPress site; a +12% gain from migrating to a new builder. Not every leak is worth plugging, but it has to be a choice, not ignorance.
135
+ - **Page with VSL vs. without VSL:** with VSL 75→32; without VSL 87→35. (No VSL delivers more people to the page and converts about the same at the end.)
136
+ - **Recurrence distorts the funnel:** sales initiated show up above checkout initiated, because some people go straight to checkout.
137
137
 
138
- **A leitura mais importante:**
138
+ **The most important takeaway:**
139
139
 
140
- | | Ângulo 1 | Ângulo 2 |
140
+ | | Angle 1 | Angle 2 |
141
141
  |---|---|---|
142
- | CPA | R$ 7,42 | R$ 5,18 |
143
- | RPU | — | R$ 8,37 |
142
+ | CPA | R$7.42 | R$5.18 |
143
+ | RPU | — | R$8.37 |
144
144
 
145
- O CPA mais barato é o que tem o **ROI pior**: o ângulo 2 converte muito, mas atrai gente que paga barato. Só mudando o ângulo, o ticket subiu +R$10.
145
+ The cheaper CPA is the one with the **worse ROI**: angle 2 converts a lot, but it attracts people who pay less. Just by changing the angle, the ticket went up +R$10.
146
146
 
147
- > **REGRA: persiga venda cara, não CPA baixo.**
147
+ > **RULE: chase the expensive sale, not the low CPA.**
@@ -1,79 +1,79 @@
1
- ## 6-B. Player de VSL customizado — as duas especificações
1
+ ## 6-B. Custom VSL player — the two specifications
2
2
 
3
- > Shard da metodologia desta base. Índice: [`INDEX.md`](INDEX.md) · Sempre carregado junto: [`guardrails.md`](guardrails.md)
4
- > Onde a skill genérica contradisser este shard, **o shard vence**, e isso deve ser dito na resposta.
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
4
+ > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
- **O que tem aqui:** `6B.1` especificação de player próprio estilo VTurb · `6B.2` especificação para substituir o embed do YouTube · `6B.3` o que cada especificação resolve
7
- **Irmão:** anatomia da página e connect rate em [`06-pagina-vendas.md`](06-pagina-vendas.md)
6
+ **What's here:** `6B.1` spec for a VTurb-style custom player · `6B.2` spec for replacing the YouTube embed · `6B.3` what each spec solves
7
+ **Sibling:** page anatomy and connect rate in [`06-pagina-vendas.md`](06-pagina-vendas.md)
8
8
 
9
9
 
10
- §6.3 e §6.4 de [`06-pagina-vendas.md`](06-pagina-vendas.md) já dizem **que** se usa capa estática e player customizado no lugar do embed padrão — "capa estática no lugar do player, que vira o LCP" e "player de vídeo customizado sobre YouTube, com controles parecidos com os do VTurb". Este shard traz as duas especificações operacionais que dizem **como**.
10
+ §6.3 and §6.4 of [`06-pagina-vendas.md`](06-pagina-vendas.md) already say **that** a static cover and a custom player are used instead of the default embed — "a static cover in place of the player, which becomes the LCP" and "a custom video player built on top of YouTube, with controls similar to VTurb's." This shard brings the two operational specifications that say **how**.
11
11
 
12
- ### 6B.1 Especificação: player próprio, estilo VTurb
12
+ ### 6B.1 Specification: a custom player, VTurb-style
13
13
 
14
- Cobre: posição do player logo abaixo da headline sem conteúdo intermediário, autoplay mudo, aviso "Clique para ouvir", barra de progresso não clicável, ocultar a duração, bloquear pause/seek, responsivo, animação de pulsar no botão de som, pausar ao sair da tela e retomar ao voltar.
14
+ Covers: the player positioned right below the headline with no content in between, muted autoplay, a "Click to listen" notice, a non-clickable progress bar, hiding the duration, blocking pause/seek, responsive, a pulsing animation on the sound button, pausing when it leaves the screen and resuming when it comes back.
15
15
 
16
- > **Regra adotada (2026-09-04, decisão do dono da operação).** A barra adiantada fica: é o comportamento padrão de player de VSL no nicho, não viola termo de plataforma nenhum e não põe a conta em risco. A especificação vale inteira, item 10 incluído. Registrado em [Ponto em aberto 33](pontos-em-aberto.md) porque é padrão escuro assumido, não porque esteja proibido.
16
+ > **Rule adopted (2026-09-04, operation owner's decision).** The advanced progress bar stays: it's standard VSL player behavior in the niche, doesn't violate any platform terms, and doesn't put the account at risk. The full spec applies, item 10 included. Recorded in [Open item 33](pontos-em-aberto.md) because it's an accepted dark pattern, not because it's prohibited.
17
17
 
18
- O player recebe a URL do vídeo (hospedado externamente) como parâmetro de entrada e usa essa URL como fonte. Ele fica posicionado imediatamente após a headline principal da página, sem nenhum conteúdo intermediário: headline principal → player da VSL → restante da página. A partir daí, valem estes requisitos de design e comportamento:
18
+ The player receives the video URL (hosted externally) as an input parameter and uses that URL as its source. It sits immediately after the page's main headline, with no content in between: main headline → VSL player → rest of the page. From there, these design and behavior requirements apply:
19
19
 
20
- 1. O vídeo inicia automaticamente mudo (autoplay muted).
21
- 2. O canto superior do player mostra o texto "Clique para ouvir" junto com um ícone de som/mudo.
22
- 3. Ao clicar no botão, o áudio é ativado e o aviso desaparece.
23
- 4. A parte inferior do player tem uma barra de progresso estilo cronômetro, minimalista, que avança conforme o vídeo, não aceita clique nem arraste (só visual) e usa as cores principais do site.
24
- 5. A duração total do vídeo fica totalmente oculta (nenhum tempo total é mostrado).
25
- 6. O player bloqueia qualquer pausa ou avanço: sem botão de pause, sem botão de avançar, timeline não clicável.
26
- 7. Visual limpo, minimalista, sem distrações.
27
- 8. Player totalmente responsivo: mobile, tablet e desktop.
28
- 9. O botão "Clique para ouvir" tem animação leve (pulsar/fade) para incentivar o clique.
29
- 10. Barra de progresso, comportamento simulado (especificação técnica, não é 1:1 com `currentTime`/`duration`): calcula-se um progresso visual `P_vis` que tende a ficar adiantado em relação ao progresso real do vídeo, para dar a sensação de que ele "avança rápido e está quase terminando", sem chegar a mentir por completo sobre quanto falta. Implementação de referência:
30
- - `t_real` = tempo atual do vídeo (`video.currentTime`); `d` = duração total (`video.duration`).
31
- - `leadFactor` inicial entre 1.05 e 1.25 (fator que faz o progresso visual andar mais rápido que o real) — por exemplo, 1.15.
32
- - `P_target = clamp((t_real * leadFactor) / d, 0, 0.95)`, ou seja, nunca deixar `P_target` chegar a 0.95 cedo demais.
33
- - Inserir de 1 a 3 pausas/plateaus curtos e aleatórios em `P_vis` (200 a 800ms cada) para reforçar a sensação de "quase lá, mas ainda não".
34
- - Quando `t_real` atinge `d * 0.9` (últimos 10% do vídeo), remover o limite e fazer um catch-up suave: interpolar `P_vis` até 1.0 sincronizando com os segundos reais restantes (ease-out rápido), garantindo que a barra chegue a 100% perto do fim real do vídeo.
35
- - Nunca mostrar 100% antes do vídeo terminar de fato.
36
- - O movimento da barra usa easing suave (ex.: `cubic-bezier(.2,.9,.2,1)`) para evitar saltos bruscos.
37
- - As cores da barra usam as cores principais do site, expostas como variáveis CSS para facilitar customização.
38
- - A barra é só indicativa: não é interativa, não mostra tempo, não permite seek.
39
- 11. Se o usuário rolar a página para baixo e o player sair parcial ou totalmente da tela, o vídeo pausa automaticamente.
40
- 12. Quando o scroll trouxer o player de volta à área visível, o vídeo pode retomar automaticamente do ponto onde parou.
41
- 13. O player fica logo abaixo da headline principal, com estrutura limpa e focada em conversão.
20
+ 1. The video starts automatically, muted (autoplay muted).
21
+ 2. The player's top corner shows the text "Clique para ouvir" (Click to listen) along with a sound/mute icon.
22
+ 3. Clicking the button turns on the audio and the notice disappears.
23
+ 4. The bottom of the player has a minimalist, timer-style progress bar that advances with the video, doesn't accept clicks or dragging (visual only), and uses the site's main colors.
24
+ 5. The video's total duration stays fully hidden (no total time shown).
25
+ 6. The player blocks any pause or skip: no pause button, no forward button, non-clickable timeline.
26
+ 7. Clean, minimalist visuals, no distractions.
27
+ 8. Fully responsive player: mobile, tablet and desktop.
28
+ 9. The "Clique para ouvir" (Click to listen) button has a light animation (pulse/fade) to encourage the click.
29
+ 10. Progress bar, simulated behavior (technical spec, not 1:1 with `currentTime`/`duration`): calculate a visual progress `P_vis` that tends to run ahead of the video's real progress, to give the feeling that it's "moving fast and almost done," without fully lying about how much is left. Reference implementation:
30
+ - `t_real` = the video's current time (`video.currentTime`); `d` = total duration (`video.duration`).
31
+ - initial `leadFactor` between 1.05 and 1.25 (a factor that makes the visual progress run faster than the real one) — e.g., 1.15.
32
+ - `P_target = clamp((t_real * leadFactor) / d, 0, 0.95)`, i.e., never let `P_target` reach 0.95 too early.
33
+ - Insert 1 to 3 short, random pauses/plateaus in `P_vis` (200 to 800ms each) to reinforce the feeling of "almost there, but not yet."
34
+ - When `t_real` reaches `d * 0.9` (the last 10% of the video), remove the cap and do a smooth catch-up: interpolate `P_vis` to 1.0 syncing with the real remaining seconds (a fast ease-out), ensuring the bar reaches 100% near the video's actual end.
35
+ - Never show 100% before the video has actually finished.
36
+ - The bar's movement uses smooth easing (e.g. `cubic-bezier(.2,.9,.2,1)`) to avoid abrupt jumps.
37
+ - The bar's colors use the site's main colors, exposed as CSS variables for easy customization.
38
+ - The bar is purely indicative: not interactive, shows no time, allows no seeking.
39
+ 11. If the user scrolls down and the player leaves the screen partially or fully, the video pauses automatically.
40
+ 12. When scrolling brings the player back into view, the video can resume automatically from where it left off.
41
+ 13. The player sits right below the main headline, with a clean structure focused on conversion.
42
42
 
43
- Entregável: código completo em HTML, CSS e JavaScript implementando este player totalmente customizado, usando a URL do vídeo informada como fonte.
43
+ Deliverable: complete HTML, CSS and JavaScript code implementing this fully custom player, using the given video URL as the source.
44
44
 
45
- ### 6B.2 Especificação: substituir o embed do YouTube
45
+ ### 6B.2 Specification: replacing the YouTube embed
46
46
 
47
- Cobre: thumbnail `https://img.youtube.com/vi/{VIDEO_ID}/maxresdefault.jpg` como estado inicial, troca para iframe com autoplay ao clicar, overlay com cor de destaque a 50% de opacidade, textos "Seu vídeo já começou" e "Clique para ouvir", ícone de alto-falante mutado, animação de pulse, componente client-side, responsivo. Esta especificação **não tem** bloqueio: é a implementação concreta do que §6.3 já pede (capa estática vira o LCP, script entra na primeira intenção).
47
+ Covers: a `https://img.youtube.com/vi/{VIDEO_ID}/maxresdefault.jpg` thumbnail as the initial state, switching to an iframe with autoplay on click, an overlay with the accent color at 50% opacity, the texts "Seu vídeo já começou" (Your video has already started) and "Clique para ouvir" (Click to listen), a muted speaker icon, a pulse animation, a client-side component, responsive. This specification **has no** dark pattern: it's the concrete implementation of what §6.3 already asks for (a static cover becomes the LCP, the script loads on first intent).
48
48
 
49
- Problema que resolve: o embed padrão do YouTube polui a interface, especialmente no mobile, com elementos indesejados — logo do YouTube, botão "assistir no YouTube", título do vídeo, foto de perfil do canal.
49
+ Problem it solves: the default YouTube embed clutters the interface, especially on mobile, with unwanted elements — the YouTube logo, the "watch on YouTube" button, the video title, the channel's profile photo.
50
50
 
51
- Comportamento:
51
+ Behavior:
52
52
 
53
- - Estado inicial: mostra a thumbnail do vídeo do YouTube como imagem estática (`https://img.youtube.com/vi/{VIDEO_ID}/maxresdefault.jpg`), com um overlay/botão centralizado por cima incentivando o clique.
54
- - Ao clicar: substitui a thumbnail pelo iframe do YouTube com autoplay ativado (`?autoplay=1&rel=0&modestbranding=1&playsinline=1`), reproduzindo o vídeo direto na página.
53
+ - Initial state: shows the YouTube video's thumbnail as a static image (`https://img.youtube.com/vi/{VIDEO_ID}/maxresdefault.jpg`), with a centered overlay/button on top encouraging the click.
54
+ - On click: replaces the thumbnail with the YouTube iframe with autoplay enabled (`?autoplay=1&rel=0&modestbranding=1&playsinline=1`), playing the video directly on the page.
55
55
 
56
- Design do botão overlay:
56
+ Overlay button design:
57
57
 
58
- - Caixa centralizada sobre a thumbnail, com cantos arredondados.
59
- - Cor de fundo: a cor de destaque/accent do site, a 50% de opacidade, para o rosto/thumbnail ficar visível por trás.
60
- - Textos e ícone em preto (ou em cor que contraste com o accent do site).
61
- - Texto superior: "Seu vídeo já começou".
62
- - Ícone central: alto-falante mutado (ondas sonoras com linha diagonal cortando).
63
- - Texto inferior: "Clique para ouvir".
64
- - Tamanho compacto: não domina a thumbnail, só chama atenção.
65
- - Animação de pulse infinita: o botão pulsa suavemente (cerca de 6% de scale, mais intensificação do glow/shadow) em loop de 2 segundos.
66
- - Efeito hover: leve scale up adicional.
58
+ - A centered box over the thumbnail, with rounded corners.
59
+ - Background color: the site's accent color, at 50% opacity, so the face/thumbnail stays visible behind it.
60
+ - Text and icon in black (or a color that contrasts with the site's accent).
61
+ - Top text: "Seu vídeo já começou" (Your video has already started).
62
+ - Center icon: a muted speaker (sound waves with a diagonal line through them).
63
+ - Bottom text: "Clique para ouvir" (Click to listen).
64
+ - Compact size: doesn't dominate the thumbnail, just draws attention.
65
+ - Infinite pulse animation: the button pulses gently (about 6% scale, plus intensified glow/shadow) in a 2-second loop.
66
+ - Hover effect: a slight additional scale-up.
67
67
 
68
- Requisitos técnicos:
68
+ Technical requirements:
69
69
 
70
- - Componente client-side (`'use client'`) com estado para alternar entre thumbnail e iframe.
71
- - Responsivo: tamanhos menores no mobile, maiores no desktop.
72
- - Overlay escuro sutil (`bg-black/25`) sobre a thumbnail inteira, para dar profundidade antes do botão.
70
+ - A client-side component (`'use client'`) with state to toggle between the thumbnail and the iframe.
71
+ - Responsive: smaller sizes on mobile, larger on desktop.
72
+ - A subtle dark overlay (`bg-black/25`) over the whole thumbnail, to add depth before the button.
73
73
 
74
- ### 6B.3 O que cada especificação resolve
74
+ ### 6B.3 What each specification solves
75
75
 
76
- | Especificação | Resolve |
76
+ | Specification | Solves |
77
77
  |---|---|
78
- | 6B.1 (player próprio) | controle da sessão de visualização — autoplay mudo, sem pause/seek, retomar ao voltar à tela |
79
- | 6B.2 (substituir embed) | performance e limpeza visual no mobile — o embed padrão do YouTube polui com logo, título, foto do canal e botão "assistir no YouTube" |
78
+ | 6B.1 (custom player) | control over the viewing session — muted autoplay, no pause/seek, resume when back on screen |
79
+ | 6B.2 (replacing the embed) | performance and visual cleanliness on mobile — the default YouTube embed clutters things with the logo, title, channel photo and "watch on YouTube" button |