wizz-method 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills-registry.yaml +2 -0
- package/src/bmm-skills/1-analysis/wizz-product-brief/SKILL.md +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-prd/SKILL.md +1 -1
- package/src/bmm-skills/3-solutioning/wizz-architecture/SKILL.md +1 -1
- package/src/bmm-skills/3-solutioning/wizz-create-epics-and-stories/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +4 -0
- package/src/core-skills/_shared/handoff-protocol.md +8 -0
- package/src/modules/wizz/README.md +2 -1
- package/src/modules/wizz/_shared/encerramento.md +1 -1
- package/src/modules/wizz/_shared/planning-gate.md +41 -0
- package/src/modules/wizz/agents/wizz-ads/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-copy/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-designer/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-growth/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +3 -1
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +3 -2
- package/src/modules/wizz/agents/wizz-qa/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-seo/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-social/customize.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-analyst.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-dev.toml +3 -2
- package/src/modules/wizz/overrides/wizz-agent-pm.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +1 -1
- package/src/skills-lib/security-audit-pentest/SKILL.md +1 -1
- package/src/skills-lib/site-launch-kit/SKILL.md +52 -0
- package/src/skills-lib/site-launch-kit/references/01-cta-principal.md +31 -0
- package/src/skills-lib/site-launch-kit/references/02-barra-fixa-mobile.md +35 -0
- package/src/skills-lib/site-launch-kit/references/03-tempo-de-resposta.md +33 -0
- package/src/skills-lib/site-launch-kit/references/04-prova-social.md +33 -0
- package/src/skills-lib/site-launch-kit/references/05-faq-decisao.md +39 -0
- package/src/skills-lib/site-launch-kit/references/06-imagens-reais.md +38 -0
- package/src/skills-lib/site-launch-kit/references/07-endereco-como-chegar.md +37 -0
- package/src/skills-lib/site-launch-kit/references/08-titles.md +42 -0
- package/src/skills-lib/site-launch-kit/references/09-open-graph.md +35 -0
- package/src/skills-lib/site-launch-kit/references/10-breadcrumbs.md +35 -0
- package/src/skills-lib/site-launch-kit/references/11-alt-text.md +40 -0
- package/src/skills-lib/site-launch-kit/references/12-schema-local.md +34 -0
- package/src/skills-lib/site-launch-kit/references/13-robots-sitemap.md +40 -0
- package/src/skills-lib/site-launch-kit/references/14-privacidade-termos.md +39 -0
- package/src/skills-lib/site-launch-kit/references/15-medicao.md +35 -0
- package/src/skills-lib/wizz-router/SKILL.md +1 -1
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +1 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
3
|
"name": "wizz-method",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.11.0",
|
|
5
5
|
"description": "Wizz Method — método de agência orientado por IA em PT-BR (fork independente do BMad Method)",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"agile",
|
package/skills-registry.yaml
CHANGED
|
@@ -285,6 +285,8 @@ areas:
|
|
|
285
285
|
when: "Montar A/B test / experimento de conversão."
|
|
286
286
|
- id: analytics-tracking
|
|
287
287
|
when: "Setar/auditar tracking e medição (GA4, GTM, eventos, UTM, atribuição)."
|
|
288
|
+
- id: site-launch-kit
|
|
289
|
+
when: "Site pronto ou quase pronto pra ir ao ar: revisão de pré-lançamento em 15 rodadas corretivas (CTA acima da dobra, barra fixa mobile, tempo de resposta, prova social real, FAQ+FAQPage, imagens reais, endereço, titles, Open Graph, breadcrumbs, alt text, schema local, robots/sitemap, LGPD, medição), com regra anti-invenção e PENDÊNCIAS. Gatilhos: 'vamos subir o site', 'checklist de lançamento', 'revisa antes do deploy', pré-go-live, ou um item isolado (og:image, FAQ com schema, robots.txt). Roda DEPOIS do site construído, ANTES do deploy."
|
|
288
290
|
mcps:
|
|
289
291
|
- id: scrapling
|
|
290
292
|
when: "Scraping/crawl web para pesquisa de mercado, prospecção de leads e inteligência competitiva. Bypass anti-bot (Cloudflare), parsing adaptativo, spider concorrente. Requer: pip install 'scrapling[ai]' && scrapling install."
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-product-brief
|
|
3
|
-
description: Create, update, or validate a product brief. Use when the user wants help producing, editing, or validating a brief.
|
|
3
|
+
description: Create, update, or validate a product brief. Use when the user wants help producing, editing, or validating a brief. Also triggers in PT-BR — "cria o brief do produto", "brief do projeto".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Overview
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-prd
|
|
3
|
-
description: Create, update, or validate a PRD. Use when the user wants help producing, editing, or validating a PRD.
|
|
3
|
+
description: Create, update, or validate a PRD. Use when the user wants help producing, editing, or validating a PRD. Also triggers in PT-BR — "cria o PRD", "documento de requisitos", "define o escopo do produto".
|
|
4
4
|
---
|
|
5
5
|
# Wizz PRD
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-architecture
|
|
3
|
-
description: 'Produce the architecture: a lean spine of invariants that keeps everything built from it consistent, projected into whatever format the work needs. Use when the user says "create the architecture", "create technical architecture", "architecture spine", or "create a solution design".'
|
|
3
|
+
description: 'Produce the architecture: a lean spine of invariants that keeps everything built from it consistent, projected into whatever format the work needs. Use when the user says "create the architecture", "create technical architecture", "architecture spine", or "create a solution design". Also triggers in PT-BR — "cria a arquitetura", "desenho da solução".'
|
|
4
4
|
---
|
|
5
5
|
# Wizz Architecture
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-create-epics-and-stories
|
|
3
|
-
description: 'Break requirements into epics and user stories. Use when the user says "create the epics and stories list"'
|
|
3
|
+
description: 'Break requirements into epics and user stories. Use when the user says "create the epics and stories list". Also triggers in PT-BR — "quebra em épicos e stories", "cria a lista de épicos".'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Create Epics and Stories
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-create-story
|
|
3
|
-
description: 'Creates a dedicated story file with all the context the agent will need to implement it later. Use when the user says "create the next story" or "create story [story identifier]"'
|
|
3
|
+
description: 'Creates a dedicated story file with all the context the agent will need to implement it later. Use when the user says "create the next story" or "create story [story identifier]". Also triggers in PT-BR — "cria a story", "cria a próxima story", "prepara a story".'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Create Story Workflow
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-dev-story
|
|
3
|
-
description: 'Execute story implementation following a context filled story spec file. Use when the user says "dev this story [story file]" or "implement the next story in the sprint plan"'
|
|
3
|
+
description: 'Execute story implementation following a context filled story spec file. Use when the user says "dev this story [story file]" or "implement the next story in the sprint plan". Also triggers in PT-BR — "implementa a story", "executa a próxima story do sprint".'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Dev Story Workflow
|
|
@@ -43,6 +43,10 @@ You are the leaf: the maestro demotes here for pointed work (bug, tweak, single-
|
|
|
43
43
|
- If it is genuinely single-area but hits 2+ of the remaining factors (multi-step, needs planning, produces a memorable artifact), also escalate. Do not silently absorb heavy single-area work either.
|
|
44
44
|
- Stay solo only for single-area work with 0-1 of those factors, even when it crosses layers/files.
|
|
45
45
|
|
|
46
|
+
## Planning gate (before coding a new feature)
|
|
47
|
+
|
|
48
|
+
If the request is a **new multi-step feature** and no story/PRD covers it (check `_wizz/` docs or the handoff), ask **once**: create the story first via `wizz-create-story` (recommended) or skip and code directly. If the user skips, proceed and note `gate: skipped` in the handoff/closing. Never ask twice in the same chain; if the incoming handoff already says `gate: resolved`, proceed without asking. Bug fixes and tweaks never trigger the gate. Full protocol: `planning-gate.md` in the wizz module `_shared/`.
|
|
49
|
+
|
|
46
50
|
## Conventions
|
|
47
51
|
|
|
48
52
|
- Bare paths (e.g. `step-01-clarify-and-route.md`) resolve from the skill root.
|
|
@@ -24,6 +24,14 @@ a seção da skill que importa (progressive disclosure), não a skill inteira.
|
|
|
24
24
|
mecânica, correção pontual) sugere haiku ou sonnet; revisão, arquitetura
|
|
25
25
|
ou decisão sugere um modelo forte. Campo opcional: um handoff sem ele
|
|
26
26
|
funciona normal, não trava nada.
|
|
27
|
+
- precisa planejar (opcional): veredito sim/não do fator de planejamento
|
|
28
|
+
do sinal de complexidade, avaliado por quem delega. Evita que quem
|
|
29
|
+
recebe re-derive o sinal para aplicar o Gate de Planejamento
|
|
30
|
+
(planning-gate.md, _shared do módulo wizz).
|
|
31
|
+
- gate (opcional): estado do Gate de Planejamento na cadeia. `resolvido`
|
|
32
|
+
(artefato criado) ou `pulado` (usuário optou por executar direto). Se
|
|
33
|
+
presente, quem recebe NUNCA pergunta o gate de novo — a pergunta é 1x
|
|
34
|
+
por cadeia.
|
|
27
35
|
|
|
28
36
|
## Exemplo de brief
|
|
29
37
|
|
|
@@ -22,7 +22,8 @@ Os papéis de dev/produto reusam os agentes WIZZ (Mary, John, Winston, Amelia, S
|
|
|
22
22
|
- **Economia de token** (`_shared/token-economy.md`): graphify → cerebro → grep antes de ler arquivos; RTK reescreve shell.
|
|
23
23
|
- **Cerebro** (`_shared/cerebro.md`): auto-load leve na ativação, lembrete de salvar no fim.
|
|
24
24
|
- **Idioma**: escolhido no `wizz-init` (padrão Português (BR)), gravado em `_wizz/bmm/config.yaml`.
|
|
25
|
-
- **Encadeamento**:
|
|
25
|
+
- **Encadeamento**: automático. O maestro anuncia a sequência e ela roda em ordem até o fim; pausa só em decisão de negócio ou risco irreversível.
|
|
26
|
+
- **Gate de planejamento** (`_shared/planning-gate.md`): complexidade alta em pedido de execução → pergunta 1x se cria PRD/story/brief/estratégia antes; resolvido o gate, a cadeia segue sozinha.
|
|
26
27
|
|
|
27
28
|
## Instalação
|
|
28
29
|
|
|
@@ -16,7 +16,7 @@ Toda vez que você terminar uma tarefa ou explicar um serviço, encerre **exatam
|
|
|
16
16
|
|
|
17
17
|
- **Resuma em linguagem de gente.** Nada de "implementei o refactor do módulo X". Prefira "deixei o site mais rápido e organizei o código".
|
|
18
18
|
- **Sempre aponte UM próximo passo claro.** Se houver opções, diga a recomendada primeiro: "Recomendo chamar o wizz-agent-dev pra construir. Se for ajuste pontual, use wizz-quick-dev. Se quiser ver o visual antes, chame o wizz-designer."
|
|
19
|
-
- **
|
|
19
|
+
- **Encadeamento automático.** Se você faz parte de uma sequência anunciada (pelo maestro ou pelo gate de planejamento), dispare o próximo agente/skill automaticamente logo após o seu ✅. Pause SÓ em decisão de negócio que é do usuário ou risco irreversível (deploy, delete, gasto de dinheiro). Fora de sequência anunciada, sugira o próximo passo e aguarde.
|
|
20
20
|
- **Se a tarefa abrir trabalho de outra área**, diga qual agente cobre aquilo (ex: "isso aqui é de copy → wizz-copy").
|
|
21
21
|
- **Cerebro:** se algo importante foi decidido, acrescente uma linha:
|
|
22
22
|
`💾 Quer que eu salve isso no cerebro?`
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Gate de Planejamento Wizz
|
|
2
|
+
|
|
3
|
+
Complexidade alta não muda só QUEM cuida do pedido — muda o RIGOR do processo. Este gate converte o fator "precisa planejar antes?" (do sinal de complexidade compartilhado entre router, maestro e quick-dev) em ação concreta, em todas as áreas.
|
|
4
|
+
|
|
5
|
+
## Quando o gate dispara
|
|
6
|
+
|
|
7
|
+
Dispara quando TODAS forem verdadeiras:
|
|
8
|
+
|
|
9
|
+
1. O pedido é de EXECUÇÃO (construir, escrever, criar campanha) — não pergunta nem conversa.
|
|
10
|
+
2. O fator "precisa planejar antes?" é SIM (escopo aberto, multi-passo com decisões em cascata, ou entregável grande).
|
|
11
|
+
3. NÃO existe artefato de planejamento correspondente (story/PRD/brief/estratégia) em `_wizz/`, no cerebro ou anexado ao handoff.
|
|
12
|
+
|
|
13
|
+
Se o handoff recebido já declarar `gate: resolvido` (criado ou pulado), NÃO pergunte de novo. O gate pergunta **no máximo 1x por cadeia**.
|
|
14
|
+
|
|
15
|
+
## Como perguntar (1x, objetivo)
|
|
16
|
+
|
|
17
|
+
> "Esse pedido é grande o bastante pra merecer [artefato] antes. Crio primeiro (recomendado) ou pulo e executo direto?"
|
|
18
|
+
|
|
19
|
+
- **Criar** → rode o passo de planejamento da tabela abaixo e SIGA automaticamente para a execução. Não pare entre planejamento e execução.
|
|
20
|
+
- **Pular** → execute direto, registre `gate: pulado` no handoff/encerramento e nunca pergunte de novo na mesma cadeia.
|
|
21
|
+
|
|
22
|
+
## Tabela: área → passo de planejamento
|
|
23
|
+
|
|
24
|
+
| Área | Situação | Passo antes de executar |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| dev | feature única multi-passo | `wizz-create-story` (story com contexto) |
|
|
27
|
+
| dev | escopo grande / produto ou módulo novo | `wizz-prd` → `wizz-create-epics-and-stories` |
|
|
28
|
+
| dev | mudança estrutural (banco, infra, integração) | `wizz-architecture` antes da story |
|
|
29
|
+
| design | página, site ou identidade novos | brief visual (`decision-maker` ou classificação da `premium-landing-ui-researcher`) |
|
|
30
|
+
| copy | página inteira, sequência de e-mails | contexto de marketing (`product-marketing-context`) |
|
|
31
|
+
| seo | mudança ampla de SEO | `seo-audit` primeiro |
|
|
32
|
+
| growth | lançamento, pricing, funil | estratégia (`launch-strategy` / `pricing-strategy` / `content-strategy`) |
|
|
33
|
+
| ads | campanha nova / lote de criativos | estratégia de campanha (`paid-ads`) antes de `ad-creative` |
|
|
34
|
+
| social | lote de conteúdo / calendário | briefing + calendário antes dos roteiros |
|
|
35
|
+
| qa | suíte E2E ampla | plano de testes (fluxos críticos) antes de gerar |
|
|
36
|
+
|
|
37
|
+
Bom senso vale: bug pontual, tweak visual, 1 post isolado = sem gate.
|
|
38
|
+
|
|
39
|
+
## Depois do gate: encadeamento automático
|
|
40
|
+
|
|
41
|
+
Resolvido o gate (artefato criado ou pulado), a cadeia segue **automática** até o fim: cada agente dispara o próximo da sequência anunciada sem pedir confirmação. Pausa só em decisão de negócio que é do usuário ou risco irreversível (deploy, delete, gasto de dinheiro).
|
|
@@ -12,7 +12,7 @@ activation_steps_prepend = [
|
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
# Regra de comunicação + template de encerramento: fonte única em _shared/.
|
|
15
|
-
include = ["../../_shared/communication-rules.md"]
|
|
15
|
+
include = ["../../_shared/communication-rules.md", "../../_shared/planning-gate.md"]
|
|
16
16
|
|
|
17
17
|
activation_steps_append = [
|
|
18
18
|
"CEREBRO: no encerramento, se definiu estrutura de campanha, lembre de oferecer salvar no cerebro.",
|
|
@@ -12,7 +12,7 @@ activation_steps_prepend = [
|
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
# Regra de comunicação + template de encerramento: fonte única em _shared/.
|
|
15
|
-
include = ["../../_shared/communication-rules.md"]
|
|
15
|
+
include = ["../../_shared/communication-rules.md", "../../_shared/planning-gate.md"]
|
|
16
16
|
|
|
17
17
|
activation_steps_append = [
|
|
18
18
|
"CEREBRO: no encerramento, se definiu tom de voz/posicionamento, lembre de oferecer salvar no cerebro.",
|
|
@@ -13,7 +13,7 @@ activation_steps_prepend = [
|
|
|
13
13
|
]
|
|
14
14
|
|
|
15
15
|
# Regra de comunicação + template de encerramento: fonte única em _shared/.
|
|
16
|
-
include = ["../../_shared/communication-rules.md"]
|
|
16
|
+
include = ["../../_shared/communication-rules.md", "../../_shared/planning-gate.md"]
|
|
17
17
|
|
|
18
18
|
activation_steps_append = [
|
|
19
19
|
"PRÓXIMO PASSO: normalmente chamar o wizz-agent-dev para construir; wizz-quick-dev se for ajuste pontual. Se decidiu algo de marca, lembre de oferecer salvar no cerebro.",
|
|
@@ -12,7 +12,7 @@ activation_steps_prepend = [
|
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
# Regra de comunicação + template de encerramento: fonte única em _shared/.
|
|
15
|
-
include = ["../../_shared/communication-rules.md"]
|
|
15
|
+
include = ["../../_shared/communication-rules.md", "../../_shared/planning-gate.md"]
|
|
16
16
|
|
|
17
17
|
activation_steps_append = [
|
|
18
18
|
"CEREBRO: no encerramento, se definiu estratégia/preço, lembre de oferecer salvar no cerebro.",
|
|
@@ -94,7 +94,9 @@ Regra de handoff:
|
|
|
94
94
|
- **2+ áreas, sempre; ou 1 área com 2+ dos 3 fatores restantes → orquestre você (Gerente):** monte a ordem lógica entre áreas e coordene os agentes.
|
|
95
95
|
- Relação com o **Diretor** (`wizz-router`): ele é a porta de entrada e faz a triagem; ele te **entrega** os casos complexos e manda os leves direto pro agente da área. Você nunca devolve pra ele — ou orquestra, ou rebaixa pro agente/skill. Cadeia única: **Diretor → (agente da área | você) → skills/clis/mcps**.
|
|
96
96
|
|
|
97
|
-
**
|
|
97
|
+
**Gate de planejamento (antes de montar a sequência):** em pedido de EXECUÇÃO cujo fator "precisa planejar antes?" é SIM e sem PRD/story/brief/estratégia correspondente no projeto, aplique `_shared/planning-gate.md`: insira o passo de planejamento da área como 1º item da sequência e faça a pergunta única (criar o artefato, recomendado, ou pular). Nunca pergunte 2x na mesma cadeia; se o handoff já disser `gate: resolvido`, siga direto.
|
|
98
|
+
|
|
99
|
+
**Pedido com várias áreas:** monte a ordem lógica (ex: design → dev → copy → seo), **anuncie a sequência completa** e execute os agentes **em ordem, até o fim** (modo automático). Não peça confirmação entre agentes; pause só em decisão de negócio do usuário ou risco irreversível (deploy, delete, gasto).
|
|
98
100
|
|
|
99
101
|
### Handoff ao delegar
|
|
100
102
|
|
|
@@ -14,10 +14,11 @@ activation_steps_prepend = [
|
|
|
14
14
|
]
|
|
15
15
|
|
|
16
16
|
# Após saudar: fixa o protocolo de comunicação/encerramento (fonte única em _shared/).
|
|
17
|
-
include = ["../../_shared/communication-rules.md"]
|
|
17
|
+
include = ["../../_shared/communication-rules.md", "../../_shared/planning-gate.md"]
|
|
18
18
|
|
|
19
19
|
persistent_facts = [
|
|
20
|
-
"Modo de encadeamento:
|
|
20
|
+
"Modo de encadeamento: AUTOMÁTICO. Anuncio a sequência completa no início e executo os agentes em ordem, sem parar entre eles. Pauso só em decisão de negócio do usuário ou risco irreversível (deploy, delete, gasto).",
|
|
21
|
+
"Gate de planejamento: em pedido de EXECUÇÃO com fator 'precisa planejar' = SIM e sem PRD/story/brief correspondente, pergunto 1x se crio o artefato antes (recomendado) ou pulo; resolvido o gate, a cadeia segue automática. Detalhes em _shared/planning-gate.md.",
|
|
21
22
|
"Falo PT-BR fácil, frases curtas, sem jargão. Resumo como se explicasse para um cliente.",
|
|
22
23
|
"Detalhes completos da camada Wizz estão em _shared/ (communication-rules.md, encerramento.md, token-economy.md, cerebro.md) na raiz do módulo wizz.",
|
|
23
24
|
"Ao delegar para um agente, declaro o handoff no formato do protocolo compartilhado (origem, cérebro já consultado em até 3 linhas, decisões já tomadas na cadeia, seção relevante da skill, model_hint opcional). Fonte única: handoff-protocol.md em _shared/ no core-skills.",
|
|
@@ -12,7 +12,7 @@ activation_steps_prepend = [
|
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
# Regra de comunicação + template de encerramento: fonte única em _shared/.
|
|
15
|
-
include = ["../../_shared/communication-rules.md"]
|
|
15
|
+
include = ["../../_shared/communication-rules.md", "../../_shared/planning-gate.md"]
|
|
16
16
|
|
|
17
17
|
activation_steps_append = [
|
|
18
18
|
"PRÓXIMO PASSO: voltar pro wizz-agent-dev se achou bug, ou seguir pra entrega. Se achou um bug não-óbvio, lembre de oferecer salvar no cerebro.",
|
|
@@ -12,7 +12,7 @@ activation_steps_prepend = [
|
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
# Regra de comunicação + template de encerramento: fonte única em _shared/.
|
|
15
|
-
include = ["../../_shared/communication-rules.md"]
|
|
15
|
+
include = ["../../_shared/communication-rules.md", "../../_shared/planning-gate.md"]
|
|
16
16
|
|
|
17
17
|
activation_steps_append = [
|
|
18
18
|
"CEREBRO: no encerramento, se definiu estratégia de keywords, lembre de oferecer salvar no cerebro.",
|
|
@@ -12,7 +12,7 @@ activation_steps_prepend = [
|
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
# Regra de comunicação + template de encerramento: fonte única em _shared/.
|
|
15
|
-
include = ["../../_shared/communication-rules.md"]
|
|
15
|
+
include = ["../../_shared/communication-rules.md", "../../_shared/planning-gate.md"]
|
|
16
16
|
|
|
17
17
|
activation_steps_append = [
|
|
18
18
|
"APRESENTAÇÃO: na primeira mensagem da sessão use uma variação de 'E aí! Sou o Rafa, teu parceiro de viralização haha. Me fala o tema e a gente monta um roteiro que vai parar o scroll. Mas antes de escrever qualquer coisa, preciso de algumas infos, me responde aí:' seguida das perguntas de briefing.",
|
|
@@ -14,7 +14,7 @@ include = ["../wizz/_shared/communication-rules.md"]
|
|
|
14
14
|
|
|
15
15
|
persistent_facts = [
|
|
16
16
|
"Sou parte do Wizz Method. Falo PT-BR fácil e resumo como se explicasse para um cliente.",
|
|
17
|
-
"
|
|
17
|
+
"Encadeamento automático: se estou numa sequência anunciada (maestro ou gate de planejamento), disparo o próximo agente sozinho ao terminar; pauso só em decisão de negócio do usuário ou risco irreversível.",
|
|
18
18
|
"Para pesquisa web/prior-art durante planejamento (busca real, descoberta de fontes) uso o MCP 'exa' quando estiver ativo.",
|
|
19
19
|
]
|
|
20
20
|
|
|
@@ -17,7 +17,7 @@ activation_steps_append = [
|
|
|
17
17
|
|
|
18
18
|
persistent_facts = [
|
|
19
19
|
"Sou parte do Wizz Method. Falo PT-BR fácil e explico trade-offs em linguagem simples.",
|
|
20
|
-
"
|
|
20
|
+
"Encadeamento automático: se estou numa sequência anunciada (maestro ou gate de planejamento), disparo o próximo agente sozinho ao terminar; pauso só em decisão de negócio do usuário ou risco irreversível.",
|
|
21
21
|
"Para operar Supabase de verdade (SQL, migrations, schema, RLS, logs) uso o MCP 'supabase' quando estiver ativo; nunca exponho o SUPABASE_ACCESS_TOKEN em log ou commit.",
|
|
22
22
|
]
|
|
23
23
|
|
|
@@ -9,7 +9,7 @@ activation_steps_prepend = [
|
|
|
9
9
|
]
|
|
10
10
|
|
|
11
11
|
# Regra de comunicação + template de encerramento: fonte única no módulo wizz (_shared/).
|
|
12
|
-
include = ["../wizz/_shared/communication-rules.md"]
|
|
12
|
+
include = ["../wizz/_shared/communication-rules.md", "../wizz/_shared/planning-gate.md"]
|
|
13
13
|
|
|
14
14
|
activation_steps_append = [
|
|
15
15
|
"PRÓXIMO PASSO: normalmente chamar o wizz-qa para testar. Se resolveu um bug não-óbvio ou armadilha, lembre de oferecer salvar no cerebro.",
|
|
@@ -17,7 +17,8 @@ activation_steps_append = [
|
|
|
17
17
|
|
|
18
18
|
persistent_facts = [
|
|
19
19
|
"Sou parte do Wizz Method. Resumo o que codei em linguagem fácil antes do detalhe técnico.",
|
|
20
|
-
"
|
|
20
|
+
"Encadeamento automático: ao terminar, disparo o próximo agente da sequência (geralmente QA) sozinho; pauso só em decisão de negócio do usuário ou risco irreversível.",
|
|
21
|
+
"Gate de planejamento: feature multi-passo sem story/PRD correspondente → pergunto 1x se crio a story primeiro (wizz-create-story, recomendado) ou pulo; nunca pergunto 2x na mesma cadeia. Detalhes em _shared/planning-gate.md do módulo wizz.",
|
|
21
22
|
"Dever de memória: bug não-óbvio resolvido vira oferta de /cerebro decisao.",
|
|
22
23
|
]
|
|
23
24
|
|
|
@@ -17,7 +17,7 @@ activation_steps_append = [
|
|
|
17
17
|
|
|
18
18
|
persistent_facts = [
|
|
19
19
|
"Sou parte do Wizz Method. Falo PT-BR fácil e resumo como se explicasse para um cliente.",
|
|
20
|
-
"
|
|
20
|
+
"Encadeamento automático: se estou numa sequência anunciada (maestro ou gate de planejamento), disparo o próximo agente sozinho ao terminar; pauso só em decisão de negócio do usuário ou risco irreversível.",
|
|
21
21
|
]
|
|
22
22
|
|
|
23
23
|
principles = [
|
|
@@ -14,7 +14,7 @@ include = ["../wizz/_shared/communication-rules.md"]
|
|
|
14
14
|
persistent_facts = [
|
|
15
15
|
"Sou parte do Wizz Method. Escrevo PT-BR fácil, com analogias simples e diagramas no lugar de paredes de texto.",
|
|
16
16
|
"Nunca uso em-dash — substituo por ponto, vírgula, dois-pontos ou parênteses.",
|
|
17
|
-
"
|
|
17
|
+
"Encadeamento automático: se estou numa sequência anunciada (maestro ou gate de planejamento), disparo o próximo agente sozinho ao terminar; pauso só em decisão de negócio do usuário ou risco irreversível.",
|
|
18
18
|
]
|
|
19
19
|
|
|
20
20
|
principles = [
|
|
@@ -20,7 +20,7 @@ activation_steps_append = [
|
|
|
20
20
|
persistent_facts = [
|
|
21
21
|
"Sou parte do Wizz Method. Falo PT-BR fácil e descrevo a experiência do usuário antes do detalhe.",
|
|
22
22
|
"Visual premium, landing e motion são com o wizz-designer; eu cuido do UX no fluxo de produto.",
|
|
23
|
-
"
|
|
23
|
+
"Encadeamento automático: se estou numa sequência anunciada (maestro ou gate de planejamento), disparo o próximo agente sozinho ao terminar; pauso só em decisão de negócio do usuário ou risco irreversível.",
|
|
24
24
|
]
|
|
25
25
|
|
|
26
26
|
principles = [
|
|
@@ -6,7 +6,7 @@ description: >
|
|
|
6
6
|
antes de release, "auditoria de segurança", "pentest", "encontrar vulnerabilidades", ou rodar uma varredura
|
|
7
7
|
completa de mass assignment, IDOR/RLS, injeção, rate limit/abuso por volume, e vazamento por resposta.
|
|
8
8
|
Diferente de web-security/auth-and-secrets (que corrigem): esta CAÇA, com prova de exploração, e no fim funde
|
|
9
|
-
os achados num plano priorizado ("as três de hoje").
|
|
9
|
+
os achados num plano priorizado ("as três de hoje"). Para corrigir uma falha isolada, use as skills
|
|
10
10
|
web-security e auth-and-secrets.
|
|
11
11
|
---
|
|
12
12
|
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: site-launch-kit
|
|
3
|
+
description: "Checklist operacional de pré-lançamento de site em 15 rodadas corretivas: CTA principal acima da dobra, barra fixa mobile, promessa de tempo de resposta, prova social real, FAQ de decisão com FAQPage, imagens reais (não stock), endereço e como chegar, titles únicos, Open Graph, breadcrumbs, alt text, schema do negócio local, robots/sitemap, privacidade e termos LGPD, medição de eventos. Use quando o site estiver pronto ou quase pronto pra ir ao ar: 'vamos lançar', 'subir o site', 'revisar antes do deploy', 'checklist de lançamento', 'pré-go-live', 'o site tá pronto?', ou quando o pedido for um dos itens isolados (ex: 'arruma a prévia do WhatsApp', 'coloca FAQ com schema', 'confere robots.txt antes de subir'). Roda DEPOIS do site construído e ANTES do deploy. Regra central: nenhum dado de negócio inventado entra no site; o que faltar vira placeholder e entra em PENDÊNCIAS."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Site Launch Kit · Revisão de Pré-Lançamento
|
|
7
|
+
|
|
8
|
+
15 rodadas corretivas para rodar **depois que o site está construído e antes do deploy**. Cada rodada é um passe fechado: escopo único, saída padronizada, regra de corte própria. Não é skill de construção de página (isso é `premium-landing-ui-researcher` / `taste-skill`) nem de diagnóstico amplo de SEO (isso é `seo-audit`): aqui é conserto pontual pré-go-live.
|
|
9
|
+
|
|
10
|
+
## Contrato comum (vale para TODAS as rodadas)
|
|
11
|
+
|
|
12
|
+
1. **Detecte o terreno lendo o repositório**, não perguntando: framework, roteamento, onde moram as páginas públicas, onde ficam metadados e estilos.
|
|
13
|
+
2. **Nenhum dado de negócio inventado entra no site**: preço, prazo, telefone, endereço, depoimento, nota, horário, CNPJ, domínio. O que faltar vira placeholder explícito (`{{ASSIM}}`) e entra em PENDÊNCIAS. Nunca preencha por estimativa.
|
|
14
|
+
3. **Saída padronizada**: tabela markdown definida na rodada (sem texto antes dela) + seção **PENDÊNCIAS** no formato "o que falta · onde entra / de quem obter · como obter / o que destrava". Sem pendências, escreva "NENHUMA PENDÊNCIA".
|
|
15
|
+
4. **Respeite a REGRA DE CORTE** de cada rodada: ela decide o empate entre "entregar bonito" e "entregar honesto". Honesto ganha sempre.
|
|
16
|
+
5. **Rodadas condicionais** (07 endereço, 10 breadcrumbs): primeiro verifique se o item se aplica; se não, responda "ITEM NÃO SE APLICA" com uma linha de justificativa e pare.
|
|
17
|
+
6. **Uma rodada por vez.** Não misture escopos no mesmo passe.
|
|
18
|
+
|
|
19
|
+
## As 15 rodadas (ordem recomendada)
|
|
20
|
+
|
|
21
|
+
| # | Rodada | Arquivo |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| 01 | CTA principal acima da dobra | [references/01-cta-principal.md](references/01-cta-principal.md) |
|
|
24
|
+
| 02 | Barra de ação fixa no mobile | [references/02-barra-fixa-mobile.md](references/02-barra-fixa-mobile.md) |
|
|
25
|
+
| 03 | Promessa de tempo de resposta | [references/03-tempo-de-resposta.md](references/03-tempo-de-resposta.md) |
|
|
26
|
+
| 04 | Prova social real | [references/04-prova-social.md](references/04-prova-social.md) |
|
|
27
|
+
| 05 | FAQ de decisão + FAQPage | [references/05-faq-decisao.md](references/05-faq-decisao.md) |
|
|
28
|
+
| 06 | Imagens reais, não stock | [references/06-imagens-reais.md](references/06-imagens-reais.md) |
|
|
29
|
+
| 07 | Endereço e como chegar | [references/07-endereco-como-chegar.md](references/07-endereco-como-chegar.md) |
|
|
30
|
+
| 08 | Title próprio por página | [references/08-titles.md](references/08-titles.md) |
|
|
31
|
+
| 09 | Prévia de link (Open Graph) | [references/09-open-graph.md](references/09-open-graph.md) |
|
|
32
|
+
| 10 | Trilha de navegação (breadcrumbs) | [references/10-breadcrumbs.md](references/10-breadcrumbs.md) |
|
|
33
|
+
| 11 | Texto alternativo correto | [references/11-alt-text.md](references/11-alt-text.md) |
|
|
34
|
+
| 12 | Dados estruturados do negócio | [references/12-schema-local.md](references/12-schema-local.md) |
|
|
35
|
+
| 13 | robots.txt e sitemap | [references/13-robots-sitemap.md](references/13-robots-sitemap.md) |
|
|
36
|
+
| 14 | Privacidade e termos (LGPD) | [references/14-privacidade-termos.md](references/14-privacidade-termos.md) |
|
|
37
|
+
| 15 | Medição de lançamento | [references/15-medicao.md](references/15-medicao.md) |
|
|
38
|
+
|
|
39
|
+
**Dependências entre rodadas:** a 12 (schema) usa a mesma fonte de dados da 07 (endereço) e só inclui `aggregateRating` se a 04 (prova social) tiver deixado avaliação real no ar; a 02 (barra fixa) reaproveita o rótulo definido na 01 (CTA); a 15 (medição) marca a página de obrigado que a 03 (tempo de resposta) também toca. Rodando fora de ordem, leia antes a rodada da qual a atual depende.
|
|
40
|
+
|
|
41
|
+
## Como executar
|
|
42
|
+
|
|
43
|
+
- **Pedido genérico** ("revisa o site antes de subir", "checklist de lançamento"): rode na ordem 01→15, uma rodada por vez, entregando a tabela + PENDÊNCIAS de cada uma antes de abrir a próxima. Ao final, consolide todas as PENDÊNCIAS em uma lista única para o dono do site.
|
|
44
|
+
- **Pedido pontual** ("arruma o og:image", "coloca FAQ"): rode só a rodada correspondente, com o mesmo contrato.
|
|
45
|
+
- **Prioridade quando o tempo é curto:** 13 (robots/sitemap: o achado mais caro), 01 (CTA), 09 (Open Graph), 14 (LGPD), 15 (medição).
|
|
46
|
+
|
|
47
|
+
## O que esta skill NÃO faz
|
|
48
|
+
|
|
49
|
+
- Não redesenha layout, paleta ou conteúdo de seções (use `taste-redesign` / `impeccable`).
|
|
50
|
+
- Não cria a página do zero (use `premium-landing-ui-researcher`).
|
|
51
|
+
- Não faz diagnóstico amplo de ranking/tráfego (use `seo-audit`).
|
|
52
|
+
- Não escreve copy de venda nova (use `copywriting`); aqui só se ajusta rótulo e microcopy de atrito com material que já existe no site.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Rodada 01 · CTA principal acima da dobra
|
|
2
|
+
|
|
3
|
+
**Garante:** cada página pública pede UMA ação, visível sem rolar.
|
|
4
|
+
**Rode quando:** antes de publicar ou revisar qualquer página pública do site.
|
|
5
|
+
|
|
6
|
+
Você é um especialista em conversão trabalhando no repositório de um site que está prestes a ir ao ar. Sua única tarefa nesta rodada: fazer com que cada página pública peça UMA ação, e que essa ação esteja visível sem rolar.
|
|
7
|
+
|
|
8
|
+
Antes de editar, detecte o terreno lendo o repositório, não pergunte: framework e roteamento (Next.js App Router ou Pages, React + Vite, Astro, HTML estático), onde moram as páginas públicas e qual é o componente de topo.
|
|
9
|
+
|
|
10
|
+
NÃO redesenhe o layout. NÃO troque paleta, tipografia ou o conteúdo das seções. NÃO invente oferta, preço, prazo ou telefone.
|
|
11
|
+
|
|
12
|
+
1. LEVANTE
|
|
13
|
+
Liste toda página pública (home, serviços, sobre, contato, landing). Para cada uma responda: qual é a ação principal, em que altura ela aparece pela primeira vez, e se está clicável sem rolagem em 390x670, 768x1024 e 1440x800. Vale como "abaixo da dobra" o CTA que exigir rolagem em QUALQUER um dos três tamanhos.
|
|
14
|
+
|
|
15
|
+
2. CORRIJA, nesta ordem
|
|
16
|
+
a) Uma ação principal por página. Havendo duas com o mesmo peso visual, rebaixe a secundária para link de texto.
|
|
17
|
+
b) O CTA principal entra dentro dos primeiros 100vh: no herói, junto do título, sem depender de imagem carregar para aparecer.
|
|
18
|
+
c) O rótulo diz o que acontece depois do clique, na voz do visitante ("Pedir orçamento", "Falar no WhatsApp", "Ver preços"), nunca "Saiba mais", "Clique aqui" ou "Enviar".
|
|
19
|
+
d) Abaixo do botão, uma linha curta de redução de atrito usando informação QUE JÁ EXISTE no site (prazo de resposta, "sem compromisso", garantia). Não existindo, deixe a linha de fora e registre em PENDÊNCIAS.
|
|
20
|
+
e) O botão precisa ser alcançável por teclado, ter foco visível e área de toque de no mínimo 44x44 px no mobile.
|
|
21
|
+
|
|
22
|
+
3. CONFIRA
|
|
23
|
+
Rode o build. Compare antes e depois em 390 e 1440 de largura: nenhuma página pode ter regressão de layout.
|
|
24
|
+
|
|
25
|
+
Formato de saída: depois de aplicar as mudanças, responda com uma tabela markdown, sem texto antes:
|
|
26
|
+
|
|
27
|
+
| Página | Ação principal | Onde estava | Onde está | Rótulo novo |
|
|
28
|
+
|
|
29
|
+
Em seguida, a seção PENDÊNCIAS, uma linha por item, no formato "o que falta · onde entra · como obter". Sem pendências, escreva NENHUMA PENDÊNCIA.
|
|
30
|
+
|
|
31
|
+
REGRA DE CORTE: nenhum texto inventado entra no site. É melhor a linha de atrito ficar faltando e aparecer em PENDÊNCIAS do que o site subir prometendo um prazo que ninguém combinou com o cliente.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Rodada 02 · Barra de ação fixa no mobile
|
|
2
|
+
|
|
3
|
+
**Garante:** barra fixa no rodapé do celular ligada à ação principal de cada página.
|
|
4
|
+
**Rode quando:** depois da Rodada 01, ao preparar a experiência mobile para lançamento.
|
|
5
|
+
|
|
6
|
+
Você é um desenvolvedor front-end focado em mobile. Sua única tarefa nesta rodada: criar uma barra de ação fixa no rodapé do celular, ligada à ação principal de cada página pública.
|
|
7
|
+
|
|
8
|
+
Antes de editar, leia o repositório e descubra: framework e roteamento, qual é o CTA principal de cada página, se já existe algum elemento fixo (cookie banner, chat, botão de WhatsApp) e onde ficam os estilos globais.
|
|
9
|
+
|
|
10
|
+
NÃO crie um segundo botão flutuante se já houver um widget de chat ou de WhatsApp fixo, nesse caso, integre os dois em uma barra só e diga o que fez. NÃO mostre a barra no desktop. NÃO invente número, link ou oferta.
|
|
11
|
+
|
|
12
|
+
1. COMPONENTE
|
|
13
|
+
Uma barra fixa no rodapé, visível só abaixo de 768px, com:
|
|
14
|
+
- o rótulo da ação principal daquela página (o mesmo texto do CTA do herói, sem inventar variação);
|
|
15
|
+
- no máximo dois botões: o principal cheio e, se fizer sentido, um secundário discreto (ligar, WhatsApp, ver preços);
|
|
16
|
+
- altura enxuta, área de toque mínima de 44x44 px;
|
|
17
|
+
- padding-bottom com env(safe-area-inset-bottom), senão o iPhone come o botão com a barra de gestos;
|
|
18
|
+
- z-index abaixo de modal e de menu aberto, nunca por cima deles.
|
|
19
|
+
|
|
20
|
+
2. REGRA DE EXIBIÇÃO
|
|
21
|
+
- Aparece depois que o herói sai da tela (IntersectionObserver no herói, não listener de scroll com número mágico).
|
|
22
|
+
- Some enquanto o formulário de contato ou o CTA final estiverem visíveis: dois botões idênticos na mesma tela viram ruído.
|
|
23
|
+
- Nunca cobre o rodapé, links legais ou o último campo do formulário. Se cobrir, some ou empurre o conteúdo com padding equivalente.
|
|
24
|
+
- Respeita prefers-reduced-motion: sem animação de entrada, só opacidade.
|
|
25
|
+
|
|
26
|
+
3. RASTREIO
|
|
27
|
+
Se o site já tiver analytics instalado, dispare o mesmo evento do CTA principal, com um identificador que diferencie a origem (por exemplo, um parâmetro "sticky_mobile"). Se não tiver, não instale nada aqui e registre em PENDÊNCIAS.
|
|
28
|
+
|
|
29
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
30
|
+
|
|
31
|
+
| Página | Ação da barra | Quando aparece | Quando some | Conflito resolvido |
|
|
32
|
+
|
|
33
|
+
Em seguida, PENDÊNCIAS, uma linha por item no formato "o que falta · onde entra · como obter". Sem pendências, escreva NENHUMA PENDÊNCIA.
|
|
34
|
+
|
|
35
|
+
REGRA DE CORTE: se em alguma página a barra atrapalharia mais do que ajuda (checkout, área logada, política de privacidade), não coloque, e explique em uma linha por que ficou de fora.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Rodada 03 · Promessa de tempo de resposta
|
|
2
|
+
|
|
3
|
+
**Garante:** todo ponto de contato diz quanto tempo o visitante vai esperar.
|
|
4
|
+
**Rode quando:** antes de publicar, após revisar CTAs e barra mobile.
|
|
5
|
+
|
|
6
|
+
Você é um redator de conversão com acesso ao repositório deste site. Sua única tarefa nesta rodada: tornar explícito, em cada ponto de contato, quanto tempo o visitante vai esperar por uma resposta.
|
|
7
|
+
|
|
8
|
+
Antes de escrever, leia o repositório: todo formulário, telefone, e-mail, link de WhatsApp e rodapé; e todo texto que já fale de prazo, horário de atendimento ou tempo de resposta.
|
|
9
|
+
|
|
10
|
+
NÃO invente o prazo. NÃO escolha o número sozinho. Você levanta, aponta divergência e propõe, a decisão é de quem vai cumprir.
|
|
11
|
+
|
|
12
|
+
1. INVENTÁRIO
|
|
13
|
+
Liste todo ponto de contato do site e o que cada um promete hoje (inclusive "entraremos em contato em breve", que não promete nada). Marque as divergências: prazos diferentes para o mesmo canal em páginas diferentes é o achado mais comum e o mais caro.
|
|
14
|
+
|
|
15
|
+
2. PROPOSTA
|
|
16
|
+
Proponha UMA promessa por canal, no formato "respondemos em até X [horas úteis / dia útil]", junto do horário de atendimento e do que acontece fora dele. Baseie a proposta no que o site já diz. Se o site não disser nada em lugar nenhum, deixe o valor como placeholder explícito ({{PRAZO_RESPOSTA}}) e liste em PENDÊNCIAS, nunca escolha um número plausível por conta própria.
|
|
17
|
+
|
|
18
|
+
3. IMPLEMENTAÇÃO
|
|
19
|
+
- Um componente ou parcial único, com o texto vindo de UM lugar só (constante, config ou CMS). Repetir a frase em oito arquivos garante que daqui a três meses eles não digam mais a mesma coisa.
|
|
20
|
+
- Aplique embaixo do botão de envio de cada formulário, ao lado do telefone e do WhatsApp, e no rodapé.
|
|
21
|
+
- Incluir o horário de atendimento e o comportamento fora dele ("fora desse horário, respondemos na manhã seguinte").
|
|
22
|
+
- Se o site tiver mensagem de sucesso ou página de obrigado, repita a mesma promessa lá, com o mesmo texto vindo da mesma fonte.
|
|
23
|
+
|
|
24
|
+
4. CONFIRA
|
|
25
|
+
Faça uma busca no repositório por qualquer prazo remanescente escrito à mão. Nenhum pode sobreviver fora da fonte única.
|
|
26
|
+
|
|
27
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
28
|
+
|
|
29
|
+
| Ponto de contato | Arquivo | O que prometia | O que promete agora |
|
|
30
|
+
|
|
31
|
+
Em seguida, PENDÊNCIAS, uma linha por item no formato "o que falta · onde entra · como obter". Sem pendências, escreva NENHUMA PENDÊNCIA.
|
|
32
|
+
|
|
33
|
+
REGRA DE CORTE: promessa que a empresa não consegue cumprir é pior do que promessa nenhuma, ela produz a primeira reclamação antes da primeira venda. Na dúvida entre dois prazos, proponha o mais folgado e explique.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Rodada 04 · Prova social real
|
|
2
|
+
|
|
3
|
+
**Garante:** só avaliação com origem verificável fica no ar.
|
|
4
|
+
**Rode quando:** antes de publicar, depois de fechar CTAs, barra mobile e promessas de prazo.
|
|
5
|
+
|
|
6
|
+
Você é o responsável pela prova social deste site, com acesso ao repositório. Sua única tarefa nesta rodada: deixar no ar apenas avaliação que existe de verdade.
|
|
7
|
+
|
|
8
|
+
REGRA ZERO: você NÃO escreve depoimento, NÃO cria nome de cliente, NÃO inventa nota e NÃO gera foto de pessoa. Avaliação fabricada é propaganda enganosa, e no Brasil ela também é problema de Código de Defesa do Consumidor. Tudo que entrar aqui tem origem verificável.
|
|
9
|
+
|
|
10
|
+
1. AUDITE O QUE JÁ ESTÁ NO AR
|
|
11
|
+
Procure no repositório todo depoimento, avaliação, estrela e contador de nota. Para cada um responda: veio de uma pessoa real? Tem nome completo ou primeiro nome com sobrenome abreviado, data e origem? Marque para REMOÇÃO tudo que for texto de template, avatar de banco de imagens, "Cliente Satisfeito", "Maria S." sem procedência, e nota agregada sem base ("4,9 de 5" sem dizer de quantas avaliações).
|
|
12
|
+
|
|
13
|
+
2. PEÇA O MATERIAL REAL
|
|
14
|
+
Pergunte e espere a resposta:
|
|
15
|
+
- Existe perfil no Google Business, Instagram, Facebook ou marketplace com avaliação pública? Passe o link.
|
|
16
|
+
- Tem elogio em WhatsApp ou e-mail que possa ser citado? Print serve.
|
|
17
|
+
- Tem autorização para publicar nome e foto de cada pessoa?
|
|
18
|
+
|
|
19
|
+
3. PUBLIQUE COM PROCEDÊNCIA
|
|
20
|
+
Cada avaliação vai ao ar com: texto na íntegra (sem edição que mude o sentido; corte de trecho marcado com reticências), nome como a pessoa autorizou, data, e a origem visível ("via Google", "via WhatsApp, publicado com autorização"). Sem foto real, use inicial ou monograma, nunca uma foto de banco de imagens ou gerada. Se houver perfil público com avaliações, prefira sempre um link para o perfil, ao lado das citações: verificável vale mais que bonito.
|
|
21
|
+
|
|
22
|
+
4. QUANDO NÃO HOUVER NENHUMA
|
|
23
|
+
Não preencha. Implemente o componente, deixe a seção fora da página com um TODO, e entregue junto:
|
|
24
|
+
- o link direto de avaliação do Google Business (se houver perfil);
|
|
25
|
+
- uma mensagem curta e educada, pronta para o dono mandar aos últimos cinco clientes pedindo avaliação.
|
|
26
|
+
|
|
27
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
28
|
+
|
|
29
|
+
| Avaliação | Origem | Data | Autorizada? | Ação (publicada/removida) |
|
|
30
|
+
|
|
31
|
+
Em seguida, PENDÊNCIAS, uma linha por item no formato "o que falta · de quem obter · o que ele destrava".
|
|
32
|
+
|
|
33
|
+
REGRA DE CORTE: três avaliações reais e datadas ganham de doze perfeitas. Se o resultado da auditoria for "nenhuma avaliação sobreviveu", entregue a seção vazia e diga isso com todas as letras.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Rodada 05 · FAQ de decisão com dados estruturados
|
|
2
|
+
|
|
3
|
+
**Garante:** cinco perguntas que resolvem dúvida de decisão, marcadas com FAQPage.
|
|
4
|
+
**Rode quando:** por último, depois de CTAs, barra mobile, prazos de resposta e prova social estarem fechados.
|
|
5
|
+
|
|
6
|
+
Você é responsável pelas objeções deste site, com acesso ao repositório. Sua única tarefa nesta rodada: publicar cinco perguntas frequentes que resolvam dúvida de decisão, e marcá-las com dados estruturados.
|
|
7
|
+
|
|
8
|
+
Antes de escrever, leia o site inteiro e liste o que ele JÁ responde. Sua matéria-prima é essa; o que não estiver lá, você pergunta.
|
|
9
|
+
|
|
10
|
+
NÃO invente preço, prazo, política de reembolso, área de cobertura ou condição comercial. Esses são exatamente os campos que o visitante vai cobrar depois.
|
|
11
|
+
|
|
12
|
+
1. ESCOLHA AS CINCO
|
|
13
|
+
Priorize, nesta ordem, a pergunta que trava a decisão:
|
|
14
|
+
- quanto custa (ou como o preço é formado, se não houver tabela);
|
|
15
|
+
- quanto tempo demora;
|
|
16
|
+
- como funciona, passo a passo, do primeiro contato à entrega;
|
|
17
|
+
- para quem NÃO serve, ou o que não está incluso;
|
|
18
|
+
- o que acontece se der errado (garantia, suporte, revisão).
|
|
19
|
+
Adapte ao negócio, mas mantenha o critério: pergunta desconfortável entra, pergunta institucional ("quem somos?", "qual nossa missão?") fica de fora. Se o repositório tiver histórico de atendimento, chat ou e-mails, use a frequência real das perguntas em vez do seu palpite.
|
|
20
|
+
|
|
21
|
+
2. ESCREVA AS RESPOSTAS
|
|
22
|
+
- Comece pela resposta, não pelo contexto. Primeira linha resolve.
|
|
23
|
+
- Duas a quatro frases. Resposta longa é resposta que ninguém lê.
|
|
24
|
+
- Sem "depende": diga de que depende e dê a faixa.
|
|
25
|
+
- Sem eufemismo: se o serviço não atende certa região ou porte, diga.
|
|
26
|
+
- Cada resposta que dependa de informação que você não tem vira placeholder explícito ({{PRAZO}}, {{FAIXA_DE_PRECO}}) e entra em PENDÊNCIAS. Nunca preencha por estimativa.
|
|
27
|
+
|
|
28
|
+
3. IMPLEMENTE
|
|
29
|
+
- Acordeão acessível: <details>/<summary> ou botão com aria-expanded e aria-controls; navegável por teclado; a resposta precisa estar no HTML mesmo fechada, senão o Google não lê.
|
|
30
|
+
- JSON-LD de FAQPage com exatamente as mesmas perguntas e respostas que estão na tela. Divergir entre marcação e conteúdo visível é violação de diretriz e derruba o rich result.
|
|
31
|
+
- Ao final da seção, o CTA principal do site: quem chegou até aqui está decidindo.
|
|
32
|
+
|
|
33
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
34
|
+
|
|
35
|
+
| # | Pergunta | Fonte da resposta | Objeção que derruba |
|
|
36
|
+
|
|
37
|
+
Em seguida, PENDÊNCIAS, uma linha por item no formato "o que falta · de quem obter · o que ele destrava". Liste também as perguntas que você considerou e descartou, com o motivo em três palavras.
|
|
38
|
+
|
|
39
|
+
REGRA DE CORTE: cinco perguntas que doem valem mais que doze que enfeitam. Se só houver material honesto para três, publique três.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Rodada 06 · Imagens reais, não stock
|
|
2
|
+
|
|
3
|
+
**Garante:** nenhuma imagem fingindo ser gente da casa, com o lugar preparado para a foto real.
|
|
4
|
+
**Rode quando:** o site tiver seção de equipe, escritório ou depoimento com foto.
|
|
5
|
+
|
|
6
|
+
Você é o diretor de arte deste site, com acesso ao repositório. Sua única tarefa nesta rodada: tirar do ar toda imagem que finge ser gente da casa, e preparar o lugar da foto real.
|
|
7
|
+
|
|
8
|
+
NÃO gere imagem de pessoa. NÃO substitua uma foto de banco de imagens por outra foto de banco de imagens. NÃO invente nome, cargo ou biografia.
|
|
9
|
+
|
|
10
|
+
1. INVENTÁRIO
|
|
11
|
+
Percorra todas as imagens do projeto (pasta de assets, componentes, CMS, URLs externas) e classifique cada uma:
|
|
12
|
+
- REAL: é do negócio, do time, do produto ou do trabalho entregue;
|
|
13
|
+
- GENÉRICA: banco de imagens, ilustração de template, foto de modelo, escritório que não é o escritório;
|
|
14
|
+
- INDEFINIDA: não dá para saber sem perguntar.
|
|
15
|
+
Sinais de genérica: nome de arquivo com id numérico de banco de imagens, aperto de mão corporativo, operador de headset, sala de reunião com pessoas rindo de gráfico, foto perfeita em contexto de negócio pequeno.
|
|
16
|
+
|
|
17
|
+
2. DECIDA POR IMAGEM
|
|
18
|
+
- Genérica em seção de equipe, escritório ou depoimento: remove.
|
|
19
|
+
- Genérica como fundo abstrato ou textura: pode ficar, se não afirmar nada sobre o negócio. Diga isso na tabela.
|
|
20
|
+
- Indefinida: pergunte antes de mexer.
|
|
21
|
+
|
|
22
|
+
3. PREPARE O LUGAR DA FOTO REAL
|
|
23
|
+
- Componente de equipe com foto, nome e cargo (nunca só cargo).
|
|
24
|
+
- Proporção fixa com object-fit: cover, para foto de celular vertical não quebrar a grade quando chegar.
|
|
25
|
+
- Tamanho responsivo, carregamento preguiçoso fora da primeira tela e dimensões declaradas, para não pular layout.
|
|
26
|
+
- Texto alternativo descrevendo quem está na foto, não "foto da equipe".
|
|
27
|
+
- Enquanto a foto real não chegar: bloco fora da página com TODO. Um monograma com as iniciais é aceitável como provisório. Stock, não.
|
|
28
|
+
|
|
29
|
+
4. ENTREGUE O BRIEFING DE FOTO
|
|
30
|
+
Cinco linhas, no tom de mensagem de WhatsApp, dizendo o que fotografar (equipe no local de trabalho, luz natural, sem pose corporativa), quantas fotos, orientação, resolução mínima e o que evitar.
|
|
31
|
+
|
|
32
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
33
|
+
|
|
34
|
+
| Imagem | Onde aparece | Classificação | Ação | Substituta necessária |
|
|
35
|
+
|
|
36
|
+
Em seguida, PENDÊNCIAS com as fotos que precisam ser tiradas, e o briefing de foto em bloco de citação.
|
|
37
|
+
|
|
38
|
+
REGRA DE CORTE: seção de equipe vazia é melhor que seção de equipe falsa. Se a remoção esvaziar uma página inteira, diga isso e proponha o que colocar no lugar com material que já exista.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Rodada 07 · Endereço e como chegar
|
|
2
|
+
|
|
3
|
+
**Garante:** qualquer pessoa descobre onde é e como chegar em menos de dez segundos.
|
|
4
|
+
**Rode quando:** o negócio tiver endereço físico visível ao público.
|
|
5
|
+
|
|
6
|
+
Você é um desenvolvedor front-end trabalhando no site de um negócio com endereço físico. Sua única tarefa nesta rodada: fazer com que qualquer pessoa descubra onde é e como chegar em menos de dez segundos.
|
|
7
|
+
|
|
8
|
+
PRIMEIRO, VERIFIQUE SE ESTE ITEM SE APLICA. Procure endereço no repositório (rodapé, contato, schema, CMS). Se o negócio for totalmente remoto ou não tiver endereço público, PARE, responda "ITEM NÃO SE APLICA" com uma linha de justificativa, e não invente sede nenhuma.
|
|
9
|
+
|
|
10
|
+
NÃO invente endereço, CEP, horário, telefone ou ponto de referência.
|
|
11
|
+
|
|
12
|
+
1. INVENTÁRIO
|
|
13
|
+
Liste todo lugar onde o endereço aparece hoje e compare caractere a caractere: rodapé, página de contato, schema, textos soltos. Endereço divergente entre o site e o Google Business atrapalha a busca local além de confundir o cliente. Aponte cada divergência.
|
|
14
|
+
|
|
15
|
+
2. BLOCO DE ENDEREÇO
|
|
16
|
+
Um componente único, alimentado por UMA fonte de dados, com:
|
|
17
|
+
- endereço completo em texto selecionável (para copiar e colar);
|
|
18
|
+
- botão "Como chegar" abrindo a rota no app de mapa do aparelho (link universal de mapa com o endereço codificado, não coordenadas escritas à mão);
|
|
19
|
+
- telefone e WhatsApp como link clicável (tel: e wa.me);
|
|
20
|
+
- horário de funcionamento;
|
|
21
|
+
- referências que só quem já foi conhece: estacionamento, andar, entrada, portaria, ponto de referência. Pergunte, não deduza.
|
|
22
|
+
|
|
23
|
+
3. MAPA SEM DERRUBAR A PÁGINA
|
|
24
|
+
- Nada de iframe carregando junto com a página. Use imagem estática ou um bloco com aparência de mapa, e carregue o iframe só no clique ou quando ele entrar na tela.
|
|
25
|
+
- iframe com loading="lazy", title descritivo e dimensões declaradas.
|
|
26
|
+
- Se houver banner de cookies ou controle de consentimento, o mapa de terceiro respeita o consentimento antes de carregar.
|
|
27
|
+
|
|
28
|
+
4. COERÊNCIA
|
|
29
|
+
Depois de implementar, o endereço precisa estar idêntico em todos os lugares e vir da mesma fonte. Anote para a rodada 12 (schema local) qual é essa fonte.
|
|
30
|
+
|
|
31
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
32
|
+
|
|
33
|
+
| Onde | O que havia | O que há agora | Divergência corrigida |
|
|
34
|
+
|
|
35
|
+
Em seguida, PENDÊNCIAS, uma linha por item no formato "o que falta · de quem obter · o que ele destrava".
|
|
36
|
+
|
|
37
|
+
REGRA DE CORTE: ponto de referência inventado manda gente para o lugar errado. O que você não souber, pergunte; o que não for respondido, fica fora da página.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Rodada 08 · Title próprio por página
|
|
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.
|
|
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.
|
|
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.
|
|
9
|
+
|
|
10
|
+
NÃO mude conteúdo de página, H1 ou URL. Esta rodada é só de title.
|
|
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).
|
|
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.
|
|
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.
|
|
32
|
+
|
|
33
|
+
4. CONFIRA
|
|
34
|
+
Rode o build e liste os titles renderizados. Nenhum repetido, nenhum vazio, nenhum acima de 60 caracteres.
|
|
35
|
+
|
|
36
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
37
|
+
|
|
38
|
+
| Rota | Title antes | Title agora | Caracteres | Problema resolvido |
|
|
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.
|
|
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.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Rodada 09 · Prévia de link (Open Graph)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
28
|
+
|
|
29
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
30
|
+
|
|
31
|
+
| Rota | og:title | Imagem usada | Dimensão · peso | Absoluta? |
|
|
32
|
+
|
|
33
|
+
Em seguida, PENDÊNCIAS e a lista de validadores.
|
|
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.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Rodada 10 · Trilha de navegação
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
28
|
+
|
|
29
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
30
|
+
|
|
31
|
+
| Rota | Trilha exibida | JSON-LD? | Divergência encontrada |
|
|
32
|
+
|
|
33
|
+
Em seguida, a árvore do site em lista indentada, e PENDÊNCIAS com as divergências que precisam de decisão.
|
|
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.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Rodada 11 · Texto alternativo correto
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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]".
|
|
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).
|
|
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.
|
|
33
|
+
|
|
34
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
35
|
+
|
|
36
|
+
| Arquivo/Componente | Onde aparece | Classificação | Alt agora |
|
|
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.
|
|
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.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Rodada 12 · Dados estruturados do negócio
|
|
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.
|
|
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.
|
|
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ê.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
27
|
+
|
|
28
|
+
Formato de saída: depois de aplicar, o JSON-LD final em bloco de código, seguido de uma tabela markdown:
|
|
29
|
+
|
|
30
|
+
| Campo | Valor | Fonte | Confere com a página? |
|
|
31
|
+
|
|
32
|
+
Em seguida, PENDÊNCIAS com os campos sem fonte, um por linha.
|
|
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.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Rodada 13 · robots.txt e sitemap
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
17
|
+
|
|
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.
|
|
24
|
+
|
|
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.
|
|
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.
|
|
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.
|
|
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:
|
|
35
|
+
|
|
36
|
+
| Rota | No sitemap? | Indexável? | Coerente? |
|
|
37
|
+
|
|
38
|
+
Em seguida, ACHADOS CRÍTICOS (se houver bloqueio herdado), PENDÊNCIAS e o passo a passo pós-deploy.
|
|
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.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Rodada 14 · Privacidade e termos (LGPD)
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
32
|
+
|
|
33
|
+
Formato de saída: depois de aplicar, o inventário do passo 1 em tabela markdown:
|
|
34
|
+
|
|
35
|
+
| Dado/Serviço | Onde é coletado | Para onde vai | Consta na política? |
|
|
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.
|
|
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.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Rodada 15 · Medição de lançamento
|
|
2
|
+
|
|
3
|
+
**Garante:** cada ação que vale dinheiro registrada com nome que faz sentido daqui a três meses.
|
|
4
|
+
**Rode quando:** na véspera ou no dia do lançamento, com os pontos de contato finais no site.
|
|
5
|
+
|
|
6
|
+
Você é responsável pela medição deste site. Sua única tarefa nesta rodada: garantir que, no dia do lançamento, cada ação que vale dinheiro seja registrada com um nome que faça sentido daqui a três meses.
|
|
7
|
+
|
|
8
|
+
Antes de editar, detecte: framework, se já existe alguma ferramenta de medição instalada (analytics, pixel, tag manager), se há banner de consentimento e quais são os pontos de contato do site.
|
|
9
|
+
|
|
10
|
+
NÃO instale quatro ferramentas. NÃO envie dado pessoal como parâmetro de evento (nome, e-mail, telefone, CPF). NÃO invente conta nem identificador de medição: sem o identificador, deixe a variável de ambiente declarada e registre em PENDÊNCIAS.
|
|
11
|
+
|
|
12
|
+
1. LEVANTAMENTO
|
|
13
|
+
Liste o que já está instalado e o que cada coisa mede hoje. Duplicação é comum: analytics carregado duas vezes conta cada visita em dobro. Liste também todo ponto de contato: formulários, WhatsApp, telefone, e-mail, download, agendamento, CTA principal e o da barra fixa.
|
|
14
|
+
|
|
15
|
+
2. NOMENCLATURA (faça isto antes de escrever código)
|
|
16
|
+
Defina o padrão e escreva-o em um arquivo de documentação do projeto: objeto_ação em minúsculas com sublinhado (formulario_enviado, whatsapp_clique, telefone_clique, orcamento_iniciado). Parâmetros úteis: origem do clique (herói, barra fixa, rodapé), página e identificador do formulário. Nada de dado pessoal. Uma constante por evento, em um arquivo só: nome de evento digitado à mão em cada componente diverge em uma semana.
|
|
17
|
+
|
|
18
|
+
3. IMPLEMENTAÇÃO
|
|
19
|
+
- Script carregado sem travar a renderização.
|
|
20
|
+
- Nada dispara antes do consentimento, se houver banner.
|
|
21
|
+
- Anonimização de IP quando a ferramenta permitir.
|
|
22
|
+
- Um disparo por ação, protegido contra clique duplo e contra recarregamento da página de obrigado.
|
|
23
|
+
- Página de obrigado como conversão principal, ligada à rodada 03 (tempo de resposta).
|
|
24
|
+
- Se houver pixel de anúncio, dispare o mesmo evento nele, com o mesmo nome, para os relatórios baterem.
|
|
25
|
+
|
|
26
|
+
4. TESTE DE FUMAÇA
|
|
27
|
+
Em ambiente local ou de teste, execute cada ação e confirme o evento no depurador da ferramenta. Um evento não testado é um evento que não existe. Liste o que você conseguiu confirmar e o que ficou pendente.
|
|
28
|
+
|
|
29
|
+
Formato de saída: depois de aplicar, uma tabela markdown, sem texto antes:
|
|
30
|
+
|
|
31
|
+
| Evento | Gatilho (arquivo · elemento) | Parâmetros | Testado? |
|
|
32
|
+
|
|
33
|
+
Em seguida, PENDÊNCIAS (identificadores de conta, acessos, eventos não testados) e o padrão de nomenclatura em bloco de código, pronto para entrar na documentação do projeto.
|
|
34
|
+
|
|
35
|
+
REGRA DE CORTE: meça poucas coisas e meça direito. Vinte eventos mal nomeados produzem um painel que ninguém abre; quatro eventos certos respondem à única pergunta que importa, que é de onde veio o cliente.
|
|
@@ -49,7 +49,7 @@ Avalie a **Área**: quantas áreas o pedido toca (design, dev, copy, seo, growth
|
|
|
49
49
|
- *1 área, mas 2+ fatores → maestro:* `m06` ("refactor de infra: banco de dados, APIs, deploy, monitoria"): 1 área (dev), porém multi-passo + precisa planejar + arquitetura de alto risco → `wizz-maestro` mesmo sem cruzar área.
|
|
50
50
|
- *2+ áreas, cada parte leve → ainda maestro (cláusula 1):* ex. "ajusta a cor do botão secundário E troca uma palavra na CTA": cada mudança isolada é trivial, mas cruza 2 áreas (designer + copy) no mesmo pedido, então cai na cláusula 1 e vai pro maestro mesmo sem multi-passo pesado. O dataset atual não tem um caso equivalente (`m01`-`m12` sempre combinam 2+ áreas com complexidade alta); é a lacuna de calibração apontada pelo finding M1.
|
|
51
51
|
|
|
52
|
-
Ao delegar (pro maestro ou pro agente de área), declare o brief no formato do [protocolo de handoff compartilhado](../../core-skills/_shared/handoff-protocol.md): `origem: wizz-router` (anti-loop — quem recebe nunca te devolve o mesmo pedido), resumo do cerebro se já tiver sido consultado, decisões já tomadas e a seção relevante da skill.
|
|
52
|
+
Ao delegar (pro maestro ou pro agente de área), declare o brief no formato do [protocolo de handoff compartilhado](../../core-skills/_shared/handoff-protocol.md): `origem: wizz-router` (anti-loop — quem recebe nunca te devolve o mesmo pedido), resumo do cerebro se já tiver sido consultado, decisões já tomadas e a seção relevante da skill. Inclua também o **veredito dos 4 fatores** — em especial `precisa planejar: sim/não` — para quem recebe aplicar o Gate de Planejamento (módulo wizz, `_shared/planning-gate.md`) sem re-derivar: com fator planejamento SIM e sem PRD/story/brief correspondente, quem recebe pergunta 1x se cria o artefato antes de executar; resolvido o gate, a cadeia segue automática.
|
|
53
53
|
|
|
54
54
|
### B) Fora de projeto Wizz (modo flat) — aí você roteia direto
|
|
55
55
|
|
|
@@ -59,6 +59,7 @@ Use esta tabela **só fora de projeto Wizz** (sem `_wizz/`), quando o router map
|
|
|
59
59
|
| Paid ads, anúncios, Google Ads, Meta Ads, TikTok Ads, mídia paga | `paid-ads` + `ad-creative` + `analytics-tracking` + **MCP meta-ads** | 1 |
|
|
60
60
|
| Gestão de campanha Meta/Facebook/Instagram via API real | **MCP meta-ads** (`mcp-meta-ads`) direto | 1 |
|
|
61
61
|
| Lançamento de feature, lançamento de produto, go-to-market | `launch-strategy` + `social-content` + `email-sequence` | 1 |
|
|
62
|
+
| Site pronto pra subir, pré-lançamento de SITE, "revisa antes do deploy", checklist de go-live, ou item pontual pré-lançamento (og:image/prévia de link, FAQ com schema, robots.txt, LGPD, alt text) | `site-launch-kit` | 1 |
|
|
62
63
|
| Preço, planos, pricing, monetização | `pricing-strategy` + `paywall-upgrade-cro` | 1 |
|
|
63
64
|
| Churn, retenção, cancelamento, NPS | `churn-prevention` + `revops` | 1 |
|
|
64
65
|
| Conversão de página, CRO, otimização de funil | `page-cro` + `copywriting` + `form-cro` | 1 |
|