wizz-method 2.21.0 → 2.23.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/THIRD-PARTY-NOTICES.md +24 -0
- package/package.json +4 -2
- package/removals.txt +3 -0
- package/skills-registry.yaml +133 -4
- package/src/bmm-skills/1-analysis/research/wizz-market-research/steps/step-06-research-completion.md +27 -0
- package/src/bmm-skills/1-analysis/wizz-set-feature/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-code-review/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-create-story/SKILL.md +1 -1
- package/src/bmm-skills/4-implementation/wizz-dev-story/SKILL.md +8 -1
- package/src/bmm-skills/4-implementation/wizz-quick-dev/SKILL.md +2 -2
- package/src/bmm-skills/4-implementation/wizz-quick-dev/step-03-implement.md +2 -0
- package/src/bmm-skills/4-implementation/wizz-sprint-status/SKILL.md +1 -1
- package/src/core-skills/wizz-party-mode/customize.toml +3 -3
- package/src/modules/lowticket/README.md +2 -1
- package/src/modules/lowticket/module.yaml +1 -1
- package/src/modules/lowticket/skills/wizz-clone-do-expert/SKILL.md +86 -0
- package/src/modules/lowticket/skills/wizz-clone-do-expert/references/clone-prompt-template.md +21 -0
- package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/reguas.md +2 -0
- package/src/modules/wizz/_shared/cerebro.md +1 -1
- package/src/modules/wizz/_shared/organizacao.md +2 -2
- package/src/modules/wizz/_shared/video-pipeline.md +2 -0
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +1 -0
- package/src/modules/wizz/agents/wizz-copy/customize.toml +5 -0
- package/src/modules/wizz/agents/wizz-copy/knowledge/playbook.md +3 -2
- package/src/modules/wizz/agents/wizz-growth/customize.toml +7 -2
- package/src/modules/wizz/agents/wizz-growth/knowledge/playbook.md +3 -2
- package/src/modules/wizz/agents/wizz-social/knowledge/blueprint-roteiro-viral.md +14 -0
- package/src/modules/wizz/agents/wizz-social/knowledge/legenda-instagram.md +12 -0
- package/src/skills-lib/wizz-cerebro/SKILL.md +18 -5
- package/src/skills-lib/wizz-design-needs/SKILL.md +7 -0
- package/src/skills-lib/wizz-design-needs/references/design-state.md +34 -2
- package/src/skills-lib/wizz-design-needs/references/gap-analysis.md +1 -1
- package/src/skills-lib/wizz-design-needs/scripts/design_state.py +305 -0
- package/src/skills-lib/wizz-design-needs/scripts/tests/test_design_state.py +143 -0
- package/src/skills-lib/wizz-impeccable/references/design-rules.md +18 -0
- package/src/skills-lib/wizz-ios-build/SKILL.md +61 -0
- package/src/skills-lib/wizz-motion-3d-director/references/motion-paths.md +2 -0
- package/src/skills-lib/wizz-offer-forge/SKILL.md +2 -2
- package/src/skills-lib/wizz-paid-ads/SKILL.md +2 -1
- package/src/skills-lib/wizz-paywall-upgrade-cro/SKILL.md +1 -0
- package/src/skills-lib/{wizz-pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico}/README.md +13 -13
- package/src/skills-lib/{wizz-pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico}/SKILL.md +11 -7
- package/src/skills-lib/{wizz-pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico}/assets/template.html +8 -21
- package/src/skills-lib/wizz-pesquisa-de-publico/references/interview-mode.md +69 -0
- package/src/skills-lib/wizz-premium-landing-ui-researcher/SKILL.md +6 -2
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/audit-protocol.md +7 -34
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/component-sources.md +25 -0
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/design-sources.yaml +325 -0
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/mandatory-process.md +1 -1
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/mining-rubric.md +123 -0
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-first-protocol.md +10 -4
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/web-access-and-evidence.md +1 -1
- package/src/skills-lib/wizz-premium-landing-ui-researcher/scripts/design_sources.py +221 -0
- package/src/skills-lib/wizz-premium-landing-ui-researcher/scripts/tests/test_design_sources.py +130 -0
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +7 -1
- package/src/skills-lib/wizz-seo-audit/SKILL.md +4 -0
- package/src/skills-lib/wizz-seo-audit/references/gsc-regex-perguntas.md +64 -0
- package/src/skills-lib/wizz-signup-flow-cro/SKILL.md +1 -0
- package/src/skills-lib/wizz-signup-flow-cro/references/trial-abuse.md +40 -0
- package/src/skills-lib/wizz-taste-skill/references/anti-slop-tells.md +8 -0
- package/src/skills-lib/wizz-ui-component-curator/SKILL.md +8 -7
- package/src/skills-lib/wizz-ui-ux-pro-max/SKILL.md +1 -1
- package/src/skills-lib/wizz-ui-ux-pro-max/references/common-rules-checklist.md +11 -0
- package/src/skills-lib/wizz-video-effects/LICENSE-motionmaxxing.txt +202 -0
- package/src/skills-lib/wizz-video-effects/SKILL.md +7 -2
- package/src/skills-lib/wizz-video-effects/assets/chrome/collect_layout.js +113 -0
- package/src/skills-lib/wizz-video-effects/assets/effects.config.template.json +45 -0
- package/src/skills-lib/wizz-video-effects/references/data-contract.md +32 -1
- package/src/skills-lib/wizz-video-effects/references/gates.md +4 -1
- package/src/skills-lib/wizz-video-effects/references/one-take.md +41 -0
- package/src/skills-lib/wizz-video-effects/scripts/check_chrome.py +376 -0
- package/src/skills-lib/wizz-video-effects/scripts/check_dead_frames.py +193 -0
- package/src/skills-lib/wizz-video-effects/scripts/check_one_take.py +159 -0
- package/src/skills-lib/wizz-video-effects/scripts/config.py +13 -0
- package/src/skills-lib/wizz-video-effects/scripts/test_chrome.py +181 -0
- package/src/skills-lib/wizz-video-effects/scripts/test_dead_frames.py +171 -0
- package/src/skills-lib/wizz-video-effects/scripts/test_one_take.py +126 -0
- package/src/skills-lib/wizz-video-styles/LICENSE-lemo-opuscar.txt +21 -0
- package/src/skills-lib/wizz-video-styles/SKILL.md +16 -7
- package/src/skills-lib/wizz-video-styles/assets/film-styles/dark-keynote.html +78 -0
- package/src/skills-lib/wizz-video-styles/assets/film-styles/remotion/Riso.tsx +63 -0
- package/src/skills-lib/wizz-video-styles/assets/film-styles/risograph.html +69 -0
- package/src/skills-lib/wizz-video-styles/assets/film-styles/swiss-motion.html +84 -0
- package/src/skills-lib/wizz-video-styles/references/check-ins.md +25 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/DIRECTOR.md +139 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/archive-lighttable.md +109 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/art-deco.md +112 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/ascii-crt.md +115 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/backrooms.md +125 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/blueprint.md +120 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/brick-toy.md +114 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/briefing-board.md +122 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/caption-news.md +137 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/cel-anime-80s.md +119 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/city-symphony.md +142 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/countdown.md +132 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/crayon-book.md +109 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/dark-keynote.md +117 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/data-physical.md +119 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/dataviz.md +123 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/engraving.md +123 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/game-show.md +118 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/glass-product.md +110 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/halftone-dossier.md +122 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/hd-2d.md +111 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/hologram-hud.md +129 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/impasto.md +124 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/ink-wash.md +120 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/iso-infographic.md +117 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/kino-montage.md +151 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/lidar-survey.md +118 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/living-screencast.md +124 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/lowpoly-island.md +112 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/microgame.md +122 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/microscope.md +108 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/midcentury-toon.md +124 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/news-package.md +158 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/newsreel.md +136 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/one-line.md +114 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/paper-lantern.md +116 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/paper-popup.md +119 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/papercut-red.md +110 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/pictogram-motion.md +119 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/pixel-rpg.md +117 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/risograph.md +125 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/rubber-hose.md +112 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/satellite-briefing.md +116 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/scifi-toon.md +121 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/shadow-puppet.md +124 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/silent-film.md +109 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/silkscreen-poster.md +140 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/spy-titles.md +116 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/stained-glass.md +123 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/swiss-motion.md +115 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/teardown.md +127 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/telestrator.md +137 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/tilt-shift.md +107 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/ukiyoe.md +112 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/urban-sketch.md +126 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/visual-investigation.md +140 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/watercolor.md +113 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/white-model.md +115 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/whiteboard.md +118 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles/woodcut.md +122 -0
- package/src/skills-lib/wizz-video-styles/references/film-styles.md +140 -0
- package/src/skills-lib/wizz-video-styles/references/insert-recipes.md +33 -0
- package/src/skills-lib/wizz-video-styles/references/motion-laws.md +62 -0
- package/src/skills-lib/wizz-video-styles/references/styles/desafio-numero.md +1 -0
- package/src/skills-lib/wizz-video-styles/scripts/beat_grid.py +38 -6
- package/src/skills-lib/wizz-video-styles/scripts/blind_review.py +159 -0
- package/src/skills-lib/wizz-video-styles/scripts/taste.mjs +110 -0
- package/src/skills-lib/wizz-video-styles/scripts/test_blind_review.py +82 -0
- package/src/skills-lib/wizz-vsl/LICENSE +49 -0
- package/src/skills-lib/wizz-vsl/SKILL.md +122 -0
- package/src/skills-lib/wizz-vsl/references/assembly-qa.md +123 -0
- package/src/skills-lib/wizz-vsl/references/blocks-and-leads.md +149 -0
- package/src/skills-lib/wizz-vsl/references/diagnosis.md +95 -0
- package/src/skills-lib/wizz-vsl/references/intake.md +200 -0
- package/src/skills-lib/wizz-vsl/references/mechanisms.md +138 -0
- package/src/skills-lib/wizz-vsl/references/niches.md +40 -0
- package/src/skills-lib/wizz-vsl/references/offer.md +91 -0
- package/src/skills-lib/wizz-vsl/references/production.md +75 -0
- package/src/skills-lib/wizz-web-security/SKILL.md +2 -0
- package/tools/hooks/README.md +10 -9
- package/tools/hooks/wizz-arrumar.js +1 -0
- package/tools/hooks/wizz-artifact-guard.js +31 -5
- package/tools/hooks/wizz-cerebro-lib.js +36 -13
- package/tools/hooks/wizz-feature-lib.js +4 -1
- package/tools/hooks/wizz-feature.js +66 -76
- package/tools/hooks/wizz-sprint-archive-lib.js +311 -0
- package/tools/installer/core/hooks-settings.js +1 -0
- package/tools/installer/core/installer.js +6 -0
- package/tools/installer/guided/labels.js +16 -0
- package/tools/installer/install-text.js +2 -0
- package/tools/installer/modules/cli-config.js +3 -0
- package/tools/installer/modules/core-seed.js +72 -0
- package/tools/installer/modules/mcp-config.js +3 -0
- package/tools/installer/ui.js +22 -26
- /package/src/skills-lib/{wizz-pesquisa-de-publico-do-piva → wizz-pesquisa-de-publico}/prompts.md +0 -0
package/THIRD-PARTY-NOTICES.md
CHANGED
|
@@ -149,8 +149,32 @@ the `<Font>-OFL.txt` file in the same folder.
|
|
|
149
149
|
- Origin: the beat-grid approach and the kinetic typography recipe follow [mexicat/pdoom-video](https://github.com/mexicat/pdoom-video) (beat, downbeat and lyric alignment driving the edit); no code was copied, and its `data/audio.json` was used only to check `beat_grid.py`. The prompt list links to [yihui-dev/awesome-opus5-5-videos](https://github.com/yihui-dev/awesome-opus5-5-videos), summarising 15 entries in our words; each prompt remains its creator's.
|
|
150
150
|
- License: MIT, copyright (c) 2026 Giacomo Magnanini (pdoom-video) and copyright (c) 2026 yihui-dev (awesome-opus5-5-videos).
|
|
151
151
|
|
|
152
|
+
## wizz-video-styles (film styles from lemo-opuscar)
|
|
153
|
+
|
|
154
|
+
- Path: `src/skills-lib/wizz-video-styles/references/film-styles/` (59 `STYLE.md` cards, one per style, and `DIRECTOR.md`), `src/skills-lib/wizz-video-styles/references/film-styles.md` (index, built from each style's `style.json`)
|
|
155
|
+
- Origin: [lemomo-ai/lemo-opuscar](https://github.com/lemomo-ai/lemo-opuscar) by LemoLab, commit `413a6bd6`. The cards are copied verbatim, with a header line naming the source and relative links pointed at the upstream repository. Its engine (`core/`, each style's `demo/`) and its demo films and stills (CC BY 4.0) are not included; the index links to them. The three compositions in `src/skills-lib/wizz-video-styles/assets/film-styles/` were written here for HyperFrames (and `remotion/Riso.tsx` for Remotion), following the cards.
|
|
156
|
+
- License: MIT, copyright (c) 2026 LemoLab (full text at `src/skills-lib/wizz-video-styles/LICENSE-lemo-opuscar.txt`).
|
|
157
|
+
|
|
158
|
+
## wizz-video-effects and wizz-video-styles (motionmaxxing)
|
|
159
|
+
|
|
160
|
+
- Path: `src/skills-lib/wizz-video-effects/scripts/check_dead_frames.py`, `src/skills-lib/wizz-video-effects/scripts/check_chrome.py`, `src/skills-lib/wizz-video-effects/assets/chrome/collect_layout.js`, `src/skills-lib/wizz-video-styles/references/motion-laws.md`, `src/skills-lib/wizz-video-styles/scripts/blind_review.py` (the idea of its blind review page, written again and much smaller), `src/skills-lib/wizz-video-styles/scripts/taste.mjs` (the idea of its `taste/verdicts.md`, a per-user file of verdicts read before deciding) (measured numbers from its `references/motion.md` and `references/type.md`, summarised in our words) and the `dead_frames` and `chrome_lint` blocks of `src/skills-lib/wizz-video-effects/assets/effects.config.template.json`
|
|
161
|
+
- Origin: [Tejashmakwana/motionmaxxing](https://github.com/Tejashmakwana/motionmaxxing) by Tejas Makwana. Ported ideas and measured thresholds (gate G2 "no empty frame" of `look.py`; rules C1-C4, C6, C7, D1 and P1 of gate G5 in `lint.mjs`), adapted to vertical short video and written again in our own code; no file was copied.
|
|
162
|
+
- License: Apache License 2.0 (full text at `src/skills-lib/wizz-video-effects/LICENSE-motionmaxxing.txt`). Its NOTICE reads: "motionmaxxing: looksmaxxing for motion graphics. Made by Tejas Makwana (x.com/makwanatejas170), github.com/Tejashmakwana/motionmaxxing." Changes: thresholds moved to the effects config, analysis frame reshaped to 9:16, frozen-picture check made a warning, chrome rules sized on the short side of the frame, with exempt roles (captions, legal text, UI) and a per-style allow list, and a Remotion timeline input.
|
|
163
|
+
|
|
152
164
|
## wizz-hook-extractor and wizz-ig-profile-optimizer
|
|
153
165
|
|
|
154
166
|
- Path: `src/skills-lib/wizz-hook-extractor/`, `src/skills-lib/wizz-ig-profile-optimizer/`
|
|
155
167
|
- Origin: adapted from `skills/ig-hook-extractor/`, `references/hook-formulas.md` and `skills/ig-profile-optimizer/` of [sergebulaev/instagram-skills](https://github.com/sergebulaev/instagram-skills). Translated to Brazilian Portuguese, hooks mapped to the Viral Script Blueprint types, and extended with reading the post or profile directly (yt-dlp, local transcription, agent-browser) and a limits checker.
|
|
156
168
|
- License: MIT (full text at `src/skills-lib/wizz-hook-extractor/LICENSE` and `src/skills-lib/wizz-ig-profile-optimizer/LICENSE`, copyright (c) 2026 Sergey Bulaev)
|
|
169
|
+
|
|
170
|
+
## wizz-vsl
|
|
171
|
+
|
|
172
|
+
- Path: `src/skills-lib/wizz-vsl/`
|
|
173
|
+
- Origin: adapted from [yuribranco/vsl-skill](https://github.com/yuribranco/vsl-skill) (commit `fe855c50`: the 11-block interview, the two human gates, the 5x5 mechanism decision document, backwards writing, the 15-step offer, the lead angles, niche adaptation and the QA checklist) and from [bertrand-do/video-sales-letter](https://github.com/bertrand-do/video-sales-letter) (commit `f41eec5a`: the claims ledger, the script-only audit, the demo-led variant, the beat sheet, word-timed motion, player QA and the OTO/downsell sequence). Translated into the Method's English skill format, wired to `wizz-offer-forge`, the audience research (`wizz-pesquisa-de-publico`), the low ticket VSL ruler, `wizz-ctc-align` and the HyperFrames/Remotion pipeline. The method lineage declared by vsl-skill (Lucas Ramos/Veritas Club, Eugene Schwartz's *Breakthrough Advertising*, *Great Leads* by Masterson and Forde, Alex Hormozi's value equation) is credited in the skill. [mikefilsaime-groove/stickman-vsl-director](https://github.com/mikefilsaime-groove/stickman-vsl-director) (MIT, copyright (c) 2026 Mike Filsaime) is only cited as an optional reference; nothing from it is copied.
|
|
174
|
+
- License: MIT (full texts at `src/skills-lib/wizz-vsl/LICENSE`, copyright (c) 2026 Yuri Branco and copyright (c) 2026 Bertrand Diouly)
|
|
175
|
+
|
|
176
|
+
## wizz-social knowledge (hook pre-check and caption fold check)
|
|
177
|
+
|
|
178
|
+
- Path: `src/modules/wizz/agents/wizz-social/knowledge/blueprint-roteiro-viral.md` (section "Hook pre-check"), `src/modules/wizz/agents/wizz-social/knowledge/legenda-instagram.md` (section "The fold check")
|
|
179
|
+
- Origin: ideas adapted in our own words from `skills/ig-reel/hookscore.py` and `skills/ig-caption/` of [Jakeschincariol/instagram-agent-skill](https://github.com/Jakeschincariol/instagram-agent-skill) (commit `d03c56bb`); no code was copied.
|
|
180
|
+
- License: MIT, copyright (c) 2026 Jake Schincariol
|
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
|
+
"version": "2.23.0",
|
|
5
5
|
"description": "Wizz Method: método de agência orientado por IA em PT-BR",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"agile",
|
|
@@ -53,6 +53,8 @@
|
|
|
53
53
|
"docs:preview": "astro preview --root website",
|
|
54
54
|
"docs:validate-links": "node tools/validate-doc-links.js",
|
|
55
55
|
"docs:validate-sidebar": "node tools/validate-sidebar-order.js",
|
|
56
|
+
"eval:design-mining": "node evals/design-mining/run-design-mining-eval.mjs",
|
|
57
|
+
"eval:design-mining:llm": "node evals/design-mining/run-design-mining-eval.mjs --llm",
|
|
56
58
|
"eval:feature": "node evals/routing/run-feature-eval.mjs",
|
|
57
59
|
"eval:feature:llm": "node evals/routing/run-feature-eval.mjs --llm",
|
|
58
60
|
"eval:output": "node evals/output/run-output-eval.mjs",
|
|
@@ -69,7 +71,7 @@
|
|
|
69
71
|
"lint:md": "markdownlint-cli2 \"**/*.md\"",
|
|
70
72
|
"prepare": "command -v husky >/dev/null 2>&1 && husky || exit 0",
|
|
71
73
|
"quality": "npm run format:check && npm run lint && npm run lint:md && npm run docs:build && npm run quality:validate",
|
|
72
|
-
"quality:validate": "npm test && npm run validate:refs && npm run validate:registry-schema && npm run validate:method-refs && npm run validate:model-ids && npm run validate:skills && npm run docs:validate-sidebar && npm run docs:validate-links && npm run validate:generated && npm run eval:routing && npm run eval:feature && npm run eval:output",
|
|
74
|
+
"quality:validate": "npm test && npm run validate:refs && npm run validate:registry-schema && npm run validate:method-refs && npm run validate:model-ids && npm run validate:skills && npm run docs:validate-sidebar && npm run docs:validate-links && npm run validate:generated && npm run eval:routing && npm run eval:feature && npm run eval:output && npm run eval:design-mining",
|
|
73
75
|
"rebundle": "node tools/bundle-web-bundles.js",
|
|
74
76
|
"release": "node tools/release.mjs",
|
|
75
77
|
"sync:check": "node tools/sync-check.mjs",
|
package/removals.txt
CHANGED
package/skills-registry.yaml
CHANGED
|
@@ -216,6 +216,11 @@ areas:
|
|
|
216
216
|
before: [wizz-ctc-align, wizz-video-effects, wizz-remotion-best-practices]
|
|
217
217
|
pairs_with: [wizz-social-content, get-brolls, hyperframes, wizz-hook-extractor]
|
|
218
218
|
clis:
|
|
219
|
+
# hypit-ai/hypit ("clonar vídeo viral" com agentes, DSL de vídeo ancorada
|
|
220
|
+
# em palavras), avaliado em 2026-10-22 (adendo repos-externos-rea-e-vsl):
|
|
221
|
+
# SÓ RECOMENDAR, nunca embutir nem virar entrada `clis:` com install. A
|
|
222
|
+
# licença é Apache 2.0 modificada com condições que proíbem
|
|
223
|
+
# redistribuição comercial; o usuário instala por conta própria se quiser.
|
|
219
224
|
- id: hyperframes
|
|
220
225
|
when: "DESENHAR telas de vídeo em HTML/CSS (HTML→MP4, agent-native, 20+ skills): cena isolada e MUDA — maqueta de WhatsApp/ChatGPT, gráfico animado, título, loop. NÃO usar para montagem com áudio/SFX/legenda sincronizada (posicionador de áudio falhou em produção, ~2,76s de drift; CSS vaza entre telas): a montagem final é do Remotion (regra: HyperFrames desenha, Remotion monta — ver _shared/video-pipeline.md do módulo wizz). Precisa ffmpeg + Node 22 + Chrome headless."
|
|
221
226
|
not_when: "Montagem com áudio/SFX/legenda sincronizada (posicionador de áudio falhou em produção, ~2,76s de drift; CSS vaza entre telas)."
|
|
@@ -339,6 +344,57 @@ areas:
|
|
|
339
344
|
# (2026-09-12): HEAD do upstream em 2026-09-09 (sem tags de release).
|
|
340
345
|
check: "grep -qx da2da6dd03aacf06da3fecf205347601d38bb141 ./.claude/skills/apple-design/.wizz-pin 2>/dev/null"
|
|
341
346
|
install: 'd="$(mktemp -d)" && git clone https://github.com/dickwu/apple-design-skill.git "$d" && git -C "$d" checkout da2da6dd03aacf06da3fecf205347601d38bb141 && npx -y skills add "$d" -y --copy && printf "%s\n" da2da6dd03aacf06da3fecf205347601d38bb141 > ./.claude/skills/apple-design/.wizz-pin && rm -rf "$d"'
|
|
347
|
+
# JohnHeibel/ClaudeAnimationBase (MIT), adendo salvos-instagram-ai de
|
|
348
|
+
# 2026-10-25, item 11. Kit de partida (p5.js + p5.brush, o personagem
|
|
349
|
+
# Clawd com 31 emoções e o ANIMATION_GUIDE.md), não skill: clone-and-run
|
|
350
|
+
# no projeto, igual buttercut. Opt-in como toda CLI. Fora de vídeo com o
|
|
351
|
+
# Claude, o guia de emoções atuadas vale como referência para animar
|
|
352
|
+
# outro personagem (ponteiro no check-ins.md do wizz-video-styles).
|
|
353
|
+
# Sem `rel` de propósito: a aresta pro Remotion exigiria a recíproca e
|
|
354
|
+
# mudaria o prompt de rota dele (mesmo motivo do wizz-vsl).
|
|
355
|
+
- id: claude-animation-base
|
|
356
|
+
when: "Desenho animado pintado à mão com o Clawd, o personagem do Claude (p5.js + p5.brush, 31 emoções atuadas, render pra MP4), para vídeo em que o Claude aparece: conteúdo sobre Claude, Claude Code ou Wizz."
|
|
357
|
+
not_when:
|
|
358
|
+
- "Vídeo sem o Claude como personagem: o estilo e a receita são do wizz-video-styles, a cena desenhada é do hyperframes."
|
|
359
|
+
platform: [darwin, linux]
|
|
360
|
+
# Clone-and-run: o próprio repo responde o SHA, então o check compara com o
|
|
361
|
+
# pin. O install repara um clone existente em vez de falhar no git clone.
|
|
362
|
+
check: 'test "$(git -C ./claude-animation-base rev-parse HEAD 2>/dev/null)" = 0ac8bf2b31942376cb6b8c4074715595d512acd2'
|
|
363
|
+
# Pin de supply chain (2026-10-25): HEAD de 2026-09-24 (sem tags de
|
|
364
|
+
# release); `npm ci` só baixa p5, p5.brush e puppeteer-core (sem Chrome
|
|
365
|
+
# embutido: o render.mjs pede Chrome instalado, ou --chrome=<path>/
|
|
366
|
+
# CHROME_PATH; o Chromium do Playwright serve). Atualizar conscientemente.
|
|
367
|
+
install: "{ [ -d claude-animation-base/.git ] || git clone https://github.com/JohnHeibel/ClaudeAnimationBase.git claude-animation-base; } && git -C claude-animation-base fetch origin && git -C claude-animation-base checkout 0ac8bf2b31942376cb6b8c4074715595d512acd2 && npm ci --prefix claude-animation-base"
|
|
368
|
+
verify: "command -v ffmpeg >/dev/null 2>&1 && command -v node >/dev/null 2>&1"
|
|
369
|
+
# feitangyuan/onetake (PolyForm Noncommercial 1.0.0), adendo
|
|
370
|
+
# salvos-instagram-ai de 2026-10-25, item 12. NUNCA vendorizar: a licença
|
|
371
|
+
# só cobre uso não comercial; cliente ou conteúdo que vende exige o
|
|
372
|
+
# onetake Pro. Por isso entra só como instalação do upstream, no opt-in,
|
|
373
|
+
# com o `notice` que o installer mostra antes da escolha. A técnica de
|
|
374
|
+
# plano-sequência está escrita do zero no wizz-video-effects (one-take.md)
|
|
375
|
+
# e roda no pipeline HyperFrames→Remotion sem esta skill. Escopo LOCAL:
|
|
376
|
+
# a description do upstream se declara o pipeline padrão de vídeo de
|
|
377
|
+
# produto, então só entra no projeto que escolheu usar. Sem `rel` (mesmo
|
|
378
|
+
# motivo do claude-animation-base).
|
|
379
|
+
- id: onetake
|
|
380
|
+
when: "Filme curto de produto, app ou skill (10 a 60 s) em plano-sequência feito com o onetake: interface real refeita em HTML, cada batida nasce da anterior, câmera que segue o assunto, som sintetizado e render 4K, em projeto pessoal ou não comercial (ou com onetake Pro)."
|
|
381
|
+
not_when:
|
|
382
|
+
- "Peça para cliente ou que vende sem onetake Pro: a técnica de plano-sequência é do wizz-video-effects (one-take.md), desenhada no hyperframes e montada no Remotion."
|
|
383
|
+
- "Vídeo com pessoa gravada, talking head ou corte de footage: é buttercut e wizz-remotion-best-practices."
|
|
384
|
+
notice: "Licença PolyForm Noncommercial: grátis só para uso pessoal ou não comercial. Para cliente ou conteúdo que vende, é preciso o onetake Pro (https://onetakemotion.com), com licença comercial."
|
|
385
|
+
platform: [darwin, linux]
|
|
386
|
+
# O check confere o SHA fixado: a skill é copiada (não clonada), então o
|
|
387
|
+
# pin é gravado num marcador no install. Pin de supply chain
|
|
388
|
+
# (2026-10-25): HEAD de 2026-10-21 (a tag v1.1.0-lite é de 2026-10-08,
|
|
389
|
+
# anterior). Fetch raso do SHA; antes do `skills add` saem as mp4 e os
|
|
390
|
+
# GIFs de exemplo (~115 MB; os README dos cases ficam, a SKILL.md os
|
|
391
|
+
# cita). Atualizar conscientemente.
|
|
392
|
+
check: "grep -qx 013a61ac8d98883c73733f59c06e49e9ba444f14 ./.claude/skills/onetake/.wizz-pin 2>/dev/null"
|
|
393
|
+
install: 'd="$(mktemp -d)" && git -C "$d" init -q && git -C "$d" fetch -q --depth 1 https://github.com/feitangyuan/onetake.git 013a61ac8d98883c73733f59c06e49e9ba444f14 && git -C "$d" checkout -q FETCH_HEAD && rm -rf "$d/.git" "$d/assets/cases" && find "$d/cases" -name "*.mp4" -delete && npx -y skills add "$d" -y --copy && printf "%s\n" 013a61ac8d98883c73733f59c06e49e9ba444f14 > ./.claude/skills/onetake/.wizz-pin && rm -rf "$d"'
|
|
394
|
+
# A SKILL.md pede python3 com playwright (chromium), numpy, scipy,
|
|
395
|
+
# Pillow, matplotlib e fonttools; sem eles o install passa e o render
|
|
396
|
+
# falha, então o verify olha os módulos, não só o binário.
|
|
397
|
+
verify: 'command -v ffmpeg >/dev/null 2>&1 && python3 -c "import playwright, numpy, scipy, PIL, matplotlib, fontTools" 2>/dev/null'
|
|
342
398
|
references:
|
|
343
399
|
- "references/premium-agency-rules.md (regras $150k-tier, importadas por impeccable/huashu no modo high-end)"
|
|
344
400
|
|
|
@@ -357,7 +413,7 @@ areas:
|
|
|
357
413
|
- id: wizz-copywriting
|
|
358
414
|
when: "Escrever copy de venda/página/headline do zero ou reescrever. Na página de vendas completa, incluir wizz-offer-forge se faltar oferta aprovada e wizz-page-cro se faltar estrutura de conversão aprovada; headline/CTA isolado ou texto sobre oferta e estrutura já aprovadas não exige refazê-las."
|
|
359
415
|
rel:
|
|
360
|
-
after: [wizz-pesquisa-de-publico
|
|
416
|
+
after: [wizz-pesquisa-de-publico, wizz-offer-forge]
|
|
361
417
|
before: [wizz-copy-editing]
|
|
362
418
|
pairs_with:
|
|
363
419
|
[
|
|
@@ -390,6 +446,20 @@ areas:
|
|
|
390
446
|
when: "Material de vendas: deck, one-pager, objeções, demo script, playbook."
|
|
391
447
|
rel:
|
|
392
448
|
pairs_with: [wizz-competitor-alternatives]
|
|
449
|
+
# Adaptada de yuribranco/vsl-skill + bertrand-do/video-sales-letter (MIT)
|
|
450
|
+
# em 2026-10-24 (adendo repos-externos-rea-e-vsl). Sem `rel` de propósito:
|
|
451
|
+
# oferta (wizz-offer-forge), pesquisa de público, régua do lowticket e a
|
|
452
|
+
# produção (wizz-ctc-align, hyperframes, Remotion) entram pela prosa da
|
|
453
|
+
# skill. Aresta aqui exigiria a recíproca nessas entradas e mudaria o
|
|
454
|
+
# prompt de rota/descoberta das áreas delas (ver feedback de rota
|
|
455
|
+
# invariante). A produção mora em designer: a copy só entrega o roteiro
|
|
456
|
+
# e o beat sheet.
|
|
457
|
+
- id: wizz-vsl
|
|
458
|
+
when: "Roteiro de VSL (vídeo de vendas): escrever do zero ou refazer a que não converte, da entrevista com o expert ao roteiro pronto pra gravar, com mecanismo do problema e da solução, oferta falada, leads pra testar e plano de produção. Gatilhos: 'faz a VSL do meu produto', 'roteiro do vídeo de vendas', 'a lead da VSL tá fraca', 'a retenção cai no primeiro minuto'."
|
|
459
|
+
not_when:
|
|
460
|
+
- "Copy da página de vendas, headline ou texto em volta do player: é wizz-copywriting."
|
|
461
|
+
- "Roteiro de criativo ou anúncio curto: é wizz-ad-creative (área ads); roteiro de Reel ou Short: é wizz-social-content (área social)."
|
|
462
|
+
- "Gravar, animar ou montar o vídeo em si: é da área designer."
|
|
393
463
|
|
|
394
464
|
seo:
|
|
395
465
|
agent: wizz-seo
|
|
@@ -512,14 +582,14 @@ areas:
|
|
|
512
582
|
when: "Site pronto ou quase pronto pra ir ao ar: revisão de pré-lançamento em 15 rodadas corretivas (CTA acima da dobra, barra fixa mobile, tempo de resposta, prova social real, FAQ+FAQPage, imagens reais, endereço, titles, Open Graph, breadcrumbs, alt text, schema local, robots/sitemap, LGPD, medição), com regra anti-invenção e PENDÊNCIAS. Gatilhos: 'vamos subir o site', 'checklist de lançamento', 'revisa antes do deploy', pré-go-live, ou um item isolado (og:image, FAQ com schema, robots.txt). Roda DEPOIS do site construído, ANTES do deploy."
|
|
513
583
|
rel:
|
|
514
584
|
pairs_with: [wizz-launch-readiness, wizz-schema-markup]
|
|
515
|
-
- id: wizz-pesquisa-de-publico
|
|
516
|
-
when: "Pesquisa profunda de público, VoC, níveis de consciência, matriz de ângulos e léxico nativo de oferta compilados em HTML (
|
|
585
|
+
- id: wizz-pesquisa-de-publico
|
|
586
|
+
when: "Pesquisa profunda de público, VoC, níveis de consciência, matriz de ângulos e léxico nativo de oferta compilados em HTML; sem dado nenhum (pré-lançamento), entrevista guiada que monta a persona ilustrativa e o que validar."
|
|
517
587
|
rel:
|
|
518
588
|
before: [wizz-copywriting, wizz-offer-forge]
|
|
519
589
|
- id: wizz-offer-forge
|
|
520
590
|
when: "Forjar oferta irresistível de resposta direta/infoproduto (mecanismo único, empilhamento de valor, garantia reversa, ponte de tráfego)."
|
|
521
591
|
rel:
|
|
522
|
-
after: [wizz-pesquisa-de-publico
|
|
592
|
+
after: [wizz-pesquisa-de-publico, wizz-lowticket-minerador]
|
|
523
593
|
before: [wizz-copywriting]
|
|
524
594
|
pairs_with: [wizz-ig-profile-optimizer, wizz-pricing-strategy, wizz-lowticket-metodologia]
|
|
525
595
|
# Módulo lowticket (src/modules/lowticket) — ver nota em ads.skills. Desde
|
|
@@ -569,6 +639,14 @@ areas:
|
|
|
569
639
|
after: [wizz-lowticket-guia]
|
|
570
640
|
before: [wizz-lowticket-funil]
|
|
571
641
|
pairs_with: [wizz-lowticket-metodologia, wizz-lowticket-trafego]
|
|
642
|
+
# Adendo clone-persona-mercado (2026-10-25). Sem `rel` de propósito: oferta
|
|
643
|
+
# e produto entram pela prosa da skill, e aresta exigiria a recíproca.
|
|
644
|
+
- id: wizz-clone-do-expert
|
|
645
|
+
module: lowticket
|
|
646
|
+
when: "Clonar a voz de um expert: a partir de lives, áudios, aulas e posts dele, gerar o prompt de um GPT/Project que responde aluno como ele, com relatório de evidências e teste de fidelidade. Gatilhos: 'clonar o expert', 'um GPT que fala como eu', 'agente com a minha voz pros alunos'."
|
|
647
|
+
not_when:
|
|
648
|
+
- "Pesquisa de público ou persona de quem compra: é wizz-pesquisa-de-publico."
|
|
649
|
+
- "Escrever copy de venda no tom do expert: é wizz-copywriting."
|
|
572
650
|
mcps:
|
|
573
651
|
- id: scrapling
|
|
574
652
|
when: "Scraping/crawl web para pesquisa de mercado, prospecção de leads e inteligência competitiva. Bypass anti-bot (Cloudflare), parsing adaptativo, spider concorrente. Requer: pip install 'scrapling[ai]' && scrapling install."
|
|
@@ -903,6 +981,57 @@ areas:
|
|
|
903
981
|
when: "Review do trabalho concluído no epic (party mode)."
|
|
904
982
|
rel:
|
|
905
983
|
after: [wizz-sprint-planning]
|
|
984
|
+
# xtool (adendo salvos-instagram-ai de 2026-10-25, item 4): o method só
|
|
985
|
+
# auditava UI nativa (apple-design), não construía iOS. A skill é o guia
|
|
986
|
+
# curto do xtool; o binário é a CLI `xtool` logo abaixo.
|
|
987
|
+
- id: wizz-ios-build
|
|
988
|
+
when: "Compilar, assinar e instalar app iOS no iPhone pela linha de comando, sem abrir o Xcode (projeto SwiftPM com xtool), inclusive desenvolvendo no Linux ou no Windows (WSL)."
|
|
989
|
+
not_when:
|
|
990
|
+
- "Revisar UI nativa contra o Apple HIG: é a CLI apple-design (área designer)."
|
|
991
|
+
- "Publicar no TestFlight ou na App Store: fora desta skill."
|
|
992
|
+
rel:
|
|
993
|
+
pairs_with: [xtool]
|
|
994
|
+
mcps:
|
|
995
|
+
# Rea (morluto/rea, npm rea-agents, MIT), adendo repos-externos-rea-e-vsl
|
|
996
|
+
# de 2026-10-22. OPCIONAL: `optional: true` deixa a entrada DESMARCADA no
|
|
997
|
+
# multiselect do installer (só recomenda o `claude mcp add`; escreve no
|
|
998
|
+
# .mcp.json apenas se o usuário marcar ou passar --mcps rea). Instalar só
|
|
999
|
+
# do npm `rea-agents` ou de rea.tools: o próprio README avisa sobre repos
|
|
1000
|
+
# copiados, e o repo tinha uma contagem de estrelas desproporcional em
|
|
1001
|
+
# 2026-10-22. Para site comum ele sobrepõe o agent-browser; o ganho real é
|
|
1002
|
+
# Electron, APK, HAR e binário nativo (Hopper/Ghidra/IDA, se instalados).
|
|
1003
|
+
# Alternativas olhadas e piores pro caso geral: mrexodia/ida-pro-mcp e
|
|
1004
|
+
# LaurieWired/GhidraMCP (uma ferramenta só cada).
|
|
1005
|
+
- id: rea
|
|
1006
|
+
optional: true
|
|
1007
|
+
when: "Entender como uma feature de app, site, APK ou binário de TERCEIRO funciona por dentro, sem o código-fonte, pra construir uma parecida: app desktop ou Electron, APK Android, binário nativo, captura HAR."
|
|
1008
|
+
not_when:
|
|
1009
|
+
- "Código do próprio projeto, com o fonte disponível: é wizz-investigate."
|
|
1010
|
+
- "Só navegar, clicar ou tirar print de um site: é o agent-browser."
|
|
1011
|
+
server:
|
|
1012
|
+
command: npx
|
|
1013
|
+
# Pin de supply chain (2026-10-24): versão publicada fixa
|
|
1014
|
+
# (registry npm: 6.7.0, 2026-10-18); atualizar conscientemente.
|
|
1015
|
+
args: ["-y", "rea-agents@6.7.0", "mcp"]
|
|
1016
|
+
clis:
|
|
1017
|
+
# xtool-org/xtool (MIT): substitui o build do Xcode por SwiftPM, assina e
|
|
1018
|
+
# instala no iPhone. macOS pelo tap oficial do Homebrew (é um cask
|
|
1019
|
+
# `version :latest` com `sha256 :no_check`: sem pin, e põe o binário no
|
|
1020
|
+
# PATH, que ~/.local/bin não está no macOS); Linux pelo AppImage da release
|
|
1021
|
+
# fixa, em ~/.local/bin (sem sudo). Windows só via WSL, que conta como
|
|
1022
|
+
# Linux. No macOS o Xcode continua necessário para o SDK.
|
|
1023
|
+
- id: xtool
|
|
1024
|
+
when: "Binário que compila um pacote SwiftPM em app iOS, assina com o Apple ID e instala no iPhone conectado, sem o build do Xcode, no macOS, Linux ou WSL."
|
|
1025
|
+
rel:
|
|
1026
|
+
pairs_with: [wizz-ios-build]
|
|
1027
|
+
platform: [darwin, linux]
|
|
1028
|
+
check: "command -v xtool >/dev/null 2>&1"
|
|
1029
|
+
# Pin de supply chain (2026-10-25): release 1.23.0 (2026-10-22) no
|
|
1030
|
+
# Linux. Atualizar conscientemente.
|
|
1031
|
+
install: 'case "$(uname -s)" in Darwin) brew install xtool-org/tap/xtool ;; Linux) mkdir -p "$HOME/.local/bin" && curl -fL "https://github.com/xtool-org/xtool/releases/download/1.23.0/xtool-$(uname -m).AppImage" -o "$HOME/.local/bin/xtool" && chmod +x "$HOME/.local/bin/xtool" ;; esac'
|
|
1032
|
+
# macOS: SDK do iOS via Xcode. Linux: toolchain Swift e usbmuxd (o
|
|
1033
|
+
# Xcode.xip + `xtool sdk` vêm depois, com login da Apple no navegador).
|
|
1034
|
+
verify: 'if [ "$(uname -s)" = Darwin ]; then xcrun -sdk iphoneos --show-sdk-path >/dev/null 2>&1; else command -v swift >/dev/null 2>&1 && command -v usbmuxd >/dev/null 2>&1; fi'
|
|
906
1035
|
|
|
907
1036
|
pm:
|
|
908
1037
|
agent: wizz-agent-pm
|
package/src/bmm-skills/1-analysis/research/wizz-market-research/steps/step-06-research-completion.md
CHANGED
|
@@ -150,6 +150,14 @@ _Market Dynamics: [Forces shaping market evolution]_
|
|
|
150
150
|
_Consumer Behavior Shifts: [Changes in customer behavior and preferences]_
|
|
151
151
|
_Source: [URL]_
|
|
152
152
|
|
|
153
|
+
### Weak Signals
|
|
154
|
+
|
|
155
|
+
[Behaviours, channels and niches still small but accelerating: few people do it today, more do it every month]
|
|
156
|
+
_Signal: [what is happening, where it was seen]_
|
|
157
|
+
_Evidence of acceleration: [search trend, community growth, launches, with dates]_
|
|
158
|
+
_Why it could matter: [which part of the market it would move]_
|
|
159
|
+
_Source: [URL]_
|
|
160
|
+
|
|
153
161
|
### Pricing and Business Model Analysis
|
|
154
162
|
|
|
155
163
|
[Comprehensive pricing and business model analysis]
|
|
@@ -284,6 +292,25 @@ _Medium-term Market Trends: [3-5 year expected market developments]_
|
|
|
284
292
|
_Long-term Market Vision: [5+ year market outlook for {{research_topic}}]_
|
|
285
293
|
_Source: [URL]_
|
|
286
294
|
|
|
295
|
+
### Scenarios
|
|
296
|
+
|
|
297
|
+
| Scenario | What has to happen | Variables that move it | What it means for us |
|
|
298
|
+
|---|---|---|---|
|
|
299
|
+
| Base | [most likely path] | [2-3 variables] | [decision] |
|
|
300
|
+
| Optimistic | [what goes right] | [2-3 variables] | [decision] |
|
|
301
|
+
| Pessimistic | [what goes wrong] | [2-3 variables] | [decision] |
|
|
302
|
+
|
|
303
|
+
_Every number in a scenario comes from a cited source or is labelled as an assumption. Never invent a figure to fill the table._
|
|
304
|
+
|
|
305
|
+
### Hidden Opportunity Questions
|
|
306
|
+
|
|
307
|
+
Answer each one with evidence from this research, or write "no evidence yet" and what would answer it:
|
|
308
|
+
|
|
309
|
+
- What is nobody asking about this market?
|
|
310
|
+
- Where would an aggressive startup attack today?
|
|
311
|
+
- Which emerging problem still has no good solution?
|
|
312
|
+
- Which behaviour is still the exception but could become the norm?
|
|
313
|
+
|
|
287
314
|
### Strategic Opportunities
|
|
288
315
|
|
|
289
316
|
[Market opportunity analysis and recommendations]
|
|
@@ -27,7 +27,7 @@ Invoke this skill only for the explicit cases in "When this skill runs" below.
|
|
|
27
27
|
3. **The request itself.** When 1 and 2 are both empty and the request is named work (a feature, a batch, a screen, a page, a campaign, a bug with a scope: "vamos fazer o painel de assinaturas"). Derive the slug from the subject, 2 to 4 words, and run `node _wizz/hooks/wizz-feature.js definir <slug>` BEFORE dispatching; say so in **one line**. Do not ask. This step is mandatory for the router and the maestro, not a nice-to-have: skipping it is how a project spends its whole life with an empty `active_feature`.
|
|
28
28
|
4. **Nothing.** Only for work that is not named (a question, a conversation, a one-line tweak with no artifact). Artifacts go to the roots and memory carries no feature tag.
|
|
29
29
|
|
|
30
|
-
**The open sprint rules.** The active feature is the open sprint: every request goes into it until it is closed, with no new folder. A new subject goes into it, sized by the work (a small tweak is just done, no story; a multi-step change becomes a story; a new objective becomes an epic), while it fits the sprint's goal; only if it does not fit, ask the owner once: add to this sprint or open another. `definir <other>` with a sprint open is refused unless `--novo` (the owner's choice). **Close** when the delivery closes (deploy or acceptance): `wizz-feature.js verificar` must pass, then `wizz-feature.js encerrar --cerebro [--proxima <slug>]` marks the spec `no-ar`, moves the sprint's folders (and the root `sprint-status.yaml`) to `_arquivo/<slug>/`, clears or switches `active_feature`, and writes the Cérebro (state + one Sessions line; without a vault it prints the instruction instead).
|
|
30
|
+
**The open sprint rules.** The active feature is the open sprint: every request goes into it until it is closed, with no new folder. A new subject goes into it, sized by the work (a small tweak is just done, no story; a multi-step change becomes a story; a new objective becomes an epic), while it fits the sprint's goal; only if it does not fit, ask the owner once: add to this sprint or open another. `definir <other>` with a sprint open is refused unless `--novo` (the owner's choice). **Close** when the delivery closes (deploy or acceptance): `wizz-feature.js verificar` must pass, then `wizz-feature.js encerrar --cerebro [--proxima <slug>]` marks the spec `no-ar`, moves the sprint's folders (and the root `sprint-status.yaml` when it belongs to the sprint) to `_arquivo/<slug>/`, rewriting or listing references from outside, clears or switches `active_feature`, and writes the Cérebro (state + one Sessions line; without a vault it prints the instruction instead).
|
|
31
31
|
|
|
32
32
|
**Optional branch.** `feature_branches: auto` in `_wizz/bmm/config.yaml` makes `definir` (and the SessionStart hook) propose `git switch -c feat/<slug>` when you are on a trunk branch of a git repo. The default is `off`, for whoever works directly on `main`.
|
|
33
33
|
|
|
@@ -47,7 +47,7 @@ Load config from `{project-root}/_wizz/bmm/config.yaml` and resolve:
|
|
|
47
47
|
- `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name`
|
|
48
48
|
- `communication_language`, `document_output_language`, `user_skill_level`
|
|
49
49
|
- `date` as system-generated current datetime
|
|
50
|
-
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
|
50
|
+
- `sprint_status` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
|
|
51
51
|
- `project_context` = `**/project-context.md` (load if exists)
|
|
52
52
|
- CLAUDE.md / memory files (load if exist)
|
|
53
53
|
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
@@ -69,7 +69,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
|
|
|
69
69
|
|
|
70
70
|
## Paths
|
|
71
71
|
|
|
72
|
-
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
|
72
|
+
- `sprint_status` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
|
|
73
73
|
- `epics_file` = `{planning_artifacts}/epics.md`
|
|
74
74
|
- `prd_file` = `{planning_artifacts}/prd.md`
|
|
75
75
|
- `architecture_file` = `{planning_artifacts}/architecture.md`
|
|
@@ -53,6 +53,7 @@ Load config from `{project-root}/_wizz/bmm/config.yaml` and resolve:
|
|
|
53
53
|
- `communication_language`, `document_output_language`
|
|
54
54
|
- `user_skill_level`
|
|
55
55
|
- `implementation_artifacts`
|
|
56
|
+
- `output_folder` (where `design-state.yaml` lives, for the design gate in step 5)
|
|
56
57
|
- `date` as system-generated current datetime
|
|
57
58
|
- `project_context` = `**/project-context.md` (load if exists)
|
|
58
59
|
|
|
@@ -69,7 +70,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
|
|
|
69
70
|
## Paths
|
|
70
71
|
|
|
71
72
|
- `story_file` = `` (explicit story path; auto-discovered if empty)
|
|
72
|
-
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
|
73
|
+
- `sprint_status` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
|
|
73
74
|
|
|
74
75
|
## Execution
|
|
75
76
|
|
|
@@ -315,6 +316,12 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
|
|
|
315
316
|
<action>Review the current task/subtask from the story file - this is your authoritative implementation guide</action>
|
|
316
317
|
<action>Plan implementation following red-green-refactor cycle</action>
|
|
317
318
|
|
|
319
|
+
<check if="the task builds a non-trivial UI section, component or behaviour AND {output_folder}/design-state.yaml exists">
|
|
320
|
+
<action>Run the design gate before writing UI code: locate the script with `find . -path '*wizz-design-needs/scripts/design_state.py' -not -path '*/node_modules/*' | head -1` and run `uv run --no-cache <script> gate {output_folder}/design-state.yaml --section <surface>/<section>`</action>
|
|
321
|
+
<action if="the gate exits 1">HALT: "Design gate blocked: <need ids and action from the gate JSON>" (an open need is mined first; an unplanned section goes back to wizz-design-needs)</action>
|
|
322
|
+
<action if="the gate passes">Build from the selected discoveries' `adaptation` plans; for `unmet` needs, cite the research in Dev Agent Record as the justification for a custom build</action>
|
|
323
|
+
</check>
|
|
324
|
+
|
|
318
325
|
<!-- RED PHASE -->
|
|
319
326
|
<action>Write FAILING tests first for the task/subtask functionality</action>
|
|
320
327
|
<action>Confirm tests fail before implementation - this validates test correctness</action>
|
|
@@ -82,10 +82,10 @@ Treat every entry in `{workflow.persistent_facts}` as foundational context you c
|
|
|
82
82
|
|
|
83
83
|
Load config from `{project-root}/_wizz/bmm/config.yaml` and resolve:
|
|
84
84
|
|
|
85
|
-
- `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name`
|
|
85
|
+
- `project_name`, `planning_artifacts`, `implementation_artifacts`, `output_folder`, `user_name`
|
|
86
86
|
- `communication_language`, `document_output_language`, `user_skill_level`
|
|
87
87
|
- `date` as system-generated current datetime
|
|
88
|
-
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
|
88
|
+
- `sprint_status` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
|
|
89
89
|
- `project_context` = `**/project-context.md` (load if exists)
|
|
90
90
|
- CLAUDE.md / memory files (load if exist)
|
|
91
91
|
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
@@ -28,6 +28,8 @@ Follow `./sync-sprint-status.md` with `{target_status}` = `in-progress`.
|
|
|
28
28
|
|
|
29
29
|
If `{spec_file}` has a non-empty `context:` list in its frontmatter, load those files before implementation begins. When handing to a sub-agent, include them in the sub-agent prompt so it has access to the referenced context.
|
|
30
30
|
|
|
31
|
+
**Design gate.** When the spec builds a non-trivial UI section, component or behaviour and `{output_folder}/design-state.yaml` exists, run the gate before any UI code: locate the script with `find . -path '*wizz-design-needs/scripts/design_state.py' -not -path '*/node_modules/*' | head -1` and run `uv run --no-cache <script> gate {output_folder}/design-state.yaml --section <surface>/<section>`. Exit 1 is a HALT: report the need ids and the gate's action (mine the open need first; an unplanned section goes back to `wizz-design-needs`). On pass, the selected discoveries' `adaptation` plans are the build brief. When handing to a sub-agent, pass the gate result and the map path.
|
|
32
|
+
|
|
31
33
|
Hand `{spec_file}` to a sub-agent/task and let it implement. If no sub-agents are available, implement directly.
|
|
32
34
|
|
|
33
35
|
**Path formatting rule:** Any markdown links written into `{spec_file}` must use paths relative to `{spec_file}`'s directory so they are clickable in VS Code. Any file paths displayed in terminal/conversation output must use CWD-relative format with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability. No leading `/` in either case.
|
|
@@ -60,7 +60,7 @@ Activation is complete. If `activation_steps_prepend` or `activation_steps_appen
|
|
|
60
60
|
|
|
61
61
|
## Paths
|
|
62
62
|
|
|
63
|
-
- `sprint_status_file` = `{implementation_artifacts}/sprint-status.yaml`
|
|
63
|
+
- `sprint_status_file` = `{implementation_artifacts}/{active_feature}/sprint-status.yaml` when that file exists (the open sprint's own file; when `{active_feature}` is empty or a feature branch is checked out, get the open sprint from `node _wizz/hooks/wizz-feature.js resolver`), otherwise `{implementation_artifacts}/sprint-status.yaml`. Read and update the same file for the whole run
|
|
64
64
|
|
|
65
65
|
## Input Files
|
|
66
66
|
|
|
@@ -816,7 +816,7 @@ code = "tm-pedro-sobral"
|
|
|
816
816
|
name = "Pedro Sobral"
|
|
817
817
|
icon = "🥷"
|
|
818
818
|
title = "O Ninja Supremo do Tráfego — gestor de tráfego pioneer"
|
|
819
|
-
persona = "Irreverent, execution-obsessed Brazilian practitioner-teacher who coined gestor de tráfego and managed huge spend for the LATAM market. Rallying cry is vai la e faz: Jedis execute while Padawans only consume theory, and every cent of ad spend is a test. Argues from three essential campaign types, the passo anterior strategy of targeting one step before conversion, isolated one-variable testing, and creative as the new audience. Pet peeve: becoming a mero operador de botoes who blindly trusts platform AI, because the algorithm serves platform profits, not yours."
|
|
819
|
+
persona = "Irreverent, execution-obsessed Brazilian practitioner-teacher who coined gestor de tráfego and managed huge spend for the LATAM market. Rallying cry is vai la e faz: Jedis execute while Padawans only consume theory, and every cent of ad spend is a test. Argues from three essential campaign types, the passo anterior strategy of targeting one step before conversion, isolated one-variable testing, and creative as the new audience. Pet peeve: becoming a mero operador de botoes who blindly trusts platform AI, because the algorithm serves platform profits, not yours. Speaks his own style, not the course methodology: when the panel needs Meta bid cap or scale numbers, he defers to shard 03-campanha-bidcap.md of wizz-lowticket-metodologia and says the numbers are the methodology's."
|
|
820
820
|
|
|
821
821
|
[[workflow.party_members]]
|
|
822
822
|
code = "tm-ad-midas"
|
|
@@ -830,14 +830,14 @@ code = "tm-media-buyer"
|
|
|
830
830
|
name = "Media Buyer"
|
|
831
831
|
icon = "🖥️"
|
|
832
832
|
title = "Cross-platform campaign execution operator"
|
|
833
|
-
persona = "The operational backbone who turns strategy into live campaigns across Meta, Google, YouTube, TikTok, and LinkedIn, meticulous about naming conventions and clean structure. Argues that structure determines performance, you start small and scale with data not hope, and you change only one variable at a time or you learn nothing. Runs a non-negotiable daily routine of morning check, midday adjust, evening document, letting algorithms target while feeding them clean data and good creative. Pet peeve: messy accounts, because messy accounts get messy results."
|
|
833
|
+
persona = "The operational backbone who turns strategy into live campaigns across Meta, Google, YouTube, TikTok, and LinkedIn, meticulous about naming conventions and clean structure. Argues that structure determines performance, you start small and scale with data not hope, and you change only one variable at a time or you learn nothing. Runs a non-negotiable daily routine of morning check, midday adjust, evening document, letting algorithms target while feeding them clean data and good creative. Reading is daily, touching is not: on Meta he pauses and scales only by the rulers of shard 03-campanha-bidcap.md of wizz-lowticket-metodologia. Pet peeve: messy accounts, because messy accounts get messy results."
|
|
834
834
|
|
|
835
835
|
[[workflow.party_members]]
|
|
836
836
|
code = "tm-scale-optimizer"
|
|
837
837
|
name = "Scale Optimizer"
|
|
838
838
|
icon = "🚀"
|
|
839
839
|
title = "Campaign scaling and efficiency specialist"
|
|
840
|
-
persona = "A methodical, cautious-but-aggressive specialist who treats scaling as the most dangerous phase where good campaigns go to die. Refuses to scale anything
|
|
840
|
+
persona = "A methodical, cautious-but-aggressive specialist who treats scaling as the most dangerous phase where good campaigns go to die. Refuses to scale anything the methodology does not call validated yet, then scales Meta campaigns in its lever order: bid cap first, validated creatives second, budget last with each step sized by the ROAS ruler, reading the numbers in shard 03-campanha-bidcap.md of wizz-lowticket-metodologia instead of carrying a fixed percentage, and only then goes horizontal and to new platforms. Argues that marginal CPA is the real metric because average CPA masks the problem, and that every audience has a ceiling to respect rather than fight. Pet peeve: scaling without a matching creative pipeline, since spend outrunning fresh creative just buys faster fatigue."
|
|
841
841
|
|
|
842
842
|
[[workflow.party_members]]
|
|
843
843
|
code = "tm-pixel-specialist"
|
|
@@ -14,8 +14,9 @@ Install it and a fresh machine has the methodology and the six skills working, w
|
|
|
14
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 |
|
|
15
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`) |
|
|
16
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 |
|
|
17
|
+
| `wizz-clone-do-expert` | turns an expert's real material (lives, audios, classes, posts) into a GPT/Project system prompt in their voice, with an evidence report and a fidelity test | the expert wants an assistant that answers students like them | audience or persona research (use `wizz-pesquisa-de-publico`), sales copy (use `wizz-copywriting`) |
|
|
17
18
|
|
|
18
|
-
All
|
|
19
|
+
All seven 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.
|
|
19
20
|
|
|
20
21
|
## The loading contract
|
|
21
22
|
|
|
@@ -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
|
|
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, offer mining and an expert voice clone for students, 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.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wizz-clone-do-expert
|
|
3
|
+
description: Captures an expert's real voice and turns it into a ready-to-paste system prompt for a GPT or Claude Project that answers students the way the expert would. Reads real material first (live and class transcripts, audios, videos, posts, captions), counts signature phrases and patterns instead of guessing them, separates what was observed from what is being suggested, and ships an evidence report plus a fidelity test for the expert to approve. With no material, runs a short interview asking for raw, spoken-style answers. Use when the user wants to "clonar o expert", "um GPT que fala como eu", "agente com a minha voz", "assistente pros alunos no meu tom". Do NOT use for audience or persona research (use wizz-pesquisa-de-publico), for writing sales copy in the expert's voice (use wizz-copywriting), or for the tone of an AI product in general (use wizz-ai-product-design).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Expert Clone
|
|
7
|
+
|
|
8
|
+
Builds an agent that talks like a specific expert: their vocabulary, their way of reasoning, the stories they actually tell, the limits they keep. The deliverable is a system prompt someone pastes into a GPT or a Claude Project, plus the evidence behind every trait.
|
|
9
|
+
|
|
10
|
+
The governing principle: **the clone only knows what the expert actually said.** No invented story, no exclusive method that wasn't described, no result or income figure the expert never claimed. Where the material is thin, the prompt says so and the report asks for more.
|
|
11
|
+
|
|
12
|
+
## Source of truth
|
|
13
|
+
|
|
14
|
+
Read the Cérebro state first (via the `wizz-cerebro` skill): an earlier clone, the product, the offer. If `wizz-offer-forge` produced an approved offer (`{output_folder}/offers/OFFER-*.md`), the product block comes from there. This skill has **no memory of its own**.
|
|
15
|
+
|
|
16
|
+
## Step 1 · Gather real material
|
|
17
|
+
|
|
18
|
+
Ask for the most spoken, least polished material that exists. Written posts are the expert performing; a live or an audio to a student is the expert talking.
|
|
19
|
+
|
|
20
|
+
| Material | How to read it |
|
|
21
|
+
|---|---|
|
|
22
|
+
| Audio or video (live, class, call, Reel) | Transcribe locally: `npx -y hyperframes transcribe <file> -d <out_dir> -l pt --json` (no API key). One file at a time. |
|
|
23
|
+
| Transcripts, captions, posts, emails | Read as is. Note the source and date of each. |
|
|
24
|
+
| Product content (modules, lessons, materials) | Feeds the product and method blocks. It's the data that most improves the clone; ask for it even when everything else is there. |
|
|
25
|
+
|
|
26
|
+
Save what you read under `{output_folder}/lowticket/clone-<slug>/fontes/` with one line per source in `fontes.md` (file, type, date, length).
|
|
27
|
+
|
|
28
|
+
**No material at all?** Run the interview (Step 1b) instead. Say upfront that a clone built from one interview is a first draft.
|
|
29
|
+
|
|
30
|
+
### Step 1b · Interview when there is no material
|
|
31
|
+
|
|
32
|
+
One question per turn. Ask the expert to answer **as if sending an audio to a student**, without trying to write well: the raw answer is what reveals the real way of speaking. Default questions, in this order, adapting to the niche:
|
|
33
|
+
|
|
34
|
+
1. Uma aluna te manda: "travei, não sei por onde começar". Responde como se fosse um áudio pra ela.
|
|
35
|
+
2. Qual é o erro que você mais vê quem está começando cometer, e o que você fala quando vê?
|
|
36
|
+
3. Conta a história que você mais repete nas aulas.
|
|
37
|
+
4. Qual pergunta de aluno te irrita, e como você responde mesmo assim?
|
|
38
|
+
5. O que você nunca promete pra ninguém?
|
|
39
|
+
|
|
40
|
+
After each answer, write down what it shows (a word, a structure, a reaction) before the next question. Even one answer is enough to start, as long as observed and suggested stay apart.
|
|
41
|
+
|
|
42
|
+
## Step 2 · Extract the voice, with counts
|
|
43
|
+
|
|
44
|
+
From the material, build the evidence table before writing any prompt:
|
|
45
|
+
|
|
46
|
+
- **Signature phrases and words:** count occurrences across sources. A trait seen once is a candidate; seen in three or more sources it's a trait.
|
|
47
|
+
- **Reasoning structure:** how an answer is built (story first? rule first? question back to the student?).
|
|
48
|
+
- **Formality and rhythm:** sentence length, use of "você/tu/a gente", slang, swearing, emoji in writing.
|
|
49
|
+
- **Didactics:** analogies, examples, how they break a step down.
|
|
50
|
+
- **Stories, methods and principles:** only the ones the expert told. Name each with its source.
|
|
51
|
+
- **Reactions:** what they praise, what they push back on, how they handle a lazy question or a complaint.
|
|
52
|
+
|
|
53
|
+
Every row is tagged `observado` (with source and count) or `sugerido` (your proposal to complete the agent, with the reason). Never promote a `sugerido` to `observado`.
|
|
54
|
+
|
|
55
|
+
## Step 3 · Write the clone prompt
|
|
56
|
+
|
|
57
|
+
Follow the section template in `references/clone-prompt-template.md`. The prompt is written in Portuguese (it talks to Brazilian students), in second person to the model.
|
|
58
|
+
|
|
59
|
+
Few-shot examples come **from real answers** in the material, marked as real, lightly trimmed but not rewritten. When there aren't enough real answers, write at most two suggested examples and mark them as such in the evidence report.
|
|
60
|
+
|
|
61
|
+
Limits are not optional and never get softened: the clone does not pretend to be a human or the expert in person, does not promise income or results, does not ask for or keep a student's personal data, and sends to the expert's real support channel anything it can't answer.
|
|
62
|
+
|
|
63
|
+
## Step 4 · Fidelity test
|
|
64
|
+
|
|
65
|
+
Pick 3 typical student questions (from real comments or support messages when the material has them; otherwise the most likely ones for the niche). Answer each one **as the clone**, using only the prompt you wrote. Put the three answers at the end of the file for the expert to approve or correct.
|
|
66
|
+
|
|
67
|
+
The clone is ready to publish only after the expert approves the three answers. Each correction goes back into the prompt and the evidence table.
|
|
68
|
+
|
|
69
|
+
## Output
|
|
70
|
+
|
|
71
|
+
One file: `{output_folder}/lowticket/clone-<slug>/clone-<slug>.md`, in Portuguese, with three parts:
|
|
72
|
+
|
|
73
|
+
1. **Prompt do clone**: the complete system prompt, ready to paste.
|
|
74
|
+
2. **Relatório de evidências**: the table from Step 2 (trait, `observado`/`sugerido`, source, count), plus what is missing.
|
|
75
|
+
3. **Teste de fidelidade**: the 3 questions, the clone's answers, and a field for the expert's verdict.
|
|
76
|
+
|
|
77
|
+
Close by asking for **the one piece of material that would most improve the clone** (usually the product's real content, or more spoken material if everything so far was written).
|
|
78
|
+
|
|
79
|
+
## Closing: always hand off
|
|
80
|
+
|
|
81
|
+
End every delivery with:
|
|
82
|
+
|
|
83
|
+
- 📍 Onde você está: clone em rascunho, aguardando aprovação do expert (ou aprovado).
|
|
84
|
+
- ✅ O que fizemos: quantas fontes, quantos traços observados e quantos sugeridos.
|
|
85
|
+
- ➡️ Próximo passo: o expert responde o teste de fidelidade; depois, colar o prompt no GPT ou Project.
|
|
86
|
+
- 🧰 O que ter pronto: o material que mais melhora o clone (pedido acima).
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Clone prompt template
|
|
2
|
+
|
|
3
|
+
Section order of the system prompt the skill delivers. Headings are in Portuguese because the prompt is pasted as is. Fill each section from the evidence table; a section with no evidence keeps a one-line note saying what's missing instead of invented content.
|
|
4
|
+
|
|
5
|
+
| # | Section | What goes in | Source |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| 1 | Identidade do agente | Who the agent is: an assistant trained on the expert's material, not the expert in person. Product and audience it serves. | offer, product content |
|
|
8
|
+
| 2 | Tom e formalidade | Register, "você/tu/a gente", sentence length, slang and swearing rules, emoji use. | counts from Step 2 |
|
|
9
|
+
| 3 | Estrutura de raciocínio | How an answer is built, in order (e.g. acolhe, devolve uma pergunta, dá a regra, fecha com um passo). | observed answers |
|
|
10
|
+
| 4 | Vocabulário e frases-marca | The signature phrases with how often to use them. Overusing a catchphrase is the fastest way to sound fake: say "no máximo uma por resposta". | counts |
|
|
11
|
+
| 5 | Didática | Analogies, examples, how a step is broken down. | observed answers |
|
|
12
|
+
| 6 | História | Only the stories the expert told, each in two or three lines. | sources |
|
|
13
|
+
| 7 | Métodos e princípios | Named methods and rules, exactly as the expert describes them. Never invent a name for a method. | sources, product content |
|
|
14
|
+
| 8 | Como o expert é percebido | How students describe the expert (from comments), to keep the clone consistent with that image. | comments, if any |
|
|
15
|
+
| 9 | Repertório de temas | Topics the clone handles, and topics it sends elsewhere. | product content |
|
|
16
|
+
| 10 | Comunicação do produto | What the product is, what it includes, when to mention it. No pressure selling; no price unless it's in the offer. | approved offer |
|
|
17
|
+
| 11 | Reações e estilo de interação | How to react to a lazy question, a complaint, a win, a student about to give up. | observed reactions |
|
|
18
|
+
| 12 | Exemplos de resposta | Few-shots from real answers, marked `(resposta real)`; at most two `(exemplo sugerido)`. | material |
|
|
19
|
+
| 13 | Limites | Not a human, not the expert in person; no income or result promise; no personal data asked or kept; medical, legal and financial questions go to a professional; what it can't answer goes to the real support channel. | fixed |
|
|
20
|
+
| 14 | Modo de operação | Answer length, when to ask back before answering, language. | Step 2 |
|
|
21
|
+
| 15 | Instruções finais | The three rules that win any conflict: limits first, then fidelity to the material, then helpfulness. | fixed |
|
|
@@ -59,6 +59,8 @@ Levers, in this order: (1) raise the bid cap, (2) add validated creatives, (3) a
|
|
|
59
59
|
|
|
60
60
|
**Never** as the first lever: raising the daily budget. The budget grants permission to spend; the bid cap is the real acquisition ceiling.
|
|
61
61
|
|
|
62
|
+
Budget step, once the budget lever is reached, sized by ROAS: **ROAS ≥ 2.5 → +50%** · **2.0 to 2.5 → +30%** · **below 2.0 → +20%** (shard 03, §3.2).
|
|
63
|
+
|
|
62
64
|
Lockout after touching it: **48 to 72h hangover** after a structural change, and the 3x rule before judging again.
|
|
63
65
|
|
|
64
66
|
## Cadence and saturation
|
|
@@ -10,7 +10,7 @@ Load context **cheaply**:
|
|
|
10
10
|
|
|
11
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
|
-
3. If there's no cerebro in this project, proceed normally without blocking.
|
|
13
|
+
3. If there's no cerebro in this project, proceed normally without blocking. Where the vault is looked for, and what to ask when saving with none, lives in one place only: the `wizz-cerebro` skill, section `## Vault`.
|
|
14
14
|
|
|
15
15
|
## On closing
|
|
16
16
|
|