@luanpdd/kit-mcp 1.33.0 → 1.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +168 -168
- package/gates/agent-no-recursive-dispatch.md +84 -84
- package/kit/COMANDOS.md +138 -138
- package/kit/COMPATIBILITY.md +70 -70
- package/kit/README.md +76 -76
- package/kit/agents/advisor-researcher.md +109 -109
- package/kit/agents/ai-mutation-tester.md +289 -289
- package/kit/agents/assumptions-analyzer.md +110 -110
- package/kit/agents/audit-log-implementer.md +314 -314
- package/kit/agents/auditor-consistencia-isolamento.md +414 -414
- package/kit/agents/b2b-saas-architect.md +157 -157
- package/kit/agents/burn-rate-forecaster.md +153 -153
- package/kit/agents/cascading-failures-auditor.md +299 -299
- package/kit/agents/codebase-mapper.md +769 -769
- package/kit/agents/crm-pipeline-implementer.md +257 -257
- package/kit/agents/debugger.md +814 -814
- package/kit/agents/designer-ui.md +216 -216
- package/kit/agents/detector-tenant-quente.md +338 -338
- package/kit/agents/evolution-go-integrator.md +201 -201
- package/kit/agents/example-reviewer.md +22 -22
- package/kit/agents/executor.md +565 -565
- package/kit/agents/golden-signals-instrumenter.md +232 -232
- package/kit/agents/incident-investigator.md +238 -238
- package/kit/agents/integration-checker.md +203 -203
- package/kit/agents/invite-flow-implementer.md +190 -190
- package/kit/agents/legacy-characterizer.md +369 -369
- package/kit/agents/lgpd-compliance-auditor.md +296 -296
- package/kit/agents/load-shedding-instrumenter.md +290 -290
- package/kit/agents/multi-tenant-isolation-auditor.md +254 -254
- package/kit/agents/multi-tenant-rls-writer.md +341 -341
- package/kit/agents/nyquist-auditor.md +181 -181
- package/kit/agents/observability-coverage-auditor.md +316 -316
- package/kit/agents/observability-instrumenter.md +191 -191
- package/kit/agents/omm-auditor.md +291 -291
- package/kit/agents/org-onboarding-implementer.md +224 -224
- package/kit/agents/payload-capture-instrumenter.md +274 -274
- package/kit/agents/phase-researcher.md +697 -697
- package/kit/agents/plan-checker.md +275 -275
- package/kit/agents/planner.md +923 -923
- package/kit/agents/postmortem-writer.md +273 -273
- package/kit/agents/project-researcher.md +653 -653
- package/kit/agents/prr-conductor.md +287 -287
- package/kit/agents/refactor-safety-auditor.md +405 -405
- package/kit/agents/release-pipeline-auditor.md +364 -364
- package/kit/agents/research-synthesizer.md +246 -246
- package/kit/agents/roadmapper.md +678 -678
- package/kit/agents/schema-checker.md +160 -160
- package/kit/agents/seam-finder.md +360 -360
- package/kit/agents/shotgun-surgery-detector.md +350 -350
- package/kit/agents/slo-engineer.md +217 -217
- package/kit/agents/storytelling-analyst.md +300 -300
- package/kit/agents/supabase-architect.md +249 -249
- package/kit/agents/supabase-auth-bootstrapper.md +400 -400
- package/kit/agents/supabase-auth-hook-writer.md +418 -418
- package/kit/agents/supabase-branching-architect.md +563 -563
- package/kit/agents/supabase-cicd-pipeline-implementer.md +778 -778
- package/kit/agents/supabase-column-privileges-writer.md +400 -400
- package/kit/agents/supabase-edge-fn-tester.md +288 -288
- package/kit/agents/supabase-edge-fn-writer.md +341 -341
- package/kit/agents/supabase-mfa-implementer.md +439 -439
- package/kit/agents/supabase-migration-writer.md +386 -386
- package/kit/agents/supabase-oauth-server-implementer.md +507 -507
- package/kit/agents/supabase-rbac-implementer.md +393 -393
- package/kit/agents/supabase-realtime-implementer.md +364 -364
- package/kit/agents/supabase-rls-hardener.md +522 -522
- package/kit/agents/supabase-rls-writer.md +324 -324
- package/kit/agents/supabase-roles-implementer.md +356 -356
- package/kit/agents/supabase-social-auth-implementer.md +451 -451
- package/kit/agents/supabase-sso-saml-architect.md +549 -549
- package/kit/agents/supabase-storage-implementer.md +407 -407
- package/kit/agents/super-admin-implementer.md +282 -282
- package/kit/agents/toil-auditor.md +268 -268
- package/kit/agents/ui-auditor.md +438 -438
- package/kit/agents/ui-checker.md +305 -305
- package/kit/agents/ui-researcher.md +356 -356
- package/kit/agents/user-profiler.md +176 -176
- package/kit/agents/validador-evolucao-schema.md +336 -336
- package/kit/agents/verifier.md +729 -729
- package/kit/agents/workflow-generator.md +167 -0
- package/kit/commands/adicionar-backlog.md +75 -75
- package/kit/commands/adicionar-fase.md +42 -42
- package/kit/commands/adicionar-tarefa.md +45 -45
- package/kit/commands/adicionar-testes.md +41 -41
- package/kit/commands/ajuda.md +21 -21
- package/kit/commands/atualizar.md +37 -37
- package/kit/commands/auditar-cascading.md +111 -111
- package/kit/commands/auditar-marco.md +179 -179
- package/kit/commands/auditar-observabilidade-cobertura-workflow.md +121 -0
- package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
- package/kit/commands/auditar-refactor.md +219 -219
- package/kit/commands/auditar-release.md +109 -109
- package/kit/commands/auditar-uat.md +23 -23
- package/kit/commands/autonomo.md +40 -40
- package/kit/commands/branch-pr.md +24 -24
- package/kit/commands/burn-rate-status.md +408 -408
- package/kit/commands/capturar-payloads.md +193 -193
- package/kit/commands/caracterizar.md +212 -212
- package/kit/commands/concluir-marco.md +247 -247
- package/kit/commands/configuracoes.md +36 -36
- package/kit/commands/criar-workflow.md +158 -0
- package/kit/commands/dados-distribuidos.md +188 -188
- package/kit/commands/definir-perfil.md +10 -10
- package/kit/commands/depurar.md +190 -190
- package/kit/commands/detectar-duplicacao.md +197 -197
- package/kit/commands/discutir-fase.md +131 -131
- package/kit/commands/encontrar-seams.md +136 -136
- package/kit/commands/entrar-discord.md +17 -17
- package/kit/commands/estatisticas.md +18 -18
- package/kit/commands/example-greeting.md +33 -33
- package/kit/commands/executar-fase.md +58 -58
- package/kit/commands/expresso.md +56 -56
- package/kit/commands/fase-ui.md +34 -34
- package/kit/commands/fazer.md +57 -57
- package/kit/commands/fio.md +125 -125
- package/kit/commands/fluxos-trabalho.md +64 -64
- package/kit/commands/forense.md +176 -176
- package/kit/commands/gerenciador.md +38 -38
- package/kit/commands/inserir-fase.md +31 -31
- package/kit/commands/legacy.md +263 -263
- package/kit/commands/limpeza.md +17 -17
- package/kit/commands/listar-hipoteses-fase.md +45 -45
- package/kit/commands/listar-workspaces.md +18 -18
- package/kit/commands/load-shedding.md +117 -117
- package/kit/commands/mapear-codebase.md +70 -70
- package/kit/commands/multi-tenant.md +163 -163
- package/kit/commands/nota.md +33 -33
- package/kit/commands/novo-marco.md +43 -43
- package/kit/commands/novo-projeto.md +41 -41
- package/kit/commands/novo-workspace.md +43 -43
- package/kit/commands/pausar-trabalho.md +37 -37
- package/kit/commands/perfil-usuario.md +45 -45
- package/kit/commands/pesquisar-fase.md +195 -195
- package/kit/commands/planejar-fase.md +67 -67
- package/kit/commands/planejar-lacunas.md +33 -33
- package/kit/commands/plantar-ideia.md +25 -25
- package/kit/commands/progresso.md +24 -24
- package/kit/commands/proximo.md +30 -30
- package/kit/commands/publicar.md +490 -490
- package/kit/commands/rapido.md +35 -35
- package/kit/commands/reaplicar-patches.md +124 -124
- package/kit/commands/refactor-seguro.md +321 -321
- package/kit/commands/relatorio-sessao.md +19 -19
- package/kit/commands/remover-fase.md +31 -31
- package/kit/commands/remover-workspace.md +26 -26
- package/kit/commands/resumo-marco.md +50 -50
- package/kit/commands/retomar-trabalho.md +40 -40
- package/kit/commands/revisar-backlog.md +60 -60
- package/kit/commands/revisar-ui.md +32 -32
- package/kit/commands/revisar.md +37 -37
- package/kit/commands/saude.md +21 -21
- package/kit/commands/setup-notion.md +93 -93
- package/kit/commands/storytelling.md +179 -179
- package/kit/commands/supabase.md +238 -238
- package/kit/commands/sync-main.md +68 -68
- package/kit/commands/validar-fase.md +35 -35
- package/kit/commands/verificar-tarefas.md +44 -44
- package/kit/commands/verificar-trabalho.md +64 -64
- package/kit/file-manifest.json +424 -419
- package/kit/framework/bin/lib/commands.cjs +959 -959
- package/kit/framework/bin/lib/config.cjs +442 -442
- package/kit/framework/bin/lib/core.cjs +1230 -1230
- package/kit/framework/bin/lib/frontmatter.cjs +336 -336
- package/kit/framework/bin/lib/init.cjs +1442 -1442
- package/kit/framework/bin/lib/milestone.cjs +252 -252
- package/kit/framework/bin/lib/model-profiles.cjs +68 -68
- package/kit/framework/bin/lib/phase.cjs +888 -888
- package/kit/framework/bin/lib/profile-output.cjs +952 -952
- package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
- package/kit/framework/bin/lib/roadmap.cjs +329 -329
- package/kit/framework/bin/lib/security.cjs +382 -382
- package/kit/framework/bin/lib/state.cjs +1031 -1031
- package/kit/framework/bin/lib/template.cjs +222 -222
- package/kit/framework/bin/lib/uat.cjs +282 -282
- package/kit/framework/bin/lib/verify.cjs +888 -888
- package/kit/framework/bin/lib/workstream.cjs +491 -491
- package/kit/framework/bin/tools.cjs +918 -918
- package/kit/framework/commands/workstreams.md +63 -63
- package/kit/framework/references/checkpoints.md +778 -778
- package/kit/framework/references/continuation-format.md +249 -249
- package/kit/framework/references/decimal-phase-calculation.md +64 -64
- package/kit/framework/references/git-integration.md +295 -295
- package/kit/framework/references/git-planning-commit.md +38 -38
- package/kit/framework/references/model-profile-resolution.md +36 -36
- package/kit/framework/references/model-profiles.md +139 -139
- package/kit/framework/references/phase-argument-parsing.md +61 -61
- package/kit/framework/references/planning-config.md +202 -202
- package/kit/framework/references/questioning.md +162 -162
- package/kit/framework/references/tdd.md +263 -263
- package/kit/framework/references/ui-brand.md +160 -160
- package/kit/framework/references/user-profiling.md +657 -657
- package/kit/framework/references/verification-patterns.md +612 -612
- package/kit/framework/references/workstream-flag.md +58 -58
- package/kit/framework/templates/DEBUG.md +164 -164
- package/kit/framework/templates/UAT.md +265 -265
- package/kit/framework/templates/UI-SPEC.md +100 -100
- package/kit/framework/templates/VALIDATION.md +76 -76
- package/kit/framework/templates/claude-md.md +122 -122
- package/kit/framework/templates/codebase/architecture.md +185 -185
- package/kit/framework/templates/codebase/concerns.md +205 -205
- package/kit/framework/templates/codebase/conventions.md +204 -204
- package/kit/framework/templates/codebase/integrations.md +192 -192
- package/kit/framework/templates/codebase/stack.md +158 -158
- package/kit/framework/templates/codebase/structure.md +199 -199
- package/kit/framework/templates/codebase/testing.md +301 -301
- package/kit/framework/templates/config.json +44 -44
- package/kit/framework/templates/context.md +352 -352
- package/kit/framework/templates/continue-here.md +78 -78
- package/kit/framework/templates/copilot-instructions.md +7 -7
- package/kit/framework/templates/debug-subagent-prompt.md +91 -91
- package/kit/framework/templates/dev-preferences.md +20 -20
- package/kit/framework/templates/discovery.md +146 -146
- package/kit/framework/templates/discussion-log.md +63 -63
- package/kit/framework/templates/milestone-archive.md +123 -123
- package/kit/framework/templates/milestone.md +115 -115
- package/kit/framework/templates/phase-prompt.md +610 -610
- package/kit/framework/templates/planner-subagent-prompt.md +117 -117
- package/kit/framework/templates/project.md +186 -186
- package/kit/framework/templates/requirements.md +231 -231
- package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
- package/kit/framework/templates/research-project/FEATURES.md +147 -147
- package/kit/framework/templates/research-project/PITFALLS.md +200 -200
- package/kit/framework/templates/research-project/STACK.md +120 -120
- package/kit/framework/templates/research-project/SUMMARY.md +170 -170
- package/kit/framework/templates/research.md +419 -419
- package/kit/framework/templates/retrospective.md +54 -54
- package/kit/framework/templates/roadmap.md +202 -202
- package/kit/framework/templates/state.md +176 -176
- package/kit/framework/templates/summary-complex.md +59 -59
- package/kit/framework/templates/summary-minimal.md +41 -41
- package/kit/framework/templates/summary-standard.md +48 -48
- package/kit/framework/templates/summary.md +209 -209
- package/kit/framework/templates/user-profile.md +146 -146
- package/kit/framework/templates/user-setup.md +256 -256
- package/kit/framework/templates/verification-report.md +258 -258
- package/kit/framework/workflows/add-phase.md +112 -112
- package/kit/framework/workflows/add-tests.md +351 -351
- package/kit/framework/workflows/add-todo.md +158 -158
- package/kit/framework/workflows/audit-milestone.md +340 -340
- package/kit/framework/workflows/audit-uat.md +109 -109
- package/kit/framework/workflows/autonomous.md +891 -891
- package/kit/framework/workflows/check-todos.md +177 -177
- package/kit/framework/workflows/cleanup.md +152 -152
- package/kit/framework/workflows/complete-milestone.md +696 -696
- package/kit/framework/workflows/diagnose-issues.md +231 -231
- package/kit/framework/workflows/discovery-phase.md +289 -289
- package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
- package/kit/framework/workflows/discuss-phase.md +784 -784
- package/kit/framework/workflows/do.md +104 -104
- package/kit/framework/workflows/execute-phase.md +838 -838
- package/kit/framework/workflows/execute-plan.md +510 -510
- package/kit/framework/workflows/fast.md +102 -102
- package/kit/framework/workflows/forensics.md +265 -265
- package/kit/framework/workflows/health.md +181 -181
- package/kit/framework/workflows/help.md +619 -619
- package/kit/framework/workflows/insert-phase.md +130 -130
- package/kit/framework/workflows/list-phase-assumptions.md +178 -178
- package/kit/framework/workflows/list-workspaces.md +56 -56
- package/kit/framework/workflows/manager.md +362 -362
- package/kit/framework/workflows/map-codebase.md +377 -377
- package/kit/framework/workflows/milestone-summary.md +223 -223
- package/kit/framework/workflows/new-milestone.md +486 -486
- package/kit/framework/workflows/new-project.md +1159 -1159
- package/kit/framework/workflows/new-workspace.md +237 -237
- package/kit/framework/workflows/next.md +97 -97
- package/kit/framework/workflows/node-repair.md +92 -92
- package/kit/framework/workflows/note.md +156 -156
- package/kit/framework/workflows/pause-work.md +176 -176
- package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
- package/kit/framework/workflows/plan-phase.md +765 -765
- package/kit/framework/workflows/plant-seed.md +169 -169
- package/kit/framework/workflows/pr-branch.md +129 -129
- package/kit/framework/workflows/profile-user.md +450 -450
- package/kit/framework/workflows/progress.md +507 -507
- package/kit/framework/workflows/quick.md +757 -757
- package/kit/framework/workflows/remove-phase.md +155 -155
- package/kit/framework/workflows/remove-workspace.md +90 -90
- package/kit/framework/workflows/research-phase.md +82 -82
- package/kit/framework/workflows/resume-project.md +326 -326
- package/kit/framework/workflows/review.md +228 -228
- package/kit/framework/workflows/session-report.md +146 -146
- package/kit/framework/workflows/settings.md +283 -283
- package/kit/framework/workflows/ship.md +228 -228
- package/kit/framework/workflows/stats.md +60 -60
- package/kit/framework/workflows/transition.md +671 -671
- package/kit/framework/workflows/ui-phase.md +302 -302
- package/kit/framework/workflows/ui-review.md +165 -165
- package/kit/framework/workflows/update.md +323 -323
- package/kit/framework/workflows/validate-phase.md +174 -174
- package/kit/framework/workflows/verify-phase.md +252 -252
- package/kit/framework/workflows/verify-work.md +637 -637
- package/kit/hooks/check-update.js +118 -118
- package/kit/hooks/context-monitor.js +163 -163
- package/kit/hooks/kit-attribution-reminder.cjs +92 -92
- package/kit/hooks/kit-router.cjs +137 -137
- package/kit/hooks/prompt-guard.js +103 -103
- package/kit/hooks/statusline.js +125 -125
- package/kit/hooks/workflow-guard.js +101 -101
- package/kit/settings.json +45 -45
- package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
- package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
- package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
- package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
- package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
- package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
- package/kit/skills/dynamic-workflow-authoring/SKILL.md +223 -0
- package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
- package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
- package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
- package/kit/skills/example-skill/SKILL.md +42 -42
- package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
- package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
- package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
- package/kit/skills/legacy-extract-class/SKILL.md +203 -203
- package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
- package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
- package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
- package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
- package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
- package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
- package/kit/skills/member-invite-flow/SKILL.md +305 -305
- package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
- package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
- package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
- package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
- package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
- package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
- package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
- package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
- package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
- package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
- package/kit/skills/supabase-auth-hardening/SKILL.md +674 -674
- package/kit/skills/supabase-auth-hooks/SKILL.md +875 -875
- package/kit/skills/supabase-auth-methods/SKILL.md +486 -486
- package/kit/skills/supabase-auth-sessions/SKILL.md +579 -579
- package/kit/skills/supabase-auth-ssr/SKILL.md +306 -306
- package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
- package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
- package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
- package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
- package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
- package/kit/skills/supabase-edge-functions/SKILL.md +330 -330
- package/kit/skills/supabase-edge-functions-auth/SKILL.md +309 -309
- package/kit/skills/supabase-edge-functions-limits/SKILL.md +302 -302
- package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +279 -279
- package/kit/skills/supabase-edge-functions-testing/SKILL.md +277 -277
- package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +357 -357
- package/kit/skills/supabase-enterprise-sso-saml/SKILL.md +545 -545
- package/kit/skills/supabase-jwt-signing-keys/SKILL.md +399 -399
- package/kit/skills/supabase-mfa/SKILL.md +488 -488
- package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
- package/kit/skills/supabase-migrations/SKILL.md +297 -297
- package/kit/skills/supabase-oauth-server/SKILL.md +537 -537
- package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
- package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
- package/kit/skills/supabase-realtime/SKILL.md +460 -460
- package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
- package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
- package/kit/skills/supabase-social-oauth/SKILL.md +480 -480
- package/kit/skills/supabase-third-party-auth/SKILL.md +450 -450
- package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
- package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
- package/kit/skills/ui-anti-padroes-ia/SKILL.md +261 -261
- package/kit/skills/ui-contexto-produto/SKILL.md +248 -248
- package/kit/skills/ui-cor-estrategia/SKILL.md +213 -213
- package/kit/skills/ui-critica-auditoria/SKILL.md +260 -260
- package/kit/skills/ui-motion-funcional/SKILL.md +264 -264
- package/kit/skills/ui-ritmo-espacial/SKILL.md +259 -259
- package/kit/skills/ui-tipografia/SKILL.md +211 -211
- package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
- package/kit/workflows/auditar-observabilidade-cobertura.workflow.js +250 -0
- package/package.json +65 -63
- package/src/core/kit.js +333 -216
- package/src/core/reflect.js +247 -247
- package/src/core/registry.js +123 -112
- package/src/core/reverse-sync.js +448 -372
- package/src/core/sync.js +477 -437
- package/src/core/watch.js +121 -121
- package/src/mcp-server/index.js +794 -794
|
@@ -1,160 +1,160 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: schema-checker
|
|
3
|
-
tier: specialized
|
|
4
|
-
description: Valida FKs/colunas/tabelas referenciadas em migration SQL ANTES de aplicar em prod. Lê SQL, consulta schema via Supabase MCP, devolve veredito GO/NO-GO/NEEDS-REVIEW.
|
|
5
|
-
tools: Read, Bash, Grep, Glob, mcp__supabase__execute_sql, mcp__supabase__list_tables
|
|
6
|
-
color: red
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
Você é um schema-checker pré-migration. O caller (orquestrador, geralmente Claude) entrega um caminho de arquivo `.sql` (ou conteúdo cru de SQL) e o `project_id` Supabase. Você responde com um veredito estruturado **antes** que a migration seja aplicada.
|
|
10
|
-
|
|
11
|
-
## Por que existe
|
|
12
|
-
|
|
13
|
-
Migrations escritas com base em comentário ou memória do dev frequentemente assumem schema que não bate com produção. Ex: comentário diz `contact_id → conversations.id`, mas a tabela real tem `contact_id → contacts.id`. Aplicar e ver falhar custa 1 retry no melhor caso, dados sujos no pior. Este agente faz a validação cruzada antes do apply.
|
|
14
|
-
|
|
15
|
-
## Inputs esperados (do caller)
|
|
16
|
-
|
|
17
|
-
- `migration_path`: caminho do arquivo SQL (ou string com a SQL inline).
|
|
18
|
-
- `project_id`: identificador do projeto Supabase (ex: `cqxmojtvfqxyvkuljkzs`).
|
|
19
|
-
- (Opcional) `expected_branch`: se a migration deve rodar em uma branch Supabase específica.
|
|
20
|
-
|
|
21
|
-
## Passos
|
|
22
|
-
|
|
23
|
-
### 1. Ler a migration
|
|
24
|
-
|
|
25
|
-
- Ler arquivo SQL via Read.
|
|
26
|
-
- Normalizar (remover comentários `--` e `/* */`, lowercase).
|
|
27
|
-
|
|
28
|
-
### 2. Extrair referências
|
|
29
|
-
|
|
30
|
-
Identifique três classes de referências que podem estar erradas:
|
|
31
|
-
|
|
32
|
-
#### 2.1 — Foreign keys declaradas
|
|
33
|
-
Patterns:
|
|
34
|
-
- `references <schema>.<table>(<col>)`
|
|
35
|
-
- `references <table>(<col>)`
|
|
36
|
-
- `foreign key (<col>) references <table>`
|
|
37
|
-
|
|
38
|
-
Para cada uma, capture: `(local_col, target_table, target_col)`.
|
|
39
|
-
|
|
40
|
-
#### 2.2 — JOINs
|
|
41
|
-
Patterns:
|
|
42
|
-
- `join <table> on <alias>.<col> = <other_alias>.<col>`
|
|
43
|
-
- `join <table> using (<col>)`
|
|
44
|
-
|
|
45
|
-
Para cada JOIN, capture: `(left_table, left_col, right_table, right_col)`.
|
|
46
|
-
|
|
47
|
-
#### 2.3 — INSERT/UPDATE/DELETE com refs implícitas
|
|
48
|
-
Patterns:
|
|
49
|
-
- `insert into <table> (...)` — verifique se `<table>` existe.
|
|
50
|
-
- `update <table> set <col> = ... where <col2> = ...` — verifique `<col>` e `<col2>` existem em `<table>`.
|
|
51
|
-
- `delete from <table> where ...` — idem.
|
|
52
|
-
|
|
53
|
-
### 3. Consultar schema real (via Supabase MCP)
|
|
54
|
-
|
|
55
|
-
Para cada referência extraída no passo 2:
|
|
56
|
-
|
|
57
|
-
#### 3.1 — Existência de tabela e coluna
|
|
58
|
-
|
|
59
|
-
```sql
|
|
60
|
-
SELECT
|
|
61
|
-
EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'public' AND table_name = '{table}') AS table_exists,
|
|
62
|
-
EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = 'public' AND table_name = '{table}' AND column_name = '{col}') AS col_exists;
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Use `mcp__supabase__execute_sql` com o `project_id`.
|
|
66
|
-
|
|
67
|
-
#### 3.2 — Tipo da coluna referenciada (FK target)
|
|
68
|
-
|
|
69
|
-
```sql
|
|
70
|
-
SELECT data_type, is_nullable, column_default
|
|
71
|
-
FROM information_schema.columns
|
|
72
|
-
WHERE table_schema = 'public' AND table_name = '{target_table}' AND column_name = '{target_col}';
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
#### 3.3 — FK existente vs FK proposta
|
|
76
|
-
|
|
77
|
-
Para cada FK que a migration declara, busque se já existe uma constraint similar:
|
|
78
|
-
|
|
79
|
-
```sql
|
|
80
|
-
SELECT conname, conrelid::regclass AS local_table,
|
|
81
|
-
confrelid::regclass AS target_table,
|
|
82
|
-
a.attname AS local_col, b.attname AS target_col
|
|
83
|
-
FROM pg_constraint c
|
|
84
|
-
JOIN pg_attribute a ON a.attrelid = c.conrelid AND a.attnum = ANY(c.conkey)
|
|
85
|
-
JOIN pg_attribute b ON b.attrelid = c.confrelid AND b.attnum = ANY(c.confkey)
|
|
86
|
-
WHERE c.contype = 'f' AND c.conrelid::regclass::text = '{local_table}';
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### 4. Cruzar e diferenciar
|
|
90
|
-
|
|
91
|
-
Para cada referência da migration:
|
|
92
|
-
|
|
93
|
-
- **OK** — tabela existe, coluna existe, tipo bate, e (se FK declarada) o target da FK na migration bate com o que `pg_constraint` reporta.
|
|
94
|
-
- **MISMATCH-TARGET** — coluna existe, mas a FK aponta para `<X>.<Y>` na migration enquanto produção tem essa coluna referenciando `<W>.<Z>`. Este é o caso clássico do "comentário do dev errado".
|
|
95
|
-
- **MISSING-TABLE** — tabela citada não existe no schema.
|
|
96
|
-
- **MISSING-COLUMN** — coluna citada não existe na tabela.
|
|
97
|
-
- **TYPE-MISMATCH** — coluna existe mas tipo bate diferente do que a migration assume (ex: `uuid` vs `bigint`).
|
|
98
|
-
- **WARN-ONLY** — referência a sistema (ex: `auth.users`) onde permissions podem complicar — registre como warning sem bloquear.
|
|
99
|
-
|
|
100
|
-
### 5. Veredito
|
|
101
|
-
|
|
102
|
-
Imprima um relatório estruturado:
|
|
103
|
-
|
|
104
|
-
```
|
|
105
|
-
═══════════════════════════════════════════════════════════
|
|
106
|
-
SCHEMA-CHECK · {migration_path}
|
|
107
|
-
projeto: {project_id} · validado em {timestamp}
|
|
108
|
-
═══════════════════════════════════════════════════════════
|
|
109
|
-
|
|
110
|
-
VEREDITO: GO | NO-GO | NEEDS-REVIEW
|
|
111
|
-
|
|
112
|
-
Resumo:
|
|
113
|
-
- {N} referências analisadas
|
|
114
|
-
- {OK} ok
|
|
115
|
-
- {WARN} warnings
|
|
116
|
-
- {FAIL} falhas
|
|
117
|
-
|
|
118
|
-
═══════════════════════════════════════════════════════════
|
|
119
|
-
DETALHES POR REFERÊNCIA
|
|
120
|
-
═══════════════════════════════════════════════════════════
|
|
121
|
-
|
|
122
|
-
[1] LINHA 7 — FK declarada: contact_prefs.contact_id → conversations.id
|
|
123
|
-
STATUS: ✗ MISMATCH-TARGET
|
|
124
|
-
Em produção: contact_prefs.contact_id → contacts.id (constraint: fk_contact_prefs_contact)
|
|
125
|
-
Comentário da migration sugere conversations.id mas o schema real liga contacts.id.
|
|
126
|
-
AÇÃO: corrigir comentário OU mudar a migration se a intenção era de fato ligar a conversations.
|
|
127
|
-
|
|
128
|
-
[2] LINHA 14 — JOIN: contact_prefs.user_id = users.id
|
|
129
|
-
STATUS: ⚠ WARN-ONLY
|
|
130
|
-
users é tabela de auth — permissions podem aplicar. Verificar `current_user` ou usar `service_role`.
|
|
131
|
-
|
|
132
|
-
[3] LINHA 22 — INSERT INTO contact_prefs (channel, value)
|
|
133
|
-
STATUS: ✓ OK
|
|
134
|
-
|
|
135
|
-
═══════════════════════════════════════════════════════════
|
|
136
|
-
RECOMENDAÇÃO
|
|
137
|
-
═══════════════════════════════════════════════════════════
|
|
138
|
-
{Texto curto: aplicar agora? aplicar com mudanças? não aplicar?}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### 6. Regras de veredito
|
|
142
|
-
|
|
143
|
-
- **GO**: 0 falhas, 0 mismatches. Warnings podem existir mas com mitigação clara.
|
|
144
|
-
- **NEEDS-REVIEW**: 1+ mismatches OU 1+ warns sem mitigação clara. Devolva o relatório e DEVOLVA o controle ao caller — não bloqueie, mas peça revisão humana.
|
|
145
|
-
- **NO-GO**: 1+ MISSING-TABLE / MISSING-COLUMN / TYPE-MISMATCH. A migration vai falhar no apply de qualquer forma. Recomende corrigir antes.
|
|
146
|
-
|
|
147
|
-
### 7. Saída
|
|
148
|
-
|
|
149
|
-
Apenas o relatório. Sem preâmbulo. Sem "vou analisar agora". Sem "espero ter ajudado". Direto ao ponto — o caller precisa do veredito pra decidir.
|
|
150
|
-
|
|
151
|
-
## Quando o caller deve invocar
|
|
152
|
-
|
|
153
|
-
- Antes de chamar `mcp__supabase__apply_migration` em qualquer migration que toque dados existentes.
|
|
154
|
-
- Antes de mergear PR que contém migration que vai pra produção.
|
|
155
|
-
- Manualmente, quando o dev pediu uma sanity check ("essa migration tá OK?").
|
|
156
|
-
|
|
157
|
-
**Não invocar para:**
|
|
158
|
-
- Migrations vazias / só de schema novo (sem FK ou JOIN).
|
|
159
|
-
- DROP TABLE / TRUNCATE — nada a checar de schema.
|
|
160
|
-
- Seeds / fixtures — schema-checker valida estrutura, não dados.
|
|
1
|
+
---
|
|
2
|
+
name: schema-checker
|
|
3
|
+
tier: specialized
|
|
4
|
+
description: Valida FKs/colunas/tabelas referenciadas em migration SQL ANTES de aplicar em prod. Lê SQL, consulta schema via Supabase MCP, devolve veredito GO/NO-GO/NEEDS-REVIEW.
|
|
5
|
+
tools: Read, Bash, Grep, Glob, mcp__supabase__execute_sql, mcp__supabase__list_tables
|
|
6
|
+
color: red
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Você é um schema-checker pré-migration. O caller (orquestrador, geralmente Claude) entrega um caminho de arquivo `.sql` (ou conteúdo cru de SQL) e o `project_id` Supabase. Você responde com um veredito estruturado **antes** que a migration seja aplicada.
|
|
10
|
+
|
|
11
|
+
## Por que existe
|
|
12
|
+
|
|
13
|
+
Migrations escritas com base em comentário ou memória do dev frequentemente assumem schema que não bate com produção. Ex: comentário diz `contact_id → conversations.id`, mas a tabela real tem `contact_id → contacts.id`. Aplicar e ver falhar custa 1 retry no melhor caso, dados sujos no pior. Este agente faz a validação cruzada antes do apply.
|
|
14
|
+
|
|
15
|
+
## Inputs esperados (do caller)
|
|
16
|
+
|
|
17
|
+
- `migration_path`: caminho do arquivo SQL (ou string com a SQL inline).
|
|
18
|
+
- `project_id`: identificador do projeto Supabase (ex: `cqxmojtvfqxyvkuljkzs`).
|
|
19
|
+
- (Opcional) `expected_branch`: se a migration deve rodar em uma branch Supabase específica.
|
|
20
|
+
|
|
21
|
+
## Passos
|
|
22
|
+
|
|
23
|
+
### 1. Ler a migration
|
|
24
|
+
|
|
25
|
+
- Ler arquivo SQL via Read.
|
|
26
|
+
- Normalizar (remover comentários `--` e `/* */`, lowercase).
|
|
27
|
+
|
|
28
|
+
### 2. Extrair referências
|
|
29
|
+
|
|
30
|
+
Identifique três classes de referências que podem estar erradas:
|
|
31
|
+
|
|
32
|
+
#### 2.1 — Foreign keys declaradas
|
|
33
|
+
Patterns:
|
|
34
|
+
- `references <schema>.<table>(<col>)`
|
|
35
|
+
- `references <table>(<col>)`
|
|
36
|
+
- `foreign key (<col>) references <table>`
|
|
37
|
+
|
|
38
|
+
Para cada uma, capture: `(local_col, target_table, target_col)`.
|
|
39
|
+
|
|
40
|
+
#### 2.2 — JOINs
|
|
41
|
+
Patterns:
|
|
42
|
+
- `join <table> on <alias>.<col> = <other_alias>.<col>`
|
|
43
|
+
- `join <table> using (<col>)`
|
|
44
|
+
|
|
45
|
+
Para cada JOIN, capture: `(left_table, left_col, right_table, right_col)`.
|
|
46
|
+
|
|
47
|
+
#### 2.3 — INSERT/UPDATE/DELETE com refs implícitas
|
|
48
|
+
Patterns:
|
|
49
|
+
- `insert into <table> (...)` — verifique se `<table>` existe.
|
|
50
|
+
- `update <table> set <col> = ... where <col2> = ...` — verifique `<col>` e `<col2>` existem em `<table>`.
|
|
51
|
+
- `delete from <table> where ...` — idem.
|
|
52
|
+
|
|
53
|
+
### 3. Consultar schema real (via Supabase MCP)
|
|
54
|
+
|
|
55
|
+
Para cada referência extraída no passo 2:
|
|
56
|
+
|
|
57
|
+
#### 3.1 — Existência de tabela e coluna
|
|
58
|
+
|
|
59
|
+
```sql
|
|
60
|
+
SELECT
|
|
61
|
+
EXISTS (SELECT 1 FROM information_schema.tables WHERE table_schema = 'public' AND table_name = '{table}') AS table_exists,
|
|
62
|
+
EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = 'public' AND table_name = '{table}' AND column_name = '{col}') AS col_exists;
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Use `mcp__supabase__execute_sql` com o `project_id`.
|
|
66
|
+
|
|
67
|
+
#### 3.2 — Tipo da coluna referenciada (FK target)
|
|
68
|
+
|
|
69
|
+
```sql
|
|
70
|
+
SELECT data_type, is_nullable, column_default
|
|
71
|
+
FROM information_schema.columns
|
|
72
|
+
WHERE table_schema = 'public' AND table_name = '{target_table}' AND column_name = '{target_col}';
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
#### 3.3 — FK existente vs FK proposta
|
|
76
|
+
|
|
77
|
+
Para cada FK que a migration declara, busque se já existe uma constraint similar:
|
|
78
|
+
|
|
79
|
+
```sql
|
|
80
|
+
SELECT conname, conrelid::regclass AS local_table,
|
|
81
|
+
confrelid::regclass AS target_table,
|
|
82
|
+
a.attname AS local_col, b.attname AS target_col
|
|
83
|
+
FROM pg_constraint c
|
|
84
|
+
JOIN pg_attribute a ON a.attrelid = c.conrelid AND a.attnum = ANY(c.conkey)
|
|
85
|
+
JOIN pg_attribute b ON b.attrelid = c.confrelid AND b.attnum = ANY(c.confkey)
|
|
86
|
+
WHERE c.contype = 'f' AND c.conrelid::regclass::text = '{local_table}';
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 4. Cruzar e diferenciar
|
|
90
|
+
|
|
91
|
+
Para cada referência da migration:
|
|
92
|
+
|
|
93
|
+
- **OK** — tabela existe, coluna existe, tipo bate, e (se FK declarada) o target da FK na migration bate com o que `pg_constraint` reporta.
|
|
94
|
+
- **MISMATCH-TARGET** — coluna existe, mas a FK aponta para `<X>.<Y>` na migration enquanto produção tem essa coluna referenciando `<W>.<Z>`. Este é o caso clássico do "comentário do dev errado".
|
|
95
|
+
- **MISSING-TABLE** — tabela citada não existe no schema.
|
|
96
|
+
- **MISSING-COLUMN** — coluna citada não existe na tabela.
|
|
97
|
+
- **TYPE-MISMATCH** — coluna existe mas tipo bate diferente do que a migration assume (ex: `uuid` vs `bigint`).
|
|
98
|
+
- **WARN-ONLY** — referência a sistema (ex: `auth.users`) onde permissions podem complicar — registre como warning sem bloquear.
|
|
99
|
+
|
|
100
|
+
### 5. Veredito
|
|
101
|
+
|
|
102
|
+
Imprima um relatório estruturado:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
═══════════════════════════════════════════════════════════
|
|
106
|
+
SCHEMA-CHECK · {migration_path}
|
|
107
|
+
projeto: {project_id} · validado em {timestamp}
|
|
108
|
+
═══════════════════════════════════════════════════════════
|
|
109
|
+
|
|
110
|
+
VEREDITO: GO | NO-GO | NEEDS-REVIEW
|
|
111
|
+
|
|
112
|
+
Resumo:
|
|
113
|
+
- {N} referências analisadas
|
|
114
|
+
- {OK} ok
|
|
115
|
+
- {WARN} warnings
|
|
116
|
+
- {FAIL} falhas
|
|
117
|
+
|
|
118
|
+
═══════════════════════════════════════════════════════════
|
|
119
|
+
DETALHES POR REFERÊNCIA
|
|
120
|
+
═══════════════════════════════════════════════════════════
|
|
121
|
+
|
|
122
|
+
[1] LINHA 7 — FK declarada: contact_prefs.contact_id → conversations.id
|
|
123
|
+
STATUS: ✗ MISMATCH-TARGET
|
|
124
|
+
Em produção: contact_prefs.contact_id → contacts.id (constraint: fk_contact_prefs_contact)
|
|
125
|
+
Comentário da migration sugere conversations.id mas o schema real liga contacts.id.
|
|
126
|
+
AÇÃO: corrigir comentário OU mudar a migration se a intenção era de fato ligar a conversations.
|
|
127
|
+
|
|
128
|
+
[2] LINHA 14 — JOIN: contact_prefs.user_id = users.id
|
|
129
|
+
STATUS: ⚠ WARN-ONLY
|
|
130
|
+
users é tabela de auth — permissions podem aplicar. Verificar `current_user` ou usar `service_role`.
|
|
131
|
+
|
|
132
|
+
[3] LINHA 22 — INSERT INTO contact_prefs (channel, value)
|
|
133
|
+
STATUS: ✓ OK
|
|
134
|
+
|
|
135
|
+
═══════════════════════════════════════════════════════════
|
|
136
|
+
RECOMENDAÇÃO
|
|
137
|
+
═══════════════════════════════════════════════════════════
|
|
138
|
+
{Texto curto: aplicar agora? aplicar com mudanças? não aplicar?}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 6. Regras de veredito
|
|
142
|
+
|
|
143
|
+
- **GO**: 0 falhas, 0 mismatches. Warnings podem existir mas com mitigação clara.
|
|
144
|
+
- **NEEDS-REVIEW**: 1+ mismatches OU 1+ warns sem mitigação clara. Devolva o relatório e DEVOLVA o controle ao caller — não bloqueie, mas peça revisão humana.
|
|
145
|
+
- **NO-GO**: 1+ MISSING-TABLE / MISSING-COLUMN / TYPE-MISMATCH. A migration vai falhar no apply de qualquer forma. Recomende corrigir antes.
|
|
146
|
+
|
|
147
|
+
### 7. Saída
|
|
148
|
+
|
|
149
|
+
Apenas o relatório. Sem preâmbulo. Sem "vou analisar agora". Sem "espero ter ajudado". Direto ao ponto — o caller precisa do veredito pra decidir.
|
|
150
|
+
|
|
151
|
+
## Quando o caller deve invocar
|
|
152
|
+
|
|
153
|
+
- Antes de chamar `mcp__supabase__apply_migration` em qualquer migration que toque dados existentes.
|
|
154
|
+
- Antes de mergear PR que contém migration que vai pra produção.
|
|
155
|
+
- Manualmente, quando o dev pediu uma sanity check ("essa migration tá OK?").
|
|
156
|
+
|
|
157
|
+
**Não invocar para:**
|
|
158
|
+
- Migrations vazias / só de schema novo (sem FK ou JOIN).
|
|
159
|
+
- DROP TABLE / TRUNCATE — nada a checar de schema.
|
|
160
|
+
- Seeds / fixtures — schema-checker valida estrutura, não dados.
|