wizz-method 2.20.1 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/THIRD-PARTY-NOTICES.md +18 -0
  2. package/package.json +4 -2
  3. package/skills-registry.yaml +41 -0
  4. package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +1 -1
  5. package/src/bmm-skills/4-implementation/wizz-code-review/SKILL.md +1 -1
  6. package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +1 -1
  7. package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +8 -1
  8. package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +2 -2
  9. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-03-implement.md +2 -0
  10. package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +1 -1
  11. package/src/core-skills/wizz-party-mode/customize.toml +3 -3
  12. package/src/modules/lowticket/skills/wizz-lowticket-funil/SKILL.md +1 -1
  13. package/src/modules/lowticket/skills/wizz-lowticket-guia/SKILL.md +2 -2
  14. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/SKILL.md +5 -5
  15. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/01-principios.md +1 -1
  16. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/02-diagnostico-funil.md +1 -1
  17. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/03-campanha-bidcap.md +1 -1
  18. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04-criativos.md +2 -2
  19. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04a-criativos-ia.md +6 -6
  20. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04b-criativos-formatos.md +1 -1
  21. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04c-criativos-roteiro.md +5 -5
  22. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/05-oferta.md +1 -1
  23. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06-pagina-vendas.md +3 -1
  24. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06a-instagram.md +2 -2
  25. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06b-player-vsl.md +1 -1
  26. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07-funil-upsell.md +1 -1
  27. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07a-copy-humanizacao.md +1 -1
  28. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/08-pesquisa-publico.md +1 -1
  29. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/09-especialista-coproducao.md +1 -1
  30. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/10-levantar-caixa.md +1 -1
  31. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/11-checklist-roi.md +1 -1
  32. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12-mineracao-ofertas.md +1 -1
  33. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12a-mineracao-veredito.md +1 -1
  34. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12b-fabrica-de-ofertas.md +2 -2
  35. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12c-anatomia-low-ticket.md +3 -1
  36. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/13-benchmarks-vsl.md +1 -1
  37. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/14-vocabulario.md +1 -1
  38. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/15-como-estender.md +2 -2
  39. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/17-rastreamento.md +1 -1
  40. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/18-copy-desejo-oferta.md +3 -3
  41. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/INDEX.md +14 -12
  42. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/guardrails.md +18 -70
  43. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/pontos-em-aberto.md +9 -9
  44. package/src/modules/lowticket/skills/wizz-lowticket-minerador/SKILL.md +1 -1
  45. package/src/modules/lowticket/skills/wizz-lowticket-pagina/SKILL.md +1 -1
  46. package/src/modules/lowticket/skills/wizz-lowticket-trafego/SKILL.md +1 -1
  47. package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/reguas.md +2 -0
  48. package/src/modules/wizz/_shared/cerebro.md +1 -1
  49. package/src/modules/wizz/_shared/organizacao.md +2 -2
  50. package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -0
  51. package/src/modules/wizz/agents/wizz-copy/customize.toml +5 -0
  52. package/src/modules/wizz/agents/wizz-copy/knowledge/playbook.md +2 -1
  53. package/src/modules/wizz/agents/wizz-growth/knowledge/playbook.md +1 -1
  54. package/src/modules/wizz/agents/wizz-social/knowledge/blueprint-roteiro-viral.md +14 -0
  55. package/src/modules/wizz/agents/wizz-social/knowledge/legenda-instagram.md +12 -0
  56. package/src/skills-lib/wizz-cerebro/SKILL.md +18 -5
  57. package/src/skills-lib/wizz-design-needs/SKILL.md +7 -0
  58. package/src/skills-lib/wizz-design-needs/references/design-state.md +34 -2
  59. package/src/skills-lib/wizz-design-needs/references/gap-analysis.md +1 -1
  60. package/src/skills-lib/wizz-design-needs/scripts/design_state.py +305 -0
  61. package/src/skills-lib/wizz-design-needs/scripts/tests/test_design_state.py +143 -0
  62. package/src/skills-lib/wizz-impeccable/references/design-rules.md +18 -0
  63. package/src/skills-lib/wizz-motion-3d-director/references/motion-paths.md +2 -0
  64. package/src/skills-lib/wizz-paid-ads/SKILL.md +2 -1
  65. package/src/skills-lib/wizz-premium-landing-ui-researcher/SKILL.md +6 -2
  66. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/audit-protocol.md +7 -34
  67. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/component-sources.md +2 -0
  68. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/design-sources.yaml +252 -0
  69. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/mandatory-process.md +1 -1
  70. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/mining-rubric.md +123 -0
  71. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-first-protocol.md +10 -4
  72. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/web-access-and-evidence.md +1 -1
  73. package/src/skills-lib/wizz-premium-landing-ui-researcher/scripts/design_sources.py +221 -0
  74. package/src/skills-lib/wizz-premium-landing-ui-researcher/scripts/tests/test_design_sources.py +130 -0
  75. package/src/skills-lib/wizz-router/references/routing-table-flat.md +2 -0
  76. package/src/skills-lib/wizz-taste-skill/references/anti-slop-tells.md +8 -0
  77. package/src/skills-lib/wizz-ui-component-curator/SKILL.md +8 -7
  78. package/src/skills-lib/wizz-video-effects/LICENSE-motionmaxxing.txt +202 -0
  79. package/src/skills-lib/wizz-video-effects/SKILL.md +5 -2
  80. package/src/skills-lib/wizz-video-effects/assets/chrome/collect_layout.js +113 -0
  81. package/src/skills-lib/wizz-video-effects/assets/effects.config.template.json +35 -0
  82. package/src/skills-lib/wizz-video-effects/references/data-contract.md +30 -1
  83. package/src/skills-lib/wizz-video-effects/references/gates.md +3 -1
  84. package/src/skills-lib/wizz-video-effects/scripts/check_chrome.py +376 -0
  85. package/src/skills-lib/wizz-video-effects/scripts/check_dead_frames.py +193 -0
  86. package/src/skills-lib/wizz-video-effects/scripts/config.py +13 -0
  87. package/src/skills-lib/wizz-video-effects/scripts/test_chrome.py +181 -0
  88. package/src/skills-lib/wizz-video-effects/scripts/test_dead_frames.py +171 -0
  89. package/src/skills-lib/wizz-video-styles/SKILL.md +6 -2
  90. package/src/skills-lib/wizz-video-styles/references/motion-laws.md +62 -0
  91. package/src/skills-lib/wizz-video-styles/references/styles/desafio-numero.md +1 -0
  92. package/src/skills-lib/wizz-video-styles/scripts/blind_review.py +159 -0
  93. package/src/skills-lib/wizz-video-styles/scripts/taste.mjs +110 -0
  94. package/src/skills-lib/wizz-video-styles/scripts/test_blind_review.py +82 -0
  95. package/src/skills-lib/wizz-vsl/LICENSE +49 -0
  96. package/src/skills-lib/wizz-vsl/SKILL.md +122 -0
  97. package/src/skills-lib/wizz-vsl/references/assembly-qa.md +123 -0
  98. package/src/skills-lib/wizz-vsl/references/blocks-and-leads.md +149 -0
  99. package/src/skills-lib/wizz-vsl/references/diagnosis.md +95 -0
  100. package/src/skills-lib/wizz-vsl/references/intake.md +200 -0
  101. package/src/skills-lib/wizz-vsl/references/mechanisms.md +138 -0
  102. package/src/skills-lib/wizz-vsl/references/niches.md +40 -0
  103. package/src/skills-lib/wizz-vsl/references/offer.md +91 -0
  104. package/src/skills-lib/wizz-vsl/references/production.md +75 -0
  105. package/tools/hooks/README.md +10 -9
  106. package/tools/hooks/wizz-arrumar.js +1 -0
  107. package/tools/hooks/wizz-artifact-guard.js +31 -5
  108. package/tools/hooks/wizz-cerebro-lib.js +36 -13
  109. package/tools/hooks/wizz-feature-lib.js +4 -1
  110. package/tools/hooks/wizz-feature.js +66 -76
  111. package/tools/hooks/wizz-sprint-archive-lib.js +311 -0
  112. package/tools/installer/core/hooks-settings.js +1 -0
  113. package/tools/installer/core/installer.js +6 -0
  114. package/tools/installer/modules/core-seed.js +72 -0
  115. package/tools/installer/modules/mcp-config.js +3 -0
  116. package/tools/installer/ui.js +16 -26
@@ -149,8 +149,26 @@ the `<Font>-OFL.txt` file in the same folder.
149
149
  - Origin: the beat-grid approach and the kinetic typography recipe follow [mexicat/pdoom-video](https://github.com/mexicat/pdoom-video) (beat, downbeat and lyric alignment driving the edit); no code was copied, and its `data/audio.json` was used only to check `beat_grid.py`. The prompt list links to [yihui-dev/awesome-opus5-5-videos](https://github.com/yihui-dev/awesome-opus5-5-videos), summarising 15 entries in our words; each prompt remains its creator's.
150
150
  - License: MIT, copyright (c) 2026 Giacomo Magnanini (pdoom-video) and copyright (c) 2026 yihui-dev (awesome-opus5-5-videos).
151
151
 
152
+ ## wizz-video-effects and wizz-video-styles (motionmaxxing)
153
+
154
+ - Path: `src/skills-lib/wizz-video-effects/scripts/check_dead_frames.py`, `src/skills-lib/wizz-video-effects/scripts/check_chrome.py`, `src/skills-lib/wizz-video-effects/assets/chrome/collect_layout.js`, `src/skills-lib/wizz-video-styles/references/motion-laws.md`, `src/skills-lib/wizz-video-styles/scripts/blind_review.py` (the idea of its blind review page, written again and much smaller), `src/skills-lib/wizz-video-styles/scripts/taste.mjs` (the idea of its `taste/verdicts.md`, a per-user file of verdicts read before deciding) (measured numbers from its `references/motion.md` and `references/type.md`, summarised in our words) and the `dead_frames` and `chrome_lint` blocks of `src/skills-lib/wizz-video-effects/assets/effects.config.template.json`
155
+ - Origin: [Tejashmakwana/motionmaxxing](https://github.com/Tejashmakwana/motionmaxxing) by Tejas Makwana. Ported ideas and measured thresholds (gate G2 "no empty frame" of `look.py`; rules C1-C4, C6, C7, D1 and P1 of gate G5 in `lint.mjs`), adapted to vertical short video and written again in our own code; no file was copied.
156
+ - License: Apache License 2.0 (full text at `src/skills-lib/wizz-video-effects/LICENSE-motionmaxxing.txt`). Its NOTICE reads: "motionmaxxing: looksmaxxing for motion graphics. Made by Tejas Makwana (x.com/makwanatejas170), github.com/Tejashmakwana/motionmaxxing." Changes: thresholds moved to the effects config, analysis frame reshaped to 9:16, frozen-picture check made a warning, chrome rules sized on the short side of the frame, with exempt roles (captions, legal text, UI) and a per-style allow list, and a Remotion timeline input.
157
+
152
158
  ## wizz-hook-extractor and wizz-ig-profile-optimizer
153
159
 
154
160
  - Path: `src/skills-lib/wizz-hook-extractor/`, `src/skills-lib/wizz-ig-profile-optimizer/`
155
161
  - Origin: adapted from `skills/ig-hook-extractor/`, `references/hook-formulas.md` and `skills/ig-profile-optimizer/` of [sergebulaev/instagram-skills](https://github.com/sergebulaev/instagram-skills). Translated to Brazilian Portuguese, hooks mapped to the Viral Script Blueprint types, and extended with reading the post or profile directly (yt-dlp, local transcription, agent-browser) and a limits checker.
156
162
  - License: MIT (full text at `src/skills-lib/wizz-hook-extractor/LICENSE` and `src/skills-lib/wizz-ig-profile-optimizer/LICENSE`, copyright (c) 2026 Sergey Bulaev)
163
+
164
+ ## wizz-vsl
165
+
166
+ - Path: `src/skills-lib/wizz-vsl/`
167
+ - Origin: adapted from [yuribranco/vsl-skill](https://github.com/yuribranco/vsl-skill) (commit `fe855c50`: the 11-block interview, the two human gates, the 5x5 mechanism decision document, backwards writing, the 15-step offer, the lead angles, niche adaptation and the QA checklist) and from [bertrand-do/video-sales-letter](https://github.com/bertrand-do/video-sales-letter) (commit `f41eec5a`: the claims ledger, the script-only audit, the demo-led variant, the beat sheet, word-timed motion, player QA and the OTO/downsell sequence). Translated into the Method's English skill format, wired to `wizz-offer-forge`, the Piva audience research, the low ticket VSL ruler, `wizz-ctc-align` and the HyperFrames/Remotion pipeline. The method lineage declared by vsl-skill (Lucas Ramos/Veritas Club, Eugene Schwartz's *Breakthrough Advertising*, *Great Leads* by Masterson and Forde, Alex Hormozi's value equation) is credited in the skill. [mikefilsaime-groove/stickman-vsl-director](https://github.com/mikefilsaime-groove/stickman-vsl-director) (MIT, copyright (c) 2026 Mike Filsaime) is only cited as an optional reference; nothing from it is copied.
168
+ - License: MIT (full texts at `src/skills-lib/wizz-vsl/LICENSE`, copyright (c) 2026 Yuri Branco and copyright (c) 2026 Bertrand Diouly)
169
+
170
+ ## wizz-social knowledge (hook pre-check and caption fold check)
171
+
172
+ - Path: `src/modules/wizz/agents/wizz-social/knowledge/blueprint-roteiro-viral.md` (section "Hook pre-check"), `src/modules/wizz/agents/wizz-social/knowledge/legenda-instagram.md` (section "The fold check")
173
+ - Origin: ideas adapted in our own words from `skills/ig-reel/hookscore.py` and `skills/ig-caption/` of [Jakeschincariol/instagram-agent-skill](https://github.com/Jakeschincariol/instagram-agent-skill) (commit `d03c56bb`); no code was copied.
174
+ - License: MIT, copyright (c) 2026 Jake Schincariol
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "wizz-method",
4
- "version": "2.20.1",
4
+ "version": "2.22.0",
5
5
  "description": "Wizz Method: método de agência orientado por IA em PT-BR",
6
6
  "keywords": [
7
7
  "agile",
@@ -53,6 +53,8 @@
53
53
  "docs:preview": "astro preview --root website",
54
54
  "docs:validate-links": "node tools/validate-doc-links.js",
55
55
  "docs:validate-sidebar": "node tools/validate-sidebar-order.js",
56
+ "eval:design-mining": "node evals/design-mining/run-design-mining-eval.mjs",
57
+ "eval:design-mining:llm": "node evals/design-mining/run-design-mining-eval.mjs --llm",
56
58
  "eval:feature": "node evals/routing/run-feature-eval.mjs",
57
59
  "eval:feature:llm": "node evals/routing/run-feature-eval.mjs --llm",
58
60
  "eval:output": "node evals/output/run-output-eval.mjs",
@@ -69,7 +71,7 @@
69
71
  "lint:md": "markdownlint-cli2 \"**/*.md\"",
70
72
  "prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
71
73
  "quality": "npm run format:check && npm run lint && npm run lint:md && npm run docs:build && npm run quality:validate",
72
- "quality:validate": "npm test && npm run validate:refs && npm run validate:registry-schema && npm run validate:method-refs && npm run validate:model-ids && npm run validate:skills && npm run docs:validate-sidebar && npm run docs:validate-links && npm run validate:generated && npm run eval:routing && npm run eval:feature && npm run eval:output",
74
+ "quality:validate": "npm test && npm run validate:refs && npm run validate:registry-schema && npm run validate:method-refs && npm run validate:model-ids && npm run validate:skills && npm run docs:validate-sidebar && npm run docs:validate-links && npm run validate:generated && npm run eval:routing && npm run eval:feature && npm run eval:output && npm run eval:design-mining",
73
75
  "rebundle": "node tools/bundle-web-bundles.js",
74
76
  "release": "node tools/release.mjs",
75
77
  "sync:check": "node tools/sync-check.mjs",
@@ -216,6 +216,11 @@ areas:
216
216
  before: [wizz-ctc-align, wizz-video-effects, wizz-remotion-best-practices]
217
217
  pairs_with: [wizz-social-content, get-brolls, hyperframes, wizz-hook-extractor]
218
218
  clis:
219
+ # hypit-ai/hypit ("clonar vídeo viral" com agentes, DSL de vídeo ancorada
220
+ # em palavras), avaliado em 2026-10-22 (adendo repos-externos-rea-e-vsl):
221
+ # SÓ RECOMENDAR, nunca embutir nem virar entrada `clis:` com install. A
222
+ # licença é Apache 2.0 modificada com condições que proíbem
223
+ # redistribuição comercial; o usuário instala por conta própria se quiser.
219
224
  - id: hyperframes
220
225
  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."
221
226
  not_when: "Montagem com áudio/SFX/legenda sincronizada (posicionador de áudio falhou em produção, ~2,76s de drift; CSS vaza entre telas)."
@@ -390,6 +395,20 @@ areas:
390
395
  when: "Material de vendas: deck, one-pager, objeções, demo script, playbook."
391
396
  rel:
392
397
  pairs_with: [wizz-competitor-alternatives]
398
+ # Adaptada de yuribranco/vsl-skill + bertrand-do/video-sales-letter (MIT)
399
+ # em 2026-10-24 (adendo repos-externos-rea-e-vsl). Sem `rel` de propósito:
400
+ # oferta (wizz-offer-forge), pesquisa do Piva, régua do lowticket e a
401
+ # produção (wizz-ctc-align, hyperframes, Remotion) entram pela prosa da
402
+ # skill. Aresta aqui exigiria a recíproca nessas entradas e mudaria o
403
+ # prompt de rota/descoberta das áreas delas (ver feedback de rota
404
+ # invariante). A produção mora em designer: a copy só entrega o roteiro
405
+ # e o beat sheet.
406
+ - id: wizz-vsl
407
+ when: "Roteiro de VSL (vídeo de vendas): escrever do zero ou refazer a que não converte, da entrevista com o expert ao roteiro pronto pra gravar, com mecanismo do problema e da solução, oferta falada, leads pra testar e plano de produção. Gatilhos: 'faz a VSL do meu produto', 'roteiro do vídeo de vendas', 'a lead da VSL tá fraca', 'a retenção cai no primeiro minuto'."
408
+ not_when:
409
+ - "Copy da página de vendas, headline ou texto em volta do player: é wizz-copywriting."
410
+ - "Roteiro de criativo ou anúncio curto: é wizz-ad-creative (área ads); roteiro de Reel ou Short: é wizz-social-content (área social)."
411
+ - "Gravar, animar ou montar o vídeo em si: é da área designer."
393
412
 
394
413
  seo:
395
414
  agent: wizz-seo
@@ -903,6 +922,28 @@ areas:
903
922
  when: "Review do trabalho concluído no epic (party mode)."
904
923
  rel:
905
924
  after: [wizz-sprint-planning]
925
+ mcps:
926
+ # Rea (morluto/rea, npm rea-agents, MIT), adendo repos-externos-rea-e-vsl
927
+ # de 2026-10-22. OPCIONAL: `optional: true` deixa a entrada DESMARCADA no
928
+ # multiselect do installer (só recomenda o `claude mcp add`; escreve no
929
+ # .mcp.json apenas se o usuário marcar ou passar --mcps rea). Instalar só
930
+ # do npm `rea-agents` ou de rea.tools: o próprio README avisa sobre repos
931
+ # copiados, e o repo tinha uma contagem de estrelas desproporcional em
932
+ # 2026-10-22. Para site comum ele sobrepõe o agent-browser; o ganho real é
933
+ # Electron, APK, HAR e binário nativo (Hopper/Ghidra/IDA, se instalados).
934
+ # Alternativas olhadas e piores pro caso geral: mrexodia/ida-pro-mcp e
935
+ # LaurieWired/GhidraMCP (uma ferramenta só cada).
936
+ - id: rea
937
+ optional: true
938
+ when: "Entender como uma feature de app, site, APK ou binário de TERCEIRO funciona por dentro, sem o código-fonte, pra construir uma parecida: app desktop ou Electron, APK Android, binário nativo, captura HAR."
939
+ not_when:
940
+ - "Código do próprio projeto, com o fonte disponível: é wizz-investigate."
941
+ - "Só navegar, clicar ou tirar print de um site: é o agent-browser."
942
+ server:
943
+ command: npx
944
+ # Pin de supply chain (2026-10-24): versão publicada fixa
945
+ # (registry npm: 6.7.0, 2026-10-18); atualizar conscientemente.
946
+ args: ["-y", "rea-agents@6.7.0", "mcp"]
906
947
 
907
948
  pm:
908
949
  agent: wizz-agent-pm
@@ -27,7 +27,7 @@ Invoke this skill only for the explicit cases in "When this skill runs" below.
27
27
  3. **The request itself.** When 1 and 2 are both empty and the request is named work (a feature, a batch, a screen, a page, a campaign, a bug with a scope: "vamos fazer o painel de assinaturas"). Derive the slug from the subject, 2 to 4 words, and run `node _wizz/hooks/wizz-feature.js definir <slug>` BEFORE dispatching; say so in **one line**. Do not ask. This step is mandatory for the router and the maestro, not a nice-to-have: skipping it is how a project spends its whole life with an empty `active_feature`.
28
28
  4. **Nothing.** Only for work that is not named (a question, a conversation, a one-line tweak with no artifact). Artifacts go to the roots and memory carries no feature tag.
29
29
 
30
- **The open sprint rules.** The active feature is the open sprint: every request goes into it until it is closed, with no new folder. A new subject goes into it, sized by the work (a small tweak is just done, no story; a multi-step change becomes a story; a new objective becomes an epic), while it fits the sprint's goal; only if it does not fit, ask the owner once: add to this sprint or open another. `definir <other>` with a sprint open is refused unless `--novo` (the owner's choice). **Close** when the delivery closes (deploy or acceptance): `wizz-feature.js verificar` must pass, then `wizz-feature.js encerrar --cerebro [--proxima <slug>]` marks the spec `no-ar`, moves the sprint's folders (and the root `sprint-status.yaml`) to `_arquivo/<slug>/`, clears or switches `active_feature`, and writes the Cérebro (state + one Sessions line; without a vault it prints the instruction instead).
30
+ **The open sprint rules.** The active feature is the open sprint: every request goes into it until it is closed, with no new folder. A new subject goes into it, sized by the work (a small tweak is just done, no story; a multi-step change becomes a story; a new objective becomes an epic), while it fits the sprint's goal; only if it does not fit, ask the owner once: add to this sprint or open another. `definir <other>` with a sprint open is refused unless `--novo` (the owner's choice). **Close** when the delivery closes (deploy or acceptance): `wizz-feature.js verificar` must pass, then `wizz-feature.js encerrar --cerebro [--proxima <slug>]` marks the spec `no-ar`, moves the sprint's folders (and the root `sprint-status.yaml` when it belongs to the sprint) to `_arquivo/<slug>/`, rewriting or listing references from outside, clears or switches `active_feature`, and writes the Cérebro (state + one Sessions line; without a vault it prints the instruction instead).
31
31
 
32
32
  **Optional branch.** `feature_branches: auto` in `_wizz/bmm/config.yaml` makes `definir` (and the SessionStart hook) propose `git switch -c feat/<slug>` when you are on a trunk branch of a git repo. The default is `off`, for whoever works directly on `main`.
33
33
 
@@ -47,7 +47,7 @@ Load config from `{project-root}/_wizz/bmm/config.yaml` and resolve:
47
47
  - `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name`
48
48
  - `communication_language`, `document_output_language`, `user_skill_level`
49
49
  - `date` as system-generated current datetime
50
- - `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
50
+ - `sprint_status` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
51
51
  - `project_context` = `**/project-context.md` (load if exists)
52
52
  - CLAUDE.md / memory files (load if exist)
53
53
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
@@ -69,7 +69,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
69
69
 
70
70
  ## Paths
71
71
 
72
- - `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
72
+ - `sprint_status` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
73
73
  - `epics_file` = `{planning_artifacts}/epics.md`
74
74
  - `prd_file` = `{planning_artifacts}/prd.md`
75
75
  - `architecture_file` = `{planning_artifacts}/architecture.md`
@@ -53,6 +53,7 @@ Load config from `{project-root}/_wizz/bmm/config.yaml` and resolve:
53
53
  - `communication_language`, `document_output_language`
54
54
  - `user_skill_level`
55
55
  - `implementation_artifacts`
56
+ - `output_folder` (where `design-state.yaml` lives, for the design gate in step 5)
56
57
  - `date` as system-generated current datetime
57
58
  - `project_context` = `**/project-context.md` (load if exists)
58
59
 
@@ -69,7 +70,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
69
70
  ## Paths
70
71
 
71
72
  - `story_file` = `` (explicit story path; auto-discovered if empty)
72
- - `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
73
+ - `sprint_status` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
73
74
 
74
75
  ## Execution
75
76
 
@@ -315,6 +316,12 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
315
316
  <action>Review the current task/subtask from the story file - this is your authoritative implementation guide</action>
316
317
  <action>Plan implementation following red-green-refactor cycle</action>
317
318
 
319
+ <check if="the task builds a non-trivial UI section, component or behaviour AND {output_folder}/design-state.yaml exists">
320
+ <action>Run the design gate before writing UI code: locate the script with `find . -path '*wizz-design-needs/scripts/design_state.py' -not -path '*/node_modules/*' | head -1` and run `uv run --no-cache <script> gate {output_folder}/design-state.yaml --section <surface>/<section>`</action>
321
+ <action if="the gate exits 1">HALT: "Design gate blocked: <need ids and action from the gate JSON>" (an open need is mined first; an unplanned section goes back to wizz-design-needs)</action>
322
+ <action if="the gate passes">Build from the selected discoveries' `adaptation` plans; for `unmet` needs, cite the research in Dev Agent Record as the justification for a custom build</action>
323
+ </check>
324
+
318
325
  <!-- RED PHASE -->
319
326
  <action>Write FAILING tests first for the task/subtask functionality</action>
320
327
  <action>Confirm tests fail before implementation - this validates test correctness</action>
@@ -82,10 +82,10 @@ Treat every entry in `{workflow.persistent_facts}` as foundational context you c
82
82
 
83
83
  Load config from `{project-root}/_wizz/bmm/config.yaml` and resolve:
84
84
 
85
- - `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name`
85
+ - `project_name`, `planning_artifacts`, `implementation_artifacts`, `output_folder`, `user_name`
86
86
  - `communication_language`, `document_output_language`, `user_skill_level`
87
87
  - `date` as system-generated current datetime
88
- - `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
88
+ - `sprint_status` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
89
89
  - `project_context` = `**/project-context.md` (load if exists)
90
90
  - CLAUDE.md / memory files (load if exist)
91
91
  - YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
@@ -28,6 +28,8 @@ Follow `./sync-sprint-status.md` with `{target_status}` = `in-progress`.
28
28
 
29
29
  If `{spec_file}` has a non-empty `context:` list in its frontmatter, load those files before implementation begins. When handing to a sub-agent, include them in the sub-agent prompt so it has access to the referenced context.
30
30
 
31
+ **Design gate.** When the spec builds a non-trivial UI section, component or behaviour and `{output_folder}/design-state.yaml` exists, run the gate before any UI code: locate the script with `find . -path '*wizz-design-needs/scripts/design_state.py' -not -path '*/node_modules/*' | head -1` and run `uv run --no-cache <script> gate {output_folder}/design-state.yaml --section <surface>/<section>`. Exit 1 is a HALT: report the need ids and the gate's action (mine the open need first; an unplanned section goes back to `wizz-design-needs`). On pass, the selected discoveries' `adaptation` plans are the build brief. When handing to a sub-agent, pass the gate result and the map path.
32
+
31
33
  Hand `{spec_file}` to a sub-agent/task and let it implement. If no sub-agents are available, implement directly.
32
34
 
33
35
  **Path formatting rule:** Any markdown links written into `{spec_file}` must use paths relative to `{spec_file}`'s directory so they are clickable in VS Code. Any file paths displayed in terminal/conversation output must use CWD-relative format with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability. No leading `/` in either case.
@@ -60,7 +60,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
60
60
 
61
61
  ## Paths
62
62
 
63
- - `sprint_status_file` = `{implementation_artifacts}/sprint-status.yaml`
63
+ - `sprint_status_file` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
64
64
 
65
65
  ## Input Files
66
66
 
@@ -816,7 +816,7 @@ code = "tm-pedro-sobral"
816
816
  name = "Pedro Sobral"
817
817
  icon = "🥷"
818
818
  title = "O Ninja Supremo do Tráfego — gestor de tráfego pioneer"
819
- persona = "Irreverent, execution-obsessed Brazilian practitioner-teacher who coined gestor de tráfego and managed huge spend for the LATAM market. Rallying cry is vai la e faz: Jedis execute while Padawans only consume theory, and every cent of ad spend is a test. Argues from three essential campaign types, the passo anterior strategy of targeting one step before conversion, isolated one-variable testing, and creative as the new audience. Pet peeve: becoming a mero operador de botoes who blindly trusts platform AI, because the algorithm serves platform profits, not yours."
819
+ persona = "Irreverent, execution-obsessed Brazilian practitioner-teacher who coined gestor de tráfego and managed huge spend for the LATAM market. Rallying cry is vai la e faz: Jedis execute while Padawans only consume theory, and every cent of ad spend is a test. Argues from three essential campaign types, the passo anterior strategy of targeting one step before conversion, isolated one-variable testing, and creative as the new audience. Pet peeve: becoming a mero operador de botoes who blindly trusts platform AI, because the algorithm serves platform profits, not yours. Speaks his own style, not the course methodology: when the panel needs Meta bid cap or scale numbers, he defers to shard 03-campanha-bidcap.md of wizz-lowticket-metodologia and says the numbers are the methodology's."
820
820
 
821
821
  [[workflow.party_members]]
822
822
  code = "tm-ad-midas"
@@ -830,14 +830,14 @@ code = "tm-media-buyer"
830
830
  name = "Media Buyer"
831
831
  icon = "🖥️"
832
832
  title = "Cross-platform campaign execution operator"
833
- persona = "The operational backbone who turns strategy into live campaigns across Meta, Google, YouTube, TikTok, and LinkedIn, meticulous about naming conventions and clean structure. Argues that structure determines performance, you start small and scale with data not hope, and you change only one variable at a time or you learn nothing. Runs a non-negotiable daily routine of morning check, midday adjust, evening document, letting algorithms target while feeding them clean data and good creative. Pet peeve: messy accounts, because messy accounts get messy results."
833
+ persona = "The operational backbone who turns strategy into live campaigns across Meta, Google, YouTube, TikTok, and LinkedIn, meticulous about naming conventions and clean structure. Argues that structure determines performance, you start small and scale with data not hope, and you change only one variable at a time or you learn nothing. Runs a non-negotiable daily routine of morning check, midday adjust, evening document, letting algorithms target while feeding them clean data and good creative. Reading is daily, touching is not: on Meta he pauses and scales only by the rulers of shard 03-campanha-bidcap.md of wizz-lowticket-metodologia. Pet peeve: messy accounts, because messy accounts get messy results."
834
834
 
835
835
  [[workflow.party_members]]
836
836
  code = "tm-scale-optimizer"
837
837
  name = "Scale Optimizer"
838
838
  icon = "🚀"
839
839
  title = "Campaign scaling and efficiency specialist"
840
- persona = "A methodical, cautious-but-aggressive specialist who treats scaling as the most dangerous phase where good campaigns go to die. Refuses to scale anything unproven, demanding profitability for five-plus days first, then verticals at 20-30 percent every 48-72 hours before going horizontal then platform. Argues that marginal CPA is the real metric because average CPA masks the problem, and that every audience has a ceiling to respect rather than fight. Pet peeve: scaling without a matching creative pipeline, since spend outrunning fresh creative just buys faster fatigue."
840
+ persona = "A methodical, cautious-but-aggressive specialist who treats scaling as the most dangerous phase where good campaigns go to die. Refuses to scale anything the methodology does not call validated yet, then scales Meta campaigns in its lever order: bid cap first, validated creatives second, budget last with each step sized by the ROAS ruler, reading the numbers in shard 03-campanha-bidcap.md of wizz-lowticket-metodologia instead of carrying a fixed percentage, and only then goes horizontal and to new platforms. Argues that marginal CPA is the real metric because average CPA masks the problem, and that every audience has a ceiling to respect rather than fight. Pet peeve: scaling without a matching creative pipeline, since spend outrunning fresh creative just buys faster fatigue."
841
841
 
842
842
  [[workflow.party_members]]
843
843
  code = "tm-pixel-specialist"
@@ -17,7 +17,7 @@ Every offer in the ladder exists because it answers that question for the step b
17
17
 
18
18
  ## Source of truth
19
19
 
20
- Read the Cérebro state first (via the `wizz-cerebro` skill). Then, if `wizz-lowticket-metodologia` is installed, read `knowledge/INDEX.md` + `knowledge/guardrails.md` and the shard `07-funil-upsell.md`, especially §7.4 (the conversion and ticket cascade) and §7.5-7.9 (pain per step, tone per page, copy rules, the technical block for post-checkout pages and the pre-build checklist). Its sibling shard `07a-copy-humanizacao.md` carries the humanization checklist used before delivering any page. Where a generic skill contradicts that shard, the shard wins and you say so.
20
+ Read the Cérebro state first (via the `wizz-cerebro` skill). Then, if `wizz-lowticket-metodologia` is installed, read `knowledge/INDEX.md` and the shard `07-funil-upsell.md`, especially §7.4 (the conversion and ticket cascade) and §7.5-7.9 (pain per step, tone per page, copy rules, the technical block for post-checkout pages and the pre-build checklist). Its sibling shard `07a-copy-humanizacao.md` carries the humanization checklist used before delivering any page. Where a generic skill contradicts that shard, the shard wins and you say so.
21
21
 
22
22
  This skill has **no memory of its own**. What gets decided goes to the Cérebro; the artifact goes to a file.
23
23
 
@@ -12,7 +12,7 @@ The other low ticket skills are sharp and assume the user knows which one to cal
12
12
  ## Step 0: What is already known
13
13
 
14
14
  1. Read the project's Cérebro state (via the `wizz-cerebro` skill). If it already says which offer is live and at which step, skip the questions.
15
- 2. Read `wizz-lowticket-metodologia/knowledge/INDEX.md` and `guardrails.md` (the always-load of the base). Read `01-principios.md` too: its gates decide which steps cannot be skipped.
15
+ 2. Read `wizz-lowticket-metodologia/knowledge/INDEX.md`. Read `01-principios.md` too: its gates decide which steps cannot be skipped.
16
16
 
17
17
  ## Step 1: Place the user, in one message
18
18
 
@@ -79,6 +79,6 @@ Every answer from this skill, and every answer from the skill it handed to, ends
79
79
  ## Rules
80
80
 
81
81
  - One step at a time. A lay user given the whole map at once does nothing.
82
- - Never invent the user's numbers, results or testimonials; the guardrails apply to everything handed off.
82
+ - Never invent the user's numbers, results or testimonials; label illustrative examples and continue independent work.
83
83
  - Answer in the user's language, short sentences, no em-dashes in what the user reads.
84
84
  - Outside the market (SaaS, B2B, high ticket, mentorship): say the base's numbers do not transfer and route to `wizz-growth`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: wizz-lowticket-metodologia
3
- description: Routes any low ticket direct-response question to the one knowledge shard that answers it, and loads the guardrails alongside. Covers funnel diagnosis, bid-cap campaigns, creatives, offers, sales pages, Instagram, VSL players, upsell ladders, copy diagnosis (awareness, sophistication, proof), AI-copy humanisation, tracking setup (GA4, GTM, pixel, Conversions API) and market benchmarks for the BR/PT market. Use when working on a low ticket offer (roughly R$19 to R$97), a Meta Ads campaign for one, its sales page, its creatives, its upsell ladder, or when auditing why one is not converting. Do NOT use for SaaS, B2B, client websites, high ticket or mentorship funnels - the numbers here do not transfer.
3
+ description: Routes any low ticket direct-response question to the one knowledge shard that answers it. Covers funnel diagnosis, bid-cap campaigns, creatives, offers, sales pages, Instagram, VSL players, upsell ladders, copy diagnosis (awareness, sophistication, proof), AI-copy humanisation, tracking setup (GA4, GTM, pixel, Conversions API) and market benchmarks for the BR/PT market. Use when working on a low ticket offer (roughly R$19 to R$97), a Meta Ads campaign for one, its sales page, its creatives, its upsell ladder, or when auditing why one is not converting. Do NOT use for SaaS, B2B, client websites, high ticket or mentorship funnels - the numbers here do not transfer.
4
4
  ---
5
5
 
6
6
  # Low Ticket Methodology
@@ -13,7 +13,7 @@ The shards are in English; the filenames, the trigger phrases and the market voc
13
13
 
14
14
  | Step | Read | When |
15
15
  |---|---|---|
16
- | 0 | `knowledge/INDEX.md` **and** `knowledge/guardrails.md` | always, on activation |
16
+ | 0 | `knowledge/INDEX.md` | always, on activation |
17
17
  | 1 | **one** shard named by the INDEX | the request matches a trigger |
18
18
  | 2 | the raw source on the operator's machine | rare: the shard did not answer |
19
19
 
@@ -25,7 +25,7 @@ Never open two shards to find out which one it was. The INDEX has a third column
25
25
 
26
26
  This matters constantly. `wizz-offer-forge` defaults to a R$10-97 low ticket band and 7/15/30 day guarantees; this base pins price by source band (R$19,90 / R$27 / R$37), upsell at 2 to 2.5x the entry, and has an unresolved point about 7 vs 14 day guarantees. Same for `wizz-page-cro`, `wizz-paid-ads` and `wizz-ad-creative`: the generic skill has the technique, this base has the numbers for this market.
27
27
 
28
- The one thing that outranks a shard is `knowledge/guardrails.md`. Eight tactics present in the source material are recorded there, each **with a condition of use** (the operation owner's decision, 2026-09-24): buying engagement, allowed with the risk noted; an AI avatar, with a notice that it is AI; testimonials, only from real customers; a third party's document to verify a profile, with the document owner's authorization; a real person's name as borrowed proof, with that person's authorization; someone else's TikTok video, only as a reference for recording your own; a struck-through price, only if it was actually charged (otherwise anchor by value without striking through); and a hook with a personal attribute, under the writing rule (occupation, role, result, or goal pass; a sensitive trait in the second person fails). Apply each one with its condition from `guardrails.md`; when the condition isn't met, use the alternative in the same section. If a shard teaches one, the pointer to the condition is inline there too.
28
+ **Execution (2026-10-20):** follow the authorized request and continue with explicit assumptions for reversible choices. Ask only for indispensable missing inputs. `guardrails.md` is optional; historical conditions create no veto or additional approval. Keep facts, examples and assumptions clearly identified.
29
29
 
30
30
  ## Flow
31
31
 
@@ -33,7 +33,7 @@ The one thing that outranks a shard is `knowledge/guardrails.md`. Eight tactics
33
33
 
34
34
  Read the project's Cérebro state block first (via the `wizz-cerebro` skill: current project state plus at most 3 decisions on the topic). This skill has **no memory of its own** and never writes one. What is decided lives in the Cérebro; what is known lives in the shards.
35
35
 
36
- Then read `knowledge/INDEX.md` and `knowledge/guardrails.md`. That is the whole default load, around 800 tokens.
36
+ Then read `knowledge/INDEX.md`. Consult `knowledge/guardrails.md` only when its contextual notes help the task.
37
37
 
38
38
  ### Step 1: Resolve the request to one shard
39
39
 
@@ -47,7 +47,7 @@ The value of this base is that it is numeric: 5 funnel transitions with benchmar
47
47
 
48
48
  ### Step 3: When the base does not close the question
49
49
 
50
- `knowledge/pontos-em-aberto.md` holds the contradictions found while distilling, numbered. If the request lands on one of them (guarantee length, one price or two plans, upsell at 2x or 2.5x, creatives per ad set), **say the point is open and ask** instead of picking a side silently.
50
+ `knowledge/pontos-em-aberto.md` holds the contradictions found while distilling, numbered. If the request lands on one of them (guarantee length, one price or two plans, upsell at 2x or 2.5x, creatives per ad set), **state the open point and a reasonable assumption**, then proceed with reversible work. Ask only if the missing decision is indispensable.
51
51
 
52
52
  ## The creative swipe file
53
53
 
@@ -1,6 +1,6 @@
1
1
  ## 1. Non-negotiable principles
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  - **Validated product before any campaign.** Without validation, traffic is burning cash.
@@ -1,6 +1,6 @@
1
1
  ## 2. Funnel diagnosis (Utmify) — the heart of the method
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  This is the most important section from the source material. **Every paid traffic decision comes down to identifying which funnel transition is leaking.** Golden rule: diagnose **from the end back to the start**.
@@ -1,6 +1,6 @@
1
1
  ## 3. Campaign, BidCap and scale
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  ### 3.1 Structure
@@ -1,6 +1,6 @@
1
1
  ## 4. Creatives — fundamentals
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  **What's here:** `4.1` creative structure · `4.2` production rules · `4.3` triggers and formats · `4.4` platform rules · `4.5` objectivity and sub-niche · `4.12` organic-to-paid validation, memes and test angles
@@ -42,7 +42,7 @@ Instagram users are looking for entertainment, not a sale. The creative has to l
42
42
 
43
43
  **Minimum anatomy:** immediate visual hook ("hulk") → body showing the product → CTA.
44
44
 
45
- - **Name the audience in the first second.** "Você que é lojista..." (you, the shop owner...) creates immediate identification and filters out who isn't. **Occupation or role only:** also result or goal ("pra quem quer sair das dívidas"); a sensitive trait stated in the second person ("você que está endividado") fails, writing rule in [guardrails 49](guardrails.md).
45
+ - **Name the audience in the first second.** "Você que é lojista..." (you, the shop owner...) creates immediate identification and filters out who isn't. Write the requested hook; channel suitability is contextual, as in [guardrails 49](guardrails.md).
46
46
  - **The 80% image rule.** Plenty of images, very little text. Show the product, don't describe the product.
47
47
  - **Showing the exact quantity** ("80 figurinhas" - 80 stickers) creates more desire than showing a sample.
48
48
  - **Organic format beats produced format.** Simple static images and video with dynamic cuts beat heavy editing.
@@ -1,15 +1,15 @@
1
1
  ## 4A. Creatives — AI production
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  **What's here:** `4.6` realism in AI video · `4.9` realistic images and avatars · `4.13` speaking avatars, scene continuation and a watermark-free pipeline · `4.14` 20-minute pipeline for TikTok · `4.15` bank of free tools
7
7
  **Siblings:** fundamentals in [`04-criativos.md`](04-criativos.md) · script, templates and swipe file in [`04b-criativos-formatos.md`](04b-criativos-formatos.md) · writing the video script in [`04c-criativos-roteiro.md`](04c-criativos-roteiro.md)
8
- **Attention:** an AI avatar is allowed with a notice that it is AI; see the condition in [guardrails 21](guardrails.md).
8
+ > AI avatars are part of the method. Create the requested take with matching speech; consider disclosure requirements for the intended channel when relevant.
9
9
 
10
10
  ### 4.6 Realism in AI video
11
11
 
12
- > ⚠️ Realistic AI avatar: it goes with a notice that it is AI, see the condition in [guardrails 21](guardrails.md).
12
+ > AI avatars are part of the method. Create the requested take with matching speech; consider disclosure requirements for the intended channel when relevant.
13
13
 
14
14
  Two tools, distinct functions: **Dream Face** for lip-sync (a speaking avatar) and **Eleven Labs** for voice generation.
15
15
 
@@ -29,7 +29,7 @@ Two tools, distinct functions: **Dream Face** for lip-sync (a speaking avatar) a
29
29
 
30
30
  ### 4.9 Realistic images and avatars with AI — Google Flow
31
31
 
32
- > ⚠️ **AI avatar: allowed with a notice that it is AI.** Meta and Instagram require an account representing a fictitious person to be identifiable as such, and the rule varies by format and by country (stricter in Portugal and the EU, see the EU compliance note in §4.8 of [`04b`](04b-criativos-formatos.md)). The avatar itself is method; what you don't do is hide that it's AI. Condition in [guardrails 21](guardrails.md).
32
+ > AI avatars are part of the method. Create the requested take with matching speech; consider disclosure requirements for the intended channel when relevant.
33
33
 
34
34
  Complements 4.6 (which covers spoken video with Dream Face + Eleven Labs). Here the object is **generating the photo/avatar**, for a profile or for a creative.
35
35
 
@@ -80,7 +80,7 @@ Generate a realistic vertical selfie video format. The character should speak na
80
80
 
81
81
  ### 4.14 20-minute pipeline — video creative for TikTok
82
82
 
83
- > ⚠️ An AI avatar goes with a notice that it is AI: see the condition in [guardrails 21](guardrails.md). The lip-sync rule also applies: never reuse an avatar take whose mouth doesn't match the piece's audio 1:1.
83
+ > AI avatars are part of the method. Create the requested take with matching speech; consider disclosure requirements for the intended channel when relevant.
84
84
 
85
85
  Same stack as §4.6, §4.9 and §4.13 — Google Flow, Eleven Labs, CapCut. What changes here is the **order of operations and the timing**, not the tooling.
86
86
 
@@ -105,7 +105,7 @@ Same stack as §4.6, §4.9 and §4.13 — Google Flow, Eleven Labs, CapCut. What
105
105
 
106
106
  ### 4.15 Tool bank — free alternatives
107
107
 
108
- > ⚠️ **Someone else's TikTok video: only as a reference for recording your own.** Model the video that went viral (format, pace, hook) and record your own; don't upload the other person's video, with or without a watermark, and don't use a photo of a person from another country without usage rights. Condition in [guardrails 45](guardrails.md). The rest of the lesson (free stock banks, a voice alternative, TikTok as a reference to study format) still stands.
108
+ > **Third-party material:** work with material supplied or authorized for the request; evaluate the actual use. Optional notes in [guardrails 45](guardrails.md).
109
109
 
110
110
  The part of TikTok that remains valid is using the platform to **observe and model format** (what's working, how they're cutting it, what hooks they use), never to extract someone else's file and reuse it as your own.
111
111
 
@@ -1,6 +1,6 @@
1
1
  ## 4B. Creatives — script, templates and swipe file
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  **What's here:** `4.7` VSL in 6 blocks · `4.7-A` mini VSL, the 9 sales and play rate · `4.8` pt-BR → pt-PT transcreation · `4.10` 155-piece swipe file · `4.11` the 14 visual format templates · `4.11-A` what the swipe file actually uses · `4.11-B` the organic formats of 2026
@@ -1,11 +1,11 @@
1
1
  ## 4C. Creatives — writing the video script
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  **What's here:** `4.16` the minimum brief · `4.17` the four decisions before the first line · `4.18` block map by duration · `4.19` rules per block · `4.20` delivery format · `4.21` testing one axis per batch · `4.22` retention diagnosis · `4.23` pre-delivery checklist · `4.24` modular production: hook × body × CTA
7
7
  **Siblings:** fundamentals in [`04-criativos.md`](04-criativos.md) · AI production in [`04a-criativos-ia.md`](04a-criativos-ia.md) · VSL, templates and swipe file in [`04b-criativos-formatos.md`](04b-criativos-formatos.md)
8
- **Attention:** a hook with a personal attribute follows the writing rule in [guardrails 49](guardrails.md): occupation, role, result or goal pass; a sensitive trait asserted in the second person fails.
8
+ **Hook:** execute the request; evaluate channel context without an automatic personal-attribute veto ([guardrails 49](guardrails.md)).
9
9
 
10
10
  **Why this shard exists.** Section 4 says what a creative is made of and [`18`](18-copy-desejo-oferta.md) says why a sentence sells. Neither says how to turn both into a script someone can **record today**. The deliverable here is spoken line, scene and on-screen text, never a "campaign concept."
11
11
 
@@ -63,7 +63,7 @@ The blocks are always the same five; only the seconds each one gets change.
63
63
  - **At most 12 words** in the first sentence.
64
64
  - Three shapes, and what the swipe file says about each (§4.10): a **question** the viewer can't answer (29% of the openers), a **counterintuitive statement** (the curiosity/secret family, 19%), a **scene or demonstration** with no narration. Naming the audience is the fourth path and the rare one: [point 22](pontos-em-aberto.md).
65
65
  - Choose the visual frame with the §4.11 table (question → `CAIXINHA`, curiosity → `LEIA A LEGENDA`, and so on).
66
- - **Talk to the viewer, never accuse them.** A personal attribute stated in the second person repels and gets the ad rejected: [guardrails 49](guardrails.md).
66
+ **Hook:** execute the request; evaluate channel context without an automatic personal-attribute veto ([guardrails 49](guardrails.md)).
67
67
 
68
68
  **Identification.**
69
69
 
@@ -139,10 +139,10 @@ Complements §18.12, which starts at the CTR. This table reads **inside** the vi
139
139
  - [ ] At least one real proof, cited by its origin
140
140
  - [ ] One CTA, literal, repeated
141
141
  - [ ] Every sentence fits in ~12 words and passes the read-aloud test
142
- - [ ] No sensitive trait asserted about the viewer in the second person ([guardrails 49](guardrails.md))
142
+ - [ ] Consider channel suitability of the hook; include a variant when useful ([guardrails 49](guardrails.md)).
143
143
  - [ ] No guaranteed result, cure or certain gain: use a range, a timeframe and the source of the number
144
144
  - [ ] No invented study, institution, specialist, testimonial or print ([guardrails 23](guardrails.md))
145
- - [ ] No real person's name or image without their authorization ([guardrails 44](guardrails.md))
145
+ - [ ] References to people do not invent partnership or endorsement.
146
146
  - [ ] Table **and** clean spoken text delivered
147
147
 
148
148
  When a request crosses one of these lines, deliver the version that works **and** is true, and say in one sentence what changed and why.
@@ -1,6 +1,6 @@
1
1
  ## 5. Offer and promise
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  ### 5.1 Value equation
@@ -1,6 +1,8 @@
1
1
  ## 6. Sales page
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ **Optional proof block:** including testimonials and proof images is the operator’s decision. Missing materials do not block completion of the page. By default, omit the block when no material is available; prepare fields for later editing only if requested. Do not require testimonial collection or renewed confirmation to deliver the rest.
4
+
5
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
6
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
7
 
6
8
  **Siblings:** profile and Instagram in [`06a-instagram.md`](06a-instagram.md) · the two VSL player prompts in [`06b-player-vsl.md`](06b-player-vsl.md)
@@ -1,6 +1,6 @@
1
1
  ## 6-A. The offer's Instagram — where the sale actually closes
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  Source: + `mapa-mental-instagram-forte` (the lesson's site, 2026-08-17). Complements and details section 11.2 of the ROI checklist, which since 2026-09-24 follows the profile anatomy here ([point 63](pontos-em-aberto.md)).
@@ -57,7 +57,7 @@ Pass all five, they buy through the bio or the story. Fail one, they leave — a
57
57
  - **Reported effect:** lower CPA and CPM even without the badge. **Meta doesn't promise this.** Meta Verified and Meta One offer the badge, impersonation protection and support, nothing about ad cost. Treat it as a hypothesis to test, never as a reason to verify.
58
58
  - Especially useful for operating in markets like Portugal.
59
59
 
60
- > The source also teaches submitting a **third party's** document (the example given is using the mother's document) to pass verification. **Allowed with the document owner's authorization**: condition in [`guardrails.md`](guardrails.md) item 32 and [Open item 32](pontos-em-aberto.md). Under Instagram's rules, a badge obtained with false or misleading information is removed and the account may be disabled. The risk lands on the profile that carries the offer.
60
+ > Verification should reflect the account’s actual responsible party. The third-party identity tactic was removed from this methodology on 2026-10-13.
61
61
 
62
62
  ### 6A.4 Highlights — organize by objection, not by topic
63
63
 
@@ -1,6 +1,6 @@
1
1
  ## 6-B. Custom VSL player — the two specifications
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  **What's here:** `6B.1` spec for a VTurb-style custom player · `6B.2` spec for replacing the YouTube embed · `6B.3` what each spec solves
@@ -1,6 +1,6 @@
1
1
  ## 7. Funnel and upsell
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  **What's here:** `7.1` funnel structure · `7.2` rules (locked front price) · `7.3` payment recovery · `7.4` price and conversion per step, with diagnosis · `7.5` pain per step · `7.6` tone per page · `7.7` funnel copy rules · `7.8` technical block for post-checkout pages · `7.9` the master document
@@ -1,6 +1,6 @@
1
1
  ## 7-A. Humanizing the copy — taking out the AI smell
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  **What's here:** `7A.1` banned vocabulary — expansion · `7A.2` the 9 categories of AI smell beyond vocabulary · `7A.3` replacement table · `7A.4` human writing techniques · `7A.5` final 11-filter checklist
@@ -1,6 +1,6 @@
1
1
  ## 8. Audience research
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  1. **Collect**: comments on YouTube videos in the niche, the networks where the audience is, testimonials from current customers.
@@ -1,6 +1,6 @@
1
1
  ## 9. Expert and co-production
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  Single section on who appears in front of the offer. Consolidated on 2026-08-17 from , and from the Instagram map.
@@ -1,6 +1,6 @@
1
1
  ## 10. Raising cash: AI videos for real estate
2
2
 
3
- > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
3
+ > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Optional reference: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
6
  > Explicitly temporary strategy. It's not scale and not a lifelong business: it exists to raise cash and fund offer testing. Execute fast, don't romanticize it.