wizz-method 1.16.1 → 1.18.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/README.md +1 -1
- package/package.json +7 -2
- package/removals.txt +9 -0
- package/skills-registry.yaml +119 -36
- package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +1 -1
- package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +41 -37
- package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +1 -1
- package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +1 -1
- package/src/bmm-skills/3-solutioning/wizz-generate-project-context/project-context-template.md +5 -0
- package/src/bmm-skills/3-solutioning/wizz-generate-project-context/steps/step-01-discover.md +16 -5
- package/src/bmm-skills/3-solutioning/wizz-generate-project-context/steps/step-03-complete.md +5 -0
- package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-retrospective/customize.toml +3 -1
- package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/__pycache__/sprint_status.cpython-313.pyc +0 -0
- package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/__pycache__/test_git_evidence.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/__pycache__/test_sprint_status.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/customize.toml +3 -1
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/scripts/__pycache__/sprint_plan.cpython-313.pyc +0 -0
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/scripts/tests/__pycache__/test_sprint_plan.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/core-skills/wizz-advanced-elicitation/scripts/__pycache__/pick_methods.cpython-313.pyc +0 -0
- package/src/core-skills/wizz-advanced-elicitation/scripts/tests/__pycache__/test_pick_methods.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/core-skills/wizz-brainstorming/scripts/__pycache__/brain.cpython-313.pyc +0 -0
- package/src/core-skills/wizz-brainstorming/scripts/tests/__pycache__/test_brain.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/core-skills/wizz-brainstorming/scripts/tests/__pycache__/test_brain.cpython-314.pyc +0 -0
- package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-314.pyc +0 -0
- package/src/core-skills/wizz-forge-idea/scripts/tests/__pycache__/test_resolve_personas.cpython-314.pyc +0 -0
- package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-314.pyc +0 -0
- package/src/core-skills/wizz-party-mode/scripts/tests/__pycache__/test_resolve_party.cpython-314.pyc +0 -0
- package/src/modules/lowticket/README.md +55 -0
- package/src/modules/lowticket/module.yaml +31 -0
- package/src/modules/lowticket/skills/lowticket-funil/SKILL.md +112 -0
- package/src/modules/lowticket/skills/lowticket-funil/references/copy-das-paginas.md +75 -0
- package/src/modules/lowticket/skills/lowticket-funil/references/mapa-do-funil.md +71 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/CATALOGO.md +352 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/SKILL.md +62 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/01-principios.md +12 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/02-diagnostico-funil.md +83 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/03-campanha-bidcap.md +95 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/04-criativos.md +66 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/04a-criativos-ia.md +79 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/04b-criativos-formatos.md +152 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/05-oferta.md +51 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/06-pagina-vendas.md +175 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/06a-instagram.md +138 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/07-funil-upsell.md +73 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/08-pesquisa-publico.md +14 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/09-especialista-coproducao.md +41 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/10-levantar-caixa.md +49 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/11-checklist-roi.md +36 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/12-mineracao-ofertas.md +63 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/12a-mineracao-veredito.md +78 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/12b-fabrica-de-ofertas.md +178 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/13-benchmarks-vsl.md +10 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/14-vocabulario.md +55 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/15-como-estender.md +35 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/INDEX.md +45 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/guardrails.md +33 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/knowledge/pontos-em-aberto.md +42 -0
- package/src/modules/lowticket/skills/lowticket-metodologia/references/swipe-file.md +38 -0
- package/src/modules/lowticket/skills/lowticket-minerador/SKILL.md +115 -0
- package/src/modules/lowticket/skills/lowticket-minerador/references/rubrica.md +75 -0
- package/src/modules/lowticket/skills/lowticket-pagina/SKILL.md +106 -0
- package/src/modules/lowticket/skills/lowticket-pagina/references/metas-e-medicao.md +70 -0
- package/src/modules/lowticket/skills/lowticket-pagina/references/padroes-de-codigo.md +148 -0
- package/src/modules/lowticket/skills/lowticket-trafego/SKILL.md +88 -0
- package/src/modules/lowticket/skills/lowticket-trafego/references/formato-do-diagnostico.md +56 -0
- package/src/modules/lowticket/skills/lowticket-trafego/references/reguas.md +72 -0
- package/src/modules/wizz/README.md +1 -1
- package/src/modules/wizz/_shared/cerebro.md +35 -1
- package/src/modules/wizz/_shared/communication-rules.md +8 -1
- package/src/modules/wizz/_shared/encerramento.md +22 -0
- package/src/modules/wizz/_shared/token-economy.md +7 -10
- package/src/modules/wizz/agents/wizz-ads/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-copy/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-designer/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-designer/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-growth/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +5 -1
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +1 -1
- package/src/modules/wizz/agents/wizz-qa/SKILL.md +6 -0
- package/src/modules/wizz/agents/wizz-qa/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-seo/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-social/SKILL.md +1 -0
- package/src/modules/wizz/agents/wizz-social/customize.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-analyst.toml +2 -2
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +2 -2
- package/src/modules/wizz/overrides/wizz-agent-dev.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-pm.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +1 -1
- package/src/modules/wizz/subagents/codex/wizz-exec-haiku.toml +12 -0
- package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +12 -0
- package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +11 -0
- package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +12 -0
- package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +12 -0
- package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +12 -0
- package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +11 -0
- package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +12 -0
- package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +12 -0
- package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +12 -0
- package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +11 -0
- package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +12 -0
- package/src/modules/wizz/subagents/wizz-exec-haiku.md +12 -0
- package/src/modules/wizz/subagents/wizz-exec-opus.md +12 -0
- package/src/modules/wizz/subagents/wizz-exec-review.md +11 -0
- package/src/modules/wizz/subagents/wizz-exec-sonnet.md +12 -0
- package/src/skills-lib/analytics-tracking/SKILL.md +2 -0
- package/src/skills-lib/analytics-tracking/references/utm-taxonomy.md +92 -0
- package/src/skills-lib/cerebro/SKILL.md +20 -17
- package/src/skills-lib/cerebro/references/comandos-pesquisa-e-memoria.md +96 -0
- package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +25 -6
- package/src/skills-lib/cerebro/references/comandos-sessao.md +61 -37
- package/src/skills-lib/launch-readiness/SKILL.md +94 -0
- package/src/skills-lib/launch-readiness/references/01-tecnico-build.md +26 -0
- package/src/skills-lib/launch-readiness/references/02-seguranca.md +26 -0
- package/src/skills-lib/launch-readiness/references/03-seo-descoberta.md +27 -0
- package/src/skills-lib/launch-readiness/references/04-analytics-medicao.md +25 -0
- package/src/skills-lib/launch-readiness/references/05-conteudo-prova-social.md +25 -0
- package/src/skills-lib/launch-readiness/references/06-legal-lgpd.md +25 -0
- package/src/skills-lib/launch-readiness/references/07-infra-deploy-rollback.md +26 -0
- package/src/skills-lib/launch-readiness/references/08-fusao-priorizacao.md +33 -0
- package/src/skills-lib/launch-readiness/references/09-persistencia-project-context.md +48 -0
- package/src/skills-lib/premium-landing-ui-researcher/references/source-first-protocol.md +1 -1
- package/src/skills-lib/site-launch-kit/SKILL.md +1 -1
- package/src/skills-lib/taste-skill/SKILL.md +4 -2
- package/src/skills-lib/{taste-redesign → taste-skill}/references/design-audit.md +30 -41
- package/src/skills-lib/taste-skill/references/redesign-protocol.md +2 -2
- package/src/skills-lib/taste-skill/references/upgrade-techniques.md +33 -0
- package/src/skills-lib/tracking-audit/SKILL.md +78 -0
- package/src/skills-lib/tracking-audit/references/modo-diagnostico.md +72 -0
- package/src/skills-lib/tracking-audit/references/modo-implantacao.md +89 -0
- package/src/skills-lib/tracking-audit/references/utm-e-atribuicao.md +75 -0
- package/src/skills-lib/wizz-offer-forge/SKILL.md +30 -4
- package/src/skills-lib/wizz-offer-forge/references/plano-de-medicao.md +74 -0
- package/src/skills-lib/wizz-router/SKILL.md +8 -2
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +4 -3
- package/tools/fetch-assets.mjs +3 -2
- package/tools/installer/commands/trace-report.js +248 -4
- package/tools/installer/modules/official-modules.js +5 -0
- package/tools/installer/modules/skills-lib.js +7 -1
- package/wizz-modules.yaml +20 -3
- package/src/skills-lib/cerebro/references/comandos-pesquisa-e-sync.md +0 -44
- package/src/skills-lib/graphify/.graphify_version +0 -1
- package/src/skills-lib/graphify/SKILL.md +0 -1199
- package/src/skills-lib/taste-redesign/SKILL.md +0 -42
- package/src/skills-lib/taste-redesign/references/upgrade-techniques.md +0 -31
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ O ponto de entrada técnico é o `wizz-router`: ele faz a triagem e manda pedido
|
|
|
26
26
|
|
|
27
27
|
Os papéis de dev e produto reusam os agentes WIZZ (Mary, John, Winston, Amelia, Sally, Paige), personalizados em PT-BR pelos overrides em `src/modules/wizz/overrides/`.
|
|
28
28
|
|
|
29
|
-
A camada Wizz vale para todos os agentes: encerramento padrão (✅/➡️/🎯), economia de token (
|
|
29
|
+
A camada Wizz vale para todos os agentes: encerramento padrão (✅/➡️/🎯), economia de token (cérebro, depois grep antes de abrir arquivos), auto-load leve do cérebro na ativação e idioma à sua escolha. Detalhes em [src/modules/wizz/README.md](src/modules/wizz/README.md).
|
|
30
30
|
|
|
31
31
|
## Quick Start
|
|
32
32
|
|
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.
|
|
4
|
+
"version": "1.18.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,17 +61,21 @@
|
|
|
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:cli-pin-consistency && npm run test:deps && npm run test:dispatch-rule && npm run test:hooks && npm run test:feature-context && npm run test:decision-trace && npm run test:quickupdate && npm run test:registry-schema && npm run test:registry-lib-parity && npm run test:lowticket-third-party && 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:cli-pin-consistency": "node test/test-cli-pin-consistency.js",
|
|
68
|
+
"test:decision-trace": "node test/test-decision-trace.js",
|
|
67
69
|
"test:deps": "node test/test-deps-cache.js",
|
|
68
70
|
"test:dispatch-rule": "node test/test-dispatch-rule-consistency.js",
|
|
69
71
|
"test:env-vars": "node test/test-env-vars.js",
|
|
72
|
+
"test:feature-context": "node test/test-feature-context.js",
|
|
70
73
|
"test:fetch-assets": "node test/test-fetch-assets.js",
|
|
71
74
|
"test:hooks": "node test/test-router-hook.js",
|
|
72
75
|
"test:install": "node test/test-installation-components.js",
|
|
73
76
|
"test:install-smoke": "node test/test-install-smoke.js",
|
|
74
77
|
"test:install-smoke-mcp": "node test/test-install-smoke-mcp.js",
|
|
78
|
+
"test:lowticket-third-party": "node test/test-lowticket-third-party.js",
|
|
75
79
|
"test:mcp": "node test/test-mcp-config.js",
|
|
76
80
|
"test:method-refs-allowlist": "node test/test-method-refs-allowlist.js",
|
|
77
81
|
"test:module-registry": "node test/test-module-registry-fields.js",
|
|
@@ -79,6 +83,7 @@
|
|
|
79
83
|
"test:preflight-tools-check": "node test/test-preflight-tools-check.js",
|
|
80
84
|
"test:quickupdate": "node test/test-quick-update-gate.js",
|
|
81
85
|
"test:refs": "node test/test-file-refs-csv.js",
|
|
86
|
+
"test:registry-lib-parity": "node test/test-registry-lib-parity.js",
|
|
82
87
|
"test:registry-schema": "node test/test-registry-schema.js",
|
|
83
88
|
"test:rehype-plugins": "node test/test-rehype-plugins.mjs",
|
|
84
89
|
"test:resolver": "node test/test-resolve-customization.js",
|
package/removals.txt
CHANGED
|
@@ -60,3 +60,12 @@ 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
|
|
69
|
+
|
|
70
|
+
# Removida na auditoria de contexto (2026-08-28): knowledge graph descontinuado.
|
|
71
|
+
graphify
|
package/skills-registry.yaml
CHANGED
|
@@ -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-
|
|
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,12 +121,17 @@ 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)."
|
|
@@ -140,41 +144,63 @@ areas:
|
|
|
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."
|
|
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]
|
|
147
156
|
platform: [darwin, linux]
|
|
148
|
-
check:
|
|
157
|
+
# O check confere o SHA fixado, não só a existência da pasta: o bundle é
|
|
158
|
+
# copiado (não clonado), então o pin é gravado num marcador no install.
|
|
159
|
+
check: 'grep -qx 59a69a145bfbd0f10dee72246b68ee5d9bd71063 "$HOME/.claude/skills/hyperframes/.wizz-pin" 2>/dev/null'
|
|
149
160
|
# Pin de supply chain (2026-08-23): clone temporário + checkout do SHA
|
|
150
161
|
# + `skills add` do path local. Atualizar conscientemente.
|
|
151
|
-
|
|
162
|
+
# Neutraliza remotion-to-hyperframes: o bundle instala uma skill de
|
|
163
|
+
# migração Remotion→HyperFrames proibida pela regra do pipeline
|
|
164
|
+
# (_shared/video-pipeline.md: HyperFrames desenha, Remotion monta).
|
|
165
|
+
install: 'd="$(mktemp -d)" && git clone https://github.com/heygen-com/hyperframes.git "$d" && git -C "$d" checkout 59a69a145bfbd0f10dee72246b68ee5d9bd71063 && npx skills add "$d" -g -y --copy && printf "%s\\n" 59a69a145bfbd0f10dee72246b68ee5d9bd71063 > "$HOME/.claude/skills/hyperframes/.wizz-pin" && rm -rf "$d" && rm -rf "$HOME/.claude/skills/remotion-to-hyperframes"'
|
|
152
166
|
- id: claude-video
|
|
153
167
|
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)."
|
|
154
168
|
platform: [darwin, linux]
|
|
155
|
-
check:
|
|
169
|
+
# O check confere o SHA fixado, não só a existência da pasta: o bundle é
|
|
170
|
+
# copiado (não clonado), então o pin é gravado num marcador no install.
|
|
171
|
+
check: 'grep -qx 83da59fa78c3eee9e20f515fe75c438bb5166efd "$HOME/.claude/skills/watch/.wizz-pin" 2>/dev/null'
|
|
156
172
|
# Pin de supply chain (2026-08-23): clone temporário + checkout do SHA
|
|
157
173
|
# + `skills add` local. Atualizar conscientemente.
|
|
158
|
-
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"'
|
|
174
|
+
install: 'd="$(mktemp -d)" && git clone https://github.com/bradautomates/claude-video.git "$d" && git -C "$d" checkout 83da59fa78c3eee9e20f515fe75c438bb5166efd && npx skills add "$d" -g -y --copy && printf "%s\\n" 83da59fa78c3eee9e20f515fe75c438bb5166efd > "$HOME/.claude/skills/watch/.wizz-pin" && rm -rf "$d"'
|
|
159
175
|
- id: buttercut
|
|
160
176
|
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."
|
|
161
177
|
platform: darwin-arm64
|
|
162
|
-
|
|
178
|
+
# Clone-and-run: o próprio repo responde o SHA, então o check compara com o
|
|
179
|
+
# pin. O install repara um clone existente em vez de falhar no git clone.
|
|
180
|
+
check: 'test "$(git -C ./buttercut rev-parse HEAD 2>/dev/null)" = f71d9537e2c22c3c4c1c659c4bdfb11e90ccd961'
|
|
163
181
|
# Pin de supply chain (2026-08-23): checkout de SHA fixo; atualizar conscientemente.
|
|
164
|
-
install: "git clone https://github.com/barefootford/buttercut.git buttercut && git -C buttercut checkout f71d9537e2c22c3c4c1c659c4bdfb11e90ccd961"
|
|
182
|
+
install: "{ [ -d buttercut/.git ] || git clone https://github.com/barefootford/buttercut.git buttercut; } && git -C buttercut fetch --tags origin && git -C buttercut checkout f71d9537e2c22c3c4c1c659c4bdfb11e90ccd961"
|
|
165
183
|
verify: "command -v ffmpeg >/dev/null 2>&1 && command -v ruby >/dev/null 2>&1 && command -v python3 >/dev/null 2>&1"
|
|
166
184
|
- id: voicebox
|
|
167
185
|
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."
|
|
168
186
|
platform: [darwin, linux]
|
|
169
|
-
|
|
187
|
+
# Clone-and-run: o próprio repo responde o SHA, então o check compara com o
|
|
188
|
+
# pin. O install repara um clone existente em vez de falhar no git clone.
|
|
189
|
+
check: 'test "$(git -C ./voicebox rev-parse HEAD 2>/dev/null)" = 2bcb98d1a8b6fe05e15fbc1559e3085669e4035d'
|
|
170
190
|
# Pin de supply chain (2026-08-23): checkout de SHA fixo; atualizar conscientemente.
|
|
171
|
-
install: "git clone https://github.com/jamiepine/voicebox.git voicebox && git -C voicebox checkout 2bcb98d1a8b6fe05e15fbc1559e3085669e4035d"
|
|
191
|
+
install: "{ [ -d voicebox/.git ] || git clone https://github.com/jamiepine/voicebox.git voicebox; } && git -C voicebox fetch --tags origin && git -C voicebox checkout 2bcb98d1a8b6fe05e15fbc1559e3085669e4035d"
|
|
172
192
|
- id: ctc-align
|
|
173
193
|
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."
|
|
174
194
|
platform: [darwin, linux]
|
|
175
195
|
check: "test -x ./tools/ctc-align/.venv/bin/ctc-forced-aligner"
|
|
176
196
|
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"'
|
|
177
197
|
verify: "command -v ffmpeg >/dev/null 2>&1 && command -v uv >/dev/null 2>&1"
|
|
198
|
+
- id: fal-video
|
|
199
|
+
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."
|
|
200
|
+
platform: [darwin, linux]
|
|
201
|
+
check: "test -f node_modules/@fal-ai/client/package.json"
|
|
202
|
+
# Pin de supply chain (2026-08-25): versão fixa (client oficial fal.ai); atualizar conscientemente.
|
|
203
|
+
install: "npm install @fal-ai/client@1.10.1"
|
|
178
204
|
references:
|
|
179
205
|
- "references/premium-agency-rules.md (regras $150k-tier, importadas por impeccable/huashu no modo high-end)"
|
|
180
206
|
|
|
@@ -213,9 +239,11 @@ areas:
|
|
|
213
239
|
- id: distribb
|
|
214
240
|
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)."
|
|
215
241
|
platform: [darwin, linux]
|
|
216
|
-
check
|
|
242
|
+
# O check confere o SHA fixado, não só a existência da pasta: o bundle é
|
|
243
|
+
# copiado (não clonado), então o pin é gravado num marcador no install.
|
|
244
|
+
check: 'grep -qx 061a055768e13cf09108932a90aeb2e957183858 "$HOME/.claude/skills/distribb/.wizz-pin" 2>/dev/null'
|
|
217
245
|
# Pin de supply chain (2026-08-23): clone temporário + checkout do SHA. Atualizar conscientemente.
|
|
218
|
-
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"'
|
|
246
|
+
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 && printf "%s\\n" 061a055768e13cf09108932a90aeb2e957183858 > "$HOME/.claude/skills/distribb/.wizz-pin" && rm -rf "$d"'
|
|
219
247
|
|
|
220
248
|
growth:
|
|
221
249
|
agent: wizz-growth
|
|
@@ -263,6 +291,28 @@ areas:
|
|
|
263
291
|
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)."
|
|
264
292
|
- id: wizz-offer-forge
|
|
265
293
|
when: "Forjar oferta irresistível de resposta direta/infoproduto (mecanismo único, empilhamento de valor, garantia reversa, ponte de tráfego)."
|
|
294
|
+
# Módulo lowticket (src/modules/lowticket) — ver nota em ads.skills.
|
|
295
|
+
- id: lowticket-metodologia
|
|
296
|
+
module: lowticket
|
|
297
|
+
when: "Roteador da base low ticket BR/PT: gatilho → um shard. Régua de preço, garantia e oferta que tem precedência sobre a skill genérica."
|
|
298
|
+
not_when:
|
|
299
|
+
- "SaaS, B2B, site de cliente, high ticket ou mentoria: os números não transferem."
|
|
300
|
+
- id: lowticket-funil
|
|
301
|
+
module: lowticket
|
|
302
|
+
when: "Escada pós-checkout de low ticket: upsell 1, upsell 2, downsell, oferta final, régua de preço por degrau e copy das páginas."
|
|
303
|
+
not_when:
|
|
304
|
+
- "Antes de existir um front-end que converte: estender funil sobre front que não vende multiplica zero."
|
|
305
|
+
- id: lowticket-minerador
|
|
306
|
+
module: lowticket
|
|
307
|
+
when: "Garimpo e veredito de oferta de concorrente: vocabulário de busca, veredito em 4 níveis, comparação lado a lado, diagnóstico de por que não escalou."
|
|
308
|
+
not_when:
|
|
309
|
+
- "A oferta já está definida: aí é wizz-offer-forge."
|
|
310
|
+
- id: lowticket-pagina
|
|
311
|
+
module: lowticket
|
|
312
|
+
when: "Engenharia de performance da página de venda low ticket: connect rate, ordem do pixel, LCP/TTFB/CLS, peso acima da dobra, relatório antes e depois."
|
|
313
|
+
not_when:
|
|
314
|
+
- "Reescrever copy, preço ou estrutura de oferta: esta skill é o engenheiro, não o copywriter."
|
|
315
|
+
- "Site institucional ou app."
|
|
266
316
|
mcps:
|
|
267
317
|
- id: scrapling
|
|
268
318
|
when: "Scraping/crawl web para pesquisa de mercado, prospecção de leads e inteligência competitiva. Bypass anti-bot (Cloudflare), parsing adaptativo, spider concorrente. Requer: pip install 'scrapling[ai]' && scrapling install."
|
|
@@ -297,6 +347,28 @@ areas:
|
|
|
297
347
|
when: "Gerar/iterar criativos e headlines de anúncio em escala (RSA, variações)."
|
|
298
348
|
- id: analytics-tracking
|
|
299
349
|
when: "Tracking de conversão pros anúncios (compartilhada com growth)."
|
|
350
|
+
- id: tracking-audit
|
|
351
|
+
when: "Auditar rastreamento de oferta de resposta direta. Modo implantação: pixel, CAPI, domínio verificado, eventos priorizados, UTM com ID, repasse do parâmetro nativo pelo checkout, higiene de nomenclatura, compra-teste por rota. Modo diagnóstico: qual transição do funil está furando, medição contra conversão, ROI verdadeiro contra falso, qual dado falta pra decidir."
|
|
352
|
+
not_when:
|
|
353
|
+
- "Plano de medição de SaaS ou produto instrumentado por evento de uso: é analytics-tracking."
|
|
354
|
+
- "Decidir bid, orçamento ou estrutura de campanha: é paid-ads."
|
|
355
|
+
rel:
|
|
356
|
+
pairs_with: [analytics-tracking, paid-ads]
|
|
357
|
+
before: [page-cro]
|
|
358
|
+
# Módulo lowticket (src/modules/lowticket) — instaladas COM O MÓDULO, não
|
|
359
|
+
# por skills-lib. O campo `module` é o gate: resolveSkillIds as ignora ao
|
|
360
|
+
# copiar de src/skills-lib, e o router continua enxergando as entradas.
|
|
361
|
+
- id: lowticket-metodologia
|
|
362
|
+
module: lowticket
|
|
363
|
+
when: "Roteador da base low ticket BR/PT: gatilho → um shard (diagnóstico de funil, bid cap, criativo, oferta, página, Instagram, upsell, mineração). Carrega guardrails junto."
|
|
364
|
+
not_when:
|
|
365
|
+
- "SaaS, B2B, site de cliente, high ticket ou mentoria: os números não transferem."
|
|
366
|
+
- id: lowticket-trafego
|
|
367
|
+
module: lowticket
|
|
368
|
+
when: "Diagnóstico e régua de campanha Meta de low ticket: estrutura 1-1-X, bid cap, régua de 3x, quando cortar, como escalar, ler print do gerenciador ou do funil."
|
|
369
|
+
not_when:
|
|
370
|
+
- "Google Ads institucional, campanha de marca, lead gen B2B."
|
|
371
|
+
- "Escrever copy ou criativo: a skill lê número, não produz anúncio."
|
|
300
372
|
mcps:
|
|
301
373
|
- id: meta-ads
|
|
302
374
|
when: "Gestão real de campanha Meta/Facebook/Instagram via API (criar/editar/medir ads)."
|
|
@@ -306,14 +378,6 @@ areas:
|
|
|
306
378
|
args: ["-y", "mcp-meta-ads@1.0.0"]
|
|
307
379
|
env:
|
|
308
380
|
META_ACCESS_TOKEN: "${META_ACCESS_TOKEN}"
|
|
309
|
-
clis:
|
|
310
|
-
- id: arcads
|
|
311
|
-
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)."
|
|
312
|
-
platform: [darwin, linux]
|
|
313
|
-
check: "test -d ./arcads-claude-code"
|
|
314
|
-
# Pin de supply chain (2026-08-23): checkout de SHA fixo; atualizar conscientemente.
|
|
315
|
-
install: "git clone https://github.com/krusemediallc/arcads-claude-code.git arcads-claude-code && git -C arcads-claude-code checkout 0bfafb256cfce3ff4447d7ea1611a37f0af536be"
|
|
316
|
-
verify: "command -v python3 >/dev/null 2>&1 && python3 -c 'import sys; sys.exit(0 if sys.version_info >= (3, 10) else 1)'"
|
|
317
381
|
|
|
318
382
|
architect:
|
|
319
383
|
agent: wizz-agent-architect
|
|
@@ -348,6 +412,15 @@ areas:
|
|
|
348
412
|
args: ["-y", "@supabase/mcp-server-supabase@0.11.0", "--read-only", "--project-id", "${SUPABASE_PROJECT_REF}"]
|
|
349
413
|
env:
|
|
350
414
|
SUPABASE_ACCESS_TOKEN: "${SUPABASE_ACCESS_TOKEN}"
|
|
415
|
+
clis:
|
|
416
|
+
- id: sentry-cli
|
|
417
|
+
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."
|
|
418
|
+
not_when:
|
|
419
|
+
- "Projeto ainda não usa Sentry (sem SENTRY_DSN, sentry.properties ou '@sentry/' no package.json)."
|
|
420
|
+
- "Fora de estágio de produção."
|
|
421
|
+
check: "sentry-cli --version"
|
|
422
|
+
# Pin de supply chain (2026-08-25): versão fixa; atualizar conscientemente.
|
|
423
|
+
install: "npm install -g @sentry/cli@3.6.2"
|
|
351
424
|
|
|
352
425
|
qa:
|
|
353
426
|
agent: wizz-qa
|
|
@@ -355,6 +428,15 @@ areas:
|
|
|
355
428
|
skills:
|
|
356
429
|
- id: adversarial-reviewer
|
|
357
430
|
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)."
|
|
431
|
+
- id: security-audit-pentest
|
|
432
|
+
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."
|
|
433
|
+
- id: launch-readiness
|
|
434
|
+
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."
|
|
435
|
+
not_when:
|
|
436
|
+
- "Estágio de descoberta/ideação: projeto ainda sem superfície construída pra auditar (sem project-context.md, ou stage 'prototype' vazio)."
|
|
437
|
+
- "Correção de um achado isolado de site já identificado: nesse caso vá direto pra site-launch-kit."
|
|
438
|
+
rel:
|
|
439
|
+
pairs_with: [site-launch-kit, security-audit-pentest]
|
|
358
440
|
- id: agent-browser
|
|
359
441
|
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."
|
|
360
442
|
clis:
|
|
@@ -363,6 +445,18 @@ areas:
|
|
|
363
445
|
check: "agent-browser --version"
|
|
364
446
|
# Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
|
|
365
447
|
install: "npm install -g agent-browser@0.34.0"
|
|
448
|
+
- id: strix
|
|
449
|
+
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."
|
|
450
|
+
not_when: "Sem alvo próprio ou sem autorização escrita e escopo definido do dono do sistema; nunca acionar por padrão silencioso."
|
|
451
|
+
rel:
|
|
452
|
+
pairs_with: [security-audit-pentest]
|
|
453
|
+
platform: [darwin, linux]
|
|
454
|
+
check: "command -v strix"
|
|
455
|
+
# Pin de supply chain (2026-08-25): versão fixa do pacote pip; o sandbox
|
|
456
|
+
# é a imagem pinada ghcr.io/usestrix/strix-sandbox:1.3.0, puxada no 1º run
|
|
457
|
+
# dentro do Docker isolado. Atualizar conscientemente.
|
|
458
|
+
install: "pipx install strix-agent==1.5.3"
|
|
459
|
+
verify: "command -v docker >/dev/null 2>&1 && docker info >/dev/null 2>&1"
|
|
366
460
|
|
|
367
461
|
analyst:
|
|
368
462
|
agent: wizz-agent-analyst
|
|
@@ -371,30 +465,19 @@ areas:
|
|
|
371
465
|
- id: inicio-de-projeto
|
|
372
466
|
when: "Kickoff LEVE de engenharia: stack, personas, glossário, princípios, estrutura de pastas, checklist. Atalho sem cerimônia de PRD."
|
|
373
467
|
- id: implementation-planner
|
|
374
|
-
when: "Plano técnico de implementação de site/app premium pós-direção aprovada."
|
|
375
|
-
mcps:
|
|
376
|
-
- id: exa
|
|
377
|
-
when: "Pesquisa web/prior-art durante planejamento (web search, descoberta de fontes)."
|
|
378
|
-
server:
|
|
379
|
-
command: npx
|
|
380
|
-
# Pin de supply chain (2026-08-23): versão fixa; atualizar conscientemente.
|
|
381
|
-
args: ["-y", "exa-mcp-server@3.4.1"]
|
|
382
|
-
env:
|
|
383
|
-
EXA_API_KEY: "${EXA_API_KEY}"
|
|
468
|
+
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)."
|
|
384
469
|
|
|
385
470
|
memoria:
|
|
386
471
|
agent: wizz-memoria
|
|
387
472
|
summary: "Memória do projeto: o que foi decidido, salvar, ver estado."
|
|
388
473
|
skills:
|
|
389
474
|
- id: cerebro
|
|
390
|
-
when: "Recuperar/salvar decisões, contexto, aprendizados; ver estado do projeto (/ver, /salvar, /decisao, /dump)."
|
|
475
|
+
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)."
|
|
391
476
|
|
|
392
477
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
393
478
|
# UTILITÁRIOS — cross-cutting, não pertencem a uma área só.
|
|
394
479
|
# ─────────────────────────────────────────────────────────────────────────────
|
|
395
480
|
utility:
|
|
396
|
-
- id: graphify
|
|
397
|
-
when: "Transformar código/docs em knowledge graph; navegar estrutura antes de ler arquivos crus."
|
|
398
481
|
- id: find-skills
|
|
399
482
|
when: "Nenhuma skill cobre o pedido: buscar/instalar no marketplace (npx skills find)."
|
|
400
483
|
- id: enhance-prompt
|
|
@@ -37,7 +37,7 @@ activation_steps_append = []
|
|
|
37
37
|
|
|
38
38
|
persistent_facts = [
|
|
39
39
|
"file:{project-root}/**/project-context.md",
|
|
40
|
-
"
|
|
40
|
+
"FEATURE: o hook SessionStart já resolve a feature ativa a partir do branch git e injeta 'FEATURE ATIVA: <slug>'. Se ela existir, salve TODO artefato de planejamento e implementação na subpasta com esse nome ({planning_artifacts}/{active_feature}/, {implementation_artifacts}/{active_feature}/) e grave o slug em active_feature no {project-root}/_wizz/bmm/config.yaml na primeira escrita, avisando em UMA linha. Memória gravada nesta sessão leva o mesmo slug como tema. Sem feature resolvida, escreva nas raízes. NUNCA pergunte a feature ao usuário: invoque wizz-set-feature só se ele pedir para trocar, ou se houver duas features abertas e o pedido não decidir entre elas.",
|
|
41
41
|
]
|
|
42
42
|
|
|
43
43
|
role = "Help the user ideate research and analyze before committing to a project in the Wizz Method analysis phase."
|
|
@@ -1,74 +1,78 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-set-feature
|
|
3
|
-
description: '
|
|
3
|
+
description: 'Resolve, switch or clear the active feature context so planning artifacts, implementation artifacts and memory are organized under one named slug. Runs automatically from the git branch; only invoke it when the user says "set feature", "switch feature", "new feature", "clear feature", or asks "what feature is active".'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Set Feature
|
|
7
7
|
|
|
8
|
-
**Goal:**
|
|
8
|
+
**Goal:** Keep `active_feature` correct so planning artifacts, implementation artifacts and memory entries all land under the same named slug.
|
|
9
|
+
|
|
10
|
+
**Default mode is automatic.** The `session-rules.js` SessionStart hook already resolves the feature from the git branch and injects it as `FEATURE ATIVA: <slug>`. In the normal case nobody invokes this skill and nobody is asked anything. Invoke it only for the three explicit cases in "When this skill runs" below.
|
|
9
11
|
|
|
10
12
|
## Conventions
|
|
11
13
|
|
|
12
14
|
- `{project-root}`-prefixed paths resolve from the project working directory.
|
|
13
15
|
|
|
14
|
-
##
|
|
16
|
+
## Resolution order (never ask before exhausting it)
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
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.
|
|
19
|
+
2. **`active_feature` in `{project-root}/_wizz/bmm/config.yaml`.** Used when the branch gives nothing.
|
|
20
|
+
3. **The request itself.** Only when 1 and 2 are both empty AND the user is clearly starting named work ("vamos fazer o painel de assinaturas"). Derive the slug, write it, and say so in **one line**. Do not ask.
|
|
21
|
+
4. **Nothing.** Artifacts go to the roots and memory carries no feature tag. This is a valid state, not a problem to fix.
|
|
17
22
|
|
|
18
|
-
|
|
23
|
+
The branch wins over the config: it describes the work happening now, while the config may be stale from a feature nobody switched off.
|
|
19
24
|
|
|
20
|
-
|
|
21
|
-
- `planning_artifacts`, `implementation_artifacts`
|
|
22
|
-
- `active_feature` (current value, may be empty or absent)
|
|
25
|
+
## When this skill runs
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
- **The user asks what is active** → answer from the resolution order and stop. Do not write anything.
|
|
28
|
+
- **The user asks to set, switch or clear** → they already named it (or asked to clear); normalize, write, confirm in one line. Do not ask for a slug they just gave you.
|
|
29
|
+
- **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.
|
|
25
30
|
|
|
26
|
-
|
|
31
|
+
## Steps
|
|
27
32
|
|
|
28
|
-
|
|
29
|
-
- If empty or absent: "No active feature set. Artifacts are saving to the roots."
|
|
33
|
+
### Step 1: Load config
|
|
30
34
|
|
|
31
|
-
|
|
35
|
+
Load `{project-root}/_wizz/bmm/config.yaml` and resolve `project_name`, `communication_language`, `planning_artifacts`, `implementation_artifacts`, and the current `active_feature`. Always speak in `{communication_language}`.
|
|
32
36
|
|
|
33
|
-
### Step
|
|
37
|
+
### Step 2: Resolve the slug
|
|
34
38
|
|
|
35
|
-
|
|
39
|
+
Apply the resolution order above. Normalize to kebab-case: lowercase, strip accents, non-alphanumerics become hyphens, no leading or trailing hyphen, 60 characters max.
|
|
36
40
|
|
|
37
|
-
|
|
41
|
+
Confirm with the user **only** in the ambiguity case. A slug that came from the branch, from an explicit user instruction, or from a clear request is written without a confirmation round.
|
|
38
42
|
|
|
39
|
-
### Step
|
|
43
|
+
### Step 3: Write the config
|
|
40
44
|
|
|
41
|
-
|
|
42
|
-
- Normalize: lowercase and replace spaces with hyphens.
|
|
43
|
-
- Show the normalized slug and confirm it with the user before proceeding.
|
|
45
|
+
Set `active_feature:` to the slug (add the key if absent). To clear it, set it to `""`.
|
|
44
46
|
|
|
45
|
-
### Step
|
|
47
|
+
### Step 4: Create the subfolders
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
Create if missing:
|
|
48
50
|
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
- Save the file.
|
|
51
|
+
- `{planning_artifacts}/{active_feature}/`
|
|
52
|
+
- `{implementation_artifacts}/{active_feature}/`
|
|
52
53
|
|
|
53
|
-
|
|
54
|
+
Skip this step when clearing.
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
### Step 5: Report in one line
|
|
56
57
|
|
|
57
|
-
|
|
58
|
-
- `{implementation_artifacts}/{active_feature}/`
|
|
58
|
+
"Feature: **{active_feature}**. Artefatos em `{planning_artifacts}/{active_feature}/` e `{implementation_artifacts}/{active_feature}/`, memória desta sessão marcada com o mesmo tema."
|
|
59
59
|
|
|
60
|
-
|
|
60
|
+
When clearing: "Feature limpa. Artefatos voltam para as raízes e a memória sai sem tema de feature."
|
|
61
61
|
|
|
62
|
-
|
|
62
|
+
## The feature is also the memory tag
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
- `{
|
|
64
|
+
The slug is the single organizing axis, not a folder rule that stops at artifacts. While a feature is active:
|
|
65
|
+
|
|
66
|
+
- A decision saved to the Cérebro carries `tema: {active_feature}` in its frontmatter.
|
|
67
|
+
- The project state block records which feature the work sits under.
|
|
68
|
+
- An auto-memory entry about this work mentions the feature in its description, so a later `grep` by slug finds artifact, decision and trap together.
|
|
67
69
|
|
|
68
|
-
|
|
70
|
+
This reuses the `tema` axis that already exists for decisions. Do not create a second, parallel `feature:` field alongside it.
|
|
69
71
|
|
|
70
72
|
## Success Criteria
|
|
71
73
|
|
|
74
|
+
- ✅ The slug was resolved without asking the user, except in genuine ambiguity.
|
|
72
75
|
- ✅ `active_feature` updated in `_wizz/bmm/config.yaml`.
|
|
73
|
-
- ✅ Subfolders
|
|
74
|
-
- ✅
|
|
76
|
+
- ✅ Subfolders exist under planning-artifacts and implementation-artifacts.
|
|
77
|
+
- ✅ Memory written during the session carries the same slug as `tema`.
|
|
78
|
+
- ✅ The user got one line, not a dialogue.
|
|
@@ -37,7 +37,7 @@ activation_steps_append = []
|
|
|
37
37
|
|
|
38
38
|
persistent_facts = [
|
|
39
39
|
"file:{project-root}/**/project-context.md",
|
|
40
|
-
"
|
|
40
|
+
"FEATURE: o hook SessionStart já resolve a feature ativa a partir do branch git e injeta 'FEATURE ATIVA: <slug>'. Se ela existir, salve TODO artefato de planejamento e implementação na subpasta com esse nome ({planning_artifacts}/{active_feature}/, {implementation_artifacts}/{active_feature}/) e grave o slug em active_feature no {project-root}/_wizz/bmm/config.yaml na primeira escrita, avisando em UMA linha. Memória gravada nesta sessão leva o mesmo slug como tema. Sem feature resolvida, escreva nas raízes. NUNCA pergunte a feature ao usuário: invoque wizz-set-feature só se ele pedir para trocar, ou se houver duas features abertas e o pedido não decidir entre elas.",
|
|
41
41
|
]
|
|
42
42
|
|
|
43
43
|
role = "Translate product vision into a validated PRD, epics, and stories that development can execute during the Wizz Method planning phase."
|
|
@@ -37,7 +37,7 @@ activation_steps_append = []
|
|
|
37
37
|
|
|
38
38
|
persistent_facts = [
|
|
39
39
|
"file:{project-root}/**/project-context.md",
|
|
40
|
-
"
|
|
40
|
+
"FEATURE: o hook SessionStart já resolve a feature ativa a partir do branch git e injeta 'FEATURE ATIVA: <slug>'. Se ela existir, salve TODO artefato de planejamento e implementação na subpasta com esse nome ({planning_artifacts}/{active_feature}/, {implementation_artifacts}/{active_feature}/) e grave o slug em active_feature no {project-root}/_wizz/bmm/config.yaml na primeira escrita, avisando em UMA linha. Memória gravada nesta sessão leva o mesmo slug como tema. Sem feature resolvida, escreva nas raízes. NUNCA pergunte a feature ao usuário: invoque wizz-set-feature só se ele pedir para trocar, ou se houver duas features abertas e o pedido não decidir entre elas.",
|
|
41
41
|
]
|
|
42
42
|
|
|
43
43
|
role = "Turn user needs and the PRD into UX design specifications that inform architecture and implementation during the Wizz Method planning phase."
|
|
@@ -37,7 +37,7 @@ activation_steps_append = []
|
|
|
37
37
|
|
|
38
38
|
persistent_facts = [
|
|
39
39
|
"file:{project-root}/**/project-context.md",
|
|
40
|
-
"
|
|
40
|
+
"FEATURE: o hook SessionStart já resolve a feature ativa a partir do branch git e injeta 'FEATURE ATIVA: <slug>'. Se ela existir, salve TODO artefato de planejamento e implementação na subpasta com esse nome ({planning_artifacts}/{active_feature}/, {implementation_artifacts}/{active_feature}/) e grave o slug em active_feature no {project-root}/_wizz/bmm/config.yaml na primeira escrita, avisando em UMA linha. Memória gravada nesta sessão leva o mesmo slug como tema. Sem feature resolvida, escreva nas raízes. NUNCA pergunte a feature ao usuário: invoque wizz-set-feature só se ele pedir para trocar, ou se houver duas features abertas e o pedido não decidir entre elas.",
|
|
41
41
|
]
|
|
42
42
|
|
|
43
43
|
role = "Convert the PRD and UX into technical architecture decisions that keep implementation on track during the Wizz Method solutioning phase."
|
package/src/bmm-skills/3-solutioning/wizz-generate-project-context/project-context-template.md
CHANGED
|
@@ -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_
|
package/src/bmm-skills/3-solutioning/wizz-generate-project-context/steps/step-01-discover.md
CHANGED
|
@@ -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.
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
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
|
-
###
|
|
145
|
+
### 7. Present Discovery Summary
|
|
135
146
|
|
|
136
147
|
Report findings to user:
|
|
137
148
|
|