wizz-method 2.18.0 → 2.19.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.
- package/package.json +5 -3
- package/removals.txt +10 -0
- package/skills-registry.yaml +50 -38
- package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +9 -9
- package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/checklist.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +5 -5
- package/src/bmm-skills/module-help.csv +1 -1
- package/src/bmm-skills/module.yaml +1 -1
- package/src/core-skills/_shared/handoff-protocol.md +2 -2
- package/src/modules/lowticket/skills/wizz-lowticket-funil/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-guia/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-minerador/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-pagina/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-trafego/SKILL.md +1 -1
- package/src/modules/wizz/_shared/cerebro.md +7 -7
- package/src/modules/wizz/_shared/communication-rules.md +1 -1
- package/src/modules/wizz/_shared/encerramento.md +4 -3
- package/src/modules/wizz/_shared/organizacao.md +8 -4
- package/src/modules/wizz/_shared/token-economy.md +1 -1
- package/src/modules/wizz/_shared/video-pipeline.md +4 -4
- package/src/modules/wizz/agents/wizz-ads/SKILL.md +4 -1
- package/src/modules/wizz/agents/wizz-ads/customize.toml +12 -3
- package/src/modules/wizz/agents/wizz-ads/knowledge/playbook.md +36 -0
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +4 -1
- package/src/modules/wizz/agents/wizz-copy/customize.toml +2 -3
- package/src/modules/wizz/agents/wizz-copy/knowledge/playbook.md +34 -0
- package/src/modules/wizz/agents/wizz-designer/SKILL.md +2 -2
- package/src/modules/wizz/agents/wizz-designer/customize.toml +2 -3
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +4 -1
- package/src/modules/wizz/agents/wizz-growth/customize.toml +33 -4
- package/src/modules/wizz/agents/wizz-growth/knowledge/playbook.md +39 -0
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +6 -8
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +2 -3
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +7 -7
- package/src/modules/wizz/agents/wizz-memoria/customize.toml +5 -6
- package/src/modules/wizz/agents/wizz-qa/SKILL.md +5 -6
- package/src/modules/wizz/agents/wizz-qa/customize.toml +3 -4
- package/src/modules/wizz/agents/wizz-seo/SKILL.md +4 -1
- package/src/modules/wizz/agents/wizz-seo/customize.toml +2 -3
- package/src/modules/wizz/agents/wizz-seo/knowledge/playbook.md +31 -0
- package/src/modules/wizz/agents/wizz-social/SKILL.md +3 -3
- package/src/modules/wizz/agents/wizz-social/customize.toml +2 -3
- package/src/modules/wizz/overrides/wizz-agent-analyst.toml +2 -2
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +3 -3
- package/src/modules/wizz/overrides/wizz-agent-dev.toml +3 -3
- package/src/modules/wizz/overrides/wizz-agent-pm.toml +2 -2
- package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +2 -2
- package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +2 -2
- package/src/skills-lib/_shared/complexity-signal.md +8 -9
- package/src/skills-lib/_shared/dispatch-rule.yaml +21 -0
- package/src/skills-lib/{cerebro → wizz-cerebro}/SKILL.md +1 -1
- package/src/skills-lib/{ctc-align → wizz-ctc-align}/SKILL.md +1 -1
- package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/SKILL.md +1 -1
- package/src/skills-lib/{find-skills → wizz-find-skills}/SKILL.md +1 -1
- package/src/skills-lib/wizz-huashu-design/references/sfx-library.md +1 -1
- package/src/skills-lib/wizz-huashu-design/scripts/add-music.sh +1 -1
- package/src/skills-lib/wizz-huashu-design/scripts/html2pptx.js +45 -37
- package/src/skills-lib/wizz-huashu-design/scripts/mix-voiceover.sh +1 -1
- package/src/skills-lib/wizz-huashu-design/scripts/narrate-pipeline.mjs +11 -5
- package/src/skills-lib/wizz-huashu-design/scripts/test_scripts.py +209 -0
- package/src/skills-lib/wizz-huashu-design/scripts/tts-doubao.mjs +42 -28
- package/src/skills-lib/wizz-ig-profile-optimizer/SKILL.md +1 -1
- package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +1 -1
- package/src/skills-lib/wizz-launch-readiness/SKILL.md +7 -7
- package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +3 -3
- package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +5 -5
- package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +1 -1
- package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +6 -6
- package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +1 -1
- package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +1 -1
- package/src/skills-lib/wizz-offer-forge/SKILL.md +3 -3
- package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/README.md +1 -1
- package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/SKILL.md +1 -1
- package/src/skills-lib/wizz-router/SKILL.md +3 -3
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +9 -9
- package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/SKILL.md +1 -1
- package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/SKILL.md +1 -1
- package/src/skills-lib/wizz-video-effects/SKILL.md +3 -3
- package/src/skills-lib/wizz-video-effects/references/data-contract.md +3 -3
- package/src/skills-lib/wizz-video-effects/scripts/fill_breaths.py +15 -1
- package/src/skills-lib/wizz-video-effects/scripts/test_fill_breaths.py +20 -0
- package/src/skills-lib/wizz-video-styles/SKILL.md +2 -2
- package/src/skills-lib/wizz-video-styles/data/recipes.json +32 -1
- package/src/skills-lib/wizz-video-styles/data/references.json +211 -1
- package/src/skills-lib/wizz-video-styles/data/styles.json +54 -0
- package/src/skills-lib/wizz-video-styles/references/generated-prompts.md +13 -3
- package/src/skills-lib/wizz-video-styles/references/style-picker.md +4 -2
- package/src/skills-lib/wizz-video-styles/references/styles/ui-morph.md +68 -0
- package/src/skills-lib/wizz-video-styles/scripts/analyze.sh +21 -9
- package/src/skills-lib/wizz-video-styles/scripts/references.mjs +1 -0
- package/src/skills-lib/wizz-web-security/SKILL.md +1 -1
- package/tools/fetch-assets.mjs +1 -1
- package/tools/hooks/README.md +18 -14
- package/tools/hooks/rtk-rewrite.js +95 -0
- package/tools/hooks/security-defensive-context.js +17 -1
- package/tools/hooks/session-rules.js +25 -5
- package/tools/hooks/wizz-arrumar.js +126 -12
- package/tools/hooks/wizz-artifact-guard.js +41 -7
- package/tools/hooks/wizz-cerebro-lib.js +239 -0
- package/tools/hooks/wizz-close-reminder.js +124 -0
- package/tools/hooks/wizz-debug-lib.js +55 -0
- package/tools/hooks/wizz-decision-trace.js +19 -2
- package/tools/hooks/wizz-feature.js +20 -4
- package/tools/hooks/wizz-router-enforce.js +30 -13
- package/tools/installer/command-text.js +243 -0
- package/tools/installer/commands/catalog.js +2 -0
- package/tools/installer/commands/doctor.js +10 -12
- package/tools/installer/commands/fetch-assets.js +5 -5
- package/tools/installer/commands/install.js +6 -7
- package/tools/installer/commands/resolve.js +17 -17
- package/tools/installer/commands/trace-report.js +40 -37
- package/tools/installer/core/doctor.js +60 -55
- package/tools/installer/core/hooks-settings.js +88 -14
- package/tools/installer/core/hooks-smoke.js +134 -0
- package/tools/installer/core/installer.js +61 -52
- package/tools/installer/core/quick-update.js +2 -3
- package/tools/installer/install-text.js +201 -0
- package/tools/installer/modules/channel-plan.js +2 -2
- package/tools/installer/modules/env-vars.js +5 -6
- package/tools/installer/modules/skills-lib.js +1 -1
- package/tools/installer/ui.js +17 -9
- /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-pesquisa-e-memoria.md +0 -0
- /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-rotina-e-captura.md +0 -0
- /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-sessao.md +0 -0
- /package/src/skills-lib/{ctc-align → wizz-ctc-align}/scripts/align.py +0 -0
- /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/README.md +0 -0
- /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/references/KEYWORDS.md +0 -0
- /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/assets/template.html +0 -0
- /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/prompts.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-1-validacao-entrada.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-2-autorizacao.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-3-abuso-volume.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-4-vazamento-resposta.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-5-fusao-plano.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/01-cta-principal.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/02-barra-fixa-mobile.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/03-tempo-de-resposta.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/04-prova-social.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/05-faq-decisao.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/06-imagens-reais.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/07-endereco-como-chegar.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/08-titles.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/09-open-graph.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/10-breadcrumbs.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/11-alt-text.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/12-schema-local.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/13-robots-sitemap.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/14-privacidade-termos.md +0 -0
- /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.
|
|
4
|
+
"version": "2.19.0",
|
|
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
|
package/skills-registry.yaml
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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,10 +308,9 @@ 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
|
-
|
|
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"
|
|
@@ -336,16 +337,18 @@ areas:
|
|
|
336
337
|
agent: wizz-copy
|
|
337
338
|
summary: "Copywriting: texto de venda, headlines, páginas, e-mails, sequências."
|
|
338
339
|
skills:
|
|
339
|
-
# Módulo lowticket:
|
|
340
|
-
#
|
|
341
|
-
#
|
|
342
|
-
#
|
|
340
|
+
# Módulo lowticket: um dono por skill desde 2026-09-18 (decisão do
|
|
341
|
+
# dono). Guia, metodologia, funil, minerador e página moram em growth;
|
|
342
|
+
# wizz-lowticket-trafego mora em ads (campanha Meta, bid cap, régua de
|
|
343
|
+
# corte é trabalho de ads; confirmado pelo dono em 2026-10-15). A copy
|
|
344
|
+
# chega nelas pelo `rel` de wizz-copywriting — que é o caminho que o
|
|
345
|
+
# método usa pra tudo mais. Antes a mesma skill existia em copy, growth e ads, e o
|
|
343
346
|
# eval mostrava o custo: "qual prazo de garantia?" respondia copy,
|
|
344
347
|
# growth ou ads em amostras diferentes, porque as três estavam certas.
|
|
345
348
|
- id: wizz-copywriting
|
|
346
349
|
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
350
|
rel:
|
|
348
|
-
after: [pesquisa-de-publico-do-piva, wizz-offer-forge]
|
|
351
|
+
after: [wizz-pesquisa-de-publico-do-piva, wizz-offer-forge]
|
|
349
352
|
before: [wizz-copy-editing]
|
|
350
353
|
pairs_with:
|
|
351
354
|
[
|
|
@@ -396,7 +399,7 @@ areas:
|
|
|
396
399
|
when: "Implementar dados estruturados / structured data."
|
|
397
400
|
rel:
|
|
398
401
|
after: [wizz-seo-audit]
|
|
399
|
-
pairs_with: [site-launch-kit, wizz-ai-seo]
|
|
402
|
+
pairs_with: [wizz-site-launch-kit, wizz-ai-seo]
|
|
400
403
|
- id: wizz-programmatic-seo
|
|
401
404
|
when: "Gerar páginas em escala pra atacar muitas keywords."
|
|
402
405
|
rel:
|
|
@@ -496,18 +499,18 @@ areas:
|
|
|
496
499
|
when: "Setar/auditar tracking e medição (GA4, GTM, eventos, UTM, atribuição)."
|
|
497
500
|
rel:
|
|
498
501
|
pairs_with: [wizz-ab-test-setup, wizz-referral-program, wizz-tracking-audit]
|
|
499
|
-
- id: site-launch-kit
|
|
502
|
+
- id: wizz-site-launch-kit
|
|
500
503
|
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
504
|
rel:
|
|
502
505
|
pairs_with: [wizz-launch-readiness, wizz-schema-markup]
|
|
503
|
-
- id: pesquisa-de-publico-do-piva
|
|
506
|
+
- id: wizz-pesquisa-de-publico-do-piva
|
|
504
507
|
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
508
|
rel:
|
|
506
509
|
before: [wizz-copywriting, wizz-offer-forge]
|
|
507
510
|
- id: wizz-offer-forge
|
|
508
511
|
when: "Forjar oferta irresistível de resposta direta/infoproduto (mecanismo único, empilhamento de valor, garantia reversa, ponte de tráfego)."
|
|
509
512
|
rel:
|
|
510
|
-
after: [pesquisa-de-publico-do-piva, wizz-lowticket-minerador]
|
|
513
|
+
after: [wizz-pesquisa-de-publico-do-piva, wizz-lowticket-minerador]
|
|
511
514
|
before: [wizz-copywriting]
|
|
512
515
|
pairs_with: [wizz-ig-profile-optimizer, wizz-pricing-strategy, wizz-lowticket-metodologia]
|
|
513
516
|
# Módulo lowticket (src/modules/lowticket) — ver nota em ads.skills. Desde
|
|
@@ -682,7 +685,7 @@ areas:
|
|
|
682
685
|
- id: wizz-web-security
|
|
683
686
|
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
687
|
rel:
|
|
685
|
-
before: [security-audit-pentest]
|
|
688
|
+
before: [wizz-security-audit-pentest]
|
|
686
689
|
pairs_with: [wizz-auth-and-secrets, wizz-database-and-deps, wizz-desktop-security]
|
|
687
690
|
- id: wizz-auth-and-secrets
|
|
688
691
|
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 +722,7 @@ areas:
|
|
|
719
722
|
- id: wizz-ai-product-design
|
|
720
723
|
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
724
|
rel:
|
|
722
|
-
pairs_with: [enhance-prompt]
|
|
725
|
+
pairs_with: [wizz-enhance-prompt]
|
|
723
726
|
mcps:
|
|
724
727
|
- id: supabase
|
|
725
728
|
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 +774,19 @@ areas:
|
|
|
771
774
|
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
775
|
rel:
|
|
773
776
|
instead_of: [wizz-code-review]
|
|
774
|
-
- id: security-audit-pentest
|
|
777
|
+
- id: wizz-security-audit-pentest
|
|
775
778
|
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
779
|
rel:
|
|
777
780
|
after: [wizz-web-security]
|
|
778
781
|
pairs_with: [strix, wizz-launch-readiness]
|
|
779
782
|
- 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."
|
|
783
|
+
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
784
|
not_when:
|
|
782
785
|
- "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."
|
|
786
|
+
- "Correção de um achado isolado de site já identificado: nesse caso vá direto pra wizz-site-launch-kit."
|
|
784
787
|
rel:
|
|
785
|
-
pairs_with: [security-audit-pentest, site-launch-kit, wizz-database-and-deps]
|
|
786
|
-
- id: site-launch-kit
|
|
788
|
+
pairs_with: [wizz-security-audit-pentest, wizz-site-launch-kit, wizz-database-and-deps]
|
|
789
|
+
- id: wizz-site-launch-kit
|
|
787
790
|
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
791
|
rel:
|
|
789
792
|
pairs_with: [wizz-launch-readiness, wizz-schema-markup]
|
|
@@ -800,10 +803,10 @@ areas:
|
|
|
800
803
|
# Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
|
|
801
804
|
install: "npm install -g agent-browser@0.38.1"
|
|
802
805
|
- 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."
|
|
806
|
+
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
807
|
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
808
|
rel:
|
|
806
|
-
pairs_with: [security-audit-pentest]
|
|
809
|
+
pairs_with: [wizz-security-audit-pentest]
|
|
807
810
|
platform: [darwin, linux]
|
|
808
811
|
check: "command -v strix"
|
|
809
812
|
# Pin de supply chain (2026-08-25): versão fixa do pacote pip; o sandbox
|
|
@@ -845,6 +848,13 @@ areas:
|
|
|
845
848
|
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
849
|
rel:
|
|
847
850
|
after: [wizz-implementation-planner, wizz-investigate]
|
|
851
|
+
# Também em designer, como porta de motion (2026-10-15): animar algo no
|
|
852
|
+
# código do app é do dev, e sem esta entrada o dev não enxergava o craft.
|
|
853
|
+
- id: wizz-animate
|
|
854
|
+
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."
|
|
855
|
+
not_when:
|
|
856
|
+
- "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)."
|
|
857
|
+
- "Vídeo para divulgar o app: é wizz-video-styles."
|
|
848
858
|
- id: wizz-dev-story
|
|
849
859
|
module: bmm
|
|
850
860
|
when: "Implementar UMA story específica com spec preenchida ('dev this story', 'implementa a próxima story do sprint')."
|
|
@@ -855,7 +865,7 @@ areas:
|
|
|
855
865
|
module: bmm
|
|
856
866
|
when: "Preparar story com todo o contexto de implementação ('cria a story', 'prepara a story'). Antes do dev, no gate de planejamento."
|
|
857
867
|
rel:
|
|
858
|
-
after: [wizz-prd, wizz-
|
|
868
|
+
after: [wizz-prd, wizz-sprint-planning]
|
|
859
869
|
before: [wizz-dev-story]
|
|
860
870
|
- id: wizz-code-review
|
|
861
871
|
module: bmm
|
|
@@ -894,7 +904,7 @@ areas:
|
|
|
894
904
|
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
905
|
rel:
|
|
896
906
|
after: [wizz-product-brief]
|
|
897
|
-
before: [wizz-create-story
|
|
907
|
+
before: [wizz-create-story]
|
|
898
908
|
pairs_with: [wizz-ux]
|
|
899
909
|
- id: wizz-product-brief
|
|
900
910
|
module: bmm
|
|
@@ -907,12 +917,14 @@ areas:
|
|
|
907
917
|
when: "Desafio Working Backwards PRFAQ para forjar conceito de produto ('cria a PRFAQ', 'work backwards')."
|
|
908
918
|
rel:
|
|
909
919
|
before: [wizz-product-brief]
|
|
920
|
+
# Ajuste MANUAL da feature ativa. Desde a 2.16 a feature é definida sozinha
|
|
921
|
+
# (branch > config > primeiro pedido nomeado, via `wizz-feature.js definir`,
|
|
922
|
+
# regra em src/modules/wizz/_shared/organizacao.md), então esta entrada fica
|
|
923
|
+
# fora da cadeia PRD → story: sem `rel`, de propósito.
|
|
910
924
|
- id: wizz-set-feature
|
|
911
925
|
module: bmm
|
|
912
|
-
when: "
|
|
913
|
-
|
|
914
|
-
after: [wizz-prd]
|
|
915
|
-
before: [wizz-create-story]
|
|
926
|
+
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')."
|
|
927
|
+
not_when: "Começar, planejar ou especificar uma feature nova: o hook define a feature ativa sozinho."
|
|
916
928
|
|
|
917
929
|
tech-writer:
|
|
918
930
|
agent: wizz-agent-tech-writer
|
|
@@ -938,16 +950,16 @@ areas:
|
|
|
938
950
|
agent: wizz-memoria
|
|
939
951
|
summary: "Memória do projeto: o que foi decidido, salvar, ver estado."
|
|
940
952
|
skills:
|
|
941
|
-
- id: cerebro
|
|
953
|
+
- id: wizz-cerebro
|
|
942
954
|
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
955
|
|
|
944
956
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
945
957
|
# UTILITÁRIOS — cross-cutting, não pertencem a uma área só.
|
|
946
958
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
947
959
|
utility:
|
|
948
|
-
- id: find-skills
|
|
960
|
+
- id: wizz-find-skills
|
|
949
961
|
when: "Nenhuma skill cobre o pedido: buscar/instalar no marketplace (npx skills find)."
|
|
950
|
-
- id: enhance-prompt
|
|
962
|
+
- id: wizz-enhance-prompt
|
|
951
963
|
when: "Empacotar um briefing mais completo/estruturado pra mandar a outro agente ou skill."
|
|
952
964
|
rel:
|
|
953
965
|
pairs_with: [wizz-ai-product-design]
|
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-set-feature
|
|
3
|
-
description: '
|
|
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
|
-
**
|
|
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
|
|
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
|
|
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`
|
|
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** →
|
|
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
|
|
|
@@ -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
|
|
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
|
|
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
|
-
> **
|
|
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?**
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
|
@@ -15,7 +15,7 @@ Two kinds of person ask this. An operator who already runs traffic, reads metric
|
|
|
15
15
|
|
|
16
16
|
## Source of truth
|
|
17
17
|
|
|
18
|
-
Read the Cérebro state first (via the `cerebro` skill). If `wizz-lowticket-metodologia` is installed, read `knowledge/INDEX.md` + `knowledge/guardrails.md`, then:
|
|
18
|
+
Read the Cérebro state first (via the `wizz-cerebro` skill). If `wizz-lowticket-metodologia` is installed, read `knowledge/INDEX.md` + `knowledge/guardrails.md`, then:
|
|
19
19
|
|
|
20
20
|
- **`12-mineracao-ofertas.md`**: the price trick, the Ad Library filter checklist and keyword taxonomy, the 0-10 rubric with a cut at 6, the three safety rules
|
|
21
21
|
- **`12a-mineracao-veredito.md`**: §12.5, the scoring ruler and what disqualifies
|
|
@@ -30,7 +30,7 @@ Speed fixes the leak between the click and the page. It does not fix a bad offer
|
|
|
30
30
|
|
|
31
31
|
## Source of truth
|
|
32
32
|
|
|
33
|
-
Read the Cérebro state first (via the `cerebro` skill). If `wizz-lowticket-metodologia` is installed, read `knowledge/INDEX.md` + `knowledge/guardrails.md` and shard `06-pagina-vendas.md`, especially §6.3-6.4. Page structure and copy blocks for a pure low-ticket page live in `12c-anatomia-low-ticket.md` (the 11-block anatomy, not `12b` anymore); VSL player behavior (autoplay, progress bar, weight) is `06b-player-vsl.md`; conversion-side reasoning is `wizz-page-cro`. Where a generic skill contradicts the shard, the shard wins and you say so.
|
|
33
|
+
Read the Cérebro state first (via the `wizz-cerebro` skill). If `wizz-lowticket-metodologia` is installed, read `knowledge/INDEX.md` + `knowledge/guardrails.md` and shard `06-pagina-vendas.md`, especially §6.3-6.4. Page structure and copy blocks for a pure low-ticket page live in `12c-anatomia-low-ticket.md` (the 11-block anatomy, not `12b` anymore); VSL player behavior (autoplay, progress bar, weight) is `06b-player-vsl.md`; conversion-side reasoning is `wizz-page-cro`. Where a generic skill contradicts the shard, the shard wins and you say so.
|
|
34
34
|
|
|
35
35
|
**Open conflict, do not resolve it alone.** §6.3-6.4 (this skill's rule) fires the pixel direct, first in `<head>`, no tag manager. `17-rastreamento.md` installs that same pixel *inside* GTM, as part of the full GA4 + Meta + server-container stack. This is ponto 38 of `pontos-em-aberto.md` in `wizz-lowticket-metodologia`, and it is unresolved. If the page already runs tracking through GTM, do not rip the pixel out of the container to chase the speed target: ask which rule wins before touching it.
|
|
36
36
|
|
|
@@ -18,7 +18,7 @@ The numbers live in `wizz-lowticket-metodologia`, not here. On activation, read
|
|
|
18
18
|
|
|
19
19
|
Where a generic paid-media skill (`wizz-paid-ads`, `wizz-analytics-tracking`) contradicts those shards, the shard wins and you say so. If `wizz-lowticket-metodologia` is not installed, the rules in `references/reguas.md` here are the fallback, and you say that too.
|
|
20
20
|
|
|
21
|
-
Read the Cérebro state before answering (via the `cerebro` skill): the account's breakeven, ticket and current bid cap are state, not knowledge. This skill has **no memory of its own** and writes none.
|
|
21
|
+
Read the Cérebro state before answering (via the `wizz-cerebro` skill): the account's breakeven, ticket and current bid cap are state, not knowledge. This skill has **no memory of its own** and writes none.
|
|
22
22
|
|
|
23
23
|
## If the user is new to this
|
|
24
24
|
|