wizz-method 1.17.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/README.md +1 -1
  2. package/package.json +5 -2
  3. package/removals.txt +3 -0
  4. package/skills-registry.yaml +65 -13
  5. package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +1 -1
  6. package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +41 -37
  7. package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +1 -1
  8. package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +1 -1
  9. package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +1 -1
  10. package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +1 -1
  11. package/src/modules/lowticket/README.md +55 -0
  12. package/src/modules/lowticket/module.yaml +31 -0
  13. package/src/modules/lowticket/skills/lowticket-funil/SKILL.md +112 -0
  14. package/src/modules/lowticket/skills/lowticket-funil/references/copy-das-paginas.md +75 -0
  15. package/src/modules/lowticket/skills/lowticket-funil/references/mapa-do-funil.md +71 -0
  16. package/src/modules/lowticket/skills/lowticket-metodologia/CATALOGO.md +352 -0
  17. package/src/modules/lowticket/skills/lowticket-metodologia/SKILL.md +62 -0
  18. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/01-principios.md +12 -0
  19. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/02-diagnostico-funil.md +83 -0
  20. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/03-campanha-bidcap.md +95 -0
  21. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/04-criativos.md +66 -0
  22. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/04a-criativos-ia.md +79 -0
  23. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/04b-criativos-formatos.md +152 -0
  24. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/05-oferta.md +51 -0
  25. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/06-pagina-vendas.md +175 -0
  26. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/06a-instagram.md +138 -0
  27. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/07-funil-upsell.md +73 -0
  28. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/08-pesquisa-publico.md +14 -0
  29. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/09-especialista-coproducao.md +41 -0
  30. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/10-levantar-caixa.md +49 -0
  31. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/11-checklist-roi.md +36 -0
  32. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/12-mineracao-ofertas.md +63 -0
  33. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/12a-mineracao-veredito.md +78 -0
  34. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/12b-fabrica-de-ofertas.md +178 -0
  35. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/13-benchmarks-vsl.md +10 -0
  36. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/14-vocabulario.md +55 -0
  37. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/15-como-estender.md +35 -0
  38. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/INDEX.md +45 -0
  39. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/guardrails.md +33 -0
  40. package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/pontos-em-aberto.md +42 -0
  41. package/src/modules/lowticket/skills/lowticket-metodologia/references/swipe-file.md +38 -0
  42. package/src/modules/lowticket/skills/lowticket-minerador/SKILL.md +115 -0
  43. package/src/modules/lowticket/skills/lowticket-minerador/references/rubrica.md +75 -0
  44. package/src/modules/lowticket/skills/lowticket-pagina/SKILL.md +106 -0
  45. package/src/modules/lowticket/skills/lowticket-pagina/references/metas-e-medicao.md +70 -0
  46. package/src/modules/lowticket/skills/lowticket-pagina/references/padroes-de-codigo.md +148 -0
  47. package/src/modules/lowticket/skills/lowticket-trafego/SKILL.md +88 -0
  48. package/src/modules/lowticket/skills/lowticket-trafego/references/formato-do-diagnostico.md +56 -0
  49. package/src/modules/lowticket/skills/lowticket-trafego/references/reguas.md +72 -0
  50. package/src/modules/wizz/README.md +1 -1
  51. package/src/modules/wizz/_shared/cerebro.md +35 -1
  52. package/src/modules/wizz/_shared/communication-rules.md +8 -1
  53. package/src/modules/wizz/_shared/token-economy.md +7 -10
  54. package/src/modules/wizz/agents/wizz-ads/customize.toml +1 -1
  55. package/src/modules/wizz/agents/wizz-copy/customize.toml +1 -1
  56. package/src/modules/wizz/agents/wizz-designer/customize.toml +1 -1
  57. package/src/modules/wizz/agents/wizz-growth/customize.toml +1 -1
  58. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +1 -1
  59. package/src/modules/wizz/agents/wizz-maestro/customize.toml +1 -1
  60. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +1 -1
  61. package/src/modules/wizz/agents/wizz-qa/customize.toml +1 -1
  62. package/src/modules/wizz/agents/wizz-seo/customize.toml +1 -1
  63. package/src/modules/wizz/agents/wizz-social/customize.toml +1 -1
  64. package/src/modules/wizz/overrides/wizz-agent-analyst.toml +2 -2
  65. package/src/modules/wizz/overrides/wizz-agent-architect.toml +2 -2
  66. package/src/modules/wizz/overrides/wizz-agent-dev.toml +1 -1
  67. package/src/modules/wizz/overrides/wizz-agent-pm.toml +1 -1
  68. package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +1 -1
  69. package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +1 -1
  70. package/src/skills-lib/analytics-tracking/SKILL.md +2 -0
  71. package/src/skills-lib/analytics-tracking/references/utm-taxonomy.md +92 -0
  72. package/src/skills-lib/cerebro/SKILL.md +20 -17
  73. package/src/skills-lib/cerebro/references/comandos-pesquisa-e-memoria.md +96 -0
  74. package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +25 -6
  75. package/src/skills-lib/cerebro/references/comandos-sessao.md +61 -37
  76. package/src/skills-lib/premium-landing-ui-researcher/references/source-first-protocol.md +1 -1
  77. package/src/skills-lib/tracking-audit/SKILL.md +78 -0
  78. package/src/skills-lib/tracking-audit/references/modo-diagnostico.md +72 -0
  79. package/src/skills-lib/tracking-audit/references/modo-implantacao.md +89 -0
  80. package/src/skills-lib/tracking-audit/references/utm-e-atribuicao.md +75 -0
  81. package/src/skills-lib/wizz-offer-forge/SKILL.md +27 -2
  82. package/src/skills-lib/wizz-offer-forge/references/plano-de-medicao.md +74 -0
  83. package/src/skills-lib/wizz-router/SKILL.md +1 -1
  84. package/src/skills-lib/wizz-router/references/routing-table-flat.md +1 -1
  85. package/tools/installer/commands/trace-report.js +1 -1
  86. package/tools/installer/modules/skills-lib.js +7 -1
  87. package/wizz-modules.yaml +17 -0
  88. package/src/skills-lib/cerebro/references/comandos-pesquisa-e-sync.md +0 -44
  89. package/src/skills-lib/graphify/.graphify_version +0 -1
  90. package/src/skills-lib/graphify/SKILL.md +0 -1199
@@ -0,0 +1,96 @@
1
+ # Comandos de Pesquisa e Memoria: /prospect, /memoria
2
+
3
+ Carregue este arquivo ao executar `/prospect` ou `/memoria`. Antes de tudo, releia a REGRA DE OURO e a seção Vault no SKILL.md principal — esses comandos dependem delas.
4
+
5
+ ## /prospect
6
+
7
+ **Objetivo:** pesquisar e registrar prospect.
8
+
9
+ **Passos:**
10
+ 1. Receber nome/empresa + objetivo (tudo de uma vez)
11
+ 2. Pesquisar via web search (setor, presença digital, dores, oportunidades)
12
+ 3. Write direto em `_prospects/YYYY-MM-DD-[slug].md`
13
+ 4. Resumo executivo para o usuário (não precisa estar no arquivo)
14
+
15
+ **Template `_prospects/YYYY-MM-DD-[slug].md`:**
16
+ ```markdown
17
+ # [Nome / Empresa]
18
+ > Data: [data] | Objetivo: [tipo] | Status: pesquisado
19
+
20
+ ## Perfil
21
+ - Setor / Tamanho / Produto / Público-alvo
22
+
23
+ ## Presença digital
24
+ - Site / Redes / Ads ativos
25
+
26
+ ## Oportunidade e ângulo de abordagem
27
+ [o que oferecer e como entrar]
28
+
29
+ ## Próximo passo
30
+ - [ ] [ação]
31
+ ```
32
+
33
+ ## /memoria
34
+
35
+ **Objetivo:** ler (e alimentar) a auto-memória do projeto a partir de **qualquer**
36
+ plataforma, não só do Claude Code.
37
+
38
+ A auto-memória guarda as duas linhas que não moram no vault: **armadilha de stack /
39
+ bug não-óbvio** e **preferência de trabalho / correção do usuário**. No Claude Code ela
40
+ carrega sozinha no início da sessão. Em Codex, OpenCode e Gemini não carrega nada, mas
41
+ o dado está lá: é um diretório comum de arquivos `.md` no disco local. Este comando é a
42
+ ponte de leitura. Não existe segunda cópia dos fatos — a fonte continua sendo uma só.
43
+
44
+ ### Passo 1 — resolver o diretório de memória
45
+
46
+ ```bash
47
+ PROJ_DIR="$(pwd)"
48
+ SLUG="$(printf '%s' "$PROJ_DIR" | sed 's/[/.]/-/g')"
49
+ MEM="$HOME/.claude/projects/$SLUG/memory"
50
+ # fallback: o slug histórico nem sempre normaliza espaço e ponto do mesmo jeito
51
+ [ -d "$MEM" ] || MEM="$(ls -d "$HOME"/.claude/projects/*"$(basename "$PROJ_DIR")"/memory 2>/dev/null | head -1)"
52
+ echo "$MEM"
53
+ ```
54
+
55
+ Diretório inexistente = projeto sem auto-memória. Siga sem travar; não é problema a corrigir.
56
+
57
+ ### Passo 2 — carregar só o índice
58
+
59
+ ```bash
60
+ cat "$MEM/MEMORY.md"
61
+ ```
62
+
63
+ O índice tem teto de 8 KB e é 1 linha por memória. **Nunca leia os arquivos individuais
64
+ em bloco.** Abra um arquivo só quando a linha do índice for relevante ao pedido da vez:
65
+
66
+ ```bash
67
+ grep -rln "termo" "$MEM" --include="*.md" | head -5 # depois Read só o que casar
68
+ ```
69
+
70
+ `_archive/` fica fora do índice de propósito. Só entre nele quando o índice não tiver a resposta.
71
+
72
+ ### Passo 3 — gravar (mesma pasta, mesmo formato)
73
+
74
+ Vale o Dever de Memória e o teto: **40 memórias e 8 KB de índice por projeto**. Antes de
75
+ criar, `grep` no destino; se o fato já existe, atualize o arquivo que existe.
76
+
77
+ ```markdown
78
+ ---
79
+ name: <slug-em-kebab-case>
80
+ description: <resumo de uma linha, é o que decide a relevância na recuperação>
81
+ metadata:
82
+ type: user | feedback | project | reference
83
+ ---
84
+
85
+ <o fato. Para feedback/project, siga com as linhas **Why:** e **How to apply:**.
86
+ Ligue memórias relacionadas com [[nome-da-outra]].>
87
+ ```
88
+
89
+ Depois de escrever o arquivo, acrescente 1 linha ao `MEMORY.md`:
90
+ `- [Título](arquivo.md) — gancho`
91
+
92
+ ### Limites honestos
93
+
94
+ - É **pull, não push**: fora do Claude Code nada carrega sozinho, o agente precisa rodar o comando.
95
+ - Vale só para agente rodando na **mesma máquina**. Agente remoto não enxerga este disco.
96
+ - O teto e a poda continuam valendo igual, venha a escrita de qual plataforma vier.
@@ -36,19 +36,38 @@ Carregue este arquivo ao executar `/dia`, `/dump`, `/decisao` ou `/conteudo`. An
36
36
 
37
37
  ## /decisao
38
38
 
39
- **Objetivo:** registrar decisão. Zero reads de arquivos existentes.
39
+ **Objetivo:** registrar decisão. 1 grep antes, nenhum Read.
40
40
 
41
41
  **Passos:**
42
42
  1. Receber descrição + alternativas + projeto (perguntar tudo de uma vez se não passado)
43
- 2. Write direto em `_decisions/YYYY-MM-DD-[slug].md` (template abaixo)
44
- 3. `grep -n "## Decisões recentes" "$VAULT/CEREBRO.md"` → linha
45
- 4. Edit para inserir referência wiki-link logo abaixo dessa linha
46
- 5. Se projeto: `grep -n "## Decisões" "$VAULT/projetos/$PROJ.md"` Edit 1 linha
43
+ 2. **Grep antes de gravar** (obrigatório, 1 bash call):
44
+
45
+ ```bash
46
+ grep -ril "<2 ou 3 palavras do tema>" "$VAULT/_decisions/" | head -5
47
+ ```
48
+
49
+ - Achou decisão sobre o mesmo tema: **não crie arquivo novo**. Abra o que existe e decida entre dois caminhos:
50
+ - a decisão nova **substitui** a antiga → marque a antiga com `status: superseded` e `supersedida_por: <slug novo>`, e crie a nova com `supersede: <slug antigo>`
51
+ - a decisão nova **detalha** a antiga → edite a antiga, não crie a segunda
52
+ - Não achou nada: siga para o passo 3.
53
+
54
+ 3. Write direto em `_decisions/YYYY-MM-DD-[slug].md` (template abaixo)
55
+ 4. `grep -n "## Decisões recentes" "$VAULT/CEREBRO.md"` → linha
56
+ 5. Edit para inserir referência wiki-link logo abaixo dessa linha
57
+ 6. Se há projeto: `grep -n "## Decisões" "$VAULT/projetos/$PROJ.md"` → Edit 1 linha
47
58
 
48
59
  **Template `_decisions/YYYY-MM-DD-[slug].md`:**
49
60
  ```markdown
61
+ ---
62
+ data: YYYY-MM-DD
63
+ projeto: [nome]
64
+ tema: [2 a 4 palavras-chave separadas por vírgula, é por elas que o grep acha]
65
+ status: ativa
66
+ supersede: [slug da decisão que esta substitui, ou omitir]
67
+ supersedida_por: [preenchido depois, quando outra decisão substituir esta]
68
+ ---
69
+
50
70
  # [Título]
51
- > Data: [data] | Projeto: [[projetos/nome]] | Status: ativa
52
71
 
53
72
  ## Decisão
54
73
  [1-2 linhas]
@@ -2,11 +2,30 @@
2
2
 
3
3
  Carregue este arquivo ao executar `/iniciar`, `/ver` ou `/salvar`. Antes de tudo, releia a REGRA DE OURO e a seção Vault no SKILL.md principal — esses comandos dependem delas.
4
4
 
5
+ ## O bloco Estado
6
+
7
+ Todo arquivo em `projetos/` começa com um bloco `## Estado` de no **máximo 12 linhas**, logo abaixo do título. Ele é sobrescrito a cada `/salvar` e é a única coisa que o `/ver` precisa ler.
8
+
9
+ ```markdown
10
+ ## Estado
11
+ - **Fase:** [em que ponto o projeto está, 1 linha]
12
+ - **Stack:** [1 linha]
13
+ - **Onde parou:** [1 linha]
14
+ - **Próximo passo:** [1 linha, a primeira coisa a fazer ao voltar]
15
+ - **Bloqueio:** [1 linha, ou "nenhum"]
16
+ - **Última sessão:** [YYYY-MM-DD] — [1 linha]
17
+ ```
18
+
19
+ Por que 12 linhas: o `/ver` vira 1 Read de 14 linhas em vez de um tail de 60. E o bloco fica no topo, onde qualquer humano abrindo a nota também lê primeiro.
20
+
21
+ O que **não** entra no bloco: histórico, decisão, aprendizado, lista longa de pendências. Histórico é a tabela `Sessões`; decisão é `_decisions/`; aprendizado é a auto-memória do agente; a lista completa de pendências é a seção `O que falta`.
22
+
5
23
  ## /iniciar
6
24
 
7
25
  **Objetivo:** configurar projeto novo. Só cria arquivos — não lê nada além do CEREBRO.md mínimo.
8
26
 
9
27
  **Passos:**
28
+
10
29
  1. Descobrir vault (ver seção Vault)
11
30
  2. `grep -c "$PROJ" "$VAULT/CEREBRO.md"` → verificar se projeto já existe (0 = novo)
12
31
  3. Se novo: entrevistar em 1 mensagem (organização, info essencial, estilo, modo)
@@ -15,21 +34,27 @@ Carregue este arquivo ao executar `/iniciar`, `/ver` ou `/salvar`. Antes de tudo
15
34
  6. Confirmar
16
35
 
17
36
  **Template `projetos/[nome].md`:**
37
+
18
38
  ```markdown
19
39
  # [Nome] — Estado Atual
20
40
  > Atualizado: [data]
21
41
 
42
+ ## Estado
43
+ - **Fase:** [fase]
44
+ - **Stack:** [stack]
45
+ - **Onde parou:** [1 linha]
46
+ - **Próximo passo:** [1 linha]
47
+ - **Bloqueio:** nenhum
48
+ - **Última sessão:** [data] — [1 linha]
49
+
22
50
  ## Preferências
23
51
  - Organização: [resposta]
24
52
  - Info essencial: [resposta]
25
53
  - Estilo: [resposta]
26
54
  - Modo: [registro / sugestivo]
27
55
 
28
- ## Stack
29
- [breve descrição]
30
-
31
- ## Onde parou
32
- -
56
+ ## Contexto
57
+ [o que o bloco Estado não cabe: stack detalhada, restrições, links]
33
58
 
34
59
  ## O que falta
35
60
  - [ ]
@@ -41,6 +66,7 @@ Carregue este arquivo ao executar `/iniciar`, `/ver` ou `/salvar`. Antes de tudo
41
66
  ```
42
67
 
43
68
  **Template bloco em CEREBRO.md:**
69
+
44
70
  ```markdown
45
71
  ### [Nome] [emoji]
46
72
  - **Stack:** [stack]
@@ -51,20 +77,14 @@ Carregue este arquivo ao executar `/iniciar`, `/ver` ou `/salvar`. Antes de tudo
51
77
 
52
78
  ## /ver
53
79
 
54
- **Objetivo:** mostrar estado atual rápido. Máximo: 1 Read.
80
+ **Objetivo:** mostrar estado atual rápido. Máximo: 1 Read de 14 linhas.
55
81
 
56
82
  **Passos:**
57
- 1. `wc -l "$VAULT/projetos/$PROJ.md"` → total de linhas
58
- 2. Read com `offset=(n-60)`, `limit=60` → pega Onde parou + O que falta + Sessões
59
- 3. Retornar em formato condensado:
60
83
 
61
- ```
62
- ## [Projeto] [data última sessão]
63
- Stack: [1 linha]
64
- Onde parou: [bullets]
65
- O que falta: [checkboxes]
66
- Última sessão: [1 linha]
67
- ```
84
+ 1. Read `projetos/[nome].md` com `limit=14` (o bloco Estado está no topo)
85
+ 2. Devolver o bloco quase como está, sem reescrever
86
+
87
+ **Arquivo antigo, sem bloco Estado no topo:** cai no caminho lento uma única vez — `wc -l` e Read das últimas 60 linhas — e ao devolver, ofereça criar o bloco. Aceito, o próximo `/ver` volta a custar 1 Read curto.
68
88
 
69
89
  ## /salvar
70
90
 
@@ -73,6 +93,7 @@ O que falta: [checkboxes]
73
93
  **Passos (executar em ordem, sem desvios):**
74
94
 
75
95
  **1. Localizar projeto e bloco no CEREBRO.md (1 bash call)**
96
+
76
97
  ```bash
77
98
  VAULT=~/Documents/projects/Obsidian\ Vault
78
99
  PROJ=construcao # inferir do diretório atual ou contexto
@@ -80,43 +101,46 @@ grep -n "### \|Última sessão\|Pendente" "$VAULT/CEREBRO.md" | grep -A2 -i "$PR
80
101
  wc -l "$VAULT/projetos/$PROJ.md"
81
102
  ```
82
103
 
83
- **2. Ler apenas o final do arquivo do projeto (1 Read)**
84
- - `offset = (total_linhas - 80)`, `limit = 80`
85
- - Isso captura: Hoje atual, Onde parou, O que falta, tabela Sessões
104
+ **2. Ler o topo e o fim do arquivo do projeto (2 Reads curtos)**
105
+
106
+ - topo: `limit=14` bloco Estado
107
+ - fim: `offset = (total_linhas - 40)`, `limit = 40` → O que falta e tabela Sessões
86
108
 
87
109
  **3. Construir as alterações na memória, depois aplicar (Edits atômicos)**
88
110
 
89
- Em `projetos/[nome].md`, sempre adicionar ACIMA da seção "Onde parou" existente:
111
+ Em `projetos/[nome].md`:
112
+
113
+ - **Sobrescrever o bloco `## Estado`** inteiro, mantendo os mesmos 6 campos e o teto de 12 linhas. Não empilhar bloco novo: o histórico é a tabela.
114
+ - Atualizar a seção `O que falta` (marcar o que saiu, acrescentar o que entrou).
115
+ - Acrescentar 1 linha ao fim da tabela `Sessões`:
116
+
90
117
  ```markdown
91
- ## Hoje ([data] [sessão])
92
- - [item 1]
93
- - [item 2]
118
+ | [data] | [resumo 1 linha] |
94
119
  ```
95
120
 
96
- Substituir "Onde parou" e "O que falta" com o estado novo.
97
-
98
- Adicionar linha na tabela Sessões (append na última linha da tabela).
121
+ Arquivo sem bloco `## Estado`: criar agora, logo abaixo do título, com o que a sessão apurou.
99
122
 
100
123
  **4. Atualizar bloco do projeto em CEREBRO.md (1 Edit)**
124
+
101
125
  - Usar grep do passo 1 para saber as linhas exatas
102
126
  - Edit cirúrgico apenas nas linhas "Última sessão" e "Pendente"
103
127
 
104
- **5. Atualizar CONTEXT.md (Edit cirúrgico campos alterados)**
105
- - Nunca reescrever o arquivo inteiro
106
- - Editar apenas: data no cabeçalho, pendências em "O que falta", commit hash se mudou
128
+ **5. Se houve decisão relevante:** criar arquivo em `_decisions/` (ver `comandos-rotina-e-captura.md` para o frontmatter e a regra de grep-antes-de-gravar).
129
+ Aprendizado técnico (armadilha de stack, bug não óbvio, pegadinha de ambiente) **não vai para o vault**: vai para a auto-memória do agente. No vault ninguém lia. No Claude Code ela carrega sozinha no início da sessão; em Codex, OpenCode e Gemini o caminho de leitura é o `/memoria` (ver `comandos-pesquisa-e-memoria.md`).
107
130
 
108
- **6. Append em `_index/sessions.md` (1 Edit ou Write se não existir)**
109
- ```markdown
110
- | [data] | [projeto] | [resumo 1 linha] |
111
- ```
112
-
113
- **7. Se houve decisão ou aprendizado relevante:** criar arquivo em `_decisions/` ou `_learnings/` (Write direto, sem Read prévio).
131
+ **6. Higiene do índice (compactação)**
114
132
 
115
- **8. Higiene do índice (compactação)**
116
133
  ```bash
117
134
  wc -l "$VAULT/CEREBRO.md"
118
135
  ```
136
+
119
137
  - Se > 150 linhas: mover o conteúdo mais antigo/menos essencial (projeto ✅ concluído ou ❌ descontinuado com histórico longo, ou entradas de "Decisões recentes" além das ~15 mais novas) para `_index/cerebro-archive.md`, deixando no lugar só 1 linha de referência `[[_index/cerebro-archive]]`. Nunca apagar, só mover.
120
138
  - Se ≤ 150 linhas: pular este passo.
121
139
 
122
- **9. Confirmar em 2 linhas** o que foi salvo.
140
+ ```bash
141
+ grep -c "^| " "$VAULT/projetos/$PROJ.md"
142
+ ```
143
+
144
+ - Tabela Sessões com mais de 15 linhas: mover as mais antigas para `_index/cerebro-archive.md`, sob `## Sessões antigas — [projeto]`, deixando as 15 mais novas no arquivo do projeto. Nunca apagar, só mover.
145
+
146
+ **7. Confirmar em 2 linhas** o que foi salvo.
@@ -35,7 +35,7 @@ Antes de qualquer rede ou MCP, inspecionar o que o usuário já tem:
35
35
 
36
36
  1. **Pasta `modelos lp/` (ou equivalente)**: rodar `find ~ -maxdepth 6 -type d -iname "modelos*lp*"` para localizar. Listar subpastas, ler package.json e README.md de cada projeto promissor. Identificar quais já tem Lenis, GSAP, R3F, OGL, Embla, Framer Motion, shaders prontos.
37
37
  2. **Projeto atual do usuário**: se houver, listar dependências instaladas (`cat package.json`) e componentes/utilities existentes que podem ser reaproveitados.
38
- 3. **Cérebro / vault do usuário**: usar grep nos arquivos do vault (`projetos/`, `_learnings/`) para achar padrões técnicos já documentados em projetos anteriores.
38
+ 3. **Cérebro / vault do usuário**: usar grep nos arquivos do vault (`projetos/`, `_decisions/`) para achar padrões técnicos já documentados em projetos anteriores.
39
39
 
40
40
  Saída desta fase: lista de **componentes, libs e padrões reaproveitáveis** com path absoluto.
41
41
 
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: tracking-audit
3
+ description: Auditoria e diagnóstico de rastreamento de resposta direta em dois modos. Modo implantação valida pixel, CAPI, domínio verificado, eventos priorizados, template de UTM com ID, repasse do parâmetro nativo pelo checkout, higiene de nomenclatura e compra-teste por caminho. Modo diagnóstico lê as transições do funil contra a régua, separa problema de medição de problema de conversão e diz qual transição está furando. Use quando alguém perguntar "por que a venda não bate com o gerenciador", "onde está furando o funil", "meu pixel está certo?", "as UTMs estão corretas?", "o tráfego orgânico está inflado", "qual dado falta pra eu decidir", ou antes de subir campanha nova. NÃO use para desenhar plano de medição de SaaS/produto (use analytics-tracking), para decidir bid e orçamento (use paid-ads) nem para criar a oferta (use wizz-offer-forge).
4
+ ---
5
+
6
+ # Tracking Audit
7
+
8
+ Auditoria de rastreamento para oferta de resposta direta. Uma hora aqui evita 30 dias de campanha medida errado.
9
+
10
+ A skill faz duas coisas e nada além: **valida o que foi instalado** e **diz onde o funil está furando**. Ela não cria oferta, não decide bid e não escreve copy.
11
+
12
+ ## Passo 0 — Achar a régua (obrigatório, sempre)
13
+
14
+ Benchmark sem origem é chute. Antes de qualquer análise, resolva de onde vêm os números, nesta ordem:
15
+
16
+ 1. **Skill `lowticket-metodologia` instalada?** Se sim, ela tem precedência. Leia a entrada de diagnóstico de funil no INDEX dela e use os benchmarks de lá. Declare na resposta: "régua: metodologia low ticket".
17
+ 2. **O projeto tem histórico próprio?** Trinta dias de dados reais do mesmo público valem mais que qualquer benchmark de mercado. Use a mediana do próprio histórico como linha de base.
18
+ 3. **Nenhum dos dois?** Peça ao usuário. Não invente faixa, não use número de memória, não cite benchmark sem dizer de onde saiu.
19
+
20
+ > Regra anti-invenção: todo número que aparecer no relatório tem fonte declarada, ou vira PENDÊNCIA. Um relatório com faixa inventada é pior que nenhum relatório, porque parece medido.
21
+
22
+ ## Escolher o modo
23
+
24
+ | O pedido é... | Modo | Referência |
25
+ |---|---|---|
26
+ | Vou subir campanha, está tudo instalado? | implantação | `references/modo-implantacao.md` |
27
+ | Está rodando e o número não fecha | diagnóstico | `references/modo-diagnostico.md` |
28
+ | A venda não bate com o gerenciador | diagnóstico, começando por atribuição | `references/utm-e-atribuicao.md` |
29
+ | Como monto as UTMs desta conta | implantação, só a parte de tags | `references/utm-e-atribuicao.md` |
30
+
31
+ Em dúvida entre os dois: se existe dado rodando, é diagnóstico. Implantação é para o que ainda não subiu.
32
+
33
+ ## Os princípios que decidem no empate
34
+
35
+ - **O banco próprio é a fonte de verdade.** Gerenciador e Analytics perdem venda (bloqueador, iOS, cookie recusado). O número oficial vem do banco alimentado por webhook da plataforma de pagamento. Quando as duas fontes divergem, a divergência é o achado, não um erro de leitura.
36
+ - **O pixel mede o pixel.** Connect rate é o instante em que o `PageView` dispara, não o instante em que a pessoa vê a oferta. Subir o pixel sem consertar a página é maquiagem de métrica.
37
+ - **Atribuir por ID, não por nome.** A UTM carrega nome e ID. Renomear campanha não pode quebrar a atribuição.
38
+ - **Orgânico não é canal, é ausência de UTM.** O balde "organic" é destaque sem tag, direct e recompra. Taguear tudo e ver o orgânico cair é a prova da origem real.
39
+ - **Higiene de nomenclatura é infraestrutura.** Nome de campanha sujo não se conserta depois: a plataforma continua servindo o nome antigo em cache para o que já foi entregue.
40
+ - **Diagnóstico é do fim para o começo.** Sempre. Recuperar venda iniciada é dinheiro que já era seu; mexer em criativo com checkout furando é desperdício.
41
+
42
+ ## Entradas que a auditoria precisa
43
+
44
+ Peça de uma vez, não uma por uma:
45
+
46
+ - URL da página de vendas e da página de checkout
47
+ - Plataforma de checkout e de pagamento
48
+ - Print ou export do gerenciador com: cliques no link, visitas à página, checkouts iniciados, compras, valor gasto, valor atribuído
49
+ - Acesso (ou print) do painel de atribuição, quando existir
50
+ - O template de UTM que está colado hoje no campo de parâmetros de URL
51
+
52
+ Faltou item: siga com o que dá e liste o que falta em PENDÊNCIAS. Nunca preencha buraco de dado com estimativa.
53
+
54
+ ## Saída
55
+
56
+ Um relatório em markdown, sempre com estas quatro partes:
57
+
58
+ 1. **Achados por severidade.** `CRÍTICO` (o dado está errado e a decisão em cima dele também), `ALTO` (perde venda ou perde atribuição), `MÉDIO` (higiene, vai doer depois), `BAIXO` (melhoria).
59
+ 2. **A transição que está furando**, com a taxa real calculada e a régua ao lado, sempre com a fonte da régua.
60
+ 3. **O que consertar, em ordem**, seguindo a hierarquia do modo diagnóstico. Um item por linha, com quem resolve (dev, checkout, criativo, página).
61
+ 4. **Plano de tags pronto para colar**, quando o modo for implantação ou quando a auditoria encontrar UTM errada.
62
+
63
+ Feche com **PENDÊNCIAS**: o que não deu para verificar e o que precisa de acesso ou de dado que não veio.
64
+
65
+ ## Ferramentas
66
+
67
+ - Inspeção de página: CLI `agent-browser`. Nunca Playwright.
68
+ - Nada mais é obrigatório. A auditoria funciona lendo print e página.
69
+
70
+ ## Quando delegar
71
+
72
+ | Situação | Vai para |
73
+ |---|---|
74
+ | O furo é a página (LCP, mobile, blocos) | `page-cro` |
75
+ | O furo é o criativo | `ad-creative` |
76
+ | O furo é bid, orçamento ou estrutura de campanha | `paid-ads` |
77
+ | Precisa desenhar medição de produto ou SaaS | `analytics-tracking` |
78
+ | A oferta em si não fecha | `wizz-offer-forge` |
@@ -0,0 +1,72 @@
1
+ # Modo diagnóstico
2
+
3
+ Está rodando e o número não fecha. Este modo descobre **qual transição está furando** e separa problema de medição de problema de conversão.
4
+
5
+ Régua: leia o Passo 0 do `SKILL.md`. Cada faixa citada no relatório declara de onde veio.
6
+
7
+ ## As 5 transições
8
+
9
+ Base do funil é a visita à página, igual a 100%. A taxa real de cada transição é a etapa dividida pela **anterior**, nunca pela base.
10
+
11
+ | # | Transição | O que ela revela |
12
+ |---|---|---|
13
+ | 1 | Cliques no anúncio → Visitas na página | Saúde técnica: velocidade, redirect, SSL, mobile, disparo do `PageView` |
14
+ | 2 | Visitas → Checkout iniciado | Casamento entre criativo, página e oferta |
15
+ | 3 | Checkout iniciado → Venda iniciada | Atrito de checkout: campos, meios de pagamento, frete, taxa surpresa |
16
+ | 4 | Venda iniciada → Aprovada (PIX) | Recuperação: lembrete, prazo, instrução |
17
+ | 5 | Venda iniciada → Aprovada (cartão) | Recusa: antifraude, parcelamento, emissor |
18
+
19
+ Sempre diagnosticar **do fim para o começo**.
20
+
21
+ ## Hierarquia do que atacar primeiro
22
+
23
+ Se dá para mexer em uma coisa só:
24
+
25
+ 1. **Venda iniciada → aprovada.** O ROI mais rápido do funil. Esse dinheiro já era seu.
26
+ 2. **Checkout iniciado → venda iniciada.** Ajuste barato, ganho grande.
27
+ 3. **Visitas → checkout.** Página e criativo. Mais lento e mais caro; só depois que o checkout está resolvido.
28
+ 4. **Cliques → visitas.** Técnico. Chama dev.
29
+
30
+ Ordem de prioridade das métricas: vendas > checkout iniciado > CPC > hook rate > hold rate > CPM. Não se mexe em CPC se a página não converte. Não se mexe em CPA se o checkout está furando.
31
+
32
+ ## Medição contra conversão
33
+
34
+ Antes de dizer "a conversão caiu", prove que a **medição** está de pé. As três perguntas:
35
+
36
+ | Sintoma | Se for medição | Se for conversão |
37
+ |---|---|---|
38
+ | Cliques muito acima das visitas | `PageView` não dispara, ou dispara tarde | Página fora do ar, redirect quebrado |
39
+ | Venda no banco e não no gerenciador | Falta CAPI, falta domínio verificado, iOS | Nada: a venda existe |
40
+ | Venda no gerenciador e não no banco | Deduplicação ausente, evento duplicado | Nada: a venda não existe |
41
+ | Orgânico subindo sozinho | Rota sem UTM | Recompra e boca a boca de verdade |
42
+ | Atribuição some ao renomear campanha | Atribuição por nome, não por ID | Nada |
43
+
44
+ Regra prática: se as duas fontes discordam, a discordância **é** o achado. Nunca escolha a fonte que confirma a tese.
45
+
46
+ ## Qual dado falta para decidir
47
+
48
+ Parte do trabalho é dizer o que não dá para responder ainda. Formato:
49
+
50
+ ```
51
+ PENDÊNCIA: não dá para separar atrito de checkout de desistência de preço.
52
+ Falta: evento AddPaymentInfo.
53
+ Custo de instalar: baixo.
54
+ O que muda quando existir: a transição 3 vira duas, e o conserto deixa de ser chute.
55
+ ```
56
+
57
+ Nunca invente o número que falta. Um "provavelmente uns 30%" contamina a decisão inteira.
58
+
59
+ ## ROI verdadeiro contra ROI falso
60
+
61
+ - **ROI falso:** valor atribuído pelo gerenciador dividido pelo gasto do gerenciador. Conta venda que não entrou e ignora venda que entrou sem atribuição.
62
+ - **ROI verdadeiro:** faturamento aprovado no banco próprio, menos taxa da plataforma e menos reembolso, dividido pelo gasto real do período.
63
+
64
+ Sempre reporte os dois lado a lado. A diferença entre eles é o tamanho do buraco de medição.
65
+
66
+ ## Leitura de print do gerenciador
67
+
68
+ Métricas que precisam aparecer no print para o diagnóstico rodar:
69
+
70
+ cliques no link, visualizações da página, checkouts iniciados, compras (ou resultados quando a campanha otimiza para compra), valor gasto, valor atribuído.
71
+
72
+ Faltou alguma: diga qual e o que ela impede de calcular. Não estime.
@@ -0,0 +1,89 @@
1
+ # Modo implantação
2
+
3
+ Checklist executável para antes de subir campanha. Roda de cima para baixo. Cada item tem um jeito de verificar, não é declaração de fé.
4
+
5
+ Régua: leia o Passo 0 do `SKILL.md` antes. Sem régua declarada, o relatório sai sem número.
6
+
7
+ ## 1. Página e carregamento
8
+
9
+ | Verificar | Como | Reprova quando |
10
+ |---|---|---|
11
+ | Página abre no mobile real | `agent-browser` em viewport de celular | Layout quebra ou bloco some |
12
+ | Tempo até o conteúdo principal | PageSpeed Insights, aba mobile | Fora da meta declarada pela régua do projeto |
13
+ | Redirect | Abrir o link do anúncio sem encurtador no meio | Qualquer salto extra ou loop |
14
+ | SSL | Cadeado e certificado válido no domínio final | Aviso do navegador |
15
+
16
+ Furou aqui: é trabalho de dev. Não mexa em criativo antes de resolver.
17
+
18
+ ## 2. Pixel e servidor
19
+
20
+ | Verificar | Como | Reprova quando |
21
+ |---|---|---|
22
+ | Pixel presente na página | Extensão de debug da plataforma ou console | Não dispara `PageView` |
23
+ | Posição do disparo | Ver se o `PageView` sobe antes do conteúdo visível | Dispara em `onload` tardio: infla connect rate e mente sobre a visita |
24
+ | Evento de conversão do lado do servidor (CAPI) | Painel de qualidade da plataforma | Só navegador, sem servidor |
25
+ | Deduplicação | `event_id` igual entre navegador e servidor | Sem `event_id`: a mesma venda conta duas vezes |
26
+ | Domínio verificado | Painel de negócio da plataforma | Não verificado: perde atribuição em iOS |
27
+
28
+ > O pixel mede o pixel. Um connect rate bonito com página lenta é métrica maquiada, não conversão.
29
+
30
+ ## 3. Eventos priorizados
31
+
32
+ Instale nesta ordem. Os quatro primeiros são obrigatórios; os outros entram quando o funil tiver a etapa.
33
+
34
+ 1. `PageView` — visita à página de vendas
35
+ 2. `ViewContent` — chegou ao bloco de oferta (não é o mesmo que abrir a página)
36
+ 3. `InitiateCheckout` — clicou para comprar
37
+ 4. `Purchase` — venda aprovada, com valor e moeda
38
+ 5. `AddPaymentInfo` — preencheu pagamento, separa atrito de checkout de desistência de preço
39
+ 6. `Lead` — captura, quando existir etapa de lead
40
+ 7. `Subscribe` ou evento de recorrência, quando existir
41
+ 8. Evento próprio de upsell ou order bump, quando existir
42
+
43
+ Regra: evento sem valor monetário em `Purchase` inutiliza ROAS. Evento duplicado inutiliza tudo.
44
+
45
+ ## 4. Tags e atribuição
46
+
47
+ Ver `utm-e-atribuicao.md` para os templates. O que a implantação precisa provar:
48
+
49
+ - O template de UTM está colado no campo de parâmetros de URL do anúncio, não no destino do anúncio.
50
+ - Cada parâmetro carrega nome **e** ID.
51
+ - O parâmetro nativo da plataforma de checkout (quando existir) recebe a mesma informação empacotada, porque o checkout nem sempre repassa `utm_*`.
52
+ - Nenhum nome de campanha, conjunto ou anúncio contém `|`, `#`, `&` ou `?`.
53
+ - O padrão de nomenclatura está escrito em algum lugar que a próxima pessoa lê.
54
+
55
+ ## 5. Repasse pelo checkout
56
+
57
+ Este é o item que mais falha e o mais fácil de esquecer.
58
+
59
+ 1. Abra a página com uma UTM de teste na URL.
60
+ 2. Clique para comprar.
61
+ 3. Na página de checkout, confirme que os parâmetros chegaram (URL, campo escondido ou painel da plataforma).
62
+ 4. Confirme que o webhook de venda entrega esses parâmetros para o destino final (banco, planilha, painel de atribuição).
63
+
64
+ Quebrou entre 2 e 3: o checkout não repassa. Use o parâmetro nativo.
65
+ Quebrou entre 3 e 4: o problema é a integração, não a tag.
66
+
67
+ ## 6. Compra-teste por caminho
68
+
69
+ Cada rota de entrada recebe uma compra real de teste antes de investir:
70
+
71
+ - anúncio
72
+ - link da bio
73
+ - story
74
+ - destaque
75
+ - direct ou conversa
76
+
77
+ Para cada rota, registre: a venda apareceu no banco, apareceu no painel de atribuição, e apareceu com a origem certa. Rota que não passa nas três é rota cega.
78
+
79
+ ## 7. Fechamento
80
+
81
+ Antes de liberar a subida, o relatório precisa responder sim para as cinco:
82
+
83
+ 1. A visita é medida no instante certo?
84
+ 2. A venda chega ao banco próprio?
85
+ 3. A venda sabe de qual anúncio veio, por ID?
86
+ 4. O orgânico é o que sobra depois de tudo taguear, e não um balde de preguiça?
87
+ 5. Existe pelo menos uma compra-teste aprovada por rota?
88
+
89
+ Qualquer "não" vira achado `CRÍTICO` ou `ALTO`. Nada sobe com um `CRÍTICO` aberto.
@@ -0,0 +1,75 @@
1
+ # UTM e atribuição
2
+
3
+ O cimento de todo o resto. Se a tag está errada, o funil inteiro mede ficção.
4
+
5
+ ## A regra central
6
+
7
+ Cada parâmetro carrega **nome e ID**, separados por um delimitador fixo. O nome existe para humano ler; o ID existe para a atribuição sobreviver a renomeação.
8
+
9
+ ```
10
+ utm_campaign={{campaign.name}}|{{campaign.id}}
11
+ utm_medium={{adset.name}}|{{adset.id}}
12
+ utm_content={{ad.name}}|{{ad.id}}
13
+ utm_term={{placement}}
14
+ utm_source=<plataforma>
15
+ ```
16
+
17
+ Cole no campo **parâmetros de URL** do anúncio, nunca no destino.
18
+
19
+ ## Redundância no parâmetro nativo
20
+
21
+ Muito checkout não repassa `utm_*` para o webhook de venda. Quando a plataforma de checkout tem parâmetro próprio (por exemplo `xcod`, `src` ou `sck`), empacote a mesma informação lá também, com um separador longo e improvável:
22
+
23
+ ```
24
+ xcod=<origem><SEP><campaign.name>|<campaign.id><SEP><adset.name>|<adset.id><SEP><ad.name>|<ad.id><SEP><placement>
25
+ ```
26
+
27
+ O separador precisa ser uma string que nunca apareça em nome de campanha. Escolha uma vez e nunca mude: mudar quebra o histórico.
28
+
29
+ ## Delimitadores proibidos em nomes
30
+
31
+ Nunca use `|`, `#`, `&` ou `?` em nome de campanha, conjunto ou anúncio. São delimitadores da própria string de tag.
32
+
33
+ Violou: **recriar a campanha**. Renomear não resolve, porque a plataforma continua servindo o nome antigo em cache para as impressões já entregues.
34
+
35
+ Padrão de nome que não dá problema: minúscula, sem acento, palavras separadas por hífen ou underscore, campos em ordem fixa. Escreva o padrão em algum lugar. Padrão que só existe na cabeça de alguém não é padrão.
36
+
37
+ ## Outras plataformas
38
+
39
+ O formato é o mesmo em toda plataforma de mídia: macro nativa da plataforma preenchendo `utm_*`, mais o empacotamento no parâmetro nativo do checkout quando ele existir.
40
+
41
+ | Plataforma | O que muda |
42
+ |---|---|
43
+ | Meta | Macros `{{campaign.name}}`, `{{campaign.id}}`, `{{adset.*}}`, `{{ad.*}}`, `{{placement}}` |
44
+ | Google | Macros entre chaves simples, mais `{lpurl}?` na frente e `keyword`, `device`, `network` |
45
+ | TikTok, Kwai, Taboola | Mesma estrutura, nomes de macro próprios da plataforma |
46
+
47
+ Antes de escrever o template de uma plataforma, confirme o nome exato da macro na documentação dela. Macro errada entrega a string literal `{{campaign.id}}` na URL, e ninguém percebe até a primeira venda.
48
+
49
+ Existe variação a mais quando há cloaker na frente do checkout: um conector extra para não quebrar a string. Confirme com quem instalou o cloaker.
50
+
51
+ ## O balde do orgânico
52
+
53
+ "Orgânico" não é canal. É tudo que chegou sem tag: destaque do Instagram sem UTM, link na bio sem UTM, direct, recompra, boca a boca.
54
+
55
+ Diagnóstico: tague **todas** as rotas próprias (bio, destaque, story, direct, e-mail, grupo) e observe o orgânico cair. O que sobrar depois disso é orgânico de verdade. O tamanho da queda é a prova de quanto o balde estava mentindo.
56
+
57
+ Padrão sugerido para rota própria:
58
+
59
+ ```
60
+ utm_source=instagram&utm_medium=<bio|destaque|story|direct>&utm_campaign=<nome-do-destaque-ou-post>
61
+ ```
62
+
63
+ ## Primeiro toque
64
+
65
+ Último clique é o padrão de quase toda ferramenta, e ele esconde qual anúncio **apresentou** a oferta. Guarde o primeiro toque no seu banco (primeira UTM vista pelo visitante, com data) e compare com o último. Multi-toque simples, dois campos, resolve a maior parte das decisões de criativo.
66
+
67
+ ## Conferência rápida
68
+
69
+ Cinco checagens que pegam quase todo erro de tag:
70
+
71
+ 1. Abra o anúncio em preview e leia a URL final: tem macro literal sobrando?
72
+ 2. A UTM sobrevive ao redirect até o checkout?
73
+ 3. O webhook de venda entrega os campos ao banco?
74
+ 4. Dois anúncios diferentes geram `utm_content` diferentes?
75
+ 5. Renomear um anúncio quebra a atribuição? Se quebrar, está atribuindo por nome.