wizz-method 2.2.0 → 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 (198) 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/core-skills/_shared/handoff-protocol.md +72 -71
  11. package/src/core-skills/wizz-review-adversarial-general/SKILL.md +1 -1
  12. package/src/modules/lowticket/skills/wizz-lowticket-funil/references/copy-das-paginas.md +39 -39
  13. package/src/modules/lowticket/skills/wizz-lowticket-funil/references/mapa-do-funil.md +23 -23
  14. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/CATALOGO.md +72 -72
  15. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/01-principios.md +10 -10
  16. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/02-diagnostico-funil.md +50 -50
  17. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/03-campanha-bidcap.md +68 -68
  18. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04-criativos.md +44 -44
  19. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04a-criativos-ia.md +77 -77
  20. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04b-criativos-formatos.md +121 -121
  21. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/05-oferta.md +35 -35
  22. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06-pagina-vendas.md +122 -122
  23. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06a-instagram.md +93 -93
  24. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06b-player-vsl.md +57 -57
  25. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07-funil-upsell.md +83 -83
  26. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07a-copy-humanizacao.md +61 -61
  27. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/08-pesquisa-publico.md +11 -11
  28. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/09-especialista-coproducao.md +26 -26
  29. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/10-levantar-caixa.md +29 -29
  30. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/11-checklist-roi.md +22 -22
  31. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12-mineracao-ofertas.md +80 -80
  32. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12a-mineracao-veredito.md +72 -72
  33. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12b-fabrica-de-ofertas.md +63 -63
  34. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12c-anatomia-low-ticket.md +71 -71
  35. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/13-benchmarks-vsl.md +6 -6
  36. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/14-vocabulario.md +53 -51
  37. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/15-como-estender.md +26 -26
  38. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/17-rastreamento.md +76 -76
  39. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/18-copy-desejo-oferta.md +149 -149
  40. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/INDEX.md +45 -45
  41. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/guardrails.md +45 -45
  42. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/pontos-em-aberto.md +64 -66
  43. package/src/modules/lowticket/skills/wizz-lowticket-minerador/references/rubrica.md +63 -63
  44. package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/metas-e-medicao.md +23 -23
  45. package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/padroes-de-codigo.md +50 -50
  46. package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/formato-do-diagnostico.md +9 -9
  47. package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/reguas.md +42 -42
  48. package/src/modules/wizz/README.md +27 -27
  49. package/src/modules/wizz/_shared/cerebro.md +37 -37
  50. package/src/modules/wizz/_shared/communication-rules.md +15 -15
  51. package/src/modules/wizz/_shared/despacho-barato.md +6 -6
  52. package/src/modules/wizz/_shared/encerramento.md +23 -23
  53. package/src/modules/wizz/_shared/model-ladder.md +29 -29
  54. package/src/modules/wizz/_shared/planning-gate.md +30 -30
  55. package/src/modules/wizz/_shared/token-economy.md +28 -28
  56. package/src/modules/wizz/_shared/video-pipeline.md +42 -42
  57. package/src/modules/wizz/agents/wizz-ads/SKILL.md +16 -16
  58. package/src/modules/wizz/agents/wizz-ads/customize.toml +21 -21
  59. package/src/modules/wizz/agents/wizz-copy/SKILL.md +18 -18
  60. package/src/modules/wizz/agents/wizz-copy/customize.toml +24 -24
  61. package/src/modules/wizz/agents/wizz-designer/SKILL.md +24 -24
  62. package/src/modules/wizz/agents/wizz-designer/customize.toml +29 -29
  63. package/src/modules/wizz/agents/wizz-growth/SKILL.md +20 -20
  64. package/src/modules/wizz/agents/wizz-growth/customize.toml +34 -34
  65. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +63 -63
  66. package/src/modules/wizz/agents/wizz-maestro/customize.toml +38 -38
  67. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +19 -19
  68. package/src/modules/wizz/agents/wizz-memoria/customize.toml +24 -24
  69. package/src/modules/wizz/agents/wizz-qa/SKILL.md +22 -22
  70. package/src/modules/wizz/agents/wizz-qa/customize.toml +29 -29
  71. package/src/modules/wizz/agents/wizz-seo/SKILL.md +19 -19
  72. package/src/modules/wizz/agents/wizz-seo/customize.toml +27 -27
  73. package/src/modules/wizz/agents/wizz-social/SKILL.md +53 -53
  74. package/src/modules/wizz/agents/wizz-social/customize.toml +37 -37
  75. package/src/modules/wizz/agents/wizz-social/knowledge/analise-imagem-referencia.md +20 -20
  76. package/src/modules/wizz/agents/wizz-social/knowledge/biblioteca-prompts-imagem.md +71 -71
  77. package/src/modules/wizz/agents/wizz-social/knowledge/blueprint-roteiro-viral.md +196 -196
  78. package/src/modules/wizz/agents/wizz-social/knowledge/legenda-instagram.md +32 -32
  79. package/src/modules/wizz/agents/wizz-social/knowledge/prompts-imagem-video.md +48 -48
  80. package/src/modules/wizz/module.yaml +28 -28
  81. package/src/modules/wizz/overrides/wizz-agent-analyst.toml +17 -17
  82. package/src/modules/wizz/overrides/wizz-agent-architect.toml +21 -21
  83. package/src/modules/wizz/overrides/wizz-agent-dev.toml +20 -20
  84. package/src/modules/wizz/overrides/wizz-agent-pm.toml +11 -11
  85. package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +14 -14
  86. package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +14 -14
  87. package/src/modules/wizz/subagents/codex/wizz-exec-haiku.toml +17 -17
  88. package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +19 -19
  89. package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +18 -18
  90. package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +18 -18
  91. package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +17 -17
  92. package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +19 -19
  93. package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +18 -18
  94. package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +18 -18
  95. package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +17 -17
  96. package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +19 -19
  97. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +18 -18
  98. package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +18 -18
  99. package/src/modules/wizz/subagents/spec.yaml +84 -83
  100. package/src/modules/wizz/subagents/wizz-exec-haiku.md +17 -17
  101. package/src/modules/wizz/subagents/wizz-exec-opus.md +19 -19
  102. package/src/modules/wizz/subagents/wizz-exec-review.md +18 -18
  103. package/src/modules/wizz/subagents/wizz-exec-sonnet.md +18 -18
  104. package/src/skills-lib/cerebro/SKILL.md +61 -61
  105. package/src/skills-lib/cerebro/references/comandos-pesquisa-e-memoria.md +46 -46
  106. package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +65 -65
  107. package/src/skills-lib/cerebro/references/comandos-sessao.md +74 -74
  108. package/src/skills-lib/ctc-align/SKILL.md +37 -37
  109. package/src/skills-lib/find-skills/SKILL.md +19 -19
  110. package/src/skills-lib/pesquisa-de-publico-do-piva/README.md +33 -33
  111. package/src/skills-lib/pesquisa-de-publico-do-piva/SKILL.md +42 -42
  112. package/src/skills-lib/pesquisa-de-publico-do-piva/prompts.md +20 -20
  113. package/src/skills-lib/references/premium-agency-rules.md +63 -63
  114. package/src/skills-lib/security-audit-pentest/SKILL.md +31 -31
  115. package/src/skills-lib/security-audit-pentest/references/stage-1-validacao-entrada.md +37 -37
  116. package/src/skills-lib/security-audit-pentest/references/stage-2-autorizacao.md +61 -61
  117. package/src/skills-lib/security-audit-pentest/references/stage-3-abuso-volume.md +37 -37
  118. package/src/skills-lib/security-audit-pentest/references/stage-4-vazamento-resposta.md +52 -52
  119. package/src/skills-lib/site-launch-kit/SKILL.md +42 -42
  120. package/src/skills-lib/site-launch-kit/references/01-cta-principal.md +20 -20
  121. package/src/skills-lib/site-launch-kit/references/02-barra-fixa-mobile.md +24 -24
  122. package/src/skills-lib/site-launch-kit/references/03-tempo-de-resposta.md +21 -21
  123. package/src/skills-lib/site-launch-kit/references/04-prova-social.md +22 -22
  124. package/src/skills-lib/site-launch-kit/references/05-faq-decisao.md +28 -28
  125. package/src/skills-lib/site-launch-kit/references/06-imagens-reais.md +27 -27
  126. package/src/skills-lib/site-launch-kit/references/07-endereco-como-chegar.md +25 -25
  127. package/src/skills-lib/site-launch-kit/references/08-titles.md +30 -30
  128. package/src/skills-lib/site-launch-kit/references/09-open-graph.md +23 -23
  129. package/src/skills-lib/site-launch-kit/references/10-breadcrumbs.md +23 -23
  130. package/src/skills-lib/site-launch-kit/references/11-alt-text.md +28 -28
  131. package/src/skills-lib/site-launch-kit/references/12-schema-local.md +22 -22
  132. package/src/skills-lib/site-launch-kit/references/13-robots-sitemap.md +26 -26
  133. package/src/skills-lib/site-launch-kit/references/14-privacidade-termos.md +27 -27
  134. package/src/skills-lib/site-launch-kit/references/15-medicao.md +23 -23
  135. package/src/skills-lib/wizz-ai-product-design/SKILL.md +70 -70
  136. package/src/skills-lib/wizz-auth-and-secrets/SKILL.md +78 -78
  137. package/src/skills-lib/wizz-caching-and-queues/SKILL.md +40 -40
  138. package/src/skills-lib/wizz-cloud-and-infra/SKILL.md +22 -22
  139. package/src/skills-lib/wizz-database-and-deps/SKILL.md +52 -52
  140. package/src/skills-lib/wizz-database-scaling/SKILL.md +31 -31
  141. package/src/skills-lib/wizz-desktop-security/SKILL.md +49 -49
  142. package/src/skills-lib/wizz-implementation-planner/SKILL.md +56 -56
  143. package/src/skills-lib/wizz-implementation-planner/references/folder-structure-and-dependencies.md +14 -14
  144. package/src/skills-lib/wizz-implementation-planner/references/implementation-phases.md +15 -15
  145. package/src/skills-lib/wizz-implementation-planner/references/implementation-types.md +9 -9
  146. package/src/skills-lib/wizz-implementation-planner/references/motion-path-implementation.md +19 -19
  147. package/src/skills-lib/wizz-implementation-planner/references/performance-plan.md +27 -27
  148. package/src/skills-lib/wizz-infrastructure/SKILL.md +21 -21
  149. package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +63 -63
  150. package/src/skills-lib/wizz-inicio-de-projeto/references/implementacao-api-forms.md +27 -27
  151. package/src/skills-lib/wizz-inicio-de-projeto/references/padroes-arquiteturais-e-pastas.md +31 -31
  152. package/src/skills-lib/wizz-inicio-de-projeto/references/seguranca-e-regras-codigo.md +21 -21
  153. package/src/skills-lib/wizz-launch-readiness/SKILL.md +61 -61
  154. package/src/skills-lib/wizz-launch-readiness/references/01-tecnico-build.md +16 -16
  155. package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +16 -16
  156. package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +16 -16
  157. package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +15 -15
  158. package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +15 -15
  159. package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +15 -15
  160. package/src/skills-lib/wizz-launch-readiness/references/07-infra-deploy-rollback.md +16 -16
  161. package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +19 -19
  162. package/src/skills-lib/wizz-launch-readiness/references/09-persistencia-project-context.md +26 -26
  163. package/src/skills-lib/wizz-motion-3d-director/SKILL.md +70 -70
  164. package/src/skills-lib/wizz-motion-3d-director/references/image-to-video-workflow.md +34 -35
  165. package/src/skills-lib/wizz-motion-3d-director/references/motion-paths.md +70 -70
  166. package/src/skills-lib/wizz-motion-3d-director/references/performance-and-handoff.md +17 -17
  167. package/src/skills-lib/wizz-offer-forge/README.md +9 -9
  168. package/src/skills-lib/wizz-offer-forge/SKILL.md +64 -64
  169. package/src/skills-lib/wizz-offer-forge/references/empilhamento-valor.md +17 -17
  170. package/src/skills-lib/wizz-offer-forge/references/garantia-reversa.md +16 -16
  171. package/src/skills-lib/wizz-offer-forge/references/mecanismo-unico.md +19 -19
  172. package/src/skills-lib/wizz-offer-forge/references/ponte-trafego.md +17 -17
  173. package/src/skills-lib/wizz-premium-landing-ui-researcher/SKILL.md +36 -36
  174. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/audit-protocol.md +81 -82
  175. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/component-sources.md +105 -105
  176. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/core-goal.md +39 -39
  177. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/dashboard-and-portfolio-modes.md +49 -50
  178. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/handoffs.md +33 -34
  179. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/landing-page-strategy.md +141 -142
  180. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/mandatory-process.md +24 -24
  181. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/output-format-and-quality.md +73 -73
  182. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/prompt-templates.md +4 -4
  183. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/site-levels.md +282 -283
  184. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-first-protocol.md +39 -39
  185. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-links.md +8 -8
  186. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/stack-and-visual-direction.md +63 -64
  187. package/src/skills-lib/wizz-router/SKILL.md +38 -38
  188. package/src/skills-lib/wizz-router/references/auditoria-360.md +12 -12
  189. package/src/skills-lib/wizz-router/references/routing-table-flat.md +80 -80
  190. package/src/skills-lib/wizz-tracking-audit/SKILL.md +48 -48
  191. package/src/skills-lib/wizz-tracking-audit/references/modo-diagnostico.md +43 -43
  192. package/src/skills-lib/wizz-tracking-audit/references/modo-implantacao.md +59 -59
  193. package/src/skills-lib/wizz-tracking-audit/references/utm-e-atribuicao.md +35 -35
  194. package/src/skills-lib/wizz-web-security/SKILL.md +35 -35
  195. package/src/skills-lib/wizz-web-security/references/checklist-deploy.md +50 -50
  196. package/src/skills-lib/wizz-web-security/references/headers-rate-limit-cors.md +33 -33
  197. package/src/skills-lib/wizz-web-security/references/owasp-top5-detalhado.md +36 -36
  198. package/tools/hooks/session-rules.js +14 -11
@@ -1,42 +1,42 @@
1
- # Rodada 08 · Title próprio por página
1
+ # Round 08 · Unique title per page
2
2
 
3
- **Garante:** cada página com title próprio, descritivo e único.
4
- **Rode quando:** o site tiver mais de uma rota pública.
3
+ **Ensures:** every page has its own descriptive, unique title.
4
+ **Run when:** the site has more than one public route.
5
5
 
6
- Você é um especialista em SEO técnico com acesso ao repositório deste site. Sua única tarefa nesta rodada: garantir que cada página tenha um title próprio, descritivo e único.
6
+ You are a technical SEO specialist with access to this site's repository. Your only task in this round: make sure every page has its own descriptive, unique title.
7
7
 
8
- Antes de editar, detecte o terreno: framework e roteamento, onde os metadados são definidos (metadata do Next, react-helmet, tags no HTML, CMS) e se existe um title herdado do layout.
8
+ Before editing, scan the terrain: framework and routing, where metadata is defined (Next's metadata, react-helmet, tags in the HTML, CMS), and whether there's a title inherited from the layout.
9
9
 
10
- NÃO mude conteúdo de página, H1 ou URL. Esta rodada é só de title.
10
+ DO NOT change page content, the H1, or the URL. This round is title-only.
11
11
 
12
- 1. LEVANTE
13
- Enumere TODA rota pública, inclusive páginas dinâmicas (produto, post, serviço) e as que só existem no build. Para cada uma, registre o title atual. Marque:
14
- - vazio ou ausente;
15
- - repetido em duas ou mais rotas;
16
- - genérico ("Home", "Página inicial", "Untitled", nome do framework);
17
- - herdado do layout sem sobrescrita;
18
- - acima de 60 caracteres (será cortado no resultado de busca) ou abaixo de 20 (está desperdiçando espaço).
12
+ 1. SURVEY
13
+ Enumerate EVERY public route, including dynamic pages (product, post, service) and ones that only exist at build time. For each one, record the current title. Flag:
14
+ - empty or missing;
15
+ - repeated across two or more routes;
16
+ - generic ("Home", "Página inicial", "Untitled", the framework's name);
17
+ - inherited from the layout with no override;
18
+ - above 60 characters (will get truncated in search results) or below 20 (wasting space).
19
19
 
20
- 2. ESCREVA OS NOVOS
21
- Padrão: [o que a pessoa procura] + [diferencial ou lugar] + [marca].
22
- - A palavra que a pessoa digita vem no começo, não no fim.
23
- - Entre 50 e 60 caracteres, contando os separadores.
24
- - Marca por último, só se couber; na home, a marca pode vir primeiro.
25
- - Sem enfeite: "|", "-" ou "·" como separador, e só um deles.
26
- - Sem repetir a mesma palavra três vezes.
27
- - Negócio local: inclua a cidade quando ela fizer parte da busca.
28
- Para rota dinâmica, escreva o template e mostre dois exemplos reais renderizados, com a contagem de caracteres de cada um.
20
+ 2. WRITE THE NEW ONES
21
+ Pattern: [what the person is searching for] + [differentiator or location] + [brand].
22
+ - The word the person types comes first, not last.
23
+ - Between 50 and 60 characters, counting separators.
24
+ - Brand last, only if it fits; on the home page, the brand can come first.
25
+ - No decoration: "|", "-" or "·" as a separator, and only one of them.
26
+ - Don't repeat the same word three times.
27
+ - Local business: include the city when it's part of the search.
28
+ For a dynamic route, write the template and show two real rendered examples, with each one's character count.
29
29
 
30
- 3. IMPLEMENTE
31
- Um lugar só define o title de cada página, no mecanismo nativo do framework. Se houver título padrão de layout, ele fica apenas como rede de segurança, e toda página passa a sobrescrevê-lo. Página de obrigado, área logada e páginas de erro também recebem title próprio.
30
+ 3. IMPLEMENT
31
+ A single place defines each page's title, using the framework's native mechanism. If there's a default layout title, it stays only as a safety net, and every page overrides it. The thank-you page, logged-in area, and error pages also get their own title.
32
32
 
33
- 4. CONFIRA
34
- Rode o build e liste os titles renderizados. Nenhum repetido, nenhum vazio, nenhum acima de 60 caracteres.
33
+ 4. VERIFY
34
+ Run the build and list the rendered titles. None repeated, none empty, none above 60 characters.
35
35
 
36
- Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
36
+ Output format: after applying, a markdown table, no text before it:
37
37
 
38
- | Rota | Title antes | Title agora | Caracteres | Problema resolvido |
38
+ | Route | Title before | Title now | Characters | Problem solved |
39
39
 
40
- Em seguida, PENDÊNCIAS com as páginas cujo título depende de decisão de posicionamento (qual palavra priorizar), uma linha por item.
40
+ Then, PENDING ITEMS with the pages whose title depends on a positioning decision (which word to prioritize), one line per item.
41
41
 
42
- REGRA DE CORTE: título que promete o que a página não entrega gera clique e abandono, e isso é pior do que não ser clicado. Descreva a página que existe, não a que você gostaria que existisse.
42
+ CUTOFF RULE: a title that promises what the page doesn't deliver earns a click and an abandonment, and that's worse than not being clicked at all. Describe the page that exists, not the one you wish existed.
@@ -1,35 +1,35 @@
1
- # Rodada 09 · Prévia de link (Open Graph)
1
+ # Round 09 · Link preview (Open Graph)
2
2
 
3
- **Garante:** o link rende prévia decente em qualquer lugar onde for colado.
4
- **Rode quando:** o site tiver domínio de produção definido.
3
+ **Ensures:** the link renders a decent preview wherever it's pasted.
4
+ **Run when:** the site has a production domain defined.
5
5
 
6
- Você é um desenvolvedor front-end responsável pela primeira impressão deste site fora dele. Sua única tarefa nesta rodada: fazer o link render uma prévia decente em qualquer lugar onde for colado.
6
+ You are a front-end developer responsible for this site's first impression outside of itself. Your only task in this round: make the link render a decent preview wherever it's pasted.
7
7
 
8
- Antes de editar, detecte: framework, onde os metadados são definidos, se existe domínio de produção configurado em algum lugar (variável de ambiente, config, sitemap) e se já há alguma imagem de marca no projeto.
8
+ Before editing, detect: framework, where metadata is defined, whether a production domain is already configured somewhere (environment variable, config, sitemap), and whether the project already has any brand image.
9
9
 
10
- NÃO invente domínio. Sem domínio de produção definido, use a variável de ambiente correspondente e registre em PENDÊNCIAS.
10
+ DO NOT invent a domain. Without a defined production domain, use the corresponding environment variable and log it in PENDING ITEMS.
11
11
 
12
- 1. TAGS, EM TODA ROTA PÚBLICA
13
- og:title, og:description, og:url (absoluta), og:type, og:site_name, og:locale (pt_BR), og:image, og:image:width, og:image:height, og:image:alt, twitter:card=summary_large_image, twitter:title, twitter:description, twitter:image.
14
- Regras que decidem se funciona:
15
- - toda URL absoluta, com protocolo e domínio. Caminho relativo é a causa número um de prévia vazia no WhatsApp;
16
- - imagem em 1200x630, JPG ou PNG, abaixo de 1 MB (o WhatsApp corta acima disso; alguns clientes só carregam abaixo de 300 KB);
17
- - sem WebP e sem SVG como og:image: nem toda plataforma lê;
18
- - og:title pode diferir do title da página; aqui ele é chamada, não verbete.
12
+ 1. TAGS, ON EVERY PUBLIC ROUTE
13
+ og:title, og:description, og:url (absolute), og:type, og:site_name, og:locale (pt_BR), og:image, og:image:width, og:image:height, og:image:alt, twitter:card=summary_large_image, twitter:title, twitter:description, twitter:image.
14
+ Rules that decide whether it works:
15
+ - every URL absolute, with protocol and domain. A relative path is the number-one cause of an empty preview on WhatsApp;
16
+ - image at 1200x630, JPG or PNG, under 1 MB (WhatsApp crops above that; some clients only load under 300 KB);
17
+ - no WebP and no SVG as og:image: not every platform reads them;
18
+ - og:title can differ from the page's title; here it's a call to action, not a dictionary entry.
19
19
 
20
- 2. A IMAGEM
21
- Se o framework suportar geração dinâmica de imagem de prévia, gere por rota, com o título da página, o nome da marca e o logotipo existente. Se não suportar, crie uma imagem estática por área do site (home, serviços, blog) com o logotipo e uma frase curta. Texto grande e centralizado, com margem de segurança: o WhatsApp corta as bordas em alguns formatos de conversa.
20
+ 2. THE IMAGE
21
+ If the framework supports dynamic preview-image generation, generate one per route, with the page title, the brand name, and the existing logo. If it doesn't, create one static image per site area (home, services, blog) with the logo and a short phrase. Large, centered text, with a safety margin: WhatsApp crops the edges in some conversation formats.
22
22
 
23
- 3. FAVICON E ÍCONES
24
- De passagem, confira favicon, apple-touch-icon e manifest. Ícone do framework padrão ainda no ar é o mesmo problema, no lugar mais visível.
23
+ 3. FAVICON AND ICONS
24
+ While you're at it, check the favicon, apple-touch-icon, and manifest. The framework's default icon still live is the same problem in the most visible spot.
25
25
 
26
- 4. VALIDE
27
- Liste as URLs de validação e o que conferir em cada uma (validador do Facebook, do LinkedIn, do X, e o teste real: colar o link em uma conversa consigo mesmo no WhatsApp). Explique como forçar a limpeza do cache de prévia depois de corrigir. As plataformas guardam a versão antiga por dias.
26
+ 4. VALIDATE
27
+ List the validation URLs and what to check in each one (Facebook's validator, LinkedIn's, X's, and the real test: paste the link into a conversation with yourself on WhatsApp). Explain how to force the preview cache to clear after fixing it. Platforms keep the old version for days.
28
28
 
29
- Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
29
+ Output format: after applying the changes, a markdown table, with no text before it:
30
30
 
31
- | Rota | og:title | Imagem usada | Dimensão · peso | Absoluta? |
31
+ | Route | og:title | Image used | Dimensions · weight | Absolute? |
32
32
 
33
- Em seguida, PENDÊNCIAS e a lista de validadores.
33
+ Then, PENDING ITEMS and the list of validators.
34
34
 
35
- REGRA DE CORTE: prévia que você não testou colando o link em algum lugar não está pronta. Se não der para testar agora, diga explicitamente o que ficou por validar.
35
+ CUTOFF RULE: a preview you haven't tested by pasting the link somewhere isn't done. If you can't test it now, say explicitly what's left to validate.
@@ -1,35 +1,35 @@
1
- # Rodada 10 · Trilha de navegação
1
+ # Round 10 · Breadcrumb trail
2
2
 
3
- **Garante:** breadcrumbs nas páginas internas, com BreadcrumbList coerente.
4
- **Rode quando:** o site tiver hierarquia de páginas com mais de um nível.
3
+ **Ensures:** breadcrumbs on internal pages, with a consistent BreadcrumbList.
4
+ **Run when:** the site has a page hierarchy with more than one level.
5
5
 
6
- Você é um arquiteto de informação com acesso ao repositório deste site. Sua única tarefa nesta rodada: implementar a trilha de navegação nas páginas internas.
6
+ You are an information architect with access to this site's repository. Your only task in this round: implement the breadcrumb trail on internal pages.
7
7
 
8
- PRIMEIRO, VERIFIQUE SE SE APLICA: se o site for de página única ou tiver todas as rotas no primeiro nível, responda "ITEM NÃO SE APLICA" com uma linha de justificativa e pare. Não invente hierarquia.
8
+ FIRST, CHECK WHETHER IT APPLIES: if the site is single-page or has all routes at the first level, answer "ITEM DOES NOT APPLY" with one line of justification and stop. Do not invent a hierarchy.
9
9
 
10
- NÃO mude URLs. NÃO reorganize o menu. A trilha reflete a hierarquia que existe; se ela estiver errada, você aponta, não conserta aqui.
10
+ DO NOT change URLs. DO NOT reorganize the menu. The trail reflects the hierarchy that exists; if it's wrong, you point it out, you don't fix it here.
11
11
 
12
- 1. HIERARQUIA
13
- Monte a árvore real do site a partir das rotas e da navegação. Aponte as divergências entre a URL e a navegação (a página que mora em /blog/post mas é alcançada pelo menu Serviços). A trilha precisa seguir UMA das duas, e a escolha tem que ser consciente.
12
+ 1. HIERARCHY
13
+ Build the site's actual tree from the routes and the navigation. Point out mismatches between the URL and the navigation (the page that lives at /blog/post but is reached via the Services menu). The trail needs to follow ONE of the two, and the choice has to be deliberate.
14
14
 
15
- 2. COMPONENTE
16
- - <nav aria-label="Trilha de navegação"> com lista ordenada.
17
- - O item atual não é link e leva aria-current="page".
18
- - Início é sempre o primeiro item.
19
- - No mobile, a trilha não pode quebrar em três linhas: encolha os níveis do meio (Início › … › Página atual) mantendo os extremos.
20
- - Nome do nível igual ao que aparece na navegação, não ao slug.
21
- - Sem separador dentro do texto do link: o separador é decorativo e fica em ::after, escondido de leitor de tela.
15
+ 2. COMPONENT
16
+ - <nav aria-label="Trilha de navegação"> with an ordered list.
17
+ - The current item is not a link and carries aria-current="page".
18
+ - Home is always the first item.
19
+ - On mobile, the trail can't wrap to three lines: collapse the middle levels (Início › … › Página atual) while keeping the ends.
20
+ - Level name matches what appears in the navigation, not the slug.
21
+ - No separator inside the link text: the separator is decorative and lives in ::after, hidden from screen readers.
22
22
 
23
- 3. DADOS ESTRUTURADOS
24
- JSON-LD de BreadcrumbList por página, com position começando em 1, os mesmos nomes exibidos na tela e URLs absolutas. O último item pode ficar sem URL. A marcação precisa bater com o que está visível: divergir é violação de diretriz.
23
+ 3. STRUCTURED DATA
24
+ BreadcrumbList JSON-LD per page, with position starting at 1, the same names shown on screen, and absolute URLs. The last item can be left without a URL. The markup must match what's visible: a mismatch is a guideline violation.
25
25
 
26
- 4. ONDE ENTRA
27
- Topo da página, abaixo do cabeçalho e acima do H1. Não entra na home. Página de erro e de obrigado também ficam de fora.
26
+ 4. WHERE IT GOES
27
+ Top of the page, below the header and above the H1. It doesn't go on the home page. Error and thank-you pages are also excluded.
28
28
 
29
- Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
29
+ Output format: after applying the changes, a markdown table, with no text before it:
30
30
 
31
- | Rota | Trilha exibida | JSON-LD? | Divergência encontrada |
31
+ | Route | Trail shown | JSON-LD? | Mismatch found |
32
32
 
33
- Em seguida, a árvore do site em lista indentada, e PENDÊNCIAS com as divergências que precisam de decisão.
33
+ Then, the site tree as an indented list, and PENDING ITEMS with the mismatches that need a decision.
34
34
 
35
- REGRA DE CORTE: trilha que não corresponde à navegação real confunde mais do que ajuda. Se a hierarquia estiver ambígua, implemente o caminho mais usado, e liste a ambiguidade em vez de escondê-la.
35
+ CUTOFF RULE: a trail that doesn't match the real navigation confuses more than it helps. If the hierarchy is ambiguous, implement the most-used path, and list the ambiguity instead of hiding it.
@@ -1,40 +1,40 @@
1
- # Rodada 11 · Texto alternativo correto
1
+ # Round 11 · Correct alt text
2
2
 
3
- **Garante:** cada imagem com o alt certo pela classificação.
4
- **Rode quando:** antes do lançamento, depois que as imagens finais do site estiverem no lugar.
3
+ **Ensures:** every image has the right alt text for its classification.
4
+ **Run when:** before launch, once the site's final images are in place.
5
5
 
6
- Você é um especialista em acessibilidade com acesso ao repositório deste site. Sua única tarefa nesta rodada: dar a cada imagem o texto alternativo correto.
6
+ You are an accessibility specialist with access to this site's repository. Your only task in this round: give every image the correct alt text.
7
7
 
8
- Antes de escrever, olhe as imagens de fato (abra os arquivos) e leia o contexto em que cada uma aparece. Alt escrito a partir do nome do arquivo é o mesmo problema com outra roupa.
8
+ Before writing, actually look at the images (open the files) and read the context each one appears in. Alt text written from the filename is the same problem in different clothes.
9
9
 
10
- NÃO troque, corte ou gere imagens. NÃO escreva "imagem de" nem "foto de" no começo do alt: o leitor de tela já anuncia que é imagem.
10
+ DO NOT swap, crop, or generate images. DO NOT write "image of" or "photo of" at the start of the alt text: the screen reader already announces that it's an image.
11
11
 
12
- 1. INVENTÁRIO E CLASSIFICAÇÃO
13
- Liste toda imagem do projeto (tags img, componentes de imagem, imagem de fundo com conteúdo, SVG inline, ícones) e classifique:
14
- - INFORMATIVA: acrescenta conteúdo;
15
- - DECORATIVA: enfeite, textura, divisor;
16
- - FUNCIONAL: dentro de link ou botão;
17
- - COM TEXTO: tem palavras dentro da imagem;
18
- - COMPLEXA: gráfico, tabela, infográfico.
12
+ 1. INVENTORY AND CLASSIFICATION
13
+ List every image in the project (img tags, image components, background images with content, inline SVG, icons) and classify it:
14
+ - INFORMATIVE: adds content;
15
+ - DECORATIVE: ornament, texture, divider;
16
+ - FUNCTIONAL: inside a link or button;
17
+ - WITH TEXT: has words embedded in the image;
18
+ - COMPLEX: chart, table, infographic.
19
19
 
20
- 2. ESCREVA POR CLASSIFICAÇÃO
21
- - INFORMATIVA: o que se vê e por que importa ali, em até 125 caracteres, sem repetir a legenda que já está no HTML.
22
- - DECORATIVA: alt="" (vazio, presente). Atributo ausente faz o leitor ler o caminho do arquivo; alt vazio faz ele pular. São coisas diferentes.
23
- - FUNCIONAL: descreve a AÇÃO ou o destino ("Ir para o WhatsApp"), não a figura ("logotipo do WhatsApp").
24
- - COM TEXTO: transcreva o texto embutido, na íntegra.
25
- - COMPLEXA: alt curto identificando o gráfico + descrição longa próxima, em texto de verdade na página.
26
- Logotipo do próprio site no cabeçalho, quando é link para a home: "Página inicial · [nome da marca]".
20
+ 2. WRITE BY CLASSIFICATION
21
+ - INFORMATIVE: what you see and why it matters there, up to 125 characters, without repeating a caption already present in the HTML.
22
+ - DECORATIVE: alt="" (empty, but present). A missing attribute makes the screen reader read out the file path; an empty alt makes it skip the image. These are different things.
23
+ - FUNCTIONAL: describe the ACTION or the destination ("Ir para o WhatsApp"), not the picture ("logotipo do WhatsApp").
24
+ - WITH TEXT: transcribe the embedded text in full.
25
+ - COMPLEX: short alt identifying the chart + a long description nearby, as real text on the page.
26
+ The site's own logo in the header, when it links to the home page: "Página inicial · [nome da marca]".
27
27
 
28
- 3. DE PASSAGEM, ANOTE (sem corrigir agora)
29
- Imagem sem width e height declarados, imagem acima de 300 KB, formato antigo onde caberia WebP, e imagem de primeira tela com carregamento preguiçoso (que atrasa o conteúdo principal em vez de acelerar).
28
+ 3. IN PASSING, NOTE (without fixing it now)
29
+ Images missing declared width and height, images over 300 KB, an old format where WebP would fit, and above-the-fold images with lazy loading (which delays the main content instead of speeding it up).
30
30
 
31
- 4. CONFIRA
32
- Nenhuma tag de imagem pode ficar sem atributo alt. Rode uma busca no repositório para provar isso e mostre o comando usado.
31
+ 4. VERIFY
32
+ No image tag can be left without an alt attribute. Run a search in the repository to prove this and show the command you used.
33
33
 
34
- Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
34
+ Output format: after applying the changes, a markdown table, with no text before it:
35
35
 
36
- | Arquivo/Componente | Onde aparece | Classificação | Alt agora |
36
+ | File/Component | Where it appears | Classification | Alt now |
37
37
 
38
- Em seguida, a seção OTIMIZAÇÃO PENDENTE com os problemas de carregamento anotados no passo 3, e PENDÊNCIAS com as imagens que você não conseguiu interpretar sem contexto do dono.
38
+ Then, an OPTIMIZATION PENDING section with the loading issues noted in step 3, and PENDING ITEMS with the images you couldn't interpret without context from the owner.
39
39
 
40
- REGRA DE CORTE: alt que descreve errado é pior que alt vazio, porque mente para quem não pode conferir. Sem entender a imagem, pergunte.
40
+ CUTOFF RULE: an alt that describes something wrong is worse than an empty alt, because it lies to someone who can't check for themselves. If you don't understand the image, ask.
@@ -1,34 +1,34 @@
1
- # Rodada 12 · Dados estruturados do negócio
1
+ # Round 12 · Business structured data
2
2
 
3
- **Garante:** JSON-LD do negócio publicado, sem nenhum campo inventado.
4
- **Rode quando:** depois que endereço, horário e contato estiverem definitivos no site.
3
+ **Ensures:** the business's JSON-LD is published, with no invented field.
4
+ **Run when:** after the address, hours, and contact info are final on the site.
5
5
 
6
- Você é um especialista em SEO local com acesso ao repositório deste site. Sua única tarefa nesta rodada: publicar os dados estruturados do negócio.
6
+ You are a local SEO specialist with access to this site's repository. Your only task in this round: publish the business's structured data.
7
7
 
8
- PRIMEIRO, DECIDA O TIPO. Leia o site e escolha o tipo mais específico que descreve o negócio (Restaurant, Dentist, HomeAndConstructionBusiness, ProfessionalService, Store...), caindo para LocalBusiness só quando nenhum couber. Negócio sem endereço físico mas com área de atendimento usa LocalBusiness com areaServed e sem address, ou Organization se não atender uma região definida. Diga qual escolheu e por quê.
8
+ FIRST, DECIDE THE TYPE. Read the site and choose the most specific type that describes the business (Restaurant, Dentist, HomeAndConstructionBusiness, ProfessionalService, Store...), falling back to LocalBusiness only when nothing else fits. A business with no physical address but with a service area uses LocalBusiness with areaServed and no address, or Organization if it doesn't serve a defined region. State which one you chose and why.
9
9
 
10
- NÃO invente nenhum valor. Todo campo vem do que já está no site ou de resposta direta do dono. Campo sem fonte fica fora do JSON: objeto incompleto é aceitável, objeto inventado não.
10
+ DO NOT invent any value. Every field comes from what's already on the site or from a direct answer from the owner. A field with no source stays out of the JSON: an incomplete object is acceptable, an invented one is not.
11
11
 
12
- 1. FONTE ÚNICA
13
- Use a mesma fonte de dados do bloco de endereço (rodada 07). Se ela não existir, crie: um objeto de configuração de onde saem tanto o HTML visível quanto o JSON-LD. Duas cópias do endereço divergem em três meses, sempre.
12
+ 1. SINGLE SOURCE
13
+ Use the same data source as the address block (round 07). If it doesn't exist, create one: a config object that both the visible HTML and the JSON-LD read from. Two copies of the address diverge within three months, always.
14
14
 
15
- 2. CAMPOS
16
- name, image, url, telephone, address (com todos os subcampos, addressCountry BR), geo quando houver coordenada confiável, openingHoursSpecification, priceRange, areaServed, sameAs (perfis oficiais: Google Business, Instagram, LinkedIn), e o tipo escolhido.
17
- Regras:
18
- - o nome é o nome legal de fachada, igual ao do Google Business;
19
- - horário no formato do schema, com feriado e horário especial se o site mencionar;
20
- - aggregateRating e review SÓ se houver avaliação real no próprio site (ver rodada 04, prova social). Nota inventada aqui é violação de diretriz e motivo de penalidade. Na dúvida, deixe de fora.
15
+ 2. FIELDS
16
+ name, image, url, telephone, address (with all subfields, addressCountry BR), geo when a reliable coordinate exists, openingHoursSpecification, priceRange, areaServed, sameAs (official profiles: Google Business, Instagram, LinkedIn), and the chosen type.
17
+ Rules:
18
+ - the name is the legal storefront name, matching Google Business;
19
+ - hours in the schema's format, including holidays and special hours if the site mentions them;
20
+ - aggregateRating and review ONLY if there's a real review on the site itself (see round 04, social proof). An invented rating here is a guideline violation and grounds for a penalty. When in doubt, leave it out.
21
21
 
22
- 3. ONDE ENTRA
23
- JSON-LD em script no head, na home e na página de contato. Uma entidade por página, sem repetir o mesmo negócio em três blocos. Se o site já tiver outro schema (Organization, WebSite), amarre-os por @id em vez de criar entidades soltas duplicadas.
22
+ 3. WHERE IT GOES
23
+ JSON-LD in a script in the head, on the home page and the contact page. One entity per page, without repeating the same business across three blocks. If the site already has another schema (Organization, WebSite), link them via @id instead of creating separate duplicate entities.
24
24
 
25
- 4. VALIDE
26
- Confira campo a campo contra o que está visível na página. Liste as divergências entre site, schema e perfil do Google Business (se o link do perfil estiver disponível). Indique o validador de resultados ricos e o que esperar dele.
25
+ 4. VALIDATE
26
+ Check each field against what's visible on the page. List the discrepancies between the site, the schema, and the Google Business profile (if the profile link is available). Point to the rich results validator and what to expect from it.
27
27
 
28
- Formato de saída: depois de aplicar, o JSON-LD final em bloco de código, seguido de uma tabela markdown:
28
+ Output format: after applying the changes, the final JSON-LD in a code block, followed by a markdown table:
29
29
 
30
- | Campo | Valor | Fonte | Confere com a página? |
30
+ | Field | Value | Source | Matches the page? |
31
31
 
32
- Em seguida, PENDÊNCIAS com os campos sem fonte, um por linha.
32
+ Then, PENDING ITEMS with the fields lacking a source, one per line.
33
33
 
34
- REGRA DE CORTE: schema é declaração ao buscador. Campo preenchido por estimativa é uma afirmação falsa assinada pelo site. Deixe fora e liste como pendência.
34
+ CUTOFF RULE: schema is a declaration to the search engine. A field filled in by guesswork is a false statement signed by the site. Leave it out and list it as pending.
@@ -1,40 +1,40 @@
1
- # Rodada 13 · robots.txt e sitemap
1
+ # Round 13 · robots.txt and sitemap
2
2
 
3
- **Garante:** buscadores entram, e entram só onde devem.
4
- **Rode quando:** antes do deploy final, com as rotas de produção já estáveis.
3
+ **Ensures:** search engines get in, and only get in where they should.
4
+ **Run when:** before the final deploy, with production routes already stable.
5
5
 
6
- Você é um especialista em SEO técnico com acesso ao repositório deste site. Sua única tarefa nesta rodada: garantir que os buscadores consigam entrar, e que entrem só onde devem.
6
+ You are a technical SEO specialist with access to this site's repository. Your only task in this round: make sure search engines can get in, and that they only get in where they should.
7
7
 
8
- Antes de editar, detecte: framework, se há geração nativa de robots e sitemap, qual é o domínio de produção e se existe alguma configuração herdada de ambiente de teste.
8
+ Before editing, detect: framework, whether there's native robots and sitemap generation, what the production domain is, and whether any config was inherited from a test environment.
9
9
 
10
- 1. A CONFERÊNCIA QUE VEM PRIMEIRO
11
- Procure, em TODO o projeto, qualquer bloqueio global de indexação:
12
- - "Disallow: /" em robots.txt;
13
- - meta robots noindex no layout, no head global ou em componente compartilhado;
14
- - cabeçalho HTTP X-Robots-Tag: noindex em configuração de servidor, de host ou de middleware;
15
- - variável de ambiente de "site privado" ligada em produção.
16
- Este é o achado mais caro do kit inteiro: bloqueio de staging que sobe no deploy tira o site da busca inteira sem dar erro nenhum. Se encontrar, corrija e marque como CRÍTICO no relatório.
10
+ 1. THE CHECK THAT COMES FIRST
11
+ Search the ENTIRE project for any global indexing block:
12
+ - "Disallow: /" in robots.txt;
13
+ - meta robots noindex in the layout, the global head, or a shared component;
14
+ - HTTP header X-Robots-Tag: noindex in server, host, or middleware config;
15
+ - a "private site" environment variable turned on in production.
16
+ This is the single most expensive finding in the whole kit: a staging block that ships in the deploy removes the site from search entirely, with no error at all. If you find one, fix it and flag it as CRITICAL in the report.
17
17
 
18
18
  2. ROBOTS.TXT
19
- Gerado pelo mecanismo do framework quando houver, para não virar arquivo estático esquecido. Deve conter:
20
- - permissão geral de rastreio;
21
- - bloqueio apenas do que não é conteúdo (área logada, painel, rotas de API, busca interna com parâmetro, carrinho);
22
- - a linha Sitemap: com a URL absoluta do sitemap.
23
- Não use robots.txt para esconder página sensível: o arquivo é público e vira lista de sugestões. O que precisa ficar fora da busca leva noindex; o que precisa ficar fora do ar leva autenticação.
19
+ Generated by the framework's mechanism when available, so it doesn't turn into a forgotten static file. It must contain:
20
+ - general crawl permission;
21
+ - blocking only of what isn't content (logged-in area, dashboard, API routes, internal search with a parameter, cart);
22
+ - the Sitemap: line with the sitemap's absolute URL.
23
+ Don't use robots.txt to hide a sensitive page: the file is public and turns into a list of suggestions. What needs to stay out of search gets noindex; what needs to stay offline gets authentication.
24
24
 
25
25
  3. SITEMAP.XML
26
- Gerado a partir das rotas reais, contendo apenas URLs que devolvem 200, são canônicas e são indexáveis. Ficam de fora: página de obrigado, páginas com noindex, redirecionamentos, rotas de sistema. lastmod com data real de modificação do conteúdo. Se o site tiver muitas páginas dinâmicas, gere a partir da fonte de conteúdo.
26
+ Generated from the real routes, containing only URLs that return 200, are canonical, and are indexable. Left out: thank-you page, noindex pages, redirects, system routes. lastmod with the content's real modification date. If the site has many dynamic pages, generate it from the content source.
27
27
 
28
- 4. COERÊNCIA
29
- Cruze as três listas: rotas existentes, sitemap e diretivas de indexação. Nenhuma URL pode estar no sitemap e bloqueada ao mesmo tempo. Confira também canonical e a convenção de barra final.
28
+ 4. CONSISTENCY
29
+ Cross-check the three lists: existing routes, sitemap, and indexing directives. No URL can be in the sitemap and blocked at the same time. Also check canonical tags and the trailing-slash convention.
30
30
 
31
- 5. DEPOIS DO DEPLOY
32
- Escreva o passo a passo curto: verificar o domínio no Search Console, enviar o sitemap, e usar a inspeção de URL na home para confirmar que ela é indexável.
31
+ 5. AFTER THE DEPLOY
32
+ Write the short step-by-step: verify the domain in Search Console, submit the sitemap, and use URL inspection on the home page to confirm it's indexable.
33
33
 
34
- Formato de saída: depois de aplicar, o conteúdo final de robots.txt em bloco de código, e uma tabela markdown:
34
+ Output format: after applying the changes, the final content of robots.txt in a code block, and a markdown table:
35
35
 
36
- | Rota | No sitemap? | Indexável? | Coerente? |
36
+ | Route | In sitemap? | Indexable? | Consistent? |
37
37
 
38
- Em seguida, ACHADOS CRÍTICOS (se houver bloqueio herdado), PENDÊNCIAS e o passo a passo pós-deploy.
38
+ Then, CRITICAL FINDINGS (if there's an inherited block), PENDING ITEMS, and the post-deploy step-by-step.
39
39
 
40
- REGRA DE CORTE: se você não tiver certeza de que uma rota deve ser indexada, deixe-a fora do sitemap e liste em PENDÊNCIAS. Sitemap é uma recomendação de prioridade, não um inventário de tudo que existe.
40
+ CUTOFF RULE: if you're not sure whether a route should be indexed, leave it out of the sitemap and list it in PENDING ITEMS. A sitemap is a priority recommendation, not an inventory of everything that exists.
@@ -1,39 +1,39 @@
1
- # Rodada 14 · Privacidade e termos (LGPD)
1
+ # Round 14 · Privacy policy and terms (LGPD)
2
2
 
3
- **Garante:** política e termos que descrevem o que ESTE site faz, gerados do inventário técnico.
4
- **Rode quando:** depois que todos os formulários, scripts e integrações estiverem definidos.
3
+ **Ensures:** a privacy policy and terms that describe what THIS site actually does, generated from a technical inventory.
4
+ **Run when:** after all forms, scripts, and integrations are finalized.
5
5
 
6
- Você é um desenvolvedor encarregado da conformidade básica deste site. Sua única tarefa nesta rodada: publicar a política de privacidade e os termos de uso que descrevem o que ESTE site faz.
6
+ You are a developer responsible for this site's baseline compliance. Your only task in this round: publish the privacy policy and terms of use that describe what THIS site does.
7
7
 
8
- DECLARAÇÃO OBRIGATÓRIA NA ENTREGA: o texto produzido aqui é base técnica redigida a partir do código, não parecer jurídico. Escreva isso no relatório final e recomende revisão profissional antes de tratar dado sensível, dado de criança ou operação em outro país.
8
+ MANDATORY DISCLOSURE IN THE DELIVERABLE: the text produced here is a technical baseline drafted from the code, not a legal opinion. Write this in the final report and recommend professional review before handling sensitive data, children's data, or operating in another country.
9
9
 
10
- NÃO copie política genérica. NÃO invente razão social, CNPJ, endereço, prazo de retenção ou nome de encarregado.
10
+ DO NOT copy a generic policy. DO NOT invent a legal business name, tax ID (CNPJ), address, retention period, or data protection officer name.
11
11
 
12
- 1. INVENTÁRIO TÉCNICO (é daqui que sai o texto)
13
- Percorra o repositório e levante:
14
- - todo formulário: quais campos coleta, para onde envia, onde armazena, quem recebe notificação;
15
- - todo script de terceiro: analytics, pixel de anúncio, mapa, chat, fonte externa, captcha, vídeo incorporado;
16
- - todo cookie e armazenamento local criado, próprio ou de terceiro;
17
- - integrações de backend: e-mail transacional, CRM, planilha, webhook, gateway de pagamento.
18
- Essa lista é o esqueleto da política. Serviço que você não encontrar no código não entra no texto.
12
+ 1. TECHNICAL INVENTORY (this is where the text comes from)
13
+ Go through the repository and gather:
14
+ - every form: which fields it collects, where it sends them, where they're stored, who gets notified;
15
+ - every third-party script: analytics, ad pixel, maps, chat, external font, captcha, embedded video;
16
+ - every cookie and local storage entry created, first-party or third-party;
17
+ - backend integrations: transactional email, CRM, spreadsheet, webhook, payment gateway.
18
+ This list is the policy's skeleton. A service you don't find in the code doesn't go in the text.
19
19
 
20
- 2. A POLÍTICA DE PRIVACIDADE
21
- Seções: quem é o controlador; quais dados são coletados e como; para que são usados; com quem são compartilhados (lista real do passo 1, nominal); por quanto tempo são guardados; cookies e para que servem; direitos do titular pela LGPD e como exercê-los; canal de contato; data da última atualização.
22
- Linguagem direta, em português claro, sem parágrafo jurídico decorativo. Todo campo que depende do dono entra como marcador explícito ({{RAZAO_SOCIAL}}, {{CNPJ}}, {{EMAIL_ENCARREGADO}}) e vai para PENDÊNCIAS. Nunca preencha por estimativa.
20
+ 2. THE PRIVACY POLICY
21
+ Sections: who the data controller is; what data is collected and how; what it's used for; who it's shared with (the real list from step 1, named); how long it's retained; cookies and what they're for; data subject rights under the LGPD and how to exercise them; contact channel; last-updated date.
22
+ Direct language, in clear Portuguese, with no decorative legal boilerplate. Every field that depends on the owner goes in as an explicit placeholder ({{LEGAL_NAME}}, {{CNPJ}}, {{DPO_EMAIL}}) and goes into PENDING ITEMS. Never fill it in by guesswork.
23
23
 
24
- 3. TERMOS DE USO
25
- Versão curta e honesta: o que o site oferece, o que não garante, regras de uso, propriedade do conteúdo, limitação de responsabilidade, foro. Mesma regra de marcadores.
24
+ 3. TERMS OF USE
25
+ A short, honest version: what the site offers, what it doesn't guarantee, usage rules, content ownership, limitation of liability, jurisdiction. Same placeholder rule.
26
26
 
27
- 4. AS LIGAÇÕES
28
- - Links no rodapé de TODAS as páginas.
29
- - Link ao lado de cada botão de envio de formulário, junto do aviso de consentimento.
30
- - Se houver banner de cookies, ele precisa apontar para a política e a URL precisa existir. Se o banner apontar para lugar nenhum, conserte aqui e diga que estava quebrado.
31
- - Se houver pixel ou analytics carregando ANTES do consentimento, aponte isso como achado: é o descompasso mais comum entre o que o banner promete e o que o código faz.
27
+ 4. THE LINKS
28
+ - Links in the footer of ALL pages.
29
+ - A link next to every form-submit button, alongside the consent notice.
30
+ - If there's a cookie banner, it needs to point to the policy and the URL needs to exist. If the banner points nowhere, fix it here and say it was broken.
31
+ - If there's a pixel or analytics loading BEFORE consent, flag it as a finding: it's the most common mismatch between what the banner promises and what the code does.
32
32
 
33
- Formato de saída: depois de aplicar, o inventário do passo 1 em tabela markdown:
33
+ Output format: after applying the changes, the step-1 inventory as a markdown table:
34
34
 
35
- | Dado/Serviço | Onde é coletado | Para onde vai | Consta na política? |
35
+ | Data/Service | Where it's collected | Where it goes | In the policy? |
36
36
 
37
- Em seguida, PENDÊNCIAS com todos os marcadores a preencher, a lista de achados de consentimento, e a declaração de que o texto é base técnica e não parecer jurídico.
37
+ Then, PENDING ITEMS with all the placeholders to fill in, the list of consent findings, and the disclosure that the text is a technical baseline, not a legal opinion.
38
38
 
39
- REGRA DE CORTE: política que descreve coleta que o site não faz é tão ruim quanto política que omite a que ele faz. O texto descreve o inventário, nada além dele.
39
+ CUTOFF RULE: a policy that describes collection the site doesn't do is just as bad as a policy that omits collection it does do. The text describes the inventory, nothing beyond it.