wizz-method 2.2.0 → 2.3.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/README.md +62 -62
- package/SECURITY.md +15 -16
- package/THIRD-PARTY-NOTICES.md +49 -49
- package/package.json +1 -1
- package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +1 -1
- package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +1 -1
- package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +1 -1
- package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +1 -1
- package/src/core-skills/_shared/handoff-protocol.md +72 -71
- package/src/core-skills/wizz-review-adversarial-general/SKILL.md +1 -1
- package/src/modules/lowticket/skills/wizz-lowticket-funil/references/copy-das-paginas.md +39 -39
- package/src/modules/lowticket/skills/wizz-lowticket-funil/references/mapa-do-funil.md +23 -23
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/CATALOGO.md +72 -72
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/01-principios.md +10 -10
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/02-diagnostico-funil.md +50 -50
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/03-campanha-bidcap.md +68 -68
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04-criativos.md +44 -44
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04a-criativos-ia.md +77 -77
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04b-criativos-formatos.md +121 -121
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/05-oferta.md +35 -35
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06-pagina-vendas.md +122 -122
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06a-instagram.md +93 -93
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06b-player-vsl.md +57 -57
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07-funil-upsell.md +83 -83
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07a-copy-humanizacao.md +61 -61
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/08-pesquisa-publico.md +11 -11
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/09-especialista-coproducao.md +26 -26
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/10-levantar-caixa.md +29 -29
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/11-checklist-roi.md +22 -22
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12-mineracao-ofertas.md +80 -80
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12a-mineracao-veredito.md +72 -72
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12b-fabrica-de-ofertas.md +63 -63
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12c-anatomia-low-ticket.md +71 -71
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/13-benchmarks-vsl.md +6 -6
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/14-vocabulario.md +53 -51
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/15-como-estender.md +26 -26
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/17-rastreamento.md +76 -76
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/18-copy-desejo-oferta.md +149 -149
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/INDEX.md +45 -45
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/guardrails.md +45 -45
- package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/pontos-em-aberto.md +64 -66
- package/src/modules/lowticket/skills/wizz-lowticket-minerador/references/rubrica.md +63 -63
- package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/metas-e-medicao.md +23 -23
- package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/padroes-de-codigo.md +50 -50
- package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/formato-do-diagnostico.md +9 -9
- package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/reguas.md +42 -42
- package/src/modules/wizz/README.md +27 -27
- package/src/modules/wizz/_shared/cerebro.md +37 -37
- package/src/modules/wizz/_shared/communication-rules.md +15 -15
- package/src/modules/wizz/_shared/despacho-barato.md +6 -6
- package/src/modules/wizz/_shared/encerramento.md +23 -23
- package/src/modules/wizz/_shared/model-ladder.md +29 -29
- package/src/modules/wizz/_shared/planning-gate.md +30 -30
- package/src/modules/wizz/_shared/token-economy.md +28 -28
- package/src/modules/wizz/_shared/video-pipeline.md +42 -42
- package/src/modules/wizz/agents/wizz-ads/SKILL.md +16 -16
- package/src/modules/wizz/agents/wizz-ads/customize.toml +21 -21
- package/src/modules/wizz/agents/wizz-copy/SKILL.md +18 -18
- package/src/modules/wizz/agents/wizz-copy/customize.toml +24 -24
- package/src/modules/wizz/agents/wizz-designer/SKILL.md +24 -24
- package/src/modules/wizz/agents/wizz-designer/customize.toml +29 -29
- package/src/modules/wizz/agents/wizz-growth/SKILL.md +20 -20
- package/src/modules/wizz/agents/wizz-growth/customize.toml +34 -34
- package/src/modules/wizz/agents/wizz-maestro/SKILL.md +63 -63
- package/src/modules/wizz/agents/wizz-maestro/customize.toml +38 -38
- package/src/modules/wizz/agents/wizz-memoria/SKILL.md +19 -19
- package/src/modules/wizz/agents/wizz-memoria/customize.toml +24 -24
- package/src/modules/wizz/agents/wizz-qa/SKILL.md +22 -22
- package/src/modules/wizz/agents/wizz-qa/customize.toml +29 -29
- package/src/modules/wizz/agents/wizz-seo/SKILL.md +19 -19
- package/src/modules/wizz/agents/wizz-seo/customize.toml +27 -27
- package/src/modules/wizz/agents/wizz-social/SKILL.md +53 -53
- package/src/modules/wizz/agents/wizz-social/customize.toml +37 -37
- package/src/modules/wizz/agents/wizz-social/knowledge/analise-imagem-referencia.md +20 -20
- package/src/modules/wizz/agents/wizz-social/knowledge/biblioteca-prompts-imagem.md +71 -71
- package/src/modules/wizz/agents/wizz-social/knowledge/blueprint-roteiro-viral.md +196 -196
- package/src/modules/wizz/agents/wizz-social/knowledge/legenda-instagram.md +32 -32
- package/src/modules/wizz/agents/wizz-social/knowledge/prompts-imagem-video.md +48 -48
- package/src/modules/wizz/module.yaml +28 -28
- package/src/modules/wizz/overrides/wizz-agent-analyst.toml +17 -17
- package/src/modules/wizz/overrides/wizz-agent-architect.toml +21 -21
- package/src/modules/wizz/overrides/wizz-agent-dev.toml +20 -20
- package/src/modules/wizz/overrides/wizz-agent-pm.toml +11 -11
- package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +14 -14
- package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +14 -14
- package/src/modules/wizz/subagents/codex/wizz-exec-haiku.toml +17 -17
- package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +19 -19
- package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +18 -18
- package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +18 -18
- package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +17 -17
- package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +19 -19
- package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +18 -18
- package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +18 -18
- package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +17 -17
- package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +19 -19
- package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +18 -18
- package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +18 -18
- package/src/modules/wizz/subagents/spec.yaml +84 -83
- package/src/modules/wizz/subagents/wizz-exec-haiku.md +17 -17
- package/src/modules/wizz/subagents/wizz-exec-opus.md +19 -19
- package/src/modules/wizz/subagents/wizz-exec-review.md +18 -18
- package/src/modules/wizz/subagents/wizz-exec-sonnet.md +18 -18
- package/src/skills-lib/cerebro/SKILL.md +61 -61
- package/src/skills-lib/cerebro/references/comandos-pesquisa-e-memoria.md +46 -46
- package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +65 -65
- package/src/skills-lib/cerebro/references/comandos-sessao.md +74 -74
- package/src/skills-lib/ctc-align/SKILL.md +37 -37
- package/src/skills-lib/find-skills/SKILL.md +19 -19
- package/src/skills-lib/pesquisa-de-publico-do-piva/README.md +33 -33
- package/src/skills-lib/pesquisa-de-publico-do-piva/SKILL.md +42 -42
- package/src/skills-lib/pesquisa-de-publico-do-piva/prompts.md +20 -20
- package/src/skills-lib/references/premium-agency-rules.md +63 -63
- package/src/skills-lib/security-audit-pentest/SKILL.md +31 -31
- package/src/skills-lib/security-audit-pentest/references/stage-1-validacao-entrada.md +37 -37
- package/src/skills-lib/security-audit-pentest/references/stage-2-autorizacao.md +61 -61
- package/src/skills-lib/security-audit-pentest/references/stage-3-abuso-volume.md +37 -37
- package/src/skills-lib/security-audit-pentest/references/stage-4-vazamento-resposta.md +52 -52
- package/src/skills-lib/site-launch-kit/SKILL.md +42 -42
- package/src/skills-lib/site-launch-kit/references/01-cta-principal.md +20 -20
- package/src/skills-lib/site-launch-kit/references/02-barra-fixa-mobile.md +24 -24
- package/src/skills-lib/site-launch-kit/references/03-tempo-de-resposta.md +21 -21
- package/src/skills-lib/site-launch-kit/references/04-prova-social.md +22 -22
- package/src/skills-lib/site-launch-kit/references/05-faq-decisao.md +28 -28
- package/src/skills-lib/site-launch-kit/references/06-imagens-reais.md +27 -27
- package/src/skills-lib/site-launch-kit/references/07-endereco-como-chegar.md +25 -25
- package/src/skills-lib/site-launch-kit/references/08-titles.md +30 -30
- package/src/skills-lib/site-launch-kit/references/09-open-graph.md +23 -23
- package/src/skills-lib/site-launch-kit/references/10-breadcrumbs.md +23 -23
- package/src/skills-lib/site-launch-kit/references/11-alt-text.md +28 -28
- package/src/skills-lib/site-launch-kit/references/12-schema-local.md +22 -22
- package/src/skills-lib/site-launch-kit/references/13-robots-sitemap.md +26 -26
- package/src/skills-lib/site-launch-kit/references/14-privacidade-termos.md +27 -27
- package/src/skills-lib/site-launch-kit/references/15-medicao.md +23 -23
- package/src/skills-lib/wizz-ai-product-design/SKILL.md +70 -70
- package/src/skills-lib/wizz-auth-and-secrets/SKILL.md +78 -78
- package/src/skills-lib/wizz-caching-and-queues/SKILL.md +40 -40
- package/src/skills-lib/wizz-cloud-and-infra/SKILL.md +22 -22
- package/src/skills-lib/wizz-database-and-deps/SKILL.md +52 -52
- package/src/skills-lib/wizz-database-scaling/SKILL.md +31 -31
- package/src/skills-lib/wizz-desktop-security/SKILL.md +49 -49
- package/src/skills-lib/wizz-implementation-planner/SKILL.md +56 -56
- package/src/skills-lib/wizz-implementation-planner/references/folder-structure-and-dependencies.md +14 -14
- package/src/skills-lib/wizz-implementation-planner/references/implementation-phases.md +15 -15
- package/src/skills-lib/wizz-implementation-planner/references/implementation-types.md +9 -9
- package/src/skills-lib/wizz-implementation-planner/references/motion-path-implementation.md +19 -19
- package/src/skills-lib/wizz-implementation-planner/references/performance-plan.md +27 -27
- package/src/skills-lib/wizz-infrastructure/SKILL.md +21 -21
- package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +63 -63
- package/src/skills-lib/wizz-inicio-de-projeto/references/implementacao-api-forms.md +27 -27
- package/src/skills-lib/wizz-inicio-de-projeto/references/padroes-arquiteturais-e-pastas.md +31 -31
- package/src/skills-lib/wizz-inicio-de-projeto/references/seguranca-e-regras-codigo.md +21 -21
- package/src/skills-lib/wizz-launch-readiness/SKILL.md +61 -61
- package/src/skills-lib/wizz-launch-readiness/references/01-tecnico-build.md +16 -16
- package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +16 -16
- package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +16 -16
- package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +15 -15
- package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +15 -15
- package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +15 -15
- package/src/skills-lib/wizz-launch-readiness/references/07-infra-deploy-rollback.md +16 -16
- package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +19 -19
- package/src/skills-lib/wizz-launch-readiness/references/09-persistencia-project-context.md +26 -26
- package/src/skills-lib/wizz-motion-3d-director/SKILL.md +70 -70
- package/src/skills-lib/wizz-motion-3d-director/references/image-to-video-workflow.md +34 -35
- package/src/skills-lib/wizz-motion-3d-director/references/motion-paths.md +70 -70
- package/src/skills-lib/wizz-motion-3d-director/references/performance-and-handoff.md +17 -17
- package/src/skills-lib/wizz-offer-forge/README.md +9 -9
- package/src/skills-lib/wizz-offer-forge/SKILL.md +64 -64
- package/src/skills-lib/wizz-offer-forge/references/empilhamento-valor.md +17 -17
- package/src/skills-lib/wizz-offer-forge/references/garantia-reversa.md +16 -16
- package/src/skills-lib/wizz-offer-forge/references/mecanismo-unico.md +19 -19
- package/src/skills-lib/wizz-offer-forge/references/ponte-trafego.md +17 -17
- package/src/skills-lib/wizz-premium-landing-ui-researcher/SKILL.md +36 -36
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/audit-protocol.md +81 -82
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/component-sources.md +105 -105
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/core-goal.md +39 -39
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/dashboard-and-portfolio-modes.md +49 -50
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/handoffs.md +33 -34
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/landing-page-strategy.md +141 -142
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/mandatory-process.md +24 -24
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/output-format-and-quality.md +73 -73
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/prompt-templates.md +4 -4
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/site-levels.md +282 -283
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-first-protocol.md +39 -39
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-links.md +8 -8
- package/src/skills-lib/wizz-premium-landing-ui-researcher/references/stack-and-visual-direction.md +63 -64
- package/src/skills-lib/wizz-router/SKILL.md +38 -38
- package/src/skills-lib/wizz-router/references/auditoria-360.md +12 -12
- package/src/skills-lib/wizz-router/references/routing-table-flat.md +80 -80
- package/src/skills-lib/wizz-tracking-audit/SKILL.md +48 -48
- package/src/skills-lib/wizz-tracking-audit/references/modo-diagnostico.md +43 -43
- package/src/skills-lib/wizz-tracking-audit/references/modo-implantacao.md +59 -59
- package/src/skills-lib/wizz-tracking-audit/references/utm-e-atribuicao.md +35 -35
- package/src/skills-lib/wizz-web-security/SKILL.md +35 -35
- package/src/skills-lib/wizz-web-security/references/checklist-deploy.md +50 -50
- package/src/skills-lib/wizz-web-security/references/headers-rate-limit-cors.md +33 -33
- package/src/skills-lib/wizz-web-security/references/owasp-top5-detalhado.md +36 -36
- package/tools/hooks/session-rules.js +14 -11
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Round 15 · Launch measurement
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
**
|
|
3
|
+
**Ensures:** every action that's worth money is tracked with a name that will still make sense three months from now.
|
|
4
|
+
**Run when:** the day before or on launch day, with the final touchpoints on the site.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
You are responsible for this site's measurement. Your only task in this round: make sure that, on launch day, every action worth money is tracked with a name that makes sense three months from now.
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Before editing, detect: framework, whether any measurement tool is already installed (analytics, pixel, tag manager), whether there's a consent banner, and what the site's touchpoints are.
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
DO NOT install four tools. DO NOT send personal data as an event parameter (name, email, phone, national ID). DO NOT invent an account or measurement ID: without the ID, leave the environment variable declared and log it in PENDING ITEMS.
|
|
11
11
|
|
|
12
|
-
1.
|
|
13
|
-
|
|
12
|
+
1. SURVEY
|
|
13
|
+
List what's already installed and what each thing measures today. Duplication is common: analytics loaded twice counts every visit double. Also list every touchpoint: forms, WhatsApp, phone, email, download, scheduling, the main CTA, and the one on the sticky bar.
|
|
14
14
|
|
|
15
|
-
2.
|
|
16
|
-
|
|
15
|
+
2. NAMING (do this before writing any code)
|
|
16
|
+
Define the standard and write it into a project documentation file: object_action in lowercase with underscores (formulario_enviado, whatsapp_clique, telefone_clique, orcamento_iniciado). Useful parameters: click origin (hero, sticky bar, footer), page, and form identifier. No personal data. One constant per event, in a single file: an event name typed by hand into each component drifts apart within a week.
|
|
17
17
|
|
|
18
|
-
3.
|
|
19
|
-
- Script
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
18
|
+
3. IMPLEMENTATION
|
|
19
|
+
- Script loaded without blocking rendering.
|
|
20
|
+
- Nothing fires before consent, if there's a banner.
|
|
21
|
+
- IP anonymization when the tool allows it.
|
|
22
|
+
- One fire per action, guarded against double-clicks and against reloading the thank-you page.
|
|
23
|
+
- Thank-you page as the main conversion, tied to round 03 (response time).
|
|
24
|
+
- If there's an ad pixel, fire the same event on it, with the same name, so the reports match up.
|
|
25
25
|
|
|
26
|
-
4.
|
|
27
|
-
|
|
26
|
+
4. SMOKE TEST
|
|
27
|
+
In a local or staging environment, perform each action and confirm the event in the tool's debugger. An untested event is an event that doesn't exist. List what you were able to confirm and what's left pending.
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
Output format: after applying the changes, a markdown table, with no text before it:
|
|
30
30
|
|
|
31
|
-
|
|
|
31
|
+
| Event | Trigger (file · element) | Parameters | Tested? |
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Then, PENDING ITEMS (account IDs, access, untested events) and the naming standard in a code block, ready to go into the project documentation.
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
CUTOFF RULE: measure a few things and measure them right. Twenty poorly named events produce a dashboard nobody opens; four well-named events answer the one question that matters, which is where the customer came from.
|
|
@@ -1,87 +1,87 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-ai-product-design
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
guardrails
|
|
6
|
-
|
|
7
|
-
chain-of-thought, guardrails,
|
|
8
|
-
|
|
9
|
-
44
|
|
10
|
-
prompt, persona
|
|
11
|
-
|
|
4
|
+
AI product and agent design: how the agent behaves, how to write the prompt/system prompt,
|
|
5
|
+
guardrails and trust/safety, multi-agent orchestration, and evaluation. Use when: creating or improving an
|
|
6
|
+
agent/assistant/chatbot, writing or reviewing a system prompt, defining persona/tone/voice, building few-shot
|
|
7
|
+
examples, chain-of-thought, guardrails, refusals, escalation to a human, agent handoff, frustration
|
|
8
|
+
detection, generative UI, or measuring AI output quality. Base: Owl-Listener/ai-design-skills (MIT).
|
|
9
|
+
44 patterns in 6 categories, each detailed in references/. Use when the request mentions system
|
|
10
|
+
prompt, agent persona, guardrails, multi-agent orchestration, agent handoff, or AI quality
|
|
11
|
+
evaluation.
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
# AI Product Design — 44
|
|
14
|
+
# AI Product Design — 44 patterns
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
A pattern library for designing **how an AI/agent behaves** and **how its prompt is written**.
|
|
17
|
+
Each item below has the full text in `references/<category>/<name>/SKILL.md`. This file is the index:
|
|
18
|
+
find the pattern by intent, then open the reference for detail.
|
|
19
19
|
|
|
20
|
-
>
|
|
21
|
-
> system prompts, guardrails, handoffs).
|
|
20
|
+
> Use in the method: this is the base for building and reviewing the Wizz Method's own agents (the 15 `customize.toml`,
|
|
21
|
+
> system prompts, guardrails, handoffs). Consult it before creating/adjusting any agent or prompt.
|
|
22
22
|
|
|
23
|
-
## 1.
|
|
24
|
-
|
|
25
|
-
- **persona-architecture** — define
|
|
26
|
-
- **tone-calibration** —
|
|
27
|
-
- **emotional-design** —
|
|
28
|
-
- **error-personality** —
|
|
29
|
-
- **behavioral-consistency** —
|
|
30
|
-
- **domain-voice** —
|
|
31
|
-
- **cultural-adaptation** —
|
|
23
|
+
## 1. Agent behavior (`references/system-behavior-shaping/`)
|
|
24
|
+
How the agent sounds and reacts.
|
|
25
|
+
- **persona-architecture** — define character, voice, and traits once, so they don't drift across sessions
|
|
26
|
+
- **tone-calibration** — tone dials per context (formality, warmth, confidence)
|
|
27
|
+
- **emotional-design** — response to frustration, confusion, joy, distress (validates without amplifying)
|
|
28
|
+
- **error-personality** — how to communicate error, uncertainty, and limits gracefully
|
|
29
|
+
- **behavioral-consistency** — behaving predictably across sessions, edge cases, and modalities
|
|
30
|
+
- **domain-voice** — adjusting behavior for a specific professional domain
|
|
31
|
+
- **cultural-adaptation** — adapting to cultural context, language, and norms
|
|
32
32
|
|
|
33
|
-
## 2.
|
|
34
|
-
|
|
35
|
-
- **conversation-patterns** —
|
|
36
|
-
- **frustration-detection** —
|
|
37
|
-
- **mixed-initiative-flow** —
|
|
38
|
-
- **progressive-disclosure** —
|
|
39
|
-
- **generative-ui** —
|
|
40
|
-
- **multimodal-orchestration** —
|
|
41
|
-
- **feedback-loops** —
|
|
42
|
-
- **context-window-design** —
|
|
33
|
+
## 2. Human-AI interaction (`references/model-interaction-design/`)
|
|
34
|
+
How the conversation flows.
|
|
35
|
+
- **conversation-patterns** — turns, repair sequences, alignment checkpoints
|
|
36
|
+
- **frustration-detection** — reading frustration via caps, punctuation, repetition, latency, and adapting
|
|
37
|
+
- **mixed-initiative-flow** — when the agent leads vs. when the user leads, with a clean handoff
|
|
38
|
+
- **progressive-disclosure** — revealing the tool's power gradually, without overwhelming turn 1
|
|
39
|
+
- **generative-ui** — when to render a component (date picker, card, chart) vs. plain text
|
|
40
|
+
- **multimodal-orchestration** — sequencing text, image, voice, and tool use in a single flow
|
|
41
|
+
- **feedback-loops** — user correction, thumbs, inline editing as a signal that changes behavior
|
|
42
|
+
- **context-window-design** — token budget, memory, summarizing vs. retrieving, graceful degradation
|
|
43
43
|
|
|
44
|
-
## 3.
|
|
45
|
-
|
|
46
|
-
- **system-prompt-structure** —
|
|
47
|
-
- **constraint-specification** —
|
|
48
|
-
- **few-shot-patterns** —
|
|
49
|
-
- **chain-of-thought-design** —
|
|
50
|
-
- **template-design** — templates
|
|
51
|
-
- **context-engineering** —
|
|
52
|
-
- **prompt-versioning** —
|
|
44
|
+
## 3. Prompt architecture (`references/prompt-architecture/`)
|
|
45
|
+
How the prompt is written. **The most direct layer for improving agents.**
|
|
46
|
+
- **system-prompt-structure** — anatomy: identity, context, rules, format, examples (what matters at the start/end)
|
|
47
|
+
- **constraint-specification** — testable limits: format, length, tone, prohibited content
|
|
48
|
+
- **few-shot-patterns** — examples that target the errors the model keeps making
|
|
49
|
+
- **chain-of-thought-design** — deliberate reasoning chains for multi-step tasks
|
|
50
|
+
- **template-design** — parameterized templates with named variables and conditional sections
|
|
51
|
+
- **context-engineering** — what goes into context and in what order
|
|
52
|
+
- **prompt-versioning** — versioning prompts, testing changes, tracking what works
|
|
53
53
|
|
|
54
54
|
## 4. Trust & Safety (`references/ai-alignment-reasoning/`)
|
|
55
|
-
|
|
56
|
-
- **guardrail-design** —
|
|
57
|
-
- **transparency-patterns** —
|
|
58
|
-
- **trust-calibration** —
|
|
59
|
-
- **escalation-design** —
|
|
60
|
-
- **harm-anticipation** —
|
|
61
|
-
- **value-specification** —
|
|
62
|
-
- **consent-and-agency** —
|
|
63
|
-
- **bias-detection-design** — workflows
|
|
55
|
+
What the agent can and can't do; how not to mislead the user.
|
|
56
|
+
- **guardrail-design** — explicit behavior limits and refusal patterns (the "can/can't")
|
|
57
|
+
- **transparency-patterns** — showing what the model knows, doesn't know, and how confident it is
|
|
58
|
+
- **trust-calibration** — neither overtrust nor undertrust; signal uncertainty instead of bluffing
|
|
59
|
+
- **escalation-design** — when to escalate to a human, refuse, or ask for clarification
|
|
60
|
+
- **harm-anticipation** — mapping failure modes, misuse, and unintended consequences
|
|
61
|
+
- **value-specification** — translating organizational values into system constraints
|
|
62
|
+
- **consent-and-agency** — informed consent, opt-out, and human override
|
|
63
|
+
- **bias-detection-design** — review workflows to find and mitigate bias
|
|
64
64
|
|
|
65
|
-
## 5.
|
|
66
|
-
|
|
67
|
-
- **agent-role-design** —
|
|
68
|
-
- **task-decomposition** —
|
|
69
|
-
- **handoff-protocols** —
|
|
70
|
-
- **state-management** —
|
|
71
|
-
- **human-in-the-loop** —
|
|
72
|
-
- **failure-recovery** —
|
|
73
|
-
- **observability-design** —
|
|
65
|
+
## 5. Multi-agent orchestration (`references/design-agent-orchestration/`)
|
|
66
|
+
For systems with multiple agents (the method's own case: Diretor → maestro → agents).
|
|
67
|
+
- **agent-role-design** — what each agent does, knows, and owns in a multi-agent system
|
|
68
|
+
- **task-decomposition** — breaking a complex goal into subtasks the agents solve
|
|
69
|
+
- **handoff-protocols** — smooth transitions between agents and between AI and human
|
|
70
|
+
- **state-management** — context, memory, and state shared across agents
|
|
71
|
+
- **human-in-the-loop** — intervention points where the human reviews, approves, or redirects
|
|
72
|
+
- **failure-recovery** — when an agent fails: retry, fallback, escalate, graceful degradation
|
|
73
|
+
- **observability-design** — making the multi-agent workflow visible and debuggable
|
|
74
74
|
|
|
75
|
-
## 6.
|
|
76
|
-
|
|
77
|
-
- **output-quality-rubrics** —
|
|
78
|
-
- **task-success-metrics** —
|
|
79
|
-
- **user-satisfaction-signals** —
|
|
80
|
-
- **failure-taxonomy** —
|
|
81
|
-
- **comparative-evaluation** — A/B,
|
|
82
|
-
- **heuristic-evaluation-ai** —
|
|
83
|
-
- **longitudinal-measurement** —
|
|
75
|
+
## 6. Evaluation (`references/evaluation/`)
|
|
76
|
+
How to know if the AI is good.
|
|
77
|
+
- **output-quality-rubrics** — defining what "good" means: accuracy, relevance, usefulness
|
|
78
|
+
- **task-success-metrics** — measuring whether the AI actually helped the user reach the goal
|
|
79
|
+
- **user-satisfaction-signals** — reading implicit/explicit signals: edits, regenerations, abandonment
|
|
80
|
+
- **failure-taxonomy** — classifying failures: hallucination, refusal, irrelevance, wrong tone, latency
|
|
81
|
+
- **comparative-evaluation** — A/B, side-by-side comparison, preference ranking
|
|
82
|
+
- **heuristic-evaluation-ai** — adapted Nielsen heuristics + AI-specific heuristics
|
|
83
|
+
- **longitudinal-measurement** — quality over time: drift, degradation, improvement
|
|
84
84
|
|
|
85
85
|
---
|
|
86
86
|
|
|
87
|
-
**
|
|
87
|
+
**Credits:** Owl-Listener/ai-design-skills (MIT license, see `references/LICENSE`). Index translated/curated for the Wizz Method.
|
|
@@ -1,100 +1,100 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-auth-and-secrets
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
token
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
Authentication security and secrets management. Use when: implementing auth, handling JWT/OAuth/SSO,
|
|
5
|
+
token in header vs URL, token revocation on logout, user enumeration/generic messages,
|
|
6
|
+
storing API keys or credentials, configuring Clerk/Supabase auth, reviewing where secrets are stored,
|
|
7
|
+
credential rotation, checking whether .env is secure. Use when the user mentions login, signup,
|
|
8
|
+
password, JWT, OAuth, SSO, 2FA, session, logout, API key, or environment variable/.env.
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Auth and Secrets
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Authentication
|
|
14
14
|
|
|
15
|
-
###
|
|
16
|
-
- Hash
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
15
|
+
### Passwords
|
|
16
|
+
- Hash with bcrypt (cost >= 12), Argon2id, or scrypt. Never MD5/SHA1 for passwords
|
|
17
|
+
- Minimum 8 characters, no restriction on special characters
|
|
18
|
+
- Implement lockout after N attempts (lockout or CAPTCHA)
|
|
19
|
+
- Offer 2FA: TOTP (Google Authenticator) is the minimum standard
|
|
20
20
|
|
|
21
21
|
### JWT
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
- exp
|
|
25
|
-
- Refresh token
|
|
26
|
-
-
|
|
27
|
-
- **Token
|
|
28
|
-
- **
|
|
29
|
-
|
|
30
|
-
###
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
22
|
+
- On verification, accept only the expected algorithm: reject `alg: none` and don't let the token choose the algorithm (algorithm confusion attack)
|
|
23
|
+
- Prefer RS256 (asymmetric) when more than one service verifies the token. HS256 only with a strong secret: 32+ random bytes, never a word
|
|
24
|
+
- Short exp for access tokens (15 min to 1h)
|
|
25
|
+
- Refresh token with rotation: on use, invalidate the previous one and issue a new one
|
|
26
|
+
- Never put sensitive data in the payload (it's base64, not encryption)
|
|
27
|
+
- **Token in the `Authorization: Bearer` header, NEVER in the URL/query string** (the URL leaks into server logs, browser history, the `Referer` header, and analytics)
|
|
28
|
+
- **A real logout revokes the token**: blacklist it (Redis, TTL = token exp) and invalidate the refresh token. Without this, the access token stays valid after logout until it expires on its own
|
|
29
|
+
|
|
30
|
+
### User enumeration
|
|
31
|
+
Prevents an attacker from discovering which emails exist in the database (login, signup, password reset).
|
|
32
|
+
- Identical response for existing and non-existing email: "If the email exists, we sent a link"
|
|
33
|
+
- On login use a generic message ("invalid credentials"), never "email not registered" vs "wrong password"
|
|
34
|
+
- Respond in **constant time**: run the password hash even when the user doesn't exist (otherwise the response time gives away who exists)
|
|
35
|
+
- Reinforce with rate limiting by IP **and** by account (see wizz-web-security) to block email scanning
|
|
36
36
|
|
|
37
37
|
### OAuth / SSO
|
|
38
|
-
- Use
|
|
39
|
-
-
|
|
40
|
-
- PKCE
|
|
41
|
-
|
|
42
|
-
###
|
|
43
|
-
- Auth
|
|
44
|
-
-
|
|
45
|
-
- Clerk webhook (`svix`)
|
|
46
|
-
-
|
|
47
|
-
- Supabase RLS:
|
|
48
|
-
- `SUPABASE_SERVICE_ROLE_KEY`
|
|
49
|
-
- `NEXT_PUBLIC_*` =
|
|
50
|
-
|
|
51
|
-
## Secrets
|
|
52
|
-
|
|
53
|
-
###
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
###
|
|
60
|
-
-
|
|
61
|
-
- CI/CD:
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
### API keys
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
- Use
|
|
69
|
-
-
|
|
70
|
-
|
|
71
|
-
###
|
|
72
|
-
|
|
38
|
+
- Use an established library, don't implement the flow manually
|
|
39
|
+
- Validate the state parameter to prevent CSRF
|
|
40
|
+
- PKCE mandatory for SPA and mobile app flows
|
|
41
|
+
|
|
42
|
+
### Supabase + Clerk stack
|
|
43
|
+
- Auth managed by Clerk: never reimplement auth flows manually
|
|
44
|
+
- Every protected route, Server Action, and route handler calls Clerk's `auth()` on the server. Never trust session state coming from the client
|
|
45
|
+
- Clerk webhook (`svix`) verified by signature before processing: don't trust the body without verifying
|
|
46
|
+
- Payment/external provider webhook: besides verifying the signature, **never trust a status, money, or permission value that came in the body**. Confirm with the originating provider (e.g. re-fetch the session from Stripe by id) before granting access or crediting a balance. A valid signature only proves the event came from the provider, not that the payload wasn't reassembled in a replay.
|
|
47
|
+
- Supabase RLS: every domain table must have RLS enabled; queries must filter by `workspace_id`/`user_id`
|
|
48
|
+
- `SUPABASE_SERVICE_ROLE_KEY` bypasses RLS: server-side only (API routes, jobs), never exposed on the frontend
|
|
49
|
+
- `NEXT_PUBLIC_*` = safe to expose on the client; anything without `NEXT_PUBLIC_` = server-only
|
|
50
|
+
|
|
51
|
+
## Secrets and credentials
|
|
52
|
+
|
|
53
|
+
### What to never do
|
|
54
|
+
- Commit .env to git (use .gitignore + git-secrets)
|
|
55
|
+
- Hardcode API keys in the source code
|
|
56
|
+
- Log credentials even in debug
|
|
57
|
+
- Use the same credentials in dev and production
|
|
58
|
+
|
|
59
|
+
### Where to store secrets
|
|
60
|
+
- Production: the platform's environment variables (Vercel: `vercel env add`)
|
|
61
|
+
- CI/CD: the platform's encrypted environment variables (GitHub Actions Secrets, etc.)
|
|
62
|
+
- Local dev: `.env.local` file, never committed. Verify with `git check-ignore -v .env.local`
|
|
63
|
+
|
|
64
|
+
### API keys issued by the app itself
|
|
65
|
+
If the app generates API keys for users:
|
|
66
|
+
- Store only the key's hash (SHA-256) in the database, never the plaintext key
|
|
67
|
+
- Show the full key exactly once, at creation
|
|
68
|
+
- Use an identifiable prefix (e.g. `wz_live_`) to make repository scan detection easier
|
|
69
|
+
- Allow revoking and listing keys per user
|
|
70
|
+
|
|
71
|
+
### Encrypting user credentials (AES-256-GCM)
|
|
72
|
+
If the app stores the user's third-party credentials (e.g. SMTP, WhatsApp API):
|
|
73
73
|
```ts
|
|
74
|
-
// src/lib/crypto.ts:
|
|
74
|
+
// src/lib/crypto.ts: key comes from env, never hardcoded
|
|
75
75
|
import { createCipheriv, randomBytes } from "crypto"
|
|
76
76
|
|
|
77
77
|
const key = process.env.CREDENTIAL_ENCRYPTION_KEY // base64, 32 bytes
|
|
78
|
-
if (!key) throw new Error("CREDENTIAL_ENCRYPTION_KEY
|
|
78
|
+
if (!key) throw new Error("CREDENTIAL_ENCRYPTION_KEY not configured")
|
|
79
79
|
|
|
80
80
|
export function encrypt(plain: string) {
|
|
81
|
-
const iv = randomBytes(12) // IV
|
|
81
|
+
const iv = randomBytes(12) // random IV per record, never reuse
|
|
82
82
|
const cipher = createCipheriv("aes-256-gcm", Buffer.from(key, "base64"), iv)
|
|
83
83
|
const enc = Buffer.concat([cipher.update(plain, "utf8"), cipher.final()])
|
|
84
84
|
return { iv: iv.toString("base64"), data: enc.toString("base64"), tag: cipher.getAuthTag().toString("base64") }
|
|
85
85
|
}
|
|
86
|
-
//
|
|
86
|
+
// on decrypt: setAuthTag before final(), otherwise integrity isn't verified
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
###
|
|
90
|
-
-
|
|
91
|
-
-
|
|
92
|
-
- API keys
|
|
93
|
-
- Database passwords: use IAM auth
|
|
89
|
+
### Credential rotation
|
|
90
|
+
- Rotate third-party secrets every 90 days or after any team member leaves
|
|
91
|
+
- A secret committed by accident: treat it as compromised and rotate it immediately. Rewriting git history isn't enough
|
|
92
|
+
- Production API keys: one per service/environment, never shared
|
|
93
|
+
- Database passwords: use IAM auth when available on the cloud provider
|
|
94
94
|
|
|
95
|
-
###
|
|
96
|
-
-
|
|
97
|
-
-
|
|
95
|
+
### Token comparison
|
|
96
|
+
- NEVER compare tokens with `===` or `!==` (timing attack)
|
|
97
|
+
- ALWAYS use `crypto.timingSafeEqual`:
|
|
98
98
|
```ts
|
|
99
99
|
import { timingSafeEqual } from "crypto"
|
|
100
100
|
const expected = Buffer.from(process.env.MY_SECRET_TOKEN!)
|
|
@@ -104,9 +104,9 @@ if (expected.length !== received.length || !timingSafeEqual(expected, received))
|
|
|
104
104
|
}
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
-
###
|
|
108
|
-
- [ ] `grep -r "sk_live\|sk_test\|service_role\|eyJ\|AAAA" src/` →
|
|
109
|
-
- [ ] `.env*`
|
|
110
|
-
- [ ] `git log --all --diff-filter=A -- .env*` →
|
|
111
|
-
- [ ]
|
|
112
|
-
- [ ] `SUPABASE_SERVICE_ROLE_KEY`
|
|
107
|
+
### Secrets checklist
|
|
108
|
+
- [ ] `grep -r "sk_live\|sk_test\|service_role\|eyJ\|AAAA" src/` → empty?
|
|
109
|
+
- [ ] `.env*` in `.gitignore`?
|
|
110
|
+
- [ ] `git log --all --diff-filter=A -- .env*` → empty?
|
|
111
|
+
- [ ] Production secrets different from dev?
|
|
112
|
+
- [ ] `SUPABASE_SERVICE_ROLE_KEY` never in a `NEXT_PUBLIC_` variable?
|
|
@@ -1,58 +1,58 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wizz-caching-and-queues
|
|
3
|
-
description: Caching
|
|
3
|
+
description: Caching and asynchronous queues — Redis cache-aside/write-through, TTL, rate limiting, BullMQ, SQS, Kafka. Use when the request involves cache, sessions, job queues, asynchronous processing.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Caching and Queues
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Caching strategies
|
|
9
9
|
|
|
10
10
|
### Cache-aside (Lazy Loading)
|
|
11
|
-
1. App
|
|
12
|
-
2.
|
|
13
|
-
3.
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
1. App looks in the cache
|
|
12
|
+
2. If it's not there (miss), look in the database
|
|
13
|
+
3. Save to cache and return
|
|
14
|
+
Advantage: the cache only holds what's been accessed
|
|
15
|
+
Disadvantage: the first access is slow (cold start)
|
|
16
16
|
|
|
17
17
|
### Write-through
|
|
18
|
-
1. App
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
1. App writes to the cache and the database at the same time
|
|
19
|
+
Advantage: the cache is always up to date
|
|
20
|
+
Disadvantage: writes everything even for rarely-read data
|
|
21
21
|
|
|
22
22
|
### TTL (Time to Live)
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
23
|
+
- Session data: 30 min to 24h
|
|
24
|
+
- External API responses: depends on how often they change
|
|
25
|
+
- Counters and rankings: 1 to 5 minutes
|
|
26
|
+
- System settings: 5 to 60 minutes
|
|
27
27
|
|
|
28
|
-
## Redis:
|
|
28
|
+
## Redis: usage patterns
|
|
29
29
|
|
|
30
|
-
###
|
|
31
|
-
-
|
|
32
|
-
- TTL:
|
|
30
|
+
### HTTP response cache
|
|
31
|
+
- Key: hash of URL + query params + user
|
|
32
|
+
- TTL: set per data type
|
|
33
33
|
|
|
34
34
|
### Rate limiting
|
|
35
|
-
-
|
|
36
|
-
-
|
|
35
|
+
- Key: user_id or IP
|
|
36
|
+
- Structure: INCR + EXPIRE
|
|
37
37
|
|
|
38
38
|
### Session store
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
##
|
|
42
|
-
|
|
43
|
-
###
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
###
|
|
50
|
-
- BullMQ (Node.js + Redis):
|
|
51
|
-
- SQS (AWS): managed,
|
|
52
|
-
- RabbitMQ:
|
|
53
|
-
- Kafka: streaming
|
|
54
|
-
|
|
55
|
-
###
|
|
56
|
-
-
|
|
57
|
-
- Jobs
|
|
58
|
-
-
|
|
39
|
+
- Faster than the database for active sessions
|
|
40
|
+
|
|
41
|
+
## Asynchronous queues
|
|
42
|
+
|
|
43
|
+
### When to use a queue
|
|
44
|
+
- Image/video processing
|
|
45
|
+
- Sending emails and notifications
|
|
46
|
+
- Integration with slow external systems
|
|
47
|
+
- Any operation > 500ms that doesn't need an immediate response
|
|
48
|
+
|
|
49
|
+
### Tools
|
|
50
|
+
- BullMQ (Node.js + Redis): simple, reliable, good UI with Bull Board
|
|
51
|
+
- SQS (AWS): managed, no infrastructure to maintain
|
|
52
|
+
- RabbitMQ: complex message routing
|
|
53
|
+
- Kafka: high-volume streaming, message retention
|
|
54
|
+
|
|
55
|
+
### Queue best practices
|
|
56
|
+
- Define max retries and a dead letter queue
|
|
57
|
+
- Jobs must be idempotent (safe to reprocess)
|
|
58
|
+
- Monitor queue size (a growing backlog = a problem)
|