@luanpdd/kit-mcp 1.20.0 → 1.21.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 (259) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +648 -648
  3. package/gates/dept-cycle-prevention.md +179 -0
  4. package/gates/multi-tenant-rls-coverage.md +102 -0
  5. package/gates/service-role-not-in-user-facing.md +113 -0
  6. package/kit/COMANDOS.md +138 -138
  7. package/kit/README.md +52 -52
  8. package/kit/agents/advisor-researcher.md +106 -106
  9. package/kit/agents/assumptions-analyzer.md +107 -107
  10. package/kit/agents/audit-log-implementer.md +175 -0
  11. package/kit/agents/b2b-saas-architect.md +156 -0
  12. package/kit/agents/codebase-mapper.md +768 -768
  13. package/kit/agents/crm-pipeline-implementer.md +150 -0
  14. package/kit/agents/debugger.md +772 -772
  15. package/kit/agents/evolution-go-integrator.md +179 -0
  16. package/kit/agents/example-reviewer.md +21 -21
  17. package/kit/agents/executor.md +523 -523
  18. package/kit/agents/integration-checker.md +200 -200
  19. package/kit/agents/invite-flow-implementer.md +137 -0
  20. package/kit/agents/lgpd-compliance-auditor.md +206 -0
  21. package/kit/agents/multi-tenant-isolation-auditor.md +243 -0
  22. package/kit/agents/multi-tenant-rls-writer.md +262 -0
  23. package/kit/agents/nyquist-auditor.md +178 -178
  24. package/kit/agents/org-onboarding-implementer.md +202 -0
  25. package/kit/agents/phase-researcher.md +696 -696
  26. package/kit/agents/plan-checker.md +272 -272
  27. package/kit/agents/planner.md +891 -891
  28. package/kit/agents/project-researcher.md +652 -652
  29. package/kit/agents/research-synthesizer.md +245 -245
  30. package/kit/agents/roadmapper.md +677 -677
  31. package/kit/agents/super-admin-implementer.md +182 -0
  32. package/kit/agents/ui-auditor.md +437 -437
  33. package/kit/agents/ui-checker.md +302 -302
  34. package/kit/agents/ui-researcher.md +355 -355
  35. package/kit/agents/user-profiler.md +175 -175
  36. package/kit/agents/verifier.md +728 -728
  37. package/kit/commands/adicionar-backlog.md +75 -75
  38. package/kit/commands/adicionar-fase.md +42 -42
  39. package/kit/commands/adicionar-tarefa.md +45 -45
  40. package/kit/commands/adicionar-testes.md +41 -41
  41. package/kit/commands/ajuda.md +21 -21
  42. package/kit/commands/atualizar.md +37 -37
  43. package/kit/commands/auditar-marco.md +179 -179
  44. package/kit/commands/auditar-uat.md +23 -23
  45. package/kit/commands/autonomo.md +40 -40
  46. package/kit/commands/branch-pr.md +24 -24
  47. package/kit/commands/concluir-marco.md +247 -247
  48. package/kit/commands/configuracoes.md +36 -36
  49. package/kit/commands/definir-perfil.md +10 -10
  50. package/kit/commands/depurar.md +190 -190
  51. package/kit/commands/discutir-fase.md +131 -131
  52. package/kit/commands/entrar-discord.md +17 -17
  53. package/kit/commands/estatisticas.md +18 -18
  54. package/kit/commands/example-greeting.md +33 -33
  55. package/kit/commands/executar-fase.md +58 -58
  56. package/kit/commands/expresso.md +56 -56
  57. package/kit/commands/fase-ui.md +34 -34
  58. package/kit/commands/fazer.md +57 -57
  59. package/kit/commands/fio.md +125 -125
  60. package/kit/commands/fluxos-trabalho.md +64 -64
  61. package/kit/commands/forense.md +176 -176
  62. package/kit/commands/gerenciador.md +38 -38
  63. package/kit/commands/inserir-fase.md +31 -31
  64. package/kit/commands/limpeza.md +17 -17
  65. package/kit/commands/listar-hipoteses-fase.md +45 -45
  66. package/kit/commands/listar-workspaces.md +18 -18
  67. package/kit/commands/mapear-codebase.md +70 -70
  68. package/kit/commands/multi-tenant.md +163 -0
  69. package/kit/commands/nota.md +33 -33
  70. package/kit/commands/novo-marco.md +43 -43
  71. package/kit/commands/novo-projeto.md +41 -41
  72. package/kit/commands/novo-workspace.md +43 -43
  73. package/kit/commands/pausar-trabalho.md +37 -37
  74. package/kit/commands/perfil-usuario.md +45 -45
  75. package/kit/commands/pesquisar-fase.md +195 -195
  76. package/kit/commands/planejar-fase.md +67 -67
  77. package/kit/commands/planejar-lacunas.md +33 -33
  78. package/kit/commands/plantar-ideia.md +25 -25
  79. package/kit/commands/progresso.md +24 -24
  80. package/kit/commands/proximo.md +30 -30
  81. package/kit/commands/publicar.md +490 -490
  82. package/kit/commands/rapido.md +35 -35
  83. package/kit/commands/reaplicar-patches.md +124 -124
  84. package/kit/commands/relatorio-sessao.md +19 -19
  85. package/kit/commands/remover-fase.md +31 -31
  86. package/kit/commands/remover-workspace.md +26 -26
  87. package/kit/commands/resumo-marco.md +50 -50
  88. package/kit/commands/retomar-trabalho.md +40 -40
  89. package/kit/commands/revisar-backlog.md +60 -60
  90. package/kit/commands/revisar-ui.md +32 -32
  91. package/kit/commands/revisar.md +37 -37
  92. package/kit/commands/saude.md +21 -21
  93. package/kit/commands/setup-notion.md +93 -93
  94. package/kit/commands/sync-main.md +68 -68
  95. package/kit/commands/validar-fase.md +35 -35
  96. package/kit/commands/verificar-tarefas.md +44 -44
  97. package/kit/commands/verificar-trabalho.md +64 -64
  98. package/kit/file-manifest.json +30 -3
  99. package/kit/framework/bin/lib/commands.cjs +959 -959
  100. package/kit/framework/bin/lib/config.cjs +442 -442
  101. package/kit/framework/bin/lib/core.cjs +1230 -1230
  102. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  103. package/kit/framework/bin/lib/init.cjs +1442 -1442
  104. package/kit/framework/bin/lib/milestone.cjs +252 -252
  105. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  106. package/kit/framework/bin/lib/phase.cjs +888 -888
  107. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  108. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  109. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  110. package/kit/framework/bin/lib/security.cjs +382 -382
  111. package/kit/framework/bin/lib/state.cjs +1031 -1031
  112. package/kit/framework/bin/lib/template.cjs +222 -222
  113. package/kit/framework/bin/lib/uat.cjs +282 -282
  114. package/kit/framework/bin/lib/verify.cjs +888 -888
  115. package/kit/framework/bin/lib/workstream.cjs +491 -491
  116. package/kit/framework/bin/tools.cjs +918 -918
  117. package/kit/framework/commands/workstreams.md +63 -63
  118. package/kit/framework/references/checkpoints.md +778 -778
  119. package/kit/framework/references/continuation-format.md +249 -249
  120. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  121. package/kit/framework/references/git-integration.md +295 -295
  122. package/kit/framework/references/git-planning-commit.md +38 -38
  123. package/kit/framework/references/model-profile-resolution.md +36 -36
  124. package/kit/framework/references/model-profiles.md +139 -139
  125. package/kit/framework/references/phase-argument-parsing.md +61 -61
  126. package/kit/framework/references/planning-config.md +202 -202
  127. package/kit/framework/references/questioning.md +162 -162
  128. package/kit/framework/references/tdd.md +263 -263
  129. package/kit/framework/references/ui-brand.md +160 -160
  130. package/kit/framework/references/user-profiling.md +657 -657
  131. package/kit/framework/references/verification-patterns.md +612 -612
  132. package/kit/framework/references/workstream-flag.md +58 -58
  133. package/kit/framework/templates/DEBUG.md +164 -164
  134. package/kit/framework/templates/UAT.md +265 -265
  135. package/kit/framework/templates/UI-SPEC.md +100 -100
  136. package/kit/framework/templates/VALIDATION.md +76 -76
  137. package/kit/framework/templates/claude-md.md +122 -122
  138. package/kit/framework/templates/codebase/architecture.md +185 -185
  139. package/kit/framework/templates/codebase/concerns.md +205 -205
  140. package/kit/framework/templates/codebase/conventions.md +204 -204
  141. package/kit/framework/templates/codebase/integrations.md +192 -192
  142. package/kit/framework/templates/codebase/stack.md +158 -158
  143. package/kit/framework/templates/codebase/structure.md +199 -199
  144. package/kit/framework/templates/codebase/testing.md +301 -301
  145. package/kit/framework/templates/config.json +44 -44
  146. package/kit/framework/templates/context.md +352 -352
  147. package/kit/framework/templates/continue-here.md +78 -78
  148. package/kit/framework/templates/copilot-instructions.md +7 -7
  149. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  150. package/kit/framework/templates/dev-preferences.md +20 -20
  151. package/kit/framework/templates/discovery.md +146 -146
  152. package/kit/framework/templates/discussion-log.md +63 -63
  153. package/kit/framework/templates/milestone-archive.md +123 -123
  154. package/kit/framework/templates/milestone.md +115 -115
  155. package/kit/framework/templates/phase-prompt.md +610 -610
  156. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  157. package/kit/framework/templates/project.md +186 -186
  158. package/kit/framework/templates/requirements.md +231 -231
  159. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  160. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  161. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  162. package/kit/framework/templates/research-project/STACK.md +120 -120
  163. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  164. package/kit/framework/templates/research.md +419 -419
  165. package/kit/framework/templates/retrospective.md +54 -54
  166. package/kit/framework/templates/roadmap.md +202 -202
  167. package/kit/framework/templates/state.md +176 -176
  168. package/kit/framework/templates/summary-complex.md +59 -59
  169. package/kit/framework/templates/summary-minimal.md +41 -41
  170. package/kit/framework/templates/summary-standard.md +48 -48
  171. package/kit/framework/templates/summary.md +209 -209
  172. package/kit/framework/templates/user-profile.md +146 -146
  173. package/kit/framework/templates/user-setup.md +256 -256
  174. package/kit/framework/templates/verification-report.md +258 -258
  175. package/kit/framework/workflows/add-phase.md +112 -112
  176. package/kit/framework/workflows/add-tests.md +351 -351
  177. package/kit/framework/workflows/add-todo.md +158 -158
  178. package/kit/framework/workflows/audit-milestone.md +340 -340
  179. package/kit/framework/workflows/audit-uat.md +109 -109
  180. package/kit/framework/workflows/autonomous.md +891 -891
  181. package/kit/framework/workflows/check-todos.md +177 -177
  182. package/kit/framework/workflows/cleanup.md +152 -152
  183. package/kit/framework/workflows/complete-milestone.md +696 -696
  184. package/kit/framework/workflows/diagnose-issues.md +231 -231
  185. package/kit/framework/workflows/discovery-phase.md +289 -289
  186. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  187. package/kit/framework/workflows/discuss-phase.md +784 -784
  188. package/kit/framework/workflows/do.md +104 -104
  189. package/kit/framework/workflows/execute-phase.md +838 -838
  190. package/kit/framework/workflows/execute-plan.md +510 -510
  191. package/kit/framework/workflows/fast.md +102 -102
  192. package/kit/framework/workflows/forensics.md +265 -265
  193. package/kit/framework/workflows/health.md +181 -181
  194. package/kit/framework/workflows/help.md +619 -619
  195. package/kit/framework/workflows/insert-phase.md +130 -130
  196. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  197. package/kit/framework/workflows/list-workspaces.md +56 -56
  198. package/kit/framework/workflows/manager.md +362 -362
  199. package/kit/framework/workflows/map-codebase.md +377 -377
  200. package/kit/framework/workflows/milestone-summary.md +223 -223
  201. package/kit/framework/workflows/new-milestone.md +486 -486
  202. package/kit/framework/workflows/new-project.md +1159 -1159
  203. package/kit/framework/workflows/new-workspace.md +237 -237
  204. package/kit/framework/workflows/next.md +97 -97
  205. package/kit/framework/workflows/node-repair.md +92 -92
  206. package/kit/framework/workflows/note.md +156 -156
  207. package/kit/framework/workflows/pause-work.md +176 -176
  208. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  209. package/kit/framework/workflows/plan-phase.md +765 -765
  210. package/kit/framework/workflows/plant-seed.md +169 -169
  211. package/kit/framework/workflows/pr-branch.md +129 -129
  212. package/kit/framework/workflows/profile-user.md +450 -450
  213. package/kit/framework/workflows/progress.md +507 -507
  214. package/kit/framework/workflows/quick.md +757 -757
  215. package/kit/framework/workflows/remove-phase.md +155 -155
  216. package/kit/framework/workflows/remove-workspace.md +90 -90
  217. package/kit/framework/workflows/research-phase.md +82 -82
  218. package/kit/framework/workflows/resume-project.md +326 -326
  219. package/kit/framework/workflows/review.md +228 -228
  220. package/kit/framework/workflows/session-report.md +146 -146
  221. package/kit/framework/workflows/settings.md +283 -283
  222. package/kit/framework/workflows/ship.md +228 -228
  223. package/kit/framework/workflows/stats.md +60 -60
  224. package/kit/framework/workflows/transition.md +671 -671
  225. package/kit/framework/workflows/ui-phase.md +302 -302
  226. package/kit/framework/workflows/ui-review.md +165 -165
  227. package/kit/framework/workflows/update.md +323 -323
  228. package/kit/framework/workflows/validate-phase.md +174 -174
  229. package/kit/framework/workflows/verify-phase.md +252 -252
  230. package/kit/framework/workflows/verify-work.md +637 -637
  231. package/kit/hooks/check-update.js +118 -118
  232. package/kit/hooks/context-monitor.js +163 -163
  233. package/kit/hooks/prompt-guard.js +103 -103
  234. package/kit/hooks/statusline.js +125 -125
  235. package/kit/hooks/workflow-guard.js +101 -101
  236. package/kit/settings.json +45 -45
  237. package/kit/skills/_shared-multi-tenant/glossary.md +186 -0
  238. package/kit/skills/audit-log-multi-tenant/SKILL.md +334 -0
  239. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -0
  240. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +326 -0
  241. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -0
  242. package/kit/skills/example-skill/SKILL.md +42 -42
  243. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -0
  244. package/kit/skills/member-invite-flow/SKILL.md +305 -0
  245. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -0
  246. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +312 -0
  247. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +338 -0
  248. package/kit/skills/org-onboarding-flow/SKILL.md +257 -0
  249. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -0
  250. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -0
  251. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +301 -0
  252. package/kit/skills/super-admin-platform-pattern/SKILL.md +322 -0
  253. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -0
  254. package/package.json +63 -63
  255. package/src/core/kit.js +216 -216
  256. package/src/core/reflect.js +247 -247
  257. package/src/core/reverse-sync.js +372 -372
  258. package/src/core/sync.js +418 -418
  259. package/src/core/watch.js +121 -121
@@ -0,0 +1,179 @@
1
+ ---
2
+ name: evolution-go-integrator
3
+ description: Materializa integração WhatsApp (Evolution Go ou Meta Cloud API) em Supabase B2B multi-tenant — webhook handler com tenant identification via URL path, HMAC-SHA256 timing-safe (Meta) ou API key + IP whitelist (Evolution Go), idempotency unique constraint, rate limit Meta 80msg/s via pgmq queue. Cross-suite delega Edge Function code para supabase-edge-fn-writer.
4
+ tools: Read, Write, Edit, Bash, Grep, Glob, Task, AskUserQuestion, mcp__supabase__execute_sql
5
+ color: green
6
+ ---
7
+
8
+ Você é o **evolution-go-integrator**. Materializa integração completa WhatsApp em B2B multi-tenant — tabelas `org_whatsapp_configs` + `whatsapp_messages`, webhook handler Edge Function, send queue + worker. Lê skills [`evolution-go-whatsapp-integration`](../skills/evolution-go-whatsapp-integration/SKILL.md) + [`whatsapp-conversation-state-machine`](../skills/whatsapp-conversation-state-machine/SKILL.md). **Delega Edge Function code para `supabase-edge-fn-writer`**.
9
+
10
+ ## Inputs
11
+
12
+ - (Opcional) `provider`: `meta_cloud` (Meta Cloud API oficial) | `evolution_go` (whatsmeow não-oficial)
13
+ - (Opcional) `enable_send_queue`: `true` (default — pgmq + worker) | `false` (sync send, sem rate limit guard)
14
+ - (Opcional) `enable_state_machine`: `true` (default — xstate conversation) | `false` (só persist messages, sem state)
15
+
16
+ ## Passos
17
+
18
+ ### Step 0 — Preflight
19
+
20
+ - MCP detection
21
+ - Validar Phase 106 (organizations, organization_members)
22
+ - Validar Phase 109 (audit_logs + audit_log function)
23
+ - Validar pgmq extension habilitada (se enable_send_queue=true)
24
+ - ABORT se HMAC validation aplicada APÓS JSON.parse — REGRA #1 da skill (este check é pre-design, agent reforça no brief)
25
+
26
+ ### Step 1 — Provider via AskUserQuestion (se ausente)
27
+
28
+ ```
29
+ - Meta Cloud API (Recomendado para production) — oficial Meta, custo por conversation, rate limit 80 msg/s, HMAC-SHA256 signature
30
+ - Evolution Go (free/self-hosted) — whatsmeow library, sem custo Meta, throttle manual 1 msg/s, API key + IP whitelist (não HMAC)
31
+ - Ambos (multi-provider) — cada org escolhe via org_whatsapp_configs.provider
32
+ ```
33
+
34
+ ### Step 2 — Migration brief para supabase-migration-writer
35
+
36
+ ```
37
+ [Migration brief — evolution-go-integrator]
38
+
39
+ Tabelas:
40
+ 1. public.org_whatsapp_configs (DDL completo skill section "Tabela org_whatsapp_configs")
41
+ 2. public.whatsapp_messages (DDL completo com unique(org_id, message_id) — REGRA #4 idempotency)
42
+ 3. (se enable_state_machine=true) public.conversations (DDL skill conversation-state-machine)
43
+ 4. (se enable_send_queue=true) pgmq queue creation: select pgmq.create('whatsapp_outbound_global');
44
+
45
+ RLS standard multi-tenant para todas (members + super_admin bypass).
46
+
47
+ (se enable_send_queue=true) pg_cron worker schedule:
48
+ select cron.schedule('whatsapp-send-worker', '* * * * *', $$ select net.http_post(...) $$);
49
+ -- worker chama Edge Function whatsapp-send-worker que processa N msgs respeitando 80 msg/s
50
+
51
+ (se enable_state_machine=true) pg_cron timeout 24h:
52
+ select cron.schedule('conversation-timeout-24h', '*/30 * * * *', $$
53
+ update public.conversations set state = 'abandoned'
54
+ where state = 'waiting_user_reply' and last_message_at < now() - interval '24 hours';
55
+ $$);
56
+ ```
57
+
58
+ ### Step 3 — Webhook handler Edge Function brief
59
+
60
+ ```
61
+ [Edge Function brief — evolution-go-integrator (webhook)]
62
+
63
+ Function: whatsapp-webhook
64
+ verify_jwt: false (webhook público, validation via HMAC ou API key)
65
+ Path: supabase/functions/whatsapp-webhook/index.ts
66
+
67
+ Behavior:
68
+ 1. Extrair org_id de URL path: /functions/v1/whatsapp/<org_id>/webhook (REGRA #3)
69
+ 2. Validar UUID format
70
+ 3. req.text() para raw body — REGRA #1 (HMAC ANTES de JSON.parse)
71
+ 4. Buscar org_whatsapp_configs(org_id) via service_role
72
+ 5. Validar:
73
+ - meta_cloud: HMAC-SHA256 timing-safe (REGRA #2) com config.hmac_secret
74
+ - evolution_go: API key match Deno.env.get('EVOLUTION_GO_API_KEY')
75
+ 6. Parse JSON
76
+ 7. Iterate messages, INSERT INTO whatsapp_messages com ON CONFLICT DO NOTHING (REGRA #4)
77
+ 8. (se enable_state_machine=true) processConversationEvent(orgId, contact, INBOUND_MESSAGE)
78
+ 9. (se integração CRM) auto-create lead se contact_phone novo
79
+ 10. Audit event 'custom_whatsapp_webhook_received'
80
+ 11. Return 'ok' 200
81
+
82
+ Anti-pitfalls:
83
+ - service_role apenas (webhook não tem JWT user)
84
+ - Timing-safe HMAC (crypto.subtle, não ===)
85
+ - ON CONFLICT obrigatório
86
+ - Return 200 rápido (Meta timeout 20s — async para tasks longas)
87
+ ```
88
+
89
+ Delegar para `supabase-edge-fn-writer`.
90
+
91
+ ### Step 4 — Send Edge Function brief (se enable_send_queue=true)
92
+
93
+ ```
94
+ [Edge Function brief — evolution-go-integrator (send + worker)]
95
+
96
+ Function 1: whatsapp-send (user-facing)
97
+ verify_jwt: true
98
+ - POST { org_id, to, message }
99
+ - RLS check via JWT user
100
+ - Enfilera em pgmq queue (não envia direto) — REGRA #5
101
+
102
+ Function 2: whatsapp-send-worker (cron)
103
+ verify_jwt: false (chamado por pg_cron via net.http_post)
104
+ - pgmq.read N msgs (N <= 80 para respeitar rate limit Meta)
105
+ - Para cada msg: chamar Meta Graph API ou Evolution Go endpoint
106
+ - pgmq.delete msgs processadas
107
+ - Backoff em erro 131056 (rate limit hit)
108
+ ```
109
+
110
+ Delegar.
111
+
112
+ ### Step 5 — State machine code (se enable_state_machine=true)
113
+
114
+ Gerar código TypeScript da xstate machine (skill conversation-state-machine seção "State machine em xstate v5") como `supabase/functions/whatsapp-process/conversation-machine.ts` — reutilizado pelo webhook handler.
115
+
116
+ ### Step 6 — Output integrado
117
+
118
+ ```
119
+ ═══════════════════════════════════════════════════════════
120
+ EVOLUTION-GO-INTEGRATOR · output integrado
121
+ ═══════════════════════════════════════════════════════════
122
+
123
+ ## 1. Decisões
124
+ - Provider: <chosen>
125
+ - Send queue: <yes/no>
126
+ - State machine: <yes/no>
127
+
128
+ ## 2. Migration entregue
129
+ <output supabase-migration-writer>
130
+
131
+ ## 3. Edge Functions entregues
132
+ - whatsapp-webhook (handler)
133
+ - whatsapp-send (user-facing) — se queue=yes
134
+ - whatsapp-send-worker (cron) — se queue=yes
135
+
136
+ ## 4. State machine code
137
+ - conversation-machine.ts — se state_machine=yes
138
+
139
+ ## 5. Próximos passos
140
+ - Aplicar migration: supabase db push
141
+ - Deploy functions: supabase functions deploy whatsapp-webhook (etc.)
142
+ - Configurar Meta App webhook URL: https://<project>.functions.supabase.co/whatsapp/<org_id>/webhook
143
+ - (Evolution Go) Configurar EVOLUTION_GO_API_KEY no Vault
144
+ - (Meta) Per-org: gerar HMAC secret, salvar em org_whatsapp_configs.hmac_secret
145
+ - Test: enviar mensagem inbound, verificar audit_log + whatsapp_messages
146
+ ```
147
+
148
+ ## Anti-patterns prevenidos
149
+
150
+ - HMAC depois de JSON.parse → REGRA #1 enforced no Edge Function brief
151
+ - HMAC compare === → timing-safe enforced
152
+ - Sem idempotency → ON CONFLICT obrigatório
153
+ - Send sem rate limit → pgmq queue + worker enforced
154
+ - HMAC secret global → per-org enforced
155
+ - super_admin sem audit → audit_log antes de ação
156
+
157
+ ## Quando NÃO invocar
158
+
159
+ - Phase 106 ou 109 não implementadas → ABORT
160
+ - App sem WhatsApp use case → escopo errado
161
+ - Já tem integração WhatsApp legacy → analisar primeiro, depois decidir migrate
162
+
163
+ ## Observabilidade integrada
164
+
165
+ - Counter `whatsapp.webhook.received{org_id, provider}` por request
166
+ - Counter `whatsapp.message.idempotent_drop{org_id}` por duplicate ignored
167
+ - Histogram `whatsapp.webhook.duration_ms`
168
+ - Counter `whatsapp.send.rate_limited{org_id}` por 131056 hit
169
+ - Alarme se `whatsapp.send.rate_limited > baseline` → review queue/throttle
170
+
171
+ ## Ver também
172
+
173
+ - [evolution-go-whatsapp-integration](../skills/evolution-go-whatsapp-integration/SKILL.md) — base de conhecimento
174
+ - [whatsapp-conversation-state-machine](../skills/whatsapp-conversation-state-machine/SKILL.md) — sibling skill
175
+ - [supabase-edge-fn-writer](./supabase-edge-fn-writer.md) — invoked para Edge Functions (cross-suite)
176
+ - [supabase-migration-writer](./supabase-migration-writer.md) — invoked para SQL
177
+ - [crm-pipeline-implementer](./crm-pipeline-implementer.md) — Phase 113, integra contact → lead
178
+ - [audit-log-implementer](./audit-log-implementer.md) — Phase 109, eventos custom_whatsapp_*
179
+ - [_shared-multi-tenant/glossary.md](../skills/_shared-multi-tenant/glossary.md) — `Evolution Go`, `Meta Cloud API`, `HMAC`, `idempotency key`
@@ -1,21 +1,21 @@
1
- ---
2
- name: example-reviewer
3
- description: Example sub-agent template. Replace with your own. Reviews a snippet of code and returns 3 concrete improvements.
4
- tools: Read, Grep, Glob
5
- color: blue
6
- ---
7
-
8
- You are a code reviewer. The user will paste a code snippet or point at a file.
9
-
10
- Your job:
11
-
12
- 1. Read the snippet (or the file at the path the user gives you).
13
- 2. Identify exactly **3 concrete improvements** — no more, no less.
14
- 3. For each improvement, output:
15
- - what the current code does
16
- - what to change it to
17
- - why it's better (1 line)
18
-
19
- Be terse. No preamble, no recap, no "great code!" pleasantries. Just the 3 items.
20
-
21
- If the snippet is too small to suggest 3 things, say so honestly and suggest fewer.
1
+ ---
2
+ name: example-reviewer
3
+ description: Example sub-agent template. Replace with your own. Reviews a snippet of code and returns 3 concrete improvements.
4
+ tools: Read, Grep, Glob
5
+ color: blue
6
+ ---
7
+
8
+ You are a code reviewer. The user will paste a code snippet or point at a file.
9
+
10
+ Your job:
11
+
12
+ 1. Read the snippet (or the file at the path the user gives you).
13
+ 2. Identify exactly **3 concrete improvements** — no more, no less.
14
+ 3. For each improvement, output:
15
+ - what the current code does
16
+ - what to change it to
17
+ - why it's better (1 line)
18
+
19
+ Be terse. No preamble, no recap, no "great code!" pleasantries. Just the 3 items.
20
+
21
+ If the snippet is too small to suggest 3 things, say so honestly and suggest fewer.