wizz-method 2.18.0 → 2.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -3
- package/removals.txt +10 -0
- package/skills-registry.yaml +50 -38
- package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +9 -9
- package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-qa-generate-e2e-tests/checklist.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +5 -5
- package/src/bmm-skills/module-help.csv +1 -1
- package/src/bmm-skills/module.yaml +1 -1
- package/src/core-skills/_shared/handoff-protocol.md +2 -2
- package/src/modules/lowticket/skills/wizz-lowticket-funil/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-guia/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-minerador/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-pagina/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-trafego/SKILL.md +1 -1
- package/src/modules/wizz/_shared/cerebro.md +7 -7
- package/src/modules/wizz/_shared/communication-rules.md +1 -1
- package/src/modules/wizz/_shared/encerramento.md +4 -3
- package/src/modules/wizz/_shared/organizacao.md +8 -4
- package/src/modules/wizz/_shared/token-economy.md +1 -1
- package/src/modules/wizz/_shared/video-pipeline.md +4 -4
- package/src/modules/wizz/agents/wizz-ads/SKILL.md +4 -1
- package/src/modules/wizz/agents/wizz-ads/customize.toml +12 -3
- package/src/modules/wizz/agents/wizz-ads/knowledge/playbook.md +36 -0
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +4 -1
- package/src/modules/wizz/agents/wizz-copy/customize.toml +2 -3
- package/src/modules/wizz/agents/wizz-copy/knowledge/playbook.md +34 -0
- package/src/modules/wizz/agents/wizz-designer/SKILL.md +2 -2
- package/src/modules/wizz/agents/wizz-designer/customize.toml +2 -3
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +4 -1
- package/src/modules/wizz/agents/wizz-growth/customize.toml +33 -4
- package/src/modules/wizz/agents/wizz-growth/knowledge/playbook.md +39 -0
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +6 -8
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +2 -3
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +7 -7
- package/src/modules/wizz/agents/wizz-memoria/customize.toml +5 -6
- package/src/modules/wizz/agents/wizz-qa/SKILL.md +5 -6
- package/src/modules/wizz/agents/wizz-qa/customize.toml +3 -4
- package/src/modules/wizz/agents/wizz-seo/SKILL.md +4 -1
- package/src/modules/wizz/agents/wizz-seo/customize.toml +2 -3
- package/src/modules/wizz/agents/wizz-seo/knowledge/playbook.md +31 -0
- package/src/modules/wizz/agents/wizz-social/SKILL.md +3 -3
- package/src/modules/wizz/agents/wizz-social/customize.toml +2 -3
- package/src/modules/wizz/overrides/wizz-agent-analyst.toml +2 -2
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +3 -3
- package/src/modules/wizz/overrides/wizz-agent-dev.toml +3 -3
- package/src/modules/wizz/overrides/wizz-agent-pm.toml +2 -2
- package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +2 -2
- package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +2 -2
- package/src/skills-lib/_shared/complexity-signal.md +8 -9
- package/src/skills-lib/_shared/dispatch-rule.yaml +21 -0
- package/src/skills-lib/{cerebro → wizz-cerebro}/SKILL.md +1 -1
- package/src/skills-lib/{ctc-align → wizz-ctc-align}/SKILL.md +1 -1
- package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/SKILL.md +1 -1
- package/src/skills-lib/{find-skills → wizz-find-skills}/SKILL.md +1 -1
- package/src/skills-lib/wizz-huashu-design/references/sfx-library.md +1 -1
- package/src/skills-lib/wizz-huashu-design/scripts/add-music.sh +1 -1
- package/src/skills-lib/wizz-huashu-design/scripts/html2pptx.js +45 -37
- package/src/skills-lib/wizz-huashu-design/scripts/mix-voiceover.sh +1 -1
- package/src/skills-lib/wizz-huashu-design/scripts/narrate-pipeline.mjs +11 -5
- package/src/skills-lib/wizz-huashu-design/scripts/test_scripts.py +209 -0
- package/src/skills-lib/wizz-huashu-design/scripts/tts-doubao.mjs +42 -28
- package/src/skills-lib/wizz-ig-profile-optimizer/SKILL.md +1 -1
- package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +1 -1
- package/src/skills-lib/wizz-launch-readiness/SKILL.md +7 -7
- package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +3 -3
- package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +5 -5
- package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +1 -1
- package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +6 -6
- package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +1 -1
- package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +1 -1
- package/src/skills-lib/wizz-offer-forge/SKILL.md +3 -3
- package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/README.md +1 -1
- package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/SKILL.md +1 -1
- package/src/skills-lib/wizz-router/SKILL.md +3 -3
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +9 -9
- package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/SKILL.md +1 -1
- package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/SKILL.md +1 -1
- package/src/skills-lib/wizz-video-effects/SKILL.md +3 -3
- package/src/skills-lib/wizz-video-effects/references/data-contract.md +3 -3
- package/src/skills-lib/wizz-video-effects/scripts/fill_breaths.py +15 -1
- package/src/skills-lib/wizz-video-effects/scripts/test_fill_breaths.py +20 -0
- package/src/skills-lib/wizz-video-styles/SKILL.md +2 -2
- package/src/skills-lib/wizz-video-styles/data/recipes.json +32 -1
- package/src/skills-lib/wizz-video-styles/data/references.json +211 -1
- package/src/skills-lib/wizz-video-styles/data/styles.json +54 -0
- package/src/skills-lib/wizz-video-styles/references/generated-prompts.md +13 -3
- package/src/skills-lib/wizz-video-styles/references/style-picker.md +4 -2
- package/src/skills-lib/wizz-video-styles/references/styles/ui-morph.md +68 -0
- package/src/skills-lib/wizz-video-styles/scripts/analyze.sh +21 -9
- package/src/skills-lib/wizz-video-styles/scripts/references.mjs +1 -0
- package/src/skills-lib/wizz-web-security/SKILL.md +1 -1
- package/tools/fetch-assets.mjs +1 -1
- package/tools/hooks/README.md +18 -14
- package/tools/hooks/rtk-rewrite.js +95 -0
- package/tools/hooks/security-defensive-context.js +17 -1
- package/tools/hooks/session-rules.js +25 -5
- package/tools/hooks/wizz-arrumar.js +126 -12
- package/tools/hooks/wizz-artifact-guard.js +41 -7
- package/tools/hooks/wizz-cerebro-lib.js +239 -0
- package/tools/hooks/wizz-close-reminder.js +124 -0
- package/tools/hooks/wizz-debug-lib.js +55 -0
- package/tools/hooks/wizz-decision-trace.js +19 -2
- package/tools/hooks/wizz-feature.js +20 -4
- package/tools/hooks/wizz-router-enforce.js +30 -13
- package/tools/installer/command-text.js +243 -0
- package/tools/installer/commands/catalog.js +2 -0
- package/tools/installer/commands/doctor.js +10 -12
- package/tools/installer/commands/fetch-assets.js +5 -5
- package/tools/installer/commands/install.js +6 -7
- package/tools/installer/commands/resolve.js +17 -17
- package/tools/installer/commands/trace-report.js +40 -37
- package/tools/installer/core/doctor.js +60 -55
- package/tools/installer/core/hooks-settings.js +88 -14
- package/tools/installer/core/hooks-smoke.js +134 -0
- package/tools/installer/core/installer.js +61 -52
- package/tools/installer/core/quick-update.js +2 -3
- package/tools/installer/install-text.js +201 -0
- package/tools/installer/modules/channel-plan.js +2 -2
- package/tools/installer/modules/env-vars.js +5 -6
- package/tools/installer/modules/skills-lib.js +1 -1
- package/tools/installer/ui.js +17 -9
- /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-pesquisa-e-memoria.md +0 -0
- /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-rotina-e-captura.md +0 -0
- /package/src/skills-lib/{cerebro → wizz-cerebro}/references/comandos-sessao.md +0 -0
- /package/src/skills-lib/{ctc-align → wizz-ctc-align}/scripts/align.py +0 -0
- /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/README.md +0 -0
- /package/src/skills-lib/{enhance-prompt → wizz-enhance-prompt}/references/KEYWORDS.md +0 -0
- /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/assets/template.html +0 -0
- /package/src/skills-lib/{pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico-do-piva}/prompts.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-1-validacao-entrada.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-2-autorizacao.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-3-abuso-volume.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-4-vazamento-resposta.md +0 -0
- /package/src/skills-lib/{security-audit-pentest → wizz-security-audit-pentest}/references/stage-5-fusao-plano.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/01-cta-principal.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/02-barra-fixa-mobile.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/03-tempo-de-resposta.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/04-prova-social.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/05-faq-decisao.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/06-imagens-reais.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/07-endereco-como-chegar.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/08-titles.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/09-open-graph.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/10-breadcrumbs.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/11-alt-text.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/12-schema-local.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/13-robots-sitemap.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/14-privacidade-termos.md +0 -0
- /package/src/skills-lib/{site-launch-kit → wizz-site-launch-kit}/references/15-medicao.md +0 -0
|
@@ -8,7 +8,7 @@ There are two layers, and each fact lives in exactly one: the **vault** (decisio
|
|
|
8
8
|
|
|
9
9
|
Load context **cheaply**:
|
|
10
10
|
|
|
11
|
-
1. Run `/cerebro ver` (or a light `grep` on the vault) to pull the project's current state and recent decisions.
|
|
11
|
+
1. Run `/wizz-cerebro ver` (or a light `grep` on the vault) to pull the project's current state and recent decisions.
|
|
12
12
|
2. Don't read the whole vault. Get only: where things stopped, what's missing, decisions relevant to the agent's area.
|
|
13
13
|
3. If there's no cerebro in this project, proceed normally without blocking.
|
|
14
14
|
|
|
@@ -17,10 +17,10 @@ Load context **cheaply**:
|
|
|
17
17
|
- If something worth remembering happened (architecture/product decision, learning, resolved gotcha, correction from the user), add to the closing:
|
|
18
18
|
`💾 Quer que eu salve isso no cerebro?`
|
|
19
19
|
- If the user confirms, use the right cerebro command:
|
|
20
|
-
- `/cerebro decisao` — architecture/product decision
|
|
21
|
-
- `/cerebro salvar` — session state
|
|
22
|
-
- `/cerebro dump` — quick capture
|
|
23
|
-
- `/cerebro memoria` — gotcha or preference (auto-memory), when the agent isn't Claude Code
|
|
20
|
+
- `/wizz-cerebro decisao` — architecture/product decision
|
|
21
|
+
- `/wizz-cerebro salvar` — session state
|
|
22
|
+
- `/wizz-cerebro dump` — quick capture
|
|
23
|
+
- `/wizz-cerebro memoria` — gotcha or preference (auto-memory), when the agent isn't Claude Code
|
|
24
24
|
|
|
25
25
|
## Duty to remember (non-negotiable)
|
|
26
26
|
|
|
@@ -30,8 +30,8 @@ After a non-obvious bug is resolved, an important decision, a stack gotcha, or a
|
|
|
30
30
|
|
|
31
31
|
| type of fact | goes into |
|
|
32
32
|
|---|---|
|
|
33
|
-
| architecture or product decision | Cerebro `_decisions/` (`/cerebro decisao`) |
|
|
34
|
-
| project state (where it stopped, what's missing) | Cerebro `projetos/<name>.md`, block at the top (`/cerebro salvar`) |
|
|
33
|
+
| architecture or product decision | Cerebro `_decisions/` (`/wizz-cerebro decisao`) |
|
|
34
|
+
| project state (where it stopped, what's missing) | Cerebro `projetos/<name>.md`, block at the top (`/wizz-cerebro salvar`) |
|
|
35
35
|
| session narrative (what happened that day) | Cerebro `projetos/<name>.md`: `Estado` block at the top (overwritten) + 1 line in the `Sessões` table |
|
|
36
36
|
| stack gotcha, non-obvious bug, environment quirk | agent auto-memory (`memory/` of the project; outside Claude Code, via `/memoria`) |
|
|
37
37
|
| work preference, correction received from the user | agent auto-memory (same) |
|
|
@@ -15,6 +15,6 @@
|
|
|
15
15
|
|
|
16
16
|
WIZZ COMMUNICATION: don't narrate the step-by-step while working, it wastes tokens and clutters the conversation. Work directly. PAUSE and ask before continuing only when a decision belongs to the user, or something carries irreversible risk (deleting, publishing, overwriting, spending money). Always close with a short summary, in bullet points, in simple, easy-to-understand language. Don't use em-dashes in text a third party reads (public page, copy, UI, email): prefer a period, comma, colon, or parentheses. Code comments, commits, internal docs, and conversation with the user are exempt from this check: don't spend tokens reviewing or swapping em-dashes there. Concise reply by default, in easy `{communication_language}` (the language chosen at install): expand only when asked. Don't repeat what the user already knows, don't re-explain what was already said in the session, and don't list options you won't follow (recommend and act).
|
|
17
17
|
|
|
18
|
-
WIZZ CLOSING: finish every task in this format (labels shown in Portuguese; write them in `{communication_language}`, keeping the emojis): '✅ O que fiz' (1-2 simple sentences) + '➡️ Próximo passo' (recommended agent or action) + '🎯 Comando:
|
|
18
|
+
WIZZ CLOSING: finish every task in this format (labels shown in Portuguese; write them in `{communication_language}`, keeping the emojis): '✅ O que fiz' (1-2 simple sentences) + '➡️ Próximo passo' (recommended agent or action) + '🎯 Comando: /<exact-skill-name>' (lowercase with hyphen, e.g. `/wizz-maestro`; never `/wizz:maestro`). If something important was decided during the task, add '💾 Quer que eu salve no cerebro?'.
|
|
19
19
|
|
|
20
20
|
RTK: RTK (Rust Token Killer) already rewrites shell commands automatically via hook. No need to invoke anything separately. If a command fails with "rtk not found", warn the user and continue without it.
|
|
@@ -13,12 +13,13 @@ Every time you finish a task or explain a service, close **exactly** in this for
|
|
|
13
13
|
➡️ Próximo passo
|
|
14
14
|
<which agent to call OR what to do now>
|
|
15
15
|
|
|
16
|
-
🎯 Comando:
|
|
16
|
+
🎯 Comando: /<skill-name>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Rules
|
|
20
20
|
|
|
21
21
|
- **Summarize in plain human language.** No "I implemented the refactor of module X." Prefer "I made the site faster and organized the code."
|
|
22
|
+
- **The 🎯 command is the exact skill name, lowercase, with a hyphen:** `/wizz-maestro`, `/wizz-designer`, `/wizz-agent-dev`, `/wizz-cerebro`. Never `/wizz:maestro`, `/Wizz:maestro` or any `namespace:name` form: that command doesn't exist and the user can't run it. If the next step isn't a skill, write the plain action instead of inventing a command.
|
|
22
23
|
- **Always point to ONE clear next step.** If there are options, state the recommended one first: "I recommend calling wizz-agent-dev to build it. For a quick tweak, use wizz-quick-dev. To see the visual first, call wizz-designer."
|
|
23
24
|
- **Automatic chaining.** If you're part of a sequence already announced (by the maestro or by the planning gate), trigger the next agent/skill automatically right after your ✅. Pause ONLY for a business decision that belongs to the user or an irreversible risk (deploy, delete, spending money). Outside an announced sequence, suggest the next step and wait.
|
|
24
25
|
- **If the task opens up work from another area**, say which agent covers it (e.g., "this one is copy → wizz-copy").
|
|
@@ -27,7 +28,7 @@ Every time you finish a task or explain a service, close **exactly** in this for
|
|
|
27
28
|
|
|
28
29
|
## Feature closing checklist (when a feature delivery closes)
|
|
29
30
|
|
|
30
|
-
When the task closes a feature's delivery (deploy or owner acceptance), run `node _wizz/hooks/wizz-feature.js verificar` BEFORE the block above. It checks: feature resolved, artifacts in their feature folder, spec with acceptance criteria, `## Implementação` filled, roteiro with Rollback when the status is "no-ar"; and returns two items to confirm: Cérebro updated (state + one Sessions line) and auto-memory holding only traps or preferences. **Don't close the sequence with a pending item**: resolve it, or list it under `⚠️ Não coberto` only when the owner explicitly accepted it. Then `wizz-feature.js encerrar
|
|
31
|
+
When the task closes a feature's delivery (deploy or owner acceptance), run `node _wizz/hooks/wizz-feature.js verificar` BEFORE the block above. It checks: feature resolved, artifacts in their feature folder, spec with acceptance criteria, `## Implementação` filled, roteiro with Rollback when the status is "no-ar"; and returns two items to confirm: Cérebro updated (state + one Sessions line) and auto-memory holding only traps or preferences. **Don't close the sequence with a pending item**: resolve it, or list it under `⚠️ Não coberto` only when the owner explicitly accepted it. Then `wizz-feature.js encerrar --cerebro`: it closes the feature and writes the Cérebro itself (state + one Sessions line); if it reports the vault wasn't found, record it by hand. Full duty in `_shared/organizacao.md`.
|
|
31
32
|
|
|
32
33
|
## Real example
|
|
33
34
|
|
|
@@ -39,7 +40,7 @@ Montei o plano da sua landing em 4 blocos: topo, prova social, oferta e rodapé.
|
|
|
39
40
|
Recomendo o wizz-designer pra desenhar o visual.
|
|
40
41
|
Se preferir já partir pro código, chame o wizz-agent-dev.
|
|
41
42
|
|
|
42
|
-
🎯 Comando: /wizz
|
|
43
|
+
🎯 Comando: /wizz-designer
|
|
43
44
|
💾 Quer que eu salve a estrutura no cerebro?
|
|
44
45
|
```
|
|
45
46
|
|
|
@@ -7,6 +7,8 @@ Every step below is a **command**, not a memory exercise. The commands live in t
|
|
|
7
7
|
- `F` = `node _wizz/hooks/wizz-feature.js`
|
|
8
8
|
- `A` = `node _wizz/hooks/wizz-arrumar.js`
|
|
9
9
|
|
|
10
|
+
`F` subcommands: `resolver` (active feature and its source), `definir <slug>`, `artefato <tipo>`, `decidir "<texto>"`, `status <status>` (sets the spec status), `verificar`, `encerrar`, `listar` (features with a folder and each spec's status). `resolver` and `listar` only read. The `wizz-set-feature` skill is just the manual override over `F definir` (rename, switch or clear on the owner's explicit request); nobody invokes it for the normal flow.
|
|
11
|
+
|
|
10
12
|
## 1. Feature before dispatch
|
|
11
13
|
|
|
12
14
|
The SessionStart and UserPromptSubmit hooks already tell you the state (`FEATURE ATIVA: <slug>`, `Feature: <slug>` or `nenhuma ativa`). Before you dispatch anything or write any artifact:
|
|
@@ -25,13 +27,13 @@ The SessionStart and UserPromptSubmit hooks already tell you the state (`FEATURE
|
|
|
25
27
|
|
|
26
28
|
- Create planning and implementation artifacts with `F artefato <tipo>` (`spec`, `plano`, `auditoria`, `story`, `review`, `roteiro`). It writes `<tipo>-<slug>.md` under `{planning_artifacts}/{feature}/` or `{implementation_artifacts}/{feature}/` (the `roteiro` goes to `{project_knowledge}/`), with the frontmatter already valid: `feature`, `status` (`rascunho|aprovado|implementado|no-ar`), `atualizado_em` (`YYYY-MM-DD`), `decisoes` (`[D-..]`).
|
|
27
29
|
- Project-wide artifacts (architecture, project context) stay at the root of the artifact folders.
|
|
28
|
-
- The `wizz-artifact-guard.js` hook warns after a Write that lands outside the active feature's folder
|
|
30
|
+
- The `wizz-artifact-guard.js` hook warns after a Write that lands outside the active feature's folder or without a feature, and after a Write or Edit that leaves the frontmatter broken. **Fix it at once** (move the file, run `F definir`, fix the frontmatter); never leave the warning for later.
|
|
29
31
|
|
|
30
32
|
## 3. Project root organized from the start
|
|
31
33
|
|
|
32
34
|
- **No `layout:` in the config** (first use, new or existing project) → run `A layout`, show the proposal to the owner in **one line**, and record it with `A layout --gravar [tipo=pasta ...]`. It writes the `layout:` block in `_wizz/bmm/config.yaml` and a short README in each new folder.
|
|
33
35
|
- A new file is born in its layout folder, never loose at the root. When the guard warns about a loose file, move it at once with `A mover <arquivo> <destino>` (it rewrites references to it).
|
|
34
|
-
- **Tidying an existing mess:** `A planejar` writes a reviewable `.tsv` manifest; then `A aplicar <manifesto> --testes "<test command>" --refs <auto-memory dir>,<other dirs>`. It runs the tests before and after, rewrites paths in code, docs and memories, and writes
|
|
36
|
+
- **Tidying an existing mess:** `A planejar` writes a reviewable `.tsv` manifest; then `A aplicar <manifesto> --testes "<test command>" --refs <auto-memory dir>,<other dirs>`. It runs the tests before and after, rewrites paths in code, docs and memories, and writes an undo (moves AND rewritten files): `A desfazer <run folder>` works on every OS, and `desfazer.sh` (`desfazer.cmd` on Windows) is the shortcut next to it. If the tests passed before and fail after, it undoes everything on its own. `--testes` only runs known test runners (npm/pnpm/yarn/bun test or run test*, npx vitest|jest, pytest, python -m pytest|unittest, go/cargo/make test) without a shell; `--testes` with no value uses the `test` script of package.json; anything else needs an explicit `--testes-livre`.
|
|
35
37
|
|
|
36
38
|
## 4. Documentation duty
|
|
37
39
|
|
|
@@ -41,7 +43,7 @@ The SessionStart and UserPromptSubmit hooks already tell you the state (`FEATURE
|
|
|
41
43
|
| Owner decides something | `F decidir "<decision>"` in the same turn. It records `D-NN` with the date in the spec. |
|
|
42
44
|
| Implementation done | Fill the spec's `## Implementação`: files touched, deviations from the spec, tests that prove it; `F status implementado`. |
|
|
43
45
|
| Going live | `F artefato roteiro`, fill the steps and the **Rollback**; `F status no-ar` comes with the close below. |
|
|
44
|
-
| Delivery closed (deploy or acceptance) | `F verificar` must pass, then `F encerrar` (optionally `--proxima <slug>`)
|
|
46
|
+
| Delivery closed (deploy or acceptance) | `F verificar` must pass, then `F encerrar --cerebro` (optionally `--proxima <slug>`): it also writes the Cérebro (feature line in the `Estado` block + one line in the Sessions table of `projetos/<project>.md`). No vault found: it prints the instruction and you record it by hand. |
|
|
45
47
|
|
|
46
48
|
## 5. Closing checklist (mandatory when a feature delivery closes)
|
|
47
49
|
|
|
@@ -52,7 +54,9 @@ Run `F verificar`. It checks the mechanical items and returns the judgment items
|
|
|
52
54
|
- [ ] Spec exists, valid frontmatter, acceptance criteria filled.
|
|
53
55
|
- [ ] `## Implementação` filled when the status is `implementado` or "no-ar".
|
|
54
56
|
- [ ] Roteiro with Rollback in `{project_knowledge}/` when the status is "no-ar".
|
|
55
|
-
- [ ] Cérebro: project state + one line in the Sessions table.
|
|
57
|
+
- [ ] Cérebro: project state + one line in the Sessions table (`F encerrar --cerebro` writes both; vault from `WIZZ_CEREBRO_VAULT`, `cerebro_vault:` in the config or `~/Documents/projects/Obsidian Vault`; project file from `--projeto`, `project_name` or the folder name).
|
|
56
58
|
- [ ] Auto-memory: only a reproducible trap or an owner preference (state and decisions belong to the Cérebro).
|
|
57
59
|
|
|
60
|
+
A delivered feature (status `implementado` or "no-ar") with a pending item also triggers a Stop-hook warning (`wizz-close-reminder.js`) at the end of the turn.
|
|
61
|
+
|
|
58
62
|
**The maestro does not close a sequence with a pending item.** `F encerrar` refuses while the checklist has a pending item; `--forcar` exists only for when the owner explicitly accepts the pending item, and that acceptance goes in the closing block under `⚠️ Não coberto`.
|
|
@@ -4,7 +4,7 @@ Always work in the cheapest way possible. Fewer tokens = more session, same qual
|
|
|
4
4
|
|
|
5
5
|
## Before reading files (mandatory order)
|
|
6
6
|
|
|
7
|
-
1. `/cerebro ver` — check what's already been decided/recorded.
|
|
7
|
+
1. `/wizz-cerebro ver` — check what's already been decided/recorded.
|
|
8
8
|
2. `grep` with a specific pattern — before opening large files.
|
|
9
9
|
3. Only then `Read`, and even so with `offset`/`limit` when the file is large.
|
|
10
10
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
| Assemble the film: sequence of scenes + narration + SFX + captions + frame timing | **Remotion** (skill `wizz-remotion-best-practices`) |
|
|
23
23
|
| Captions passing behind the person on a recorded talking head (matte) | embedded-captions (HyperFrames bundle), then the clip goes to Remotion |
|
|
24
24
|
| Pick WHICH short-video style to copy (from the inventory of the material) and get its measured recipe, before voice, timing and effects | `wizz-video-styles` |
|
|
25
|
-
| Word-by-word timestamps of the TTS narration (sync captions/cuts/animation) | `ctc-align` |
|
|
25
|
+
| Word-by-word timestamps of the TTS narration (sync captions/cuts/animation) | `wizz-ctc-align` |
|
|
26
26
|
| Beat grid of a song (BPM, beats, downbeats) to snap scene cuts to the music | `wizz-video-styles/scripts/beat_grid.py` |
|
|
27
27
|
| Decide which effects and SFX go where (and where not), then gate the render: safe zone (ad or organic), density, excess, rhythm, loudness | `wizz-video-effects` |
|
|
28
28
|
| Narration / voice / TTS / voice cloning | `voicebox` |
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
|
|
36
36
|
1. **Script** — wizz-social (viral blueprint) or a brief from the area.
|
|
37
37
|
2. **Voice** — `voicebox` generates the narration from the script.
|
|
38
|
-
3. **Timing** — `ctc-align` extracts word-by-word timestamps from the narration
|
|
38
|
+
3. **Timing** — `wizz-ctc-align` extracts word-by-word timestamps from the narration
|
|
39
39
|
(single source of timing; replaces Whisper and manual estimation).
|
|
40
40
|
4. **Screens** — `hyperframes` draws each visual scene, SILENT, isolated
|
|
41
41
|
(one composition per scene avoids CSS leaking between screens).
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
10. **Publishing/distribution** — social/ads area.
|
|
60
60
|
|
|
61
61
|
**Music-driven pieces (lyric video, kinetic typography over a song).** The song
|
|
62
|
-
replaces the narration in steps 2 and 3: `ctc-align` runs on the vocal with the
|
|
62
|
+
replaces the narration in steps 2 and 3: `wizz-ctc-align` runs on the vocal with the
|
|
63
63
|
lyrics as the script (separate the vocal first when the mix buries it), and
|
|
64
64
|
`wizz-video-styles/scripts/beat_grid.py` gives the BPM, beats and downbeats
|
|
65
65
|
(also as frames). Scene windows start on a downbeat; inside a scene, each word
|
|
@@ -90,7 +90,7 @@ expects. Decide the Remotion composition first, then render every scene to it.
|
|
|
90
90
|
|
|
91
91
|
### Captions: which tool
|
|
92
92
|
|
|
93
|
-
- **Narrated video (TTS)** → captions in Remotion at the `ctc-align` timestamps.
|
|
93
|
+
- **Narrated video (TTS)** → captions in Remotion at the `wizz-ctc-align` timestamps.
|
|
94
94
|
This is the default.
|
|
95
95
|
- **Recorded talking head with the text passing behind the person** (matte,
|
|
96
96
|
36 styles of the embedded-captions catalog) → embedded-captions, run on the
|
|
@@ -25,5 +25,8 @@ You are Wizz's Ads. It plans campaigns, generates creative variations, and track
|
|
|
25
25
|
- Creative variations, headlines, ad copy → `wizz-ad-creative`
|
|
26
26
|
- Tracking, conversions, UTMs, pixel → `wizz-analytics-tracking`
|
|
27
27
|
|
|
28
|
+
## Playbook (on demand)
|
|
29
|
+
Index of situation → skill/reference, in order of use: `{skill-root}/knowledge/playbook.md`. Read it only when the request is ambiguous about which skill comes first or the path spans several skills; a request that already names one clear skill goes straight to it. It never replaces the registry.
|
|
30
|
+
|
|
28
31
|
## Closing
|
|
29
|
-
Close
|
|
32
|
+
Close in the format of `_shared/encerramento.md` (wizz module root). If the campaign needs new text or visuals, next is usually wizz-copy or wizz-designer.
|
|
@@ -7,8 +7,8 @@ title = "Paid Media"
|
|
|
7
7
|
icon = "📢"
|
|
8
8
|
|
|
9
9
|
activation_steps_prepend = [
|
|
10
|
-
"ECONOMY: before reading files, try /cerebro ver, then grep, and only then Read. RTK rewrites shell commands automatically.",
|
|
11
|
-
"CEREBRO: run /cerebro ver to pull audience, offer, budget, and previous campaigns. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
10
|
+
"ECONOMY: before reading files, try /wizz-cerebro ver, then grep, and only then Read. RTK rewrites shell commands automatically.",
|
|
11
|
+
"CEREBRO: run /wizz-cerebro ver to pull audience, offer, budget, and previous campaigns. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
# Communication rule + closing template: single source in _shared/.
|
|
@@ -31,7 +31,6 @@ principles = [
|
|
|
31
31
|
"No tracking, no campaign goes live.",
|
|
32
32
|
"Test several creatives, scale only the winner.",
|
|
33
33
|
"Always protect the access token.",
|
|
34
|
-
"I close with ✅ o que fiz / ➡️ próximo passo / 🎯 comando.",
|
|
35
34
|
]
|
|
36
35
|
|
|
37
36
|
[[agent.menu]]
|
|
@@ -48,3 +47,13 @@ prompt = "Invoke the GLOBAL skill 'wizz-ad-creative' via the Skill tool to gener
|
|
|
48
47
|
code = "TR"
|
|
49
48
|
description = "Tracking, conversions, UTMs, pixel"
|
|
50
49
|
prompt = "Invoke the GLOBAL skill 'wizz-analytics-tracking' via the Skill tool."
|
|
50
|
+
|
|
51
|
+
[[agent.menu]]
|
|
52
|
+
code = "TA"
|
|
53
|
+
description = "Audit tracking of a direct-response offer (pixel, CAPI, UTM, test purchase)"
|
|
54
|
+
prompt = "Invoke the GLOBAL skill 'wizz-tracking-audit' via the Skill tool. For SaaS event-usage measurement plans, use 'wizz-analytics-tracking' instead."
|
|
55
|
+
|
|
56
|
+
[[agent.menu]]
|
|
57
|
+
code = "LT"
|
|
58
|
+
description = "Low ticket Meta campaign diagnosis (1-1-X structure, bid cap, scaling)"
|
|
59
|
+
prompt = "Invoke the lowticket module skill 'wizz-lowticket-trafego' via the Skill tool. It reads numbers and prints; it doesn't write ads or creative. If the module isn't installed, say so and offer the install."
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Playbook de Ads
|
|
2
|
+
|
|
3
|
+
Índice de situação para skill, na ordem de uso. Só aponta: o conteúdo mora nas skills. A fonte da área é `skills-registry.yaml` (`areas.ads`).
|
|
4
|
+
|
|
5
|
+
## Regra de base
|
|
6
|
+
|
|
7
|
+
Sem tracking, campanha não vai ao ar (princípio do agente). Antes de subir qualquer coisa, confirme que existe medição.
|
|
8
|
+
|
|
9
|
+
## Situações
|
|
10
|
+
|
|
11
|
+
| Situação | Skill (nesta ordem) | Onde olhar |
|
|
12
|
+
| ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
|
|
13
|
+
| Campanha nova (Google, Meta, TikTok, LinkedIn) | `wizz-paid-ads`, depois `wizz-analytics-tracking` | `wizz-paid-ads/references/platform-setup-checklists.md` |
|
|
14
|
+
| Escolher público e segmentação | `wizz-paid-ads` | `wizz-paid-ads/references/audience-targeting.md` |
|
|
15
|
+
| Texto de anúncio, headline, variações (RSA) | `wizz-ad-creative`; texto de venda do zero é `wizz-copywriting` (área copy) | `wizz-paid-ads/references/ad-copy-templates.md` |
|
|
16
|
+
| Especificação de formato por plataforma | `wizz-ad-creative` | `wizz-ad-creative/references/platform-specs.md` |
|
|
17
|
+
| Prompt de imagem ou vídeo por IA, para gerar fora do método | `wizz-ad-creative` | `wizz-ad-creative/references/generative-tools.md` |
|
|
18
|
+
| Iterar criativo a partir de resultado | `wizz-ad-creative` (seção "Iterating from Performance Data") | `wizz-ad-creative/SKILL.md` |
|
|
19
|
+
| Pixel, eventos e UTM para os anúncios | `wizz-analytics-tracking` | `references/utm-taxonomy.md`, `references/event-library.md` |
|
|
20
|
+
| Auditar rastreamento de oferta de resposta direta (pixel, CAPI, UTM com ID, compra-teste) | `wizz-tracking-audit`, modo implantação | `wizz-tracking-audit/references/modo-implantacao.md`, `utm-e-atribuicao.md` |
|
|
21
|
+
| Venda não bate com o gerenciador, funil furando | `wizz-tracking-audit`, modo diagnóstico | `wizz-tracking-audit/references/modo-diagnostico.md` |
|
|
22
|
+
| Campanha Meta de low ticket (1-1-X, bid cap, régua, escalar) | `wizz-lowticket-trafego` | `wizz-lowticket-trafego/references/reguas.md`, `formato-do-diagnostico.md` |
|
|
23
|
+
| Minerar anúncio ou oferta de concorrente | `wizz-lowticket-minerador` (área growth) | `wizz-lowticket-metodologia/knowledge/12-mineracao-ofertas.md` |
|
|
24
|
+
|
|
25
|
+
## Ordens que o registry já declara
|
|
26
|
+
|
|
27
|
+
- `wizz-tracking-audit` vem antes de `wizz-page-cro`: a página só se otimiza com medição confiável.
|
|
28
|
+
- `wizz-paid-ads` anda junto com `wizz-ad-creative` e `wizz-tracking-audit`.
|
|
29
|
+
- `wizz-lowticket-trafego` vem depois de `wizz-lowticket-guia` e anda junto com `wizz-tracking-audit`.
|
|
30
|
+
|
|
31
|
+
## Limites
|
|
32
|
+
|
|
33
|
+
- Plano de medição de SaaS ou de produto por evento de uso: `wizz-analytics-tracking`, não `wizz-tracking-audit`.
|
|
34
|
+
- Decidir lance, orçamento ou estrutura de campanha: `wizz-paid-ads`, não `wizz-tracking-audit`.
|
|
35
|
+
- `wizz-lowticket-trafego` lê número e print; não escreve anúncio nem criativo. Google Ads institucional, campanha de marca e lead gen B2B ficam fora dele.
|
|
36
|
+
- Teste A/B de página ou criativo é `wizz-ab-test-setup` (área growth): se o pedido cruzar áreas, ofereça o `wizz-maestro`.
|
|
@@ -28,5 +28,8 @@ You are Wizz's Copy. It writes texts that sell, humanizes what sounds robotic, a
|
|
|
28
28
|
|
|
29
29
|
Always deliver 2-3 variations and say which one you recommend.
|
|
30
30
|
|
|
31
|
+
## Playbook (on demand)
|
|
32
|
+
Index of situation → skill/reference, in order of use: `{skill-root}/knowledge/playbook.md`. Read it only when the request is ambiguous about which skill comes first or the path spans several skills; a request that already names one clear skill goes straight to it. It never replaces the registry.
|
|
33
|
+
|
|
31
34
|
## Closing
|
|
32
|
-
Close
|
|
35
|
+
Close in the format of `_shared/encerramento.md` (wizz module root). Next is usually wizz-designer, to lay it out.
|
|
@@ -7,8 +7,8 @@ title = "Copywriter"
|
|
|
7
7
|
icon = "✍️"
|
|
8
8
|
|
|
9
9
|
activation_steps_prepend = [
|
|
10
|
-
"ECONOMY: before reading files, try /cerebro ver, then grep, and only then Read. RTK rewrites shell commands automatically.",
|
|
11
|
-
"CEREBRO: run /cerebro ver to pull the project's tone of voice, audience, and offers already defined. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
10
|
+
"ECONOMY: before reading files, try /wizz-cerebro ver, then grep, and only then Read. RTK rewrites shell commands automatically.",
|
|
11
|
+
"CEREBRO: run /wizz-cerebro ver to pull the project's tone of voice, audience, and offers already defined. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
# Communication rule + closing template: single source in _shared/.
|
|
@@ -33,7 +33,6 @@ principles = [
|
|
|
33
33
|
"Reader benefit before product feature.",
|
|
34
34
|
"Every promise comes with proof.",
|
|
35
35
|
"I deliver testable variations, not a single version.",
|
|
36
|
-
"I close with ✅ o que fiz / ➡️ próximo passo / 🎯 comando.",
|
|
37
36
|
]
|
|
38
37
|
|
|
39
38
|
[[agent.menu]]
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Playbook de Copy
|
|
2
|
+
|
|
3
|
+
Índice de situação para skill, na ordem de uso. Só aponta: o conteúdo mora nas skills. A fonte da área é `skills-registry.yaml` (`areas.copy`).
|
|
4
|
+
|
|
5
|
+
## Ordem base (declarada no registry)
|
|
6
|
+
|
|
7
|
+
`wizz-pesquisa-de-publico-do-piva` e `wizz-offer-forge` vêm antes de `wizz-copywriting`; `wizz-copy-editing` vem depois. Na página de vendas completa, se falta oferta aprovada, use `wizz-offer-forge`; se falta estrutura de conversão aprovada, `wizz-page-cro`. Headline ou CTA isolado, ou texto sobre oferta e estrutura já aprovadas, não exige refazer nada disso.
|
|
8
|
+
|
|
9
|
+
## Situações
|
|
10
|
+
|
|
11
|
+
| Situação | Skill (nesta ordem) | Onde olhar |
|
|
12
|
+
| ----------------------------------------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------------------- |
|
|
13
|
+
| Não conheço o público, as dores, a linguagem | `wizz-pesquisa-de-publico-do-piva` | `wizz-pesquisa-de-publico-do-piva/SKILL.md` |
|
|
14
|
+
| Não há oferta definida | `wizz-offer-forge` | `wizz-offer-forge/references/mecanismo-unico.md`, `empilhamento-valor.md`, `garantia-reversa.md` |
|
|
15
|
+
| Copy de venda, página ou headline do zero | `wizz-copywriting` | `wizz-copywriting/references/copy-frameworks.md`, `natural-transitions.md` |
|
|
16
|
+
| Texto já existe e precisa melhorar | `wizz-copy-editing` | `wizz-copy-editing/references/plain-english-alternatives.md` |
|
|
17
|
+
| Texto soa feito por IA | `wizz-humanizer` | `wizz-humanizer/references/ai-writing-patterns.md` |
|
|
18
|
+
| Sequência de e-mail (onboarding, nurture, lançamento) | `wizz-email-sequence` | `references/email-types.md`, `sequence-templates.md`, `copy-guidelines.md` |
|
|
19
|
+
| Cold email, outbound B2B | `wizz-cold-email` | `references/frameworks.md`, `subject-lines.md`, `personalization.md`, `follow-up-sequences.md` |
|
|
20
|
+
| Deck, one-pager, objeções, demo | `wizz-sales-enablement` | `references/deck-frameworks.md`, `objection-library.md`, `demo-scripts.md`, `one-pager-templates.md` |
|
|
21
|
+
| Copy de low ticket BR/PT | `wizz-lowticket-metodologia` (área growth) | `wizz-lowticket-metodologia/knowledge/18-copy-desejo-oferta.md`, `07a-copy-humanizacao.md` |
|
|
22
|
+
| Texto para anúncio | `wizz-ad-creative` (área ads) | `wizz-paid-ads/references/ad-copy-templates.md` |
|
|
23
|
+
| Legenda e roteiro de rede social | `wizz-social-content` (área social) | agente `wizz-social` |
|
|
24
|
+
|
|
25
|
+
## Combinações declaradas
|
|
26
|
+
|
|
27
|
+
- `wizz-copywriting` anda junto com `wizz-marketing-psychology`, `wizz-page-cro`, `wizz-ad-creative`, `wizz-email-sequence`, `wizz-cold-email` e `wizz-humanizer`.
|
|
28
|
+
- `wizz-email-sequence` anda junto com `wizz-launch-strategy` e `wizz-referral-program`.
|
|
29
|
+
- `wizz-copy-editing` anda junto com `wizz-social-content`.
|
|
30
|
+
|
|
31
|
+
## Limites
|
|
32
|
+
|
|
33
|
+
- Em copy de low ticket, a skill do módulo é a base; os números dela não transferem para SaaS, B2B ou high ticket.
|
|
34
|
+
- Pesquisa e oferta não são copy: se faltarem, diga e ofereça antes de escrever.
|
|
@@ -25,7 +25,7 @@ You are Wizz's Designer. It creates high-level interfaces and landing pages, sho
|
|
|
25
25
|
|
|
26
26
|
## How I work (bridge to global skills)
|
|
27
27
|
|
|
28
|
-
> **Single source (registry) — ALWAYS read before the examples below:** the real list for your area (`designer`) lives in `skills-registry.yaml`. Resolve the **light slice for your area** first, `{project-root}/_wizz/_config/registry/designer.yaml` (already comes as the full `areas.designer` block — skills/mcps/clis/references); if it's missing (old install), fall back to the monolith in order `{project-root}/_wizz/_config/skills-registry.yaml` → `{project-root}/_wizz/skills-registry.yaml` → `{project-root}/skills-registry.yaml` and find the `areas.designer` block there. If you need something cross-cutting (utility/mcp_utility/cli_utility/squads), also read `{project-root}/_wizz/_config/registry/_shared.yaml`. Route by the `when:` field — `skills:` (invoke via `Skill`), `clis:` (run the `check:`; if missing, show the `install:`, opt-in; respect `platform:` — e.g. `buttercut` is `darwin-arm64` only) and `mcps:` (propose `claude mcp add <id>` with the `server` block). **Follow `rel:` before answering.** An entry's `rel` (`pairs_with`, `before`, `after`, `instead_of`) is how the method knows that a request about A also needs C. Every edge is reciprocal by construction — the schema validator rejects one-way edges — so the relation shows up whichever side the user enters from. Do it in this order, before answering: (1) pick the entries whose `when:` matches the request; (2) LIST every id named in the `rel` of those entries — including the ids you do not recognise, which are exactly the point; (3) for each id outside YOUR slice, resolve id → area through the `ids:` map (id → area) in `{project-root}/_wizz/_config/registry/index.yaml` and read that area's slice to get its `when:` (a target marked `_shared` lives in `_shared.yaml`); (4) either bring it in or discard it with a stated reason. A related capability you never named is one the method lost: silence is the failure, not the discard. When the target is in ANOTHER area and shapes the SAME deliverable (the thing you are about to hand over is incomplete without it), say so and offer `wizz-maestro`, who coordinates areas — you never invoke the other area's agent yourself, and you never hand the request back to whoever delegated it to you (anti-loop). Tell the user what the related capability is instead of delivering only the half they asked for, and when the relation is `before`, say what has to come first. **Entry points (skills):** offer only the 3 skills with `entry: true` (direction → wizz-decision-maker, building → wizz-ui-ux-pro-max, motion/assets → wizz-animate); the rest carry a `door:` field and only come in pulled by their layer's door or by an explicit user request — never offer the full list. The examples below are just a readable shortcut; the registry is the source of truth and picks up whatever gets added later (e.g. video tools: hyperframes, get-brolls, claude-video, buttercut, voicebox, ctc-align). **Video:** before choosing a tool, apply `_shared/video-pipeline.md` — HyperFrames draws the screens (silent visual, one scene per composition), Remotion assembles the film (audio, SFX, captions, frame timing via ctc-align); never position audio/captions in HyperFrames. Every HyperFrames scene reaches Remotion through the handoff contract in that file (same fps and size, silent MP4 or transparent WebM, `public/scenes/NN-slug`); matte captions on a recorded talking head are the one HyperFrames-side caption job (embedded-captions). **B-roll:** when the script names something real (a fact, a person, a product, a news item, a screen), the insert is sourced with `get-brolls`, not drawn — it searches the literal source, builds a Storyboard, and stops at a human approval gate you never sign for the user. Stock only enters if the user asks for stock.
|
|
28
|
+
> **Single source (registry) — ALWAYS read before the examples below:** the real list for your area (`designer`) lives in `skills-registry.yaml`. Resolve the **light slice for your area** first, `{project-root}/_wizz/_config/registry/designer.yaml` (already comes as the full `areas.designer` block — skills/mcps/clis/references); if it's missing (old install), fall back to the monolith in order `{project-root}/_wizz/_config/skills-registry.yaml` → `{project-root}/_wizz/skills-registry.yaml` → `{project-root}/skills-registry.yaml` and find the `areas.designer` block there. If you need something cross-cutting (utility/mcp_utility/cli_utility/squads), also read `{project-root}/_wizz/_config/registry/_shared.yaml`. Route by the `when:` field — `skills:` (invoke via `Skill`), `clis:` (run the `check:`; if missing, show the `install:`, opt-in; respect `platform:` — e.g. `buttercut` is `darwin-arm64` only) and `mcps:` (propose `claude mcp add <id>` with the `server` block). **Follow `rel:` before answering.** An entry's `rel` (`pairs_with`, `before`, `after`, `instead_of`) is how the method knows that a request about A also needs C. Every edge is reciprocal by construction — the schema validator rejects one-way edges — so the relation shows up whichever side the user enters from. Do it in this order, before answering: (1) pick the entries whose `when:` matches the request; (2) LIST every id named in the `rel` of those entries — including the ids you do not recognise, which are exactly the point; (3) for each id outside YOUR slice, resolve id → area through the `ids:` map (id → area) in `{project-root}/_wizz/_config/registry/index.yaml` and read that area's slice to get its `when:` (a target marked `_shared` lives in `_shared.yaml`); (4) either bring it in or discard it with a stated reason. A related capability you never named is one the method lost: silence is the failure, not the discard. When the target is in ANOTHER area and shapes the SAME deliverable (the thing you are about to hand over is incomplete without it), say so and offer `wizz-maestro`, who coordinates areas — you never invoke the other area's agent yourself, and you never hand the request back to whoever delegated it to you (anti-loop). Tell the user what the related capability is instead of delivering only the half they asked for, and when the relation is `before`, say what has to come first. **Entry points (skills):** offer only the 3 skills with `entry: true` (direction → wizz-decision-maker, building → wizz-ui-ux-pro-max, motion/assets → wizz-animate); the rest carry a `door:` field and only come in pulled by their layer's door or by an explicit user request — never offer the full list. The examples below are just a readable shortcut; the registry is the source of truth and picks up whatever gets added later (e.g. video tools: hyperframes, get-brolls, claude-video, buttercut, voicebox, wizz-ctc-align). **Video:** before choosing a tool, apply `_shared/video-pipeline.md` — HyperFrames draws the screens (silent visual, one scene per composition), Remotion assembles the film (audio, SFX, captions, frame timing via wizz-ctc-align); never position audio/captions in HyperFrames. Every HyperFrames scene reaches Remotion through the handoff contract in that file (same fps and size, silent MP4 or transparent WebM, `public/scenes/NN-slug`); matte captions on a recorded talking head are the one HyperFrames-side caption job (embedded-captions). **B-roll:** when the script names something real (a fact, a person, a product, a news item, a screen), the insert is sourced with `get-brolls`, not drawn — it searches the literal source, builds a Storyboard, and stops at a human approval gate you never sign for the user. Stock only enters if the user asks for stock.
|
|
29
29
|
|
|
30
30
|
For every task, **go through the right door via the `Skill` tool** and bring the result in plain language:
|
|
31
31
|
- Decide BEFORE building (brief, visual direction, motion/3D path) → `wizz-decision-maker` (pulls in wizz-design-needs, wizz-taste-skill, wizz-motion-3d-director)
|
|
@@ -37,4 +37,4 @@ Always **show the visual/plan before the code**. Code building is `wizz-agent-de
|
|
|
37
37
|
**Research gate:** for a non-trivial component/effect, research runs against the project's research map (`design-state.yaml`, produced by `wizz-design-needs`): one need per pass, with the need's own source budget, floor and `proibidos` block. Without a map, non-trivial work goes through `wizz-design-needs` first — otherwise the user ends up naming every effect by hand, one request at a time. The build door must cover the record of searches, demos and exact code/registry, review date/license, dependencies, visual evaluation, and reason for the choice. The output of `wizz-ui-ux-pro-max` is a local guideline lookup, not web component mining. Before the handoff to dev, confirm the evidence or state the limitations and the justification for a custom implementation. Optional sources being unavailable doesn't block research in other public sources. A generic design skill from outside the registry (e.g. the frontend-design plugin) can add taste, never replace this gate. When the work goes to a `wizz-exec-*` subagent, the brief names the door, the map path and the need ids: the subagent does not inherit this gate on its own.
|
|
38
38
|
|
|
39
39
|
## Closing
|
|
40
|
-
Close in the
|
|
40
|
+
Close in the format of `_shared/encerramento.md` (wizz module root). Next is usually wizz-agent-dev or wizz-quick-dev, to build it.
|
|
@@ -7,8 +7,8 @@ title = "Product and UI Designer"
|
|
|
7
7
|
icon = "🎨"
|
|
8
8
|
|
|
9
9
|
activation_steps_prepend = [
|
|
10
|
-
"ECONOMY: before reading files, try /cerebro ver, then grep, and only then Read with offset/limit. RTK rewrites shell commands automatically.",
|
|
11
|
-
"CEREBRO: run /cerebro ver to pull project context (brand/design decisions already made). Don't read the whole vault. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
10
|
+
"ECONOMY: before reading files, try /wizz-cerebro ver, then grep, and only then Read with offset/limit. RTK rewrites shell commands automatically.",
|
|
11
|
+
"CEREBRO: run /wizz-cerebro ver to pull project context (brand/design decisions already made). Don't read the whole vault. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
12
12
|
"BRAND: if present, load the user's brand assets (favicon/logos in wizzbranding/logos/FAV/) and the glossary/visual identity before creating.",
|
|
13
13
|
]
|
|
14
14
|
|
|
@@ -34,7 +34,6 @@ principles = [
|
|
|
34
34
|
"Every visual decision serves a business or user goal.",
|
|
35
35
|
"Reuse first: I invoke the right global skill instead of reinventing it.",
|
|
36
36
|
"I show the visual before moving to code.",
|
|
37
|
-
"I close with ✅ o que fiz / ➡️ próximo passo / 🎯 comando.",
|
|
38
37
|
]
|
|
39
38
|
|
|
40
39
|
# Menu — each item invokes a GLOBAL skill via the Skill tool (bridge for the dissolved router).
|
|
@@ -31,5 +31,8 @@ You are Wizz's Growth. It brings actionable marketing and conversion ideas, plan
|
|
|
31
31
|
|
|
32
32
|
Always bring concrete actions and the expected impact of each one.
|
|
33
33
|
|
|
34
|
+
## Playbook (on demand)
|
|
35
|
+
Index of situation → skill/reference, in order of use: `{skill-root}/knowledge/playbook.md`. Read it only when the request is ambiguous about which skill comes first or the path spans several skills; a request that already names one clear skill goes straight to it. It never replaces the registry.
|
|
36
|
+
|
|
34
37
|
## Closing
|
|
35
|
-
Close
|
|
38
|
+
Close in the format of `_shared/encerramento.md` (wizz module root). If it turns into an ad, point to **wizz-ads**; if it turns into text, **wizz-copy**.
|
|
@@ -7,8 +7,8 @@ title = "Growth and Conversion"
|
|
|
7
7
|
icon = "📈"
|
|
8
8
|
|
|
9
9
|
activation_steps_prepend = [
|
|
10
|
-
"ECONOMY: before reading files, try /cerebro ver, then grep, and only then Read. RTK rewrites shell commands automatically.",
|
|
11
|
-
"CEREBRO: run /cerebro ver to pull product, audience, price, and metrics already recorded. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
10
|
+
"ECONOMY: before reading files, try /wizz-cerebro ver, then grep, and only then Read. RTK rewrites shell commands automatically.",
|
|
11
|
+
"CEREBRO: run /wizz-cerebro ver to pull product, audience, price, and metrics already recorded. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
# Communication rule + closing template: single source in _shared/.
|
|
@@ -34,7 +34,6 @@ principles = [
|
|
|
34
34
|
"Concrete action with estimated impact, never theory.",
|
|
35
35
|
"Cheap experiment before a big bet.",
|
|
36
36
|
"I prioritize by impact x effort.",
|
|
37
|
-
"I close with ✅ o que fiz / ➡️ próximo passo / 🎯 comando.",
|
|
38
37
|
]
|
|
39
38
|
|
|
40
39
|
[[agent.menu]]
|
|
@@ -65,7 +64,7 @@ prompt = "Invoke the GLOBAL skill 'wizz-churn-prevention' via the Skill tool."
|
|
|
65
64
|
[[agent.menu]]
|
|
66
65
|
code = "PV"
|
|
67
66
|
description = "Audience research, VoC, and angle matrix (Piva)"
|
|
68
|
-
prompt = "Invoke the GLOBAL skill 'pesquisa-de-publico-do-piva' via the Skill tool. Ask for the offer's document/description and generate the arsenal with the final HTML dashboard."
|
|
67
|
+
prompt = "Invoke the GLOBAL skill 'wizz-pesquisa-de-publico-do-piva' via the Skill tool. Ask for the offer's document/description and generate the arsenal with the final HTML dashboard."
|
|
69
68
|
|
|
70
69
|
[[agent.menu]]
|
|
71
70
|
code = "OF"
|
|
@@ -76,3 +75,33 @@ prompt = "Invoke the GLOBAL skill 'wizz-offer-forge' via the Skill tool. Connect
|
|
|
76
75
|
code = "SC"
|
|
77
76
|
description = "Real scraping/prospecting (competitor, leads, web data)"
|
|
78
77
|
prompt = "Use the MCP 'scrapling' (via ToolSearch to load the tools) for real scraping, anti-bot bypass, and lead prospecting. If it's not active, state the install requirement and offer to plan the strategy first."
|
|
78
|
+
|
|
79
|
+
[[agent.menu]]
|
|
80
|
+
code = "LT"
|
|
81
|
+
description = "Low ticket: where to start (entry door for cheap-product sales)"
|
|
82
|
+
prompt = "Invoke the lowticket module skill 'wizz-lowticket-guia' via the Skill tool. It places the user in the journey and points to the right step. If the module isn't installed, say so and offer the install."
|
|
83
|
+
|
|
84
|
+
[[agent.menu]]
|
|
85
|
+
code = "LM"
|
|
86
|
+
description = "Low ticket: methodology router (funnel, bid cap, creative, offer, page, VSL, upsell, copy)"
|
|
87
|
+
prompt = "Invoke the lowticket module skill 'wizz-lowticket-metodologia' via the Skill tool. Only for low ticket BR/PT; the numbers don't transfer to SaaS, B2B or high ticket."
|
|
88
|
+
|
|
89
|
+
[[agent.menu]]
|
|
90
|
+
code = "LF"
|
|
91
|
+
description = "Low ticket: post-checkout ladder (upsell, downsell, final offer)"
|
|
92
|
+
prompt = "Invoke the lowticket module skill 'wizz-lowticket-funil' via the Skill tool. Only after a front-end that converts exists."
|
|
93
|
+
|
|
94
|
+
[[agent.menu]]
|
|
95
|
+
code = "LI"
|
|
96
|
+
description = "Low ticket: mine and judge a competitor's offer"
|
|
97
|
+
prompt = "Invoke the lowticket module skill 'wizz-lowticket-minerador' via the Skill tool. If the offer is already defined, use 'wizz-offer-forge' instead."
|
|
98
|
+
|
|
99
|
+
[[agent.menu]]
|
|
100
|
+
code = "LP"
|
|
101
|
+
description = "Low ticket: sales page performance (connect rate, pixel order, LCP)"
|
|
102
|
+
prompt = "Invoke the lowticket module skill 'wizz-lowticket-pagina' via the Skill tool. It engineers performance; it doesn't rewrite copy, price or offer."
|
|
103
|
+
|
|
104
|
+
[[agent.menu]]
|
|
105
|
+
code = "AB"
|
|
106
|
+
description = "Set up an A/B test or conversion experiment"
|
|
107
|
+
prompt = "Invoke the GLOBAL skill 'wizz-ab-test-setup' via the Skill tool."
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Playbook de Growth
|
|
2
|
+
|
|
3
|
+
Índice de situação para skill, na ordem de uso. Só aponta: o conteúdo mora nas skills. A fonte da área é `skills-registry.yaml` (`areas.growth`).
|
|
4
|
+
|
|
5
|
+
## Situações
|
|
6
|
+
|
|
7
|
+
| Situação | Skill (nesta ordem) | Onde olhar |
|
|
8
|
+
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
|
|
9
|
+
| Travou, não sabe o canal | `wizz-marketing-ideas` | `wizz-marketing-ideas/references/ideas-by-category.md` |
|
|
10
|
+
| Posicionamento e contexto do produto | `wizz-product-marketing-context`, `wizz-marketing-psychology` | `SKILL.md` de cada uma |
|
|
11
|
+
| Entender o público | `wizz-pesquisa-de-publico-do-piva` | `SKILL.md` |
|
|
12
|
+
| Criar ou refazer oferta | `wizz-pesquisa-de-publico-do-piva`, depois `wizz-offer-forge` | `wizz-offer-forge/references/` (mecanismo, empilhamento, garantia, ponte de tráfego, plano de medição) |
|
|
13
|
+
| Lançamento de produto ou feature | `wizz-launch-strategy`, com `wizz-email-sequence` | `references/five-phase-approach.md`, `launch-checklist.md`, `orb-framework.md`, `product-hunt-strategy.md`, `post-launch-and-ongoing.md` |
|
|
14
|
+
| Preço, planos, packaging | `wizz-pricing-strategy` | `references/tier-structure.md`, `research-methods.md` |
|
|
15
|
+
| Churn, cancelamento, cobrança que falha | `wizz-churn-prevention` | `references/cancel-flow-patterns.md`, `dunning-playbook.md` |
|
|
16
|
+
| Converter página (home, landing, vendas) | `wizz-tracking-audit` (área ads) antes, depois `wizz-page-cro` | `wizz-page-cro/references/experiments.md` |
|
|
17
|
+
| Formulário, popup, paywall, signup, onboarding | `wizz-form-cro`, `wizz-popup-cro`, `wizz-paywall-upgrade-cro`, `wizz-signup-flow-cro`, `wizz-onboarding-cro` | `SKILL.md` de cada uma |
|
|
18
|
+
| Experimento de conversão | `wizz-ab-test-setup` | `references/test-templates.md`, `sample-size-guide.md` |
|
|
19
|
+
| Medição (GA4, GTM, eventos, UTM) | `wizz-analytics-tracking` | `references/ga4-implementation.md`, `gtm-implementation.md`, `utm-taxonomy.md` |
|
|
20
|
+
| Página de comparação com concorrente | `wizz-competitor-alternatives` | `SKILL.md` |
|
|
21
|
+
| Programa de indicação ou afiliados | `wizz-referral-program` | `SKILL.md` |
|
|
22
|
+
| Revisão antes de ir ao ar | `wizz-site-launch-kit` | `SKILL.md` |
|
|
23
|
+
|
|
24
|
+
## Low ticket BR/PT (módulo lowticket)
|
|
25
|
+
|
|
26
|
+
Quem não sabe por onde começar entra por `wizz-lowticket-guia`, que vem antes de todas as outras do módulo. Se o pedido já nomeia a tarefa, vá direto na etapa.
|
|
27
|
+
|
|
28
|
+
| Etapa | Skill | Observação |
|
|
29
|
+
| ------------------------------------------------------------------------------------------------- | ----------------------------------- | ------------------------------------------------------------------- |
|
|
30
|
+
| Minerar e julgar oferta de concorrente | `wizz-lowticket-minerador` | vem antes de `wizz-offer-forge` |
|
|
31
|
+
| Gatilho para um shard (funil, bid cap, criativo, oferta, página, VSL, upsell, copy, rastreamento) | `wizz-lowticket-metodologia` | começa por `knowledge/INDEX.md` e `guardrails.md`; um shard por vez |
|
|
32
|
+
| Performance da página de venda | `wizz-lowticket-pagina` | vem antes de `wizz-lowticket-funil` |
|
|
33
|
+
| Escada pós-checkout | `wizz-lowticket-funil` | só depois de existir front-end que converte |
|
|
34
|
+
| Campanha Meta | `wizz-lowticket-trafego` (área ads) | via `wizz-ads` |
|
|
35
|
+
|
|
36
|
+
## Limites
|
|
37
|
+
|
|
38
|
+
- Low ticket: os números não transferem para SaaS, B2B, high ticket ou mentoria.
|
|
39
|
+
- Texto final de venda é copy: ofereça `wizz-copy`. Campanha paga: `wizz-ads`.
|
|
@@ -80,7 +80,7 @@ The Diretor (`wizz-router`) has already done the triage and handed it to you bec
|
|
|
80
80
|
1. **Dispatch by area = the `[[agent.menu]]`** resolved in Step 1 (from `customize.toml` + overrides). Each menu item dispatches a wizz agent. It's what chooses WHO to call (dev, qa, design, copy, seo, growth, ads, memoria...).
|
|
81
81
|
2. **Enrichment = `skills-registry.yaml`**. For the chosen area, it says WHAT the agent pulls in:
|
|
82
82
|
- `areas:` — `agent` (must match the menu's) and `skills:` (each with an `id` + short `when`). Instruct the agent to invoke the global skill(s) whose `when` matches the request.
|
|
83
|
-
- `utility:` — cross-cutting skills (find-skills, enhance-prompt, wizz-router). Offer when it fits.
|
|
83
|
+
- `utility:` — cross-cutting skills (wizz-find-skills, wizz-enhance-prompt, wizz-router). Offer when it fits.
|
|
84
84
|
- `mcps:` (per area) and `mcp_utility:` (cross-cutting) — MCP servers the area uses to actually ACT (e.g. architect→supabase, analyst→exa, util→context7; qa does NOT use a browser MCP — it's agent-browser via CLI). If the request needs real access to the tool and the MCP isn't active (`claude mcp list`), propose `claude mcp add <id> -- <command>` using the registry's `server` block (secrets via env/placeholder).
|
|
85
85
|
- `clis:` (per area) and `cli_utility:` (cross-cutting) — command-line tools the agent calls directly (neither a skill nor an MCP): e.g. qa→agent-browser; designer→hyperframes/get-brolls/claude-video/buttercut/voicebox (video); growth→scrapling; seo→distribb; social→buffer. When the `when:` matches the request, offer the tool: run the `check:` to see if it's already installed; if not, show the `install:` (opt-in, never auto-run without confirming). Respect the `platform:` field — if present and it doesn't match the current OS/arch, DON'T offer it (e.g., `buttercut` is `darwin-arm64`, Apple Silicon only). Clone-and-run tools (buttercut/voicebox) install into the project; warn about heavy deps.
|
|
86
86
|
- `rel:` (on any entry) — **this is where the method knows that a request about A also needs C.** `pairs_with` (they go together), `before`/`after` (mandatory order) and `instead_of` (one or the other, not both). Every edge is reciprocal by construction: the schema validator rejects one-way edges, so the relation shows up whichever side the user enters from. As the multi-area orchestrator you are the biggest beneficiary of this — roughly a third of the edges cross areas (count them in the registry when you need the number; don't quote one from memory). When building the dispatch, follow the same order the area agents follow ([rel protocol](../../_shared/rel-protocol.md)): LIST every id the chosen entry's `rel` names — including the ones you don't recognise, which are exactly the point — resolve each id → area via the `ids:` map in `{project-root}/_wizz/_config/registry/index.yaml`, read that area's slice for its `when:`, and then either bring it in or discard it with a stated reason. A target in another area becomes a dispatch to THAT area's agent, and a `before` target sets the ORDER of the plan, not a parallel item. Never deliver only the half the user named when `rel` says the other half is missing: a related capability you never named is one the method lost.
|
|
@@ -90,7 +90,7 @@ In short: **the menu chooses the agent, the registry chooses the skill(s) and th
|
|
|
90
90
|
|
|
91
91
|
### Complexity signal (shared with router and quick-dev)
|
|
92
92
|
|
|
93
|
-
**Dispatch rule:** IF 2+ areas → maestro (you), always. OTHERWISE count the 3 remaining factors (multi-step, needs planning,
|
|
93
|
+
**Dispatch rule:** IF 2+ areas → maestro (you), always. OTHERWISE count the 3 remaining factors (multi-step, needs planning, produces a memorable artifact); 2+ factors → maestro (you). The area clause decides on its own, without combining with anything else.
|
|
94
94
|
|
|
95
95
|
**Decision order — capabilities → required relations → areas → shortcuts.** Match the catalogue entries, inspect their `rel`, and include only capabilities needed for the requested deliverable and not already supplied in the context. Resolve their owning areas before applying ANY one-area shortcut. One artifact can require multiple areas; the word "copy" does not prove that only copy is needed. For full sales-page copy, if either the offer or the conversion structure is missing from the supplied context, include the missing capability: `wizz-offer-forge` for the offer and/or `wizz-page-cro` for conversion structure (growth), alongside `wizz-copywriting` (copy); route to maestro. Do not assume those inputs are ready merely because the user did not mention them. If both are already approved and the request is limited to text, keep copy-only work in copy. An isolated headline or CTA does not require redesigning the whole page. Optional neighbours and separate deliverables do not add areas; `pairs_with` alone never escalates.
|
|
96
96
|
|
|
@@ -105,7 +105,7 @@ In short: **the menu chooses the agent, the registry chooses the skill(s) and th
|
|
|
105
105
|
- **Needs planning:** a **scope or ordering** decision is missing that the user has not made. "Work that has internal steps" does not count.
|
|
106
106
|
- **Memorable artifact:** a **reference document someone reopens later** (PRD, story, spec, written plan or audit). A delivered piece — post, headline, carousel, component, fix, answer — is not.
|
|
107
107
|
|
|
108
|
-
Inside the 1-area branch, three shortcuts **demote on their own**, before counting any factor: a **question with a single definable answer**, a **single delivery**, and the **diagnosis of one specific mechanism** all go to the area agent. "How do I improve / reduce X" is not that question — it has no single answer. What stays with you is the request of **open scope that the request itself does not delimit** ("how do I improve the signup conversion rate", "the page gets visits and nobody buys"): there the scope has to be discovered first, and that is your work. What decides is not the size of the request, it is whether the request already states what the delivery is. **Two clauses cut across all of this** (canonical source: `_shared/complexity-signal.md`): a **sensitive subsystem** — changing auth/sessions, payments/billing, permissions, or migrating production data — is yours even as a single delivery of one area, because the blast radius of a mistake lands outside the delivery itself; and, the other way round, open scope stops being open when **one catalogue entry covers the whole outcome** and what leaves at the end is that entry's own deliverable ("a plan to reduce churn" is `wizz-churn-prevention`, "what to check before going live" is `site-launch-kit`) — that one goes to the area, not to you.
|
|
108
|
+
Inside the 1-area branch, three shortcuts **demote on their own**, before counting any factor: a **question with a single definable answer**, a **single delivery**, and the **diagnosis of one specific mechanism** all go to the area agent. "How do I improve / reduce X" is not that question — it has no single answer. What stays with you is the request of **open scope that the request itself does not delimit** ("how do I improve the signup conversion rate", "the page gets visits and nobody buys"): there the scope has to be discovered first, and that is your work. What decides is not the size of the request, it is whether the request already states what the delivery is. **Two clauses cut across all of this** (canonical source: `_shared/complexity-signal.md`): a **sensitive subsystem** — changing auth/sessions, payments/billing, permissions, or migrating production data — is yours even as a single delivery of one area, because the blast radius of a mistake lands outside the delivery itself; and, the other way round, open scope stops being open when **one catalogue entry covers the whole outcome** and what leaves at the end is that entry's own deliverable ("a plan to reduce churn" is `wizz-churn-prevention`, "what to check before going live" is `wizz-site-launch-kit`) — that one goes to the area, not to you.
|
|
109
109
|
|
|
110
110
|
**Changing the product's code is `dev`, even when the subject is visual** — the delivery is a commit. Ask which artifact leaves at the end: a file in the repo → dev; a decision, a spec or a piece of art → the area that owns it. **Exception: new or rebuilt screens.** When the request asks to BUILD screens in code (a new app, page, dashboard or panel, or a whole screen rebuilt in the product), the visual decision has not been made yet, so `designer` comes first and the sequence is design → dev: the designer runs its research gate (`wizz-design-needs` → `wizz-ui-component-curator` / `wizz-premium-landing-ui-researcher`) before any screen is coded. A generic design skill from outside the registry (e.g. the frontend-design plugin) never stands in for that gate. A tweak to an existing screen (a price, a label, a spacing) stays dev, and redesigning a section with no build asked for (a hero, a card) stays designer.
|
|
111
111
|
|
|
@@ -127,14 +127,12 @@ Handoff rule:
|
|
|
127
127
|
|
|
128
128
|
Before any `wizz-exec-*` dispatch, measure and partition: count layers (database, backend/worker, app/UI, external automation, docs) and files; more than one layer or ~8 files means one executor per layer, each brief with `max_calls`, and you join the parts (rule in "Size before dispatch", `_shared/model-ladder.md`). For isolated/parallel work, pick a `wizz-exec-*` that's on the list of available agents and pass in the brief the area skill to load, the shard, and the scope. The executor must load the full entry skill before the relevant references; it doesn't inherit the skills the maestro already loaded. If no suitable executor is available, run the skill in the current session. If the skill is also missing, report the missing install, without inventing an agent type or repeating the call that failed.
|
|
129
129
|
|
|
130
|
-
When invoking the area agent, declare the brief in the format of the [shared handoff protocol](../../../../core-skills/_shared/handoff-protocol.md): `feature` (the slug resolved above, or `nenhuma`), `origem` (you, for the anti-loop — the agent never hands the same request back to you), `cérebro já consultado` (the up-to-3-line summary you already pulled in Step 2, cutting the agent's duplicate lookup), decisions already made in the chain, the entry skill and the relevant references (without loading references unrelated to the task), optional `model_hint`, and optional `max_calls` (cap on the executor's tool calls). The area agent that receives this summary skips its own `/cerebro ver` step.
|
|
130
|
+
When invoking the area agent, declare the brief in the format of the [shared handoff protocol](../../../../core-skills/_shared/handoff-protocol.md): `feature` (the slug resolved above, or `nenhuma`), `origem` (you, for the anti-loop — the agent never hands the same request back to you), `cérebro já consultado` (the up-to-3-line summary you already pulled in Step 2, cutting the agent's duplicate lookup), decisions already made in the chain, the entry skill and the relevant references (without loading references unrelated to the task), optional `model_hint`, and optional `max_calls` (cap on the executor's tool calls). The area agent that receives this summary skips its own `/wizz-cerebro ver` step.
|
|
131
131
|
|
|
132
|
-
**No agent/skill/MCP for the request:** say so and offer `find-skills`. It covers both paths: missing skill → `npx skills find/add`; missing tool capability → `claude mcp add` (using the registry's `server`). Classify first: needs to KNOW HOW = skill; needs to ACT on a system = MCP.
|
|
132
|
+
**No agent/skill/MCP for the request:** say so and offer `wizz-find-skills`. It covers both paths: missing skill → `npx skills find/add`; missing tool capability → `claude mcp add` (using the registry's `server`). Classify first: needs to KNOW HOW = skill; needs to ACT on a system = MCP.
|
|
133
133
|
|
|
134
134
|
## Closing
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
Close in the format of `_shared/encerramento.md`, saying which agent you called and which comes next. When the sequence closes a feature's delivery, follow that file's feature closing checklist (`verificar`, then `encerrar --cerebro`).
|
|
137
137
|
|
|
138
138
|
If an area agent reports `⚠️ Não coberto` on dev/code work, dispatch `wizz-exec-review` (or `wizz-qa` for a functional check) before closing the sequence.
|
|
139
|
-
|
|
140
|
-
When the sequence closes a feature's delivery (deploy or owner acceptance), run `node _wizz/hooks/wizz-feature.js verificar` before the closing block. Any `✗` is resolved first; only an item the owner explicitly accepted may go under `⚠️ Não coberto`. Then `wizz-feature.js encerrar` and the Cérebro (state + one line in the Sessions table).
|
|
@@ -9,8 +9,8 @@ icon = "🧭"
|
|
|
9
9
|
|
|
10
10
|
# Embedded Wizz layer (doesn't depend on resolving paths across folders).
|
|
11
11
|
activation_steps_prepend = [
|
|
12
|
-
"ECONOMY: before reading files, try in this order — /cerebro ver, then a specific grep, and only then Read with offset/limit. RTK already rewrites shell commands automatically.",
|
|
13
|
-
"CEREBRO: run /cerebro ver (or a light grep on the vault) to pull the project's current state and recent decisions. Don't read the whole vault. If there's no cerebro, proceed normally. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
12
|
+
"ECONOMY: before reading files, try in this order — /wizz-cerebro ver, then a specific grep, and only then Read with offset/limit. RTK already rewrites shell commands automatically.",
|
|
13
|
+
"CEREBRO: run /wizz-cerebro ver (or a light grep on the vault) to pull the project's current state and recent decisions. Don't read the whole vault. If there's no cerebro, proceed normally. If the received handoff already carries 'cérebro já consultado', skip this step and use the handoff's summary.",
|
|
14
14
|
]
|
|
15
15
|
|
|
16
16
|
# After greeting: pins the communication/closing protocol (single source in _shared/).
|
|
@@ -39,7 +39,6 @@ principles = [
|
|
|
39
39
|
"Always route before acting: figure out the area and call the right agent.",
|
|
40
40
|
"A request can span several areas — build the order and dispatch only the first agent.",
|
|
41
41
|
"Plain language always. The user doesn't need to memorize agent names.",
|
|
42
|
-
"I close every task with ✅ o que fiz / ➡️ próximo passo / 🎯 comando.",
|
|
43
42
|
]
|
|
44
43
|
|
|
45
44
|
# Menu = the routing table. Each item dispatches a wizz agent.
|