wizz-method 1.16.0 → 1.17.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 (67) hide show
  1. package/package.json +4 -2
  2. package/removals.txt +6 -0
  3. package/skills-registry.yaml +81 -123
  4. package/src/bmm-skills/3-solutioning/wizz-generate-project-context/project-context-template.md +5 -0
  5. package/src/bmm-skills/3-solutioning/wizz-generate-project-context/steps/step-01-discover.md +16 -5
  6. package/src/bmm-skills/3-solutioning/wizz-generate-project-context/steps/step-03-complete.md +5 -0
  7. package/src/bmm-skills/4-implementation/wizz-retrospective/customize.toml +3 -1
  8. package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/__pycache__/sprint_status.cpython-313.pyc +0 -0
  9. package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/__pycache__/test_git_evidence.cpython-313-pytest-9.1.1.pyc +0 -0
  10. package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/__pycache__/test_sprint_status.cpython-313-pytest-9.1.1.pyc +0 -0
  11. package/src/bmm-skills/4-implementation/wizz-sprint-planning/customize.toml +3 -1
  12. package/src/bmm-skills/4-implementation/wizz-sprint-planning/scripts/__pycache__/sprint_plan.cpython-313.pyc +0 -0
  13. package/src/bmm-skills/4-implementation/wizz-sprint-planning/scripts/tests/__pycache__/test_sprint_plan.cpython-313-pytest-9.1.1.pyc +0 -0
  14. package/src/core-skills/wizz-advanced-elicitation/scripts/__pycache__/pick_methods.cpython-313.pyc +0 -0
  15. package/src/core-skills/wizz-advanced-elicitation/scripts/tests/__pycache__/test_pick_methods.cpython-313-pytest-9.1.1.pyc +0 -0
  16. package/src/core-skills/wizz-brainstorming/scripts/__pycache__/brain.cpython-313.pyc +0 -0
  17. package/src/core-skills/wizz-brainstorming/scripts/tests/__pycache__/test_brain.cpython-313-pytest-9.1.1.pyc +0 -0
  18. package/src/core-skills/wizz-brainstorming/scripts/tests/__pycache__/test_brain.cpython-314.pyc +0 -0
  19. package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-314.pyc +0 -0
  20. package/src/core-skills/wizz-forge-idea/scripts/tests/__pycache__/test_resolve_personas.cpython-314.pyc +0 -0
  21. package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
  22. package/src/core-skills/wizz-party-mode/scripts/tests/__pycache__/test_resolve_party.cpython-314.pyc +0 -0
  23. package/src/modules/wizz/_shared/encerramento.md +22 -0
  24. package/src/modules/wizz/agents/wizz-designer/SKILL.md +1 -1
  25. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +4 -0
  26. package/src/modules/wizz/agents/wizz-qa/SKILL.md +6 -0
  27. package/src/modules/wizz/agents/wizz-social/SKILL.md +1 -0
  28. package/src/modules/wizz/subagents/codex/wizz-exec-haiku.toml +12 -0
  29. package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +12 -0
  30. package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +11 -0
  31. package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +12 -0
  32. package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +12 -0
  33. package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +12 -0
  34. package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +11 -0
  35. package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +12 -0
  36. package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +12 -0
  37. package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +12 -0
  38. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +11 -0
  39. package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +12 -0
  40. package/src/modules/wizz/subagents/wizz-exec-haiku.md +12 -0
  41. package/src/modules/wizz/subagents/wizz-exec-opus.md +12 -0
  42. package/src/modules/wizz/subagents/wizz-exec-review.md +11 -0
  43. package/src/modules/wizz/subagents/wizz-exec-sonnet.md +12 -0
  44. package/src/skills-lib/launch-readiness/SKILL.md +94 -0
  45. package/src/skills-lib/launch-readiness/references/01-tecnico-build.md +26 -0
  46. package/src/skills-lib/launch-readiness/references/02-seguranca.md +26 -0
  47. package/src/skills-lib/launch-readiness/references/03-seo-descoberta.md +27 -0
  48. package/src/skills-lib/launch-readiness/references/04-analytics-medicao.md +25 -0
  49. package/src/skills-lib/launch-readiness/references/05-conteudo-prova-social.md +25 -0
  50. package/src/skills-lib/launch-readiness/references/06-legal-lgpd.md +25 -0
  51. package/src/skills-lib/launch-readiness/references/07-infra-deploy-rollback.md +26 -0
  52. package/src/skills-lib/launch-readiness/references/08-fusao-priorizacao.md +33 -0
  53. package/src/skills-lib/launch-readiness/references/09-persistencia-project-context.md +48 -0
  54. package/src/skills-lib/site-launch-kit/SKILL.md +1 -1
  55. package/src/skills-lib/taste-skill/SKILL.md +4 -2
  56. package/src/skills-lib/{taste-redesign → taste-skill}/references/design-audit.md +30 -41
  57. package/src/skills-lib/taste-skill/references/redesign-protocol.md +2 -2
  58. package/src/skills-lib/taste-skill/references/upgrade-techniques.md +33 -0
  59. package/src/skills-lib/wizz-offer-forge/SKILL.md +3 -2
  60. package/src/skills-lib/wizz-router/SKILL.md +7 -1
  61. package/src/skills-lib/wizz-router/references/routing-table-flat.md +3 -2
  62. package/tools/fetch-assets.mjs +3 -2
  63. package/tools/installer/commands/trace-report.js +248 -4
  64. package/tools/installer/modules/official-modules.js +5 -0
  65. package/wizz-modules.yaml +3 -3
  66. package/src/skills-lib/taste-redesign/SKILL.md +0 -42
  67. package/src/skills-lib/taste-redesign/references/upgrade-techniques.md +0 -31
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": "1.16.0",
4
+ "version": "1.17.0",
5
5
  "description": "Wizz Method — método de agência orientado por IA em PT-BR (fork independente do BMad Method)",
6
6
  "keywords": [
7
7
  "agile",
@@ -61,9 +61,10 @@
61
61
  "rebundle": "node tools/installer/bundlers/bundle-web.js rebundle",
62
62
  "sync:check": "node tools/sync-check.mjs",
63
63
  "sync:global": "node tools/sync-global.mjs",
64
- "test": "npm run test:refs && npm run test:install && npm run test:urls && npm run test:channels && npm run test:mcp && npm run test:env-vars && npm run test:cli && npm run test:deps && npm run test:dispatch-rule && npm run test:hooks && npm run test:quickupdate && npm run test:registry-schema && npm run test:module-registry && npm run test:method-refs-allowlist && npm run test:rtk-hook && npm run test:network-retry && npm run test:sync-check && npm run test:resolver && npm run test:fetch-assets && npm run test:install-smoke && npm run test:trace-report && npm run test:rehype-plugins && npm run test:workflow-path-regex && npm run test:preflight-tools-check && npm run lint && npm run lint:md && npm run format:check && npm run sync:check",
64
+ "test": "npm run test:refs && npm run test:install && npm run test:urls && npm run test:channels && npm run test:mcp && npm run test:env-vars && npm run test:cli && npm run test:deps && npm run test:dispatch-rule && npm run test:hooks && npm run test:decision-trace && npm run test:quickupdate && npm run test:registry-schema && npm run test:registry-lib-parity && npm run test:module-registry && npm run test:method-refs-allowlist && npm run test:rtk-hook && npm run test:network-retry && npm run test:sync-check && npm run test:resolver && npm run test:fetch-assets && npm run test:install-smoke && npm run test:trace-report && npm run test:rehype-plugins && npm run test:workflow-path-regex && npm run test:preflight-tools-check && npm run lint && npm run lint:md && npm run format:check && npm run sync:check",
65
65
  "test:channels": "node test/test-installer-channels.js",
66
66
  "test:cli": "node test/test-cli-config.js",
67
+ "test:decision-trace": "node test/test-decision-trace.js",
67
68
  "test:deps": "node test/test-deps-cache.js",
68
69
  "test:dispatch-rule": "node test/test-dispatch-rule-consistency.js",
69
70
  "test:env-vars": "node test/test-env-vars.js",
@@ -79,6 +80,7 @@
79
80
  "test:preflight-tools-check": "node test/test-preflight-tools-check.js",
80
81
  "test:quickupdate": "node test/test-quick-update-gate.js",
81
82
  "test:refs": "node test/test-file-refs-csv.js",
83
+ "test:registry-lib-parity": "node test/test-registry-lib-parity.js",
82
84
  "test:registry-schema": "node test/test-registry-schema.js",
83
85
  "test:rehype-plugins": "node test/test-rehype-plugins.mjs",
84
86
  "test:resolver": "node test/test-resolve-customization.js",
package/removals.txt CHANGED
@@ -60,3 +60,9 @@ wizz-distillator
60
60
  # wizz-create-ux-design: renamed to wizz-ux (spine-based skill with separate
61
61
  # DESIGN.md and EXPERIENCE.md outputs).
62
62
  wizz-create-ux-design
63
+ # taste-redesign: merged into taste-skill (P2 auditoria 360°, 2026-08-25).
64
+ # The redesign audit checklist and upgrade techniques now live as
65
+ # references/design-audit.md and references/upgrade-techniques.md inside
66
+ # taste-skill; taste-skill's description and redesign-protocol.md cover
67
+ # the same existing-project audit ground taste-redesign used to own.
68
+ taste-redesign
@@ -80,9 +80,11 @@ areas:
80
80
  entry: true
81
81
  door: direcao
82
82
  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: taste-skill (direção anti-slop de brief novo) e motion-3d-director (decidir caminho motion/3D/vídeo)."
83
+ rel:
84
+ pairs_with: [taste-skill, motion-3d-director]
83
85
  - id: taste-skill
84
86
  door: direcao
85
- when: "Anti-slop em briefs NOVOS: lê o brief, define a direção e audita contra defaults de AI."
87
+ when: "Anti-slop em briefs NOVOS: lê o brief, define a direção e audita contra defaults de AI. Também cobre projeto EXISTENTE: audita o código atual, lista problemas, prioriza fixes (protocolo de redesign)."
86
88
  - id: motion-3d-director
87
89
  door: direcao
88
90
  when: "Direção de motion/animação, 3D, WebGL, scroll cinematográfico, image-to-video. Decide o caminho ANTES de implementar."
@@ -91,7 +93,7 @@ areas:
91
93
  - id: ui-ux-pro-max
92
94
  entry: true
93
95
  door: construcao
94
- when: "PORTA de construção: criar/melhorar UI (design system, paleta, tipografia, componente, página). Puxa: premium-landing-ui-researcher (landing premium greenfield), ui-component-curator (1 componente em projeto existente), impeccable (gate de polish/acessibilidade), taste-redesign (anti-slop em código existente), huashu-design (protótipo HTML hi-fi/variantes/review) e react-components (Stitch→React)."
96
+ when: "PORTA de construção: criar/melhorar UI (design system, paleta, tipografia, componente, página). Puxa: premium-landing-ui-researcher (landing premium greenfield), ui-component-curator (1 componente em projeto existente), impeccable (gate de polish/acessibilidade), taste-skill (anti-slop em código existente, protocolo de redesign), huashu-design (protótipo HTML hi-fi/variantes/review) e react-components (Stitch→React)."
95
97
  - id: premium-landing-ui-researcher
96
98
  door: construcao
97
99
  when: "Projeto NOVO (greenfield): cria landing premium do zero, hero, 3D high-end. Estratégia source-first."
@@ -101,9 +103,6 @@ areas:
101
103
  - id: impeccable
102
104
  door: construcao
103
105
  when: "Gate de polish/qualidade de frontend: hardening de UI, acessibilidade, anti-padrões. Refina o que já existe."
104
- - id: taste-redesign
105
- door: construcao
106
- when: "Anti-slop em projeto EXISTENTE: audita o código atual, lista problemas, prioriza fixes."
107
106
  - id: huashu-design
108
107
  door: construcao
109
108
  when: "Direção visual + protótipo HTML hi-fi, exploração de variantes, review 5-dim, export MP4/GIF."
@@ -122,88 +121,78 @@ areas:
122
121
  - id: remotion-best-practices
123
122
  door: motion
124
123
  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)."
124
+ rel:
125
+ after: [hyperframes]
125
126
  - id: canvas-design
126
127
  door: motion
127
128
  when: "Gerar PNG/PDF editável por código (carrossel, quote card, infográfico) com fonte/cor/logo sempre certos. Traz canvas-fonts."
128
129
  - id: algorithmic-art
129
130
  door: motion
130
131
  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."
132
+ - id: ctc-align
133
+ door: motion
134
+ 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."
131
135
  mcps:
132
136
  - id: magic
133
137
  when: "Gerar/refinar componentes prontos via 21st.dev (UI builder, inspiration, refiner)."
134
138
  server:
135
139
  command: npx
136
- # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
137
- args: ["-y", "@21st-dev/magic@0.1.0"]
140
+ # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
141
+ args: ["-y", "@21st-dev/magic@0.2.2"]
138
142
  env:
139
143
  API_KEY: "${MAGIC_API_KEY}"
140
144
  clis:
141
145
  - id: 21st-cli
142
146
  when: "Fonte PAGA complementar (catálogos gratuitos como React Bits/Cult UI/Componentry vêm primeiro; gate de aprovação do usuário). Buscar, inspecionar, instalar e publicar componentes no 21st.dev via terminal (search/get/add/publish, registry do time @wizzdigitalagency). Complementa o Magic MCP (geração assistida); é o caminho de catálogo/registry e o fallback declarado quando o MCP está offline. O install traz também as skills oficiais 21st-cli-use, 21st-registry e 21st-design-sync. Login interativo: `21st login` (em CI usar env API_KEY_21ST)."
147
+ rel:
148
+ pairs_with: [magic]
143
149
  check: "command -v 21st"
144
150
  install: "npm i -g @21st-dev/cli && npx @21st-dev/cli install-skill"
145
151
  - id: hyperframes
146
152
  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."
147
- # Gate de plataforma (2026-07-08): o `install` virou clone+checkout
148
- # POSIX (mktemp/rm), então macOS/Linux/WSL — mesma regra das
149
- # clone-and-run abaixo. (Antes ficava sem gate porque check/install
150
- # eram só npx.)
153
+ not_when: "Montagem com áudio/SFX/legenda sincronizada (posicionador de áudio falhou em produção, ~2,76s de drift; CSS vaza entre telas)."
154
+ rel:
155
+ before: [remotion-best-practices]
151
156
  platform: [darwin, linux]
152
- # Check (2026-07-08): antes era `npx --yes hyperframes --version`, que
153
- # baixa o pacote do npm e portanto passa SEMPRE — o installer reportava
154
- # "já instalado" sem as skills nunca terem sido adicionadas. O que o
155
- # `install` traz são as SKILLS, então o check testa a skill instalada.
156
157
  check: "test -d $HOME/.claude/skills/hyperframes"
157
- # Pin de supply chain (2026-07-08): a convenção `#<sha>` na URL NÃO
158
- # funciona — a CLI `skills add` trata o fragmento como BRANCH
159
- # (`git clone --branch <sha>` "Remote branch not found"), e não há
160
- # flag --ref/pin. Pin real = clone temporário + checkout do SHA +
161
- # `skills add` do path local. `--copy` é obrigatório (senão symlinka
162
- # pro temp dir que é apagado); `-g` casa com o `check` global; `-y`
163
- # evita prompt em shell não-interativo. Atualizar conscientemente.
164
- install: 'd="$(mktemp -d)" && git clone https://github.com/heygen-com/hyperframes.git "$d" && git -C "$d" checkout 4c8064d4d3d1ffe51a10b1c7eee79a49b2fc468f && npx skills add "$d" -g -y --copy && rm -rf "$d"'
158
+ # Pin de supply chain (2026-08-23): clone temporário + checkout do SHA
159
+ # + `skills add` do path local. Atualizar conscientemente.
160
+ # Neutraliza remotion-to-hyperframes: o bundle instala uma skill de
161
+ # migração Remotion→HyperFrames proibida pela regra do pipeline
162
+ # (_shared/video-pipeline.md: HyperFrames desenha, Remotion monta).
163
+ install: 'd="$(mktemp -d)" && git clone https://github.com/heygen-com/hyperframes.git "$d" && git -C "$d" checkout 59a69a145bfbd0f10dee72246b68ee5d9bd71063 && npx skills add "$d" -g -y --copy && rm -rf "$d" && rm -rf "$HOME/.claude/skills/remotion-to-hyperframes"'
165
164
  - id: claude-video
166
165
  when: "Analisar/entender vídeo EXISTENTE: baixa, extrai frames e transcreve para resumir, achar momentos ou diagnosticar footage. NÃO cria vídeo. Precisa ffmpeg + yt-dlp (+ Groq/OpenAI p/ transcrição sem legenda)."
167
- # M20 (2026-07-07): check é POSIX puro (`test -d`, `$HOME`); em
168
- # Windows nativo sempre falha e o usuário é convidado a reinstalar
169
- # algo que nunca vai "ficar instalado" ali. Suporte oficial é
170
- # macOS/Linux/WSL (WSL reporta platform 'linux').
171
166
  platform: [darwin, linux]
172
167
  check: "test -d $HOME/.claude/skills/watch"
173
- # Pin de supply chain (2026-07-08): clone temporário + checkout do SHA
174
- # + `skills add` local (mesma convenção e racional do hyperframes
175
- # acima — `#<sha>` na URL falha porque a CLI trata o fragmento como
176
- # branch); atualizar conscientemente.
168
+ # Pin de supply chain (2026-08-23): clone temporário + checkout do SHA
169
+ # + `skills add` local. Atualizar conscientemente.
177
170
  install: 'd="$(mktemp -d)" && git clone https://github.com/bradautomates/claude-video.git "$d" && git -C "$d" checkout 83da59fa78c3eee9e20f515fe75c438bb5166efd && npx skills add "$d" -g -y --copy && rm -rf "$d"'
178
171
  - id: buttercut
179
172
  when: "EDITAR vídeo por IA: cortes, selects, cenas, roughcut via XML/FFmpeg. Sugerir quando o pedido for editar/cortar vídeo. Clone-and-run no PROJETO (não é skill add), pesado: Ruby + Python + FFmpeg + WhisperX. AVISOS: ~GB de modelos (WhisperX), build demorado, só Apple Silicon."
180
173
  platform: darwin-arm64
181
174
  check: "test -d ./buttercut"
182
- # Pin de supply chain (2026-07-06): checkout de SHA fixo; atualizar conscientemente.
183
- install: "git clone https://github.com/barefootford/buttercut.git buttercut && git -C buttercut checkout 1383f964ebc8b43c4af17f70b3ec6f611b18b3ce"
184
- # M14: `check` só prova "o clone existe"; o runtime pesado (Ruby +
185
- # Python + FFmpeg + WhisperX, documentado no `when` acima) não é
186
- # testado por ele. `verify` cobre a dependência mínima (falha =
187
- # aviso, nunca abort — CLI clone-and-run continua opt-in).
175
+ # Pin de supply chain (2026-08-23): checkout de SHA fixo; atualizar conscientemente.
176
+ install: "git clone https://github.com/barefootford/buttercut.git buttercut && git -C buttercut checkout f71d9537e2c22c3c4c1c659c4bdfb11e90ccd961"
188
177
  verify: "command -v ffmpeg >/dev/null 2>&1 && command -v ruby >/dev/null 2>&1 && command -v python3 >/dev/null 2>&1"
189
178
  - id: voicebox
190
179
  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."
191
- # M20: check é POSIX puro (`test -d`); suporte oficial macOS/Linux/WSL.
192
180
  platform: [darwin, linux]
193
181
  check: "test -d ./voicebox"
194
- # Pin de supply chain (2026-07-06): checkout de SHA fixo; atualizar conscientemente.
195
- install: "git clone https://github.com/jamiepine/voicebox.git voicebox && git -C voicebox checkout f2cf2a729d733acd7c759d85c6ace2d602f50d6e"
196
- # Sem `verify:` deliberadamente (2026-07-07): diferente de
197
- # buttercut/arcads, o `when` acima não documenta uma dependência de
198
- # sistema específica (é um app desktop autocontido que expõe um
199
- # endpoint MCP local) — nada de concreto pra checar sem inventar um
200
- # requisito que o registry não afirma.
182
+ # Pin de supply chain (2026-08-23): checkout de SHA fixo; atualizar conscientemente.
183
+ install: "git clone https://github.com/jamiepine/voicebox.git voicebox && git -C voicebox checkout 2bcb98d1a8b6fe05e15fbc1559e3085669e4035d"
201
184
  - id: ctc-align
202
185
  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."
203
186
  platform: [darwin, linux]
204
187
  check: "test -x ./tools/ctc-align/.venv/bin/ctc-forced-aligner"
205
188
  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"'
206
189
  verify: "command -v ffmpeg >/dev/null 2>&1 && command -v uv >/dev/null 2>&1"
190
+ - id: fal-video
191
+ when: "GERAR vídeo/imagem por IA (Veo/Kling/Wan e outros modelos via API da fal.ai), estilo UGC/ad-ready. Substitui o arcads: mesmo caso de uso (vídeo gerado por IA), custo 50-95% menor por vídeo, sem clone-and-run pesado. Precisa FAL_KEY em .env. Sem CLI binária oficial: usa o client Node oficial @fal-ai/client como dependência do projeto."
192
+ platform: [darwin, linux]
193
+ check: "test -f node_modules/@fal-ai/client/package.json"
194
+ # Pin de supply chain (2026-08-25): versão fixa (client oficial fal.ai); atualizar conscientemente.
195
+ install: "npm install @fal-ai/client@1.10.1"
207
196
  references:
208
197
  - "references/premium-agency-rules.md (regras $150k-tier, importadas por impeccable/huashu no modo high-end)"
209
198
 
@@ -241,15 +230,10 @@ areas:
241
230
  clis:
242
231
  - id: distribb
243
232
  when: "EXECUTAR distribuição de SEO: publicar artigos + construir backlinks pela rede da Distribb, conectar Google Search Console, autopublicar notícias. Complementa (não duplica) as skills de SEO que só geram/auditam. Requer Distribb API + GSC (+ DataForSEO/Ahrefs no plano free)."
244
- # M20: check é POSIX puro (`ls`, `grep -qi`, `$HOME`); suporte oficial
245
- # macOS/Linux/WSL.
246
233
  platform: [darwin, linux]
247
234
  check: "ls $HOME/.claude/skills 2>/dev/null | grep -qi distribb"
248
- # Pin de supply chain (2026-07-08): clone temporário + checkout do SHA
249
- # + `skills add` local (mesma convenção e racional do hyperframes
250
- # acima — `#<sha>` na URL falha porque a CLI trata o fragmento como
251
- # branch); atualizar conscientemente.
252
- install: 'd="$(mktemp -d)" && git clone https://github.com/Bomx/distribb-skill.git "$d" && git -C "$d" checkout 860700de171f2ff741985ffdc739010f3f0c0e25 && npx skills add "$d" -g -y --copy && rm -rf "$d"'
235
+ # Pin de supply chain (2026-08-23): clone temporário + checkout do SHA. Atualizar conscientemente.
236
+ install: 'd="$(mktemp -d)" && git clone https://github.com/Bomx/distribb-skill.git "$d" && git -C "$d" checkout 061a055768e13cf09108932a90aeb2e957183858 && npx skills add "$d" -g -y --copy && rm -rf "$d"'
253
237
 
254
238
  growth:
255
239
  agent: wizz-growth
@@ -303,16 +287,10 @@ areas:
303
287
  server:
304
288
  command: scrapling
305
289
  args: ["mcp"]
306
- # The MCP server lives in the `[ai]` extra, and fetching needs browsers.
307
- # Without this the installer would write a config for a binary that
308
- # isn't installed → the client fails with ENOENT. `setup` makes the
309
- # installer install the package, download browsers, resolve `scrapling`
310
- # to an absolute path (server.command is rewritten), and verify it boots
311
- # before writing; if verify fails the server is skipped, not written.
312
290
  setup:
313
291
  bin: scrapling
314
- # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
315
- install: 'uv tool install "scrapling[ai]==0.4.10" || pipx install "scrapling[ai]==0.4.10" || pip install --user "scrapling[ai]==0.4.10"'
292
+ # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
293
+ install: 'uv tool install "scrapling[ai]==0.4.14" || pipx install "scrapling[ai]==0.4.14" || pip install --user "scrapling[ai]==0.4.14"'
316
294
  post_install: "{bin} install"
317
295
  verify: "{bin} --version"
318
296
 
@@ -326,20 +304,6 @@ areas:
326
304
  when: "Decidir O QUE produzir de conteúdo (topic clusters, calendário, pilares)."
327
305
  - id: copy-editing
328
306
  when: "Revisar/editar o texto do roteiro ou da legenda antes de publicar."
329
- # Roteiro viral em si (hook, corpo, CTA) é conhecimento do próprio agente
330
- # wizz-social (Blueprint de Roteiro Viral em knowledge/), não uma skill global.
331
- #
332
- # CLIs de vídeo: o roteiro é o começo do pipeline (roteiro → voz → timing →
333
- # telas → montagem → corte → publicação). As tools de vídeo VIVEM na área
334
- # `designer` (fonte única, não duplicar aqui). O wizz-social ROTEIA para elas
335
- # pelo `when:`; a construção pesada de vídeo é com o wizz-designer. Cadeia e
336
- # regra completa em src/modules/wizz/_shared/video-pipeline.md:
337
- # voicebox → narração/voz/TTS do roteiro
338
- # ctc-align → timestamps palavra a palavra da narração (fonte de timing)
339
- # hyperframes → desenhar as TELAS (visual mudo, HTML→MP4)
340
- # remotion → MONTAR o filme (áudio, SFX, legenda, timing de frame)
341
- # buttercut → editar/cortar o vídeo gravado (só darwin-arm64)
342
- # claude-video → analisar um vídeo de referência (frames + transcrição)
343
307
 
344
308
  ads:
345
309
  agent: wizz-ads
@@ -356,29 +320,10 @@ areas:
356
320
  when: "Gestão real de campanha Meta/Facebook/Instagram via API (criar/editar/medir ads)."
357
321
  server:
358
322
  command: npx
359
- # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
360
- # Risco (2026-07-07, C5/RT3): pacote COMUNITÁRIO (não é @meta/@facebook
361
- # oficial), revisado nesta data na versão pinada 1.0.0; acesso a
362
- # META_ACCESS_TOKEN = gasto real de ads. O mesmo token é reaproveitado
363
- # pela CLI `arcads` (ver clis.arcads nesta mesma área): duas
364
- # ferramentas, mesma credencial. Recomendado: token com escopo
365
- # mínimo (ads_read pra relatórios; ads_management só com campanha
366
- # real confirmada).
323
+ # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
367
324
  args: ["-y", "mcp-meta-ads@1.0.0"]
368
325
  env:
369
326
  META_ACCESS_TOKEN: "${META_ACCESS_TOKEN}"
370
- clis:
371
- - id: arcads
372
- when: "GERAR vídeo-ad e imagem por IA (Seedance/Sora/Veo/Kling/OmniHuman + Nano Banana) e publicar como Meta ad. Clone-and-run no projeto: git clone + ./scripts/setup.sh; precisa Python 3.10+ e ARCADS API key em .env (META_ACCESS_TOKEN opcional p/ publicar)."
373
- # M20: check é POSIX puro (`test -d`); suporte oficial macOS/Linux/WSL.
374
- platform: [darwin, linux]
375
- check: "test -d ./arcads-claude-code"
376
- # Pin de supply chain (2026-07-06): checkout de SHA fixo; atualizar conscientemente.
377
- install: "git clone https://github.com/krusemediallc/arcads-claude-code.git arcads-claude-code && git -C arcads-claude-code checkout 0b0d3610bbdcfcc2607c77a748d6abb341adda46"
378
- # M14: `check` só prova "o clone existe", não o runtime (Python 3.10+
379
- # documentado no `when` acima). `verify` cobre essa dependência mínima
380
- # (falha = aviso, nunca abort — CLI clone-and-run continua opt-in).
381
- verify: "command -v python3 >/dev/null 2>&1 && python3 -c 'import sys; sys.exit(0 if sys.version_info >= (3, 10) else 1)'"
382
327
 
383
328
  architect:
384
329
  agent: wizz-agent-architect
@@ -409,17 +354,19 @@ areas:
409
354
  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."
410
355
  server:
411
356
  command: npx
412
- # Pin de supply chain (2026-07-06): versão fixa (era @latest); atualizar conscientemente.
413
- # Read-only + projeto escopado por padrão (2026-07-07, C5/RT3):
414
- # SUPABASE_ACCESS_TOKEN sem esses flags permite SQL arbitrário na
415
- # conta inteira. --read-only roda como usuário Postgres somente
416
- # leitura e desliga tools de mutação (projeto/branch/storage);
417
- # --project-id escopa ao projeto em SUPABASE_PROJECT_REF. Escrita
418
- # continua a 1 edição de distância (remover --read-only), nunca o
419
- # default.
420
- args: ["-y", "@supabase/mcp-server-supabase@0.8.2", "--read-only", "--project-id", "${SUPABASE_PROJECT_REF}"]
357
+ # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
358
+ args: ["-y", "@supabase/mcp-server-supabase@0.11.0", "--read-only", "--project-id", "${SUPABASE_PROJECT_REF}"]
421
359
  env:
422
360
  SUPABASE_ACCESS_TOKEN: "${SUPABASE_ACCESS_TOKEN}"
361
+ clis:
362
+ - id: sentry-cli
363
+ when: "CONDICIONAL — só ofereça se o projeto JÁ usa Sentry (existe SENTRY_DSN no env, sentry.properties, ou '@sentry/' no package.json) E o estágio é produção: subir release/sourcemaps, associar commits, monitorar erro em deploy. Nunca default e nunca sugerir ADOTAR Sentry só por causa desta CLI — é suporte a um Sentry que já existe, não uma recomendação de ferramenta."
364
+ not_when:
365
+ - "Projeto ainda não usa Sentry (sem SENTRY_DSN, sentry.properties ou '@sentry/' no package.json)."
366
+ - "Fora de estágio de produção."
367
+ check: "sentry-cli --version"
368
+ # Pin de supply chain (2026-08-25): versão fixa; atualizar conscientemente.
369
+ install: "npm install -g @sentry/cli@3.6.2"
423
370
 
424
371
  qa:
425
372
  agent: wizz-qa
@@ -427,16 +374,35 @@ areas:
427
374
  skills:
428
375
  - id: adversarial-reviewer
429
376
  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 (camada interna 'Blind Hunter' chamada só por wizz-code-review) nem com wizz-code-review (orquestrador bmm: 3 camadas paralelas + triagem, para review real de diff/PR)."
377
+ - id: security-audit-pentest
378
+ 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."
379
+ - id: launch-readiness
380
+ 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."
381
+ not_when:
382
+ - "Estágio de descoberta/ideação: projeto ainda sem superfície construída pra auditar (sem project-context.md, ou stage 'prototype' vazio)."
383
+ - "Correção de um achado isolado de site já identificado: nesse caso vá direto pra site-launch-kit."
384
+ rel:
385
+ pairs_with: [site-launch-kit, security-audit-pentest]
430
386
  - id: agent-browser
431
387
  when: "Verificação visual/browser, preencher forms, screenshots, testar UI no navegador. CLI já instalado (não é MCP); browser SEMPRE via agent-browser, nunca Playwright."
432
- # qa NÃO declara mcps: verificação de browser é via agent-browser (CLI/skill),
433
- # não via MCP. Não usar o MCP do Playwright.
434
388
  clis:
435
389
  - id: agent-browser
436
390
  when: "Dirigir um browser real pra E2E/verificação: navegar, clicar, preencher form, screenshot, console. É CLI, não MCP."
437
391
  check: "agent-browser --version"
438
- # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
439
- install: "npm install -g agent-browser@0.27.0"
392
+ # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
393
+ install: "npm install -g agent-browser@0.34.0"
394
+ - id: strix
395
+ 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."
396
+ not_when: "Sem alvo próprio ou sem autorização escrita e escopo definido do dono do sistema; nunca acionar por padrão silencioso."
397
+ rel:
398
+ pairs_with: [security-audit-pentest]
399
+ platform: [darwin, linux]
400
+ check: "command -v strix"
401
+ # Pin de supply chain (2026-08-25): versão fixa do pacote pip; o sandbox
402
+ # é a imagem pinada ghcr.io/usestrix/strix-sandbox:1.3.0, puxada no 1º run
403
+ # dentro do Docker isolado. Atualizar conscientemente.
404
+ install: "pipx install strix-agent==1.5.3"
405
+ verify: "command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1"
440
406
 
441
407
  analyst:
442
408
  agent: wizz-agent-analyst
@@ -445,16 +411,7 @@ areas:
445
411
  - id: inicio-de-projeto
446
412
  when: "Kickoff LEVE de engenharia: stack, personas, glossário, princípios, estrutura de pastas, checklist. Atalho sem cerimônia de PRD."
447
413
  - id: implementation-planner
448
- when: "Plano técnico de implementação de site/app premium pós-direção aprovada."
449
- mcps:
450
- - id: exa
451
- when: "Pesquisa web/prior-art durante planejamento (web search, descoberta de fontes)."
452
- server:
453
- command: npx
454
- # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
455
- args: ["-y", "exa-mcp-server@3.2.1"]
456
- env:
457
- EXA_API_KEY: "${EXA_API_KEY}"
414
+ when: "Plano técnico de implementação de site/app premium pós-direção aprovada. Pesquisa web/prior-art durante o planejamento usa a tool nativa WebSearch (sem custo/MCP metered — o MCP exa foi removido em 2026-08-25)."
458
415
 
459
416
  memoria:
460
417
  agent: wizz-memoria
@@ -484,8 +441,8 @@ mcp_utility:
484
441
  when: "Docs atualizadas de qualquer lib/framework/SDK (React, Next, Prisma, Tailwind...). Útil em todo dev."
485
442
  server:
486
443
  command: npx
487
- # Pin de supply chain (2026-07-06): versão fixa; atualizar conscientemente.
488
- args: ["-y", "@upstash/context7-mcp@3.2.2"]
444
+ # Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
445
+ args: ["-y", "@upstash/context7-mcp@4.0.3"]
489
446
 
490
447
  # ─────────────────────────────────────────────────────────────────────────────
491
448
  # CLIs — ferramentas de linha de comando que os agentes chamam direto (não são
@@ -523,16 +480,17 @@ cli_utility:
523
480
  # --version` só testava que rodava). Agora `check` volta a ser só
524
481
  # presença/versão (roda e imprime o número); a COMPARAÇÃO semver contra
525
482
  # min_version é feita pelo installer (detectClis), não em shell.
526
- min_version: 0.43.0
483
+ min_version: 0.45.0
527
484
  check: "rtk --version"
528
- # Pin de supply chain (2026-07-07): tag v0.43.0 (antes: branch master)
529
- # Checksum do install.sh nesta tag (2026-07-07): sha256
485
+ # Pin de supply chain (2026-08-23): tag v0.45.0 (antes: v0.43.0)
486
+ # Checksum do install.sh nesta tag (2026-08-23): sha256
530
487
  # d6eb73a772903e13ff34ee1be8a8b24e896ba9a978f20d2279a08b4083ea6f77
488
+ # (install.sh idêntico ao v0.43.0 — mesmo checksum.)
531
489
  # (RT1: tag git pode ser movida à força; o checksum trava o conteúdo real
532
490
  # que será executado, não só o nome da tag. Verificado com `shasum -c`
533
491
  # antes do `sh`; se a tag mudar de conteúdo, o install aborta em vez de
534
492
  # rodar script desconhecido.)
535
- install: "curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/tags/v0.43.0/install.sh -o /tmp/rtk-install-v0.43.0.sh && echo 'd6eb73a772903e13ff34ee1be8a8b24e896ba9a978f20d2279a08b4083ea6f77 /tmp/rtk-install-v0.43.0.sh' | shasum -a 256 -c - && sh /tmp/rtk-install-v0.43.0.sh"
493
+ install: "curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/tags/v0.45.0/install.sh -o /tmp/rtk-install-v0.45.0.sh && echo 'd6eb73a772903e13ff34ee1be8a8b24e896ba9a978f20d2279a08b4083ea6f77 /tmp/rtk-install-v0.45.0.sh' | shasum -a 256 -c - && sh /tmp/rtk-install-v0.45.0.sh"
536
494
 
537
495
  # ─────────────────────────────────────────────────────────────────────────────
538
496
  # SQUADS — painéis consultivos de personas (rodam via wizz-party-mode).
@@ -4,6 +4,7 @@ user_name: '{{user_name}}'
4
4
  date: '{{date}}'
5
5
  sections_completed: ['technology_stack']
6
6
  existing_patterns_found: { { number_of_patterns_discovered } }
7
+ stage: '{{project_stage}}' # prototype|mvp|production|maintenance
7
8
  ---
8
9
 
9
10
  # Project Context for AI Agents
@@ -12,6 +13,10 @@ _This file contains critical rules and patterns that AI agents must follow when
12
13
 
13
14
  ---
14
15
 
16
+ ## Estado do Projeto
17
+
18
+ _Documented after discovery phase (estágio atual, o que está no ar, o que falta)_
19
+
15
20
  ## Technology Stack & Versions
16
21
 
17
22
  _Documented after discovery phase_
@@ -38,7 +38,18 @@ First, check if project context already exists:
38
38
  - If exists: Read complete file to understand existing rules
39
39
  - Present to user: "Found existing project context with {number_of_sections} sections. Would you like to update this or create a new one?"
40
40
 
41
- ### 2. Discover Project Technology Stack
41
+ ### 2. Determine Project Stage
42
+
43
+ Infer the project's lifecycle stage from repo signals before going deeper:
44
+
45
+ - No deploy config, few commits, scaffolding only → likely `prototype`
46
+ - Deployed but still shaping core flows, no monitoring/CI → likely `mvp`
47
+ - CI/CD, monitoring, error tracking, real users → likely `production`
48
+ - Low commit velocity, mostly fixes/deps → likely `maintenance`
49
+
50
+ Present the inferred stage and confirm with the user: "Pelos sinais do repo, este projeto parece estar em **{{inferred_stage}}**. Confere?" Use the confirmed value for `stage:` in the frontmatter.
51
+
52
+ ### 3. Discover Project Technology Stack
42
53
 
43
54
  Load and analyze project files to identify technologies:
44
55
 
@@ -61,7 +72,7 @@ Load and analyze project files to identify technologies:
61
72
  - Linting and formatting configs (.eslintrc, .prettierrc, etc.)
62
73
  - Testing configurations (jest.config.js, vitest.config.ts, etc.)
63
74
 
64
- ### 3. Identify Existing Code Patterns
75
+ ### 4. Identify Existing Code Patterns
65
76
 
66
77
  Search through existing codebase for patterns:
67
78
 
@@ -85,7 +96,7 @@ Search through existing codebase for patterns:
85
96
  - Documentation requirements
86
97
  - README and API doc patterns
87
98
 
88
- ### 4. Extract Critical Implementation Rules
99
+ ### 5. Extract Critical Implementation Rules
89
100
 
90
101
  Look for rules that AI agents might miss:
91
102
 
@@ -117,7 +128,7 @@ Look for rules that AI agents might miss:
117
128
  - PR review requirements
118
129
  - Deployment procedures
119
130
 
120
- ### 5. Initialize Project Context Document
131
+ ### 6. Initialize Project Context Document
121
132
 
122
133
  Based on discovery, create or update the context document:
123
134
 
@@ -131,7 +142,7 @@ Initialize frontmatter fields.
131
142
  Load existing context and prepare for updates
132
143
  Set frontmatter `sections_completed` to track what will be updated
133
144
 
134
- ### 6. Present Discovery Summary
145
+ ### 7. Present Discovery Summary
135
146
 
136
147
  Report findings to user:
137
148
 
@@ -77,6 +77,10 @@ _This file contains critical rules and patterns that AI agents must follow when
77
77
 
78
78
  ---
79
79
 
80
+ ## Estado do Projeto
81
+
82
+ {{stage_and_current_status}}
83
+
80
84
  ## Technology Stack & Versions
81
85
 
82
86
  {{concise_technology_list}}
@@ -196,6 +200,7 @@ sections_completed:
196
200
  status: 'complete'
197
201
  rule_count: { { total_rules } }
198
202
  optimized_for_llm: true
203
+ stage: '{{project_stage}}' # prototype|mvp|production|maintenance
199
204
  ---
200
205
  ```
201
206
 
@@ -30,7 +30,9 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = []
33
+ persistent_facts = [
34
+ "file:{project-root}/**/project-context.md",
35
+ ]
34
36
 
35
37
  # Scalar: executed at the end of Phase 5 (Close), after the retrospective
36
38
  # document is saved and sprint-status is updated. Override wins.
@@ -30,7 +30,9 @@ activation_steps_append = []
30
30
  # - a file reference prefixed with `file:`, e.g. "file:{project-root}/docs/standards.md"
31
31
  # (glob patterns are supported; the file's contents are loaded and treated as facts).
32
32
 
33
- persistent_facts = []
33
+ persistent_facts = [
34
+ "file:{project-root}/**/project-context.md",
35
+ ]
34
36
 
35
37
  # Scalar: executed when the workflow reaches its final step,
36
38
  # after sprint-status.yaml is generated and validated. Override wins.
@@ -1,11 +1,15 @@
1
1
  # Protocolo de Encerramento Wizz
2
2
 
3
+ **Antes de montar o bloco:** confira o entregável contra o brief original. Faltou algo? Liste em `⚠️ Não coberto`. Se está tudo coberto, não adicione essa linha.
4
+
3
5
  Toda vez que você terminar uma tarefa ou explicar um serviço, encerre **exatamente** neste formato. Linguagem fácil, frases curtas, em PT-BR. Sem jargão.
4
6
 
5
7
  ```
6
8
  ✅ O que fiz
7
9
  <1 a 2 frases simples, como se explicasse para um cliente>
8
10
 
11
+ ⚠️ Não coberto: <itens> (só quando houver diff contra o brief original)
12
+
9
13
  ➡️ Próximo passo
10
14
  <qual agente chamar OU o que fazer agora>
11
15
 
@@ -34,3 +38,21 @@ Se preferir já partir pro código, chame o wizz-agent-dev.
34
38
  🎯 Comando: /wizz:designer
35
39
  💾 Quer que eu salve a estrutura no cerebro?
36
40
  ```
41
+
42
+ ## Marcador de decisão (telemetria, opt-in)
43
+
44
+ Em todo pedido **roteado** (não em conversa trivial), adicione **1 linha extra** no fim da resposta, depois do bloco acima:
45
+
46
+ ```
47
+ 🧭 {"rota":"agent:designer","sel":["canvas-design"],"desc":[["hyperframes","carrossel é estático não vídeo"]],"gate":"ok","repetiria":true}
48
+ ```
49
+
50
+ Formato exato — objeto JSON plano numa única linha, sem quebras:
51
+
52
+ - `rota`: `"agent:<area>"`, `"maestro"` ou `"flat:<skill>"` — quem de fato tratou o pedido.
53
+ - `sel`: array com os ids das skills/agentes selecionados.
54
+ - `desc`: array de `[id_descartado, "motivo em até 6 palavras"]` — o que você considerou e não usou, e por quê.
55
+ - `gate`: string curta com o resultado do gate aplicado (ex: `"ok"`, `"pulado"`, `"bloqueado"`).
56
+ - `repetiria`: bool — self-eval mínima: se recebesse este pedido de novo, faria a mesma escolha?
57
+
58
+ Isso é telemetria de decisão: um hook de evento Stop lê o transcript e appenda o marcador num log local, opt-in via `WIZZ_TRACE=1` (sem isso, o hook nem toca em disco). Custo: ~30-60 tokens de output, 0 de input. Não emita em conversa trivial.
@@ -29,7 +29,7 @@ Você é o Designer do Wizz. Cria interfaces e landing pages de alto nível, mos
29
29
 
30
30
  Para cada tarefa, **entre pela porta certa via a ferramenta `Skill`** e traga o resultado em linguagem fácil:
31
31
  - Decidir ANTES de construir (brief, direção visual, caminho de motion/3D) → `decision-maker` (puxa taste-skill, motion-3d-director)
32
- - Criar/melhorar UI (landing, design system, componente, polish) → `ui-ux-pro-max` (puxa premium-landing-ui-researcher, ui-component-curator, impeccable, taste-redesign, huashu-design, react-components)
32
+ - Criar/melhorar UI (landing, design system, componente, polish) → `ui-ux-pro-max` (puxa premium-landing-ui-researcher, ui-component-curator, impeccable, taste-skill, huashu-design, react-components)
33
33
  - Executar animação e gerar mídia → `animate` (puxa design-motion-principles, remotion-best-practices, canvas-design, algorithmic-art)
34
34
 
35
35
  Sempre **mostre o visual/plano antes do código**. Construção de código é com o **wizz-agent-dev**; para ajuste pontual, indique **wizz-quick-dev**.