@luanpdd/kit-mcp 1.30.2 → 1.31.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 (347) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +168 -168
  3. package/gates/agent-no-recursive-dispatch.md +84 -82
  4. package/kit/COMANDOS.md +138 -138
  5. package/kit/README.md +76 -76
  6. package/kit/agents/advisor-researcher.md +107 -106
  7. package/kit/agents/ai-mutation-tester.md +1 -0
  8. package/kit/agents/assumptions-analyzer.md +108 -107
  9. package/kit/agents/audit-log-implementer.md +314 -313
  10. package/kit/agents/auditor-consistencia-isolamento.md +414 -413
  11. package/kit/agents/b2b-saas-architect.md +157 -156
  12. package/kit/agents/burn-rate-forecaster.md +1 -0
  13. package/kit/agents/cascading-failures-auditor.md +299 -298
  14. package/kit/agents/codebase-mapper.md +769 -768
  15. package/kit/agents/crm-pipeline-implementer.md +257 -256
  16. package/kit/agents/debugger.md +814 -813
  17. package/kit/agents/detector-tenant-quente.md +338 -337
  18. package/kit/agents/evolution-go-integrator.md +201 -200
  19. package/kit/agents/example-reviewer.md +22 -21
  20. package/kit/agents/executor.md +565 -564
  21. package/kit/agents/golden-signals-instrumenter.md +1 -0
  22. package/kit/agents/incident-investigator.md +1 -0
  23. package/kit/agents/integration-checker.md +201 -200
  24. package/kit/agents/invite-flow-implementer.md +190 -189
  25. package/kit/agents/legacy-characterizer.md +369 -368
  26. package/kit/agents/lgpd-compliance-auditor.md +296 -295
  27. package/kit/agents/load-shedding-instrumenter.md +1 -0
  28. package/kit/agents/multi-tenant-isolation-auditor.md +254 -253
  29. package/kit/agents/multi-tenant-rls-writer.md +341 -340
  30. package/kit/agents/nyquist-auditor.md +179 -178
  31. package/kit/agents/observability-coverage-auditor.md +316 -315
  32. package/kit/agents/observability-instrumenter.md +1 -0
  33. package/kit/agents/omm-auditor.md +1 -0
  34. package/kit/agents/org-onboarding-implementer.md +224 -223
  35. package/kit/agents/payload-capture-instrumenter.md +274 -273
  36. package/kit/agents/phase-researcher.md +697 -696
  37. package/kit/agents/plan-checker.md +273 -272
  38. package/kit/agents/planner.md +923 -922
  39. package/kit/agents/postmortem-writer.md +1 -0
  40. package/kit/agents/project-researcher.md +653 -652
  41. package/kit/agents/prr-conductor.md +1 -0
  42. package/kit/agents/refactor-safety-auditor.md +405 -404
  43. package/kit/agents/release-pipeline-auditor.md +1 -0
  44. package/kit/agents/research-synthesizer.md +246 -245
  45. package/kit/agents/roadmapper.md +678 -677
  46. package/kit/agents/schema-checker.md +1 -0
  47. package/kit/agents/seam-finder.md +360 -359
  48. package/kit/agents/shotgun-surgery-detector.md +350 -349
  49. package/kit/agents/slo-engineer.md +1 -0
  50. package/kit/agents/storytelling-analyst.md +1 -0
  51. package/kit/agents/supabase-architect.md +1 -0
  52. package/kit/agents/supabase-auth-bootstrapper.md +1 -0
  53. package/kit/agents/supabase-branching-architect.md +563 -562
  54. package/kit/agents/supabase-cicd-pipeline-implementer.md +778 -777
  55. package/kit/agents/supabase-column-privileges-writer.md +400 -399
  56. package/kit/agents/supabase-edge-fn-tester.md +2 -1
  57. package/kit/agents/supabase-edge-fn-writer.md +2 -1
  58. package/kit/agents/supabase-migration-writer.md +386 -385
  59. package/kit/agents/supabase-rbac-implementer.md +393 -392
  60. package/kit/agents/supabase-realtime-implementer.md +364 -363
  61. package/kit/agents/supabase-rls-hardener.md +522 -521
  62. package/kit/agents/supabase-rls-writer.md +324 -323
  63. package/kit/agents/supabase-roles-implementer.md +356 -355
  64. package/kit/agents/supabase-storage-implementer.md +1 -0
  65. package/kit/agents/super-admin-implementer.md +282 -281
  66. package/kit/agents/toil-auditor.md +1 -0
  67. package/kit/agents/ui-auditor.md +438 -437
  68. package/kit/agents/ui-checker.md +303 -302
  69. package/kit/agents/ui-researcher.md +356 -355
  70. package/kit/agents/user-profiler.md +176 -175
  71. package/kit/agents/validador-evolucao-schema.md +336 -335
  72. package/kit/agents/verifier.md +729 -728
  73. package/kit/commands/adicionar-backlog.md +75 -75
  74. package/kit/commands/adicionar-fase.md +42 -42
  75. package/kit/commands/adicionar-tarefa.md +45 -45
  76. package/kit/commands/adicionar-testes.md +41 -41
  77. package/kit/commands/ajuda.md +21 -21
  78. package/kit/commands/atualizar.md +37 -37
  79. package/kit/commands/auditar-cascading.md +111 -111
  80. package/kit/commands/auditar-marco.md +179 -179
  81. package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
  82. package/kit/commands/auditar-refactor.md +219 -219
  83. package/kit/commands/auditar-release.md +109 -109
  84. package/kit/commands/auditar-uat.md +23 -23
  85. package/kit/commands/autonomo.md +40 -40
  86. package/kit/commands/branch-pr.md +24 -24
  87. package/kit/commands/burn-rate-status.md +408 -408
  88. package/kit/commands/capturar-payloads.md +193 -193
  89. package/kit/commands/caracterizar.md +212 -212
  90. package/kit/commands/concluir-marco.md +247 -247
  91. package/kit/commands/configuracoes.md +36 -36
  92. package/kit/commands/dados-distribuidos.md +188 -188
  93. package/kit/commands/definir-perfil.md +10 -10
  94. package/kit/commands/depurar.md +190 -190
  95. package/kit/commands/detectar-duplicacao.md +197 -197
  96. package/kit/commands/discutir-fase.md +131 -131
  97. package/kit/commands/encontrar-seams.md +136 -136
  98. package/kit/commands/entrar-discord.md +17 -17
  99. package/kit/commands/estatisticas.md +18 -18
  100. package/kit/commands/example-greeting.md +33 -33
  101. package/kit/commands/executar-fase.md +58 -58
  102. package/kit/commands/expresso.md +56 -56
  103. package/kit/commands/fase-ui.md +34 -34
  104. package/kit/commands/fazer.md +57 -57
  105. package/kit/commands/fio.md +125 -125
  106. package/kit/commands/fluxos-trabalho.md +64 -64
  107. package/kit/commands/forense.md +176 -176
  108. package/kit/commands/gerenciador.md +38 -38
  109. package/kit/commands/inserir-fase.md +31 -31
  110. package/kit/commands/legacy.md +263 -263
  111. package/kit/commands/limpeza.md +17 -17
  112. package/kit/commands/listar-hipoteses-fase.md +45 -45
  113. package/kit/commands/listar-workspaces.md +18 -18
  114. package/kit/commands/load-shedding.md +117 -117
  115. package/kit/commands/mapear-codebase.md +70 -70
  116. package/kit/commands/multi-tenant.md +163 -163
  117. package/kit/commands/nota.md +33 -33
  118. package/kit/commands/novo-marco.md +43 -43
  119. package/kit/commands/novo-projeto.md +41 -41
  120. package/kit/commands/novo-workspace.md +43 -43
  121. package/kit/commands/pausar-trabalho.md +37 -37
  122. package/kit/commands/perfil-usuario.md +45 -45
  123. package/kit/commands/pesquisar-fase.md +195 -195
  124. package/kit/commands/planejar-fase.md +67 -67
  125. package/kit/commands/planejar-lacunas.md +33 -33
  126. package/kit/commands/plantar-ideia.md +25 -25
  127. package/kit/commands/progresso.md +24 -24
  128. package/kit/commands/proximo.md +30 -30
  129. package/kit/commands/publicar.md +490 -490
  130. package/kit/commands/rapido.md +35 -35
  131. package/kit/commands/reaplicar-patches.md +124 -124
  132. package/kit/commands/refactor-seguro.md +321 -321
  133. package/kit/commands/relatorio-sessao.md +19 -19
  134. package/kit/commands/remover-fase.md +31 -31
  135. package/kit/commands/remover-workspace.md +26 -26
  136. package/kit/commands/resumo-marco.md +50 -50
  137. package/kit/commands/retomar-trabalho.md +40 -40
  138. package/kit/commands/revisar-backlog.md +60 -60
  139. package/kit/commands/revisar-ui.md +32 -32
  140. package/kit/commands/revisar.md +37 -37
  141. package/kit/commands/saude.md +21 -21
  142. package/kit/commands/setup-notion.md +93 -93
  143. package/kit/commands/storytelling.md +179 -179
  144. package/kit/commands/sync-main.md +68 -68
  145. package/kit/commands/validar-fase.md +35 -35
  146. package/kit/commands/verificar-tarefas.md +44 -44
  147. package/kit/commands/verificar-trabalho.md +64 -64
  148. package/kit/file-manifest.json +82 -81
  149. package/kit/framework/bin/lib/commands.cjs +959 -959
  150. package/kit/framework/bin/lib/config.cjs +442 -442
  151. package/kit/framework/bin/lib/core.cjs +1230 -1230
  152. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  153. package/kit/framework/bin/lib/init.cjs +1442 -1442
  154. package/kit/framework/bin/lib/milestone.cjs +252 -252
  155. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  156. package/kit/framework/bin/lib/phase.cjs +888 -888
  157. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  158. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  159. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  160. package/kit/framework/bin/lib/security.cjs +382 -382
  161. package/kit/framework/bin/lib/state.cjs +1031 -1031
  162. package/kit/framework/bin/lib/template.cjs +222 -222
  163. package/kit/framework/bin/lib/uat.cjs +282 -282
  164. package/kit/framework/bin/lib/verify.cjs +888 -888
  165. package/kit/framework/bin/lib/workstream.cjs +491 -491
  166. package/kit/framework/bin/tools.cjs +918 -918
  167. package/kit/framework/commands/workstreams.md +63 -63
  168. package/kit/framework/references/checkpoints.md +778 -778
  169. package/kit/framework/references/continuation-format.md +249 -249
  170. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  171. package/kit/framework/references/git-integration.md +295 -295
  172. package/kit/framework/references/git-planning-commit.md +38 -38
  173. package/kit/framework/references/model-profile-resolution.md +36 -36
  174. package/kit/framework/references/model-profiles.md +139 -139
  175. package/kit/framework/references/phase-argument-parsing.md +61 -61
  176. package/kit/framework/references/planning-config.md +202 -202
  177. package/kit/framework/references/questioning.md +162 -162
  178. package/kit/framework/references/tdd.md +263 -263
  179. package/kit/framework/references/ui-brand.md +160 -160
  180. package/kit/framework/references/user-profiling.md +657 -657
  181. package/kit/framework/references/verification-patterns.md +612 -612
  182. package/kit/framework/references/workstream-flag.md +58 -58
  183. package/kit/framework/templates/DEBUG.md +164 -164
  184. package/kit/framework/templates/UAT.md +265 -265
  185. package/kit/framework/templates/UI-SPEC.md +100 -100
  186. package/kit/framework/templates/VALIDATION.md +76 -76
  187. package/kit/framework/templates/claude-md.md +122 -122
  188. package/kit/framework/templates/codebase/architecture.md +185 -185
  189. package/kit/framework/templates/codebase/concerns.md +205 -205
  190. package/kit/framework/templates/codebase/conventions.md +204 -204
  191. package/kit/framework/templates/codebase/integrations.md +192 -192
  192. package/kit/framework/templates/codebase/stack.md +158 -158
  193. package/kit/framework/templates/codebase/structure.md +199 -199
  194. package/kit/framework/templates/codebase/testing.md +301 -301
  195. package/kit/framework/templates/config.json +44 -44
  196. package/kit/framework/templates/context.md +352 -352
  197. package/kit/framework/templates/continue-here.md +78 -78
  198. package/kit/framework/templates/copilot-instructions.md +7 -7
  199. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  200. package/kit/framework/templates/dev-preferences.md +20 -20
  201. package/kit/framework/templates/discovery.md +146 -146
  202. package/kit/framework/templates/discussion-log.md +63 -63
  203. package/kit/framework/templates/milestone-archive.md +123 -123
  204. package/kit/framework/templates/milestone.md +115 -115
  205. package/kit/framework/templates/phase-prompt.md +610 -610
  206. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  207. package/kit/framework/templates/project.md +186 -186
  208. package/kit/framework/templates/requirements.md +231 -231
  209. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  210. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  211. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  212. package/kit/framework/templates/research-project/STACK.md +120 -120
  213. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  214. package/kit/framework/templates/research.md +419 -419
  215. package/kit/framework/templates/retrospective.md +54 -54
  216. package/kit/framework/templates/roadmap.md +202 -202
  217. package/kit/framework/templates/state.md +176 -176
  218. package/kit/framework/templates/summary-complex.md +59 -59
  219. package/kit/framework/templates/summary-minimal.md +41 -41
  220. package/kit/framework/templates/summary-standard.md +48 -48
  221. package/kit/framework/templates/summary.md +209 -209
  222. package/kit/framework/templates/user-profile.md +146 -146
  223. package/kit/framework/templates/user-setup.md +256 -256
  224. package/kit/framework/templates/verification-report.md +258 -258
  225. package/kit/framework/workflows/add-phase.md +112 -112
  226. package/kit/framework/workflows/add-tests.md +351 -351
  227. package/kit/framework/workflows/add-todo.md +158 -158
  228. package/kit/framework/workflows/audit-milestone.md +340 -340
  229. package/kit/framework/workflows/audit-uat.md +109 -109
  230. package/kit/framework/workflows/autonomous.md +891 -891
  231. package/kit/framework/workflows/check-todos.md +177 -177
  232. package/kit/framework/workflows/cleanup.md +152 -152
  233. package/kit/framework/workflows/complete-milestone.md +696 -696
  234. package/kit/framework/workflows/diagnose-issues.md +231 -231
  235. package/kit/framework/workflows/discovery-phase.md +289 -289
  236. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  237. package/kit/framework/workflows/discuss-phase.md +784 -784
  238. package/kit/framework/workflows/do.md +104 -104
  239. package/kit/framework/workflows/execute-phase.md +838 -838
  240. package/kit/framework/workflows/execute-plan.md +510 -510
  241. package/kit/framework/workflows/fast.md +102 -102
  242. package/kit/framework/workflows/forensics.md +265 -265
  243. package/kit/framework/workflows/health.md +181 -181
  244. package/kit/framework/workflows/help.md +619 -619
  245. package/kit/framework/workflows/insert-phase.md +130 -130
  246. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  247. package/kit/framework/workflows/list-workspaces.md +56 -56
  248. package/kit/framework/workflows/manager.md +362 -362
  249. package/kit/framework/workflows/map-codebase.md +377 -377
  250. package/kit/framework/workflows/milestone-summary.md +223 -223
  251. package/kit/framework/workflows/new-milestone.md +486 -486
  252. package/kit/framework/workflows/new-project.md +1159 -1159
  253. package/kit/framework/workflows/new-workspace.md +237 -237
  254. package/kit/framework/workflows/next.md +97 -97
  255. package/kit/framework/workflows/node-repair.md +92 -92
  256. package/kit/framework/workflows/note.md +156 -156
  257. package/kit/framework/workflows/pause-work.md +176 -176
  258. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  259. package/kit/framework/workflows/plan-phase.md +765 -765
  260. package/kit/framework/workflows/plant-seed.md +169 -169
  261. package/kit/framework/workflows/pr-branch.md +129 -129
  262. package/kit/framework/workflows/profile-user.md +450 -450
  263. package/kit/framework/workflows/progress.md +507 -507
  264. package/kit/framework/workflows/quick.md +757 -757
  265. package/kit/framework/workflows/remove-phase.md +155 -155
  266. package/kit/framework/workflows/remove-workspace.md +90 -90
  267. package/kit/framework/workflows/research-phase.md +82 -82
  268. package/kit/framework/workflows/resume-project.md +326 -326
  269. package/kit/framework/workflows/review.md +228 -228
  270. package/kit/framework/workflows/session-report.md +146 -146
  271. package/kit/framework/workflows/settings.md +283 -283
  272. package/kit/framework/workflows/ship.md +228 -228
  273. package/kit/framework/workflows/stats.md +60 -60
  274. package/kit/framework/workflows/transition.md +671 -671
  275. package/kit/framework/workflows/ui-phase.md +302 -302
  276. package/kit/framework/workflows/ui-review.md +165 -165
  277. package/kit/framework/workflows/update.md +323 -323
  278. package/kit/framework/workflows/validate-phase.md +174 -174
  279. package/kit/framework/workflows/verify-phase.md +252 -252
  280. package/kit/framework/workflows/verify-work.md +637 -637
  281. package/kit/hooks/check-update.js +118 -118
  282. package/kit/hooks/context-monitor.js +163 -163
  283. package/kit/hooks/kit-attribution-reminder.cjs +29 -50
  284. package/kit/hooks/kit-router.cjs +137 -0
  285. package/kit/hooks/prompt-guard.js +103 -103
  286. package/kit/hooks/statusline.js +125 -125
  287. package/kit/hooks/workflow-guard.js +101 -101
  288. package/kit/settings.json +45 -45
  289. package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
  290. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
  291. package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
  292. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
  293. package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
  294. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
  295. package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
  296. package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
  297. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
  298. package/kit/skills/example-skill/SKILL.md +42 -42
  299. package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
  300. package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
  301. package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
  302. package/kit/skills/legacy-extract-class/SKILL.md +203 -203
  303. package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
  304. package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
  305. package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
  306. package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
  307. package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
  308. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
  309. package/kit/skills/member-invite-flow/SKILL.md +305 -305
  310. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
  311. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
  312. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
  313. package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
  314. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
  315. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
  316. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
  317. package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
  318. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
  319. package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
  320. package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
  321. package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
  322. package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
  323. package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
  324. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
  325. package/kit/skills/supabase-edge-functions/SKILL.md +1 -1
  326. package/kit/skills/supabase-edge-functions-auth/SKILL.md +1 -1
  327. package/kit/skills/supabase-edge-functions-limits/SKILL.md +1 -1
  328. package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +1 -1
  329. package/kit/skills/supabase-edge-functions-testing/SKILL.md +1 -1
  330. package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +1 -1
  331. package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
  332. package/kit/skills/supabase-migrations/SKILL.md +297 -297
  333. package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
  334. package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
  335. package/kit/skills/supabase-realtime/SKILL.md +460 -460
  336. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
  337. package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
  338. package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
  339. package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
  340. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
  341. package/package.json +1 -1
  342. package/src/core/kit.js +216 -216
  343. package/src/core/reflect.js +247 -247
  344. package/src/core/reverse-sync.js +372 -372
  345. package/src/core/sync.js +437 -418
  346. package/src/core/watch.js +121 -121
  347. package/src/mcp-server/index.js +794 -746
@@ -1,256 +1,257 @@
1
- ---
2
- name: crm-pipeline-implementer
3
- description: Materializa CRM lead pipeline — tabela leads (6 stages canônicos + custom prefix), tabela lead_stage_transitions data-driven, trigger PG BEFORE UPDATE validate_lead_stage_transition, trigge…
4
- tools: Read, Write, Edit, Bash, Grep, Glob, Task, AskUserQuestion, mcp__supabase__execute_sql
5
- color: green
6
- ---
7
-
8
- Você é o **crm-pipeline-implementer**. Materializa CRM lead pipeline canônico v1.21. Lê skill [`crm-lead-pipeline-patterns`](../skills/crm-lead-pipeline-patterns/SKILL.md). **Delega SQL para `supabase-migration-writer`**.
9
-
10
- ## Inputs
11
-
12
- - (Opcional) `custom_stages`: lista de stages adicionais (prefix `custom_`) além dos 6 canônicos
13
- - (Opcional) `enable_whatsapp_integration`: `true` (default) | `false` auto-create lead em inbound WhatsApp
14
- - (Opcional) `notification_channel`: `slack` | `email` | `in_app` (default `in_app`)
15
-
16
- ## Passos
17
-
18
- ### Step 0 — Preflight
19
- - MCP detection
20
- - Validar Phase 106 (organizations, organization_members)
21
- - Validar Phase 109 (audit_logs)
22
- - Validar Phase 108 (private.has_permission, private.has_role)
23
-
24
- ### Step 1 — Custom stages via AskUserQuestion (se ausente)
25
-
26
- ```
27
- - "Apenas 6 canônicos (Recomendado)" — lead/qualified/proposal/negotiation/won/lost
28
- - "Adicionar customs" texto livre lista (ex: 'custom_demo_scheduled, custom_proposal_signed')
29
- ```
30
-
31
- ### Step 2 — WhatsApp integration via AskUserQuestion (se enable_whatsapp_integration=null)
32
-
33
- ```
34
- - "Sim (Recomendado se Phase 112 implementada)" — webhook auto-cria lead em inbound novo
35
- - "Não" — leads criados apenas manualmente / via form
36
- ```
37
-
38
- ### Step 3 — Migration brief para supabase-migration-writer
39
-
40
- ```
41
- [Migration brief — crm-pipeline-implementer]
42
-
43
- Tabelas:
44
- 1. public.leads (DDL completo skill seção "Tabela leads") com unique(org_id, contact_phone) + (org_id, contact_email)
45
- 2. public.lead_stage_transitions (data-driven, populated com 12 transições canônicas + adicionar para custom_stages se houver)
46
-
47
- Functions + Triggers:
48
- 3. private.validate_lead_stage_transition() trigger BEFORE UPDATE OF stage
49
- 4. private.audit_lead_ownership_change() trigger AFTER UPDATE OF owner_id
50
-
51
- Indexes:
52
- 5. (org_id, stage), (org_id, owner_id) where not null, (org_id, dept_id) where not null
53
-
54
- RLS standard multi-tenant (5 policies):
55
- - SELECT member, INSERT with permission leads:create, UPDATE with permission leads:update OR owner, DELETE admin/owner, super_admin PERMISSIVE
56
- ```
57
-
58
- Delegar para `supabase-migration-writer`.
59
-
60
- ### Step 4 — WhatsApp integration (se enable=true)
61
-
62
- Cross-ref Phase 112 — agent emite handoff brief para `evolution-go-integrator` adicionar lookup+create no webhook handler:
63
-
64
- ```
65
- [Handoff brief para evolution-go-integrator]
66
-
67
- Action: estender whatsapp-webhook com lógica:
68
- 1. Em INSERT whatsapp_messages, lookup leads WHERE org_id=$1 AND contact_phone=$2
69
- 2. Se não existe, criar lead com source='whatsapp_inbound', stage='lead'
70
- 3. Set lead_id na conversation (Phase 112 conversations table)
71
- ```
72
-
73
- ### Step 5 — Notification Edge Function brief (se notification_channel != null)
74
-
75
- ```
76
- [Edge Function brief — crm-pipeline-implementer]
77
-
78
- Function: lead-ownership-notification
79
- verify_jwt: false (chamado por trigger via net.http_post)
80
- Path: supabase/functions/lead-ownership-notification/index.ts
81
-
82
- Behavior:
83
- - POST { lead_id, previous_owner_id, new_owner_id, lead_stage, lead_value }
84
- - Buscar email/slack_id do new_owner
85
- - Enviar notificação via <notification_channel>
86
- - Audit log emit
87
- ```
88
-
89
- Delegar para `supabase-edge-fn-writer`.
90
-
91
- ### Step 6 — Output integrado
92
-
93
- ```
94
- ═══════════════════════════════════════════════════════════
95
- CRM-PIPELINE-IMPLEMENTER · output
96
- ═══════════════════════════════════════════════════════════
97
-
98
- ## 1. Decisões
99
- - Custom stages: <list>
100
- - WhatsApp integration: <on/off>
101
- - Notification: <channel>
102
-
103
- ## 2. Migration entregue
104
- <output>
105
-
106
- ## 3. Edge Function notification entregue (se enable)
107
- <output>
108
-
109
- ## 4. Cross-Phase 112 handoff
110
- - evolution-go-integrator estende webhook com lookup+create lead
111
-
112
- ## 5. Frontend sketch (Phase 115)
113
- - LeadsKanban.tsx com drag&drop entre 6 stages (handleErr 'invalid_lead_transition')
114
- - LeadDetail.tsx com ownership transfer button
115
-
116
- ## 6. Próximos passos
117
- - Apply migration: supabase db push
118
- - Deploy notification function
119
- - Testar: criar lead → mover stages → ownership transfer → verificar notification + audit
120
- ```
121
-
122
- ## Anti-patterns prevenidos
123
-
124
- - CHECK sem trigger → REGRA #2 enforced (trigger validate_lead_stage_transition obrigatório)
125
- - Ownership sem audit → REGRA #3 enforced
126
- - Lead duplicate → REGRA #4 (unique constraints) + REGRA #5 (lookup before insert no webhook)
127
- - Hard delete sem audit recomenda soft delete
128
-
129
- ## Quando NÃO invocar
130
-
131
- - Phase 106, 108, 109 não implementadas → ABORT
132
- - App sem CRM (gerenciamento de leads)escopo errado
133
- - tem CRM legacy diferente analisar primeiro
134
-
135
- ## Observabilidade
136
-
137
- - Counter `crm.lead.created.count{org_id, source}`
138
- - Counter `crm.lead.stage_change.count{org_id, from_stage, to_stage}`
139
- - Counter `crm.lead.ownership_transfer.count{org_id}`
140
- - Histogram `crm.lead.time_to_close_days{org_id, won_or_lost}`
141
- - Alarme se `crm.lead.stage_change.count{to_stage='lost'} > baseline` → review pipeline
142
-
143
- ## SELECT FOR UPDATE em Stage Transition (v1.22+ — default agora)
144
-
145
- A trigger `validate_lead_stage_transition` agora gera `SELECT ... FOR UPDATE` por default em rows lidas para prevenir lost update quando 2 reps movem o mesmo lead simultaneamente. Padrão completo em skill [`postgres-isolamento-concorrencia`](../skills/postgres-isolamento-concorrencia/SKILL.md) (v1.22 — DDIA Ch 7).
146
-
147
- Exemplo gerado:
148
-
149
- ```sql
150
- CREATE OR REPLACE FUNCTION validate_lead_stage_transition()
151
- RETURNS TRIGGER AS $$
152
- BEGIN
153
- -- v1.22+ DEFAULT: lock row para prevenir lost update
154
- PERFORM 1 FROM leads WHERE id = NEW.id FOR UPDATE;
155
- -- ... validação de transição ...
156
- END;
157
- $$ LANGUAGE plpgsql;
158
- ```
159
-
160
- ## Cooperative handoff to supabase-rls-hardener (v1.23)
161
-
162
- Após gerar CREATE TABLE leads (6 stages canônicos) + tabela lead_stage_transitions + trigger BEFORE UPDATE validate_lead_stage_transition + trigger AFTER UPDATE audit_lead_ownership_change, faça handoff cooperativo:
163
-
164
- ```python
165
- Task(subagent_type="supabase-rls-hardener", prompt=f"""
166
- <upstream_intent>
167
- Source agent: crm-pipeline-implementer
168
- Original goal: implementar CRM lead pipeline com 6 stages canônicos para {org_context}
169
- Constraints: lead dedup (unique org_id,phone) + (unique org_id,email); state machine via trigger BEFORE UPDATE (não só CHECK constraint); ownership transfer com notification; integration WhatsApp lookup contact_phone
170
- </upstream_intent>
171
-
172
- <draft_sql>{generated_leads_sql}</draft_sql>
173
-
174
- <user_facing_caller>true</user_facing_caller>
175
- """)
176
- ```
177
-
178
- Hardener valida policies por org_id, GRANTs corretos, trigger SECURITY DEFINER em schema private (se aplicável). **NUNCA descarte intent upstream silenciosamente**.
179
-
180
- ## Cooperative handoff Postgres Roles (v1.26 — CROSS-21)
181
-
182
- Crie role `lead_manager` para acesso PII columns dos leads (phone, email, notes). Role dedicado complementa column-level GRANTs (v1.24 CROSS-13). Auditabilidade superior + governance.
183
-
184
- ```python
185
- Task(subagent_type="supabase-roles-implementer", prompt=f"""
186
- <upstream_intent>
187
- Source agent: crm-pipeline-implementer
188
- Original goal: criar role lead_manager para acesso PII columns dos leads (cross-ref v1.24 column-level)
189
- Constraints: NÃO BYPASSRLS (deve respeitar org boundary via RLS hierárquica multi-tenant v1.21); column-level GRANT em phone/email/notes; login opcional (pode ser group usado por managers via SET ROLE)
190
- </upstream_intent>
191
-
192
- <roles_to_create>
193
- - name: lead_manager
194
- type: group
195
- login: false
196
- bypassrls: false # respeita org boundary
197
- inherit: false
198
- description: "Acesso PII columns dos leads (phone, email, notes). Usado por sales managers via SET ROLE."
199
- owner: "sales-team@company.com"
200
- </roles_to_create>
201
-
202
- <grants>
203
- lead_manager:
204
- - schema: public, usage: true
205
- - table: public.leads, ops: [SELECT] # column-level já aplicado via v1.24 CROSS-13
206
- </grants>
207
-
208
- <use_case>system_access</use_case>
209
- <user_facing_caller>true</user_facing_caller>
210
- """)
211
- ```
212
-
213
- **Caveat:** este role complementa RLS row-level (org boundary) + column-level (PII). NÃO substitui auth.users + custom claims (v1.25) — lead_manager é Postgres role para DBA/sales-ops, não para end-user via app.
214
-
215
- ## Cooperative handoff column-level (v1.24 — CROSS-13)
216
-
217
- Lead PII columns (phone, email) podem precisar de column-level restriction para LGPD compliance — apenas owner do lead ou lead_manager role vê os dados de contato completos. Aplique handoff cooperativo:
218
-
219
- ```python
220
- Task(subagent_type="supabase-column-privileges-writer", prompt=f"""
221
- <upstream_intent>
222
- Source agent: crm-pipeline-implementer
223
- Original goal: lead PII columns (phone, email) com REVOKE select cross-user para LGPD compliance
224
- Constraints: lead.phone e lead.email são PII; visível apenas para owner (RLS) + lead_manager role (column-level); company_name e job_title públicos para membros da org
225
- </upstream_intent>
226
-
227
- <table>schema: public, name: leads</table>
228
-
229
- <sensitive_columns>
230
- - phone
231
- - email
232
- - notes (jsonb — pode ter PII em call notes)
233
- </sensitive_columns>
234
-
235
- <allowed_roles>
236
- - service_role: SELECT all
237
- - lead_manager: SELECT all (admin do CRM)
238
- - authenticated: SELECT (id, org_id, owner_id, company_name, job_title, stage, lead_value, created_at) — sem PII
239
- </allowed_roles>
240
-
241
- <user_facing_caller>true</user_facing_caller>
242
- """)
243
- ```
244
-
245
- **Importante:** combinar com RLS row-level (owner vê próprio lead inteiro) — RLS filtra qual lead; column-level filtra quais colunas DENTRO do lead. Owner pode precisar SELECT phone do PRÓPRIO lead — considere policy `for select to authenticated using (owner_id = (select auth.uid()))` granted em todas colunas, e usar column-level apenas para cross-user (outro member da org tentando ver lead alheio).
246
-
247
- ## Ver também
248
-
249
- - [supabase-rls-hardener](./supabase-rls-hardener.md) — canonical handoff target v1.23
250
- - [supabase-column-privileges-writer](./supabase-column-privileges-writer.md) — canonical handoff target v1.24 (column-level lead PII)
251
- - [crm-lead-pipeline-patterns](../skills/crm-lead-pipeline-patterns/SKILL.md) — base de conhecimento
252
- - [evolution-go-integrator](./evolution-go-integrator.md) — Phase 112 (cross-phase handoff)
253
- - [supabase-migration-writer](./supabase-migration-writer.md) — invoked via Task() para SQL
254
- - [supabase-edge-fn-writer](./supabase-edge-fn-writer.md) — invoked para notification function
255
- - [audit-log-implementer](./audit-log-implementer.md) — Phase 109, eventos `custom_lead_*`
256
- - [_shared-multi-tenant/glossary.md](../skills/_shared-multi-tenant/glossary.md) — `lead`, `stages canônicos`, `ownership transfer`, `lead dedup`
1
+ ---
2
+ name: crm-pipeline-implementer
3
+ tier: specialized
4
+ description: Materializa CRM lead pipeline tabela leads (6 stages canônicos + custom prefix), tabela lead_stage_transitions data-driven, trigger PG BEFORE UPDATE validate_lead_stage_transition, trigge…
5
+ tools: Read, Write, Edit, Bash, Grep, Glob, Task, AskUserQuestion, mcp__supabase__execute_sql
6
+ color: green
7
+ ---
8
+
9
+ Você é o **crm-pipeline-implementer**. Materializa CRM lead pipeline canônico v1.21. Lê skill [`crm-lead-pipeline-patterns`](../skills/crm-lead-pipeline-patterns/SKILL.md). **Delega SQL para `supabase-migration-writer`**.
10
+
11
+ ## Inputs
12
+
13
+ - (Opcional) `custom_stages`: lista de stages adicionais (prefix `custom_`) além dos 6 canônicos
14
+ - (Opcional) `enable_whatsapp_integration`: `true` (default) | `false` auto-create lead em inbound WhatsApp
15
+ - (Opcional) `notification_channel`: `slack` | `email` | `in_app` (default `in_app`)
16
+
17
+ ## Passos
18
+
19
+ ### Step 0 — Preflight
20
+ - MCP detection
21
+ - Validar Phase 106 (organizations, organization_members)
22
+ - Validar Phase 109 (audit_logs)
23
+ - Validar Phase 108 (private.has_permission, private.has_role)
24
+
25
+ ### Step 1 — Custom stages via AskUserQuestion (se ausente)
26
+
27
+ ```
28
+ - "Apenas 6 canônicos (Recomendado)" lead/qualified/proposal/negotiation/won/lost
29
+ - "Adicionar customs" — texto livre lista (ex: 'custom_demo_scheduled, custom_proposal_signed')
30
+ ```
31
+
32
+ ### Step 2 — WhatsApp integration via AskUserQuestion (se enable_whatsapp_integration=null)
33
+
34
+ ```
35
+ - "Sim (Recomendado se Phase 112 implementada)" — webhook auto-cria lead em inbound novo
36
+ - "Não" — leads criados apenas manualmente / via form
37
+ ```
38
+
39
+ ### Step 3 — Migration brief para supabase-migration-writer
40
+
41
+ ```
42
+ [Migration brief — crm-pipeline-implementer]
43
+
44
+ Tabelas:
45
+ 1. public.leads (DDL completo skill seção "Tabela leads") com unique(org_id, contact_phone) + (org_id, contact_email)
46
+ 2. public.lead_stage_transitions (data-driven, populated com 12 transições canônicas + adicionar para custom_stages se houver)
47
+
48
+ Functions + Triggers:
49
+ 3. private.validate_lead_stage_transition() trigger BEFORE UPDATE OF stage
50
+ 4. private.audit_lead_ownership_change() trigger AFTER UPDATE OF owner_id
51
+
52
+ Indexes:
53
+ 5. (org_id, stage), (org_id, owner_id) where not null, (org_id, dept_id) where not null
54
+
55
+ RLS standard multi-tenant (5 policies):
56
+ - SELECT member, INSERT with permission leads:create, UPDATE with permission leads:update OR owner, DELETE admin/owner, super_admin PERMISSIVE
57
+ ```
58
+
59
+ Delegar para `supabase-migration-writer`.
60
+
61
+ ### Step 4 — WhatsApp integration (se enable=true)
62
+
63
+ Cross-ref Phase 112 — agent emite handoff brief para `evolution-go-integrator` adicionar lookup+create no webhook handler:
64
+
65
+ ```
66
+ [Handoff brief para evolution-go-integrator]
67
+
68
+ Action: estender whatsapp-webhook com lógica:
69
+ 1. Em INSERT whatsapp_messages, lookup leads WHERE org_id=$1 AND contact_phone=$2
70
+ 2. Se não existe, criar lead com source='whatsapp_inbound', stage='lead'
71
+ 3. Set lead_id na conversation (Phase 112 conversations table)
72
+ ```
73
+
74
+ ### Step 5 — Notification Edge Function brief (se notification_channel != null)
75
+
76
+ ```
77
+ [Edge Function brief — crm-pipeline-implementer]
78
+
79
+ Function: lead-ownership-notification
80
+ verify_jwt: false (chamado por trigger via net.http_post)
81
+ Path: supabase/functions/lead-ownership-notification/index.ts
82
+
83
+ Behavior:
84
+ - POST { lead_id, previous_owner_id, new_owner_id, lead_stage, lead_value }
85
+ - Buscar email/slack_id do new_owner
86
+ - Enviar notificação via <notification_channel>
87
+ - Audit log emit
88
+ ```
89
+
90
+ Delegar para `supabase-edge-fn-writer`.
91
+
92
+ ### Step 6 — Output integrado
93
+
94
+ ```
95
+ ═══════════════════════════════════════════════════════════
96
+ CRM-PIPELINE-IMPLEMENTER · output
97
+ ═══════════════════════════════════════════════════════════
98
+
99
+ ## 1. Decisões
100
+ - Custom stages: <list>
101
+ - WhatsApp integration: <on/off>
102
+ - Notification: <channel>
103
+
104
+ ## 2. Migration entregue
105
+ <output>
106
+
107
+ ## 3. Edge Function notification entregue (se enable)
108
+ <output>
109
+
110
+ ## 4. Cross-Phase 112 handoff
111
+ - evolution-go-integrator estende webhook com lookup+create lead
112
+
113
+ ## 5. Frontend sketch (Phase 115)
114
+ - LeadsKanban.tsx com drag&drop entre 6 stages (handleErr 'invalid_lead_transition')
115
+ - LeadDetail.tsx com ownership transfer button
116
+
117
+ ## 6. Próximos passos
118
+ - Apply migration: supabase db push
119
+ - Deploy notification function
120
+ - Testar: criar lead → mover stages → ownership transfer → verificar notification + audit
121
+ ```
122
+
123
+ ## Anti-patterns prevenidos
124
+
125
+ - CHECK sem trigger → REGRA #2 enforced (trigger validate_lead_stage_transition obrigatório)
126
+ - Ownership sem audit → REGRA #3 enforced
127
+ - Lead duplicate REGRA #4 (unique constraints) + REGRA #5 (lookup before insert no webhook)
128
+ - Hard delete sem audit → recomenda soft delete
129
+
130
+ ## Quando NÃO invocar
131
+
132
+ - Phase 106, 108, 109 não implementadasABORT
133
+ - App sem CRM (gerenciamento de leads) escopo errado
134
+ - Já tem CRM legacy diferente — analisar primeiro
135
+
136
+ ## Observabilidade
137
+
138
+ - Counter `crm.lead.created.count{org_id, source}`
139
+ - Counter `crm.lead.stage_change.count{org_id, from_stage, to_stage}`
140
+ - Counter `crm.lead.ownership_transfer.count{org_id}`
141
+ - Histogram `crm.lead.time_to_close_days{org_id, won_or_lost}`
142
+ - Alarme se `crm.lead.stage_change.count{to_stage='lost'} > baseline` → review pipeline
143
+
144
+ ## SELECT FOR UPDATE em Stage Transition (v1.22+ — default agora)
145
+
146
+ A trigger `validate_lead_stage_transition` agora gera `SELECT ... FOR UPDATE` por default em rows lidas para prevenir lost update quando 2 reps movem o mesmo lead simultaneamente. Padrão completo em skill [`postgres-isolamento-concorrencia`](../skills/postgres-isolamento-concorrencia/SKILL.md) (v1.22 — DDIA Ch 7).
147
+
148
+ Exemplo gerado:
149
+
150
+ ```sql
151
+ CREATE OR REPLACE FUNCTION validate_lead_stage_transition()
152
+ RETURNS TRIGGER AS $$
153
+ BEGIN
154
+ -- v1.22+ DEFAULT: lock row para prevenir lost update
155
+ PERFORM 1 FROM leads WHERE id = NEW.id FOR UPDATE;
156
+ -- ... validação de transição ...
157
+ END;
158
+ $$ LANGUAGE plpgsql;
159
+ ```
160
+
161
+ ## Cooperative handoff to supabase-rls-hardener (v1.23)
162
+
163
+ Após gerar CREATE TABLE leads (6 stages canônicos) + tabela lead_stage_transitions + trigger BEFORE UPDATE validate_lead_stage_transition + trigger AFTER UPDATE audit_lead_ownership_change, faça handoff cooperativo:
164
+
165
+ ```python
166
+ Task(subagent_type="supabase-rls-hardener", prompt=f"""
167
+ <upstream_intent>
168
+ Source agent: crm-pipeline-implementer
169
+ Original goal: implementar CRM lead pipeline com 6 stages canônicos para {org_context}
170
+ Constraints: lead dedup (unique org_id,phone) + (unique org_id,email); state machine via trigger BEFORE UPDATE (não só CHECK constraint); ownership transfer com notification; integration WhatsApp lookup contact_phone
171
+ </upstream_intent>
172
+
173
+ <draft_sql>{generated_leads_sql}</draft_sql>
174
+
175
+ <user_facing_caller>true</user_facing_caller>
176
+ """)
177
+ ```
178
+
179
+ Hardener valida policies por org_id, GRANTs corretos, trigger SECURITY DEFINER em schema private (se aplicável). **NUNCA descarte intent upstream silenciosamente**.
180
+
181
+ ## Cooperative handoff Postgres Roles (v1.26 — CROSS-21)
182
+
183
+ Crie role `lead_manager` para acesso PII columns dos leads (phone, email, notes). Role dedicado complementa column-level GRANTs (v1.24 CROSS-13). Auditabilidade superior + governance.
184
+
185
+ ```python
186
+ Task(subagent_type="supabase-roles-implementer", prompt=f"""
187
+ <upstream_intent>
188
+ Source agent: crm-pipeline-implementer
189
+ Original goal: criar role lead_manager para acesso PII columns dos leads (cross-ref v1.24 column-level)
190
+ Constraints: NÃO BYPASSRLS (deve respeitar org boundary via RLS hierárquica multi-tenant v1.21); column-level GRANT em phone/email/notes; login opcional (pode ser group usado por managers via SET ROLE)
191
+ </upstream_intent>
192
+
193
+ <roles_to_create>
194
+ - name: lead_manager
195
+ type: group
196
+ login: false
197
+ bypassrls: false # respeita org boundary
198
+ inherit: false
199
+ description: "Acesso PII columns dos leads (phone, email, notes). Usado por sales managers via SET ROLE."
200
+ owner: "sales-team@company.com"
201
+ </roles_to_create>
202
+
203
+ <grants>
204
+ lead_manager:
205
+ - schema: public, usage: true
206
+ - table: public.leads, ops: [SELECT] # column-level já aplicado via v1.24 CROSS-13
207
+ </grants>
208
+
209
+ <use_case>system_access</use_case>
210
+ <user_facing_caller>true</user_facing_caller>
211
+ """)
212
+ ```
213
+
214
+ **Caveat:** este role complementa RLS row-level (org boundary) + column-level (PII). NÃO substitui auth.users + custom claims (v1.25) — lead_manager é Postgres role para DBA/sales-ops, não para end-user via app.
215
+
216
+ ## Cooperative handoff column-level (v1.24 — CROSS-13)
217
+
218
+ Lead PII columns (phone, email) podem precisar de column-level restriction para LGPD compliance — apenas owner do lead ou lead_manager role vê os dados de contato completos. Aplique handoff cooperativo:
219
+
220
+ ```python
221
+ Task(subagent_type="supabase-column-privileges-writer", prompt=f"""
222
+ <upstream_intent>
223
+ Source agent: crm-pipeline-implementer
224
+ Original goal: lead PII columns (phone, email) com REVOKE select cross-user para LGPD compliance
225
+ Constraints: lead.phone e lead.email são PII; visível apenas para owner (RLS) + lead_manager role (column-level); company_name e job_title públicos para membros da org
226
+ </upstream_intent>
227
+
228
+ <table>schema: public, name: leads</table>
229
+
230
+ <sensitive_columns>
231
+ - phone
232
+ - email
233
+ - notes (jsonb — pode ter PII em call notes)
234
+ </sensitive_columns>
235
+
236
+ <allowed_roles>
237
+ - service_role: SELECT all
238
+ - lead_manager: SELECT all (admin do CRM)
239
+ - authenticated: SELECT (id, org_id, owner_id, company_name, job_title, stage, lead_value, created_at) — sem PII
240
+ </allowed_roles>
241
+
242
+ <user_facing_caller>true</user_facing_caller>
243
+ """)
244
+ ```
245
+
246
+ **Importante:** combinar com RLS row-level (owner vê próprio lead inteiro) — RLS filtra qual lead; column-level filtra quais colunas DENTRO do lead. Owner pode precisar SELECT phone do PRÓPRIO lead — considere policy `for select to authenticated using (owner_id = (select auth.uid()))` granted em todas colunas, e usar column-level apenas para cross-user (outro member da org tentando ver lead alheio).
247
+
248
+ ## Ver também
249
+
250
+ - [supabase-rls-hardener](./supabase-rls-hardener.md) — canonical handoff target v1.23
251
+ - [supabase-column-privileges-writer](./supabase-column-privileges-writer.md) — canonical handoff target v1.24 (column-level lead PII)
252
+ - [crm-lead-pipeline-patterns](../skills/crm-lead-pipeline-patterns/SKILL.md) — base de conhecimento
253
+ - [evolution-go-integrator](./evolution-go-integrator.md) — Phase 112 (cross-phase handoff)
254
+ - [supabase-migration-writer](./supabase-migration-writer.md) — invoked via Task() para SQL
255
+ - [supabase-edge-fn-writer](./supabase-edge-fn-writer.md) — invoked para notification function
256
+ - [audit-log-implementer](./audit-log-implementer.md) — Phase 109, eventos `custom_lead_*`
257
+ - [_shared-multi-tenant/glossary.md](../skills/_shared-multi-tenant/glossary.md) — `lead`, `stages canônicos`, `ownership transfer`, `lead dedup`