wizz-method 1.1.0 → 1.2.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
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.2.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",
|
package/skills-registry.yaml
CHANGED
|
@@ -58,6 +58,24 @@ areas:
|
|
|
58
58
|
args: ["-y", "@21st-dev/magic"]
|
|
59
59
|
env:
|
|
60
60
|
API_KEY: "${MAGIC_API_KEY}"
|
|
61
|
+
clis:
|
|
62
|
+
- id: hyperframes
|
|
63
|
+
when: "Renderizar vídeo a partir de HTML/CSS/animação (HTML→MP4, agent-native, 20+ skills). Alternativa HTML-nativa ao Remotion (que é React). Precisa ffmpeg + Node 22 + Chrome headless."
|
|
64
|
+
check: "npx --yes hyperframes --version"
|
|
65
|
+
install: "npx skills add heygen-com/hyperframes"
|
|
66
|
+
- id: claude-video
|
|
67
|
+
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)."
|
|
68
|
+
check: "test -d $HOME/.claude/skills/watch"
|
|
69
|
+
install: "npx skills add bradautomates/claude-video"
|
|
70
|
+
- id: buttercut
|
|
71
|
+
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."
|
|
72
|
+
platform: darwin-arm64
|
|
73
|
+
check: "test -d ./buttercut"
|
|
74
|
+
install: "git clone https://github.com/barefootford/buttercut.git"
|
|
75
|
+
- id: voicebox
|
|
76
|
+
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."
|
|
77
|
+
check: "test -d ./voicebox"
|
|
78
|
+
install: "git clone https://github.com/jamiepine/voicebox.git"
|
|
61
79
|
references:
|
|
62
80
|
- "references/premium-agency-rules.md (regras $150k-tier, importadas por impeccable/huashu no modo high-end)"
|
|
63
81
|
|
|
@@ -92,6 +110,11 @@ areas:
|
|
|
92
110
|
when: "Gerar páginas em escala pra atacar muitas keywords."
|
|
93
111
|
- id: site-architecture
|
|
94
112
|
when: "Arquitetura de site / topic clusters / estrutura de URLs."
|
|
113
|
+
clis:
|
|
114
|
+
- id: distribb
|
|
115
|
+
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)."
|
|
116
|
+
check: "ls $HOME/.claude/skills 2>/dev/null | grep -qi distribb"
|
|
117
|
+
install: "npx skills add Bomx/distribb-skill"
|
|
95
118
|
|
|
96
119
|
growth:
|
|
97
120
|
agent: wizz-growth
|
|
@@ -137,6 +160,12 @@ areas:
|
|
|
137
160
|
when: "Montar A/B test / experimento de conversão."
|
|
138
161
|
- id: analytics-tracking
|
|
139
162
|
when: "Setar/auditar tracking e medição (GA4, GTM, eventos, UTM, atribuição)."
|
|
163
|
+
mcps:
|
|
164
|
+
- id: scrapling
|
|
165
|
+
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."
|
|
166
|
+
server:
|
|
167
|
+
command: scrapling
|
|
168
|
+
args: ["mcp"]
|
|
140
169
|
|
|
141
170
|
ads:
|
|
142
171
|
agent: wizz-ads
|
|
@@ -156,6 +185,11 @@ areas:
|
|
|
156
185
|
args: ["-y", "mcp-meta-ads"]
|
|
157
186
|
env:
|
|
158
187
|
META_ACCESS_TOKEN: "${META_ACCESS_TOKEN}"
|
|
188
|
+
clis:
|
|
189
|
+
- id: arcads
|
|
190
|
+
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)."
|
|
191
|
+
check: "test -d ./arcads-claude-code"
|
|
192
|
+
install: "git clone https://github.com/krusemediallc/arcads-claude-code.git"
|
|
159
193
|
|
|
160
194
|
architect:
|
|
161
195
|
agent: wizz-agent-architect
|
|
@@ -73,6 +73,7 @@ O roteamento tem duas fontes que você lê juntas, e NENHUMA é uma tabela fixa
|
|
|
73
73
|
- `areas:` — `agent` (deve casar com o do menu) e `skills:` (cada uma com `id` + `when` curto). Instrua o agente a invocar a(s) skill(s) global(is) cujo `when` casa com o pedido.
|
|
74
74
|
- `utility:` — skills cross-cutting (graphify, find-skills, enhance-prompt, wizz-router). Ofereça quando couber.
|
|
75
75
|
- `mcps:` (por área) e `mcp_utility:` (cross-cutting) — MCP servers que a área usa pra AGIR de verdade (ex: designer→magic, architect→supabase, ads→meta-ads, analyst→exa, util→context7; qa NÃO usa MCP de browser — é agent-browser via CLI). Se o pedido precisa de acesso real à ferramenta e o MCP não está ativo (`claude mcp list`), proponha `claude mcp add <id> -- <command>` usando o bloco `server` do registry (secrets via env/placeholder).
|
|
76
|
+
- `clis:` (por área) e `cli_utility:` (cross-cutting) — ferramentas de linha de comando que o agente chama direto (não são skill nem MCP): ex. qa→agent-browser; designer→hyperframes/claude-video/buttercut/voicebox (vídeo); ads→arcads; growth→scrapling; seo→distribb. Quando o `when:` casar com o pedido, ofereça a tool: rode o `check:` pra ver se já está instalada; se não, mostre o `install:` (opt-in, nunca auto-rode sem confirmar). Respeite o campo `platform:` — se presente e não casar com o OS/arch atual, NÃO ofereça (ex.: `buttercut` é `darwin-arm64`, só Apple Silicon). Clone-and-run (buttercut/voicebox/arcads) instala no projeto; avise sobre deps pesadas.
|
|
76
77
|
- `squads:` — painéis consultivos (rodam via `wizz-party-mode`). Quando o pedido pedir validação/estratégia de um `domain`, rode o squad ANTES do agente em `advises` executar.
|
|
77
78
|
|
|
78
79
|
Em resumo: **menu escolhe o agente, registry escolhe a(s) skill(s) e os squads.** Os papéis de dev/produto reusam os agentes WIZZ; os de agência são os `wizz-*`. Não memorize nomes de agente aqui — eles vêm do menu e do campo `agent:` do registry.
|
|
@@ -140,7 +140,12 @@ Se nenhuma skill/MCP instalado mapear o pedido, primeiro **classifique o que fal
|
|
|
140
140
|
| Qualidade de design, anti-slop, gosto visual, estética, olhar crítico | `taste-skill` (se instalada) | 1 |
|
|
141
141
|
| Regras de frontend, código UI determinístico, 44 regras, audit de frontend | `impeccable` (se instalada) | 2 |
|
|
142
142
|
| Design system HTML-native, filosofia visual, review 5-dim, export MP4 | `huashu-design` (se instalada) | 2 |
|
|
143
|
-
| Animação, motion, vídeo, Remotion, Three.js, 3D, WebGL | `motion-3d-director` + `remotion-best-practices` | 1 |
|
|
143
|
+
| Animação, motion, vídeo programático em código, Remotion, Three.js, 3D, WebGL | `motion-3d-director` + `remotion-best-practices` | 1 |
|
|
144
|
+
| Renderizar vídeo de HTML/CSS (HTML→MP4, agent-native) | CLI `hyperframes` (registry designer; `npx skills add heygen-com/hyperframes`) | 2 |
|
|
145
|
+
| **Editar/cortar vídeo** (cortes, selects, roughcut) | CLI `buttercut` (registry designer; **só Apple Silicon**, clone-and-run no projeto, deps pesadas) | 1 |
|
|
146
|
+
| Gerar vídeo-ad/imagem por IA (Sora/Veo/Kling) + publicar Meta | CLI `arcads` (registry `ads`; git clone + Arcads API key) | 1 |
|
|
147
|
+
| Analisar/entender vídeo existente (frames + transcrição) | CLI `claude-video` (registry designer; `npx skills add bradautomates/claude-video`) | 2 |
|
|
148
|
+
| Narração / voz / TTS / clonagem de voz para vídeo | CLI `voicebox` (registry designer; app local com endpoint MCP) | 2 |
|
|
144
149
|
| Componentes prontos via Magic (21st.dev) | Use diretamente: `mcp__magic__21st_magic_component_inspiration` / `mcp__magic__21st_magic_component_builder` | 1 |
|
|
145
150
|
|
|
146
151
|
### Área de Marketing / Growth
|
|
@@ -46,17 +46,45 @@ async function defaultExec(command, { timeoutMs = 300_000 } = {}) {
|
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* Current "<platform>-<arch>" tag (e.g. "darwin-arm64"). Injectable for tests.
|
|
51
|
+
* @returns {string}
|
|
52
|
+
*/
|
|
53
|
+
function currentPlatformTag() {
|
|
54
|
+
return `${process.platform}-${process.arch}`;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* A CLI entry may declare `platform:` to gate it to specific OS/arch combos —
|
|
59
|
+
* e.g. a tool that only builds on Apple Silicon. Accepts a string or array of
|
|
60
|
+
* tokens matched against the current tag: a full "darwin-arm64", a bare OS
|
|
61
|
+
* ("darwin"), or a bare arch ("arm64"). No `platform` field => runs everywhere.
|
|
62
|
+
* @param {{platform?: string|string[]}} cli
|
|
63
|
+
* @param {string} tag - Current "<platform>-<arch>" tag
|
|
64
|
+
* @returns {boolean}
|
|
65
|
+
*/
|
|
66
|
+
function matchesPlatform(cli, tag) {
|
|
67
|
+
const p = cli && cli.platform;
|
|
68
|
+
if (!p) return true;
|
|
69
|
+
const wanted = Array.isArray(p) ? p : [p];
|
|
70
|
+
const [os, arch] = tag.split('-');
|
|
71
|
+
return wanted.some((w) => w === tag || w === os || w === arch);
|
|
72
|
+
}
|
|
73
|
+
|
|
49
74
|
/**
|
|
50
75
|
* Resolve the recommended CLI entries for the chosen areas, deduped by id.
|
|
51
76
|
* Empty / undefined / containing 'all' means every area. The cross-cutting
|
|
52
77
|
* `cli_utility:` tools are always included. Entries missing `id` or `install`
|
|
53
|
-
* are dropped — a CLI we cannot install is not actionable.
|
|
78
|
+
* are dropped — a CLI we cannot install is not actionable. Entries whose
|
|
79
|
+
* `platform:` gate does not match the current OS/arch are dropped too, so a
|
|
80
|
+
* Mac-only tool is never even suggested on Linux/Windows.
|
|
54
81
|
*
|
|
55
82
|
* @param {Object} registry - Parsed skills-registry.yaml
|
|
56
83
|
* @param {string[]} [selectedAreas] - Area keys to resolve
|
|
57
|
-
* @
|
|
84
|
+
* @param {string} [platformTag] - Current "<platform>-<arch>" (injectable for tests)
|
|
85
|
+
* @returns {Array<{id: string, when: string, check: string, install: string, platform: (string|string[]|undefined), areas: string[]}>}
|
|
58
86
|
*/
|
|
59
|
-
function resolveClis(registry, selectedAreas) {
|
|
87
|
+
function resolveClis(registry, selectedAreas, platformTag = currentPlatformTag()) {
|
|
60
88
|
const byId = new Map();
|
|
61
89
|
const areas = (registry && registry.areas) || {};
|
|
62
90
|
const wantAll = !selectedAreas || selectedAreas.length === 0 || selectedAreas.includes('all');
|
|
@@ -64,6 +92,7 @@ function resolveClis(registry, selectedAreas) {
|
|
|
64
92
|
|
|
65
93
|
const add = (cli, areaKey) => {
|
|
66
94
|
if (!cli || !cli.id || !cli.install) return; // not actionable without an install command
|
|
95
|
+
if (!matchesPlatform(cli, platformTag)) return; // gated to another OS/arch
|
|
67
96
|
const existing = byId.get(cli.id);
|
|
68
97
|
if (existing) {
|
|
69
98
|
if (areaKey && !existing.areas.includes(areaKey)) existing.areas.push(areaKey);
|
|
@@ -74,6 +103,7 @@ function resolveClis(registry, selectedAreas) {
|
|
|
74
103
|
when: cli.when || '',
|
|
75
104
|
check: cli.check || '',
|
|
76
105
|
install: cli.install,
|
|
106
|
+
platform: cli.platform,
|
|
77
107
|
areas: areaKey ? [areaKey] : [],
|
|
78
108
|
});
|
|
79
109
|
};
|
|
@@ -142,4 +172,4 @@ async function installClis({ clis, exec = defaultExec }) {
|
|
|
142
172
|
return { installed, failed };
|
|
143
173
|
}
|
|
144
174
|
|
|
145
|
-
module.exports = { resolveClis, renderInstallCommand, detectClis, installClis, defaultExec };
|
|
175
|
+
module.exports = { resolveClis, renderInstallCommand, detectClis, installClis, defaultExec, matchesPlatform, currentPlatformTag };
|