wizz-method 2.6.0 → 2.7.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.
@@ -88,57 +88,89 @@ areas:
88
88
  door: direcao
89
89
  when: "PORTA de direção: todo trabalho de decidir ANTES de construir. Brief visual inicial (6 decisões de estética + 3 lógicas) no kickoff. Puxa: wizz-taste-skill (direção anti-slop de brief novo) e wizz-motion-3d-director (decidir caminho motion/3D/vídeo)."
90
90
  rel:
91
- pairs_with: [wizz-taste-skill, wizz-motion-3d-director]
91
+ before: [wizz-ui-ux-pro-max]
92
+ pairs_with: [wizz-motion-3d-director, wizz-taste-skill]
92
93
  - id: wizz-taste-skill
93
94
  door: direcao
94
95
  when: "Anti-slop em briefs NOVOS: lê o brief, define a direção e audita contra defaults de AI. Também cobre projeto EXISTENTE: audita o código atual, lista problemas, prioriza fixes (protocolo de redesign)."
96
+ rel:
97
+ pairs_with: [apple-design, wizz-decision-maker]
95
98
  - id: wizz-motion-3d-director
96
99
  door: direcao
97
100
  when: "Direção de motion/animação, 3D, WebGL, scroll cinematográfico, image-to-video. Decide o caminho ANTES de implementar."
101
+ rel:
102
+ before: [wizz-remotion-best-practices]
103
+ pairs_with: [wizz-decision-maker]
98
104
 
99
105
  # ── Porta 2: CONSTRUÇÃO E POLISH DE UI ──
100
106
  - id: wizz-ui-ux-pro-max
101
107
  entry: true
102
108
  door: construcao
103
109
  when: "PORTA de construção: criar/melhorar UI (design system, paleta, tipografia, componente, página). Puxa: wizz-premium-landing-ui-researcher (landing premium greenfield), wizz-ui-component-curator (1 componente em projeto existente), wizz-impeccable (gate de polish/acessibilidade), wizz-taste-skill (anti-slop em código existente, protocolo de redesign), wizz-huashu-design (protótipo HTML hi-fi/variantes/review) e wizz-react-components (Stitch→React)."
110
+ rel:
111
+ after: [wizz-decision-maker]
112
+ before: [wizz-impeccable]
113
+ pairs_with: [wizz-huashu-design, wizz-premium-landing-ui-researcher, wizz-ui-component-curator]
104
114
  - id: wizz-premium-landing-ui-researcher
105
115
  door: construcao
106
116
  when: "Projeto NOVO (greenfield): cria landing premium do zero, hero, 3D high-end. Estratégia source-first."
117
+ rel:
118
+ pairs_with: [wizz-ui-ux-pro-max]
107
119
  - id: wizz-ui-component-curator
108
120
  door: construcao
109
121
  when: "Projeto EXISTENTE: qual componente/efeito adicionar que combina com o estilo atual."
122
+ rel:
123
+ pairs_with: [wizz-ui-ux-pro-max]
110
124
  - id: wizz-impeccable
111
125
  door: construcao
112
126
  when: "Gate de polish/qualidade de frontend: hardening de UI, acessibilidade, anti-padrões. Refina o que já existe."
127
+ rel:
128
+ after: [wizz-ui-ux-pro-max]
113
129
  - id: wizz-huashu-design
114
130
  door: construcao
115
131
  when: "Direção visual + protótipo HTML hi-fi, exploração de variantes, review 5-dim, export MP4/GIF."
132
+ rel:
133
+ before: [wizz-react-components]
134
+ pairs_with: [wizz-ui-ux-pro-max]
116
135
  - id: wizz-react-components
117
136
  door: construcao
118
137
  when: "Converter design (Stitch MCP) em componentes React/Vite."
138
+ rel:
139
+ after: [wizz-huashu-design]
119
140
 
120
141
  # ── Porta 3: MOTION E ASSETS (executar animação e gerar mídia) ──
121
142
  - id: wizz-animate
122
143
  entry: true
123
144
  door: motion
124
145
  when: "PORTA de motion/assets: executar animação e gerar mídia. Craft de micro-interação (regras do Emil Kowalski: saída > entrada, só transform/opacity, reduced-motion). Puxa: wizz-design-motion-principles (auditar animação existente), wizz-remotion-best-practices (vídeo em React), wizz-canvas-design (PNG/PDF por código) e wizz-algorithmic-art (visual generativo)."
146
+ rel:
147
+ pairs_with: [wizz-design-motion-principles]
125
148
  - id: wizz-design-motion-principles
126
149
  door: motion
127
150
  when: "Auditor de movimento: revisa animação existente e aponta scale(0) no início, easing cru, reduced-motion faltando; pesa contenção/polimento/diversão pelo contexto."
151
+ rel:
152
+ pairs_with: [wizz-animate]
128
153
  - id: wizz-remotion-best-practices
129
154
  door: motion
130
155
  when: "MONTAR o filme: vídeo em React (Remotion) com áudio, SFX, legenda e timing com precisão de frame. No pipeline de vídeo é o Remotion que faz a montagem final; o hyperframes só desenha as telas mudas (regra: HyperFrames desenha, Remotion monta — ver _shared/video-pipeline.md do módulo wizz)."
131
156
  rel:
132
- after: [hyperframes]
157
+ after: [buttercut, ctc-align, get-brolls, hyperframes, wizz-motion-3d-director]
133
158
  - id: wizz-canvas-design
134
159
  door: motion
135
160
  when: "Gerar PNG/PDF editável por código (carrossel, quote card, infográfico) com fonte/cor/logo sempre certos. Traz canvas-fonts."
161
+ rel:
162
+ pairs_with: [wizz-algorithmic-art, wizz-social-content]
136
163
  - id: wizz-algorithmic-art
137
164
  door: motion
138
165
  when: "Visual generativo por código (flow fields, ruído, partículas) para fundo/textura de hero, único a cada render, sem cara de banco de imagem."
166
+ rel:
167
+ pairs_with: [wizz-canvas-design]
139
168
  - id: ctc-align
140
169
  door: motion
141
170
  when: "Timing por forced alignment: timestamps palavra a palavra de narração TTS para sincronizar legenda, corte de cena e animação com a fala. Fonte única de timing no pipeline de vídeo; substitui Whisper e estimativa manual."
171
+ rel:
172
+ after: [voicebox]
173
+ before: [wizz-remotion-best-practices]
142
174
  clis:
143
175
  - id: hyperframes
144
176
  when: "DESENHAR telas de vídeo em HTML/CSS (HTML→MP4, agent-native, 20+ skills): cena isolada e MUDA — maqueta de WhatsApp/ChatGPT, gráfico animado, título, loop. NÃO usar para montagem com áudio/SFX/legenda sincronizada (posicionador de áudio falhou em produção, ~2,76s de drift; CSS vaza entre telas): a montagem final é do Remotion (regra: HyperFrames desenha, Remotion monta — ver _shared/video-pipeline.md do módulo wizz). Precisa ffmpeg + Node 22 + Chrome headless."
@@ -157,6 +189,8 @@ areas:
157
189
  install: 'd="$(mktemp -d)" && git clone https://github.com/heygen-com/hyperframes.git "$d" && git -C "$d" checkout 59a69a145bfbd0f10dee72246b68ee5d9bd71063 && npx skills add "$d" -g -y --copy && printf "%s\\n" 59a69a145bfbd0f10dee72246b68ee5d9bd71063 > "$HOME/.claude/skills/hyperframes/.wizz-pin" && rm -rf "$d" && rm -rf "$HOME/.claude/skills/remotion-to-hyperframes"'
158
190
  - id: claude-video
159
191
  when: "Analisar/entender vídeo EXISTENTE: baixa, extrai frames e transcreve para resumir, achar momentos ou diagnosticar footage. NÃO cria vídeo. Precisa ffmpeg + yt-dlp (+ Groq/OpenAI p/ transcrição sem legenda)."
192
+ rel:
193
+ pairs_with: [get-brolls]
160
194
  platform: [darwin, linux]
161
195
  # O check confere o SHA fixado, não só a existência da pasta: o bundle é
162
196
  # copiado (não clonado), então o pin é gravado num marcador no install.
@@ -164,8 +198,49 @@ areas:
164
198
  # Pin de supply chain (2026-08-23): clone temporário + checkout do SHA
165
199
  # + `skills add` local. Atualizar conscientemente.
166
200
  install: 'd="$(mktemp -d)" && git clone https://github.com/bradautomates/claude-video.git "$d" && git -C "$d" checkout 83da59fa78c3eee9e20f515fe75c438bb5166efd && npx skills add "$d" -g -y --copy && printf "%s\\n" 83da59fa78c3eee9e20f515fe75c438bb5166efd > "$HOME/.claude/skills/watch/.wizz-pin" && rm -rf "$d"'
201
+ - id: get-brolls
202
+ # Versão que o SKILL.md do upstream declara no SHA pinado abaixo. A
203
+ # última tag publicada lá é a v2.3.7; o 2.3.8 só existe como HEAD.
204
+ metadata:
205
+ version: "2.3.8"
206
+ when: "CAPTAR B-roll/insert — em português: 'imagens de apoio', 'cenas de apoio', 'imagem de corte' para Reel, TikTok ou vídeo: acha a fonte LITERAL do que a narração cita (o fato, a pessoa, o produto, a notícia, a tela) em YouTube (yt-dlp, sem API key), Instagram/TikTok (navegador/Playwright, sessão do usuário), Pexels/Pixabay/Wikimedia Commons/NASA ou arquivo local; gera prévia (poster, contact sheet numerado, GIF), monta um Storyboard HTML para REVISÃO HUMANA e entrega o corte com origem/autor/condições de uso registrados. Etapa de CAPTAÇÃO do pipeline de vídeo: enche a timeline de material real antes do corte fino e da montagem. Stock só quando o usuário pedir stock explicitamente — nunca como preenchimento de um beat sem fonte literal."
207
+ not_when:
208
+ - "Analisar/resumir um vídeo que já se tem em mãos: é claude-video."
209
+ - "Cortar/montar footage já captado: é buttercut (corte fino) ou wizz-remotion-best-practices (montagem final)."
210
+ - "Gerar imagem/vídeo por IA: é fal-video. O get-brolls busca material REAL, não sintético."
211
+ - "Desenhar uma tela/cena em HTML: é hyperframes."
212
+ - "Minerar/estudar criativo ou oferta de concorrente (Biblioteca de Anúncios, 'baixa esse anúncio pra eu ver'): é wizz-lowticket-minerador na área ads. O get-brolls capta insert para a SUA edição, com procedência registrada — não é ferramenta de inteligência competitiva, e o fato de saber baixar um Reel não o torna uma."
213
+ rel:
214
+ after: [wizz-social-content]
215
+ before: [buttercut, wizz-remotion-best-practices]
216
+ pairs_with: [claude-video]
217
+ # macOS apenas: o upstream declara macOS/Windows (Linux não é testado lá)
218
+ # e o `install` daqui é POSIX. Windows fica fora porque o installer do
219
+ # Wizz não roda nele — quem estiver no Windows segue o README do upstream.
220
+ platform: [darwin]
221
+ # O check confere o SHA fixado, não só a existência da pasta: o bundle é
222
+ # copiado (não clonado), então o pin é gravado num marcador no install.
223
+ check: 'grep -qx 3d2313b0b856594617371697875ccfd59861c693 "$HOME/.claude/skills/get-brolls/.wizz-pin" 2>/dev/null'
224
+ # Pin de supply chain (2026-09-17): clone temporário + checkout do SHA
225
+ # + `skills add` global + o `install.sh` do próprio upstream (cria .venv
226
+ # e .tools DENTRO da skill: yt-dlp fixado, EJS e Playwright CLI). O
227
+ # upstream documenta 2.3.8 mas a última tag publicada é v2.3.7, então o
228
+ # pin é o SHA do HEAD de 2026-09-17 (mesmo caso do apple-design).
229
+ # Atualizar conscientemente. O install.sh aborta sozinho se faltar
230
+ # python3/ffmpeg/node 22+; sem pin gravado, o installer volta a oferecer.
231
+ # Escopo GLOBAL (-g) de propósito: a skill guarda .venv/.tools/.env na
232
+ # própria raiz e recebe o projeto por `--project`, então é instalar uma
233
+ # vez e usar em todos — igual hyperframes e claude-video.
234
+ install: 'd="$(mktemp -d)" && git clone https://github.com/engenheirodevideo/get-brolls.git "$d" && git -C "$d" checkout 3d2313b0b856594617371697875ccfd59861c693 && npx skills add "$d" -g -y --copy && bash "$HOME/.claude/skills/get-brolls/scripts/install.sh" && printf "%s\\n" 3d2313b0b856594617371697875ccfd59861c693 > "$HOME/.claude/skills/get-brolls/.wizz-pin" && rm -rf "$d"'
235
+ # Sem drawtext (libfreetype) o contact sheet sai sem número e timecode e
236
+ # o Storyboard degrada EM SILÊNCIO — por isso o probe olha o filtro, não
237
+ # só o binário do ffmpeg. A venv prova que o install.sh chegou ao fim.
238
+ verify: 'command -v ffmpeg >/dev/null 2>&1 && ffmpeg -hide_banner -filters 2>/dev/null | grep -q " drawtext " && test -x "$HOME/.claude/skills/get-brolls/.venv/bin/python"'
167
239
  - id: buttercut
168
240
  when: "EDITAR vídeo por IA: cortes, selects, cenas, roughcut via XML/FFmpeg. Sugerir quando o pedido for editar/cortar vídeo. Clone-and-run no PROJETO (não é skill add), pesado: Ruby + Python + FFmpeg + WhisperX. AVISOS: ~GB de modelos (WhisperX), build demorado, só Apple Silicon."
241
+ rel:
242
+ after: [get-brolls]
243
+ before: [wizz-remotion-best-practices]
169
244
  platform: darwin-arm64
170
245
  # Clone-and-run: o próprio repo responde o SHA, então o check compara com o
171
246
  # pin. O install repara um clone existente em vez de falhar no git clone.
@@ -175,6 +250,8 @@ areas:
175
250
  verify: "command -v ffmpeg >/dev/null 2>&1 && command -v ruby >/dev/null 2>&1 && command -v python3 >/dev/null 2>&1"
176
251
  - id: voicebox
177
252
  when: "Voz/TTS/clonagem de voz local para narração/VO de vídeo (7 engines TTS + Whisper STT). App desktop que expõe endpoint MCP local em runtime. Clone-and-run no projeto."
253
+ rel:
254
+ before: [ctc-align]
178
255
  platform: [darwin, linux]
179
256
  # Clone-and-run: o próprio repo responde o SHA, então o check compara com o
180
257
  # pin. O install repara um clone existente em vez de falhar no git clone.
@@ -183,12 +260,17 @@ areas:
183
260
  install: "{ [ -d voicebox/.git ] || git clone https://github.com/jamiepine/voicebox.git voicebox; } && git -C voicebox fetch --tags origin && git -C voicebox checkout 2bcb98d1a8b6fe05e15fbc1559e3085669e4035d"
184
261
  - id: ctc-align
185
262
  when: "Timestamps palavra a palavra CONFIÁVEIS de narração TTS (texto conhecido): sincronizar legenda, corte de cena, animação e elemento gráfico com a fala. Fonte única de timing em vídeo — substitui timestamps do Whisper e estimativa manual. Skill da lib: ctc-align (instalação + helper align.py + regras de âncora monotônica e duração mínima). Roda em CPU, sem CUDA."
263
+ rel:
264
+ after: [voicebox]
265
+ before: [wizz-remotion-best-practices]
186
266
  platform: [darwin, linux]
187
267
  check: "test -x ./tools/ctc-align/.venv/bin/ctc-forced-aligner"
188
268
  install: 'mkdir -p tools/ctc-align && uv venv --python 3.12 tools/ctc-align/.venv && uv pip install --python tools/ctc-align/.venv/bin/python "git+https://github.com/MahmoudAshraf97/ctc-forced-aligner.git"'
189
269
  verify: "command -v ffmpeg >/dev/null 2>&1 && command -v uv >/dev/null 2>&1"
190
270
  - id: fal-video
191
271
  when: "GERAR vídeo/imagem por IA (Veo/Kling/Wan e outros modelos via API da fal.ai), estilo UGC/ad-ready. Substitui o arcads: mesmo caso de uso (vídeo gerado por IA), custo 50-95% menor por vídeo, sem clone-and-run pesado. Precisa FAL_KEY em .env. Sem CLI binária oficial: usa o client Node oficial @fal-ai/client como dependência do projeto."
272
+ rel:
273
+ pairs_with: [wizz-ad-creative]
192
274
  platform: [darwin, linux]
193
275
  check: "test -f node_modules/@fal-ai/client/package.json"
194
276
  # Pin de supply chain (2026-08-25): versão fixa (client oficial fal.ai); atualizar conscientemente.
@@ -197,7 +279,7 @@ areas:
197
279
  when: "Revisar/auditar UI NATIVA (iOS/macOS: SwiftUI, Flutter, React Native, Tauri, Electron) contra o Apple HIG e o Liquid Glass — compliance com o HIG, acessibilidade, dark mode, navegação. Cobre o gap que o wizz-taste-skill declara fora de escopo ('native mobile: use Apple HIG directly')."
198
280
  not_when: "UI web: aí é wizz-ui-ux-pro-max / wizz-impeccable."
199
281
  rel:
200
- pairs_with: [wizz-taste-skill]
282
+ pairs_with: [wizz-desktop-security, wizz-taste-skill]
201
283
  platform: [darwin, linux]
202
284
  # Upstream sem licença declarada e reproduz texto do Apple HIG (122
203
285
  # páginas): o Wizz só instala a partir do upstream, no opt-in do
@@ -213,28 +295,48 @@ areas:
213
295
  agent: wizz-copy
214
296
  summary: "Copywriting: texto de venda, headlines, páginas, e-mails, sequências."
215
297
  skills:
216
- # Módulo lowticket (src/modules/lowticket) — ver nota em ads.skills.
217
- # Entram primeiro de propósito: copy de low ticket lê o shard antes de escrever.
218
- - id: wizz-lowticket-guia
219
- module: lowticket
220
- when: "Leigo que quer vender produto barato e não sabe o que pedir: situa na jornada de 7 etapas e despacha. Ler ANTES de escrever copy de low ticket."
221
- - id: wizz-lowticket-metodologia
222
- module: lowticket
223
- when: "Copy de low ticket BR/PT (página, VSL, roteiro de criativo, headline): ler o shard antes de escrever. 12c página, 18 copy, 04b §4.7-A VSL (9 vendas), 04c roteiro de criativo. O shard vence a skill genérica."
224
- not_when:
225
- - "SaaS, B2B, site de cliente, high ticket ou mentoria: os números não transferem."
298
+ # Módulo lowticket: as skills dele moram SÓ na área growth desde
299
+ # 2026-09-18 (decisão do dono: um dono por skill). A copy chega nelas
300
+ # pelo `rel` de wizz-copywriting — que é o caminho que o método usa pra
301
+ # tudo mais. Antes a mesma skill existia em copy, growth e ads, e o
302
+ # eval mostrava o custo: "qual prazo de garantia?" respondia copy,
303
+ # growth ou ads em amostras diferentes, porque as três estavam certas.
226
304
  - id: wizz-copywriting
227
305
  when: "Escrever copy de venda/página/headline do zero ou reescrever."
306
+ rel:
307
+ after: [pesquisa-de-publico-do-piva, wizz-offer-forge]
308
+ before: [wizz-copy-editing]
309
+ pairs_with:
310
+ [
311
+ wizz-ad-creative,
312
+ wizz-cold-email,
313
+ wizz-email-sequence,
314
+ wizz-humanizer,
315
+ wizz-lowticket-metodologia,
316
+ wizz-marketing-psychology,
317
+ wizz-page-cro,
318
+ ]
228
319
  - id: wizz-copy-editing
229
320
  when: "Editar/melhorar copy existente (framework Seven Sweeps). Review editorial geral."
321
+ rel:
322
+ after: [wizz-copywriting]
323
+ pairs_with: [wizz-social-content]
230
324
  - id: wizz-humanizer
231
325
  when: "Texto soa AI: remover padrões de escrita de máquina, dar naturalidade."
326
+ rel:
327
+ pairs_with: [wizz-copywriting]
232
328
  - id: wizz-email-sequence
233
329
  when: "Sequências de e-mail (onboarding, nurture, lançamento)."
330
+ rel:
331
+ pairs_with: [wizz-copywriting, wizz-launch-strategy, wizz-referral-program]
234
332
  - id: wizz-cold-email
235
333
  when: "Cold email / outbound B2B / prospecção."
334
+ rel:
335
+ pairs_with: [wizz-copywriting]
236
336
  - id: wizz-sales-enablement
237
337
  when: "Material de vendas: deck, one-pager, objeções, demo script, playbook."
338
+ rel:
339
+ pairs_with: [wizz-competitor-alternatives]
238
340
 
239
341
  seo:
240
342
  agent: wizz-seo
@@ -242,17 +344,33 @@ areas:
242
344
  skills:
243
345
  - id: wizz-seo-audit
244
346
  when: "Ponto de partida: auditar/diagnosticar SEO, queda de tráfego, ranking, core web vitals."
347
+ rel:
348
+ before: [distribb, wizz-ai-seo, wizz-programmatic-seo, wizz-schema-markup, wizz-site-architecture]
245
349
  - id: wizz-ai-seo
246
350
  when: "Otimizar pra ser citado por LLMs/AI search (AEO/GEO/LLMO, AI Overviews)."
351
+ rel:
352
+ after: [wizz-seo-audit]
353
+ pairs_with: [wizz-schema-markup]
247
354
  - id: wizz-schema-markup
248
355
  when: "Implementar dados estruturados / structured data."
356
+ rel:
357
+ after: [wizz-seo-audit]
358
+ pairs_with: [site-launch-kit, wizz-ai-seo]
249
359
  - id: wizz-programmatic-seo
250
360
  when: "Gerar páginas em escala pra atacar muitas keywords."
361
+ rel:
362
+ after: [wizz-seo-audit]
363
+ pairs_with: [wizz-free-tool-strategy, wizz-site-architecture]
251
364
  - id: wizz-site-architecture
252
365
  when: "Arquitetura de site / topic clusters / estrutura de URLs."
366
+ rel:
367
+ after: [wizz-seo-audit]
368
+ pairs_with: [wizz-programmatic-seo]
253
369
  clis:
254
370
  - id: distribb
255
371
  when: "EXECUTAR distribuição de SEO: publicar artigos + construir backlinks pela rede da Distribb, conectar Google Search Console, autopublicar notícias. Complementa (não duplica) as skills de SEO que só geram/auditam. Requer Distribb API + GSC (+ DataForSEO/Ahrefs no plano free)."
372
+ rel:
373
+ after: [wizz-seo-audit]
256
374
  platform: [darwin, linux]
257
375
  # O check confere o SHA fixado, não só a existência da pasta: o bundle é
258
376
  # copiado (não clonado), então o pin é gravado num marcador no install.
@@ -266,74 +384,141 @@ areas:
266
384
  skills:
267
385
  - id: wizz-marketing-ideas
268
386
  when: "Travou / quer inspiração ampla de marketing. Ponto de partida quando não sabe o canal."
387
+ rel:
388
+ pairs_with: [wizz-marketing-psychology, wizz-product-marketing-context]
269
389
  - id: wizz-marketing-psychology
270
390
  when: "Aplicar gatilhos/vieses/modelos mentais à persuasão."
391
+ rel:
392
+ pairs_with: [wizz-copywriting, wizz-marketing-ideas]
271
393
  - id: wizz-product-marketing-context
272
394
  when: "Posicionamento de produto e contexto de marketing do produto."
395
+ rel:
396
+ pairs_with: [wizz-marketing-ideas]
273
397
  - id: wizz-launch-strategy
274
398
  when: "Lançar produto/feature: Product Hunt, GTM, waitlist, beta."
399
+ rel:
400
+ pairs_with: [wizz-email-sequence, wizz-social-content]
275
401
  - id: wizz-pricing-strategy
276
402
  when: "Preço, planos, freemium, packaging, willingness to pay."
403
+ rel:
404
+ pairs_with: [wizz-offer-forge, wizz-paywall-upgrade-cro]
277
405
  - id: wizz-paywall-upgrade-cro
278
406
  when: "Tela de upgrade in-app / paywall."
407
+ rel:
408
+ pairs_with: [wizz-pricing-strategy]
279
409
  - id: wizz-churn-prevention
280
410
  when: "Churn, retenção, cancelamento, NPS."
411
+ rel:
412
+ pairs_with: [wizz-revops]
281
413
  - id: wizz-revops
282
414
  when: "Operações de receita: pipeline, métricas, processo de revenue."
415
+ rel:
416
+ pairs_with: [wizz-churn-prevention]
283
417
  - id: wizz-page-cro
284
418
  when: "Otimizar conversão de página (home, landing, pricing, feature)."
419
+ rel:
420
+ after: [wizz-tracking-audit]
421
+ pairs_with: [wizz-copywriting, wizz-form-cro, wizz-popup-cro]
285
422
  - id: wizz-form-cro
286
423
  when: "Otimizar formulários (fora de signup)."
424
+ rel:
425
+ pairs_with: [wizz-page-cro]
287
426
  - id: wizz-popup-cro
288
427
  when: "Otimizar popups/modais."
428
+ rel:
429
+ pairs_with: [wizz-page-cro]
289
430
  - id: wizz-onboarding-cro
290
431
  when: "Ativação pós-signup / onboarding de usuário."
432
+ rel:
433
+ pairs_with: [wizz-signup-flow-cro]
291
434
  - id: wizz-signup-flow-cro
292
435
  when: "Fluxo de signup/registro."
436
+ rel:
437
+ pairs_with: [wizz-onboarding-cro]
293
438
  - id: wizz-competitor-alternatives
294
439
  when: "Página de comparação vs concorrente / alternatives / battle card."
440
+ rel:
441
+ pairs_with: [scrapling, wizz-sales-enablement]
295
442
  - id: wizz-referral-program
296
443
  when: "Programa de indicação/afiliados."
444
+ rel:
445
+ pairs_with: [wizz-analytics-tracking, wizz-email-sequence]
297
446
  - id: wizz-free-tool-strategy
298
447
  when: "Ferramenta grátis pra captação de leads."
448
+ rel:
449
+ pairs_with: [wizz-programmatic-seo]
299
450
  - id: wizz-ab-test-setup
300
451
  when: "Montar A/B test / experimento de conversão."
452
+ rel:
453
+ pairs_with: [wizz-analytics-tracking]
301
454
  - id: wizz-analytics-tracking
302
455
  when: "Setar/auditar tracking e medição (GA4, GTM, eventos, UTM, atribuição)."
456
+ rel:
457
+ pairs_with: [wizz-ab-test-setup, wizz-referral-program, wizz-tracking-audit]
303
458
  - id: site-launch-kit
304
459
  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."
460
+ rel:
461
+ pairs_with: [wizz-launch-readiness, wizz-schema-markup]
305
462
  - id: pesquisa-de-publico-do-piva
306
463
  when: "Pesquisa profunda de público, VoC, níveis de consciência, matriz de ângulos e léxico nativo de oferta compilados em HTML (metodologia @soupiva)."
464
+ rel:
465
+ before: [wizz-copywriting, wizz-offer-forge]
307
466
  - id: wizz-offer-forge
308
467
  when: "Forjar oferta irresistível de resposta direta/infoproduto (mecanismo único, empilhamento de valor, garantia reversa, ponte de tráfego)."
309
- # Módulo lowticket (src/modules/lowticket) — ver nota em ads.skills.
468
+ rel:
469
+ after: [pesquisa-de-publico-do-piva, wizz-lowticket-minerador]
470
+ before: [wizz-copywriting]
471
+ pairs_with: [wizz-pricing-strategy]
472
+ # Módulo lowticket (src/modules/lowticket) — ver nota em ads.skills. Desde
473
+ # 2026-09-18 o módulo inteiro mora aqui (um dono por skill): copy e ads
474
+ # chegam nele pelo `rel`. Isto é comentário de propósito — escrever "vale
475
+ # para as três áreas" dentro do `when:` da porta de entrada a deixou
476
+ # gulosa na medição seguinte (passou a engolir pedido de tarefa nomeada,
477
+ # que é exatamente a trava que a 2.7.0 tinha acabado de pôr nela).
310
478
  - id: wizz-lowticket-guia
311
479
  module: lowticket
312
- when: "Porta de entrada low ticket para leigo: 'quero vender um produto barato', 'por onde começo', 'ninguém compra'. Situa na jornada de 7 etapas e despacha."
480
+ when: "Porta de entrada low ticket para quem não sabe o que pedir: 'quero vender um produto barato', 'por onde começo', 'ninguém compra', 'não estou vendendo', 'anúncio não funciona'. Situa na jornada de 7 etapas e despacha. NÃO usar quando o pedido já nomeia uma tarefa concreta com seus insumos (escrever uma copy, diagnosticar uma página, ler um print de campanha): aí vá direto na skill daquela etapa."
481
+ rel:
482
+ before:
483
+ [wizz-lowticket-funil, wizz-lowticket-metodologia, wizz-lowticket-minerador, wizz-lowticket-pagina, wizz-lowticket-trafego]
313
484
  - id: wizz-lowticket-metodologia
314
485
  module: lowticket
315
- when: "Roteador da base low ticket BR/PT: gatilho → um shard. Régua de preço, garantia, copy e rastreamento que tem precedência sobre a skill genérica."
486
+ when: "Roteador da base low ticket BR/PT: gatilho → um shard (diagnóstico de funil, bid cap, criativo, oferta, página, Instagram, player de VSL, upsell, copy, rastreamento, mineração). Régua de preço, garantia, copy e rastreamento que tem precedência sobre a skill genérica — inclusive a copy de low ticket (página, VSL, roteiro de criativo, headline): ler o shard ANTES de escrever. Carrega guardrails junto."
316
487
  not_when:
317
488
  - "SaaS, B2B, site de cliente, high ticket ou mentoria: os números não transferem."
489
+ rel:
490
+ after: [wizz-lowticket-guia]
491
+ pairs_with: [wizz-copywriting, wizz-lowticket-pagina, wizz-lowticket-trafego]
318
492
  - id: wizz-lowticket-funil
319
493
  module: lowticket
320
494
  when: "Escada pós-checkout de low ticket: upsell 1, upsell 2, downsell, oferta final, régua de preço por degrau e copy das páginas."
321
495
  not_when:
322
496
  - "Antes de existir um front-end que converte: estender funil sobre front que não vende multiplica zero."
497
+ rel:
498
+ after: [wizz-lowticket-guia, wizz-lowticket-pagina]
323
499
  - id: wizz-lowticket-minerador
324
500
  module: lowticket
325
501
  when: "Garimpo e veredito de oferta de concorrente: vocabulário de busca, veredito em 4 níveis, comparação lado a lado, diagnóstico de por que não escalou."
326
502
  not_when:
327
503
  - "A oferta já está definida: aí é wizz-offer-forge."
504
+ rel:
505
+ after: [wizz-lowticket-guia]
506
+ before: [wizz-offer-forge]
328
507
  - id: wizz-lowticket-pagina
329
508
  module: lowticket
330
509
  when: "Engenharia de performance da página de venda low ticket: connect rate, ordem do pixel, LCP/TTFB/CLS, peso acima da dobra, relatório antes e depois."
331
510
  not_when:
332
511
  - "Reescrever copy, preço ou estrutura de oferta: esta skill é o engenheiro, não o copywriter."
333
512
  - "Site institucional ou app."
513
+ rel:
514
+ after: [wizz-lowticket-guia]
515
+ before: [wizz-lowticket-funil]
516
+ pairs_with: [wizz-lowticket-metodologia, wizz-lowticket-trafego]
334
517
  mcps:
335
518
  - id: scrapling
336
519
  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."
520
+ rel:
521
+ pairs_with: [wizz-competitor-alternatives]
337
522
  server:
338
523
  command: scrapling
339
524
  args: ["mcp"]
@@ -350,14 +535,24 @@ areas:
350
535
  skills:
351
536
  - id: wizz-social-content
352
537
  when: "Criar/agendar conteúdo de social (LinkedIn, X, TikTok, IG...)."
538
+ rel:
539
+ before: [get-brolls, postiz]
540
+ pairs_with: [wizz-canvas-design, wizz-content-strategy, wizz-copy-editing, wizz-launch-strategy]
353
541
  - id: wizz-content-strategy
354
542
  when: "Decidir O QUE produzir de conteúdo (topic clusters, calendário, pilares)."
543
+ rel:
544
+ pairs_with: [wizz-social-content]
355
545
  - id: wizz-copy-editing
356
546
  when: "Revisar/editar o texto do roteiro ou da legenda antes de publicar."
547
+ rel:
548
+ after: [wizz-copywriting]
549
+ pairs_with: [wizz-social-content]
357
550
  clis:
358
551
  - id: postiz
359
552
  when: "PUBLICAR/agendar de verdade em redes sociais (30+ integrações) a partir do conteúdo que o wizz-social já gerou. Separa 'gerar' (Wizz) de 'publicar' (Postiz). Precisa autenticar antes (`postiz auth:login` ou env `POSTIZ_API_KEY`); para imagem/vídeo a própria CLI faz o upload."
360
553
  not_when: "Escrever o roteiro ou a legenda: isso é skill da área (wizz-social-content, wizz-copy-editing)."
554
+ rel:
555
+ after: [wizz-social-content]
361
556
  # Item 30 da auditoria (2026-09-11, Parte 3.7). Pin de supply chain
362
557
  # (2026-09-12): versão publicada fixa no npm, atualizar conscientemente.
363
558
  # CLI, não MCP: o schema de `mcps:` deste registry só aceita stdio
@@ -374,35 +569,36 @@ areas:
374
569
  skills:
375
570
  - id: wizz-paid-ads
376
571
  when: "Estratégia de campanha, targeting, bidding, ROAS/CPA. Decidir/rodar ads."
572
+ rel:
573
+ pairs_with: [wizz-ad-creative, wizz-tracking-audit]
377
574
  - id: wizz-ad-creative
378
575
  when: "Gerar/iterar criativos e headlines de anúncio em escala (RSA, variações)."
576
+ rel:
577
+ pairs_with: [fal-video, wizz-copywriting, wizz-paid-ads]
379
578
  - id: wizz-analytics-tracking
380
579
  when: "Tracking de conversão pros anúncios (compartilhada com growth)."
580
+ rel:
581
+ pairs_with: [wizz-ab-test-setup, wizz-referral-program, wizz-tracking-audit]
381
582
  - id: wizz-tracking-audit
382
583
  when: "Auditar rastreamento de oferta de resposta direta. Modo implantação: pixel, CAPI, domínio verificado, eventos priorizados, UTM com ID, repasse do parâmetro nativo pelo checkout, higiene de nomenclatura, compra-teste por rota. Modo diagnóstico: qual transição do funil está furando, medição contra conversão, ROI verdadeiro contra falso, qual dado falta pra decidir."
383
584
  not_when:
384
585
  - "Plano de medição de SaaS ou produto instrumentado por evento de uso: é analytics-tracking."
385
586
  - "Decidir bid, orçamento ou estrutura de campanha: é paid-ads."
386
587
  rel:
387
- pairs_with: [wizz-analytics-tracking, wizz-paid-ads]
388
588
  before: [wizz-page-cro]
589
+ pairs_with: [wizz-analytics-tracking, wizz-lowticket-trafego, wizz-paid-ads]
389
590
  # Módulo lowticket (src/modules/lowticket) — instaladas COM O MÓDULO, não
390
591
  # por skills-lib. O campo `module` é o gate: resolveSkillIds as ignora ao
391
592
  # copiar de src/skills-lib, e o router continua enxergando as entradas.
392
- - id: wizz-lowticket-guia
393
- module: lowticket
394
- when: "Porta de entrada low ticket para leigo: 'não estou vendendo', 'por onde começo', 'anúncio não funciona'. Situa na jornada de 7 etapas e despacha."
395
- - id: wizz-lowticket-metodologia
396
- module: lowticket
397
- when: "Roteador da base low ticket BR/PT: gatilho → um shard (diagnóstico de funil, bid cap, criativo, oferta, página, Instagram, player de VSL, upsell, copy, rastreamento, mineração). Carrega guardrails junto."
398
- not_when:
399
- - "SaaS, B2B, site de cliente, high ticket ou mentoria: os números não transferem."
400
593
  - id: wizz-lowticket-trafego
401
594
  module: lowticket
402
595
  when: "Diagnóstico e régua de campanha Meta de low ticket: estrutura 1-1-X, bid cap, régua de 3x, quando cortar, como escalar, ler print do gerenciador ou do funil."
403
596
  not_when:
404
597
  - "Google Ads institucional, campanha de marca, lead gen B2B."
405
598
  - "Escrever copy ou criativo: a skill lê número, não produz anúncio."
599
+ rel:
600
+ after: [wizz-lowticket-guia]
601
+ pairs_with: [wizz-lowticket-metodologia, wizz-lowticket-pagina, wizz-tracking-audit]
406
602
 
407
603
  architect:
408
604
  agent: wizz-agent-architect
@@ -410,27 +606,50 @@ areas:
410
606
  skills:
411
607
  - id: wizz-web-security
412
608
  when: "Auditar segurança web, OWASP, XSS/CSRF/injeção/SQLi, IDOR, headers, rate limit (IP+conta), CORS, clickjacking, vazamento de PII na resposta, antes de deploy/PR."
609
+ rel:
610
+ before: [security-audit-pentest]
611
+ pairs_with: [wizz-auth-and-secrets, wizz-database-and-deps, wizz-desktop-security]
413
612
  - id: wizz-auth-and-secrets
414
613
  when: "Auth (JWT/OAuth/SSO/Clerk), token no header vs URL, revogar no logout, enumeração de usuário, gestão de secrets, rotação de credenciais."
614
+ rel:
615
+ pairs_with: [wizz-web-security]
415
616
  - id: wizz-desktop-security
416
617
  when: "Segurança desktop/Electron (contextIsolation, code signing)."
618
+ rel:
619
+ pairs_with: [apple-design, wizz-web-security]
417
620
  - id: wizz-database-scaling
418
621
  when: "Banco lento, queries, índices, N+1, sharding, connection pool."
622
+ rel:
623
+ pairs_with: [wizz-caching-and-queues, wizz-supabase-postgres-best-practices]
419
624
  - id: wizz-caching-and-queues
420
625
  when: "Cache (Redis), filas (BullMQ/SQS/Kafka), jobs assíncronos."
626
+ rel:
627
+ pairs_with: [wizz-database-scaling]
421
628
  - id: wizz-infrastructure
422
629
  when: "Escala de infra: Kubernetes, auto-scaling, CDN, SLOs, load test."
630
+ rel:
631
+ pairs_with: [sentry-cli, wizz-cloud-and-infra]
423
632
  - id: wizz-cloud-and-infra
424
633
  when: "Custo de cloud: right-sizing, spot/reserved, S3 lifecycle, billing AWS/GCP."
634
+ rel:
635
+ pairs_with: [wizz-infrastructure]
425
636
  - id: wizz-database-and-deps
426
637
  when: "Dependências/packages, vulnerabilidades, npm audit."
638
+ rel:
639
+ pairs_with: [wizz-launch-readiness, wizz-web-security]
427
640
  - id: wizz-supabase-postgres-best-practices
428
641
  when: "Performance e boas práticas de Postgres/Supabase (queries, schema, RLS)."
642
+ rel:
643
+ pairs_with: [supabase, wizz-database-scaling]
429
644
  - id: wizz-ai-product-design
430
645
  when: "Construir/melhorar um agente ou produto de IA: escrever/revisar system prompt, definir persona/tom, guardrails e recusas, few-shot, chain-of-thought, orquestração multi-agente, handoff, detecção de frustração, generative UI, avaliar qualidade de saída. Base para desenhar os próprios agentes do método. 44 padrões (Owl-Listener, MIT)."
646
+ rel:
647
+ pairs_with: [enhance-prompt]
431
648
  mcps:
432
649
  - id: supabase
433
650
  when: "Operar Supabase de verdade: rodar SQL, migrations, inspecionar schema/RLS, logs. Default é READ-ONLY e escopado a um projeto (--read-only --project-id); para ESCREVER (migrations, mutações), o agente precisa remover conscientemente o --read-only desta entrada antes de usar — nunca por padrão silencioso."
651
+ rel:
652
+ pairs_with: [wizz-supabase-postgres-best-practices]
434
653
  server:
435
654
  command: npx
436
655
  # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
@@ -443,6 +662,8 @@ areas:
443
662
  not_when:
444
663
  - "Projeto ainda não usa Sentry (sem SENTRY_DSN, sentry.properties ou '@sentry/' no package.json)."
445
664
  - "Fora de estágio de produção."
665
+ rel:
666
+ pairs_with: [wizz-infrastructure]
446
667
  check: "sentry-cli --version"
447
668
  # Pin de supply chain (2026-08-25): versão fixa; atualizar conscientemente.
448
669
  install: "npm install -g @sentry/cli@3.6.2"
@@ -451,6 +672,8 @@ areas:
451
672
  not_when:
452
673
  - "Registrar a decisão de arquitetura em si: isso é o wizz-architecture."
453
674
  - "Diagrama descartável de conversa: Mermaid inline já basta."
675
+ rel:
676
+ after: [wizz-implementation-planner]
454
677
  platform: [darwin, linux]
455
678
  # Origem: auditoria 2026-09-11, Parte 3.10, item 25. Pin de supply chain
456
679
  # (2026-09-12): tag de release v2.16.0, não main — upstream tem 155
@@ -471,20 +694,33 @@ areas:
471
694
  skills:
472
695
  - id: wizz-adversarial-reviewer
473
696
  when: "Passe único adversarial, ad hoc, fora de workflow — 'tear this apart' num trecho colado, sem contexto de projeto. Não confundir com wizz-review-adversarial-general (persona do 'Blind Hunter'; o prompt operacional vive em review-prompts/blind-hunter.md e nenhum workflow invoca a skill) nem com wizz-code-review (orquestrador bmm: 3 camadas paralelas + triagem, para review real de diff/PR)."
697
+ rel:
698
+ instead_of: [wizz-code-review]
474
699
  - id: security-audit-pentest
475
700
  when: "Auditoria/pentest de segurança do app inteiro — 'auditar segurança', 'pentest', 'encontrar vulnerabilidades', varredura antes de release. Só para teste de segurança AUTORIZADO (seus sistemas ou de clientes com permissão): ferramenta dual-use, nunca usar contra alvo sem autorização."
701
+ rel:
702
+ after: [wizz-web-security]
703
+ pairs_with: [strix, wizz-launch-readiness]
476
704
  - id: wizz-launch-readiness
477
705
  when: "Auditoria de prontidão pra lançamento (Pre-launch Audit), multi-área: técnico/build, segurança, SEO/descoberta, analytics/medição, conteúdo/copy/prova social, legal/LGPD, infra/deploy/rollback. Gatilhos: 'tá pronto pra lançar?', 'auditoria de pré-lançamento', 'checklist de release amplo', 'o que falta antes de ir pra produção'. Gate por estágio: só roda de verdade em mvp/production, e recusa educadamente em estágio de descoberta/ideação. Diagnostica e prioriza por severidade (bloqueia/alto/médio/ok), nunca corrige cego: aponta security-audit-pentest pra aprofundar segurança com prova de exploração e site-launch-kit pra executar a correção quando a superfície do achado é site. Resultado persiste numa seção datada do project-context.md."
478
706
  not_when:
479
707
  - "Estágio de descoberta/ideação: projeto ainda sem superfície construída pra auditar (sem project-context.md, ou stage 'prototype' vazio)."
480
708
  - "Correção de um achado isolado de site já identificado: nesse caso vá direto pra site-launch-kit."
481
709
  rel:
482
- pairs_with: [site-launch-kit, security-audit-pentest]
710
+ pairs_with: [security-audit-pentest, site-launch-kit, wizz-database-and-deps]
711
+ - id: site-launch-kit
712
+ 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."
713
+ rel:
714
+ pairs_with: [wizz-launch-readiness, wizz-schema-markup]
483
715
  - id: wizz-agent-browser
484
716
  when: "Verificação visual/browser, preencher forms, screenshots, testar UI no navegador. CLI já instalado (não é MCP); browser SEMPRE via wizz-agent-browser, nunca Playwright."
717
+ rel:
718
+ pairs_with: [agent-browser]
485
719
  clis:
486
720
  - id: agent-browser
487
721
  when: "Dirigir um browser real pra E2E/verificação: navegar, clicar, preencher form, screenshot, console. É CLI, não MCP."
722
+ rel:
723
+ pairs_with: [wizz-agent-browser]
488
724
  check: "agent-browser --version"
489
725
  # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
490
726
  install: "npm install -g agent-browser@0.34.0"
@@ -507,8 +743,14 @@ areas:
507
743
  skills:
508
744
  - id: wizz-inicio-de-projeto
509
745
  when: "Kickoff LEVE de engenharia: stack, personas, glossário, princípios, estrutura de pastas, checklist. Atalho sem cerimônia de PRD."
746
+ rel:
747
+ before: [wizz-implementation-planner]
510
748
  - id: wizz-implementation-planner
511
749
  when: "Plano técnico de implementação de site/app premium pós-direção aprovada. Pesquisa web/prior-art durante o planejamento usa a tool nativa WebSearch (sem custo/MCP metered — o MCP exa foi removido em 2026-08-25)."
750
+ rel:
751
+ after: [wizz-inicio-de-projeto]
752
+ before: [archify, wizz-quick-dev]
753
+ pairs_with: [wizz-document-project]
512
754
 
513
755
  # ── Áreas dev/produto (item 18 da auditoria de 2026-09-11, finding RT-H2):
514
756
  # "dev" era citado dezenas de vezes no método (router, maestro,
@@ -526,27 +768,47 @@ areas:
526
768
  - id: wizz-quick-dev
527
769
  module: bmm
528
770
  when: "DEV PONTUAL: ajuste, bug fix, feature única sem cerimônia de story. Fluxo unificado: clarificar → planejar → implementar → review → apresentar. É o destino padrão quando o router/maestro diz 'dev pontual'."
771
+ rel:
772
+ after: [wizz-implementation-planner, wizz-investigate]
529
773
  - id: wizz-dev-story
530
774
  module: bmm
531
775
  when: "Implementar UMA story específica com spec preenchida ('dev this story', 'implementa a próxima story do sprint')."
776
+ rel:
777
+ after: [wizz-create-story]
778
+ before: [wizz-code-review]
532
779
  - id: wizz-create-story
533
780
  module: bmm
534
781
  when: "Preparar story com todo o contexto de implementação ('cria a story', 'prepara a story'). Antes do dev, no gate de planejamento."
782
+ rel:
783
+ after: [wizz-prd, wizz-set-feature, wizz-sprint-planning]
784
+ before: [wizz-dev-story]
535
785
  - id: wizz-code-review
536
786
  module: bmm
537
787
  when: "Review de código real de diff/PR: 3 camadas paralelas (Blind Hunter, Edge Case, Verification Gap) + triagem. Diferente de wizz-adversarial-reviewer (passe único ad hoc, área qa)."
788
+ rel:
789
+ after: [wizz-dev-story]
790
+ instead_of: [wizz-adversarial-reviewer]
538
791
  - id: wizz-investigate
539
792
  module: bmm
540
793
  when: "Investigar bug/incidente, rastrear causa, construir modelo mental de uma área de código antes de mexer."
794
+ rel:
795
+ before: [wizz-quick-dev]
541
796
  - id: wizz-sprint-planning
542
797
  module: bmm
543
798
  when: "Gerar/atualizar o sprint plan que sequencia stories para implementação."
799
+ rel:
800
+ before: [wizz-create-story, wizz-retrospective]
801
+ pairs_with: [wizz-correct-course]
544
802
  - id: wizz-correct-course
545
803
  module: bmm
546
804
  when: "Mudança significativa durante o sprint: propor ajuste de curso ('correct course')."
805
+ rel:
806
+ pairs_with: [wizz-sprint-planning]
547
807
  - id: wizz-retrospective
548
808
  module: bmm
549
809
  when: "Review do trabalho concluído no epic (party mode)."
810
+ rel:
811
+ after: [wizz-sprint-planning]
550
812
 
551
813
  pm:
552
814
  agent: wizz-agent-pm
@@ -555,15 +817,27 @@ areas:
555
817
  - id: wizz-prd
556
818
  module: bmm
557
819
  when: "Criar, atualizar ou validar PRD ('cria o PRD', 'documento de requisitos', 'define o escopo'). Consolida os antigos create/edit/validate-prd (removidos em v7)."
820
+ rel:
821
+ after: [wizz-product-brief]
822
+ before: [wizz-create-story, wizz-set-feature]
823
+ pairs_with: [wizz-ux]
558
824
  - id: wizz-product-brief
559
825
  module: bmm
560
826
  when: "Criar, atualizar ou validar o brief do produto ('cria o brief'). Antes do PRD, no kickoff de produto."
827
+ rel:
828
+ after: [wizz-prfaq]
829
+ before: [wizz-prd]
561
830
  - id: wizz-prfaq
562
831
  module: bmm
563
832
  when: "Desafio Working Backwards PRFAQ para forjar conceito de produto ('cria a PRFAQ', 'work backwards')."
833
+ rel:
834
+ before: [wizz-product-brief]
564
835
  - id: wizz-set-feature
565
836
  module: bmm
566
837
  when: "Definir feature específica dentro do produto (análise de feature única)."
838
+ rel:
839
+ after: [wizz-prd]
840
+ before: [wizz-create-story]
567
841
 
568
842
  tech-writer:
569
843
  agent: wizz-agent-tech-writer
@@ -572,6 +846,8 @@ areas:
572
846
  - id: wizz-document-project
573
847
  module: bmm
574
848
  when: "Documentar o projeto: gerar/atualizar docs de arquitetura e estrutura para contexto de agentes e humanos."
849
+ rel:
850
+ pairs_with: [wizz-implementation-planner]
575
851
 
576
852
  ux-designer:
577
853
  agent: wizz-agent-ux-designer
@@ -580,6 +856,8 @@ areas:
580
856
  - id: wizz-ux
581
857
  module: bmm
582
858
  when: "Especificar experiência do usuário: fluxos, wireframes de conteúdo, user stories de UX (diferente da área designer, que constrói UI visual)."
859
+ rel:
860
+ pairs_with: [wizz-prd]
583
861
 
584
862
  memoria:
585
863
  agent: wizz-memoria
@@ -596,6 +874,8 @@ utility:
596
874
  when: "Nenhuma skill cobre o pedido: buscar/instalar no marketplace (npx skills find)."
597
875
  - id: enhance-prompt
598
876
  when: "Empacotar um briefing mais completo/estruturado pra mandar a outro agente ou skill."
877
+ rel:
878
+ pairs_with: [wizz-ai-product-design]
599
879
  - id: wizz-router
600
880
  when: "Roteador global/flat: descobre skills quando não se sabe a área; escala pro maestro se multi-área."
601
881