wizz-method 2.4.0 → 2.6.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.
Files changed (51) hide show
  1. package/package.json +2 -1
  2. package/skills-registry.yaml +16 -0
  3. package/src/bmm-skills/4-implementation/wizz-code-review/references/review-economy.md +1 -1
  4. package/src/bmm-skills/4-implementation/wizz-code-review/steps/step-03-triage.md +1 -1
  5. package/src/bmm-skills/4-implementation/wizz-quick-dev/references/review-economy.md +1 -1
  6. package/src/bmm-skills/4-implementation/wizz-quick-dev/step-04-review.md +1 -1
  7. package/src/core-skills/_shared/handoff-protocol.md +15 -10
  8. package/src/modules/lowticket/README.md +10 -5
  9. package/src/modules/lowticket/module.yaml +10 -6
  10. package/src/modules/lowticket/skills/wizz-lowticket-funil/SKILL.md +33 -1
  11. package/src/modules/lowticket/skills/wizz-lowticket-guia/SKILL.md +83 -0
  12. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/SKILL.md +3 -2
  13. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04b-criativos-formatos.md +30 -1
  14. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/18-copy-desejo-oferta.md +2 -0
  15. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/INDEX.md +1 -1
  16. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/guardrails.md +2 -4
  17. package/src/modules/lowticket/skills/wizz-lowticket-minerador/SKILL.md +35 -2
  18. package/src/modules/lowticket/skills/wizz-lowticket-pagina/SKILL.md +33 -0
  19. package/src/modules/lowticket/skills/wizz-lowticket-trafego/SKILL.md +34 -1
  20. package/src/modules/wizz/README.md +1 -1
  21. package/src/modules/wizz/_shared/despacho-barato.md +1 -1
  22. package/src/modules/wizz/_shared/model-ladder.md +53 -30
  23. package/src/modules/wizz/_shared/token-economy.md +7 -6
  24. package/src/modules/wizz/subagents/codex/{wizz-exec-haiku.toml → wizz-exec-mechanical.toml} +4 -3
  25. package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +3 -2
  26. package/src/modules/wizz/subagents/codex/{wizz-exec-sonnet.toml → wizz-exec-standard.toml} +5 -3
  27. package/src/modules/wizz/subagents/codex/{wizz-exec-opus.toml → wizz-exec-strong.toml} +7 -5
  28. package/src/modules/wizz/subagents/codex/wizz-exec-ultra.toml +35 -0
  29. package/src/modules/wizz/subagents/gemini/{wizz-exec-haiku.md → wizz-exec-mechanical.md} +6 -4
  30. package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +4 -2
  31. package/src/modules/wizz/subagents/gemini/{wizz-exec-sonnet.md → wizz-exec-standard.md} +7 -4
  32. package/src/modules/wizz/subagents/gemini/{wizz-exec-opus.md → wizz-exec-strong.md} +8 -5
  33. package/src/modules/wizz/subagents/opencode/{wizz-exec-haiku.md → wizz-exec-mechanical.md} +3 -2
  34. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +2 -1
  35. package/src/modules/wizz/subagents/opencode/{wizz-exec-sonnet.md → wizz-exec-standard.md} +4 -2
  36. package/src/modules/wizz/subagents/opencode/{wizz-exec-opus.md → wizz-exec-strong.md} +5 -3
  37. package/src/modules/wizz/subagents/opencode/wizz-exec-ultra.md +34 -0
  38. package/src/modules/wizz/subagents/spec.yaml +104 -51
  39. package/src/modules/wizz/subagents/{wizz-exec-haiku.md → wizz-exec-mechanical.md} +5 -3
  40. package/src/modules/wizz/subagents/wizz-exec-review.md +4 -1
  41. package/src/modules/wizz/subagents/{wizz-exec-sonnet.md → wizz-exec-standard.md} +7 -3
  42. package/src/modules/wizz/subagents/{wizz-exec-opus.md → wizz-exec-strong.md} +8 -4
  43. package/src/modules/wizz/subagents/wizz-exec-ultra.md +36 -0
  44. package/src/skills-lib/wizz-ad-creative/SKILL.md +3 -0
  45. package/src/skills-lib/wizz-copywriting/SKILL.md +3 -0
  46. package/src/skills-lib/wizz-page-cro/SKILL.md +3 -0
  47. package/src/skills-lib/wizz-router/SKILL.md +1 -1
  48. package/tools/hooks/wizz-decision-trace.js +2 -1
  49. package/tools/hooks/wizz-router-enforce.js +2 -1
  50. package/tools/installer/commands/trace-report.js +60 -2
  51. package/tools/installer/ide/_config-driven.js +11 -3
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "wizz-method",
4
- "version": "2.4.0",
4
+ "version": "2.6.0",
5
5
  "description": "Wizz Method: método de agência orientado por IA em PT-BR",
6
6
  "keywords": [
7
7
  "agile",
@@ -83,6 +83,7 @@
83
83
  "test:install": "node test/test-installation-components.js",
84
84
  "test:install-smoke": "node test/test-install-smoke.js",
85
85
  "test:install-smoke-mcp": "node test/test-install-smoke-mcp.js",
86
+ "test:lowticket-journey": "node test/test-lowticket-journey-parity.js",
86
87
  "test:lowticket-third-party": "node test/test-lowticket-third-party.js",
87
88
  "test:mcp": "node test/test-mcp-config.js",
88
89
  "test:memlog": "node test/test-memlog.js",
@@ -213,6 +213,16 @@ areas:
213
213
  agent: wizz-copy
214
214
  summary: "Copywriting: texto de venda, headlines, páginas, e-mails, sequências."
215
215
  skills:
216
+ # Módulo lowticket (src/modules/lowticket) — ver nota em ads.skills.
217
+ # Entram primeiro de propósito: copy de low ticket lê o shard antes de escrever.
218
+ - id: wizz-lowticket-guia
219
+ module: lowticket
220
+ when: "Leigo que quer vender produto barato e não sabe o que pedir: situa na jornada de 7 etapas e despacha. Ler ANTES de escrever copy de low ticket."
221
+ - id: wizz-lowticket-metodologia
222
+ module: lowticket
223
+ when: "Copy de low ticket BR/PT (página, VSL, roteiro de criativo, headline): ler o shard antes de escrever. 12c página, 18 copy, 04b §4.7-A VSL (9 vendas), 04c roteiro de criativo. O shard vence a skill genérica."
224
+ not_when:
225
+ - "SaaS, B2B, site de cliente, high ticket ou mentoria: os números não transferem."
216
226
  - id: wizz-copywriting
217
227
  when: "Escrever copy de venda/página/headline do zero ou reescrever."
218
228
  - id: wizz-copy-editing
@@ -297,6 +307,9 @@ areas:
297
307
  - id: wizz-offer-forge
298
308
  when: "Forjar oferta irresistível de resposta direta/infoproduto (mecanismo único, empilhamento de valor, garantia reversa, ponte de tráfego)."
299
309
  # Módulo lowticket (src/modules/lowticket) — ver nota em ads.skills.
310
+ - id: wizz-lowticket-guia
311
+ module: lowticket
312
+ when: "Porta de entrada low ticket para leigo: 'quero vender um produto barato', 'por onde começo', 'ninguém compra'. Situa na jornada de 7 etapas e despacha."
300
313
  - id: wizz-lowticket-metodologia
301
314
  module: lowticket
302
315
  when: "Roteador da base low ticket BR/PT: gatilho → um shard. Régua de preço, garantia, copy e rastreamento que tem precedência sobre a skill genérica."
@@ -376,6 +389,9 @@ areas:
376
389
  # Módulo lowticket (src/modules/lowticket) — instaladas COM O MÓDULO, não
377
390
  # por skills-lib. O campo `module` é o gate: resolveSkillIds as ignora ao
378
391
  # copiar de src/skills-lib, e o router continua enxergando as entradas.
392
+ - id: wizz-lowticket-guia
393
+ module: lowticket
394
+ when: "Porta de entrada low ticket para leigo: 'não estou vendendo', 'por onde começo', 'anúncio não funciona'. Situa na jornada de 7 etapas e despacha."
379
395
  - id: wizz-lowticket-metodologia
380
396
  module: lowticket
381
397
  when: "Roteador da base low ticket BR/PT: gatilho → um shard (diagnóstico de funil, bid cap, criativo, oferta, página, Instagram, player de VSL, upsell, copy, rastreamento, mineração). Carrega guardrails junto."
@@ -62,7 +62,7 @@ When the brief names a `review-prompts/` file, that file owns the method and the
62
62
  The Forte tier is defined in `_shared/model-ladder.md`.
63
63
 
64
64
  - **Session runs on the Forte tier:** the session triages, as the triage instructions say. It already holds the context, so a subagent would only re-read it.
65
- - **Any session model other than the Forte tier:** write the collected findings, each with its originating layer `id`, to a uniquely-named temp file and launch one `wizz-exec-opus` subagent. Its brief is: the triage instructions (the path of the step file that holds them), the findings file, `{diff_file}`, `{spec_file}` when present, the paths of any loaded context docs, `{tier}`, `{failed_layers}`, `{layer_status}` (the active/dropped layer ids with drop reasons, so the triager knows which layers actually ran), and — only in workflows that set it (`wizz-code-review`) — `{review_mode}`. The subagent runs the whole pipeline itself: verdicts, the acceptance audit, grouping, and routing into categories. It returns every entry with severity, category and evidence, plus every dismissal with its reason — it never writes to any file; the session writes every log. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, not a new prompt to the user — and carries on per each workflow's own step. In `wizz-code-review`, `decision_needed` entries still get a genuine human confirmation before continuing, exactly as the presentation step already does; a confirmed entry the user rejects there is logged as dismissed with the user's own reason, never forced through. In `wizz-quick-dev`, `intent_gap` still loops back to the human as part of resolving it, and `bad_spec` still loops back automatically — the session's re-check adds no new user prompt for either.
65
+ - **Any session model other than the Forte tier:** write the collected findings, each with its originating layer `id`, to a uniquely-named temp file and launch one `wizz-exec-strong` subagent. Its brief is: the triage instructions (the path of the step file that holds them), the findings file, `{diff_file}`, `{spec_file}` when present, the paths of any loaded context docs, `{tier}`, `{failed_layers}`, `{layer_status}` (the active/dropped layer ids with drop reasons, so the triager knows which layers actually ran), and — only in workflows that set it (`wizz-code-review`) — `{review_mode}`. The subagent runs the whole pipeline itself: verdicts, the acceptance audit, grouping, and routing into categories. It returns every entry with severity, category and evidence, plus every dismissal with its reason — it never writes to any file; the session writes every log. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, not a new prompt to the user — and carries on per each workflow's own step. In `wizz-code-review`, `decision_needed` entries still get a genuine human confirmation before continuing, exactly as the presentation step already does; a confirmed entry the user rejects there is logged as dismissed with the user's own reason, never forced through. In `wizz-quick-dev`, `intent_gap` still loops back to the human as part of resolving it, and `bad_spec` still loops back automatically — the session's re-check adds no new user prompt for either.
66
66
 
67
67
  `{failed_layers}` stores layer `id`s (append ` (partial)` for a partial layer); every check against it compares ids, not names.
68
68
 
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## INSTRUCTIONS
11
11
 
12
- 0. **Decide who triages**, per `references/review-economy.md` section 4. When a `wizz-exec-opus` subagent triages, its brief includes `{layer_status}` so it can tell which layers ran; it runs every instruction of this step through routing (instructions 1-5 below) and returns the result. The session then re-checks the subagent's verdicts and routing against the evidence, confirms `decision_needed` entries with the user, and continues with instruction 6.
12
+ 0. **Decide who triages**, per `references/review-economy.md` section 4. When a `wizz-exec-strong` subagent triages, its brief includes `{layer_status}` so it can tell which layers ran; it runs every instruction of this step through routing (instructions 1-5 below) and returns the result. The session then re-checks the subagent's verdicts and routing against the evidence, confirms `decision_needed` entries with the user, and continues with instruction 6.
13
13
 
14
14
  1. **Normalize** findings from all layers into a unified list where each finding has:
15
15
  - `id` -- sequential integer
@@ -62,7 +62,7 @@ When the brief names a `review-prompts/` file, that file owns the method and the
62
62
  The Forte tier is defined in `_shared/model-ladder.md`.
63
63
 
64
64
  - **Session runs on the Forte tier:** the session triages, as the triage instructions say. It already holds the context, so a subagent would only re-read it.
65
- - **Any session model other than the Forte tier:** write the collected findings, each with its originating layer `id`, to a uniquely-named temp file and launch one `wizz-exec-opus` subagent. Its brief is: the triage instructions (the path of the step file that holds them), the findings file, `{diff_file}`, `{spec_file}` when present, the paths of any loaded context docs, `{tier}`, `{failed_layers}`, `{layer_status}` (the active/dropped layer ids with drop reasons, so the triager knows which layers actually ran), and — only in workflows that set it (`wizz-code-review`) — `{review_mode}`. The subagent runs the whole pipeline itself: verdicts, the acceptance audit, grouping, and routing into categories. It returns every entry with severity, category and evidence, plus every dismissal with its reason — it never writes to any file; the session writes every log. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, not a new prompt to the user — and carries on per each workflow's own step. In `wizz-code-review`, `decision_needed` entries still get a genuine human confirmation before continuing, exactly as the presentation step already does; a confirmed entry the user rejects there is logged as dismissed with the user's own reason, never forced through. In `wizz-quick-dev`, `intent_gap` still loops back to the human as part of resolving it, and `bad_spec` still loops back automatically — the session's re-check adds no new user prompt for either.
65
+ - **Any session model other than the Forte tier:** write the collected findings, each with its originating layer `id`, to a uniquely-named temp file and launch one `wizz-exec-strong` subagent. Its brief is: the triage instructions (the path of the step file that holds them), the findings file, `{diff_file}`, `{spec_file}` when present, the paths of any loaded context docs, `{tier}`, `{failed_layers}`, `{layer_status}` (the active/dropped layer ids with drop reasons, so the triager knows which layers actually ran), and — only in workflows that set it (`wizz-code-review`) — `{review_mode}`. The subagent runs the whole pipeline itself: verdicts, the acceptance audit, grouping, and routing into categories. It returns every entry with severity, category and evidence, plus every dismissal with its reason — it never writes to any file; the session writes every log. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, not a new prompt to the user — and carries on per each workflow's own step. In `wizz-code-review`, `decision_needed` entries still get a genuine human confirmation before continuing, exactly as the presentation step already does; a confirmed entry the user rejects there is logged as dismissed with the user's own reason, never forced through. In `wizz-quick-dev`, `intent_gap` still loops back to the human as part of resolving it, and `bad_spec` still loops back automatically — the session's re-check adds no new user prompt for either.
66
66
 
67
67
  `{failed_layers}` stores layer `id`s (append ` (partial)` for a partial layer); every check against it compares ids, not names.
68
68
 
@@ -62,7 +62,7 @@ This section's only file changes are temp diff files (`{diff_file}` and `{clean_
62
62
 
63
63
  ### Classify
64
64
 
65
- Decide who triages, per `./references/review-economy.md` § 4. When the session runs on the Forte tier, it triages directly, following the instructions below. Otherwise, write the collected findings — each tagged with its originating layer `id` — to a uniquely-named temp file and launch one `wizz-exec-opus` subagent. Its brief is: these Classify instructions (Classify items 1–4 below — the acceptance audit, verdicts, grouping, and routing into intent_gap/bad_spec/patch/defer, including the dismissal reasons), the findings file, `{diff_file}`, `{spec_file}` (when present), the paths of any context docs loaded from `{spec_file}`'s `context:` frontmatter list in step-03, `{tier}`, `{failed_layers}`, and `{layer_status}` (so the triager can tell which layers actually ran) — quick-dev never sets `{review_mode}`, so the brief never carries it. The subagent never writes to any file, including `{spec_file}` — it returns every entry with severity, category and evidence, plus every dismissal with its reason. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, it adds no new prompt to the user — writes the `## Review Triage Log`, and runs Classify item 5 (loopbacks, patches, defers) itself exactly as when the session triages directly.
65
+ Decide who triages, per `./references/review-economy.md` § 4. When the session runs on the Forte tier, it triages directly, following the instructions below. Otherwise, write the collected findings — each tagged with its originating layer `id` — to a uniquely-named temp file and launch one `wizz-exec-strong` subagent. Its brief is: these Classify instructions (Classify items 1–4 below — the acceptance audit, verdicts, grouping, and routing into intent_gap/bad_spec/patch/defer, including the dismissal reasons), the findings file, `{diff_file}`, `{spec_file}` (when present), the paths of any context docs loaded from `{spec_file}`'s `context:` frontmatter list in step-03, `{tier}`, `{failed_layers}`, and `{layer_status}` (so the triager can tell which layers actually ran) — quick-dev never sets `{review_mode}`, so the brief never carries it. The subagent never writes to any file, including `{spec_file}` — it returns every entry with severity, category and evidence, plus every dismissal with its reason. The session then re-checks the subagent's own verdicts and routing against the evidence it returned — this is the session validating a delegated triager's work, it adds no new prompt to the user — writes the `## Review Triage Log`, and runs Classify item 5 (loopbacks, patches, defers) itself exactly as when the session triages directly.
66
66
 
67
67
  1. On every tier — this workflow has no `acceptance-auditor` layer — run the acceptance audit from `./references/review-economy.md` § 4 against `{spec_file}`: check the diff against the spec's acceptance criteria and constraints, and add a finding for each violation, deviation or missing behavior, with source `triage-acceptance`, to the unified list, before verdicts. It gets a verdict like any other finding, per Classify item 2.
68
68
 
@@ -23,20 +23,25 @@ and pass along only the skill's entrypoint and the references actually needed
23
23
  The receiver first loads the full SKILL.md by invoking the skill;
24
24
  then reads only the references the task requires. Skills loaded
25
25
  by the lead are not automatically inherited by a subagent.
26
- - model_hint (optional): a rung on the ladder, not a raw model. Values:
27
- `haiku | sonnet | opus | review`. The receiver dispatches `wizz-exec-<hint>`
28
- (native in Claude Code, Codex, OpenCode and Gemini CLI). Escalation: at
29
- most 1 rung up if the executor returns ambiguity or tests
30
- fail twice. `opus` is only a real rung when the delegating session runs
31
- above Opus (Fable); in an Opus session the receiver jumps straight to `review`
32
- (full detail in `_shared/model-ladder.md`, in the wizz module).
33
- Optional field: the handoff works fine without it.
26
+ - model_hint (optional): a tier on the ladder, not a raw model. Values:
27
+ `mechanical | standard | strong | ultra | review`. Legacy values `haiku`,
28
+ `sonnet`, `opus` map to `mechanical`, `standard`, `strong` respectively.
29
+ The receiver dispatches `wizz-exec-<hint>` (native in Claude Code, Codex
30
+ and OpenCode). Escalation: `strong` is dispatched when the delegating
31
+ session's own tier isn't enough; `ultra` is only valid after a Strong-tier
32
+ `ESCALAR` — from `wizz-exec-strong`, or from the session itself when it
33
+ absorbed strong's work and hit the same signal; strong never dispatches
34
+ anything itself. If `ultra` also returns `ESCALAR`, the work goes back to
35
+ the user (full detail in `_shared/model-ladder.md`, in the wizz module).
36
+ On Gemini CLI there is no `wizz-exec-ultra`: an `ultra` hint goes back to
37
+ the user instead of dispatching. Optional field: the handoff works fine
38
+ without it.
34
39
  - max_calls (optional): a cap on tool calls the executor can spend
35
40
  on this brief, as an integer. The receiver dispatches
36
41
  `wizz-exec-<hint>` with that cap declared in the brief. On hitting the cap,
37
42
  the executor STOPS, delivers the partial work with explicit pending items, and does not
38
43
  escalate on its own: the delegator decides the next step (reissue with a
39
- higher cap, escalate one rung, or absorb the rest). An instructional rule, just
44
+ higher cap, escalate one tier, or absorb the rest). An instructional rule, just
40
45
  like the anti-loop one: nothing programmatic counts the calls. Without `max_calls` the
41
46
  handoff works fine.
42
47
  - needs planning (optional): a yes/no verdict on the planning factor
@@ -55,7 +60,7 @@ and pass along only the skill's entrypoint and the references actually needed
55
60
  approved; checkout still needs finishing.
56
61
  decisions already made in the chain: scope is mobile-first only.
57
62
  relevant section of the skill: page-cro/references/checkout-flow.md
58
- model_hint: sonnet
63
+ model_hint: standard
59
64
  max_calls: 40
60
65
 
61
66
  ## Anti-loop rule
@@ -1,20 +1,21 @@
1
1
  # Wizz Low Ticket
2
2
 
3
- A portable knowledge base and four operating skills for **low ticket direct response** in Brazil and Portugal: offers between roughly R$19 and R$97, sold cold on Meta Ads, on a phone, mostly inside the Instagram in-app browser.
3
+ A portable knowledge base, a front door and five operating skills for **low ticket direct response** in Brazil and Portugal: offers between roughly R$19 and R$97, sold cold on Meta Ads, on a phone, mostly inside the Instagram in-app browser.
4
4
 
5
- Install it and a fresh machine has the methodology and the four agents working, with no extra setup.
5
+ Install it and a fresh machine has the methodology and the six skills working, with no extra setup.
6
6
 
7
7
  ## What ships
8
8
 
9
9
  | Skill | Does | Use when | Do not use when |
10
10
  |---|---|---|---|
11
+ | `wizz-lowticket-guia` | front door: places the user on the 7-step journey (find the offer, build it, page and VSL, creatives, tracking, campaign, raise the ticket), explains the step in plain words, hands off, and closes with the next step | the user describes a symptom ("não estou vendendo") or does not know where to start | the request already names one task with its inputs: go straight to that skill |
11
12
  | `wizz-lowticket-metodologia` | routes a request to the one knowledge shard that answers it, loads the guardrails alongside | any low ticket work: offer, creative, page, campaign, funnel | SaaS, B2B, client site, high ticket |
12
13
  | `wizz-lowticket-trafego` | campaign diagnosis and ruler: structure, bid cap, when to cut, how to scale | reading, cutting or scaling a Meta campaign | Google Ads, brand campaigns, writing ads |
13
14
  | `wizz-lowticket-funil` | the post-checkout ladder: upsell, downsell, final offer, price rules | after the front-end converts, to raise average order value | before a front-end that converts exists |
14
15
  | `wizz-lowticket-minerador` | mining and judging a competitor offer, with a cut-off rubric | hunting a new offer to model | the offer is already defined (use `wizz-offer-forge`) |
15
16
  | `wizz-lowticket-pagina` | page performance: connect rate, LCP, pixel order, acceptance targets | optimizing or building a low ticket sales page | institutional sites or apps |
16
17
 
17
- All five read the Cérebro on activation and **none of them keeps its own memory**, the same contract as `wizz-offer-forge`. What is decided lives in the Cérebro; what is known lives in the shards.
18
+ All six read the Cérebro on activation and **none of them keeps its own memory**, the same contract as `wizz-offer-forge`. What is decided lives in the Cérebro; what is known lives in the shards.
18
19
 
19
20
  ## The loading contract
20
21
 
@@ -28,9 +29,13 @@ The knowledge base is 26 shards. It is not loaded whole. Reading everything cost
28
29
 
29
30
  ## Language
30
31
 
31
- The framework surface is English: this file, the module definition, the SKILL.md frontmatter, the registry entry. **The knowledge is Portuguese**: the shard bodies, their filenames, the INDEX, the guardrails, the table headers.
32
+ The shard bodies, the INDEX, the guardrails and the skills are in English, like the rest of Wizz Method: an English shard costs fewer tokens per read (decision of 2026-08-28, revised 2026-09-15). Three things stay in Portuguese on purpose: the shard filenames (stable ids that every link points to), the trigger phrases and market vocabulary (`bid cap`, `connect rate`, `order bump`, `Utmify`, `Pix`), and everything emitted to the operator or the end customer (the closing block, the diagnosis format, page copy).
32
33
 
33
- That split is deliberate. The market this describes is BR/PT and the vocabulary is native (`bid cap`, `connect rate`, `order bump`, `Utmify`, `Pix`); translating it would make it less precise, not more portable. Decision recorded 2026-08-28.
34
+ The canonical source is the owner's local base, in Portuguese. This module is the derived copy: new content is born in the base and ported here, never the other way round.
35
+
36
+ ## The journey
37
+
38
+ Every skill closes with the same four-line block (📍 where you are · ✅ what we did · ➡️ next step · 🧰 what to have ready) and the same 7-step map, so a lay user always knows what comes next. Steps 2 to 5 are owned by generic skills (`wizz-offer-forge`, `wizz-copy`, `wizz-ads`, `wizz-tracking-audit`) that read the shard named by the front door; where the generic skill contradicts the shard, the shard wins.
34
39
 
35
40
  ## Origin
36
41
 
@@ -1,6 +1,6 @@
1
1
  code: lowticket
2
2
  name: "Wizz Low Ticket"
3
- description: "Low ticket direct-response playbook for Meta Ads (BR/PT): funnel diagnosis, bid-cap campaigns, creatives, offers, sales pages, VSL players, upsell ladders, copy diagnosis, tracking setup and offer mining. Knowledge base in Portuguese, loaded one shard at a time."
3
+ description: "Low ticket direct-response playbook for Meta Ads (BR/PT): funnel diagnosis, bid-cap campaigns, creatives, offers, sales pages, VSL players, upsell ladders, copy diagnosis, tracking setup and offer mining, plus a front door for people who do not know where to start. Knowledge base loaded one shard at a time."
4
4
  default_selected: false
5
5
  # Versão do contrato module.yaml <-> installer (auditoria 2026-09-11, item 25).
6
6
  # Ver tools/installer/modules/module-interface.js. Ausente = 1.
@@ -14,11 +14,15 @@ interface_version: 1
14
14
  # The raw sources stay on the author's machine, outside npm and outside git.
15
15
  # Keep it that way: when you extend a shard, write the fact, never the quote.
16
16
  #
17
- # The knowledge body, the shard filenames and the INDEX are in Portuguese on
18
- # purpose (the market it describes is BR/PT and the vocabulary is native).
19
- # The framework surface (this file, SKILL.md frontmatter, the registry entry,
20
- # the README) stays in English like the rest of Wizz Method.
21
- # Decision recorded 2026-08-28.
17
+ # Language (decision of 2026-08-28, revised 2026-09-15 in commit 2e983854):
18
+ # the shard bodies, the INDEX, the guardrails and the SKILL.md files are in
19
+ # English, like the rest of Wizz Method, to spend fewer tokens per read.
20
+ # The shard filenames stay in Portuguese (stable ids that other files link to),
21
+ # and so do the trigger phrases, the market vocabulary (bid cap, connect rate,
22
+ # order bump, Utmify, Pix) and everything emitted to the operator or the end
23
+ # customer (closing block, diagnosis format, page copy).
24
+ # The canonical source is the owner's local base in Portuguese; this module is
25
+ # the derived, translated copy. New content is born in the base and ported here.
22
26
 
23
27
  # --- Module-specific config ---
24
28
 
@@ -21,6 +21,13 @@ Read the Cérebro state first (via the `cerebro` skill). Then, if `wizz-lowticke
21
21
 
22
22
  This skill has **no memory of its own**. What gets decided goes to the Cérebro; the artifact goes to a file.
23
23
 
24
+ ## If the user is new to this
25
+
26
+ - Spot a leigo by the signal: they say "quero vender mais pra quem já comprou" em vez de "upsell", não sabem o que é downsell ou OTO, ou respondem "não sei" pra preço ou público nas quatro perguntas do Move 1.
27
+ - Explain each term the first time it is used, em uma frase simples: upsell é uma oferta extra logo depois da compra; downsell é uma oferta mais simples pra quem recusou o upsell; OTO (one-click offer) é a compra sem digitar o cartão de novo. Full glossary: `14-vocabulario.md` in `wizz-lowticket-metodologia`.
28
+ - If the person cannot answer whether the front-end already sells, that is the prerequisite abaixo: explique em linguagem simples que o funil só estica um front que já converte, e aponte para `wizz-offer-forge` ou `wizz-lowticket-trafego` primeiro.
29
+ - Ask the four questions in Move 1 one at a time if the person seems lost, em vez de despejar as quatro em quem ainda não sabe o que é "front-end".
30
+
24
31
  ## Flow, in five moves
25
32
 
26
33
  Do not deliver the whole thing at once. Each move ends with a question, and the answer shapes the next one.
@@ -109,4 +116,29 @@ The full anti-AI word list and the rhythm rules are in `references/copy-das-pagi
109
116
 
110
117
  ## Out of scope
111
118
 
112
- Traffic, campaigns, hiring, accounting, general operations. Bring it back to product, offer, price, pain, post-checkout sequence and copy, or route: `wizz-lowticket-trafego` for campaigns, `wizz-offer-forge` for the front-end offer, `wizz-lowticket-pagina` for the sales page itself.
119
+ Traffic, campaigns, hiring, accounting, general operations. Bring it back to product, offer, price, pain, post-checkout sequence and copy, or route: `wizz-lowticket-trafego` for campaigns (Etapa 6), `wizz-offer-forge` for the front-end offer (Etapa 2), `wizz-copy` for the sales page copy itself (Etapa 3), `wizz-lowticket-pagina` for page speed.
120
+
121
+ ## Closing: always hand off
122
+
123
+ End every response with this block, in Portuguese:
124
+
125
+ ```
126
+ 📍 Onde você está: Etapa 7 de 7, Aumentar o ticket
127
+ ✅ O que fizemos: <uma linha>
128
+ ➡️ Próximo passo: escrever a próxima página, ajustar um produto do mapa, ou ficar como está e medir até <checkpoint>
129
+ 🧰 O que ter pronto antes: <o que falta, ex. preço do front, dor principal>
130
+ ```
131
+
132
+ A jornada, resumida:
133
+
134
+ | # | Etapa | Dono |
135
+ |---|---|---|
136
+ | 1 | Achar a oferta | wizz-lowticket-minerador |
137
+ | 2 | Montar a oferta | wizz-offer-forge |
138
+ | 3 | Página e VSL | wizz-copy |
139
+ | 4 | Criativos | wizz-copy / wizz-ads |
140
+ | 5 | Rastreamento | wizz-tracking-audit |
141
+ | 6 | Campanha no ar | wizz-lowticket-trafego |
142
+ | 7 | Aumentar o ticket | wizz-lowticket-funil |
143
+
144
+ Gate: nunca montar upsell sem um front que já vende (ver Prerequisite acima).
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: wizz-lowticket-guia
3
+ description: Front door of the low ticket module for people who do not know what to ask. Places the user on the 7-step journey (find the offer, build the offer, page and VSL, creatives, tracking, campaign, raise the ticket), explains that step in plain language and hands off to the skill that does it. Use when someone wants to sell a cheap digital product with paid ads, describes a symptom instead of a task, or does not know where to start. Triggers in PT: "quero vender um produto barato", "infoproduto", "low ticket", "por onde começo", "não estou vendendo", "meu anúncio não funciona", "ninguém compra", "gasto e não vendo", "quero escalar". Do NOT use when the request already names one concrete task with its inputs (a campaign print to read, an offer URL to judge): go straight to that skill.
4
+ ---
5
+
6
+ # Low Ticket · Front Door
7
+
8
+ The other low ticket skills are sharp and assume the user knows which one to call. Most people do not. They say "não estou vendendo" and that sentence can mean six different problems. This skill finds out which one, in plain words, and hands off.
9
+
10
+ **It does not do the work itself.** It diagnoses the step, explains it, dispatches, and makes sure every answer ends with the next step.
11
+
12
+ ## Step 0: What is already known
13
+
14
+ 1. Read the project's Cérebro state (via the `cerebro` skill). If it already says which offer is live and at which step, skip the questions.
15
+ 2. Read `wizz-lowticket-metodologia/knowledge/INDEX.md` and `guardrails.md` (the always-load of the base). Read `01-principios.md` too: its gates decide which steps cannot be skipped.
16
+
17
+ ## Step 1: Place the user, in one message
18
+
19
+ If the user's message already answers these, do not ask. Otherwise ask **all three together**, in Portuguese, no jargon:
20
+
21
+ 1. Você já tem um produto para vender? (ou ainda está procurando o que vender)
22
+ 2. Já tem página de vendas ou anúncio no ar?
23
+ 3. Já vendeu alguma vez pelo anúncio?
24
+
25
+ Then place them with the symptom table when they describe a problem, or the journey table when they are starting.
26
+
27
+ ### Symptom → step
28
+
29
+ | What they say | What it usually is | Step |
30
+ |---|---|---|
31
+ | "não sei o que vender" | no offer yet | 1 |
32
+ | "tenho o produto, não sei o preço / a promessa" | offer not built | 2 |
33
+ | "as pessoas clicam e não compram" | page, VSL or offer | 3 (check 2) |
34
+ | "ninguém clica no anúncio" / "anúncio caro" | creative | 4 |
35
+ | "vendeu mas o gerenciador não mostra" / números estranhos | tracking | 5 |
36
+ | "gasto e não vendo" / "o ROAS caiu" / "posso escalar?" | campaign reading | 6 |
37
+ | "vende, mas sobra pouco" | average ticket | 7 |
38
+ | "página lenta" / muita gente clica e pouca chega | page speed | detour: `wizz-lowticket-pagina` |
39
+ | "conta bloqueada" / "anúncio reprovado" | account and policy | 6, via `03-campanha-bidcap.md` §3.6 + guardrails |
40
+
41
+ When "gasto e não vendo" comes without numbers, send it to step 6 anyway: `wizz-lowticket-trafego` reads the funnel and will point back to 3, 4 or 5 if that is where the leak is. Do not guess the leak here.
42
+
43
+ ### The journey
44
+
45
+ | # | Step (say it like this) | Gate to enter | Who does it | Base |
46
+ |---|---|---|---|---|
47
+ | 1 | Achar a oferta | none | `wizz-lowticket-minerador` | 12, 12a |
48
+ | 2 | Montar a oferta: promessa, preço, garantia | a demand exists | `wizz-offer-forge` | 05, 12b |
49
+ | 3 | Página e VSL: texto e estrutura | offer defined | `wizz-copy` (with the base) | 12c, 06, 18, 04b §4.7-A, 06b |
50
+ | 4 | Criativos: o anúncio | page ready | `wizz-copy` for the script, `wizz-ads` for the ad | 04c, 04, 04b, 04a |
51
+ | 5 | Rastreamento: pixel, checkout, eventos | page ready | `wizz-tracking-audit` | 17 |
52
+ | 6 | Campanha no ar e leitura dos números | pixel firing, creative ready | `wizz-lowticket-trafego` | 03, 02 |
53
+ | 7 | Aumentar o ticket: upsell e downsell | front-end already sells | `wizz-lowticket-funil` | 07, 07a |
54
+
55
+ Instagram profile (`06a`) supports steps 3 to 6; bring it in when the offer sells through the profile.
56
+
57
+ **Gates are not negotiable** (from `01-principios.md`): no ads before the offer is validated, no campaign before the pixel fires, never scale in the red, no upsell before the front sells. If the user asks for a later step while an earlier gate is open, say which gate is open in one sentence and offer the earlier step. If they insist, do what they asked and record the risk in the answer.
58
+
59
+ ## Step 2: Explain the step in plain Portuguese
60
+
61
+ Two or three sentences: what this step is, why it comes now, what "done" looks like. Every technical term gets a one-line explanation the first time it appears (`14-vocabulario.md` has the base's terms). Tell them what to have at hand for the next skill (a print of the Gerenciador de Anúncios, the page link, the product price) and where to find it.
62
+
63
+ ## Step 3: Hand off
64
+
65
+ Invoke the owning skill (or area agent) with everything collected: the step, the answers, and the instruction that the user is new to this and needs plain language. If the request touches two or more steps at once ("faz a página e os anúncios"), hand it to `wizz-maestro` with the step list in order.
66
+
67
+ When the owner is a generic skill (`wizz-copy`, `wizz-ads`, `wizz-offer-forge`, `wizz-tracking-audit`), name the shard it must read, from the Base column above, and repeat the precedence rule: where the generic skill contradicts the shard, the shard wins.
68
+
69
+ ## Closing: always
70
+
71
+ Every answer from this skill, and every answer from the skill it handed to, ends with:
72
+
73
+ - `📍 Onde você está`: etapa N, nome
74
+ - `✅ O que fizemos`
75
+ - `➡️ Próximo passo`: the next step and who does it, or "deixar rodar e medir até <checkpoint>" when that is the answer
76
+ - `🧰 O que ter pronto antes`
77
+
78
+ ## Rules
79
+
80
+ - One step at a time. A lay user given the whole map at once does nothing.
81
+ - Never invent the user's numbers, results or testimonials; the guardrails apply to everything handed off.
82
+ - Answer in the user's language, short sentences, no em-dashes in what the user reads.
83
+ - Outside the market (SaaS, B2B, high ticket, mentorship): say the base's numbers do not transfer and route to `wizz-growth`.
@@ -5,9 +5,9 @@ description: Routes any low ticket direct-response question to the one knowledge
5
5
 
6
6
  # Low Ticket Methodology
7
7
 
8
- A knowledge base of 26 shards in Portuguese, plus a swipe file analysis of 155 real creatives. The knowledge is loaded **one shard at a time**: the full base is well over 40k tokens, a typical answer needs under 5k.
8
+ A knowledge base of 26 shards, plus a swipe file analysis of 155 real creatives. The knowledge is loaded **one shard at a time**: the full base is well over 40k tokens, a typical answer needs under 5k.
9
9
 
10
- Everything below the surface of this skill is in Portuguese on purpose. The market it describes is Brazil and Portugal, and the vocabulary (`bid cap`, `connect rate`, `order bump`, `Utmify`, `Pix`) is how the operators actually speak. Answer the user in their language; read the shards as they are.
10
+ The shards are in English; the filenames, the trigger phrases and the market vocabulary (`bid cap`, `connect rate`, `order bump`, `Utmify`, `Pix`) stay in Portuguese on purpose, because that is how the operators in Brazil and Portugal actually speak. Answer the user in their language; read the shards as they are.
11
11
 
12
12
  ## The loading contract, in three steps
13
13
 
@@ -57,6 +57,7 @@ The video and image files themselves do not ship. To open a specific piece, the
57
57
 
58
58
  ## What this skill does not do
59
59
 
60
+ - **It does not place a lost user.** Someone who describes a symptom ("não estou vendendo") or does not know where to start goes to `wizz-lowticket-guia`, the front door, which finds the journey step first and comes back here for the shard.
60
61
  - **It does not write.** It routes and it cites. Producing the offer is `wizz-offer-forge`, the page is `wizz-page-cro`, the copy is `wizz-copywriting`, the campaign is `wizz-paid-ads`.
61
62
  - **It does not remember.** No state file, no notes. The Cérebro is the memory.
62
63
  - **It does not travel outside its market.** SaaS, B2B, client sites and high ticket have different math. Say so rather than stretching the numbers.
@@ -3,7 +3,7 @@
3
3
  > Shard of this base's methodology. Index: [`INDEX.md`](INDEX.md) · Always loaded alongside: [`guardrails.md`](guardrails.md)
4
4
  > Where the generic skill contradicts this shard, **the shard wins**, and this must be stated in the response.
5
5
 
6
- **What's here:** `4.7` VSL in 6 blocks · `4.8` pt-BR → pt-PT transcreation · `4.10` 155-piece swipe file · `4.11` the 14 visual format templates · `4.11-A` what the swipe file actually uses · `4.11-B` the organic formats of 2026
6
+ **What's here:** `4.7` VSL in 6 blocks · `4.7-A` mini VSL, the 9 sales and play rate · `4.8` pt-BR → pt-PT transcreation · `4.10` 155-piece swipe file · `4.11` the 14 visual format templates · `4.11-A` what the swipe file actually uses · `4.11-B` the organic formats of 2026
7
7
  **Siblings:** fundamentals in [`04-criativos.md`](04-criativos.md) · AI production in [`04a-criativos-ia.md`](04a-criativos-ia.md) · writing the video script in [`04c-criativos-roteiro.md`](04c-criativos-roteiro.md)
8
8
 
9
9
  ### 4.7 VSL structure — 6 blocks
@@ -26,6 +26,35 @@ Fixed structure, in order, for a digital-offer VSL. Target length from the lesso
26
26
  > ⚠️ This 7-9 min length conflicts with the 90s-2min from section 11.3 for low ticket.
27
27
  > **Rule adopted (2026-08-28):** what decides it is what the VSL needs to prove. A product that proves itself on screen (showrun) stays at 90s-2min; an offer that needs to build a mechanism and authority before the price goes to 7-9 min. The 6-block structure applies to both, only the time per block changes. When in doubt, start short. See [Open item 18](pontos-em-aberto.md).
28
28
 
29
+ ### 4.7-A Mini VSL: the "9 sales" and the metrics that judge a VSL
30
+
31
+ > ⚠️ **Low-fidelity source.** This comes from an automated summary of a live session, with no transcript. Nothing below changes an adopted rule; it works as a review checklist.
32
+
33
+ **The 9 sales.** A VSL sells nine things in sequence, one at a time. It is not a new structure: it is the 7-block list of §18.8 described by what each stretch has to win.
34
+
35
+ | # | Sale | §18.8 block | §4.7 block |
36
+ |---|---|---|---|
37
+ | 1 | Attention (break the pattern) | Lead | Lead |
38
+ | 2 | Viewing (worth trading time for this) | Lead, the open loop | Lead |
39
+ | 3 | Credibility (story, who's speaking) | Who's speaking + Story | Story |
40
+ | 4 | Problem and solution | Thesis | Product |
41
+ | 5 | Value stacking | Build-up | Product |
42
+ | 6 | Differentiation | Thesis (the mechanism) | Product |
43
+ | 7 | Guarantee and safety | Offer | Offer |
44
+ | 8 | Irresistible offer | Offer | Offer |
45
+ | 9 | Call to action | Close | CTA |
46
+
47
+ The source lists the CTA before the offer; the working order stays the one in §18.8 (offer, then close with CTA).
48
+
49
+ **The two metrics that judge the VSL, isolated from the rest of the funnel:**
50
+
51
+ - **Low play rate:** the problem is before the video (page, thumbnail, promise above the player).
52
+ - **Low retention to pitch with a good play rate:** the problem is in the copy of sales 1 to 6, not in the offer. Benchmarks in 13 (play rate ≥60-70%, retention to pitch 20-30%).
53
+
54
+ **A/B test one variable at a time.** The highest-value test is the **opening** of the VSL (the lead), consistent with the "3-8 leads per VSL" in 13. Other variables mentioned: buy-button delay and vertical versus horizontal video.
55
+
56
+ **Low ticket (below R$60): 7-8 minute ceiling**, with practical demonstration and testimonials carrying retention. It fits inside the adopted rule above (item 18): it is the ceiling of the long range, and a product that proves itself on screen stays at 90s-2min. Real testimonials only ([guardrails 23](guardrails.md)).
57
+
29
58
  ### 4.8 pt-BR → pt-PT transcreation
30
59
 
31
60
  For an offer running in Portugal, **no pt-BR copy goes live translated: it is rewritten** as if a Portuguese copywriter had started from the same brief. The file is the full operational prompt — use it in full (pasting the pt-BR copy at the end) whenever adapting a creative, VSL, caption, page or bio. Summary rules:
@@ -143,6 +143,8 @@ From bottom to top, each rung buys more belief than the one before:
143
143
  **Works for VSL, sales page, and creative script.** Changes the size of each block, never the order.
144
144
 
145
145
  > ⚠️ **There are 7 blocks here and 6 in [`04b`](04b-criativos-formatos.md) §4.7.** It's not a conflict: the 7 are the fine-grained version of the 6. The mapping and the adopted rule are in [Open point 47](pontos-em-aberto.md) — in short, `WHO'S SPEAKING` comes out from inside `Story`, and `THESIS` is the block the list of 6 doesn't name. **The list of 7 is the working list; the list of 6 remains valid as a quick VSL check.**
146
+ >
147
+ > ✅ **VSL review checklist: the 9 sales** (attention, viewing, credibility, problem and solution, value, differentiation, guarantee, offer, CTA), mapped onto these 7 blocks in [`04b`](04b-criativos-formatos.md) §4.7-A. A finished script goes through them: the block that doesn't win its sale is the one to rewrite.
146
148
 
147
149
  ### 18.9 The value equation — the 4 levers
148
150
 
@@ -23,7 +23,7 @@ Don't open two shards to figure out which one it was. The 3rd column exists for
23
23
  | **New account, multi-login, proxy, high CPM/CPC** | **§3.6** of [`03`](03-campanha-bidcap.md) | Warm-up, proxy, verification. Has a blocked tactic: [guardrails 20](guardrails.md) |
24
24
  | Creative: structure, hook, production rules, angle testing | [`04-criativos.md`](04-criativos.md) | §4.1-4.5 and §4.12: structure, rules, triggers, platform, sub-niche, organic-to-paid validation |
25
25
  | **Video, image, or avatar made with AI** | [`04a-criativos-ia.md`](04a-criativos-ia.md) | §4.6, §4.9, §4.13: realism, image generation, talking avatar. Has a blocked tactic: [guardrails 21](guardrails.md) |
26
- | **VSL script, pt-BR→pt-PT transcreation, visual template, swipe file** | [`04b-criativos-formatos.md`](04b-criativos-formatos.md) | §4.7, §4.8, §4.10, §4.11, §4.11-A: VSL in 6 blocks, pt-BR→pt-PT, 14 templates, the 155 pieces |
26
+ | **VSL script, mini VSL, pt-BR→pt-PT transcreation, visual template, swipe file** | [`04b-criativos-formatos.md`](04b-criativos-formatos.md) | §4.7, §4.7-A, §4.8, §4.10, §4.11, §4.11-A, §4.11-B: VSL in 6 blocks, the 9 sales and play rate, pt-BR→pt-PT, 14 templates, the 155 pieces, 2026 organic formats |
27
27
  | **Writing a video creative script, briefing, variations, retention drop** | [`04c-criativos-roteiro.md`](04c-criativos-roteiro.md) | §4.16-4.23: the 3-question brief, block map by 15/30/60/90 s, rules per block, script table + spoken text, one axis per batch, retention diagnosis, checklist. Has a blocked tactic: [guardrails 49](guardrails.md) |
28
28
  | **See a creative that's already been made** | **§4.10** of [`04b`](04b-criativos-formatos.md) + [`CATALOGO`](../CATALOGO.md) | The 155 swipe pieces: composition, duration, screen, hook type |
29
29
  | **Why the copy isn't converting: awareness, sophistication, villain, proof** | [`18-copy-desejo-oferta.md`](18-copy-desejo-oferta.md) | The 5 awareness levels, the 5 sophistication stages, the named-villain formula, the proof ladder, the 7 copy blocks |
@@ -14,7 +14,7 @@
14
14
 
15
15
  ## 21 · An AI avatar passing as a real person
16
16
 
17
- **The tactic.** Sections 4.6 and 4.9 of [`04-criativos.md`](04-criativos.md) teach how to create a realistic avatar and profile with AI.
17
+ **The tactic.** Sections 4.6, 4.9, 4.13 and 4.14 of [`04a-criativos-ia.md`](04a-criativos-ia.md) teach how to create a realistic avatar and profile with AI.
18
18
 
19
19
  **Why not (without confirming first).** Meta and Instagram require an account representing a fictitious person to be identifiable as such, and the rule varies by format and by country. The source material doesn't address this. In Portugal and the EU the transparency bar is stricter (§4.8 already logs the same caution for promises).
20
20
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  ## 23 · Synthetic testimonial
24
24
 
25
- **The tactic.** The offer-factory source (§12.7 in [`12-mineracao-ofertas.md`](12-mineracao-ofertas.md)) suggests filling the page's social proof with an AI-generated face plus a fictional name and city.
25
+ **The tactic.** The offer-factory source (§12.7 in [`12b-fabrica-de-ofertas.md`](12b-fabrica-de-ofertas.md)) suggests filling the page's social proof with an AI-generated face plus a fictional name and city.
26
26
 
27
27
  **Why not.** It's a fabricated testimonial. It violates Meta's ad policy and constitutes deceptive advertising (CDC in Brazil; in the EU the bar is even stricter, and §4.8 already requires framing every testimonial as an individual result). The risk isn't only legal: fake social proof that gets discovered destroys the whole offer.
28
28
 
@@ -100,6 +100,4 @@ The guardrail the deck itself already states still holds on top of this: *"speci
100
100
 
101
101
  ---
102
102
 
103
- ---
104
-
105
103
  **General rule when a new risky tactic shows up.** Don't stay silent and don't adopt it on your own: log it in [`pontos-em-aberto.md`](pontos-em-aberto.md), bring it here if it's a legal or ban risk, and notify the operation's owner before proceeding.
@@ -11,7 +11,7 @@ The governing principle: **never clone, always rebuild.**
11
11
 
12
12
  ## Who you are talking to
13
13
 
14
- Someone who already runs traffic, reads metrics and has mined offers before. Do not explain fundamentals, do not open with praise, do not hedge. "Aqui está o problema" beats "existem alguns pontos que talvez possam ser considerados."
14
+ Two kinds of person ask this. An operator who already runs traffic, reads metrics and has mined offers before: do not explain fundamentals to them, do not open with praise, do not hedge. "Aqui está o problema" beats "existem alguns pontos que talvez possam ser considerados." Or a leigo who just wants to know if an idea can make money and does not know the vocabulary: explain each term as it comes up, in plain language, before asking for anything technical. See "If the user is new to this" below for how to tell them apart.
15
15
 
16
16
  ## Source of truth
17
17
 
@@ -22,6 +22,14 @@ Read the Cérebro state first (via the `cerebro` skill). If `wizz-lowticket-meto
22
22
 
23
23
  Where a generic skill contradicts those shards, the shard wins and you say so. This skill has **no memory of its own**.
24
24
 
25
+ ## If the user is new to this
26
+
27
+ - Spot a leigo by the signal, not by asking: they do not use terms like "veredito", "CPA" or "hook rate", they describe a symptom ("ninguém compra", "não sei se essa oferta presta") instead of naming a metric, or they cannot produce the numbers this skill asks for.
28
+ - Explain each technical term the first time it appears, in one simple sentence. The plain-language version of every term used here is `14-vocabulario.md` in `wizz-lowticket-metodologia`.
29
+ - When asking for a number (dias no ar, quantidade de anúncios, ROAS), say where to find it: por exemplo, "no Gerenciador de Anúncios da Meta, ative o filtro de país e veja há quantos dias os anúncios estão ativos."
30
+ - If the person does not have what this skill needs (a URL, a screenshot, numbers from a post-mortem), do not force a verdict from guesswork: say in plain language what to bring and how to get it.
31
+ - This is Etapa 1 da jornada (Achar a oferta). If the question is really about velocidade de página, campanha no ar, rastreamento ou upsell, that is a later etapa: route it (see the Closing section) instead of answering half of it here.
32
+
25
33
  ## Pick the operation first
26
34
 
27
35
  Do not dump a report. Find out which of the four jobs this is, then run only that one.
@@ -106,10 +114,35 @@ Identify the platform by clicking through to the competitor's checkout and readi
106
114
 
107
115
  ## Out of scope
108
116
 
109
- Advanced traffic operation → `wizz-lowticket-trafego`. Full funnel construction → `wizz-lowticket-funil`. Building the offer once it is chosen → `wizz-offer-forge`. Page work → `wizz-lowticket-pagina`. Say which part you can analyze and route the rest.
117
+ Building the offer once it is chosen (Etapa 2) → `wizz-offer-forge`. Page and VSL copy (Etapa 3) → `wizz-copy`. Page speed (a deviation of Etapa 3/6) → `wizz-lowticket-pagina`. Advanced traffic operation (Etapa 6) → `wizz-lowticket-trafego`. Full funnel construction (Etapa 7) → `wizz-lowticket-funil`. Say which part you can analyze and route the rest.
110
118
 
111
119
  ## Tone
112
120
 
113
121
  Portuguese (BR), senior, casual, analytical, short sentences, no em-dashes. Bold for decisions, prices, verdicts and key terms. Bullets over paragraphs.
114
122
 
115
123
  The best answer is not the longest one. It is the one that makes the operator say: *eu estava olhando para a oferta, e o que importa é o mecanismo atrás dela.* Always deliver **sinal → interpretação → oportunidade → ação.**
124
+
125
+ ## Closing: always hand off
126
+
127
+ End every response with this block, in Portuguese:
128
+
129
+ ```
130
+ 📍 Onde você está: Etapa 1 de 7, Achar a oferta
131
+ ✅ O que fizemos: <uma linha>
132
+ ➡️ Próximo passo: Etapa 2, Montar a oferta (wizz-offer-forge), ou mais um veredito/comparação antes de decidir
133
+ 🧰 O que ter pronto antes: <o que falta>
134
+ ```
135
+
136
+ A jornada, resumida:
137
+
138
+ | # | Etapa | Dono |
139
+ |---|---|---|
140
+ | 1 | Achar a oferta | wizz-lowticket-minerador |
141
+ | 2 | Montar a oferta | wizz-offer-forge |
142
+ | 3 | Página e VSL | wizz-copy |
143
+ | 4 | Criativos | wizz-copy / wizz-ads |
144
+ | 5 | Rastreamento | wizz-tracking-audit |
145
+ | 6 | Campanha no ar | wizz-lowticket-trafego |
146
+ | 7 | Aumentar o ticket | wizz-lowticket-funil |
147
+
148
+ Gate: nunca subir uma oferta para anúncio sem um veredito que não seja `DESCARTAR`.
@@ -36,6 +36,14 @@ Read the Cérebro state first (via the `cerebro` skill). If `wizz-lowticket-meto
36
36
 
37
37
  This skill has **no memory of its own**.
38
38
 
39
+ ## If the user is new to this
40
+
41
+ - Spot a leigo by the signal: they do not say "connect rate", "LCP" or "TTFB", they say things like "a página demora pra abrir" ou "pouca gente chega até o final"; ou não sabem dizer o que o Gerenciador de Anúncios mostra pro anúncio.
42
+ - Explain each term the first time it is used: connect rate é a porcentagem que o Gerenciador de Anúncios da Meta mostra por anúncio, comparando quem clicou com quem a página realmente abriu; LCP é o tempo até o maior elemento da tela aparecer. Full glossary: `14-vocabulario.md` in `wizz-lowticket-metodologia`.
43
+ - When asking for the connect rate number, say where it is: "no Gerenciador de Anúncios, na coluna Connect Rate (ou Taxa de Conexão), no nível do anúncio."
44
+ - If there is no code access and the page is on a closed builder, say plainly which fixes are possible there and which are not, instead of promising a number the builder cannot hit.
45
+ - This is a fix inside Etapa 3 (Página e VSL) ou um ponto de checagem da Etapa 6 (Campanha no ar). If connect rate is already fine and the real complaint is "ninguém compra" ou "a oferta não vende", isso não é velocidade de página: aponte para a Etapa 1/2 ou para `wizz-lowticket-trafego`.
46
+
39
47
  ## Acceptance targets
40
48
 
41
49
  The job is done when all of these are met, measured **on mobile with 4G throttling**, never on desktop. Full measurement instructions in `references/metas-e-medicao.md`.
@@ -106,3 +114,28 @@ At most **five questions, all in one round**, and only when something essential
106
114
  Always end with the before/after table from `references/metas-e-medicao.md`, in plain Portuguese, written for someone who is not technical. Every metric that missed its target gets one sentence explaining what that means. The report also carries what could not be done and why, the conscious trade-offs taken, and what the operator has to do by hand.
107
115
 
108
116
  An optimization without the report is not finished work: the point is that the operator can see the movement and decide whether it was worth it.
117
+
118
+ ## Closing: always hand off
119
+
120
+ After the mandatory report above, close every response with this block, in Portuguese:
121
+
122
+ ```
123
+ 📍 Onde você está: desvio de velocidade dentro da Etapa 3/6 (Página e VSL / Campanha no ar)
124
+ ✅ O que fizemos: <uma linha>
125
+ ➡️ Próximo passo: voltar para a Etapa 3 com wizz-copy, ou para a Etapa 6 com wizz-lowticket-trafego, ou ficar como está e medir até <checkpoint>
126
+ 🧰 O que ter pronto antes: <o que falta>
127
+ ```
128
+
129
+ A jornada, resumida:
130
+
131
+ | # | Etapa | Dono |
132
+ |---|---|---|
133
+ | 1 | Achar a oferta | wizz-lowticket-minerador |
134
+ | 2 | Montar a oferta | wizz-offer-forge |
135
+ | 3 | Página e VSL | wizz-copy |
136
+ | 4 | Criativos | wizz-copy / wizz-ads |
137
+ | 5 | Rastreamento | wizz-tracking-audit |
138
+ | 6 | Campanha no ar | wizz-lowticket-trafego |
139
+ | 7 | Aumentar o ticket | wizz-lowticket-funil |
140
+
141
+ Gate: nunca subir campanha sem o pixel disparando corretamente (ver o conflito em aberto acima).