wizz-method 1.14.0 → 1.16.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 +3 -2
- package/skills-registry.yaml +4 -0
- package/src/bmm-skills/3-solutioning/wizz-architecture/scripts/__pycache__/lint_spine.cpython-313.pyc +0 -0
- package/src/bmm-skills/3-solutioning/wizz-architecture/scripts/tests/__pycache__/test_lint_spine.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/bmm-skills/4-implementation/wizz-code-review/SKILL.md +3 -5
- package/src/bmm-skills/4-implementation/wizz-code-review/customize.toml +71 -0
- package/src/bmm-skills/4-implementation/wizz-code-review/references/claims-check.md +14 -0
- package/src/bmm-skills/4-implementation/wizz-code-review/references/deletion-check.md +14 -0
- package/src/bmm-skills/4-implementation/wizz-code-review/review-prompts/edge-case-hunter.md +110 -0
- package/src/bmm-skills/4-implementation/wizz-code-review/review-prompts/verification-gap.md +113 -0
- package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-01-gather-context.md +32 -23
- package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-02-review.md +10 -13
- package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-03-triage.md +16 -22
- package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-04-present.md +4 -2
- package/src/bmm-skills/4-implementation/wizz-quick-dev/customize.toml +76 -0
- package/src/bmm-skills/4-implementation/wizz-quick-dev/references/claims-check.md +14 -0
- package/src/bmm-skills/4-implementation/wizz-quick-dev/references/deletion-check.md +14 -0
- package/src/bmm-skills/4-implementation/wizz-quick-dev/review-prompts/edge-case-hunter.md +110 -0
- package/src/bmm-skills/4-implementation/wizz-quick-dev/review-prompts/verification-gap.md +113 -0
- package/src/bmm-skills/4-implementation/wizz-quick-dev/step-04-review.md +38 -16
- package/src/bmm-skills/4-implementation/wizz-retrospective/SKILL.md +56 -1488
- package/src/bmm-skills/4-implementation/wizz-retrospective/customize.toml +3 -5
- package/src/bmm-skills/4-implementation/wizz-retrospective/references/acceptance-verdict.md +55 -0
- package/src/bmm-skills/4-implementation/wizz-retrospective/references/aggregate-views.md +17 -0
- package/src/bmm-skills/4-implementation/wizz-retrospective/references/evidence-gathering.md +30 -0
- package/src/bmm-skills/4-implementation/wizz-retrospective/references/retro-document.md +84 -0
- package/src/bmm-skills/4-implementation/wizz-retrospective/references/team-discussion.md +22 -0
- 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/git_evidence.py +304 -0
- package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/sprint_status.py +746 -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-retrospective/scripts/tests/fixtures/sprint-status-template.yaml +71 -0
- package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/test_git_evidence.py +750 -0
- package/src/bmm-skills/4-implementation/wizz-retrospective/scripts/tests/test_sprint_status.py +1579 -0
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/SKILL.md +39 -296
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/customize.toml +1 -3
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/references/fix-sprint-status.md +30 -0
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/references/generate-tracking.md +25 -0
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/references/readiness-gate.md +20 -0
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/references/status-view.md +14 -0
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/references/validate.md +10 -0
- 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/sprint_plan.py +697 -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/bmm-skills/4-implementation/wizz-sprint-planning/scripts/tests/test_sprint_plan.py +524 -0
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/sprint-status-template.yaml +9 -7
- package/src/bmm-skills/module-help.csv +3 -3
- package/src/core-skills/_shared/handoff-protocol.md +7 -8
- package/src/core-skills/module-help.csv +1 -0
- package/src/core-skills/wizz-advanced-elicitation/SKILL.md +36 -114
- package/src/core-skills/wizz-advanced-elicitation/{methods.csv → assets/methods.csv} +29 -27
- package/src/core-skills/wizz-advanced-elicitation/customize.toml +54 -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/pick_methods.py +233 -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-advanced-elicitation/scripts/tests/test_pick_methods.py +228 -0
- package/src/core-skills/wizz-brainstorming/SKILL.md +2 -2
- package/src/core-skills/wizz-brainstorming/assets/brain-selector.html +2 -0
- package/src/core-skills/wizz-brainstorming/references/converge.md +1 -1
- package/src/core-skills/wizz-brainstorming/references/finalize.md +1 -1
- package/src/core-skills/wizz-brainstorming/references/headless.md +1 -1
- package/src/core-skills/wizz-brainstorming/references/mode-autonomous.md +1 -1
- package/src/core-skills/wizz-brainstorming/scripts/__pycache__/brain.cpython-313.pyc +0 -0
- package/src/core-skills/wizz-brainstorming/scripts/brain.py +36 -6
- 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-brainstorming/scripts/tests/test_brain.py +24 -2
- package/src/core-skills/wizz-customize/scripts/__pycache__/list_customizable_skills.cpython-313.pyc +0 -0
- package/src/core-skills/wizz-customize/scripts/tests/__pycache__/test_list_customizable_skills.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/core-skills/wizz-forge-idea/SKILL.md +107 -0
- package/src/core-skills/wizz-forge-idea/customize.toml +41 -0
- package/src/core-skills/wizz-forge-idea/scripts/__pycache__/resolve_personas.cpython-313.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/resolve_personas.py +275 -0
- package/src/core-skills/wizz-forge-idea/scripts/tests/__pycache__/test_resolve_personas.cpython-313-pytest-9.1.1.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-forge-idea/scripts/tests/test_resolve_personas.py +138 -0
- package/src/core-skills/wizz-party-mode/SKILL.md +37 -54
- package/src/core-skills/wizz-party-mode/customize.toml +61 -2
- package/src/core-skills/wizz-party-mode/references/create-party.md +8 -3
- package/src/core-skills/wizz-party-mode/references/mode-agent-team.md +3 -1
- package/src/core-skills/wizz-party-mode/references/mode-subagent.md +16 -4
- package/src/core-skills/wizz-party-mode/references/party-memory.md +51 -0
- package/src/core-skills/wizz-party-mode/scripts/__pycache__/resolve_party.cpython-313.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/resolve_party.py +22 -7
- package/src/core-skills/wizz-party-mode/scripts/tests/__pycache__/test_resolve_party.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/core-skills/wizz-party-mode/scripts/tests/__pycache__/test_resolve_party.cpython-314.pyc +0 -0
- package/src/core-skills/wizz-party-mode/scripts/tests/{test-resolve_party.py → test_resolve_party.py} +8 -0
- package/src/core-skills/wizz-review-edge-case-hunter/SKILL.md +17 -3
- package/src/modules/wizz/README.md +1 -1
- package/src/modules/wizz/_shared/model-ladder.md +22 -0
- package/src/modules/wizz/_shared/token-economy.md +6 -2
- 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/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-growth/customize.toml +11 -1
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +1 -1
- package/src/modules/wizz/agents/wizz-memoria/customize.toml +1 -1
- 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/customize.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-analyst.toml +1 -1
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +1 -1
- 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 +16 -0
- package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +18 -0
- package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +17 -0
- package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +17 -0
- package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +15 -0
- package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +17 -0
- package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +15 -0
- package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +16 -0
- package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +14 -0
- package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +16 -0
- package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +16 -0
- package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +15 -0
- package/src/modules/wizz/subagents/wizz-exec-opus.md +16 -0
- package/src/modules/wizz/subagents/wizz-exec-review.md +15 -0
- package/src/scripts/__pycache__/memlog.cpython-313.pyc +0 -0
- package/src/scripts/tests/__pycache__/test_memlog.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/scripts/tests/__pycache__/test_resolve_customization.cpython-313-pytest-9.1.1.pyc +0 -0
- package/src/skills-lib/pesquisa-de-publico-do-piva/README.md +83 -0
- package/src/skills-lib/pesquisa-de-publico-do-piva/SKILL.md +65 -0
- package/src/skills-lib/pesquisa-de-publico-do-piva/assets/template.html +414 -0
- package/src/skills-lib/pesquisa-de-publico-do-piva/prompts.md +131 -0
- package/src/skills-lib/wizz-offer-forge/README.md +13 -0
- package/src/skills-lib/wizz-offer-forge/SKILL.md +74 -0
- package/src/skills-lib/wizz-offer-forge/references/empilhamento-valor.md +25 -0
- package/src/skills-lib/wizz-offer-forge/references/garantia-reversa.md +22 -0
- package/src/skills-lib/wizz-offer-forge/references/mecanismo-unico.md +28 -0
- package/src/skills-lib/wizz-offer-forge/references/ponte-trafego.md +21 -0
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +2 -0
- package/tools/installer/core/installer.js +57 -0
- package/tools/installer/ide/_config-driven.js +44 -30
- package/tools/installer/ide/platform-codes.yaml +42 -3
- package/tools/installer/modules/external-manager.js +140 -2
- package/tools/installer/modules/official-modules.js +68 -21
- package/tools/installer/prompts.js +45 -103
- package/tools/installer/ui.js +64 -7
- package/wizz-modules.yaml +65 -11
- package/src/bmm-skills/4-implementation/wizz-sprint-planning/checklist.md +0 -34
- package/src/core-skills/wizz-brainstorming/scripts/memlog.py +0 -202
- package/src/core-skills/wizz-brainstorming/scripts/tests/test_memlog.py +0 -265
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wizz-offer-forge
|
|
3
|
+
description: Forja ofertas irresistíveis de resposta direta e infoprodutos integrando mecanismo único, tese da oferta, empilhamento de valor, garantia reversa, ancoragem de preço e matriz de criativos para tráfego pago. Use quando o usuário quiser criar uma nova oferta do zero, reestruturar oferta existente que não converte, empilhar bônus de alta percepção, definir garantia agressiva ou traduzir pesquisa de público (Piva/VoC) em uma máquina de vendas. NÃO use para pesquisa bruta de público (use pesquisa-de-publico-do-piva) nem redação final de copy de página (use copywriting).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Wizz Offer Forge
|
|
7
|
+
|
|
8
|
+
Sistema de engenharia e forja de ofertas irresistíveis para tráfego direto e infoprodutos. Converte dados brutos de mercado e dores latentes em uma arquitetura de oferta de alta conversão, blindada contra objeções e pronta para escala em mídia paga.
|
|
9
|
+
|
|
10
|
+
## O que esta skill entrega
|
|
11
|
+
|
|
12
|
+
Um artefato mestre `OFFER-SPEC.md` contendo:
|
|
13
|
+
1. **Tese da Oferta & Promessa Central** (O Grande Gancho e o Resultado Tangível no Tempo).
|
|
14
|
+
2. **Mecanismo Único Duplo** (Mecanismo da Causa + Mecanismo da Solução).
|
|
15
|
+
3. **Core Deliverable + Empilhamento de Valor** (Produto Principal + Bônus Anti-Objeção).
|
|
16
|
+
4. **Ancoragem de Preço, Modelagem de Planos & Order Bumps / Upsells**.
|
|
17
|
+
5. **Garantia Reversa / Inversão de Risco** (Risco Zero ou Ganho Duplo).
|
|
18
|
+
6. **Ponte de Tráfego: Matriz de Hooks e Ângulos de Criativos**.
|
|
19
|
+
|
|
20
|
+
## Princípios de Forja de Oferta
|
|
21
|
+
|
|
22
|
+
- **Clareza vence criatividade vazia:** Se o prospecto precisa pensar para entender o que ganha, a oferta morreu.
|
|
23
|
+
- **Mecanismo Único dá esperança nova:** O público já tentou e falhou. A razão do fracasso anterior não foi incompetência dele, foi a falta do seu Mecanismo.
|
|
24
|
+
- **Bônus que matam a próxima dor:** Cada bônus da pilha deve resolver o obstáculo imediato que surge quando o cliente compra o produto principal.
|
|
25
|
+
- **Risco invertido:** O custo da inação deve parecer infinitamente maior do que o risco financeiro de comprar.
|
|
26
|
+
|
|
27
|
+
## Fluxo de Trabalho
|
|
28
|
+
|
|
29
|
+
### Passo 0 — Coleta de Insumos & Ambição
|
|
30
|
+
|
|
31
|
+
Consulte o contexto existente ou pergunte ao usuário:
|
|
32
|
+
1. **Pesquisa de Público Prévia:** Existe um relatório da skill `pesquisa-de-publico-do-piva` ou notas de VoC? Se sim, importe como insumo primário. Se não, defina Avatar, Dor Latente e Nível de Consciência inicial.
|
|
33
|
+
2. **Modelo de Negócio:** Low-ticket (R$ 10 a R$ 97), Front-end médio (R$ 197 a R$ 497) ou High-ticket / Mentoria (R$ 1.000 a R$ 10.000+)?
|
|
34
|
+
3. **Veículo de Entrega:** Curso gravado, comunidade, templates/ferramentas, mentoria ao vivo, SaaS ou híbrido?
|
|
35
|
+
|
|
36
|
+
### Passo 1 — Destilação do Mecanismo Único
|
|
37
|
+
|
|
38
|
+
Consulte `references/mecanismo-unico.md`:
|
|
39
|
+
- **Mecanismo da Causa (O Vilão Oculto):** O motivo real e não-óbvio pelo qual o cliente não teve resultado até hoje com os métodos tradicionais.
|
|
40
|
+
- **Mecanismo da Solução (O Veículo Proprietário):** O processo, método ou framework nomeado que torna o resultado previsível e simples.
|
|
41
|
+
|
|
42
|
+
### Passo 2 — A Grande Promessa & Posicionamento
|
|
43
|
+
|
|
44
|
+
Formule a Promessa Primária em 1 frase de alto impacto:
|
|
45
|
+
`[Resultado Específico Desejado] em [Prazo Crível] sem [Principal Dor / Sacrifício Odiado].`
|
|
46
|
+
|
|
47
|
+
### Passo 3 — Empilhamento de Valor & Matriz de Bônus
|
|
48
|
+
|
|
49
|
+
Consulte `references/empilhamento-valor.md`:
|
|
50
|
+
- **Produto Principal:** O caminho mais rápido e direto ao resultado.
|
|
51
|
+
- **Bônus 1 (Velocidade):** Templates, atalhos, checklists prontos que encurtam a execução.
|
|
52
|
+
- **Bônus 2 (Segurança):** Como evitar o erro mais comum ou o que fazer em caso de dúvida.
|
|
53
|
+
- **Bônus 3 (Próximo Passo):** O que fazer depois de atingir o primeiro marco.
|
|
54
|
+
- **Order Bump Estratégico:** Complemento impulsivo de alta margem (30-50% de take rate).
|
|
55
|
+
|
|
56
|
+
### Passo 4 — Ancoragem de Preço & Garantia Reversa
|
|
57
|
+
|
|
58
|
+
Consulte `references/garantia-reversa.md`:
|
|
59
|
+
- Preço total empilhado vs Preço de ancoragem vs Preço real de lançamento/escala.
|
|
60
|
+
- **Garantia Incondicional:** 7, 15 ou 30 dias sem atrito.
|
|
61
|
+
- **Garantia Condicional Agressiva (Inversão de Risco):** "Se você aplicar o método X por Y dias e não atingir Z, devolvo 100% do seu dinheiro + R$ 100 do meu bolso pelo seu tempo perdido."
|
|
62
|
+
|
|
63
|
+
### Passo 5 — Ponte de Tráfego & Ângulos de Anúncios
|
|
64
|
+
|
|
65
|
+
Consulte `references/ponte-trafego.md`:
|
|
66
|
+
- Mapeie 3 a 5 ganchos diretos para alimentar `ad-creative` e `paid-ads` no `traffic-masters` (Pedro Sobral / Molly Pittman / Ad Midas):
|
|
67
|
+
1. *Gancho da Quebra de Padrão / Vilão Revelado*
|
|
68
|
+
2. *Gancho do Erro Comum / Teste Rápido*
|
|
69
|
+
3. *Gancho da Demonstração do Mecanismo*
|
|
70
|
+
4. *Gancho da História de Transformação / Case*
|
|
71
|
+
|
|
72
|
+
### Passo 6 — Compilação e Entrega
|
|
73
|
+
|
|
74
|
+
Grave o artefato final em `{output_folder}/offers/OFFER-[NOME_SLUG].md` e apresente um resumo executivo com os 4 pontos de decisão para validação imediata do usuário.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Empilhamento de Valor & Matriz de Bônus
|
|
2
|
+
|
|
3
|
+
O valor percebido de uma oferta segue a Equação de Valor (Alex Hormozi):
|
|
4
|
+
`Valor = (Sonho / Resultado Desejado × Certeza Percebida de Alcance) / (Tempo até o Resultado × Esforço e Sacrifício)`
|
|
5
|
+
|
|
6
|
+
Para maximizar o valor e justificar o preço com facilidade:
|
|
7
|
+
|
|
8
|
+
## 1. Produto Principal (The Core)
|
|
9
|
+
- Foco em simplicidade e entrega rápida do resultado primário.
|
|
10
|
+
- Menos aulas teóricas, mais implementação passo a passo.
|
|
11
|
+
|
|
12
|
+
## 2. A Matriz de 4 Bônus Estratégicos
|
|
13
|
+
|
|
14
|
+
Cada bônus deve ter um propósito psicológico específico:
|
|
15
|
+
|
|
16
|
+
| Tipo de Bônus | Objetivo | Exemplos |
|
|
17
|
+
|---|---|---|
|
|
18
|
+
| **Bônus 1: Velocidade** | Reduz o tempo até a primeira vitória | Templates prontos, planilhas automáticas, scripts copiar-e-colar |
|
|
19
|
+
| **Bônus 2: Quebra de Objeção** | Elimina a maior desculpa para não comprar | "Guia para quem não entende nada de tecnologia", "Como fazer sem equipe" |
|
|
20
|
+
| **Bônus 3: Blindagem / Segurança** | Dá suporte contra imprevistos | Checklist de auditoria, guia anti-bloqueio, playbook de emergência |
|
|
21
|
+
| **Bônus 4: Próximo Nível** | Mostra o que fazer após a vitória inicial | Treinamento avançado de escala, automação de processos |
|
|
22
|
+
|
|
23
|
+
## 3. Order Bump (Take Rate 30-50%)
|
|
24
|
+
- Um complemento impulsivo com preço entre 20% a 40% do valor do produto principal.
|
|
25
|
+
- Não deve ser essencial para o funcionamento do core (para não parecer chantagem), mas deve ser irresistivelmente conveniente (ex: *Pack de 100 Criativos Editáveis*, *Acesso Vitalício*, *Templates Canva Prontos*).
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Garantia Reversa & Inversão Total de Risco
|
|
2
|
+
|
|
3
|
+
A garantia não é apenas uma formalidade legal; ela é a principal alavanca de conversão na etapa final de decisão de compra.
|
|
4
|
+
|
|
5
|
+
## 1. Níveis de Garantia
|
|
6
|
+
|
|
7
|
+
### Nível 1: Incondicional (Padrão)
|
|
8
|
+
- 7 a 30 dias.
|
|
9
|
+
- Devolução integral sem perguntas nem atrito.
|
|
10
|
+
- Elimina o medo inicial de comprar de um desconhecido.
|
|
11
|
+
|
|
12
|
+
### Nível 2: Condicional de Alta Performance
|
|
13
|
+
- Exige que o cliente mostre que implementou os passos (assistiu as aulas, preencheu as planilhas, subiu a campanha).
|
|
14
|
+
- Se implementou e não teve resultado em 30 a 90 dias, recebe suporte individual ou 100% de reembolso.
|
|
15
|
+
|
|
16
|
+
### Nível 3: Garantia Reversa / Risco Positivo (The Hormozi Guarantee)
|
|
17
|
+
- O criador assume um risco maior do que o cliente.
|
|
18
|
+
- *Exemplo:* "Se você aplicar o método durante 60 dias e não dobrar o seu retorno em tráfego, devolvemos 100% do valor pago + R$ 200 via PIX pelo seu tempo investido."
|
|
19
|
+
|
|
20
|
+
## 2. Regras de Segurança e Viabilidade
|
|
21
|
+
- Só use a Garantia Reversa Nível 3 se o seu produto tiver um método comprovadamente eficaz e critérios claros de verificação de execução.
|
|
22
|
+
- A clareza dos termos protege o produtor de fraudes e gera extrema autoridade no mercado.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Mecanismo Único (Causa e Solução)
|
|
2
|
+
|
|
3
|
+
O Mecanismo Único é a peça central que separa uma oferta genérica de uma máquina de conversão.
|
|
4
|
+
|
|
5
|
+
## 1. Mecanismo da Causa (Por que falharam antes)
|
|
6
|
+
|
|
7
|
+
O prospecto já tentou soluções concorrentes e não alcançou o resultado. Se dissermos que ele falhou por falta de esforço ou incompetência, ele rejeitará a mensagem.
|
|
8
|
+
|
|
9
|
+
O Mecanismo da Causa identifica o **vilão oculto**:
|
|
10
|
+
- A falha estrutural dos métodos tradicionais.
|
|
11
|
+
- A armadilha que o mercado ensina que sabota os resultados.
|
|
12
|
+
- O fator biológico, algorítmico, econômico ou psicológico que ninguém explicou para ele.
|
|
13
|
+
|
|
14
|
+
*Exemplo:* "Você não consegue manter a dieta porque métodos tradicionais cortam calorias e disparam o hormônio grelina, forçando seu cérebro a sabotar você em nível biológico."
|
|
15
|
+
|
|
16
|
+
## 2. Mecanismo da Solução (O Veículo Proprietário)
|
|
17
|
+
|
|
18
|
+
É o nome próprio, método, ferramenta ou tecnologia que resolve a causa raiz de forma elegante:
|
|
19
|
+
- Deve ter um nome memorável (ex: *Protocolo 3-Fases*, *Fórmula da Oferta Invertida*, *Método Turbo-Sync*).
|
|
20
|
+
- Deve ser explicável em 3 passos lógicos e sequenciais.
|
|
21
|
+
- Deve tornar o resultado inevitável se os passos forem seguidos.
|
|
22
|
+
|
|
23
|
+
## 3. Checklist do Mecanismo Único
|
|
24
|
+
|
|
25
|
+
- [ ] O mecanismo tem um nome proprietário e sonoro?
|
|
26
|
+
- [ ] Ele isenta o cliente de culpas passadas?
|
|
27
|
+
- [ ] Ele explica por que a concorrência falha?
|
|
28
|
+
- [ ] Ele cria uma categoria própria onde sua oferta não tem concorrente direto?
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Ponte de Tráfego: Da Oferta ao Criativo
|
|
2
|
+
|
|
3
|
+
Uma oferta excelente sem uma ponte direta para a mídia paga não escala. A ponte de tráfego traduz a tese da oferta em ganchos e ângulos de anúncios.
|
|
4
|
+
|
|
5
|
+
## 1. Os 4 Formatos de Anúncios de Entrada
|
|
6
|
+
|
|
7
|
+
1. **O Gancho da Quebra de Padrão (Pattern Interrupt):**
|
|
8
|
+
- Ataca a crença tradicional do mercado.
|
|
9
|
+
- *Estrutura:* "Por que [Conselho Popular] é o motivo exato de você estar [Falhando]."
|
|
10
|
+
2. **O Gancho do Erro Comum / Quiz:**
|
|
11
|
+
- Desafia o espectador a checar se está cometendo um erro crítico.
|
|
12
|
+
- *Estrutura:* "Se você está fazendo [Ação X], pare agora antes que aconteça [Consequência Ruim]."
|
|
13
|
+
3. **O Gancho da Demonstração do Mecanismo (Show, Don't Tell):**
|
|
14
|
+
- Mostra o processo ou o resultado visual imediato em tela.
|
|
15
|
+
- *Estrutura:* "Como esta ferramenta / método de 3 passos gerou [Resultado] em apenas [Tempo]."
|
|
16
|
+
4. **O Gancho do Relato / Não Consegue Dizer (Can't Tell):**
|
|
17
|
+
- Toca na ferida emocional profunda que o cliente sente mas tem vergonha de admitir.
|
|
18
|
+
- *Estrutura:* "A sensação silenciosa de trabalhar 12 horas por dia e ver o saldo da conta estagnado..."
|
|
19
|
+
|
|
20
|
+
## 2. Handoff para o `traffic-masters` e `copy-squad`
|
|
21
|
+
A matriz de criativos gerada pela skill `wizz-offer-forge` serve como o brief exato para os agentes de mídia paga (`wizz-ads`, `pedro-sobral`, `molly-pittman`, `ad-midas`) e de copy (`wizz-copy`, `hormozi-copy`).
|
|
@@ -75,6 +75,8 @@ Use esta tabela **só fora de projeto Wizz** (sem `_wizz/`), quando o router map
|
|
|
75
75
|
| Ferramenta grátis de captação de leads | `free-tool-strategy` | 2 |
|
|
76
76
|
| A/B test, variações, experimentos de conversão | `ab-test-setup` + `analytics-tracking` | 2 |
|
|
77
77
|
| Copywriting, copy, persuasão, texto de venda | `copywriting` + `humanizer` | 1 |
|
|
78
|
+
| Pesquisa de público de oferta, VoC, matriz de ângulos, léxico de infoproduto | `pesquisa-de-publico-do-piva` | 1 |
|
|
79
|
+
| Forjar oferta, criar oferta irresistível, mecanismo único, bônus, garantia | `wizz-offer-forge` + `pricing-strategy` | 1 |
|
|
78
80
|
| Pesquisa de mercado, inteligência competitiva | `deep-research` | 2 |
|
|
79
81
|
|
|
80
82
|
## Contexto e Memória
|
|
@@ -137,6 +137,12 @@ class Installer {
|
|
|
137
137
|
|
|
138
138
|
const restoreResult = await this._restoreUserFiles(paths, updateState);
|
|
139
139
|
|
|
140
|
+
// Mostra as mensagens de pós-instalação de "ação necessária" dos módulos
|
|
141
|
+
// instalados (ex.: rodar uma skill de setup) e deixa o usuário confirmar
|
|
142
|
+
// antes do resumo final, para "Wizz Method is ready to use!" continuar
|
|
143
|
+
// sendo a última coisa exibida.
|
|
144
|
+
await this._displayPostInstallMessages(config, officialModules);
|
|
145
|
+
|
|
140
146
|
// Render consolidated summary
|
|
141
147
|
await this.renderInstallSummary(results, {
|
|
142
148
|
wizzDir: paths.wizzDir,
|
|
@@ -1207,6 +1213,57 @@ class Installer {
|
|
|
1207
1213
|
});
|
|
1208
1214
|
}
|
|
1209
1215
|
|
|
1216
|
+
/**
|
|
1217
|
+
* Exibe as mensagens de pós-instalação definidas no registry para os módulos
|
|
1218
|
+
* instalados nesta execução. São avisos de "ação necessária" (ex.: "rode a
|
|
1219
|
+
* skill wizz-loop-setup") que o usuário precisa ver para concluir o setup.
|
|
1220
|
+
* São definidas pela propriedade `post-install-message` na entrada do módulo
|
|
1221
|
+
* em `wizz-modules.yaml`.
|
|
1222
|
+
*
|
|
1223
|
+
* Instalações interativas exigem que o usuário confirme cada mensagem
|
|
1224
|
+
* (Enter); instalações não-interativas (--yes / skipPrompts) imprimem a
|
|
1225
|
+
* mensagem e seguem sem bloquear, para CI e scripts não travarem.
|
|
1226
|
+
*
|
|
1227
|
+
* @param {Object} config - Config da instalação (config.modules, config.skipPrompts)
|
|
1228
|
+
* @param {Object} officialModules - Instância de OfficialModules (carrega o registry)
|
|
1229
|
+
*/
|
|
1230
|
+
async _displayPostInstallMessages(config, officialModules) {
|
|
1231
|
+
const moduleCodes = config.modules || [];
|
|
1232
|
+
if (moduleCodes.length === 0) return;
|
|
1233
|
+
|
|
1234
|
+
const externalManager = officialModules && officialModules.externalModuleManager;
|
|
1235
|
+
if (!externalManager) return;
|
|
1236
|
+
|
|
1237
|
+
const color = await prompts.getColor();
|
|
1238
|
+
|
|
1239
|
+
for (const code of moduleCodes) {
|
|
1240
|
+
let moduleInfo;
|
|
1241
|
+
try {
|
|
1242
|
+
moduleInfo = await externalManager.getModuleByCode(code);
|
|
1243
|
+
} catch {
|
|
1244
|
+
continue; // Módulos embutidos (core/bmm/wizz) não estão no registry — pular.
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
const message = moduleInfo && moduleInfo.postInstallMessage;
|
|
1248
|
+
if (!message) continue;
|
|
1249
|
+
|
|
1250
|
+
await prompts.box(String(message).trim(), `⚑ Action needed — ${moduleInfo.name || code}`, {
|
|
1251
|
+
rounded: true,
|
|
1252
|
+
formatBorder: color.yellow,
|
|
1253
|
+
});
|
|
1254
|
+
|
|
1255
|
+
// Interativo: exige confirmação antes de seguir. Pula o prompt bloqueante
|
|
1256
|
+
// em instalações não-interativas (a mensagem continua sendo mostrada).
|
|
1257
|
+
if (!config.skipPrompts) {
|
|
1258
|
+
await prompts.text({
|
|
1259
|
+
message: 'Press Enter to acknowledge',
|
|
1260
|
+
placeholder: '',
|
|
1261
|
+
default: '',
|
|
1262
|
+
});
|
|
1263
|
+
}
|
|
1264
|
+
}
|
|
1265
|
+
}
|
|
1266
|
+
|
|
1210
1267
|
/**
|
|
1211
1268
|
* Quick update method - preserves all settings and only prompts for new config fields
|
|
1212
1269
|
* @param {Object} config - Configuration with directory
|
|
@@ -455,9 +455,9 @@ class ConfigDrivenIdeSetup {
|
|
|
455
455
|
await fs.ensureDir(skillDir);
|
|
456
456
|
this.skillWriteTracker?.add(canonicalId);
|
|
457
457
|
|
|
458
|
-
// Copy all skill files, filtering OS/editor artifacts recursively
|
|
459
|
-
const skipPatterns = new Set(['.DS_Store', 'Thumbs.db', 'desktop.ini']);
|
|
460
|
-
const skipSuffixes = ['~', '.swp', '.swo', '.bak'];
|
|
458
|
+
// Copy all skill files, filtering OS/editor artifacts and Python caches recursively
|
|
459
|
+
const skipPatterns = new Set(['.DS_Store', 'Thumbs.db', 'desktop.ini', '__pycache__']);
|
|
460
|
+
const skipSuffixes = ['~', '.swp', '.swo', '.bak', '.pyc', '.pyo'];
|
|
461
461
|
const filter = (src) => {
|
|
462
462
|
const name = path.basename(src);
|
|
463
463
|
if (src === sourceDir) return true;
|
|
@@ -476,37 +476,49 @@ class ConfigDrivenIdeSetup {
|
|
|
476
476
|
|
|
477
477
|
/**
|
|
478
478
|
* Install WIZZ-authored native subagents (e.g. wizz-exec-haiku.md,
|
|
479
|
-
* wizz-exec-sonnet.md
|
|
479
|
+
* wizz-exec-sonnet.md, or a platform-specific wizz-exec-haiku.toml) into
|
|
480
|
+
* the platform's subagent directory.
|
|
480
481
|
*
|
|
481
|
-
*
|
|
482
|
-
* platform
|
|
483
|
-
*
|
|
484
|
-
* `{wizzDir}/wizz/subagents
|
|
485
|
-
*
|
|
482
|
+
* Claude Code, Codex, OpenCode, and Gemini CLI declare `agents_target_dir`.
|
|
483
|
+
* Each platform reads its own native subagent file format, so the source
|
|
484
|
+
* files live in a per-platform subdirectory declared via
|
|
485
|
+
* `agents_source_subdir`: `{wizzDir}/wizz/subagents/<subdir>/`. Claude
|
|
486
|
+
* Code has no subdir — its files sit directly in `{wizzDir}/wizz/subagents/`
|
|
487
|
+
* as *.md with a `model:` frontmatter field, which is the only native
|
|
488
|
+
* format that field means anything to. This mirrors how
|
|
489
|
+
* `installVerbatimSkills` resolves module-relative source paths.
|
|
486
490
|
*
|
|
487
|
-
* Ownership is scoped to the `wizz-exec
|
|
488
|
-
* files matching that pattern are ever written
|
|
489
|
-
* hand-authored subagents in the same directory are
|
|
491
|
+
* Ownership is scoped to the `wizz-exec-*` naming convention (`.md` or
|
|
492
|
+
* `.toml` extension) — only files matching that pattern are ever written
|
|
493
|
+
* here, so a user's own hand-authored subagents in the same directory are
|
|
494
|
+
* never touched. Directory entries (including the per-platform subdirs
|
|
495
|
+
* that live alongside Claude Code's root-level files) are skipped
|
|
496
|
+
* explicitly rather than relying on the extension filter to exclude them.
|
|
490
497
|
* Silently no-ops when the source directory doesn't exist (e.g. install
|
|
491
498
|
* without the wizz module).
|
|
492
499
|
*
|
|
493
500
|
* @param {string} projectDir - Project directory
|
|
494
501
|
* @param {string} wizzDir - WIZZ installation directory
|
|
495
502
|
* @param {Object} config - Installation configuration; reads agents_target_dir
|
|
503
|
+
* and the optional agents_source_subdir
|
|
496
504
|
* @returns {Promise<number>} Count of subagent files installed
|
|
497
505
|
*/
|
|
498
506
|
async installSubagents(projectDir, wizzDir, config) {
|
|
499
|
-
const sourceDir =
|
|
507
|
+
const sourceDir = config.agents_source_subdir
|
|
508
|
+
? path.join(wizzDir, 'wizz', 'subagents', config.agents_source_subdir)
|
|
509
|
+
: path.join(wizzDir, 'wizz', 'subagents');
|
|
500
510
|
if (!(await fs.pathExists(sourceDir))) return 0;
|
|
501
511
|
|
|
502
512
|
let entries;
|
|
503
513
|
try {
|
|
504
|
-
entries = await fs.readdir(sourceDir);
|
|
514
|
+
entries = await fs.readdir(sourceDir, { withFileTypes: true });
|
|
505
515
|
} catch {
|
|
506
516
|
return 0;
|
|
507
517
|
}
|
|
508
518
|
|
|
509
|
-
const subagentFiles = entries.filter(
|
|
519
|
+
const subagentFiles = entries.filter(
|
|
520
|
+
(entry) => entry.isFile() && entry.name.startsWith('wizz-exec-') && (entry.name.endsWith('.md') || entry.name.endsWith('.toml')),
|
|
521
|
+
);
|
|
510
522
|
if (subagentFiles.length === 0) return 0;
|
|
511
523
|
|
|
512
524
|
const targetPath = path.join(projectDir, config.agents_target_dir);
|
|
@@ -514,7 +526,7 @@ class ConfigDrivenIdeSetup {
|
|
|
514
526
|
|
|
515
527
|
let count = 0;
|
|
516
528
|
for (const entry of subagentFiles) {
|
|
517
|
-
await fs.copy(path.join(sourceDir, entry), path.join(targetPath, entry), { overwrite: true });
|
|
529
|
+
await fs.copy(path.join(sourceDir, entry.name), path.join(targetPath, entry.name), { overwrite: true });
|
|
518
530
|
count++;
|
|
519
531
|
}
|
|
520
532
|
|
|
@@ -617,12 +629,12 @@ class ConfigDrivenIdeSetup {
|
|
|
617
629
|
);
|
|
618
630
|
}
|
|
619
631
|
|
|
620
|
-
// Clean stale wizz-exec
|
|
621
|
-
// live in a per-IDE directory (.claude/agents
|
|
622
|
-
// peers, so this runs
|
|
623
|
-
//
|
|
624
|
-
//
|
|
625
|
-
// later.
|
|
632
|
+
// Clean stale wizz-exec-* subagent files (.md or .toml). Like command
|
|
633
|
+
// pointers, these live in a per-IDE directory (e.g. .claude/agents,
|
|
634
|
+
// .codex/agents) that isn't deduped across peers, so this runs
|
|
635
|
+
// regardless of skipTarget. installSubagents always overwrites with the
|
|
636
|
+
// current source content, so unconditional removal here is safe — a
|
|
637
|
+
// routine reinstall just recreates the files moments later.
|
|
626
638
|
if (this.installerConfig?.agents_target_dir) {
|
|
627
639
|
await this.cleanupSubagents(projectDir, this.installerConfig.agents_target_dir);
|
|
628
640
|
}
|
|
@@ -793,11 +805,12 @@ class ConfigDrivenIdeSetup {
|
|
|
793
805
|
}
|
|
794
806
|
|
|
795
807
|
/**
|
|
796
|
-
* Remove WIZZ-owned `wizz-exec
|
|
797
|
-
* subagent directory (e.g. .claude/agents).
|
|
798
|
-
* installSubagents. Only touches files matching
|
|
799
|
-
* a user's own hand-authored subagents in the
|
|
800
|
-
* removed. Removes the directory entirely if it
|
|
808
|
+
* Remove WIZZ-owned `wizz-exec-*` subagent files (`.md` or `.toml`) from
|
|
809
|
+
* the platform's subagent directory (e.g. .claude/agents, .codex/agents).
|
|
810
|
+
* Symmetric counterpart to installSubagents. Only touches files matching
|
|
811
|
+
* that naming convention — a user's own hand-authored subagents in the
|
|
812
|
+
* same directory are never removed. Removes the directory entirely if it
|
|
813
|
+
* ends up empty.
|
|
801
814
|
* @param {string} projectDir
|
|
802
815
|
* @param {string} agentsTargetDir - Relative dir (e.g. .claude/agents)
|
|
803
816
|
*/
|
|
@@ -807,15 +820,16 @@ class ConfigDrivenIdeSetup {
|
|
|
807
820
|
|
|
808
821
|
let entries;
|
|
809
822
|
try {
|
|
810
|
-
entries = await fs.readdir(agentsPath);
|
|
823
|
+
entries = await fs.readdir(agentsPath, { withFileTypes: true });
|
|
811
824
|
} catch {
|
|
812
825
|
return;
|
|
813
826
|
}
|
|
814
827
|
|
|
815
828
|
for (const entry of entries) {
|
|
816
|
-
if (!entry.
|
|
829
|
+
if (!entry.isFile()) continue;
|
|
830
|
+
if (!entry.name.startsWith('wizz-exec-') || !(entry.name.endsWith('.md') || entry.name.endsWith('.toml'))) continue;
|
|
817
831
|
try {
|
|
818
|
-
await fs.remove(path.join(agentsPath, entry));
|
|
832
|
+
await fs.remove(path.join(agentsPath, entry.name));
|
|
819
833
|
} catch {
|
|
820
834
|
// Skip files we can't remove.
|
|
821
835
|
}
|
|
@@ -8,9 +8,14 @@
|
|
|
8
8
|
# target_dir: Directory where skill directories are installed (project/workspace)
|
|
9
9
|
# global_target_dir: (optional) User-home directory for global install
|
|
10
10
|
# ancestor_conflict_check: (optional) Refuse install when ancestor dir has WIZZ files
|
|
11
|
-
# agents_target_dir: (optional) Directory for native
|
|
12
|
-
# (src/modules/wizz/subagents
|
|
13
|
-
#
|
|
11
|
+
# agents_target_dir: (optional) Directory for native WIZZ-authored subagents
|
|
12
|
+
# (src/modules/wizz/subagents/). Currently declared by claude-code, codex,
|
|
13
|
+
# opencode, and gemini.
|
|
14
|
+
# agents_source_subdir: (optional) Subdirectory under subagents/ that holds
|
|
15
|
+
# the platform's native subagent file format (e.g. codex/*.toml,
|
|
16
|
+
# opencode/*.md, gemini/*.md). Omitted for claude-code, which reads
|
|
17
|
+
# straight from the subagents/ root (its native format is *.md with a
|
|
18
|
+
# `model:` frontmatter field).
|
|
14
19
|
#
|
|
15
20
|
# INSTALL SCOPE — LOCAL PER PROJECT IS THE ENFORCED DEFAULT.
|
|
16
21
|
# The installer only ever writes skills to the project-relative `target_dir`
|
|
@@ -47,6 +52,13 @@ platforms:
|
|
|
47
52
|
target_dir: .agent/skills
|
|
48
53
|
global_target_dir: ~/.gemini/antigravity/skills
|
|
49
54
|
|
|
55
|
+
antigravity-cli:
|
|
56
|
+
name: "Antigravity CLI (AGY)"
|
|
57
|
+
preferred: false
|
|
58
|
+
installer:
|
|
59
|
+
target_dir: .agents/skills
|
|
60
|
+
global_target_dir: ~/.gemini/antigravity-cli/skills
|
|
61
|
+
|
|
50
62
|
auggie:
|
|
51
63
|
name: "Auggie"
|
|
52
64
|
preferred: false
|
|
@@ -82,6 +94,8 @@ platforms:
|
|
|
82
94
|
installer:
|
|
83
95
|
target_dir: .agents/skills
|
|
84
96
|
global_target_dir: ~/.codex/skills
|
|
97
|
+
agents_target_dir: .codex/agents
|
|
98
|
+
agents_source_subdir: codex
|
|
85
99
|
|
|
86
100
|
codewhale:
|
|
87
101
|
name: "CodeWhale"
|
|
@@ -145,6 +159,8 @@ platforms:
|
|
|
145
159
|
installer:
|
|
146
160
|
target_dir: .agents/skills
|
|
147
161
|
global_target_dir: ~/.agents/skills
|
|
162
|
+
agents_target_dir: .gemini/agents
|
|
163
|
+
agents_source_subdir: gemini
|
|
148
164
|
|
|
149
165
|
github-copilot:
|
|
150
166
|
name: "GitHub Copilot"
|
|
@@ -175,6 +191,20 @@ platforms:
|
|
|
175
191
|
target_dir: .agents/skills
|
|
176
192
|
global_target_dir: ~/.config/agents/skills
|
|
177
193
|
|
|
194
|
+
grok:
|
|
195
|
+
name: "Grok"
|
|
196
|
+
preferred: false
|
|
197
|
+
installer:
|
|
198
|
+
target_dir: .agents/skills
|
|
199
|
+
global_target_dir: ~/.grok/skills
|
|
200
|
+
|
|
201
|
+
hermes:
|
|
202
|
+
name: "Hermes Agent"
|
|
203
|
+
preferred: false
|
|
204
|
+
installer:
|
|
205
|
+
target_dir: .agents/skills
|
|
206
|
+
global_target_dir: ~/.hermes/skills
|
|
207
|
+
|
|
178
208
|
iflow:
|
|
179
209
|
name: "iFlow"
|
|
180
210
|
preferred: false
|
|
@@ -258,6 +288,8 @@ platforms:
|
|
|
258
288
|
target_dir: .agents/skills
|
|
259
289
|
global_target_dir: ~/.agents/skills
|
|
260
290
|
commands_target_dir: .opencode/commands
|
|
291
|
+
agents_target_dir: .opencode/agents
|
|
292
|
+
agents_source_subdir: opencode
|
|
261
293
|
|
|
262
294
|
openhands:
|
|
263
295
|
name: "OpenHands"
|
|
@@ -334,6 +366,13 @@ platforms:
|
|
|
334
366
|
target_dir: .agents/skills
|
|
335
367
|
global_target_dir: ~/.agents/skills
|
|
336
368
|
|
|
369
|
+
zcode:
|
|
370
|
+
name: "ZCode"
|
|
371
|
+
preferred: false
|
|
372
|
+
installer:
|
|
373
|
+
target_dir: .zcode/skills
|
|
374
|
+
global_target_dir: ~/.zcode/skills
|
|
375
|
+
|
|
337
376
|
zencoder:
|
|
338
377
|
name: "Zencoder"
|
|
339
378
|
preferred: false
|