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.
- package/README.md +62 -62
- package/SECURITY.md +15 -16
- package/THIRD-PARTY-NOTICES.md +49 -49
- package/package.json +1 -1
- package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +1 -1
- package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +1 -1
- package/src/core-skills/_shared/handoff-protocol.md +72 -71
- package/src/core-skills/wizz-review-adversarial-general/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-funil/references/copy-das-paginas.md +39 -39
- package/src/modules/lowticket/skills/wizz-lowticket-funil/references/mapa-do-funil.md +23 -23
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/CATALOGO.md +72 -72
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/01-principios.md +10 -10
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/02-diagnostico-funil.md +50 -50
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/03-campanha-bidcap.md +68 -68
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04-criativos.md +44 -44
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04a-criativos-ia.md +77 -77
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04b-criativos-formatos.md +121 -121
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/05-oferta.md +35 -35
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06-pagina-vendas.md +122 -122
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06a-instagram.md +93 -93
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06b-player-vsl.md +57 -57
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07-funil-upsell.md +83 -83
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07a-copy-humanizacao.md +61 -61
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/08-pesquisa-publico.md +11 -11
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/09-especialista-coproducao.md +26 -26
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/10-levantar-caixa.md +29 -29
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/11-checklist-roi.md +22 -22
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12-mineracao-ofertas.md +80 -80
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12a-mineracao-veredito.md +72 -72
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12b-fabrica-de-ofertas.md +63 -63
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12c-anatomia-low-ticket.md +71 -71
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/13-benchmarks-vsl.md +6 -6
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/14-vocabulario.md +53 -51
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/15-como-estender.md +26 -26
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/17-rastreamento.md +76 -76
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/18-copy-desejo-oferta.md +149 -149
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/INDEX.md +45 -45
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/guardrails.md +45 -45
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/pontos-em-aberto.md +64 -66
- package/src/modules/lowticket/skills/wizz-lowticket-minerador/references/rubrica.md +63 -63
- package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/metas-e-medicao.md +23 -23
- package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/padroes-de-codigo.md +50 -50
- package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/formato-do-diagnostico.md +9 -9
- package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/reguas.md +42 -42
- package/src/modules/wizz/README.md +27 -27
- package/src/modules/wizz/_shared/cerebro.md +37 -37
- package/src/modules/wizz/_shared/communication-rules.md +15 -15
- package/src/modules/wizz/_shared/despacho-barato.md +6 -6
- package/src/modules/wizz/_shared/encerramento.md +23 -23
- package/src/modules/wizz/_shared/model-ladder.md +29 -29
- package/src/modules/wizz/_shared/planning-gate.md +30 -30
- package/src/modules/wizz/_shared/token-economy.md +28 -28
- package/src/modules/wizz/_shared/video-pipeline.md +42 -42
- package/src/modules/wizz/agents/wizz-ads/SKILL.md +16 -16
- package/src/modules/wizz/agents/wizz-ads/customize.toml +21 -21
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +18 -18
- package/src/modules/wizz/agents/wizz-copy/customize.toml +24 -24
- package/src/modules/wizz/agents/wizz-designer/SKILL.md +24 -24
- package/src/modules/wizz/agents/wizz-designer/customize.toml +29 -29
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +20 -20
- package/src/modules/wizz/agents/wizz-growth/customize.toml +34 -34
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +63 -63
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +38 -38
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +19 -19
- package/src/modules/wizz/agents/wizz-memoria/customize.toml +24 -24
- package/src/modules/wizz/agents/wizz-qa/SKILL.md +22 -22
- package/src/modules/wizz/agents/wizz-qa/customize.toml +29 -29
- package/src/modules/wizz/agents/wizz-seo/SKILL.md +19 -19
- package/src/modules/wizz/agents/wizz-seo/customize.toml +27 -27
- package/src/modules/wizz/agents/wizz-social/SKILL.md +53 -53
- package/src/modules/wizz/agents/wizz-social/customize.toml +37 -37
- package/src/modules/wizz/agents/wizz-social/knowledge/analise-imagem-referencia.md +20 -20
- package/src/modules/wizz/agents/wizz-social/knowledge/biblioteca-prompts-imagem.md +71 -71
- package/src/modules/wizz/agents/wizz-social/knowledge/blueprint-roteiro-viral.md +196 -196
- package/src/modules/wizz/agents/wizz-social/knowledge/legenda-instagram.md +32 -32
- package/src/modules/wizz/agents/wizz-social/knowledge/prompts-imagem-video.md +48 -48
- package/src/modules/wizz/module.yaml +28 -28
- package/src/modules/wizz/overrides/wizz-agent-analyst.toml +17 -17
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +21 -21
- package/src/modules/wizz/overrides/wizz-agent-dev.toml +20 -20
- package/src/modules/wizz/overrides/wizz-agent-pm.toml +11 -11
- package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +14 -14
- package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +14 -14
- package/src/modules/wizz/subagents/codex/wizz-exec-haiku.toml +17 -17
- package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +19 -19
- package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +18 -18
- package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +18 -18
- package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +17 -17
- package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +19 -19
- package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +18 -18
- package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +18 -18
- package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +17 -17
- package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +19 -19
- package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +18 -18
- package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +18 -18
- package/src/modules/wizz/subagents/spec.yaml +84 -83
- package/src/modules/wizz/subagents/wizz-exec-haiku.md +17 -17
- package/src/modules/wizz/subagents/wizz-exec-opus.md +19 -19
- package/src/modules/wizz/subagents/wizz-exec-review.md +18 -18
- package/src/modules/wizz/subagents/wizz-exec-sonnet.md +18 -18
- package/src/skills-lib/cerebro/SKILL.md +61 -61
- package/src/skills-lib/cerebro/references/comandos-pesquisa-e-memoria.md +46 -46
- package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +65 -65
- package/src/skills-lib/cerebro/references/comandos-sessao.md +74 -74
- package/src/skills-lib/ctc-align/SKILL.md +37 -37
- package/src/skills-lib/find-skills/SKILL.md +19 -19
- package/src/skills-lib/pesquisa-de-publico-do-piva/README.md +33 -33
- package/src/skills-lib/pesquisa-de-publico-do-piva/SKILL.md +42 -42
- package/src/skills-lib/pesquisa-de-publico-do-piva/prompts.md +20 -20
- package/src/skills-lib/references/premium-agency-rules.md +63 -63
- package/src/skills-lib/security-audit-pentest/SKILL.md +31 -31
- package/src/skills-lib/security-audit-pentest/references/stage-1-validacao-entrada.md +37 -37
- package/src/skills-lib/security-audit-pentest/references/stage-2-autorizacao.md +61 -61
- package/src/skills-lib/security-audit-pentest/references/stage-3-abuso-volume.md +37 -37
- package/src/skills-lib/security-audit-pentest/references/stage-4-vazamento-resposta.md +52 -52
- package/src/skills-lib/site-launch-kit/SKILL.md +42 -42
- package/src/skills-lib/site-launch-kit/references/01-cta-principal.md +20 -20
- package/src/skills-lib/site-launch-kit/references/02-barra-fixa-mobile.md +24 -24
- package/src/skills-lib/site-launch-kit/references/03-tempo-de-resposta.md +21 -21
- package/src/skills-lib/site-launch-kit/references/04-prova-social.md +22 -22
- package/src/skills-lib/site-launch-kit/references/05-faq-decisao.md +28 -28
- package/src/skills-lib/site-launch-kit/references/06-imagens-reais.md +27 -27
- package/src/skills-lib/site-launch-kit/references/07-endereco-como-chegar.md +25 -25
- package/src/skills-lib/site-launch-kit/references/08-titles.md +30 -30
- package/src/skills-lib/site-launch-kit/references/09-open-graph.md +23 -23
- package/src/skills-lib/site-launch-kit/references/10-breadcrumbs.md +23 -23
- package/src/skills-lib/site-launch-kit/references/11-alt-text.md +28 -28
- package/src/skills-lib/site-launch-kit/references/12-schema-local.md +22 -22
- package/src/skills-lib/site-launch-kit/references/13-robots-sitemap.md +26 -26
- package/src/skills-lib/site-launch-kit/references/14-privacidade-termos.md +27 -27
- package/src/skills-lib/site-launch-kit/references/15-medicao.md +23 -23
- package/src/skills-lib/wizz-ai-product-design/SKILL.md +70 -70
- package/src/skills-lib/wizz-auth-and-secrets/SKILL.md +78 -78
- package/src/skills-lib/wizz-caching-and-queues/SKILL.md +40 -40
- package/src/skills-lib/wizz-cloud-and-infra/SKILL.md +22 -22
- package/src/skills-lib/wizz-database-and-deps/SKILL.md +52 -52
- package/src/skills-lib/wizz-database-scaling/SKILL.md +31 -31
- package/src/skills-lib/wizz-desktop-security/SKILL.md +49 -49
- package/src/skills-lib/wizz-implementation-planner/SKILL.md +56 -56
- package/src/skills-lib/wizz-implementation-planner/references/folder-structure-and-dependencies.md +14 -14
- package/src/skills-lib/wizz-implementation-planner/references/implementation-phases.md +15 -15
- package/src/skills-lib/wizz-implementation-planner/references/implementation-types.md +9 -9
- package/src/skills-lib/wizz-implementation-planner/references/motion-path-implementation.md +19 -19
- package/src/skills-lib/wizz-implementation-planner/references/performance-plan.md +27 -27
- package/src/skills-lib/wizz-infrastructure/SKILL.md +21 -21
- package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +63 -63
- package/src/skills-lib/wizz-inicio-de-projeto/references/implementacao-api-forms.md +27 -27
- package/src/skills-lib/wizz-inicio-de-projeto/references/padroes-arquiteturais-e-pastas.md +31 -31
- package/src/skills-lib/wizz-inicio-de-projeto/references/seguranca-e-regras-codigo.md +21 -21
- package/src/skills-lib/wizz-launch-readiness/SKILL.md +61 -61
- package/src/skills-lib/wizz-launch-readiness/references/01-tecnico-build.md +16 -16
- package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +16 -16
- package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +16 -16
- package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +15 -15
- package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +15 -15
- package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +15 -15
- package/src/skills-lib/wizz-launch-readiness/references/07-infra-deploy-rollback.md +16 -16
- package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +19 -19
- package/src/skills-lib/wizz-launch-readiness/references/09-persistencia-project-context.md +26 -26
- package/src/skills-lib/wizz-motion-3d-director/SKILL.md +70 -70
- package/src/skills-lib/wizz-motion-3d-director/references/image-to-video-workflow.md +34 -35
- package/src/skills-lib/wizz-motion-3d-director/references/motion-paths.md +70 -70
- package/src/skills-lib/wizz-motion-3d-director/references/performance-and-handoff.md +17 -17
- package/src/skills-lib/wizz-offer-forge/README.md +9 -9
- package/src/skills-lib/wizz-offer-forge/SKILL.md +64 -64
- package/src/skills-lib/wizz-offer-forge/references/empilhamento-valor.md +17 -17
- package/src/skills-lib/wizz-offer-forge/references/garantia-reversa.md +16 -16
- package/src/skills-lib/wizz-offer-forge/references/mecanismo-unico.md +19 -19
- package/src/skills-lib/wizz-offer-forge/references/ponte-trafego.md +17 -17
- package/src/skills-lib/wizz-premium-landing-ui-researcher/SKILL.md +36 -36
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/audit-protocol.md +81 -82
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/component-sources.md +105 -105
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/core-goal.md +39 -39
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/dashboard-and-portfolio-modes.md +49 -50
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/handoffs.md +33 -34
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/landing-page-strategy.md +141 -142
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/mandatory-process.md +24 -24
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/output-format-and-quality.md +73 -73
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/prompt-templates.md +4 -4
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/site-levels.md +282 -283
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-first-protocol.md +39 -39
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-links.md +8 -8
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/stack-and-visual-direction.md +63 -64
- package/src/skills-lib/wizz-router/SKILL.md +38 -38
- package/src/skills-lib/wizz-router/references/auditoria-360.md +12 -12
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +80 -80
- package/src/skills-lib/wizz-tracking-audit/SKILL.md +48 -48
- package/src/skills-lib/wizz-tracking-audit/references/modo-diagnostico.md +43 -43
- package/src/skills-lib/wizz-tracking-audit/references/modo-implantacao.md +59 -59
- package/src/skills-lib/wizz-tracking-audit/references/utm-e-atribuicao.md +35 -35
- package/src/skills-lib/wizz-web-security/SKILL.md +35 -35
- package/src/skills-lib/wizz-web-security/references/checklist-deploy.md +50 -50
- package/src/skills-lib/wizz-web-security/references/headers-rate-limit-cors.md +33 -33
- package/src/skills-lib/wizz-web-security/references/owasp-top5-detalhado.md +36 -36
- package/tools/hooks/session-rules.js +14 -11
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Round 08 · Unique title per page
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
3
|
+
**Ensures:** every page has its own descriptive, unique title.
|
|
4
|
+
**Run when:** the site has more than one public route.
|
|
5
5
|
|
|
6
|
-
|
|
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
|
-
|
|
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
|
-
|
|
10
|
+
DO NOT change page content, the H1, or the URL. This round is title-only.
|
|
11
11
|
|
|
12
|
-
1.
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
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.
|
|
21
|
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
|
|
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.
|
|
31
|
-
|
|
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.
|
|
34
|
-
|
|
33
|
+
4. VERIFY
|
|
34
|
+
Run the build and list the rendered titles. None repeated, none empty, none above 60 characters.
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
Output format: after applying, a markdown table, no text before it:
|
|
37
37
|
|
|
38
|
-
|
|
|
38
|
+
| Route | Title before | Title now | Characters | Problem solved |
|
|
39
39
|
|
|
40
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
1
|
+
# Round 09 · Link preview (Open Graph)
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
13
|
-
og:title, og:description, og:url (
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
- og:title
|
|
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.
|
|
21
|
-
|
|
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
|
|
24
|
-
|
|
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.
|
|
27
|
-
|
|
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
|
-
|
|
29
|
+
Output format: after applying the changes, a markdown table, with no text before it:
|
|
30
30
|
|
|
31
|
-
|
|
|
31
|
+
| Route | og:title | Image used | Dimensions · weight | Absolute? |
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Then, PENDING ITEMS and the list of validators.
|
|
34
34
|
|
|
35
|
-
|
|
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
|
-
#
|
|
1
|
+
# Round 10 · Breadcrumb trail
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
13
|
-
|
|
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.
|
|
16
|
-
- <nav aria-label="Trilha de navegação">
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
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.
|
|
24
|
-
JSON-LD
|
|
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.
|
|
27
|
-
|
|
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
|
-
|
|
29
|
+
Output format: after applying the changes, a markdown table, with no text before it:
|
|
30
30
|
|
|
31
|
-
|
|
|
31
|
+
| Route | Trail shown | JSON-LD? | Mismatch found |
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Then, the site tree as an indented list, and PENDING ITEMS with the mismatches that need a decision.
|
|
34
34
|
|
|
35
|
-
|
|
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
|
-
#
|
|
1
|
+
# Round 11 · Correct alt text
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
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.
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
|
|
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.
|
|
29
|
-
|
|
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.
|
|
32
|
-
|
|
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
|
-
|
|
34
|
+
Output format: after applying the changes, a markdown table, with no text before it:
|
|
35
35
|
|
|
36
|
-
|
|
|
36
|
+
| File/Component | Where it appears | Classification | Alt now |
|
|
37
37
|
|
|
38
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
1
|
+
# Round 12 · Business structured data
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
13
|
-
Use
|
|
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.
|
|
16
|
-
name, image, url, telephone, address (
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
- aggregateRating
|
|
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.
|
|
23
|
-
JSON-LD
|
|
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.
|
|
26
|
-
|
|
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
|
-
|
|
28
|
+
Output format: after applying the changes, the final JSON-LD in a code block, followed by a markdown table:
|
|
29
29
|
|
|
30
|
-
|
|
|
30
|
+
| Field | Value | Source | Matches the page? |
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Then, PENDING ITEMS with the fields lacking a source, one per line.
|
|
33
33
|
|
|
34
|
-
|
|
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
|
-
#
|
|
1
|
+
# Round 13 · robots.txt and sitemap
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
11
|
-
|
|
12
|
-
- "Disallow: /"
|
|
13
|
-
- meta robots noindex
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
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
|
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
|
|
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
|
-
|
|
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.
|
|
29
|
-
|
|
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.
|
|
32
|
-
|
|
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
|
-
|
|
34
|
+
Output format: after applying the changes, the final content of robots.txt in a code block, and a markdown table:
|
|
35
35
|
|
|
36
|
-
|
|
|
36
|
+
| Route | In sitemap? | Indexable? | Consistent? |
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
Then, CRITICAL FINDINGS (if there's an inherited block), PENDING ITEMS, and the post-deploy step-by-step.
|
|
39
39
|
|
|
40
|
-
|
|
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
|
-
#
|
|
1
|
+
# Round 14 · Privacy policy and terms (LGPD)
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
|
|
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.
|
|
21
|
-
|
|
22
|
-
|
|
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.
|
|
25
|
-
|
|
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.
|
|
28
|
-
- Links
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
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
|
-
|
|
33
|
+
Output format: after applying the changes, the step-1 inventory as a markdown table:
|
|
34
34
|
|
|
35
|
-
|
|
|
35
|
+
| Data/Service | Where it's collected | Where it goes | In the policy? |
|
|
36
36
|
|
|
37
|
-
|
|
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
|
-
|
|
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.
|