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.
Files changed (198) hide show
  1. package/README.md +62 -62
  2. package/SECURITY.md +15 -16
  3. package/THIRD-PARTY-NOTICES.md +49 -49
  4. package/package.json +1 -1
  5. package/src/bmm-skills/1-analysis/wizz-agent-analyst/customize.toml +1 -1
  6. package/src/bmm-skills/2-plan-workflows/wizz-agent-pm/customize.toml +1 -1
  7. package/src/bmm-skills/2-plan-workflows/wizz-agent-ux-designer/customize.toml +1 -1
  8. package/src/bmm-skills/3-solutioning/wizz-agent-architect/customize.toml +1 -1
  9. package/src/bmm-skills/4-implementation/wizz-agent-dev/customize.toml +1 -1
  10. package/src/core-skills/_shared/handoff-protocol.md +72 -71
  11. package/src/core-skills/wizz-review-adversarial-general/SKILL.md +1 -1
  12. package/src/modules/lowticket/skills/wizz-lowticket-funil/references/copy-das-paginas.md +39 -39
  13. package/src/modules/lowticket/skills/wizz-lowticket-funil/references/mapa-do-funil.md +23 -23
  14. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/CATALOGO.md +72 -72
  15. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/01-principios.md +10 -10
  16. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/02-diagnostico-funil.md +50 -50
  17. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/03-campanha-bidcap.md +68 -68
  18. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04-criativos.md +44 -44
  19. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04a-criativos-ia.md +77 -77
  20. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/04b-criativos-formatos.md +121 -121
  21. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/05-oferta.md +35 -35
  22. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06-pagina-vendas.md +122 -122
  23. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06a-instagram.md +93 -93
  24. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/06b-player-vsl.md +57 -57
  25. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07-funil-upsell.md +83 -83
  26. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/07a-copy-humanizacao.md +61 -61
  27. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/08-pesquisa-publico.md +11 -11
  28. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/09-especialista-coproducao.md +26 -26
  29. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/10-levantar-caixa.md +29 -29
  30. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/11-checklist-roi.md +22 -22
  31. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12-mineracao-ofertas.md +80 -80
  32. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12a-mineracao-veredito.md +72 -72
  33. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12b-fabrica-de-ofertas.md +63 -63
  34. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/12c-anatomia-low-ticket.md +71 -71
  35. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/13-benchmarks-vsl.md +6 -6
  36. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/14-vocabulario.md +53 -51
  37. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/15-como-estender.md +26 -26
  38. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/17-rastreamento.md +76 -76
  39. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/18-copy-desejo-oferta.md +149 -149
  40. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/INDEX.md +45 -45
  41. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/guardrails.md +45 -45
  42. package/src/modules/lowticket/skills/wizz-lowticket-metodologia/knowledge/pontos-em-aberto.md +64 -66
  43. package/src/modules/lowticket/skills/wizz-lowticket-minerador/references/rubrica.md +63 -63
  44. package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/metas-e-medicao.md +23 -23
  45. package/src/modules/lowticket/skills/wizz-lowticket-pagina/references/padroes-de-codigo.md +50 -50
  46. package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/formato-do-diagnostico.md +9 -9
  47. package/src/modules/lowticket/skills/wizz-lowticket-trafego/references/reguas.md +42 -42
  48. package/src/modules/wizz/README.md +27 -27
  49. package/src/modules/wizz/_shared/cerebro.md +37 -37
  50. package/src/modules/wizz/_shared/communication-rules.md +15 -15
  51. package/src/modules/wizz/_shared/despacho-barato.md +6 -6
  52. package/src/modules/wizz/_shared/encerramento.md +23 -23
  53. package/src/modules/wizz/_shared/model-ladder.md +29 -29
  54. package/src/modules/wizz/_shared/planning-gate.md +30 -30
  55. package/src/modules/wizz/_shared/token-economy.md +28 -28
  56. package/src/modules/wizz/_shared/video-pipeline.md +42 -42
  57. package/src/modules/wizz/agents/wizz-ads/SKILL.md +16 -16
  58. package/src/modules/wizz/agents/wizz-ads/customize.toml +21 -21
  59. package/src/modules/wizz/agents/wizz-copy/SKILL.md +18 -18
  60. package/src/modules/wizz/agents/wizz-copy/customize.toml +24 -24
  61. package/src/modules/wizz/agents/wizz-designer/SKILL.md +24 -24
  62. package/src/modules/wizz/agents/wizz-designer/customize.toml +29 -29
  63. package/src/modules/wizz/agents/wizz-growth/SKILL.md +20 -20
  64. package/src/modules/wizz/agents/wizz-growth/customize.toml +34 -34
  65. package/src/modules/wizz/agents/wizz-maestro/SKILL.md +63 -63
  66. package/src/modules/wizz/agents/wizz-maestro/customize.toml +38 -38
  67. package/src/modules/wizz/agents/wizz-memoria/SKILL.md +19 -19
  68. package/src/modules/wizz/agents/wizz-memoria/customize.toml +24 -24
  69. package/src/modules/wizz/agents/wizz-qa/SKILL.md +22 -22
  70. package/src/modules/wizz/agents/wizz-qa/customize.toml +29 -29
  71. package/src/modules/wizz/agents/wizz-seo/SKILL.md +19 -19
  72. package/src/modules/wizz/agents/wizz-seo/customize.toml +27 -27
  73. package/src/modules/wizz/agents/wizz-social/SKILL.md +53 -53
  74. package/src/modules/wizz/agents/wizz-social/customize.toml +37 -37
  75. package/src/modules/wizz/agents/wizz-social/knowledge/analise-imagem-referencia.md +20 -20
  76. package/src/modules/wizz/agents/wizz-social/knowledge/biblioteca-prompts-imagem.md +71 -71
  77. package/src/modules/wizz/agents/wizz-social/knowledge/blueprint-roteiro-viral.md +196 -196
  78. package/src/modules/wizz/agents/wizz-social/knowledge/legenda-instagram.md +32 -32
  79. package/src/modules/wizz/agents/wizz-social/knowledge/prompts-imagem-video.md +48 -48
  80. package/src/modules/wizz/module.yaml +28 -28
  81. package/src/modules/wizz/overrides/wizz-agent-analyst.toml +17 -17
  82. package/src/modules/wizz/overrides/wizz-agent-architect.toml +21 -21
  83. package/src/modules/wizz/overrides/wizz-agent-dev.toml +20 -20
  84. package/src/modules/wizz/overrides/wizz-agent-pm.toml +11 -11
  85. package/src/modules/wizz/overrides/wizz-agent-tech-writer.toml +14 -14
  86. package/src/modules/wizz/overrides/wizz-agent-ux-designer.toml +14 -14
  87. package/src/modules/wizz/subagents/codex/wizz-exec-haiku.toml +17 -17
  88. package/src/modules/wizz/subagents/codex/wizz-exec-opus.toml +19 -19
  89. package/src/modules/wizz/subagents/codex/wizz-exec-review.toml +18 -18
  90. package/src/modules/wizz/subagents/codex/wizz-exec-sonnet.toml +18 -18
  91. package/src/modules/wizz/subagents/gemini/wizz-exec-haiku.md +17 -17
  92. package/src/modules/wizz/subagents/gemini/wizz-exec-opus.md +19 -19
  93. package/src/modules/wizz/subagents/gemini/wizz-exec-review.md +18 -18
  94. package/src/modules/wizz/subagents/gemini/wizz-exec-sonnet.md +18 -18
  95. package/src/modules/wizz/subagents/opencode/wizz-exec-haiku.md +17 -17
  96. package/src/modules/wizz/subagents/opencode/wizz-exec-opus.md +19 -19
  97. package/src/modules/wizz/subagents/opencode/wizz-exec-review.md +18 -18
  98. package/src/modules/wizz/subagents/opencode/wizz-exec-sonnet.md +18 -18
  99. package/src/modules/wizz/subagents/spec.yaml +84 -83
  100. package/src/modules/wizz/subagents/wizz-exec-haiku.md +17 -17
  101. package/src/modules/wizz/subagents/wizz-exec-opus.md +19 -19
  102. package/src/modules/wizz/subagents/wizz-exec-review.md +18 -18
  103. package/src/modules/wizz/subagents/wizz-exec-sonnet.md +18 -18
  104. package/src/skills-lib/cerebro/SKILL.md +61 -61
  105. package/src/skills-lib/cerebro/references/comandos-pesquisa-e-memoria.md +46 -46
  106. package/src/skills-lib/cerebro/references/comandos-rotina-e-captura.md +65 -65
  107. package/src/skills-lib/cerebro/references/comandos-sessao.md +74 -74
  108. package/src/skills-lib/ctc-align/SKILL.md +37 -37
  109. package/src/skills-lib/find-skills/SKILL.md +19 -19
  110. package/src/skills-lib/pesquisa-de-publico-do-piva/README.md +33 -33
  111. package/src/skills-lib/pesquisa-de-publico-do-piva/SKILL.md +42 -42
  112. package/src/skills-lib/pesquisa-de-publico-do-piva/prompts.md +20 -20
  113. package/src/skills-lib/references/premium-agency-rules.md +63 -63
  114. package/src/skills-lib/security-audit-pentest/SKILL.md +31 -31
  115. package/src/skills-lib/security-audit-pentest/references/stage-1-validacao-entrada.md +37 -37
  116. package/src/skills-lib/security-audit-pentest/references/stage-2-autorizacao.md +61 -61
  117. package/src/skills-lib/security-audit-pentest/references/stage-3-abuso-volume.md +37 -37
  118. package/src/skills-lib/security-audit-pentest/references/stage-4-vazamento-resposta.md +52 -52
  119. package/src/skills-lib/site-launch-kit/SKILL.md +42 -42
  120. package/src/skills-lib/site-launch-kit/references/01-cta-principal.md +20 -20
  121. package/src/skills-lib/site-launch-kit/references/02-barra-fixa-mobile.md +24 -24
  122. package/src/skills-lib/site-launch-kit/references/03-tempo-de-resposta.md +21 -21
  123. package/src/skills-lib/site-launch-kit/references/04-prova-social.md +22 -22
  124. package/src/skills-lib/site-launch-kit/references/05-faq-decisao.md +28 -28
  125. package/src/skills-lib/site-launch-kit/references/06-imagens-reais.md +27 -27
  126. package/src/skills-lib/site-launch-kit/references/07-endereco-como-chegar.md +25 -25
  127. package/src/skills-lib/site-launch-kit/references/08-titles.md +30 -30
  128. package/src/skills-lib/site-launch-kit/references/09-open-graph.md +23 -23
  129. package/src/skills-lib/site-launch-kit/references/10-breadcrumbs.md +23 -23
  130. package/src/skills-lib/site-launch-kit/references/11-alt-text.md +28 -28
  131. package/src/skills-lib/site-launch-kit/references/12-schema-local.md +22 -22
  132. package/src/skills-lib/site-launch-kit/references/13-robots-sitemap.md +26 -26
  133. package/src/skills-lib/site-launch-kit/references/14-privacidade-termos.md +27 -27
  134. package/src/skills-lib/site-launch-kit/references/15-medicao.md +23 -23
  135. package/src/skills-lib/wizz-ai-product-design/SKILL.md +70 -70
  136. package/src/skills-lib/wizz-auth-and-secrets/SKILL.md +78 -78
  137. package/src/skills-lib/wizz-caching-and-queues/SKILL.md +40 -40
  138. package/src/skills-lib/wizz-cloud-and-infra/SKILL.md +22 -22
  139. package/src/skills-lib/wizz-database-and-deps/SKILL.md +52 -52
  140. package/src/skills-lib/wizz-database-scaling/SKILL.md +31 -31
  141. package/src/skills-lib/wizz-desktop-security/SKILL.md +49 -49
  142. package/src/skills-lib/wizz-implementation-planner/SKILL.md +56 -56
  143. package/src/skills-lib/wizz-implementation-planner/references/folder-structure-and-dependencies.md +14 -14
  144. package/src/skills-lib/wizz-implementation-planner/references/implementation-phases.md +15 -15
  145. package/src/skills-lib/wizz-implementation-planner/references/implementation-types.md +9 -9
  146. package/src/skills-lib/wizz-implementation-planner/references/motion-path-implementation.md +19 -19
  147. package/src/skills-lib/wizz-implementation-planner/references/performance-plan.md +27 -27
  148. package/src/skills-lib/wizz-infrastructure/SKILL.md +21 -21
  149. package/src/skills-lib/wizz-inicio-de-projeto/SKILL.md +63 -63
  150. package/src/skills-lib/wizz-inicio-de-projeto/references/implementacao-api-forms.md +27 -27
  151. package/src/skills-lib/wizz-inicio-de-projeto/references/padroes-arquiteturais-e-pastas.md +31 -31
  152. package/src/skills-lib/wizz-inicio-de-projeto/references/seguranca-e-regras-codigo.md +21 -21
  153. package/src/skills-lib/wizz-launch-readiness/SKILL.md +61 -61
  154. package/src/skills-lib/wizz-launch-readiness/references/01-tecnico-build.md +16 -16
  155. package/src/skills-lib/wizz-launch-readiness/references/02-seguranca.md +16 -16
  156. package/src/skills-lib/wizz-launch-readiness/references/03-seo-descoberta.md +16 -16
  157. package/src/skills-lib/wizz-launch-readiness/references/04-analytics-medicao.md +15 -15
  158. package/src/skills-lib/wizz-launch-readiness/references/05-conteudo-prova-social.md +15 -15
  159. package/src/skills-lib/wizz-launch-readiness/references/06-legal-lgpd.md +15 -15
  160. package/src/skills-lib/wizz-launch-readiness/references/07-infra-deploy-rollback.md +16 -16
  161. package/src/skills-lib/wizz-launch-readiness/references/08-fusao-priorizacao.md +19 -19
  162. package/src/skills-lib/wizz-launch-readiness/references/09-persistencia-project-context.md +26 -26
  163. package/src/skills-lib/wizz-motion-3d-director/SKILL.md +70 -70
  164. package/src/skills-lib/wizz-motion-3d-director/references/image-to-video-workflow.md +34 -35
  165. package/src/skills-lib/wizz-motion-3d-director/references/motion-paths.md +70 -70
  166. package/src/skills-lib/wizz-motion-3d-director/references/performance-and-handoff.md +17 -17
  167. package/src/skills-lib/wizz-offer-forge/README.md +9 -9
  168. package/src/skills-lib/wizz-offer-forge/SKILL.md +64 -64
  169. package/src/skills-lib/wizz-offer-forge/references/empilhamento-valor.md +17 -17
  170. package/src/skills-lib/wizz-offer-forge/references/garantia-reversa.md +16 -16
  171. package/src/skills-lib/wizz-offer-forge/references/mecanismo-unico.md +19 -19
  172. package/src/skills-lib/wizz-offer-forge/references/ponte-trafego.md +17 -17
  173. package/src/skills-lib/wizz-premium-landing-ui-researcher/SKILL.md +36 -36
  174. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/audit-protocol.md +81 -82
  175. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/component-sources.md +105 -105
  176. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/core-goal.md +39 -39
  177. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/dashboard-and-portfolio-modes.md +49 -50
  178. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/handoffs.md +33 -34
  179. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/landing-page-strategy.md +141 -142
  180. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/mandatory-process.md +24 -24
  181. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/output-format-and-quality.md +73 -73
  182. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/prompt-templates.md +4 -4
  183. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/site-levels.md +282 -283
  184. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-first-protocol.md +39 -39
  185. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/source-links.md +8 -8
  186. package/src/skills-lib/wizz-premium-landing-ui-researcher/references/stack-and-visual-direction.md +63 -64
  187. package/src/skills-lib/wizz-router/SKILL.md +38 -38
  188. package/src/skills-lib/wizz-router/references/auditoria-360.md +12 -12
  189. package/src/skills-lib/wizz-router/references/routing-table-flat.md +80 -80
  190. package/src/skills-lib/wizz-tracking-audit/SKILL.md +48 -48
  191. package/src/skills-lib/wizz-tracking-audit/references/modo-diagnostico.md +43 -43
  192. package/src/skills-lib/wizz-tracking-audit/references/modo-implantacao.md +59 -59
  193. package/src/skills-lib/wizz-tracking-audit/references/utm-e-atribuicao.md +35 -35
  194. package/src/skills-lib/wizz-web-security/SKILL.md +35 -35
  195. package/src/skills-lib/wizz-web-security/references/checklist-deploy.md +50 -50
  196. package/src/skills-lib/wizz-web-security/references/headers-rate-limit-cors.md +33 -33
  197. package/src/skills-lib/wizz-web-security/references/owasp-top5-detalhado.md +36 -36
  198. package/tools/hooks/session-rules.js +14 -11
@@ -1,36 +1,36 @@
1
1
  ---
2
2
  name: wizz-cloud-and-infra
3
- description: Otimização de custo de cloud — right-sizing, spot instances, reserved instances, S3 lifecycle, auto-scaling, auditoria de custo AWS/GCP. Use quando o pedido envolver redução de custo de infra, cloud spend, billing de cloud.
3
+ description: Cloud cost optimization — right-sizing, spot instances, reserved instances, S3 lifecycle, auto-scaling, AWS/GCP cost audits. Use when the request involves reducing infra cost, cloud spend, cloud billing.
4
4
  ---
5
5
 
6
6
  # Cloud and Infrastructure Cost Optimization
7
7
 
8
- ## Principais alavancas de economia em cloud
8
+ ## Main cloud savings levers
9
9
 
10
10
  ### Compute (EC2, VPS, Cloud Run)
11
- - **Right-sizing**: instâncias superdimensionadas são o erro mais comum. Use métricas de CPU/RAM dos últimos 30 dias para dimensionar corretamente
12
- - **Spot/Preemptible instances**: para workloads tolerantes a interrupção, economia de 60-90%
13
- - **Reserved instances**: compromisso de 1 ano = ~40% de desconto frente ao on-demand
14
- - **Auto-scaling**: nunca deixe instâncias fixas onde há variação de tráfego
11
+ - **Right-sizing**: oversized instances are the most common mistake. Use CPU/RAM metrics from the last 30 days to size correctly
12
+ - **Spot/Preemptible instances**: for interruption-tolerant workloads, 60-90% savings
13
+ - **Reserved instances**: a 1-year commitment = ~40% discount vs. on-demand
14
+ - **Auto-scaling**: never leave fixed instances where traffic varies
15
15
 
16
16
  ### Storage
17
- - **S3/Object Storage lifecycle policies**: mova arquivos antigos para tiers mais baratos (Glacier, Nearline) automaticamente
18
- - **Snapshots desnecessários**: audite snapshots de discos que já foram deletados
19
- - **Egress**: tráfego de saída é caro. CDN resolve a maioria dos casos
17
+ - **S3/Object Storage lifecycle policies**: automatically move old files to cheaper tiers (Glacier, Nearline)
18
+ - **Unnecessary snapshots**: audit snapshots of disks that have already been deleted
19
+ - **Egress**: outbound traffic is expensive. A CDN solves most cases
20
20
 
21
- ### Banco de dados
22
- - **Leitura vs escrita**: separe réplicas de leitura. RDS Multi-AZ só vale para produção crítica
23
- - **Connection pooling**: PgBouncer/RDS Proxy evita custos de instâncias maiores só por conexões
24
- - **Backups automáticos**: defina retention period adequado, não deixe no padrão infinito
21
+ ### Database
22
+ - **Read vs write**: separate read replicas. RDS Multi-AZ is only worth it for critical production
23
+ - **Connection pooling**: PgBouncer/RDS Proxy avoids the cost of bigger instances just to handle connections
24
+ - **Automatic backups**: set an appropriate retention period, don't leave it at the infinite default
25
25
 
26
26
  ### Kubernetes / Containers
27
- - **Namespace resource limits**: sem limits definidos, pods consomem tudo
28
- - **Idle pods**: use HPA (Horizontal Pod Autoscaler) para zerar réplicas fora do horário
29
- - **Container registry**: limpe imagens antigas, cobranças por GB armazenado
27
+ - **Namespace resource limits**: without limits defined, pods consume everything
28
+ - **Idle pods**: use HPA (Horizontal Pod Autoscaler) to zero out replicas outside business hours
29
+ - **Container registry**: clean up old images, billed per GB stored
30
30
 
31
- ## Checklist rápido de auditoria
32
- - [ ] CPU médio > 20% nas instâncias principais?
33
- - [ ] Algum serviço sem auto-scaling em produção?
34
- - [ ] Snapshots/backups com retenção indefinida?
35
- - [ ] Egress sem CDN em assets estáticos?
36
- - [ ] Banco de dados em instância maior que o necessário?
31
+ ## Quick audit checklist
32
+ - [ ] Average CPU > 20% on the main instances?
33
+ - [ ] Any service without auto-scaling in production?
34
+ - [ ] Snapshots/backups with indefinite retention?
35
+ - [ ] Egress without a CDN on static assets?
36
+ - [ ] Database on a bigger instance than necessary?
@@ -1,81 +1,81 @@
1
1
  ---
2
2
  name: wizz-database-and-deps
3
3
  description: >
4
- Segurança de banco de dados e dependências. Usar quando: revisar queries de banco, checar SQL injection,
5
- auditar permissões de banco, criptografar PII, revisar pacotes vulneráveis, configurar Dependabot/Renovate,
6
- auditar RPCs Supabase, verificar menor privilégio no banco. Use quando o usuário mencionar SQL,
7
- query builder, RPC do Supabase, npm/pnpm audit, Dependabot, pacotes vulneráveis, PII no banco ou lock file.
4
+ Database and dependency security. Use when: reviewing database queries, checking for SQL injection,
5
+ auditing database permissions, encrypting PII, reviewing vulnerable packages, configuring Dependabot/Renovate,
6
+ auditing Supabase RPCs, verifying least privilege in the database. Use when the user mentions SQL,
7
+ query builder, Supabase RPC, npm/pnpm audit, Dependabot, vulnerable packages, PII in the database, or lock file.
8
8
  ---
9
9
 
10
10
  # Database and Dependencies Security
11
11
 
12
- ## Banco de dados
12
+ ## Database
13
13
 
14
14
  ### SQL Injection
15
- - Use sempre queries parametrizadas ou ORM com binding correto
16
- - Nunca concatene input do usuário em SQL
17
- - Mesmo com ORM: raw queries precisam de atenção
18
- - Teste com payloads: `' OR '1'='1`, `'; DROP TABLE users;--`
15
+ - Always use parameterized queries or an ORM with correct binding
16
+ - Never concatenate user input into SQL
17
+ - Even with an ORM: raw queries need attention
18
+ - Test with payloads: `' OR '1'='1`, `'; DROP TABLE users;--`
19
19
 
20
- ### Stack Supabase — como prevenir SQLi
21
- O Supabase client já é parametrizado por design:
20
+ ### Supabase stack — how to prevent SQLi
21
+ The Supabase client is already parameterized by design:
22
22
  ```ts
23
- // SEGURO — query-builder: valores passados como args separados
23
+ // SAFE — query-builder: values passed as separate args
24
24
  const { data } = await supabase
25
25
  .from("captou_leads")
26
26
  .select("*")
27
- .eq("workspace_id", workspaceId) // parametrizado
28
- .ilike("name", `%${search}%`) // parametrizado (não concatenado em SQL)
27
+ .eq("workspace_id", workspaceId) // parameterized
28
+ .ilike("name", `%${search}%`) // parameterized (not concatenated into SQL)
29
29
 
30
- // SEGURO — RPC com params nomeados
30
+ // SAFE — RPC with named params
31
31
  await supabase.rpc("find_captou_extraction_job_by_run_id", { run_id: runId })
32
32
 
33
- // PERIGOSO — raw SQL com interpolação (evitar)
33
+ // DANGEROUS — raw SQL with interpolation (avoid)
34
34
  await supabase.rpc("exec_sql", { sql: `SELECT * WHERE id = '${id}'` })
35
35
  ```
36
36
 
37
- **Ressalva importante:** o corpo das funções RPC vive no Postgres (fora do repo). Auditar no dashboard do Supabase se alguma RPC usa `EXECUTE format('... %s', input)` com input do usuário — isso é SQL injection server-side.
37
+ **Important caveat:** RPC function bodies live in Postgres (outside the repo). Audit the Supabase dashboard for any RPC using `EXECUTE format('... %s', input)` with user input — that's server-side SQL injection.
38
38
 
39
- ### Princípio do menor privilégio
40
- - Usuário da aplicação: apenas SELECT/INSERT/UPDATE/DELETE nas tabelas necessárias
41
- - Nunca use usuário root/admin da aplicação
42
- - Crie usuário separado para migrations (com ALTER TABLE, CREATE, DROP)
43
- - Read replicas: usuário somente leitura
44
- - Supabase: `SUPABASE_SERVICE_ROLE_KEY` bypassa RLS — só usar em server-side para operações admin; para operações de usuário, usar a `anon key` + RLS
39
+ ### Principle of least privilege
40
+ - Application user: only SELECT/INSERT/UPDATE/DELETE on the necessary tables
41
+ - Never use a root/admin user for the application
42
+ - Create a separate user for migrations (with ALTER TABLE, CREATE, DROP)
43
+ - Read replicas: read-only user
44
+ - Supabase: `SUPABASE_SERVICE_ROLE_KEY` bypasses RLS — only use it server-side for admin operations; for user operations, use the `anon key` + RLS
45
45
 
46
- ### Dados sensíveis em banco
47
- - Criptografe PII (CPF, dados de cartão) em repouso com AES-256
48
- - Não armazene dados de cartão (use tokenização via gateway de pagamento)
49
- - Logs e audit trail: guarde quem acessou/modificou dados sensíveis
50
- - Backups criptografados: a cópia do banco não pode ser mais fraca que o banco
51
- - `deleted_at timestamp` para soft delete — nunca apague dados reais; isto também é auditoria
46
+ ### Sensitive data in the database
47
+ - Encrypt PII (national ID, card data) at rest with AES-256
48
+ - Don't store card data (use tokenization via the payment gateway)
49
+ - Logs and audit trail: keep a record of who accessed/modified sensitive data
50
+ - Encrypted backups: the database copy can't be weaker than the database itself
51
+ - `deleted_at timestamp` for soft delete — never delete real data; this is also an audit trail
52
52
 
53
- ### Checklist de segurança de banco
54
- - [ ] Nenhuma query monta SQL com template literal/concatenação?
55
- - [ ] `grep -r "\.sql\|\.query(\|raw(" src/` → revisar manualmente?
56
- - [ ] RPCs Supabase auditadas no dashboard (sem `EXECUTE format(...)` inseguro)?
57
- - [ ] RLS ativo nas tabelas de domínio? (`SELECT tablename, rowsecurity FROM pg_tables`)
58
- - [ ] `SUPABASE_SERVICE_ROLE_KEY` usada apenas em server-side?
53
+ ### Database security checklist
54
+ - [ ] No query builds SQL via template literal/concatenation?
55
+ - [ ] `grep -r "\.sql\|\.query(\|raw(" src/` → reviewed manually?
56
+ - [ ] Supabase RPCs audited in the dashboard (no unsafe `EXECUTE format(...)`)?
57
+ - [ ] RLS enabled on domain tables? (`SELECT tablename, rowsecurity FROM pg_tables`)
58
+ - [ ] `SUPABASE_SERVICE_ROLE_KEY` used only server-side?
59
59
 
60
- ## Dependências
60
+ ## Dependencies
61
61
 
62
- ### Vulnerabilidades em pacotes
63
- - `npm audit` / `pnpm audit` / `pip audit`: rode em CI em cada PR
64
- - Dependabot ou Renovate: automatize atualizações de segurança
65
- - Lock files (`package-lock.json`, `pnpm-lock.yaml`): sempre commite, garante reprodutibilidade
62
+ ### Package vulnerabilities
63
+ - `npm audit` / `pnpm audit` / `pip audit`: run in CI on every PR
64
+ - Dependabot or Renovate: automate security updates
65
+ - Lock files (`package-lock.json`, `pnpm-lock.yaml`): always commit them, they guarantee reproducibility
66
66
 
67
67
  ### Supply chain attacks
68
- - Prefira pacotes com muitos downloads e manutenção ativa
69
- - Verifique integridade: `npm install --ignore-scripts` para pacotes suspeitos
70
- - SBOM (Software Bill of Materials): documente todas as dependências em produção
68
+ - Prefer packages with many downloads and active maintenance
69
+ - Verify integrity: `npm install --ignore-scripts` for suspicious packages
70
+ - SBOM (Software Bill of Materials): document all dependencies in production
71
71
 
72
- ### Atualizações
73
- - Dependências de segurança: atualize imediatamente
74
- - Dependências menores: sprint a sprint
75
- - Major versions: planeje com antecedência, não deixe acumular
72
+ ### Updates
73
+ - Security dependencies: update immediately
74
+ - Minor dependencies: sprint by sprint
75
+ - Major versions: plan ahead, don't let them pile up
76
76
 
77
- ### Checklist de dependências
78
- - [ ] `pnpm audit` (ou `npm audit`) rodado e sem HIGH/CRITICAL abertos?
79
- - [ ] Lock file commitado?
80
- - [ ] Dependabot ou Renovate configurado no repo?
81
- - [ ] Pacotes de dev não vão para produção (`devDependencies` correto)?
77
+ ### Dependencies checklist
78
+ - [ ] `pnpm audit` (or `npm audit`) run with no open HIGH/CRITICAL findings?
79
+ - [ ] Lock file committed?
80
+ - [ ] Dependabot or Renovate configured in the repo?
81
+ - [ ] Dev packages don't go to production (`devDependencies` correct)?
@@ -1,44 +1,44 @@
1
1
  ---
2
2
  name: wizz-database-scaling
3
- description: Escalar banco de dados — sharding, réplicas de leitura, connection pooling, índices, N+1, particionamento. Use quando o pedido envolver banco lento, performance de queries, escala de dados.
3
+ description: Scaling databases — sharding, read replicas, connection pooling, indexes, N+1, partitioning. Use when the request involves a slow database, query performance, data scaling.
4
4
  ---
5
5
 
6
6
  # Database Scaling
7
7
 
8
- ## Identificando o gargalo de banco
9
- - Queries lentas: ative slow query log (> 100ms é sinal de alerta)
10
- - Connections esgotadas: use connection pooling (PgBouncer, RDS Proxy)
11
- - CPU alta no banco: índices faltando ou queries ineficientes
12
- - I/O alto: volume de dados crescendo mais rápido que o hardware
8
+ ## Identifying the database bottleneck
9
+ - Slow queries: enable the slow query log (> 100ms is a warning sign)
10
+ - Exhausted connections: use connection pooling (PgBouncer, RDS Proxy)
11
+ - High CPU on the database: missing indexes or inefficient queries
12
+ - High I/O: data volume growing faster than the hardware
13
13
 
14
- ## Índices
14
+ ## Indexes
15
15
 
16
- ### Quando criar
17
- - Colunas usadas em WHERE, ORDER BY, JOIN
18
- - Colunas de foreign key que não têm índice automático
19
- - Combinações de colunas usadas juntas em filtros
16
+ ### When to create one
17
+ - Columns used in WHERE, ORDER BY, JOIN
18
+ - Foreign key columns that don't have an automatic index
19
+ - Combinations of columns used together in filters
20
20
 
21
- ### Quando não criar
22
- - Tabelas pequenas (< 10k linhas) raramente se beneficiam
23
- - Colunas com poucos valores distintos (ex: status com 3 opções)
24
- - Índices demais degradam escrita (todo INSERT/UPDATE precisa atualizar índices)
21
+ ### When not to create one
22
+ - Small tables (< 10k rows) rarely benefit
23
+ - Columns with few distinct values (e.g. a status with 3 options)
24
+ - Too many indexes degrade writes (every INSERT/UPDATE has to update the indexes)
25
25
 
26
26
  ## Read Replicas
27
- - Separe queries de leitura (relatórios, listagens) para réplica
28
- - Escreva sempre no primário
29
- - Atenção ao replication lag em dados críticos
27
+ - Route read queries (reports, listings) to a replica
28
+ - Always write to the primary
29
+ - Watch out for replication lag on critical data
30
30
 
31
31
  ## Sharding
32
- - Última opção, após esgotar otimizações de query e hardware
33
- - Shard por ID do usuário ou tenant é o padrão mais comum
34
- - Aumenta muito a complexidade de queries que cruzam shards
35
-
36
- ## Particionamento (PostgreSQL)
37
- - Particione tabelas grandes por data (logs, eventos, transações)
38
- - Facilita DELETE de dados antigos (drop partition em vez de DELETE em massa)
39
- - Melhora performance de queries com filtro de data
40
-
41
- ## Conexões e pool
42
- - Limite de conexões do Postgres: default 100, aumente com cuidado
43
- - PgBouncer em transaction mode: centenas de clientes, dezenas de conexões reais
44
- - Nunca abra conexão sem fechar (connection leak mata o banco)
32
+ - Last resort, after exhausting query and hardware optimizations
33
+ - Sharding by user ID or tenant is the most common pattern
34
+ - Greatly increases the complexity of queries that cross shards
35
+
36
+ ## Partitioning (PostgreSQL)
37
+ - Partition large tables by date (logs, events, transactions)
38
+ - Makes deleting old data easier (drop partition instead of a bulk DELETE)
39
+ - Improves performance of queries with a date filter
40
+
41
+ ## Connections and pooling
42
+ - Postgres connection limit: default 100, increase with care
43
+ - PgBouncer in transaction mode: hundreds of clients, dozens of real connections
44
+ - Never open a connection without closing it (a connection leak kills the database)
@@ -1,75 +1,75 @@
1
1
  ---
2
2
  name: wizz-desktop-security
3
3
  description: >
4
- Segurança para apps desktop e Electron. Usar quando: desenvolver app Electron, configurar contextIsolation/IPC,
5
- implementar code signing, armazenar tokens/credenciais localmente, configurar auto-update seguro,
6
- distribuir app para macOS/Windows. Use quando o usuário mencionar Electron, IPC, contextBridge,
7
- preload script, safeStorage, code signing, notarização ou auto-update.
4
+ Security for desktop and Electron apps. Use when: developing an Electron app, configuring contextIsolation/IPC,
5
+ implementing code signing, storing tokens/credentials locally, configuring secure auto-update,
6
+ distributing an app for macOS/Windows. Use when the user mentions Electron, IPC, contextBridge,
7
+ preload script, safeStorage, code signing, notarization, or auto-update.
8
8
  ---
9
9
 
10
10
  # Desktop Security
11
11
 
12
- ## Electron / Apps Desktop
12
+ ## Electron / Desktop Apps
13
13
 
14
- ### Contexto de segurança
15
- - nodeIntegration: false (padrão desde Electron 5, mantenha assim)
16
- - contextIsolation: true (obrigatório)
17
- - sandbox: true quando possível
18
- - webSecurity: false nunca em produção
19
- - Nunca carregue conteúdo remoto numa janela com acesso a APIs privilegiadas; conteúdo remoto = sandbox + sem preload sensível
20
- - Mantenha o Electron atualizado (patches de Chromium/Node chegam por release do Electron)
14
+ ### Security context
15
+ - nodeIntegration: false (default since Electron 5, keep it that way)
16
+ - contextIsolation: true (mandatory)
17
+ - sandbox: true when possible
18
+ - webSecurity: false never in production
19
+ - Never load remote content in a window with access to privileged APIs; remote content = sandbox + no sensitive preload
20
+ - Keep Electron up to date (Chromium/Node patches arrive via Electron releases)
21
21
 
22
- ### Navegação e janelas
23
- - Bloqueie navegação para fora do app: handler em `will-navigate` que cancela URLs fora da allowlist
24
- - `setWindowOpenHandler`: negue por padrão (`{ action: "deny" }`), abra externo só o que for aprovado
25
- - `shell.openExternal` só com URL validada (esquema `https:` e host esperado), nunca com input cru do renderer
22
+ ### Navigation and windows
23
+ - Block navigation outside the app: a `will-navigate` handler that cancels URLs outside the allowlist
24
+ - `setWindowOpenHandler`: deny by default (`{ action: "deny" }`), only open externally what's been approved
25
+ - `shell.openExternal` only with a validated URL (`https:` scheme and expected host), never with raw input from the renderer
26
26
 
27
- ### IPC (comunicação renderer <> main)
28
- - Valide e sanitize todos os dados vindos do renderer (o renderer é território hostil: trate como input de usuário)
29
- - Exponha apenas as funções necessárias via contextBridge, cada uma com assinatura fixa
30
- - Nunca exponha ipcRenderer diretamente ao renderer
31
- - Em `ipcMain.handle`, valide tipo e tamanho dos argumentos; se houver múltiplas janelas, cheque `event.senderFrame.url` contra o esperado
27
+ ### IPC (renderer <> main communication)
28
+ - Validate and sanitize all data coming from the renderer (the renderer is hostile territory: treat it as user input)
29
+ - Expose only the necessary functions via contextBridge, each with a fixed signature
30
+ - Never expose ipcRenderer directly to the renderer
31
+ - In `ipcMain.handle`, validate the type and size of the arguments; if there are multiple windows, check `event.senderFrame.url` against what's expected
32
32
 
33
33
  ```ts
34
- // preload.ts: superfície mínima, sem repassar ipcRenderer
34
+ // preload.ts: minimal surface, without passing through ipcRenderer
35
35
  contextBridge.exposeInMainWorld("api", {
36
36
  saveNote: (text: string) => ipcRenderer.invoke("notes:save", text),
37
37
  })
38
38
 
39
- // main.ts: valida antes de agir
39
+ // main.ts: validate before acting
40
40
  ipcMain.handle("notes:save", (event, text) => {
41
- if (typeof text !== "string" || text.length > 10_000) throw new Error("input inválido")
41
+ if (typeof text !== "string" || text.length > 10_000) throw new Error("invalid input")
42
42
  // ...
43
43
  })
44
44
  ```
45
45
 
46
- ### Atualizações automáticas
47
- - Assine o pacote de atualização com certificado de código (code signing)
48
- - Valide assinatura antes de instalar atualização
49
- - Distribua via HTTPS com certificate pinning se possível
46
+ ### Automatic updates
47
+ - Sign the update package with a code-signing certificate
48
+ - Validate the signature before installing an update
49
+ - Distribute over HTTPS with certificate pinning if possible
50
50
 
51
- ## Armazenamento local
51
+ ## Local storage
52
52
 
53
- ### O que armazenar localmente
54
- - Tokens de sessão: `safeStorage` do Electron (usa Keychain no macOS, DPAPI no Windows, libsecret no Linux), nunca localStorage
55
- - `safeStorage.encryptString(token)` antes de gravar em disco; `keytar` está arquivado, não use em projeto novo
56
- - Dados sensíveis do usuário: criptografados via `safeStorage` ou AES-256-GCM com chave guardada no keychain do OS
53
+ ### What to store locally
54
+ - Session tokens: Electron's `safeStorage` (uses Keychain on macOS, DPAPI on Windows, libsecret on Linux), never localStorage
55
+ - `safeStorage.encryptString(token)` before writing to disk; `keytar` is archived, don't use it in a new project
56
+ - Sensitive user data: encrypted via `safeStorage` or AES-256-GCM with the key kept in the OS keychain
57
57
 
58
- ### O que nunca armazenar localmente
59
- - Senhas em texto plano
60
- - Chaves privadas sem criptografia
61
- - Dados sensíveis em localStorage/sessionStorage sem criptografia
58
+ ### What to never store locally
59
+ - Plaintext passwords
60
+ - Unencrypted private keys
61
+ - Sensitive data in localStorage/sessionStorage without encryption
62
62
 
63
- ## Distribuição
64
- - Code signing obrigatório (Windows: Authenticode, macOS: Apple Developer ID)
65
- - Notarização no macOS para distribuição fora da App Store
66
- - Auto-update com verificação de integridade antes de executar
63
+ ## Distribution
64
+ - Code signing mandatory (Windows: Authenticode, macOS: Apple Developer ID)
65
+ - Notarization on macOS for distribution outside the App Store
66
+ - Auto-update with integrity verification before running
67
67
 
68
- ## Checklist rápido (antes de empacotar)
69
- - [ ] `contextIsolation: true`, `nodeIntegration: false`, `sandbox: true` onde possível?
70
- - [ ] Nenhuma janela privilegiada carrega URL remota?
71
- - [ ] `will-navigate` e `setWindowOpenHandler` restringem navegação?
72
- - [ ] Todo handler de `ipcMain` valida os argumentos?
73
- - [ ] Tokens em `safeStorage`/keychain, nada sensível em localStorage?
74
- - [ ] Build assinado (e notarizado no macOS)? Auto-update valida assinatura?
75
- - [ ] Versão do Electron atual (sem CVE aberta)?
68
+ ## Quick checklist (before packaging)
69
+ - [ ] `contextIsolation: true`, `nodeIntegration: false`, `sandbox: true` where possible?
70
+ - [ ] No privileged window loads a remote URL?
71
+ - [ ] `will-navigate` and `setWindowOpenHandler` restrict navigation?
72
+ - [ ] Every `ipcMain` handler validates its arguments?
73
+ - [ ] Tokens in `safeStorage`/keychain, nothing sensitive in localStorage?
74
+ - [ ] Build signed (and notarized on macOS)? Does auto-update validate the signature?
75
+ - [ ] Current Electron version (no open CVE)?