wizz-method 2.18.0 → 2.19.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.
Files changed (166) hide show
  1. package/package.json +5 -3
  2. package/removals.txt +10 -0
  3. package/skills-registry.yaml +60 -39
  4. package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +9 -9
  5. package/src/bmm-skills/2-plan-workflows/wizz-ux/references/creative-tools.md +2 -0
  6. package/src/bmm-skills/2-plan-workflows/wizz-ux/references/design-md-spec.md +2 -0
  7. package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +1 -1
  8. package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +1 -1
  9. package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/SKILL.md +1 -1
  10. package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/checklist.md +1 -1
  11. package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +1 -1
  12. package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +5 -5
  13. package/src/bmm-skills/module-help.csv +1 -1
  14. package/src/bmm-skills/module.yaml +1 -1
  15. package/src/core-skills/_shared/handoff-protocol.md +2 -2
  16. package/src/modules/lowticket/skills/wizz-lowticket-funil/SKILL.md +1 -1
  17. package/src/modules/lowticket/skills/wizz-lowticket-guia/SKILL.md +1 -1
  18. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/SKILL.md +1 -1
  19. package/src/modules/lowticket/skills/wizz-lowticket-minerador/SKILL.md +1 -1
  20. package/src/modules/lowticket/skills/wizz-lowticket-pagina/SKILL.md +1 -1
  21. package/src/modules/lowticket/skills/wizz-lowticket-trafego/SKILL.md +1 -1
  22. package/src/modules/wizz/_shared/cerebro.md +7 -7
  23. package/src/modules/wizz/_shared/communication-rules.md +1 -1
  24. package/src/modules/wizz/_shared/encerramento.md +4 -3
  25. package/src/modules/wizz/_shared/organizacao.md +8 -4
  26. package/src/modules/wizz/_shared/token-economy.md +1 -1
  27. package/src/modules/wizz/_shared/video-pipeline.md +4 -4
  28. package/src/modules/wizz/agents/wizz-ads/SKILL.md +4 -1
  29. package/src/modules/wizz/agents/wizz-ads/customize.toml +12 -3
  30. package/src/modules/wizz/agents/wizz-ads/knowledge/playbook.md +36 -0
  31. package/src/modules/wizz/agents/wizz-copy/SKILL.md +4 -1
  32. package/src/modules/wizz/agents/wizz-copy/customize.toml +2 -3
  33. package/src/modules/wizz/agents/wizz-copy/knowledge/playbook.md +34 -0
  34. package/src/modules/wizz/agents/wizz-designer/SKILL.md +2 -2
  35. package/src/modules/wizz/agents/wizz-designer/customize.toml +2 -3
  36. package/src/modules/wizz/agents/wizz-growth/SKILL.md +4 -1
  37. package/src/modules/wizz/agents/wizz-growth/customize.toml +33 -4
  38. package/src/modules/wizz/agents/wizz-growth/knowledge/playbook.md +39 -0
  39. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +6 -8
  40. package/src/modules/wizz/agents/wizz-maestro/customize.toml +2 -3
  41. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +7 -7
  42. package/src/modules/wizz/agents/wizz-memoria/customize.toml +5 -6
  43. package/src/modules/wizz/agents/wizz-qa/SKILL.md +5 -6
  44. package/src/modules/wizz/agents/wizz-qa/customize.toml +3 -4
  45. package/src/modules/wizz/agents/wizz-seo/SKILL.md +4 -1
  46. package/src/modules/wizz/agents/wizz-seo/customize.toml +2 -3
  47. package/src/modules/wizz/agents/wizz-seo/knowledge/playbook.md +31 -0
  48. package/src/modules/wizz/agents/wizz-social/SKILL.md +3 -3
  49. package/src/modules/wizz/agents/wizz-social/customize.toml +2 -3
  50. package/src/modules/wizz/overrides/wizz-agent-analyst.toml +2 -2
  51. package/src/modules/wizz/overrides/wizz-agent-architect.toml +3 -3
  52. package/src/modules/wizz/overrides/wizz-agent-dev.toml +3 -3
  53. package/src/modules/wizz/overrides/wizz-agent-pm.toml +2 -2
  54. package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +2 -2
  55. package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +2 -2
  56. package/src/skills-lib/_shared/complexity-signal.md +8 -9
  57. package/src/skills-lib/_shared/dispatch-rule.yaml +21 -0
  58. package/src/skills-lib/{cerebro → wizz-cerebro}/SKILL.md +1 -1
  59. package/src/skills-lib/{ctc-align → wizz-ctc-align}/SKILL.md +1 -1
  60. package/src/skills-lib/wizz-decision-maker/references/output-format.md +21 -0
  61. package/src/skills-lib/wizz-decision-maker/references/references-and-extraction.md +32 -1
  62. package/src/skills-lib/wizz-design-needs/references/design-state.md +1 -1
  63. package/src/skills-lib/wizz-design-needs/references/gap-analysis.md +3 -1
  64. package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/SKILL.md +1 -1
  65. package/src/skills-lib/{find-skills → wizz-find-skills}/SKILL.md +1 -1
  66. package/src/skills-lib/wizz-huashu-design/references/sfx-library.md +1 -1
  67. package/src/skills-lib/wizz-huashu-design/scripts/add-music.sh +1 -1
  68. package/src/skills-lib/wizz-huashu-design/scripts/html2pptx.js +45 -37
  69. package/src/skills-lib/wizz-huashu-design/scripts/mix-voiceover.sh +1 -1
  70. package/src/skills-lib/wizz-huashu-design/scripts/narrate-pipeline.mjs +11 -5
  71. package/src/skills-lib/wizz-huashu-design/scripts/test_scripts.py +209 -0
  72. package/src/skills-lib/wizz-huashu-design/scripts/tts-doubao.mjs +42 -28
  73. package/src/skills-lib/wizz-ig-profile-optimizer/SKILL.md +1 -1
  74. package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +1 -1
  75. package/src/skills-lib/wizz-launch-readiness/SKILL.md +7 -7
  76. package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +3 -3
  77. package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +5 -5
  78. package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +1 -1
  79. package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +6 -6
  80. package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +1 -1
  81. package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +1 -1
  82. package/src/skills-lib/wizz-offer-forge/SKILL.md +3 -3
  83. package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/README.md +1 -1
  84. package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/SKILL.md +1 -1
  85. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/component-sources.md +23 -23
  86. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-first-protocol.md +15 -3
  87. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-links.md +14 -8
  88. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/web-access-and-evidence.md +4 -3
  89. package/src/skills-lib/wizz-router/SKILL.md +3 -3
  90. package/src/skills-lib/wizz-router/references/routing-table-flat.md +10 -9
  91. package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/SKILL.md +1 -1
  92. package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/SKILL.md +1 -1
  93. package/src/skills-lib/wizz-ui-component-curator/SKILL.md +1 -1
  94. package/src/skills-lib/wizz-video-effects/SKILL.md +3 -3
  95. package/src/skills-lib/wizz-video-effects/references/data-contract.md +3 -3
  96. package/src/skills-lib/wizz-video-effects/scripts/fill_breaths.py +15 -1
  97. package/src/skills-lib/wizz-video-effects/scripts/test_fill_breaths.py +20 -0
  98. package/src/skills-lib/wizz-video-styles/SKILL.md +2 -2
  99. package/src/skills-lib/wizz-video-styles/data/recipes.json +32 -1
  100. package/src/skills-lib/wizz-video-styles/data/references.json +211 -1
  101. package/src/skills-lib/wizz-video-styles/data/styles.json +54 -0
  102. package/src/skills-lib/wizz-video-styles/references/generated-prompts.md +13 -3
  103. package/src/skills-lib/wizz-video-styles/references/style-picker.md +4 -2
  104. package/src/skills-lib/wizz-video-styles/references/styles/ui-morph.md +68 -0
  105. package/src/skills-lib/wizz-video-styles/scripts/analyze.sh +21 -9
  106. package/src/skills-lib/wizz-video-styles/scripts/references.mjs +1 -0
  107. package/src/skills-lib/wizz-web-security/SKILL.md +1 -1
  108. package/tools/fetch-assets.mjs +1 -1
  109. package/tools/hooks/README.md +18 -14
  110. package/tools/hooks/rtk-rewrite.js +95 -0
  111. package/tools/hooks/security-defensive-context.js +17 -1
  112. package/tools/hooks/session-rules.js +25 -5
  113. package/tools/hooks/wizz-arrumar.js +126 -12
  114. package/tools/hooks/wizz-artifact-guard.js +41 -7
  115. package/tools/hooks/wizz-cerebro-lib.js +239 -0
  116. package/tools/hooks/wizz-close-reminder.js +124 -0
  117. package/tools/hooks/wizz-debug-lib.js +55 -0
  118. package/tools/hooks/wizz-decision-trace.js +19 -2
  119. package/tools/hooks/wizz-feature.js +20 -4
  120. package/tools/hooks/wizz-router-enforce.js +30 -13
  121. package/tools/installer/command-text.js +243 -0
  122. package/tools/installer/commands/catalog.js +2 -0
  123. package/tools/installer/commands/doctor.js +10 -12
  124. package/tools/installer/commands/fetch-assets.js +5 -5
  125. package/tools/installer/commands/install.js +6 -7
  126. package/tools/installer/commands/resolve.js +17 -17
  127. package/tools/installer/commands/trace-report.js +40 -37
  128. package/tools/installer/core/doctor.js +60 -55
  129. package/tools/installer/core/hooks-settings.js +88 -14
  130. package/tools/installer/core/hooks-smoke.js +134 -0
  131. package/tools/installer/core/installer.js +61 -52
  132. package/tools/installer/core/quick-update.js +2 -3
  133. package/tools/installer/guided/labels.js +5 -0
  134. package/tools/installer/install-text.js +201 -0
  135. package/tools/installer/modules/channel-plan.js +2 -2
  136. package/tools/installer/modules/env-vars.js +5 -6
  137. package/tools/installer/modules/skills-lib.js +1 -1
  138. package/tools/installer/ui.js +17 -9
  139. /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-pesquisa-e-memoria.md +0 -0
  140. /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-rotina-e-captura.md +0 -0
  141. /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-sessao.md +0 -0
  142. /package/src/skills-lib/{ctc-align → wizz-ctc-align}/scripts/align.py +0 -0
  143. /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/README.md +0 -0
  144. /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/references/KEYWORDS.md +0 -0
  145. /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/assets/template.html +0 -0
  146. /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/prompts.md +0 -0
  147. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-1-validacao-entrada.md +0 -0
  148. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-2-autorizacao.md +0 -0
  149. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-3-abuso-volume.md +0 -0
  150. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-4-vazamento-resposta.md +0 -0
  151. /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-5-fusao-plano.md +0 -0
  152. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/01-cta-principal.md +0 -0
  153. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/02-barra-fixa-mobile.md +0 -0
  154. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/03-tempo-de-resposta.md +0 -0
  155. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/04-prova-social.md +0 -0
  156. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/05-faq-decisao.md +0 -0
  157. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/06-imagens-reais.md +0 -0
  158. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/07-endereco-como-chegar.md +0 -0
  159. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/08-titles.md +0 -0
  160. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/09-open-graph.md +0 -0
  161. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/10-breadcrumbs.md +0 -0
  162. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/11-alt-text.md +0 -0
  163. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/12-schema-local.md +0 -0
  164. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/13-robots-sitemap.md +0 -0
  165. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/14-privacidade-termos.md +0 -0
  166. /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/15-medicao.md +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "wizz-method",
4
- "version": "2.18.0",
4
+ "version": "2.19.1",
5
5
  "description": "Wizz Method: método de agência orientado por IA em PT-BR",
6
6
  "keywords": [
7
7
  "agile",
@@ -61,6 +61,7 @@
61
61
  "format:check": "prettier --check \"**/*.{js,cjs,mjs,json,yaml}\"",
62
62
  "format:fix": "prettier --write \"**/*.{js,cjs,mjs,json,yaml}\"",
63
63
  "format:fix:staged": "prettier --write",
64
+ "generate:dispatch-rule": "node tools/generate-dispatch-rule.mjs",
64
65
  "generate:subagents": "node tools/generate-subagents.mjs",
65
66
  "install:wizz": "node tools/installer/wizz-cli.js install",
66
67
  "lint": "eslint . --ext .js,.cjs,.mjs,.yaml --max-warnings=0",
@@ -68,8 +69,9 @@
68
69
  "lint:md": "markdownlint-cli2 \"**/*.md\"",
69
70
  "prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
70
71
  "quality": "npm run format:check && npm run lint && npm run lint:md && npm run docs:build && npm run quality:validate",
71
- "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 validate:generated && npm run eval:routing && npm run eval:feature && npm run eval:output",
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",
72
73
  "rebundle": "node tools/bundle-web-bundles.js",
74
+ "release": "node tools/release.mjs",
73
75
  "sync:check": "node tools/sync-check.mjs",
74
76
  "sync:global": "node tools/sync-global.mjs",
75
77
  "test": "node test/run-tests.js && npm run sync:check",
@@ -122,7 +124,7 @@
122
124
  "test:trace-report": "node test/test-trace-report.js",
123
125
  "test:urls": "node test/test-parse-source-urls.js",
124
126
  "test:workflow-path-regex": "node test/test-workflow-path-regex.js",
125
- "validate:generated": "npm run test:dispatch-rule && npm run test:routing-table-refs && npm run test:subagents-parity",
127
+ "validate:generated": "npm run test:dispatch-rule && node tools/generate-dispatch-rule.mjs --check && npm run test:routing-table-refs && npm run test:subagents-parity",
126
128
  "validate:method-refs": "node tools/validate-method-refs.js --strict",
127
129
  "validate:model-ids": "node tools/validate-model-ids.mjs",
128
130
  "validate:refs": "node tools/validate-file-refs.js --strict",
package/removals.txt CHANGED
@@ -69,3 +69,13 @@ taste-redesign
69
69
 
70
70
  # Removida na auditoria de contexto (2026-08-28): knowledge graph descontinuado.
71
71
  graphify
72
+
73
+ # Renomeadas para o prefixo wizz- (2026-10-15): as 7 que ficavam de fora.
74
+ # Nesses caminhos do projeto quem escrevia era o próprio install do Wizz.
75
+ cerebro
76
+ ctc-align
77
+ enhance-prompt
78
+ find-skills
79
+ pesquisa-de-publico-do-piva
80
+ security-audit-pentest
81
+ site-launch-kit
@@ -89,7 +89,7 @@ areas:
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-design-needs (o que precisa ser pesquisado), 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
91
  before: [wizz-design-needs, wizz-ui-ux-pro-max]
92
- pairs_with: [wizz-motion-3d-director, wizz-taste-skill]
92
+ pairs_with: [wizz-motion-3d-director, wizz-taste-skill, dembrandt]
93
93
  # Arquitetura (NÃO no `when:`, que é critério de seleção e fica guloso com
94
94
  # explicação dentro): esta entrada só PRODUZ o mapa. Quem executa o mapa
95
95
  # são os dois mineradores, que a puxam pela aresta `before` abaixo — é
@@ -171,7 +171,7 @@ areas:
171
171
  door: motion
172
172
  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)."
173
173
  rel:
174
- after: [buttercut, ctc-align, get-brolls, hyperframes, wizz-motion-3d-director, wizz-video-effects, wizz-video-styles]
174
+ after: [buttercut, wizz-ctc-align, get-brolls, hyperframes, wizz-motion-3d-director, wizz-video-effects, wizz-video-styles]
175
175
  - id: wizz-canvas-design
176
176
  door: motion
177
177
  when: "Gerar PNG/PDF editável por código (carrossel, quote card, infográfico) com fonte/cor/logo sempre certos. Traz canvas-fonts."
@@ -182,10 +182,11 @@ areas:
182
182
  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."
183
183
  rel:
184
184
  pairs_with: [wizz-canvas-design]
185
- - id: ctc-align
185
+ - id: wizz-ctc-align
186
186
  door: motion
187
187
  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."
188
188
  rel:
189
+ pairs_with: [ctc-align]
189
190
  after: [voicebox, wizz-video-styles]
190
191
  before: [wizz-remotion-best-practices, wizz-video-effects]
191
192
  # Motor de decisão de efeitos (Python) portado do sistema de efeitos do
@@ -199,19 +200,20 @@ areas:
199
200
  - "Montar o filme em React (sequência de cenas, legenda, <Audio>): é wizz-remotion-best-practices; esta skill decide os efeitos que ele monta."
200
201
  - "Filme de lançamento de produto com trilha e direção visual: é wizz-huashu-design."
201
202
  rel:
202
- after: [ctc-align, hyperframes, wizz-video-styles]
203
+ after: [wizz-ctc-align, hyperframes, wizz-video-styles]
203
204
  before: [wizz-remotion-best-practices]
204
205
  pairs_with: [wizz-ad-creative]
205
- # Catálogo de estilos de vídeo curto medido em 104 shorts reais: decide QUAL
206
+ # Catálogo de estilos de vídeo curto medido em 110 vídeos reais: decide QUAL
206
207
  # estilo copiar antes de voz, timing, efeitos e montagem.
207
208
  - id: wizz-video-styles
208
209
  door: motion
209
- when: "Decidir QUAL estilo de vídeo curto copiar a partir do inventário do material (pessoa real, só voz, b-roll, telas, produto) e entregar a receita medida em 104 shorts reais (ritmo de corte, legenda, áudio, zoom, gancho), para qualquer nicho, inclusive clipe com a letra da música e tipografia cinética (texto como imagem, cortes na batida). Gatilhos: 'estilo do vídeo', 'editar no estilo de', 'copiar a edição de', 'que estilo usar no reel', 'o vídeo ficou amador', 'clipe com a letra', 'tipografia cinética'."
210
+ when: "Decidir QUAL estilo de vídeo curto copiar a partir do inventário do material (pessoa real, só voz, b-roll, telas, produto) e entregar a receita medida em 110 vídeos reais (ritmo de corte, legenda, áudio, zoom, gancho), para qualquer nicho, inclusive clipe com a letra da música, tipografia cinética (texto como imagem, cortes na batida) e vídeo do app só com a interface (UI morph: uma forma vira cada tela, cursor conduz, estilo Dribbble). Gatilhos: 'estilo do vídeo', 'editar no estilo de', 'copiar a edição de', 'que estilo usar no reel', 'o vídeo ficou amador', 'clipe com a letra', 'tipografia cinética', 'vídeo do app mexendo', 'anima o app num vídeo', 'animação da interface tipo Dribbble'."
210
211
  not_when:
211
212
  - "Decidir efeitos e SFX por evento, volume, LUFS e portões de zona segura: é wizz-video-effects; esta skill escolhe o estilo que ele depois refina."
212
213
  - "Montar o filme em React (cenas, legenda, <Audio>): é wizz-remotion-best-practices."
214
+ - "Animar componente dentro do código do app (hover, transição de página, modal): é wizz-animate; aqui é vídeo para divulgar."
213
215
  rel:
214
- before: [ctc-align, wizz-video-effects, wizz-remotion-best-practices]
216
+ before: [wizz-ctc-align, wizz-video-effects, wizz-remotion-best-practices]
215
217
  pairs_with: [wizz-social-content, get-brolls, hyperframes, wizz-hook-extractor]
216
218
  clis:
217
219
  - id: hyperframes
@@ -256,7 +258,7 @@ areas:
256
258
  - "Cortar/montar footage já captado: é buttercut (corte fino) ou wizz-remotion-best-practices (montagem final)."
257
259
  - "Gerar imagem/vídeo por IA: é wizz-ad-creative, que escreve o prompt para o usuário colar no Flow ou em outra IA. O get-brolls busca material REAL, não sintético."
258
260
  - "Desenhar uma tela/cena em HTML: é hyperframes."
259
- - "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."
261
+ - "Minerar/estudar criativo ou oferta de concorrente (Biblioteca de Anúncios, 'baixa esse anúncio pra eu ver'): é wizz-lowticket-minerador na área growth. 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."
260
262
  rel:
261
263
  after: [wizz-social-content]
262
264
  before: [buttercut, wizz-remotion-best-practices]
@@ -298,7 +300,7 @@ areas:
298
300
  - id: voicebox
299
301
  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."
300
302
  rel:
301
- before: [ctc-align]
303
+ before: [wizz-ctc-align]
302
304
  platform: [darwin, linux]
303
305
  # Clone-and-run: o próprio repo responde o SHA, então o check compara com o
304
306
  # pin. O install repara um clone existente em vez de falhar no git clone.
@@ -306,16 +308,24 @@ areas:
306
308
  # Pin de supply chain (2026-08-23): checkout de SHA fixo; atualizar conscientemente.
307
309
  install: "{ [ -d voicebox/.git ] || git clone https://github.com/jamiepine/voicebox.git voicebox; } && git -C voicebox fetch --tags origin && git -C voicebox checkout 2bcb98d1a8b6fe05e15fbc1559e3085669e4035d"
308
310
  - id: ctc-align
309
- 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."
311
+ 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: wizz-ctc-align (instalação + helper align.py + regras de âncora monotônica e duração mínima). Roda em CPU, sem CUDA."
310
312
  rel:
311
- after: [voicebox, wizz-video-styles]
312
- before: [wizz-remotion-best-practices, wizz-video-effects]
313
+ pairs_with: [wizz-ctc-align]
313
314
  platform: [darwin, linux]
314
315
  # O pip grava o commit instalado no direct_url.json: o check compara com o pin.
315
316
  check: "test -x ./tools/ctc-align/.venv/bin/ctc-forced-aligner && grep -qs 64293cc6d711e57666c4a8b098e9fd93b381fd88 ./tools/ctc-align/.venv/lib/python*/site-packages/ctc_forced_aligner-*.dist-info/direct_url.json"
316
317
  # Pin de supply chain (2026-09-30): commit fixo; atualizar conscientemente.
317
318
  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@64293cc6d711e57666c4a8b098e9fd93b381fd88"'
318
319
  verify: "command -v ffmpeg >/dev/null 2>&1 && command -v uv >/dev/null 2>&1"
320
+ - id: dembrandt
321
+ when: "Medir um site de referência que já existe: extrair as cores, fontes, espaçamento e cantos reais de uma URL e gerar o DESIGN.md (ou tema Tailwind/shadcn) a partir deles. Para quando o usuário diz 'quero as cores/fontes iguais às do site X'."
322
+ not_when: "Criar identidade nova sem site de referência (é wizz-decision-maker) ou tirar print de página (é agent-browser)."
323
+ rel:
324
+ pairs_with: [wizz-decision-maker]
325
+ # Local, MIT, sem chave; roda um Chromium headless (playwright-core).
326
+ # Pin de supply chain (2026-10-15): versão fixa; atualizar conscientemente.
327
+ check: "dembrandt --version"
328
+ install: "npm install -g dembrandt@0.39.2"
319
329
  - id: apple-design
320
330
  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')."
321
331
  not_when: "UI web: aí é wizz-ui-ux-pro-max / wizz-impeccable."
@@ -336,16 +346,18 @@ areas:
336
346
  agent: wizz-copy
337
347
  summary: "Copywriting: texto de venda, headlines, páginas, e-mails, sequências."
338
348
  skills:
339
- # Módulo lowticket: as skills dele moram SÓ na área growth desde
340
- # 2026-09-18 (decisão do dono: um dono por skill). A copy chega nelas
341
- # pelo `rel` de wizz-copywriting — que é o caminho que o método usa pra
342
- # tudo mais. Antes a mesma skill existia em copy, growth e ads, e o
349
+ # Módulo lowticket: um dono por skill desde 2026-09-18 (decisão do
350
+ # dono). Guia, metodologia, funil, minerador e página moram em growth;
351
+ # wizz-lowticket-trafego mora em ads (campanha Meta, bid cap, régua de
352
+ # corte é trabalho de ads; confirmado pelo dono em 2026-10-15). A copy
353
+ # chega nelas pelo `rel` de wizz-copywriting — que é o caminho que o
354
+ # método usa pra tudo mais. Antes a mesma skill existia em copy, growth e ads, e o
343
355
  # eval mostrava o custo: "qual prazo de garantia?" respondia copy,
344
356
  # growth ou ads em amostras diferentes, porque as três estavam certas.
345
357
  - id: wizz-copywriting
346
358
  when: "Escrever copy de venda/página/headline do zero ou reescrever. Na página de vendas completa, incluir wizz-offer-forge se faltar oferta aprovada e wizz-page-cro se faltar estrutura de conversão aprovada; headline/CTA isolado ou texto sobre oferta e estrutura já aprovadas não exige refazê-las."
347
359
  rel:
348
- after: [pesquisa-de-publico-do-piva, wizz-offer-forge]
360
+ after: [wizz-pesquisa-de-publico-do-piva, wizz-offer-forge]
349
361
  before: [wizz-copy-editing]
350
362
  pairs_with:
351
363
  [
@@ -396,7 +408,7 @@ areas:
396
408
  when: "Implementar dados estruturados / structured data."
397
409
  rel:
398
410
  after: [wizz-seo-audit]
399
- pairs_with: [site-launch-kit, wizz-ai-seo]
411
+ pairs_with: [wizz-site-launch-kit, wizz-ai-seo]
400
412
  - id: wizz-programmatic-seo
401
413
  when: "Gerar páginas em escala pra atacar muitas keywords."
402
414
  rel:
@@ -496,18 +508,18 @@ areas:
496
508
  when: "Setar/auditar tracking e medição (GA4, GTM, eventos, UTM, atribuição)."
497
509
  rel:
498
510
  pairs_with: [wizz-ab-test-setup, wizz-referral-program, wizz-tracking-audit]
499
- - id: site-launch-kit
511
+ - id: wizz-site-launch-kit
500
512
  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."
501
513
  rel:
502
514
  pairs_with: [wizz-launch-readiness, wizz-schema-markup]
503
- - id: pesquisa-de-publico-do-piva
515
+ - id: wizz-pesquisa-de-publico-do-piva
504
516
  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)."
505
517
  rel:
506
518
  before: [wizz-copywriting, wizz-offer-forge]
507
519
  - id: wizz-offer-forge
508
520
  when: "Forjar oferta irresistível de resposta direta/infoproduto (mecanismo único, empilhamento de valor, garantia reversa, ponte de tráfego)."
509
521
  rel:
510
- after: [pesquisa-de-publico-do-piva, wizz-lowticket-minerador]
522
+ after: [wizz-pesquisa-de-publico-do-piva, wizz-lowticket-minerador]
511
523
  before: [wizz-copywriting]
512
524
  pairs_with: [wizz-ig-profile-optimizer, wizz-pricing-strategy, wizz-lowticket-metodologia]
513
525
  # Módulo lowticket (src/modules/lowticket) — ver nota em ads.skills. Desde
@@ -682,7 +694,7 @@ areas:
682
694
  - id: wizz-web-security
683
695
  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."
684
696
  rel:
685
- before: [security-audit-pentest]
697
+ before: [wizz-security-audit-pentest]
686
698
  pairs_with: [wizz-auth-and-secrets, wizz-database-and-deps, wizz-desktop-security]
687
699
  - id: wizz-auth-and-secrets
688
700
  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."
@@ -719,7 +731,7 @@ areas:
719
731
  - id: wizz-ai-product-design
720
732
  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)."
721
733
  rel:
722
- pairs_with: [enhance-prompt]
734
+ pairs_with: [wizz-enhance-prompt]
723
735
  mcps:
724
736
  - id: supabase
725
737
  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."
@@ -771,19 +783,19 @@ areas:
771
783
  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)."
772
784
  rel:
773
785
  instead_of: [wizz-code-review]
774
- - id: security-audit-pentest
786
+ - id: wizz-security-audit-pentest
775
787
  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."
776
788
  rel:
777
789
  after: [wizz-web-security]
778
790
  pairs_with: [strix, wizz-launch-readiness]
779
791
  - id: wizz-launch-readiness
780
- 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."
792
+ 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 wizz-security-audit-pentest pra aprofundar segurança com prova de exploração e wizz-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."
781
793
  not_when:
782
794
  - "Estágio de descoberta/ideação: projeto ainda sem superfície construída pra auditar (sem project-context.md, ou stage 'prototype' vazio)."
783
- - "Correção de um achado isolado de site já identificado: nesse caso vá direto pra site-launch-kit."
795
+ - "Correção de um achado isolado de site já identificado: nesse caso vá direto pra wizz-site-launch-kit."
784
796
  rel:
785
- pairs_with: [security-audit-pentest, site-launch-kit, wizz-database-and-deps]
786
- - id: site-launch-kit
797
+ pairs_with: [wizz-security-audit-pentest, wizz-site-launch-kit, wizz-database-and-deps]
798
+ - id: wizz-site-launch-kit
787
799
  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."
788
800
  rel:
789
801
  pairs_with: [wizz-launch-readiness, wizz-schema-markup]
@@ -800,10 +812,10 @@ areas:
800
812
  # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
801
813
  install: "npm install -g agent-browser@0.38.1"
802
814
  - id: strix
803
- when: "CONDICIONAL, nunca default — executor de pentest AUTÔNOMO e OFENSIVO (agentes de IA que rodam o app, exploram e VALIDAM vulnerabilidades com PoC real). Complementa security-audit-pentest: aquela skill é a metodologia/checklist humana; o Strix é o executor automatizado. Ferramenta dual-use: SÓ contra alvo próprio ou com AUTORIZAÇÃO ESCRITA do dono do sistema e ESCOPO definido — nunca contra alvo de terceiros sem permissão. Roda SEMPRE dentro do sandbox Docker isolado que a própria ferramenta provê (jamais direto no host). Gate condicional: ofereça apenas mediante confirmação explícita do usuário, com escopo e autorização declarados; jamais acione por padrão silencioso. RETORNO DEFENSIVO OBRIGATÓRIO: o executor (subagente) SEMPRE devolve o achado em formato defensivo — falha, severidade, evidência mínima e correção — nunca payload/exploit cru ou arma pronta; assim o revisor recebe conteúdo defensivo pra corrigir, não instrução de ataque. Precisa de Docker rodando e de uma LLM API key configurada."
815
+ when: "CONDICIONAL, nunca default — executor de pentest AUTÔNOMO e OFENSIVO (agentes de IA que rodam o app, exploram e VALIDAM vulnerabilidades com PoC real). Complementa wizz-security-audit-pentest: aquela skill é a metodologia/checklist humana; o Strix é o executor automatizado. Ferramenta dual-use: SÓ contra alvo próprio ou com AUTORIZAÇÃO ESCRITA do dono do sistema e ESCOPO definido — nunca contra alvo de terceiros sem permissão. Roda SEMPRE dentro do sandbox Docker isolado que a própria ferramenta provê (jamais direto no host). Gate condicional: ofereça apenas mediante confirmação explícita do usuário, com escopo e autorização declarados; jamais acione por padrão silencioso. RETORNO DEFENSIVO OBRIGATÓRIO: o executor (subagente) SEMPRE devolve o achado em formato defensivo — falha, severidade, evidência mínima e correção — nunca payload/exploit cru ou arma pronta; assim o revisor recebe conteúdo defensivo pra corrigir, não instrução de ataque. Precisa de Docker rodando e de uma LLM API key configurada."
804
816
  not_when: "Sem alvo próprio ou sem autorização escrita e escopo definido do dono do sistema; nunca acionar por padrão silencioso."
805
817
  rel:
806
- pairs_with: [security-audit-pentest]
818
+ pairs_with: [wizz-security-audit-pentest]
807
819
  platform: [darwin, linux]
808
820
  check: "command -v strix"
809
821
  # Pin de supply chain (2026-08-25): versão fixa do pacote pip; o sandbox
@@ -845,6 +857,13 @@ areas:
845
857
  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'."
846
858
  rel:
847
859
  after: [wizz-implementation-planner, wizz-investigate]
860
+ # Também em designer, como porta de motion (2026-10-15): animar algo no
861
+ # código do app é do dev, e sem esta entrada o dev não enxergava o craft.
862
+ - id: wizz-animate
863
+ when: "Implementar micro-interação de um componente que já existe no app (hover, clique, toast, modal, popover) com o craft do Emil Kowalski: saída mais rápida que a entrada, só transform/opacity, reduced-motion."
864
+ not_when:
865
+ - "Animação de página inteira ou de entrada no scroll, em que o movimento ainda não foi decidido: é do designer (wizz-animate como porta de motion)."
866
+ - "Vídeo para divulgar o app: é wizz-video-styles."
848
867
  - id: wizz-dev-story
849
868
  module: bmm
850
869
  when: "Implementar UMA story específica com spec preenchida ('dev this story', 'implementa a próxima story do sprint')."
@@ -855,7 +874,7 @@ areas:
855
874
  module: bmm
856
875
  when: "Preparar story com todo o contexto de implementação ('cria a story', 'prepara a story'). Antes do dev, no gate de planejamento."
857
876
  rel:
858
- after: [wizz-prd, wizz-set-feature, wizz-sprint-planning]
877
+ after: [wizz-prd, wizz-sprint-planning]
859
878
  before: [wizz-dev-story]
860
879
  - id: wizz-code-review
861
880
  module: bmm
@@ -894,7 +913,7 @@ areas:
894
913
  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)."
895
914
  rel:
896
915
  after: [wizz-product-brief]
897
- before: [wizz-create-story, wizz-set-feature]
916
+ before: [wizz-create-story]
898
917
  pairs_with: [wizz-ux]
899
918
  - id: wizz-product-brief
900
919
  module: bmm
@@ -907,12 +926,14 @@ areas:
907
926
  when: "Desafio Working Backwards PRFAQ para forjar conceito de produto ('cria a PRFAQ', 'work backwards')."
908
927
  rel:
909
928
  before: [wizz-product-brief]
929
+ # Ajuste MANUAL da feature ativa. Desde a 2.16 a feature é definida sozinha
930
+ # (branch > config > primeiro pedido nomeado, via `wizz-feature.js definir`,
931
+ # regra em src/modules/wizz/_shared/organizacao.md), então esta entrada fica
932
+ # fora da cadeia PRD → story: sem `rel`, de propósito.
910
933
  - id: wizz-set-feature
911
934
  module: bmm
912
- when: "Definir feature específica dentro do produto (análise de feature única)."
913
- rel:
914
- after: [wizz-prd]
915
- before: [wizz-create-story]
935
+ when: "Trocar, renomear, limpar ou forçar a feature ativa de propósito, ou dizer qual está ativa ('muda a feature ativa', 'renomeia a feature', 'qual feature está ativa')."
936
+ not_when: "Começar, planejar ou especificar uma feature nova: o hook define a feature ativa sozinho."
916
937
 
917
938
  tech-writer:
918
939
  agent: wizz-agent-tech-writer
@@ -938,16 +959,16 @@ areas:
938
959
  agent: wizz-memoria
939
960
  summary: "Memória do projeto: o que foi decidido, salvar, ver estado."
940
961
  skills:
941
- - id: cerebro
962
+ - id: wizz-cerebro
942
963
  when: "Recuperar/salvar decisões, contexto, aprendizados; ver estado do projeto (/ver, /salvar, /decisao, /dump); ler a auto-memória fora do Claude Code (/memoria)."
943
964
 
944
965
  # ─────────────────────────────────────────────────────────────────────────────
945
966
  # UTILITÁRIOS — cross-cutting, não pertencem a uma área só.
946
967
  # ─────────────────────────────────────────────────────────────────────────────
947
968
  utility:
948
- - id: find-skills
969
+ - id: wizz-find-skills
949
970
  when: "Nenhuma skill cobre o pedido: buscar/instalar no marketplace (npx skills find)."
950
- - id: enhance-prompt
971
+ - id: wizz-enhance-prompt
951
972
  when: "Empacotar um briefing mais completo/estruturado pra mandar a outro agente ou skill."
952
973
  rel:
953
974
  pairs_with: [wizz-ai-product-design]
@@ -1,33 +1,33 @@
1
1
  ---
2
2
  name: wizz-set-feature
3
- description: 'Resolve, switch or clear the active feature context so planning artifacts, implementation artifacts and memory are organized under one named slug. Runs automatically from the git branch; only invoke it when the user says "set feature", "switch feature", "new feature", "clear feature", or asks "what feature is active".'
3
+ description: 'Manual override for the active feature: rename, switch or clear it, or answer which feature is active. The feature is resolved automatically (git branch, config, the request itself) by the hooks and the `wizz-feature.js definir` CLI; invoke this skill only when the user says "set feature", "switch feature", "rename feature", "clear feature", or asks "what feature is active".'
4
4
  ---
5
5
 
6
6
  # Set Feature
7
7
 
8
8
  **Goal:** Keep `active_feature` correct so planning artifacts, implementation artifacts and memory entries all land under the same named slug.
9
9
 
10
- **Default mode is automatic, with or without git, on `main` or on a branch.** The hooks do the work and nobody invokes this skill in the normal case:
10
+ **This skill is the manual override, not the way the feature gets set.** Setting the feature is automatic, with or without git, on `main` or on a branch: the hooks and the area agents do it with the CLI `node _wizz/hooks/wizz-feature.js definir <slug>`, and nobody invokes this skill in the normal case. Use it when the owner explicitly asks to rename, switch or clear the feature, or asks which one is active; the action itself is always `wizz-feature.js definir` (or `encerrar`), described below.
11
11
 
12
12
  - `session-rules.js` (SessionStart) resolves the feature from the git branch or the config and injects `FEATURE ATIVA: <slug>`. In a Wizz project with no feature it injects the reminder `NENHUMA FEATURE ATIVA: o primeiro pedido nomeado define uma`.
13
13
  - `wizz-router-enforce.js` (UserPromptSubmit) repeats the state on every non-trivial prompt: `Feature: <slug>` or `nenhuma ativa`.
14
14
  - The router, the maestro and the area agents then run the deterministic CLI `node _wizz/hooks/wizz-feature.js definir <slug>` BEFORE dispatching named work, and the handoff carries `feature:` (see the wizz module's `_shared/organizacao.md`).
15
- - `wizz-artifact-guard.js` (PostToolUse on Write) warns when an artifact lands outside the active feature's folder.
15
+ - `wizz-artifact-guard.js` (PostToolUse on Write and Edit) warns when an artifact lands outside the active feature's folder.
16
16
 
17
- Invoke this skill only for the three explicit cases in "When this skill runs" below.
17
+ Invoke this skill only for the explicit cases in "When this skill runs" below.
18
18
 
19
19
  ## Conventions
20
20
 
21
21
  - `{project-root}`-prefixed paths resolve from the project working directory.
22
22
 
23
- ## Resolution order (never ask before exhausting it)
23
+ ## Resolution order (what `resolver` applies; never ask before exhausting it)
24
24
 
25
25
  1. **Git branch.** `feat/dashboard-financeiro` → `dashboard-financeiro`. Strip the type prefix (`feat/`, `feature/`, `fix/`, `bugfix/`, `hotfix/`, `chore/`, `refactor/`, `docs/`, `test/`, `perf/`, `ci/`, `build/`, `style/`), lowercase, kebab-case. Trunk branches (`main`, `master`, `develop`, `dev`, `staging`, `prod`, `production`, `release`) and release branches yield **no** feature, not a bad one.
26
26
  2. **`active_feature` in `{project-root}/_wizz/bmm/config.yaml`.** Used when the branch gives nothing.
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
- **Switch or keep.** With a feature active, a request about a different subject switches (`definir <new>`; the previous one stays open until closed) and a continuation keeps it. **Close** when the delivery closes (deploy or acceptance): `wizz-feature.js verificar` must pass, then `wizz-feature.js encerrar [--proxima <slug>]` marks the spec `no-ar`, clears or switches `active_feature`, and reminds you to record the Cérebro.
30
+ **Switch or keep.** With a feature active, a request about a different subject switches (`definir <new>`; the previous one stays open until closed) and a continuation keeps it. **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`, 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
 
@@ -39,7 +39,7 @@ Invoke this skill only for the three explicit cases in "When this skill runs" be
39
39
  | `definir <slug or name>` | Normalizes, writes `active_feature`, creates both subfolders, prints one line. |
40
40
  | `artefato <tipo>` | Creates `<tipo>-<slug>.md` (spec, plano, auditoria, story, review, roteiro) in the right folder with valid frontmatter. |
41
41
  | `decidir "<texto>"` | Appends `D-NN` with the date to the feature's spec and to its `decisoes:` frontmatter. |
42
- | `status <status>` | `rascunho`, `aprovado`, `implementado` or `no-ar` in the spec. |
42
+ | `status <status>` | Sets the spec's status: `rascunho`, `aprovado`, `implementado` or `no-ar` (it writes; to only read, use `resolver` or `listar`). |
43
43
  | `verificar` | Closing checklist; exit 1 while an item is pending. |
44
44
  | `encerrar` | Refuses with a pending item (unless `--forcar`); otherwise closes as above. |
45
45
  | `listar` | Features with a folder and the status of each spec. |
@@ -51,7 +51,7 @@ The branch wins over the config: it describes the work happening now, while the
51
51
  ## When this skill runs
52
52
 
53
53
  - **The user asks what is active** → answer from the resolution order and stop. Do not write anything.
54
- - **The user asks to set, switch or clear** → they already named it (or asked to clear); normalize, write, confirm in one line. Do not ask for a slug they just gave you.
54
+ - **The user asks to rename, set, switch or clear** → this is the manual override. They already named it (or asked to clear): run `node _wizz/hooks/wizz-feature.js definir <slug>` (or clear, see Step 4), confirm in one line. Do not ask for a slug they just gave you. A rename keeps the old folders; `definir` creates the new ones.
55
55
  - **Genuine ambiguity** → two or more features are open and the request does not decide between them. This is the only case where you ask, and you ask once, offering the open features as options.
56
56
 
57
57
  ## Steps
@@ -68,7 +68,7 @@ Confirm with the user **only** in the ambiguity case. A slug that came from the
68
68
 
69
69
  ### Step 3: Write the config and create the subfolders
70
70
 
71
- Run `node _wizz/hooks/wizz-feature.js definir <slug>` from the project root. It sets `active_feature:` (adding the key if absent) and creates `{planning_artifacts}/{active_feature}/` and `{implementation_artifacts}/{active_feature}/`. Without the CLI (old install), edit the config and create the folders by hand.
71
+ Run `node _wizz/hooks/wizz-feature.js definir <slug>` from the project root; this is the override itself. It sets `active_feature:` (adding the key if absent) and creates `{planning_artifacts}/{active_feature}/` and `{implementation_artifacts}/{active_feature}/`. Without the CLI (old install), edit the config and create the folders by hand.
72
72
 
73
73
  ### Step 4: Clearing
74
74
 
@@ -4,6 +4,8 @@
4
4
 
5
5
  Defaults ship for HTML color themes, HTML design directions, Excalidraw wireframes (Discovery), and 1:1 HTML key-screen mocks (Finalize). Teams append more via override TOML — Figma MCP, custom skills, prompt-based mood boards.
6
6
 
7
+ **Figma, only when the client hands over a file.** Read it through the Framelink MCP (`figma-developer-mcp`, MIT, [GLips/Figma-Context-MCP](https://github.com/GLips/Figma-Context-MCP)) with the user's own free personal access token; it imports layout, styles and components into `imports/`. Never a required step: no file, no Figma. The official Figma MCP caps the free and view seats at a handful of calls a month, so it is not a default.
8
+
7
9
  ## When to invoke
8
10
 
9
11
  Decision moments where a visual beats more conversation: picking color tokens, picking a visual personality among directions, sketching IA, mocking a tricky flow. Fast-path users typically skip; coaching-path users typically lean in. Read the room.
@@ -2,6 +2,8 @@
2
2
 
3
3
  Source of truth: [google-labs-code/design.md](https://github.com/google-labs-code/design.md) (Apache 2.0, Google Labs, April 2026). This file is a working summary; the URL wins on conflict.
4
4
 
5
+ Check a finished file with the spec's own CLI (local, no key): `npx -y @google/design.md@0.4.0 lint DESIGN.md`. `diff` compares two versions. When the project already has a `DESIGN.md` from `wizz-decision-maker` (path in `design-state.yaml` → `identidade.design_md`), import it instead of starting from zero.
6
+
5
7
  ## Structure
6
8
 
7
9
  YAML frontmatter (machine-readable tokens) + markdown body (human-readable rationale, prose sections).
@@ -421,7 +421,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
421
421
  1. Review the comprehensive story in {{story_file}}
422
422
  2. Run dev agents `dev-story` for optimized implementation
423
423
  3. Run `code-review` when complete (auto-marks done)
424
- 4. Optional: If Test Architect module installed, run `/wizz:tea:automate` after `dev-story` to generate guardrail tests
424
+ 4. Optional: If Test Architect module installed, run the Test Architect `automate` workflow after `dev-story` to generate guardrail tests
425
425
 
426
426
  **The developer now has everything needed for flawless implementation!**
427
427
  </output>
@@ -486,7 +486,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
486
486
  - Verify all acceptance criteria are met
487
487
  - Ensure deployment readiness if applicable
488
488
  - Run `code-review` workflow for peer review
489
- - Optional: If Test Architect module installed, run `/wizz:tea:automate` to expand guardrail tests
489
+ - Optional: If Test Architect module installed, run the Test Architect `automate` workflow to expand guardrail tests
490
490
  </action>
491
491
 
492
492
  <output>💡 **Tip:** For best results, run `code-review` using a **different** LLM than the one that implemented this story.</output>
@@ -160,7 +160,7 @@ If the project needs:
160
160
  - Comprehensive coverage analysis
161
161
  - Advanced testing patterns and utilities
162
162
 
163
- > **Install Test Architect (TEA) module**: <https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/>
163
+ > **Wizz Test Architect (TEA) module**: enable it in the Wizz installer (install, then select the module `tea`).
164
164
 
165
165
  ## Output
166
166
 
@@ -30,4 +30,4 @@ Run the tests using your project's test command.
30
30
 
31
31
  ---
32
32
 
33
- **Need more comprehensive testing?** Install [Test Architect (TEA)](https://bmad-code-org.github.io/bmad-method-test-architecture-enterprise/) for advanced workflows.
33
+ **Need more comprehensive testing?** Enable the Wizz Test Architect (`tea`) module in the Wizz installer (install, then modules) for advanced workflows.
@@ -37,7 +37,7 @@ A specification should target a **single user-facing goal** within **900–1600
37
37
 
38
38
  You are the leaf: the maestro demotes here for pointed work (bug, tweak, single-goal feature). Re-check scope against the shared complexity signal (areas, steps, needs-planning?, artifact+memory?):
39
39
 
40
- **Dispatch rule:** IF 2+ areas → `wizz-maestro`, always. ELSE count the 3 remaining factors (multi-step, needs planning, produces a memorable artifact); 2+ factors → `wizz-maestro`. The area clause decides on its own, without summing with anything else.
40
+ **Dispatch rule:** IF 2+ areas → `wizz-maestro`, always. OTHERWISE count the 3 remaining factors (multi-step, needs planning, produces a memorable artifact); 2+ factors → `wizz-maestro`. The area clause decides on its own, without combining with anything else.
41
41
 
42
42
  **Decision order — capabilities → required relations → areas → shortcuts.** Match the catalogue entries, inspect their `rel`, and include only capabilities needed for the requested deliverable and not already supplied in the context. Resolve their owning areas before applying ANY one-area shortcut. One artifact can require multiple areas; the word "copy" does not prove that only copy is needed. For full sales-page copy, if either the offer or the conversion structure is missing from the supplied context, include the missing capability: `wizz-offer-forge` for the offer and/or `wizz-page-cro` for conversion structure (growth), alongside `wizz-copywriting` (copy); route to maestro. Do not assume those inputs are ready merely because the user did not mention them. If both are already approved and the request is limited to text, keep copy-only work in copy. An isolated headline or CTA does not require redesigning the whole page. Optional neighbours and separate deliverables do not add areas; `pairs_with` alone never escalates.
43
43
 
@@ -93,7 +93,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
93
93
  <action>Try {sprint_status_file}</action>
94
94
  <check if="file not found">
95
95
  <output>sprint-status.yaml not found.
96
- Run `/wizz:bmm:workflows:sprint-planning` to generate it, then rerun sprint-status.</output>
96
+ Run `/wizz-sprint-planning` to generate it, then rerun sprint-status.</output>
97
97
  <action>Exit workflow</action>
98
98
  </check>
99
99
  <action>Continue to Step 2</action>
@@ -149,9 +149,9 @@ Enter corrections (e.g., "1=in-progress, 2=backlog") or "skip" to continue witho
149
149
 
150
150
  <action>Detect risks:</action>
151
151
 
152
- - IF any story has status "review": suggest `/wizz:bmm:workflows:code-review`
152
+ - IF any story has status "review": suggest `/wizz-code-review`
153
153
  - IF any story has status "in-progress" AND no stories have status "ready-for-dev": recommend staying focused on active story
154
- - IF all epics have status "backlog" AND no stories have status "ready-for-dev": prompt `/wizz:bmm:workflows:create-story`
154
+ - IF all epics have status "backlog" AND no stories have status "ready-for-dev": prompt `/wizz-create-story`
155
155
  - IF `last_updated` timestamp is more than 7 days old (or `last_updated` is missing, fall back to `generated`): warn "sprint-status.yaml may be stale"
156
156
  - IF any story key doesn't match an epic pattern (e.g., story "5-1-..." but no "epic-5"): warn "orphaned story detected"
157
157
  - IF any epic has status in-progress but has no associated stories: warn "in-progress epic has no stories"
@@ -181,7 +181,7 @@ Enter corrections (e.g., "1=in-progress, 2=backlog") or "skip" to continue witho
181
181
 
182
182
  **Epics:** backlog {{epic_backlog}}, in-progress {{epic_in_progress}}, done {{epic_done}}
183
183
 
184
- **Next Recommendation:** /wizz:bmm:workflows:{{next_workflow_id}} ({{next_story_id}})
184
+ **Next Recommendation:** /wizz-{{next_workflow_id}} ({{next_story_id}})
185
185
 
186
186
  {{#if open_action_items}}
187
187
  **Open Action Items:**
@@ -211,7 +211,7 @@ Enter corrections (e.g., "1=in-progress, 2=backlog") or "skip" to continue witho
211
211
  Choice:</ask>
212
212
 
213
213
  <check if="choice == 1">
214
- <output>Run `/wizz:bmm:workflows:{{next_workflow_id}}`.
214
+ <output>Run `/wizz-{{next_workflow_id}}`.
215
215
  If the command targets a story, set `story_key={{next_story_id}}` when prompted.</output>
216
216
  </check>
217
217
 
@@ -1,7 +1,7 @@
1
1
  module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs
2
2
  Wizz Method,_meta,,,,,,,,,false,https://docs.wizz-method.org/llms.txt,
3
3
  Wizz Method,wizz-document-project,Document Project,DP,Analyze an existing project to produce useful documentation.,,,anytime,,,false,project-knowledge,*
4
- Wizz Method,wizz-set-feature,Set Feature,SF,Set or switch the active feature context so planning and implementation artifacts are organized into a named subfolder.,,,anytime,,,false,,
4
+ Wizz Method,wizz-set-feature,Set Feature,SF,Manual override: switch, rename or clear the active feature on purpose (it is normally set automatically by the first named request).,,,anytime,,,false,,
5
5
  Wizz Method,wizz-generate-project-context,Generate Project Context,GPC,Scan existing codebase to generate a lean LLM-optimized project-context.md. Essential for brownfield projects.,,,anytime,,,false,output_folder,project context
6
6
  Wizz Method,wizz-quick-dev,Quick Dev,QQ,Unified intent-in code-out workflow: clarify plan implement review and present.,,,anytime,,,false,implementation_artifacts,spec and project implementation
7
7
  Wizz Method,wizz-correct-course,Correct Course,CC,Navigate significant changes. May recommend start over update PRD redo architecture sprint planning or correct epics and stories.,,,anytime,,,false,planning_artifacts,change proposal
@@ -40,7 +40,7 @@ project_knowledge: # Artifacts from research, document-project output, other lon
40
40
  default: "docs"
41
41
  result: "{project-root}/{value}"
42
42
 
43
- active_feature: # Current feature context. Used as a subfolder inside planning and implementation artifacts. Set or switch it with the wizz-set-feature skill.
43
+ active_feature: # Current feature context. Used as a subfolder inside planning and implementation artifacts. Set automatically by the first named request (wizz-feature.js definir); the wizz-set-feature skill is the manual override to switch or rename it.
44
44
  prompt: "Active feature slug (e.g. admin-panel, auth-refactor). Used as a subfolder inside planning and implementation artifacts. Leave blank for none."
45
45
  default: ""
46
46
  result: "{value}"
@@ -22,9 +22,9 @@ and pass along only the skill's entrypoint and the references actually needed
22
22
  - origin: who is delegating (e.g. wizz-router, wizz-maestro). Anti-loop
23
23
  rule: never invoke whoever is already in the origin chain. Forbidden
24
24
  example: router delegates to maestro, maestro hands it back to router.
25
- - cerebro already consulted: a summary of up to 3 lines of what `/cerebro ver` already
25
+ - cerebro already consulted: a summary of up to 3 lines of what `/wizz-cerebro ver` already
26
26
  brought back (project state, recent decisions relevant to the area). If this
27
- field is filled in, whoever receives the handoff does not run `/cerebro ver`
27
+ field is filled in, whoever receives the handoff does not run `/wizz-cerebro ver`
28
28
  again, and uses the summary received instead.
29
29
  - decisions already made in the chain: a short list of what was already decided before
30
30
  this handoff (e.g. approved palette, defined scope).
@@ -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 `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` + `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.
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
 
@@ -11,7 +11,7 @@ The other low ticket skills are sharp and assume the user knows which one to cal
11
11
 
12
12
  ## Step 0: What is already known
13
13
 
14
- 1. Read the project's Cérebro state (via the `cerebro` skill). If it already says which offer is live and at which step, skip the questions.
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
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.
16
16
 
17
17
  ## Step 1: Place the user, in one message
@@ -31,7 +31,7 @@ The one thing that outranks a shard is `knowledge/guardrails.md`. Eight tactics
31
31
 
32
32
  ### Step 0: Read the state, then the index
33
33
 
34
- Read the project's Cérebro state block first (via the `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.
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
36
  Then read `knowledge/INDEX.md` and `knowledge/guardrails.md`. That is the whole default load, around 800 tokens.
37
37