wizz-method 1.17.0 → 1.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +5 -2
- package/removals.txt +3 -0
- package/skills-registry.yaml +67 -29
- package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +1 -1
- package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +41 -37
- package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +1 -1
- package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +1 -1
- package/src/core-skills/_shared/handoff-protocol.md +6 -4
- package/src/modules/lowticket/README.md +55 -0
- package/src/modules/lowticket/module.yaml +31 -0
- package/src/modules/lowticket/skills/lowticket-funil/SKILL.md +112 -0
- package/src/modules/lowticket/skills/lowticket-funil/references/copy-das-paginas.md +75 -0
- package/src/modules/lowticket/skills/lowticket-funil/references/mapa-do-funil.md +71 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/CATALOGO.md +352 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/SKILL.md +62 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/01-principios.md +12 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/02-diagnostico-funil.md +83 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/03-campanha-bidcap.md +95 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/04-criativos.md +66 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/04a-criativos-ia.md +79 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/04b-criativos-formatos.md +152 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/05-oferta.md +51 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/06-pagina-vendas.md +175 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/06a-instagram.md +138 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/07-funil-upsell.md +73 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/08-pesquisa-publico.md +14 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/09-especialista-coproducao.md +41 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/10-levantar-caixa.md +49 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/11-checklist-roi.md +36 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/12-mineracao-ofertas.md +63 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/12a-mineracao-veredito.md +78 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/12b-fabrica-de-ofertas.md +178 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/13-benchmarks-vsl.md +10 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/14-vocabulario.md +55 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/15-como-estender.md +35 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/INDEX.md +45 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/guardrails.md +33 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/pontos-em-aberto.md +42 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/references/swipe-file.md +38 -0
- package/src/modules/lowticket/skills/lowticket-minerador/SKILL.md +115 -0
- package/src/modules/lowticket/skills/lowticket-minerador/references/rubrica.md +75 -0
- package/src/modules/lowticket/skills/lowticket-pagina/SKILL.md +106 -0
- package/src/modules/lowticket/skills/lowticket-pagina/references/metas-e-medicao.md +70 -0
- package/src/modules/lowticket/skills/lowticket-pagina/references/padroes-de-codigo.md +148 -0
- package/src/modules/lowticket/skills/lowticket-trafego/SKILL.md +88 -0
- package/src/modules/lowticket/skills/lowticket-trafego/references/formato-do-diagnostico.md +56 -0
- package/src/modules/lowticket/skills/lowticket-trafego/references/reguas.md +72 -0
- package/src/modules/wizz/README.md +1 -1
- package/src/modules/wizz/_shared/cerebro.md +35 -1
- package/src/modules/wizz/_shared/communication-rules.md +8 -1
- package/src/modules/wizz/_shared/token-economy.md +7 -10
- 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/SKILL.md +2 -0
- package/src/modules/wizz/agents/wizz-designer/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +2 -0
- package/src/modules/wizz/agents/wizz-growth/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +7 -3
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +1 -1
- 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 +2 -2
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +2 -2
- package/src/modules/wizz/overrides/wizz-agent-dev.toml +1 -1
- 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/analytics-tracking/SKILL.md +2 -0
- package/src/skills-lib/analytics-tracking/references/utm-taxonomy.md +92 -0
- package/src/skills-lib/cerebro/SKILL.md +20 -17
- package/src/skills-lib/cerebro/references/comandos-pesquisa-e-memoria.md +96 -0
- package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +25 -6
- package/src/skills-lib/cerebro/references/comandos-sessao.md +61 -37
- package/src/skills-lib/find-skills/SKILL.md +0 -1
- package/src/skills-lib/impeccable/SKILL.md +20 -25
- package/src/skills-lib/impeccable/references/command-workflows.md +35 -0
- package/src/skills-lib/impeccable/references/design-rules.md +1 -1
- package/src/skills-lib/impeccable/references/pin-unpin-and-hooks.md +4 -14
- package/src/skills-lib/impeccable/references/routing-rules.md +8 -25
- package/src/skills-lib/premium-landing-ui-researcher/SKILL.md +6 -6
- package/src/skills-lib/premium-landing-ui-researcher/references/component-sources.md +12 -81
- package/src/skills-lib/premium-landing-ui-researcher/references/core-goal.md +2 -4
- package/src/skills-lib/premium-landing-ui-researcher/references/mandatory-process.md +6 -7
- package/src/skills-lib/premium-landing-ui-researcher/references/output-format-and-quality.md +3 -4
- package/src/skills-lib/premium-landing-ui-researcher/references/source-first-protocol.md +43 -124
- package/src/skills-lib/premium-landing-ui-researcher/references/source-links.md +0 -8
- package/src/skills-lib/tracking-audit/SKILL.md +78 -0
- package/src/skills-lib/tracking-audit/references/modo-diagnostico.md +72 -0
- package/src/skills-lib/tracking-audit/references/modo-implantacao.md +89 -0
- package/src/skills-lib/tracking-audit/references/utm-e-atribuicao.md +75 -0
- package/src/skills-lib/ui-component-curator/SKILL.md +13 -7
- package/src/skills-lib/ui-ux-pro-max/SKILL.md +18 -3
- package/src/skills-lib/ui-ux-pro-max/references/search-reference.md +3 -3
- package/src/skills-lib/ui-ux-pro-max/references/workflow-guide.md +20 -20
- package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/src/skills-lib/ui-ux-pro-max/scripts/search.py +9 -3
- package/src/skills-lib/wizz-offer-forge/SKILL.md +27 -2
- package/src/skills-lib/wizz-offer-forge/references/plano-de-medicao.md +74 -0
- package/src/skills-lib/wizz-router/SKILL.md +3 -1
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +3 -3
- package/tools/installer/commands/trace-report.js +1 -1
- package/tools/installer/modules/skills-lib.js +7 -1
- package/wizz-modules.yaml +17 -0
- package/src/skills-lib/cerebro/references/comandos-pesquisa-e-sync.md +0 -44
- package/src/skills-lib/graphify/.graphify_version +0 -1
- package/src/skills-lib/graphify/SKILL.md +0 -1199
|
@@ -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.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ui-component-curator
|
|
3
|
-
description: analyze an existing frontend project, infer its visual style and product tone, then research and recommend compatible UI components and effects from
|
|
3
|
+
description: analyze an existing frontend project, infer its visual style and product tone, then research and recommend compatible UI components and effects from public component catalogs, registries and source repositories. use when the user wants help choosing components, effects, sections, or visual patterns that fit an existing project — especially hero effects, cards, buttons, testimonials, pricing sections, navigation, or any interactive pattern. trigger whenever the user wants to add a UI element and wants Claude to study the project first before suggesting options. always inspect the codebase and exact component sources, provide evidence and plan before editing.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Overview
|
|
@@ -9,7 +9,7 @@ Read the project. Infer its design language. Then find components that feel like
|
|
|
9
9
|
|
|
10
10
|
Act as a UI curator with taste and restraint — not a gallery explorer. Optimize for consistency over novelty.
|
|
11
11
|
|
|
12
|
-
**Golden rule:**
|
|
12
|
+
**Golden rule:** Inspect the project → search real sources → document evidence → plan → implement within the user's authorization. Ask only when a material choice or paid access is unresolved.
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
@@ -30,7 +30,13 @@ Extract the project's design DNA:
|
|
|
30
30
|
|
|
31
31
|
Do not ask the user to describe the style unless the project has no inspectable UI at all.
|
|
32
32
|
|
|
33
|
-
## 2. Search
|
|
33
|
+
## 2. Search and inspect public sources
|
|
34
|
+
|
|
35
|
+
Start with existing project components. Then search appropriate public sources: [React Bits](https://reactbits.dev/), [Cult UI](https://www.cult-ui.com/docs), [Componentry](https://componentry.dev/), or [shadcn/ui](https://ui.shadcn.com/docs). Compare at least two suitable sources when available.
|
|
36
|
+
|
|
37
|
+
Open the exact demo and source file/registry item. Check the actual imports, license, dependencies, stack variant and revision; use current official documentation (Context7 when available) for API compatibility. Inspect animation/interaction in the available browser; label static-only inspection honestly. If a source fails, record the failure and continue elsewhere.
|
|
38
|
+
|
|
39
|
+
Record search terms, exact URLs/paths, revision/date, license, dependencies, visual inspection status and acceptance/rejection reason in the project's design artifact (or `design-research.md`). A catalog homepage or search snippet is not component evidence. Never invent filenames, components or test results.
|
|
34
40
|
|
|
35
41
|
Use the inferred style DNA as the search filter. Prefer:
|
|
36
42
|
- options that feel native to the current project
|
|
@@ -50,9 +56,9 @@ For each candidate, say briefly:
|
|
|
50
56
|
|
|
51
57
|
Provide a compact plan: what changes, which files, any dependency or styling adaptation needed.
|
|
52
58
|
|
|
53
|
-
## 5.
|
|
59
|
+
## 5. Present evidence and proceed within scope
|
|
54
60
|
|
|
55
|
-
|
|
61
|
+
Send the exact candidate links and recommendation. If the user authorized implementation and the design direction is known, proceed with the best fit. Ask only for unresolved direction, paid access or a scope change.
|
|
56
62
|
|
|
57
63
|
---
|
|
58
64
|
|
|
@@ -98,5 +104,5 @@ Up to 2 backup options only if genuinely different and useful.
|
|
|
98
104
|
## Implementation plan
|
|
99
105
|
What changes, which files, any dependency or adaptation work.
|
|
100
106
|
|
|
101
|
-
##
|
|
102
|
-
|
|
107
|
+
## Research evidence
|
|
108
|
+
Exact candidate demo/source links, revision/date, license and dependencies, visual inspection status, decisions and unavailable sources. State what still needs a user decision.
|
|
@@ -17,13 +17,28 @@ Reference these guidelines when:
|
|
|
17
17
|
|
|
18
18
|
## First Step
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
### Wizz: construction entry point
|
|
21
|
+
|
|
22
|
+
Before producing UI code, inspect the existing project and choose the research skill:
|
|
23
|
+
|
|
24
|
+
- New landing page or a full page composition: invoke `skill:premium-landing-ui-researcher` for source research and section planning.
|
|
25
|
+
- A component or effect in an existing project: invoke `skill:ui-component-curator` to inspect compatible candidates.
|
|
26
|
+
- Existing UI polish only: invoke `skill:impeccable`; invoke `skill:taste-skill` when a redesign direction is needed.
|
|
27
|
+
- HTML prototype/visual variants: invoke `skill:huashu-design`. Stitch-to-React conversion: invoke `skill:react-components`.
|
|
28
|
+
|
|
29
|
+
The local Python database below recommends design tokens and patterns; it does **not** search the web, inspect component source code, or prove that a component exists. For component research, require exact demo/source URLs, inspected files or registry items, revision/date, license, dependencies and a fit decision. Continue with an available public source if one fails; state any unverified result. Do not claim research based only on the database output.
|
|
30
|
+
|
|
31
|
+
### Local design-system search
|
|
32
|
+
|
|
33
|
+
Analyze the user request (product type, style keywords, industry, stack). Use `--design-system` for a new page/project or a change to the overall visual direction:
|
|
21
34
|
|
|
22
35
|
```bash
|
|
23
|
-
python3
|
|
36
|
+
python3 scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
|
|
24
37
|
```
|
|
25
38
|
|
|
26
|
-
|
|
39
|
+
Run from this skill's directory. For a targeted concern, use `--domain`; for implementation guidance, use a separate `--stack` query inferred from the project. This bundled engine ignores `--stack` in `--design-system` mode. If no stack can be inferred and it matters, ask instead of assuming Tailwind.
|
|
40
|
+
|
|
41
|
+
Use one dominant intent and 2–5 meaningful terms per query. Verify the returned category and fit before applying results. Retry once with a narrower query if results are off-topic; after that, label general guidance as a fallback. Do not persist unverified output. When using `--persist`, pass `--output-dir` for the project and inspect existing design artifacts first: this bundled version can overwrite them. Needs Python 3 — see `references/workflow-guide.md` if `python3 --version` fails.
|
|
27
42
|
|
|
28
43
|
## References (load on demand)
|
|
29
44
|
|
|
@@ -21,7 +21,7 @@ Load this file when picking a `--domain` or `--stack` value, or when choosing an
|
|
|
21
21
|
|
|
22
22
|
| Stack | Focus |
|
|
23
23
|
|-------|-------|
|
|
24
|
-
| `html-tailwind` | Tailwind utilities, responsive, a11y (
|
|
24
|
+
| `html-tailwind` | Tailwind utilities, responsive, a11y (only when project uses it) |
|
|
25
25
|
| `react` | State, hooks, performance, patterns |
|
|
26
26
|
| `nextjs` | SSR, routing, images, API routes |
|
|
27
27
|
| `vue` | Composition API, Pinia, Vue Router |
|
|
@@ -38,8 +38,8 @@ The `--design-system` flag supports two output formats:
|
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
# ASCII box (default) - best for terminal display
|
|
41
|
-
python3
|
|
41
|
+
python3 scripts/search.py "fintech crypto" --design-system
|
|
42
42
|
|
|
43
43
|
# Markdown - best for documentation
|
|
44
|
-
python3
|
|
44
|
+
python3 scripts/search.py "fintech crypto" --design-system -f markdown
|
|
45
45
|
```
|
|
@@ -37,14 +37,14 @@ Extract key information from user request:
|
|
|
37
37
|
- **Product type**: SaaS, e-commerce, portfolio, dashboard, landing page, etc.
|
|
38
38
|
- **Style keywords**: minimal, playful, professional, elegant, dark mode, etc.
|
|
39
39
|
- **Industry**: healthcare, fintech, gaming, education, etc.
|
|
40
|
-
- **Stack**:
|
|
40
|
+
- **Stack**: infer from project dependencies. If unknown and needed, ask.
|
|
41
41
|
|
|
42
|
-
### Step 2:
|
|
42
|
+
### Step 2: Choose the search mode
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
Use `--design-system` for new pages/projects or overall visual direction. Use a focused `--domain` for a targeted concern and a separate `--stack` query for implementation. The bundled engine ignores `--stack` in design-system mode. Verify relevance, retry once with a narrower query, and label an unmatched result as a fallback.
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
python3
|
|
47
|
+
python3 scripts/search.py "<product_type> <industry> <keywords>" --design-system [-p "Project Name"]
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
This command:
|
|
@@ -55,40 +55,40 @@ This command:
|
|
|
55
55
|
|
|
56
56
|
**Example:**
|
|
57
57
|
```bash
|
|
58
|
-
python3
|
|
58
|
+
python3 scripts/search.py "beauty spa wellness service" --design-system -p "Serenity Spa"
|
|
59
59
|
```
|
|
60
60
|
|
|
61
61
|
### Step 2b: Persist Design System (Master + Overrides Pattern)
|
|
62
62
|
|
|
63
|
-
To
|
|
63
|
+
Run from this skill's directory. To persist into the user's project, add `--persist --output-dir <project-root>`. Read any existing design artifacts first: this bundled version can overwrite files, so preserve existing decisions and only persist verified output.
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
python3
|
|
66
|
+
python3 scripts/search.py "<query>" --design-system --persist --output-dir "<project-root>" -p "Project Name"
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
This creates:
|
|
70
|
-
- `design-system
|
|
71
|
-
- `design-system
|
|
70
|
+
- `design-system/<project-slug>/MASTER.md` — Global Source of Truth with all design rules
|
|
71
|
+
- `design-system/<project-slug>/pages/` — Folder for page-specific overrides
|
|
72
72
|
|
|
73
73
|
**With page-specific override:**
|
|
74
74
|
```bash
|
|
75
|
-
python3
|
|
75
|
+
python3 scripts/search.py "<query>" --design-system --persist --output-dir "<project-root>" -p "Project Name" --page "dashboard"
|
|
76
76
|
```
|
|
77
77
|
|
|
78
78
|
This also creates:
|
|
79
|
-
- `design-system
|
|
79
|
+
- `design-system/<project-slug>/pages/dashboard.md` — Page-specific deviations from Master
|
|
80
80
|
|
|
81
81
|
**How hierarchical retrieval works:**
|
|
82
|
-
1. When building a specific page (e.g., "Checkout"), first check `design-system
|
|
82
|
+
1. When building a specific page (e.g., "Checkout"), first check `design-system/<project-slug>/pages/checkout.md`
|
|
83
83
|
2. If the page file exists, its rules **override** the Master file
|
|
84
|
-
3. If not, use `design-system
|
|
84
|
+
3. If not, use `design-system/<project-slug>/MASTER.md` exclusively
|
|
85
85
|
|
|
86
86
|
### Step 3: Supplement with Detailed Searches (as needed)
|
|
87
87
|
|
|
88
88
|
After getting the design system, use domain searches to get additional details:
|
|
89
89
|
|
|
90
90
|
```bash
|
|
91
|
-
python3
|
|
91
|
+
python3 scripts/search.py "<keyword>" --domain <domain> [-n <max_results>]
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
**When to use detailed searches:**
|
|
@@ -103,10 +103,10 @@ python3 skills/ui-ux-pro-max/scripts/search.py "<keyword>" --domain <domain> [-n
|
|
|
103
103
|
|
|
104
104
|
### Step 4: Stack Guidelines (Default: html-tailwind)
|
|
105
105
|
|
|
106
|
-
Get implementation-specific best practices
|
|
106
|
+
Get implementation-specific best practices for the stack detected in the project. Ask if the stack matters and cannot be inferred.
|
|
107
107
|
|
|
108
108
|
```bash
|
|
109
|
-
python3
|
|
109
|
+
python3 scripts/search.py "<keyword>" --stack html-tailwind
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
Available stacks: `html-tailwind`, `react`, `nextjs`, `vue`, `svelte`, `swiftui`, `react-native`, `flutter`, `shadcn`, `jetpack-compose`
|
|
@@ -124,7 +124,7 @@ Available stacks: `html-tailwind`, `react`, `nextjs`, `vue`, `svelte`, `swiftui`
|
|
|
124
124
|
### Step 2: Generate Design System (REQUIRED)
|
|
125
125
|
|
|
126
126
|
```bash
|
|
127
|
-
python3
|
|
127
|
+
python3 scripts/search.py "beauty spa wellness service elegant" --design-system -p "Serenity Spa"
|
|
128
128
|
```
|
|
129
129
|
|
|
130
130
|
**Output:** Complete design system with pattern, style, colors, typography, effects, and anti-patterns.
|
|
@@ -133,16 +133,16 @@ python3 skills/ui-ux-pro-max/scripts/search.py "beauty spa wellness service eleg
|
|
|
133
133
|
|
|
134
134
|
```bash
|
|
135
135
|
# Get UX guidelines for animation and accessibility
|
|
136
|
-
python3
|
|
136
|
+
python3 scripts/search.py "animation accessibility" --domain ux
|
|
137
137
|
|
|
138
138
|
# Get alternative typography options if needed
|
|
139
|
-
python3
|
|
139
|
+
python3 scripts/search.py "elegant luxury serif" --domain typography
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
### Step 4: Stack Guidelines
|
|
143
143
|
|
|
144
144
|
```bash
|
|
145
|
-
python3
|
|
145
|
+
python3 scripts/search.py "layout responsive form" --stack html-tailwind
|
|
146
146
|
```
|
|
147
147
|
|
|
148
148
|
**Then:** Synthesize design system + detailed searches and implement the design.
|
|
Binary file
|
|
@@ -71,9 +71,15 @@ if __name__ == "__main__":
|
|
|
71
71
|
|
|
72
72
|
args = parser.parse_args()
|
|
73
73
|
|
|
74
|
-
# Design system takes priority
|
|
75
|
-
if args.design_system:
|
|
76
|
-
|
|
74
|
+
# Design system takes priority
|
|
75
|
+
if args.design_system:
|
|
76
|
+
if args.stack:
|
|
77
|
+
print(
|
|
78
|
+
"Warning: --stack is ignored in --design-system mode. "
|
|
79
|
+
"Run a separate --stack query for implementation guidance.",
|
|
80
|
+
file=sys.stderr,
|
|
81
|
+
)
|
|
82
|
+
result = generate_design_system(
|
|
77
83
|
args.query,
|
|
78
84
|
args.project_name,
|
|
79
85
|
args.format,
|
|
@@ -16,6 +16,7 @@ Um artefato mestre `OFFER-SPEC.md` contendo:
|
|
|
16
16
|
4. **Ancoragem de Preço, Modelagem de Planos & Order Bumps / Upsells**.
|
|
17
17
|
5. **Garantia Reversa / Inversão de Risco** (Risco Zero ou Ganho Duplo).
|
|
18
18
|
6. **Ponte de Tráfego: Matriz de Hooks e Ângulos de Criativos**.
|
|
19
|
+
7. **Plano de Medição** (eventos mínimos, padrão de UTM, metas por transição, hipótese e número que reprova).
|
|
19
20
|
|
|
20
21
|
## Princípios de Forja de Oferta
|
|
21
22
|
|
|
@@ -28,11 +29,21 @@ Um artefato mestre `OFFER-SPEC.md` contendo:
|
|
|
28
29
|
|
|
29
30
|
### Passo 0 — Coleta de Insumos & Ambição
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
**Antes de perguntar qualquer coisa, leia o que já existe.** Oferta boa nasce do resultado da anterior, não de página em branco.
|
|
33
|
+
|
|
34
|
+
Se a skill `cerebro` estiver instalada, rode `/cerebro ver` do projeto e faça um grep por tema em `_decisions/`. Procure especificamente: oferta anterior do mesmo público, preço que já foi testado, garantia que já foi usada, e decisão registrada que proíba algum caminho. Traga o que achou como insumo e diga na resposta de onde veio. Sem a skill instalada, pule este bloco e siga com as perguntas abaixo.
|
|
35
|
+
|
|
36
|
+
Depois, consulte o contexto existente ou pergunte ao usuário:
|
|
32
37
|
1. **Pesquisa de Público Prévia:** Existe um relatório da skill `pesquisa-de-publico-do-piva` ou notas de VoC? Se sim, importe como insumo primário. Se não, defina Avatar, Dor Latente e Nível de Consciência inicial.
|
|
33
38
|
2. **Modelo de Negócio:** Low-ticket (R$ 10 a R$ 97), Front-end médio (R$ 197 a R$ 497) ou High-ticket / Mentoria (R$ 1.000 a R$ 10.000+)?
|
|
34
39
|
3. **Veículo de Entrega:** Curso gravado, comunidade, templates/ferramentas, mentoria ao vivo, SaaS ou híbrido?
|
|
35
40
|
|
|
41
|
+
### Passo 0.5 — Régua local tem precedência
|
|
42
|
+
|
|
43
|
+
Se a skill `lowticket-metodologia` estiver instalada neste projeto, leia as entradas de **oferta, preço e garantia** do INDEX dela e use esses valores como régua acima dos padrões desta skill (faixas de preço, múltiplo de upsell, prazo de garantia). Declare na resposta qual régua está valendo. Onde a régua local contradisser esta skill, **a régua local vence**.
|
|
44
|
+
|
|
45
|
+
Sem essa skill instalada, siga com os padrões desta skill. Nada muda.
|
|
46
|
+
|
|
36
47
|
### Passo 1 — Destilação do Mecanismo Único
|
|
37
48
|
|
|
38
49
|
Consulte `references/mecanismo-unico.md`:
|
|
@@ -70,6 +81,20 @@ Consulte `references/ponte-trafego.md`:
|
|
|
70
81
|
3. *Gancho da Demonstração do Mecanismo*
|
|
71
82
|
4. *Gancho da História de Transformação / Case*
|
|
72
83
|
|
|
73
|
-
### Passo 6 —
|
|
84
|
+
### Passo 6 — Plano de Medição
|
|
85
|
+
|
|
86
|
+
Consulte `references/plano-de-medicao.md`.
|
|
87
|
+
|
|
88
|
+
Uma oferta sem definição de sucesso não pode ser diagnosticada depois: quando ela não converte, ninguém sabe se o furo foi criativo, página, checkout ou a oferta em si. Este passo fecha esse buraco enquanto a promessa ainda está fresca.
|
|
89
|
+
|
|
90
|
+
Derive da própria oferta, sem inventar número:
|
|
91
|
+
- **Eventos mínimos** que precisam existir para medir esta promessa.
|
|
92
|
+
- **Padrão de UTM** por canal de entrada.
|
|
93
|
+
- **Metas por transição do funil**, calibradas para este ticket, com a fonte da régua declarada.
|
|
94
|
+
- **A hipótese principal** em uma frase, e o **número que reprova a oferta**.
|
|
95
|
+
|
|
96
|
+
Se a skill `tracking-audit` estiver instalada, delegue a implantação e a conferência para ela: aqui se declara o que precisa ser verdade, lá se prova que é.
|
|
97
|
+
|
|
98
|
+
### Passo 7 — Compilação e Entrega
|
|
74
99
|
|
|
75
100
|
Grave o artefato final em `{output_folder}/offers/OFFER-[NOME_SLUG].md` e apresente um resumo executivo com os 4 pontos de decisão para validação imediata do usuário.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Plano de Medição da Oferta
|
|
2
|
+
|
|
3
|
+
O sétimo bloco do `OFFER-SPEC.md`. Não é arquivo separado, é uma seção do artefato.
|
|
4
|
+
|
|
5
|
+
Serve para uma coisa só: quando a oferta não converter, saber **onde** ela não converteu. Sem isso o diagnóstico vira arqueologia.
|
|
6
|
+
|
|
7
|
+
Regra que atravessa tudo: **nada de número inventado**. Toda meta tem fonte declarada (régua da metodologia local, histórico do próprio projeto, ou combinado com o usuário). O que não tiver fonte fica escrito como pendência.
|
|
8
|
+
|
|
9
|
+
## 1. Eventos mínimos
|
|
10
|
+
|
|
11
|
+
Derive da promessa, não de uma lista pronta. A pergunta é: qual é o instante em que esta oferta foi aceita?
|
|
12
|
+
|
|
13
|
+
Base para quase toda oferta de resposta direta:
|
|
14
|
+
|
|
15
|
+
| Evento | Marca | Obrigatório |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| `PageView` | chegou à página | sim |
|
|
18
|
+
| `ViewContent` | chegou ao bloco da oferta | sim |
|
|
19
|
+
| `InitiateCheckout` | clicou para comprar | sim |
|
|
20
|
+
| `Purchase` (com valor e moeda) | venda aprovada | sim |
|
|
21
|
+
| `AddPaymentInfo` | preencheu pagamento | quando o checkout tiver a etapa |
|
|
22
|
+
| evento do order bump | aceitou o bump | quando houver bump |
|
|
23
|
+
| evento do upsell | aceitou o upsell | quando houver upsell |
|
|
24
|
+
|
|
25
|
+
`Purchase` sem valor monetário inutiliza qualquer cálculo de retorno. Evento duplicado inutiliza todos.
|
|
26
|
+
|
|
27
|
+
## 2. Padrão de UTM por canal
|
|
28
|
+
|
|
29
|
+
Uma linha por rota de entrada que esta oferta vai usar. Toda rota, inclusive as próprias:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
anúncio utm_source=<plataforma>&utm_campaign=<nome>|<id>&utm_medium=<conjunto>|<id>&utm_content=<anúncio>|<id>
|
|
33
|
+
bio utm_source=instagram&utm_medium=bio&utm_campaign=<oferta>
|
|
34
|
+
destaque utm_source=instagram&utm_medium=destaque&utm_campaign=<nome-do-destaque>
|
|
35
|
+
story utm_source=instagram&utm_medium=story&utm_campaign=<oferta>
|
|
36
|
+
e-mail utm_source=email&utm_medium=<sequência>&utm_campaign=<oferta>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Rota sem UTM cai no balde do orgânico e some da análise. Se a skill `tracking-audit` estiver instalada, ela é a dona da implantação e da conferência disso.
|
|
40
|
+
|
|
41
|
+
## 3. Metas por transição
|
|
42
|
+
|
|
43
|
+
As cinco transições do funil, com a meta calibrada para **este** ticket e a fonte ao lado:
|
|
44
|
+
|
|
45
|
+
| Transição | Meta | Fonte da meta |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| Cliques → visitas | | |
|
|
48
|
+
| Visitas → checkout iniciado | | |
|
|
49
|
+
| Checkout iniciado → venda iniciada | | |
|
|
50
|
+
| Venda iniciada → aprovada (PIX) | | |
|
|
51
|
+
| Venda iniciada → aprovada (cartão) | | |
|
|
52
|
+
|
|
53
|
+
Preencher com régua declarada. Célula sem fonte fica vazia e vira pendência, nunca chute.
|
|
54
|
+
|
|
55
|
+
## 4. Hipótese e número que reprova
|
|
56
|
+
|
|
57
|
+
Duas frases, e elas são o coração do bloco:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Hipótese: <público> compra <promessa> a <preço> porque <mecanismo>,
|
|
61
|
+
e isso aparece como <métrica> acima de <número>.
|
|
62
|
+
|
|
63
|
+
Reprova: se depois de <volume mínimo de dados> a <métrica> ficar abaixo de <número>,
|
|
64
|
+
a oferta está errada e o próximo passo é <mudar promessa | mudar preço | mudar público>.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
O volume mínimo importa tanto quanto o número. "Não converteu" com 40 visitas não é informação.
|
|
68
|
+
|
|
69
|
+
## 5. Ponte com o tracking
|
|
70
|
+
|
|
71
|
+
Este bloco **declara** o que precisa ser verdade. Ele não instala nada e não confere nada.
|
|
72
|
+
|
|
73
|
+
- Com `tracking-audit` instalada: o passo seguinte é rodar o modo implantação dela usando este bloco como entrada.
|
|
74
|
+
- Sem ela: entregue o bloco como checklist manual e diga que a conferência não foi feita.
|
|
@@ -20,10 +20,12 @@ Você é o **Diretor / porta de entrada** — não o orquestrador (esse é o `wi
|
|
|
20
20
|
|
|
21
21
|
**Nota de escopo de instalação:** esta é a única skill do catálogo onde instalação **global** (`~/.claude/skills/wizz-router`) é o padrão operacionalmente correto, não uma exceção à regra "prefer local" (`skills-registry.yaml`, Doutrina de Instalação, regra 1) — sua razão de existir é rotear mesmo fora de um projeto Wizz. Fica sincronizada com o hook global `wizz-router-enforce.js` via `npm run sync:global`.
|
|
22
22
|
|
|
23
|
-
**Economia de tokens:** o hook `rtk-rewrite.sh` já cuida do RTK automaticamente (não rode `rtk --version` a cada roteamento). Antes de ler arquivos crus, prefira `/
|
|
23
|
+
**Economia de tokens:** o hook `rtk-rewrite.sh` já cuida do RTK automaticamente (não rode `rtk --version` a cada roteamento). Antes de ler arquivos crus, prefira `/cerebro ver` ou `grep` específico.
|
|
24
24
|
|
|
25
25
|
## Triagem e delegação (o coração do Diretor)
|
|
26
26
|
|
|
27
|
+
**Skill ≠ subagente nativo:** o campo `agent:` do registry identifica uma skill de persona. Invoque-a via `Skill` (ex.: `Skill(skill="wizz-growth", args="<brief>")`), nunca como `Agent(subagent_type="wizz-growth")`. Para execução isolada, use somente um tipo anunciado pelo runtime, como `wizz-exec-sonnet`, com a skill de área e o brief no prompt. Sem executor disponível, use a skill na sessão atual; sem a skill, informe a instalação faltante. Não invente tipos de agente.
|
|
28
|
+
|
|
27
29
|
**Estágio do projeto (fail-open):** `grep -m1 '^stage:' {project-root}/**/project-context.md` (ex: `_wizz-output/project-context.md`, path configurável via `output_folder`). Se achar `prototype`/`mvp`, prefira solução leve e não recomende observabilidade/infra de produção; `production`, gates de qualidade valem integralmente. Sem arquivo: siga sem mencionar estágio.
|
|
28
30
|
|
|
29
31
|
Descubra o contexto: **existe `{project-root}/_wizz/`?**
|
|
@@ -52,7 +52,7 @@ Use esta tabela pra mapear skills/CLIs/MCPs direto **fora de projeto Wizz** (sem
|
|
|
52
52
|
| Gerar vídeo-ad/imagem por IA (Sora/Veo/Kling) + publicar Meta | CLI `arcads` (registry `ads`; git clone + Arcads API key) | 1 |
|
|
53
53
|
| Analisar/entender vídeo existente (frames + transcrição) | CLI `claude-video` (registry designer; `npx skills add bradautomates/claude-video`) | 2 |
|
|
54
54
|
| Narração / voz / TTS / clonagem de voz para vídeo | CLI `voicebox` (registry designer; app local com endpoint MCP) | 2 |
|
|
55
|
-
|
|
|
55
|
+
| Pesquisar componentes compatíveis com o projeto | `ui-component-curator` (demos, código e registries públicos com evidências) | 1 |
|
|
56
56
|
|
|
57
57
|
## Área de Marketing / Growth
|
|
58
58
|
|
|
@@ -61,6 +61,7 @@ Use esta tabela pra mapear skills/CLIs/MCPs direto **fora de projeto Wizz** (sem
|
|
|
61
61
|
| Ideias de marketing, estratégia de marketing, posicionamento | `marketing-ideas` + `marketing-psychology` + `product-marketing-context` | 1 |
|
|
62
62
|
| Paid ads, anúncios, Google Ads, Meta Ads, TikTok Ads, mídia paga | `paid-ads` + `ad-creative` + `analytics-tracking` + **MCP meta-ads** | 1 |
|
|
63
63
|
| Gestão de campanha Meta/Facebook/Instagram via API real | **MCP meta-ads** (`mcp-meta-ads`) direto | 1 |
|
|
64
|
+
| Pixel/UTM/atribuição erradas, "a venda não bate com o gerenciador", "onde está furando o funil", tráfego orgânico inflado, conferir tracking antes de subir campanha | `tracking-audit` (+ `analytics-tracking` se for SaaS/produto) | 1 |
|
|
64
65
|
| Lançamento de feature, lançamento de produto, go-to-market | `launch-strategy` + `social-content` + `email-sequence` | 1 |
|
|
65
66
|
| 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 |
|
|
66
67
|
| Preço, planos, pricing, monetização | `pricing-strategy` + `paywall-upgrade-cro` | 1 |
|
|
@@ -85,7 +86,6 @@ Use esta tabela pra mapear skills/CLIs/MCPs direto **fora de projeto Wizz** (sem
|
|
|
85
86
|
| Intenção / palavras-chave | Skills a oferecer | Prioridade |
|
|
86
87
|
|---|---|---|
|
|
87
88
|
| O que foi decidido, contexto passado, aprendizados, histórico | `cerebro` (/ver ou /dia) | 1 |
|
|
88
|
-
| Entender o codebase, mapear estrutura do projeto | `/graphify query` (antes de ler arquivos) | 1 |
|
|
89
89
|
|
|
90
90
|
---
|
|
91
91
|
|
|
@@ -97,6 +97,6 @@ Quando nenhuma skill/MCP instalado cobrir o pedido, **classifique o que falta**
|
|
|
97
97
|
|
|
98
98
|
**Falta um MCP:** informe → `claude mcp list` → consulte `skills-registry.yaml` (`mcps:`/`mcp_utility:`, com `server` pronto) → proponha `claude mcp add <id> [-e VAR=$VAR] -- <command> [args]`. Secrets sempre via env/placeholder, nunca token real.
|
|
99
99
|
|
|
100
|
-
MCPs comuns: context7 (docs de libs),
|
|
100
|
+
MCPs comuns: context7 (docs de libs), supabase (Postgres), meta-ads (Meta), exa (pesquisa). Browser/E2E é sempre via CLI `agent-browser`, nunca via MCP Playwright.
|
|
101
101
|
|
|
102
102
|
Para paid ads Meta, o MCP `mcp-meta-ads` dá acesso real à API Meta Marketing (campanhas, ad sets, ads, métricas, criativos). Combine com `paid-ads` + `ad-creative` + `analytics-tracking`. O `META_ACCESS_TOKEN` vem de env local: nunca exponha em logs ou código commitado.
|
|
@@ -36,7 +36,7 @@ function getRegistryFile() {
|
|
|
36
36
|
// Lê e parseia skills-registry.yaml, devolvendo o catálogo de ids de
|
|
37
37
|
// skills em ordem alfabética estável (mesma lista independente da ordem em
|
|
38
38
|
// que as áreas/skills aparecem no YAML). Escopo deliberado: só as skills
|
|
39
|
-
// `areas.*.skills[]` e as cross-cutting `utility[]` (
|
|
39
|
+
// `areas.*.skills[]` e as cross-cutting `utility[]` (find-skills,
|
|
40
40
|
// enhance-prompt, wizz-router; também são skills de verdade em
|
|
41
41
|
// src/skills-lib/). CLIs/MCPs/squads ficam de fora: `sel`/`desc` no
|
|
42
42
|
// marcador de decisão podem citar agentes ou skills (ver encerramento.md),
|
|
@@ -29,7 +29,7 @@ const { resolveAreaEntries } = require('./registry-resolve');
|
|
|
29
29
|
/**
|
|
30
30
|
* Resolve which skill ids to install from the registry for the chosen areas.
|
|
31
31
|
* Empty / undefined / containing 'all' means every area. Utility skills
|
|
32
|
-
* (
|
|
32
|
+
* (find-skills, wizz-router, ...) are cross-cutting and always included.
|
|
33
33
|
*
|
|
34
34
|
* Wrapper fino sobre `resolveAreaEntries` (A16): a resolução por área vive em
|
|
35
35
|
* `registry-resolve.js`; aqui só sobra reduzir as entradas resolvidas ao
|
|
@@ -43,6 +43,12 @@ function resolveSkillIds(registry, selectedAreas) {
|
|
|
43
43
|
const entries = resolveAreaEntries(registry, selectedAreas, {
|
|
44
44
|
listKey: 'skills',
|
|
45
45
|
utilityKey: 'utility',
|
|
46
|
+
// Uma entrada com `module:` vem de src/modules/<module>/skills/, não de
|
|
47
|
+
// src/skills-lib/ — ela é instalada junto do módulo. Sem este gate o
|
|
48
|
+
// installer procuraria src/skills-lib/<id>/SKILL.md, não acharia, e
|
|
49
|
+
// reportaria a skill como "skipped" em toda instalação. Ela continua no
|
|
50
|
+
// registry porque o router/maestro precisa enxergá-la para rotear.
|
|
51
|
+
isActionable: (raw) => !raw.module,
|
|
46
52
|
});
|
|
47
53
|
return entries.map((entry) => entry.id);
|
|
48
54
|
}
|