@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
package/kit/commands/supabase.md
CHANGED
|
@@ -1,238 +1,238 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: supabase
|
|
3
|
-
description: Orquestrador da Suíte Supabase — serviço de materialização (v1.23) que recebe planejamento/draft SQL de qualquer agent ou user e devolve código hardenado pronto. NUNCA bloqueia upstream…
|
|
4
|
-
argument-hint: "<subcomando> [args...]"
|
|
5
|
-
allowed-tools:
|
|
6
|
-
- Read
|
|
7
|
-
- Write
|
|
8
|
-
- Bash
|
|
9
|
-
- Grep
|
|
10
|
-
- Glob
|
|
11
|
-
- Task
|
|
12
|
-
- AskUserQuestion
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
<objective>
|
|
16
|
-
Orquestrador único da Suíte Supabase. **Serviço de materialização (v1.23):** recebe planejamento de qualquer agent ou input do user e devolve código hardenado pronto. **NUNCA bloqueia upstream** — agents externos passam draft via `Task()` para receber SQL final hardenado preservando intent.
|
|
17
|
-
|
|
18
|
-
Faz dispatch via `Task(subagent_type=supabase-...)` para o agent especializado correto. É o **único ponto de chain de agents Supabase** — agents permanecem função pura (anti-pitfall A10 de v1.8).
|
|
19
|
-
|
|
20
|
-
**Princípio canônico v1.23:** Agents não-Supabase pensam/planejam; agents Supabase materializam/hardenam; ninguém descarta upstream.
|
|
21
|
-
|
|
22
|
-
**Cria/Atualiza:** o que cada agent invocado cria/atualiza (migrations, schemas, functions, etc.) — com RLS auto-injetada no output via handoff cooperativo com `supabase-rls-hardener` em CREATE TABLE.
|
|
23
|
-
|
|
24
|
-
**Após:** o usuário tem o output do agent (plano, código, SQL hardenado, ou veredito GO/STRENGTHEN/REWRITE).
|
|
25
|
-
</objective>
|
|
26
|
-
|
|
27
|
-
<execution_context>
|
|
28
|
-
Skills consultadas pelos agents: `kit/skills/supabase-*/SKILL.md` + `kit/skills/_shared-supabase/glossary.md` (Phase 25).
|
|
29
|
-
Agents disponíveis: `kit/agents/supabase-*.md` (Phase 26) + `kit/agents/schema-checker.md` (existente).
|
|
30
|
-
</execution_context>
|
|
31
|
-
|
|
32
|
-
<context>
|
|
33
|
-
**Argumentos:** `$ARGUMENTS` — primeiro token é o subcomando; restante é passado para o agent como prompt.
|
|
34
|
-
|
|
35
|
-
**Subcomandos suportados (sinônimos PT-BR/EN):**
|
|
36
|
-
|
|
37
|
-
| Subcomando | Sinônimos | Agent dispatched |
|
|
38
|
-
|---|---|---|
|
|
39
|
-
| `arquiteto` | `architect`, `arch` | `supabase-architect` |
|
|
40
|
-
| `migration` | `migrar`, `migrate` | `supabase-migration-writer` (v1.23: auto-chain cooperativo com hardener em CREATE TABLE) |
|
|
41
|
-
| `rls` | — | `supabase-rls-writer` (v1.23: GRANTs + IS NOT NULL + views security_invoker) |
|
|
42
|
-
| `hardener` | `harden`, `endurecer` | `supabase-rls-hardener` (v1.23 canonical materializer — recebe draft via Task) |
|
|
43
|
-
| `column` | `coluna`, `col-priv` | `supabase-column-privileges-writer` (v1.24 canonical materializer column-level — recebe spec via Task) |
|
|
44
|
-
| `rbac` | `roles`, `permissions`, `claims` | `supabase-rbac-implementer` (v1.25 canonical materializer Custom Claims & RBAC via Auth Hook — recebe spec via Task) |
|
|
45
|
-
| `role` | `papel`, `roles-pg` | `supabase-roles-implementer` (v1.26 canonical materializer Postgres Roles — recebe spec via Task; system access) |
|
|
46
|
-
| `edge` | `edge-function`, `function`, `funcao` | `supabase-edge-fn-writer` (v1.30: 2026 patterns — withSupabase, deno.json, config.toml) |
|
|
47
|
-
| `test` | `testar`, `tests`, `deno-test` | `supabase-edge-fn-tester` (v1.30 — gera Deno tests para função existente) |
|
|
48
|
-
| `mcp` | `mcp-server`, `mcp-lite` | `supabase-edge-fn-writer` com `pattern=mcp-server` |
|
|
49
|
-
| `ai` | `ai-session`, `embeddings-builtin`, `gte-small`, `ollama` | `supabase-edge-fn-writer` com `pattern=rag-embeddings` (Supabase.ai.Session) |
|
|
50
|
-
| `wasm` | `wasm-module` | `supabase-edge-fn-writer` com `pattern=wasm` + static_files config.toml |
|
|
51
|
-
| `websocket` | `ws`, `realtime-ws` | `supabase-edge-fn-writer` com `pattern=websocket` + `per_worker` |
|
|
52
|
-
| `realtime` | `tempo-real` | `supabase-realtime-implementer` |
|
|
53
|
-
| `auth` | `autenticacao`, `auth-ssr` | `supabase-auth-bootstrapper` |
|
|
54
|
-
| `social` | `oauth`, `login-social` | `supabase-social-auth-implementer` (v1.32 — social login Google/GitHub/Apple/Facebook/LinkedIn + custom OAuth/OIDC) |
|
|
55
|
-
| `mfa` | `2fa`, `totp` | `supabase-mfa-implementer` (v1.32 — MFA TOTP/Phone + enforcement RLS por AAL) |
|
|
56
|
-
| `hooks` | `auth-hook`, `hook` | `supabase-auth-hook-writer` (v1.32 — materializa os 6 Auth Hooks Postgres/HTTP) |
|
|
57
|
-
| `oauth-server` | `mcp-auth`, `idp` | `supabase-oauth-server-implementer` (v1.32 — Supabase como OAuth 2.1/OIDC identity provider + MCP authentication) |
|
|
58
|
-
| `sso` | `saml`, `enterprise-sso` | `supabase-sso-saml-architect` (v1.32 — Enterprise SSO SAML 2.0 + multi-tenant) |
|
|
59
|
-
| `storage` | `armazenamento` | `supabase-storage-implementer` |
|
|
60
|
-
| `rag` | `pgvector`, `embeddings` | `supabase-edge-fn-writer` com `pattern=rag-embeddings` |
|
|
61
|
-
| `cron` | `queues`, `pgmq`, `background` | `supabase-edge-fn-writer` com `pattern=cron-pgmq` |
|
|
62
|
-
| `check` | `validar`, `validate` | `schema-checker` (validação pré-migration) |
|
|
63
|
-
| `help` | `ajuda`, `?` | exibe esta tabela inline |
|
|
64
|
-
|
|
65
|
-
**Detect `supabase/config.toml`:** se presente, extrai `project_id` (linha `project_id = "<ref>"`) e passa como contexto para o agent.
|
|
66
|
-
</context>
|
|
67
|
-
|
|
68
|
-
<process>
|
|
69
|
-
|
|
70
|
-
## 1. Parsear Subcomando
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# PT-BR: extrair primeiro token de $ARGUMENTS como subcomando
|
|
74
|
-
SUBCMD=$(echo "$ARGUMENTS" | awk '{print $1}')
|
|
75
|
-
ARGS=$(echo "$ARGUMENTS" | cut -d' ' -f2-)
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Se `$ARGUMENTS` for vazio ou `SUBCMD` for `help`/`ajuda`/`?`:** exibir tabela de subcomandos inline + exemplo de uso. Sair.
|
|
79
|
-
|
|
80
|
-
## 2. Resolver Sinônimos
|
|
81
|
-
|
|
82
|
-
Mapear `SUBCMD` para agent name canônico:
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
arquiteto, architect, arch → supabase-architect
|
|
86
|
-
migration, migrar, migrate → supabase-migration-writer (v1.23: auto-chain hardener em CREATE TABLE)
|
|
87
|
-
rls → supabase-rls-writer (v1.23: GRANTs + IS NOT NULL + views security_invoker)
|
|
88
|
-
hardener, harden, endurecer → supabase-rls-hardener (v1.23 canonical materializer)
|
|
89
|
-
column, coluna, col-priv → supabase-column-privileges-writer (v1.24 canonical materializer column-level — feature AVANÇADA)
|
|
90
|
-
rbac, roles, permissions, claims → supabase-rbac-implementer (v1.25 canonical materializer Custom Claims & RBAC via Auth Hook)
|
|
91
|
-
role, papel, roles-pg → supabase-roles-implementer (v1.26 canonical materializer Postgres Roles — system access only)
|
|
92
|
-
edge, edge-function, function, funcao → supabase-edge-fn-writer (v1.30: 2026 patterns)
|
|
93
|
-
test, testar, tests, deno-test → supabase-edge-fn-tester (v1.30)
|
|
94
|
-
mcp, mcp-server, mcp-lite → supabase-edge-fn-writer (com flag pattern=mcp-server) (v1.30)
|
|
95
|
-
ai, ai-session, gte-small, ollama → supabase-edge-fn-writer (com flag pattern=rag-embeddings) (v1.30)
|
|
96
|
-
wasm, wasm-module → supabase-edge-fn-writer (com flag pattern=wasm) (v1.30)
|
|
97
|
-
websocket, ws, realtime-ws → supabase-edge-fn-writer (com flag pattern=websocket) (v1.30)
|
|
98
|
-
realtime, tempo-real → supabase-realtime-implementer
|
|
99
|
-
auth, autenticacao, auth-ssr → supabase-auth-bootstrapper
|
|
100
|
-
social, oauth, login-social → supabase-social-auth-implementer (v1.32 social login + custom OAuth/OIDC)
|
|
101
|
-
mfa, 2fa, totp → supabase-mfa-implementer (v1.32 MFA TOTP/Phone + enforcement RLS)
|
|
102
|
-
hooks, auth-hook, hook → supabase-auth-hook-writer (v1.32 materializa Auth Hooks Postgres/HTTP)
|
|
103
|
-
oauth-server, mcp-auth, idp → supabase-oauth-server-implementer (v1.32 OAuth 2.1/OIDC identity provider + MCP auth)
|
|
104
|
-
sso, saml, enterprise-sso → supabase-sso-saml-architect (v1.32 Enterprise SSO SAML 2.0)
|
|
105
|
-
storage, armazenamento → supabase-storage-implementer
|
|
106
|
-
rag, pgvector, embeddings → supabase-edge-fn-writer (com flag pattern=rag-embeddings)
|
|
107
|
-
cron, queues, pgmq, background → supabase-edge-fn-writer (com flag pattern=cron-pgmq)
|
|
108
|
-
check, validar, validate → schema-checker
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Serviço de materialização (v1.23 — handoff cooperativo)
|
|
112
|
-
|
|
113
|
-
Quando agents externos (multi-tenant, debugger, planner, executor, audit-log, CRM, etc.) precisam produzir SQL/DDL, devem invocar `/supabase migration "<plano>"` ou `Task(subagent_type=supabase-rls-hardener, prompt=<draft+intent>)` ao invés de gerar SQL próprio. O command NÃO bloqueia — recebe planejamento, devolve código hardenado.
|
|
114
|
-
|
|
115
|
-
**Pattern de invocação:**
|
|
116
|
-
|
|
117
|
-
```python
|
|
118
|
-
# de outro agent (ex: multi-tenant-rls-writer)
|
|
119
|
-
result = Task(subagent_type="supabase-rls-hardener", prompt=f"""
|
|
120
|
-
<upstream_intent>
|
|
121
|
-
Source agent: multi-tenant-rls-writer
|
|
122
|
-
Original goal: criar policies hierárquicas org→dept→role para {table_name}
|
|
123
|
-
Constraints: helper functions já existem em schema private
|
|
124
|
-
</upstream_intent>
|
|
125
|
-
|
|
126
|
-
<draft_sql>
|
|
127
|
-
{draft_policies_sql}
|
|
128
|
-
</draft_sql>
|
|
129
|
-
|
|
130
|
-
<user_facing_caller>true</user_facing_caller>
|
|
131
|
-
""")
|
|
132
|
-
# result.verdict: GO | STRENGTHEN | REWRITE
|
|
133
|
-
# result.final_sql: SQL hardenado preservando intent
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
**Se subcomando não resolve:** exibir erro inline com lista de subcomandos válidos. Sair.
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
✗ Subcomando desconhecido: '<SUBCMD>'
|
|
140
|
-
|
|
141
|
-
Subcomandos válidos:
|
|
142
|
-
arquiteto / architect → projetar schema + RLS + topology antes de implementar
|
|
143
|
-
migration / migrar → escrever migration SQL
|
|
144
|
-
rls → gerar policies RLS para tabela
|
|
145
|
-
edge → escrever Edge Function Deno
|
|
146
|
-
realtime → configurar canais Realtime (RLS + trigger + client)
|
|
147
|
-
auth → bootstrap Next.js v16 + Supabase Auth (SSR)
|
|
148
|
-
storage → configurar Storage (bucket + RLS + client)
|
|
149
|
-
rag → Edge Function com embeddings + pgvector
|
|
150
|
-
cron → pattern cron → pgmq → Edge Function
|
|
151
|
-
check → validar SQL antes de apply (schema-checker)
|
|
152
|
-
|
|
153
|
-
Uso: /supabase <subcomando> <args...>
|
|
154
|
-
Exemplo: /supabase arquiteto "app de chat com presence multi-room"
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## 3. Detectar `supabase/config.toml`
|
|
158
|
-
|
|
159
|
-
```bash
|
|
160
|
-
if [ -f supabase/config.toml ]; then
|
|
161
|
-
PROJECT_ID=$(grep -E '^project_id\s*=' supabase/config.toml | sed 's/.*= *"\(.*\)".*/\1/' | head -1)
|
|
162
|
-
fi
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
Se presente, anexar `project_id=<value>` ao prompt do agent. Se ausente, agent funciona sem (offline ou pergunta ao user).
|
|
166
|
-
|
|
167
|
-
## 4. Dispatch
|
|
168
|
-
|
|
169
|
-
Invocar `Task(subagent_type=<agent_name>, prompt=<built_prompt>)`.
|
|
170
|
-
|
|
171
|
-
**Prompt construído:**
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
{ARGS}
|
|
175
|
-
|
|
176
|
-
{Se project_id detectado:}
|
|
177
|
-
project_id: {PROJECT_ID}
|
|
178
|
-
|
|
179
|
-
{Se subcomando rag/cron — flag de modo:}
|
|
180
|
-
mode: rag-embeddings (ou cron-pgmq-edge)
|
|
181
|
-
|
|
182
|
-
{Para architect: tier upfront via AskUserQuestion}
|
|
183
|
-
{caller: pergunte ao user via AskUserQuestion sobre tier (Free/Pro/Team) e branches antes de produzir o plano — ver supabase-architect Step 1}
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
**Subcomando `arquiteto`:** antes de dispatch, faça `AskUserQuestion` perguntando tier (Free/Pro/Team/Enterprise) e se vai usar branches. Inclua resposta no prompt.
|
|
187
|
-
|
|
188
|
-
**Subcomando `check`:** dispatch para `schema-checker` (existente). O caller deve passar `migration_path` e `project_id` no `$ARGUMENTS` — exemplo: `/supabase check supabase/migrations/20260506_x.sql`.
|
|
189
|
-
|
|
190
|
-
**Subcomando `migration` (v1.23 — CMD-02):** após `supabase-migration-writer` produzir SQL inicial, o agent **AUTOMATICAMENTE** invoca `supabase-rls-hardener` via `Task()` para validar defense-in-depth em CREATE TABLE. Output final inclui verdict + RLS auto-injetada. Caller NÃO precisa invocar hardener separadamente — é parte do contrato do subcomando.
|
|
191
|
-
|
|
192
|
-
**Subcomando `hardener` (v1.23 novo):** dispatch direto para `supabase-rls-hardener`. Útil quando caller tem draft SQL pronto e quer apenas validação/hardening sem gerar SQL novo. Aceita input com bloco `<draft_sql>` no `$ARGUMENTS` ou via stdin.
|
|
193
|
-
|
|
194
|
-
**Subcomando `column` (v1.24 novo):** dispatch direto para `supabase-column-privileges-writer`. Recebe spec de table + colunas sensíveis + roles permitidos e produz REVOKE table-level + GRANT column-level. **Feature AVANÇADA** — apenas para casos com PII compliance (LGPD/GDPR), audit log payload, billing data, tokens raw. Para casos comuns (admin/user roles), prefira dedicated role table pattern (documentado em [`supabase-column-level-security`](../skills/supabase-column-level-security/SKILL.md)). Aceita input com bloco `<sensitive_columns>` e `<allowed_roles>` no `$ARGUMENTS`.
|
|
195
|
-
|
|
196
|
-
**Subcomando `rbac` (v1.25 novo):** dispatch direto para `supabase-rbac-implementer`. Recebe spec de roles + permissions matrix + multi_tenant flag e materializa setup completo (7 passos canônicos: enum types + user_roles + role_permissions + Custom Access Token Auth Hook + supabase_auth_admin GRANTs + authorize() function + RLS policies template + client jwt-decode snippet). Pattern recomendado v1.25 para RBAC — zero-JOIN em policies via claim no JWT. Caveat JWT freshness (mudanças refletem após token refresh). Aceita input com bloco `<roles>` + `<permissions_matrix>` + `<multi_tenant>` no `$ARGUMENTS`. Cross-ref skill [`supabase-custom-claims-rbac`](../skills/supabase-custom-claims-rbac/SKILL.md).
|
|
197
|
-
|
|
198
|
-
**Subcomando `role` (v1.26 novo):** dispatch direto para `supabase-roles-implementer`. Recebe spec de custom Postgres roles + hierarchy + GRANT matrix e materializa setup completo (CREATE ROLE com LOGIN PASSWORD opcional + role hierarchy INHERIT/NOINHERIT + GRANT/REVOKE per schema/table/function + password security check). **System access apenas** — para application access (end-users), use `/supabase rbac` (v1.25). Aceita input com bloco `<roles_to_create>` + `<grants>` + `<use_case>` no `$ARGUMENTS`. Cross-ref skill [`supabase-postgres-roles`](../skills/supabase-postgres-roles/SKILL.md).
|
|
199
|
-
|
|
200
|
-
**Subcomando `edge` (v1.30 modernizado):** dispatch para `supabase-edge-fn-writer` que agora aplica 6 skills 2026 — env vars JSON dict (`JSON.parse(SUPABASE_PUBLISHABLE_KEYS)['default']`), `withSupabase` para auth (4 modes: `'user' | 'secret:<name>' | 'publishable:<name>' | 'none'`), per-function `deno.json` (substitui import_map global legacy), per-function `config.toml` entry (`verify_jwt`, `entrypoint`, `static_files`), CORS via `npm:@supabase/supabase-js@2.95.0/cors`, instrumentação OTel + 4 golden signals + SRE defenses (timeout/jitter/RateLimitError handling). Aceita flag `pattern=basic|rag-embeddings|cron-pgmq|mcp-server|websocket|wasm|background-task` no `$ARGUMENTS`. Auto-handoff sugerido para `/supabase test <fn>` ao final.
|
|
201
|
-
|
|
202
|
-
**Subcomando `test` (v1.30 novo):** dispatch direto para `supabase-edge-fn-tester`. Gera `supabase/functions/tests/<fn>-test.ts` com cobertura canônica de 5 equivalence classes (happy/validation/auth/rate-limit/timeout) usando Deno test runner + `assertSnapshot` + `FunctionsHttpError`/`FunctionsRelayError`/`FunctionsFetchError`. Pattern-specific: `characterization` (legacy via fixtures capturados), `webhook` (signature HMAC fixture), `rag` (determinismo via temperature=0), `mcp` (delega para MCP Inspector). Handoff cooperativo upstream: `supabase-edge-fn-writer` recomenda esse subcomando automaticamente ao criar função nova. Cross-ref skill [`supabase-edge-functions-testing`](../skills/supabase-edge-functions-testing/SKILL.md).
|
|
203
|
-
|
|
204
|
-
**Subcomandos `mcp` / `ai` / `wasm` / `websocket` (v1.30 novos):** atalhos para `supabase-edge-fn-writer` com pattern específico — economizam o caller de especificar manualmente. Cada um carrega skill especializada:
|
|
205
|
-
- `mcp` → [`supabase-edge-functions-mcp-server`](../skills/supabase-edge-functions-mcp-server/SKILL.md) (mcp-lite, dois Hono apps)
|
|
206
|
-
- `ai` → [`supabase-edge-runtime-builtins`](../skills/supabase-edge-runtime-builtins/SKILL.md) (Supabase.ai.Session, gte-small, Ollama)
|
|
207
|
-
- `wasm` → [`supabase-edge-runtime-builtins`](../skills/supabase-edge-runtime-builtins/SKILL.md) + auto-adiciona `static_files` em config.toml (CLI 2.7.0+, requer Docker no deploy)
|
|
208
|
-
- `websocket` → [`supabase-edge-runtime-builtins`](../skills/supabase-edge-runtime-builtins/SKILL.md) + auto-adiciona `policy = "per_worker"` em config.toml
|
|
209
|
-
|
|
210
|
-
**Subcomandos de autenticação (v1.32 novos):** materializam a suíte de auth. Cada um faz dispatch direto para o agent canônico e carrega a skill especializada:
|
|
211
|
-
- `social` → `supabase-social-auth-implementer` + skill [`supabase-social-oauth`](../skills/supabase-social-oauth/SKILL.md) — social login (Google/GitHub/Apple/Facebook/LinkedIn) + custom OAuth/OIDC, rota callback PKCE.
|
|
212
|
-
- `mfa` → `supabase-mfa-implementer` + skill [`supabase-mfa`](../skills/supabase-mfa/SKILL.md) — enrollment TOTP/Phone + enforcement RLS RESTRICTIVE por AAL.
|
|
213
|
-
- `hooks` → `supabase-auth-hook-writer` + skill [`supabase-auth-hooks`](../skills/supabase-auth-hooks/SKILL.md) — materializa os 6 Auth Hooks (Postgres function ou Edge Function com Standard Webhooks).
|
|
214
|
-
- `oauth-server` → `supabase-oauth-server-implementer` + skill [`supabase-oauth-server`](../skills/supabase-oauth-server/SKILL.md) — Supabase como OAuth 2.1/OIDC identity provider, **MCP authentication**, RLS por `client_id`.
|
|
215
|
-
- `sso` → `supabase-sso-saml-architect` + skill [`supabase-enterprise-sso-saml`](../skills/supabase-enterprise-sso-saml/SKILL.md) — Enterprise SSO SAML 2.0, attribute mappings, multi-tenant.
|
|
216
|
-
|
|
217
|
-
O subcomando `auth` (existente) continua para bootstrap SSR Next.js v16 via `supabase-auth-bootstrapper`. Skills de conhecimento complementares (sem agent dedicado): [`supabase-auth-methods`](../skills/supabase-auth-methods/SKILL.md), [`supabase-auth-sessions`](../skills/supabase-auth-sessions/SKILL.md), [`supabase-jwt-signing-keys`](../skills/supabase-jwt-signing-keys/SKILL.md), [`supabase-third-party-auth`](../skills/supabase-third-party-auth/SKILL.md), [`supabase-auth-hardening`](../skills/supabase-auth-hardening/SKILL.md) — a LLM as carrega automaticamente pelos trigger phrases.
|
|
218
|
-
|
|
219
|
-
## 5. Output
|
|
220
|
-
|
|
221
|
-
Output do agent é o output do command. Sem post-processing — agent já formata estruturado.
|
|
222
|
-
|
|
223
|
-
</process>
|
|
224
|
-
|
|
225
|
-
<success_criteria>
|
|
226
|
-
- [ ] Subcomando resolvido para agent canônico (21 subcomandos × seus sinônimos — v1.32)
|
|
227
|
-
- [ ] `project_id` extraído de `supabase/config.toml` se presente
|
|
228
|
-
- [ ] Subcomando `arquiteto` faz `AskUserQuestion` upfront sobre tier + branches
|
|
229
|
-
- [ ] Dispatch via `Task(subagent_type=...)` — único ponto de chain de agents Supabase
|
|
230
|
-
- [ ] Subcomando inválido → mensagem clara com lista
|
|
231
|
-
- [ ] Subcomando `help`/`ajuda`/`?` → exibe tabela inline
|
|
232
|
-
- [ ] Subcomando `check` → invoca `schema-checker` (existente)
|
|
233
|
-
- [ ] Subcomando `edge` (v1.30) → invoca `supabase-edge-fn-writer` com 2026 patterns + auto-recomenda `/supabase test` ao final
|
|
234
|
-
- [ ] Subcomando `test` (v1.30) → invoca `supabase-edge-fn-tester` que lê config.toml + index.ts para detectar auth mode
|
|
235
|
-
- [ ] Subcomandos `mcp` / `ai` / `wasm` / `websocket` (v1.30) → passam `pattern=<canônico>` para writer
|
|
236
|
-
- [ ] Subcomandos `social` / `mfa` / `hooks` / `oauth-server` / `sso` (v1.32) → dispatch para o agent de auth canônico
|
|
237
|
-
- [ ] Args após subcomando passam transparentemente para o agent
|
|
238
|
-
</success_criteria>
|
|
1
|
+
---
|
|
2
|
+
name: supabase
|
|
3
|
+
description: Orquestrador da Suíte Supabase — serviço de materialização (v1.23) que recebe planejamento/draft SQL de qualquer agent ou user e devolve código hardenado pronto. NUNCA bloqueia upstream…
|
|
4
|
+
argument-hint: "<subcomando> [args...]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
9
|
+
- Grep
|
|
10
|
+
- Glob
|
|
11
|
+
- Task
|
|
12
|
+
- AskUserQuestion
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
<objective>
|
|
16
|
+
Orquestrador único da Suíte Supabase. **Serviço de materialização (v1.23):** recebe planejamento de qualquer agent ou input do user e devolve código hardenado pronto. **NUNCA bloqueia upstream** — agents externos passam draft via `Task()` para receber SQL final hardenado preservando intent.
|
|
17
|
+
|
|
18
|
+
Faz dispatch via `Task(subagent_type=supabase-...)` para o agent especializado correto. É o **único ponto de chain de agents Supabase** — agents permanecem função pura (anti-pitfall A10 de v1.8).
|
|
19
|
+
|
|
20
|
+
**Princípio canônico v1.23:** Agents não-Supabase pensam/planejam; agents Supabase materializam/hardenam; ninguém descarta upstream.
|
|
21
|
+
|
|
22
|
+
**Cria/Atualiza:** o que cada agent invocado cria/atualiza (migrations, schemas, functions, etc.) — com RLS auto-injetada no output via handoff cooperativo com `supabase-rls-hardener` em CREATE TABLE.
|
|
23
|
+
|
|
24
|
+
**Após:** o usuário tem o output do agent (plano, código, SQL hardenado, ou veredito GO/STRENGTHEN/REWRITE).
|
|
25
|
+
</objective>
|
|
26
|
+
|
|
27
|
+
<execution_context>
|
|
28
|
+
Skills consultadas pelos agents: `kit/skills/supabase-*/SKILL.md` + `kit/skills/_shared-supabase/glossary.md` (Phase 25).
|
|
29
|
+
Agents disponíveis: `kit/agents/supabase-*.md` (Phase 26) + `kit/agents/schema-checker.md` (existente).
|
|
30
|
+
</execution_context>
|
|
31
|
+
|
|
32
|
+
<context>
|
|
33
|
+
**Argumentos:** `$ARGUMENTS` — primeiro token é o subcomando; restante é passado para o agent como prompt.
|
|
34
|
+
|
|
35
|
+
**Subcomandos suportados (sinônimos PT-BR/EN):**
|
|
36
|
+
|
|
37
|
+
| Subcomando | Sinônimos | Agent dispatched |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| `arquiteto` | `architect`, `arch` | `supabase-architect` |
|
|
40
|
+
| `migration` | `migrar`, `migrate` | `supabase-migration-writer` (v1.23: auto-chain cooperativo com hardener em CREATE TABLE) |
|
|
41
|
+
| `rls` | — | `supabase-rls-writer` (v1.23: GRANTs + IS NOT NULL + views security_invoker) |
|
|
42
|
+
| `hardener` | `harden`, `endurecer` | `supabase-rls-hardener` (v1.23 canonical materializer — recebe draft via Task) |
|
|
43
|
+
| `column` | `coluna`, `col-priv` | `supabase-column-privileges-writer` (v1.24 canonical materializer column-level — recebe spec via Task) |
|
|
44
|
+
| `rbac` | `roles`, `permissions`, `claims` | `supabase-rbac-implementer` (v1.25 canonical materializer Custom Claims & RBAC via Auth Hook — recebe spec via Task) |
|
|
45
|
+
| `role` | `papel`, `roles-pg` | `supabase-roles-implementer` (v1.26 canonical materializer Postgres Roles — recebe spec via Task; system access) |
|
|
46
|
+
| `edge` | `edge-function`, `function`, `funcao` | `supabase-edge-fn-writer` (v1.30: 2026 patterns — withSupabase, deno.json, config.toml) |
|
|
47
|
+
| `test` | `testar`, `tests`, `deno-test` | `supabase-edge-fn-tester` (v1.30 — gera Deno tests para função existente) |
|
|
48
|
+
| `mcp` | `mcp-server`, `mcp-lite` | `supabase-edge-fn-writer` com `pattern=mcp-server` |
|
|
49
|
+
| `ai` | `ai-session`, `embeddings-builtin`, `gte-small`, `ollama` | `supabase-edge-fn-writer` com `pattern=rag-embeddings` (Supabase.ai.Session) |
|
|
50
|
+
| `wasm` | `wasm-module` | `supabase-edge-fn-writer` com `pattern=wasm` + static_files config.toml |
|
|
51
|
+
| `websocket` | `ws`, `realtime-ws` | `supabase-edge-fn-writer` com `pattern=websocket` + `per_worker` |
|
|
52
|
+
| `realtime` | `tempo-real` | `supabase-realtime-implementer` |
|
|
53
|
+
| `auth` | `autenticacao`, `auth-ssr` | `supabase-auth-bootstrapper` |
|
|
54
|
+
| `social` | `oauth`, `login-social` | `supabase-social-auth-implementer` (v1.32 — social login Google/GitHub/Apple/Facebook/LinkedIn + custom OAuth/OIDC) |
|
|
55
|
+
| `mfa` | `2fa`, `totp` | `supabase-mfa-implementer` (v1.32 — MFA TOTP/Phone + enforcement RLS por AAL) |
|
|
56
|
+
| `hooks` | `auth-hook`, `hook` | `supabase-auth-hook-writer` (v1.32 — materializa os 6 Auth Hooks Postgres/HTTP) |
|
|
57
|
+
| `oauth-server` | `mcp-auth`, `idp` | `supabase-oauth-server-implementer` (v1.32 — Supabase como OAuth 2.1/OIDC identity provider + MCP authentication) |
|
|
58
|
+
| `sso` | `saml`, `enterprise-sso` | `supabase-sso-saml-architect` (v1.32 — Enterprise SSO SAML 2.0 + multi-tenant) |
|
|
59
|
+
| `storage` | `armazenamento` | `supabase-storage-implementer` |
|
|
60
|
+
| `rag` | `pgvector`, `embeddings` | `supabase-edge-fn-writer` com `pattern=rag-embeddings` |
|
|
61
|
+
| `cron` | `queues`, `pgmq`, `background` | `supabase-edge-fn-writer` com `pattern=cron-pgmq` |
|
|
62
|
+
| `check` | `validar`, `validate` | `schema-checker` (validação pré-migration) |
|
|
63
|
+
| `help` | `ajuda`, `?` | exibe esta tabela inline |
|
|
64
|
+
|
|
65
|
+
**Detect `supabase/config.toml`:** se presente, extrai `project_id` (linha `project_id = "<ref>"`) e passa como contexto para o agent.
|
|
66
|
+
</context>
|
|
67
|
+
|
|
68
|
+
<process>
|
|
69
|
+
|
|
70
|
+
## 1. Parsear Subcomando
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# PT-BR: extrair primeiro token de $ARGUMENTS como subcomando
|
|
74
|
+
SUBCMD=$(echo "$ARGUMENTS" | awk '{print $1}')
|
|
75
|
+
ARGS=$(echo "$ARGUMENTS" | cut -d' ' -f2-)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Se `$ARGUMENTS` for vazio ou `SUBCMD` for `help`/`ajuda`/`?`:** exibir tabela de subcomandos inline + exemplo de uso. Sair.
|
|
79
|
+
|
|
80
|
+
## 2. Resolver Sinônimos
|
|
81
|
+
|
|
82
|
+
Mapear `SUBCMD` para agent name canônico:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
arquiteto, architect, arch → supabase-architect
|
|
86
|
+
migration, migrar, migrate → supabase-migration-writer (v1.23: auto-chain hardener em CREATE TABLE)
|
|
87
|
+
rls → supabase-rls-writer (v1.23: GRANTs + IS NOT NULL + views security_invoker)
|
|
88
|
+
hardener, harden, endurecer → supabase-rls-hardener (v1.23 canonical materializer)
|
|
89
|
+
column, coluna, col-priv → supabase-column-privileges-writer (v1.24 canonical materializer column-level — feature AVANÇADA)
|
|
90
|
+
rbac, roles, permissions, claims → supabase-rbac-implementer (v1.25 canonical materializer Custom Claims & RBAC via Auth Hook)
|
|
91
|
+
role, papel, roles-pg → supabase-roles-implementer (v1.26 canonical materializer Postgres Roles — system access only)
|
|
92
|
+
edge, edge-function, function, funcao → supabase-edge-fn-writer (v1.30: 2026 patterns)
|
|
93
|
+
test, testar, tests, deno-test → supabase-edge-fn-tester (v1.30)
|
|
94
|
+
mcp, mcp-server, mcp-lite → supabase-edge-fn-writer (com flag pattern=mcp-server) (v1.30)
|
|
95
|
+
ai, ai-session, gte-small, ollama → supabase-edge-fn-writer (com flag pattern=rag-embeddings) (v1.30)
|
|
96
|
+
wasm, wasm-module → supabase-edge-fn-writer (com flag pattern=wasm) (v1.30)
|
|
97
|
+
websocket, ws, realtime-ws → supabase-edge-fn-writer (com flag pattern=websocket) (v1.30)
|
|
98
|
+
realtime, tempo-real → supabase-realtime-implementer
|
|
99
|
+
auth, autenticacao, auth-ssr → supabase-auth-bootstrapper
|
|
100
|
+
social, oauth, login-social → supabase-social-auth-implementer (v1.32 social login + custom OAuth/OIDC)
|
|
101
|
+
mfa, 2fa, totp → supabase-mfa-implementer (v1.32 MFA TOTP/Phone + enforcement RLS)
|
|
102
|
+
hooks, auth-hook, hook → supabase-auth-hook-writer (v1.32 materializa Auth Hooks Postgres/HTTP)
|
|
103
|
+
oauth-server, mcp-auth, idp → supabase-oauth-server-implementer (v1.32 OAuth 2.1/OIDC identity provider + MCP auth)
|
|
104
|
+
sso, saml, enterprise-sso → supabase-sso-saml-architect (v1.32 Enterprise SSO SAML 2.0)
|
|
105
|
+
storage, armazenamento → supabase-storage-implementer
|
|
106
|
+
rag, pgvector, embeddings → supabase-edge-fn-writer (com flag pattern=rag-embeddings)
|
|
107
|
+
cron, queues, pgmq, background → supabase-edge-fn-writer (com flag pattern=cron-pgmq)
|
|
108
|
+
check, validar, validate → schema-checker
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Serviço de materialização (v1.23 — handoff cooperativo)
|
|
112
|
+
|
|
113
|
+
Quando agents externos (multi-tenant, debugger, planner, executor, audit-log, CRM, etc.) precisam produzir SQL/DDL, devem invocar `/supabase migration "<plano>"` ou `Task(subagent_type=supabase-rls-hardener, prompt=<draft+intent>)` ao invés de gerar SQL próprio. O command NÃO bloqueia — recebe planejamento, devolve código hardenado.
|
|
114
|
+
|
|
115
|
+
**Pattern de invocação:**
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
# de outro agent (ex: multi-tenant-rls-writer)
|
|
119
|
+
result = Task(subagent_type="supabase-rls-hardener", prompt=f"""
|
|
120
|
+
<upstream_intent>
|
|
121
|
+
Source agent: multi-tenant-rls-writer
|
|
122
|
+
Original goal: criar policies hierárquicas org→dept→role para {table_name}
|
|
123
|
+
Constraints: helper functions já existem em schema private
|
|
124
|
+
</upstream_intent>
|
|
125
|
+
|
|
126
|
+
<draft_sql>
|
|
127
|
+
{draft_policies_sql}
|
|
128
|
+
</draft_sql>
|
|
129
|
+
|
|
130
|
+
<user_facing_caller>true</user_facing_caller>
|
|
131
|
+
""")
|
|
132
|
+
# result.verdict: GO | STRENGTHEN | REWRITE
|
|
133
|
+
# result.final_sql: SQL hardenado preservando intent
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Se subcomando não resolve:** exibir erro inline com lista de subcomandos válidos. Sair.
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
✗ Subcomando desconhecido: '<SUBCMD>'
|
|
140
|
+
|
|
141
|
+
Subcomandos válidos:
|
|
142
|
+
arquiteto / architect → projetar schema + RLS + topology antes de implementar
|
|
143
|
+
migration / migrar → escrever migration SQL
|
|
144
|
+
rls → gerar policies RLS para tabela
|
|
145
|
+
edge → escrever Edge Function Deno
|
|
146
|
+
realtime → configurar canais Realtime (RLS + trigger + client)
|
|
147
|
+
auth → bootstrap Next.js v16 + Supabase Auth (SSR)
|
|
148
|
+
storage → configurar Storage (bucket + RLS + client)
|
|
149
|
+
rag → Edge Function com embeddings + pgvector
|
|
150
|
+
cron → pattern cron → pgmq → Edge Function
|
|
151
|
+
check → validar SQL antes de apply (schema-checker)
|
|
152
|
+
|
|
153
|
+
Uso: /supabase <subcomando> <args...>
|
|
154
|
+
Exemplo: /supabase arquiteto "app de chat com presence multi-room"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## 3. Detectar `supabase/config.toml`
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
if [ -f supabase/config.toml ]; then
|
|
161
|
+
PROJECT_ID=$(grep -E '^project_id\s*=' supabase/config.toml | sed 's/.*= *"\(.*\)".*/\1/' | head -1)
|
|
162
|
+
fi
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Se presente, anexar `project_id=<value>` ao prompt do agent. Se ausente, agent funciona sem (offline ou pergunta ao user).
|
|
166
|
+
|
|
167
|
+
## 4. Dispatch
|
|
168
|
+
|
|
169
|
+
Invocar `Task(subagent_type=<agent_name>, prompt=<built_prompt>)`.
|
|
170
|
+
|
|
171
|
+
**Prompt construído:**
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
{ARGS}
|
|
175
|
+
|
|
176
|
+
{Se project_id detectado:}
|
|
177
|
+
project_id: {PROJECT_ID}
|
|
178
|
+
|
|
179
|
+
{Se subcomando rag/cron — flag de modo:}
|
|
180
|
+
mode: rag-embeddings (ou cron-pgmq-edge)
|
|
181
|
+
|
|
182
|
+
{Para architect: tier upfront via AskUserQuestion}
|
|
183
|
+
{caller: pergunte ao user via AskUserQuestion sobre tier (Free/Pro/Team) e branches antes de produzir o plano — ver supabase-architect Step 1}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
**Subcomando `arquiteto`:** antes de dispatch, faça `AskUserQuestion` perguntando tier (Free/Pro/Team/Enterprise) e se vai usar branches. Inclua resposta no prompt.
|
|
187
|
+
|
|
188
|
+
**Subcomando `check`:** dispatch para `schema-checker` (existente). O caller deve passar `migration_path` e `project_id` no `$ARGUMENTS` — exemplo: `/supabase check supabase/migrations/20260506_x.sql`.
|
|
189
|
+
|
|
190
|
+
**Subcomando `migration` (v1.23 — CMD-02):** após `supabase-migration-writer` produzir SQL inicial, o agent **AUTOMATICAMENTE** invoca `supabase-rls-hardener` via `Task()` para validar defense-in-depth em CREATE TABLE. Output final inclui verdict + RLS auto-injetada. Caller NÃO precisa invocar hardener separadamente — é parte do contrato do subcomando.
|
|
191
|
+
|
|
192
|
+
**Subcomando `hardener` (v1.23 novo):** dispatch direto para `supabase-rls-hardener`. Útil quando caller tem draft SQL pronto e quer apenas validação/hardening sem gerar SQL novo. Aceita input com bloco `<draft_sql>` no `$ARGUMENTS` ou via stdin.
|
|
193
|
+
|
|
194
|
+
**Subcomando `column` (v1.24 novo):** dispatch direto para `supabase-column-privileges-writer`. Recebe spec de table + colunas sensíveis + roles permitidos e produz REVOKE table-level + GRANT column-level. **Feature AVANÇADA** — apenas para casos com PII compliance (LGPD/GDPR), audit log payload, billing data, tokens raw. Para casos comuns (admin/user roles), prefira dedicated role table pattern (documentado em [`supabase-column-level-security`](../skills/supabase-column-level-security/SKILL.md)). Aceita input com bloco `<sensitive_columns>` e `<allowed_roles>` no `$ARGUMENTS`.
|
|
195
|
+
|
|
196
|
+
**Subcomando `rbac` (v1.25 novo):** dispatch direto para `supabase-rbac-implementer`. Recebe spec de roles + permissions matrix + multi_tenant flag e materializa setup completo (7 passos canônicos: enum types + user_roles + role_permissions + Custom Access Token Auth Hook + supabase_auth_admin GRANTs + authorize() function + RLS policies template + client jwt-decode snippet). Pattern recomendado v1.25 para RBAC — zero-JOIN em policies via claim no JWT. Caveat JWT freshness (mudanças refletem após token refresh). Aceita input com bloco `<roles>` + `<permissions_matrix>` + `<multi_tenant>` no `$ARGUMENTS`. Cross-ref skill [`supabase-custom-claims-rbac`](../skills/supabase-custom-claims-rbac/SKILL.md).
|
|
197
|
+
|
|
198
|
+
**Subcomando `role` (v1.26 novo):** dispatch direto para `supabase-roles-implementer`. Recebe spec de custom Postgres roles + hierarchy + GRANT matrix e materializa setup completo (CREATE ROLE com LOGIN PASSWORD opcional + role hierarchy INHERIT/NOINHERIT + GRANT/REVOKE per schema/table/function + password security check). **System access apenas** — para application access (end-users), use `/supabase rbac` (v1.25). Aceita input com bloco `<roles_to_create>` + `<grants>` + `<use_case>` no `$ARGUMENTS`. Cross-ref skill [`supabase-postgres-roles`](../skills/supabase-postgres-roles/SKILL.md).
|
|
199
|
+
|
|
200
|
+
**Subcomando `edge` (v1.30 modernizado):** dispatch para `supabase-edge-fn-writer` que agora aplica 6 skills 2026 — env vars JSON dict (`JSON.parse(SUPABASE_PUBLISHABLE_KEYS)['default']`), `withSupabase` para auth (4 modes: `'user' | 'secret:<name>' | 'publishable:<name>' | 'none'`), per-function `deno.json` (substitui import_map global legacy), per-function `config.toml` entry (`verify_jwt`, `entrypoint`, `static_files`), CORS via `npm:@supabase/supabase-js@2.95.0/cors`, instrumentação OTel + 4 golden signals + SRE defenses (timeout/jitter/RateLimitError handling). Aceita flag `pattern=basic|rag-embeddings|cron-pgmq|mcp-server|websocket|wasm|background-task` no `$ARGUMENTS`. Auto-handoff sugerido para `/supabase test <fn>` ao final.
|
|
201
|
+
|
|
202
|
+
**Subcomando `test` (v1.30 novo):** dispatch direto para `supabase-edge-fn-tester`. Gera `supabase/functions/tests/<fn>-test.ts` com cobertura canônica de 5 equivalence classes (happy/validation/auth/rate-limit/timeout) usando Deno test runner + `assertSnapshot` + `FunctionsHttpError`/`FunctionsRelayError`/`FunctionsFetchError`. Pattern-specific: `characterization` (legacy via fixtures capturados), `webhook` (signature HMAC fixture), `rag` (determinismo via temperature=0), `mcp` (delega para MCP Inspector). Handoff cooperativo upstream: `supabase-edge-fn-writer` recomenda esse subcomando automaticamente ao criar função nova. Cross-ref skill [`supabase-edge-functions-testing`](../skills/supabase-edge-functions-testing/SKILL.md).
|
|
203
|
+
|
|
204
|
+
**Subcomandos `mcp` / `ai` / `wasm` / `websocket` (v1.30 novos):** atalhos para `supabase-edge-fn-writer` com pattern específico — economizam o caller de especificar manualmente. Cada um carrega skill especializada:
|
|
205
|
+
- `mcp` → [`supabase-edge-functions-mcp-server`](../skills/supabase-edge-functions-mcp-server/SKILL.md) (mcp-lite, dois Hono apps)
|
|
206
|
+
- `ai` → [`supabase-edge-runtime-builtins`](../skills/supabase-edge-runtime-builtins/SKILL.md) (Supabase.ai.Session, gte-small, Ollama)
|
|
207
|
+
- `wasm` → [`supabase-edge-runtime-builtins`](../skills/supabase-edge-runtime-builtins/SKILL.md) + auto-adiciona `static_files` em config.toml (CLI 2.7.0+, requer Docker no deploy)
|
|
208
|
+
- `websocket` → [`supabase-edge-runtime-builtins`](../skills/supabase-edge-runtime-builtins/SKILL.md) + auto-adiciona `policy = "per_worker"` em config.toml
|
|
209
|
+
|
|
210
|
+
**Subcomandos de autenticação (v1.32 novos):** materializam a suíte de auth. Cada um faz dispatch direto para o agent canônico e carrega a skill especializada:
|
|
211
|
+
- `social` → `supabase-social-auth-implementer` + skill [`supabase-social-oauth`](../skills/supabase-social-oauth/SKILL.md) — social login (Google/GitHub/Apple/Facebook/LinkedIn) + custom OAuth/OIDC, rota callback PKCE.
|
|
212
|
+
- `mfa` → `supabase-mfa-implementer` + skill [`supabase-mfa`](../skills/supabase-mfa/SKILL.md) — enrollment TOTP/Phone + enforcement RLS RESTRICTIVE por AAL.
|
|
213
|
+
- `hooks` → `supabase-auth-hook-writer` + skill [`supabase-auth-hooks`](../skills/supabase-auth-hooks/SKILL.md) — materializa os 6 Auth Hooks (Postgres function ou Edge Function com Standard Webhooks).
|
|
214
|
+
- `oauth-server` → `supabase-oauth-server-implementer` + skill [`supabase-oauth-server`](../skills/supabase-oauth-server/SKILL.md) — Supabase como OAuth 2.1/OIDC identity provider, **MCP authentication**, RLS por `client_id`.
|
|
215
|
+
- `sso` → `supabase-sso-saml-architect` + skill [`supabase-enterprise-sso-saml`](../skills/supabase-enterprise-sso-saml/SKILL.md) — Enterprise SSO SAML 2.0, attribute mappings, multi-tenant.
|
|
216
|
+
|
|
217
|
+
O subcomando `auth` (existente) continua para bootstrap SSR Next.js v16 via `supabase-auth-bootstrapper`. Skills de conhecimento complementares (sem agent dedicado): [`supabase-auth-methods`](../skills/supabase-auth-methods/SKILL.md), [`supabase-auth-sessions`](../skills/supabase-auth-sessions/SKILL.md), [`supabase-jwt-signing-keys`](../skills/supabase-jwt-signing-keys/SKILL.md), [`supabase-third-party-auth`](../skills/supabase-third-party-auth/SKILL.md), [`supabase-auth-hardening`](../skills/supabase-auth-hardening/SKILL.md) — a LLM as carrega automaticamente pelos trigger phrases.
|
|
218
|
+
|
|
219
|
+
## 5. Output
|
|
220
|
+
|
|
221
|
+
Output do agent é o output do command. Sem post-processing — agent já formata estruturado.
|
|
222
|
+
|
|
223
|
+
</process>
|
|
224
|
+
|
|
225
|
+
<success_criteria>
|
|
226
|
+
- [ ] Subcomando resolvido para agent canônico (21 subcomandos × seus sinônimos — v1.32)
|
|
227
|
+
- [ ] `project_id` extraído de `supabase/config.toml` se presente
|
|
228
|
+
- [ ] Subcomando `arquiteto` faz `AskUserQuestion` upfront sobre tier + branches
|
|
229
|
+
- [ ] Dispatch via `Task(subagent_type=...)` — único ponto de chain de agents Supabase
|
|
230
|
+
- [ ] Subcomando inválido → mensagem clara com lista
|
|
231
|
+
- [ ] Subcomando `help`/`ajuda`/`?` → exibe tabela inline
|
|
232
|
+
- [ ] Subcomando `check` → invoca `schema-checker` (existente)
|
|
233
|
+
- [ ] Subcomando `edge` (v1.30) → invoca `supabase-edge-fn-writer` com 2026 patterns + auto-recomenda `/supabase test` ao final
|
|
234
|
+
- [ ] Subcomando `test` (v1.30) → invoca `supabase-edge-fn-tester` que lê config.toml + index.ts para detectar auth mode
|
|
235
|
+
- [ ] Subcomandos `mcp` / `ai` / `wasm` / `websocket` (v1.30) → passam `pattern=<canônico>` para writer
|
|
236
|
+
- [ ] Subcomandos `social` / `mfa` / `hooks` / `oauth-server` / `sso` (v1.32) → dispatch para o agent de auth canônico
|
|
237
|
+
- [ ] Args após subcomando passam transparentemente para o agent
|
|
238
|
+
</success_criteria>
|
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sync-main
|
|
3
|
-
description: Atualiza a branch local com os commits da main. Se houver conflitos, pergunta qual priorizar.
|
|
4
|
-
allowed-tools:
|
|
5
|
-
- Bash
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
<safety_rules>
|
|
9
|
-
NUNCA execute git push para main ou origin/main.
|
|
10
|
-
NUNCA mude para a branch main (git checkout main / git switch main).
|
|
11
|
-
Este comando só traz código da main para a branch local — nunca o contrário.
|
|
12
|
-
</safety_rules>
|
|
13
|
-
|
|
14
|
-
<process>
|
|
15
|
-
|
|
16
|
-
## 1 — Proteção: bloquear se estiver na main
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
git branch --show-current
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Se a branch atual for `main`, encerre com:
|
|
23
|
-
> "⛔ Você está na branch main. Mude para uma branch de feature antes de continuar."
|
|
24
|
-
|
|
25
|
-
## 2 — Buscar atualizações e verificar se há algo novo
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
git fetch origin
|
|
29
|
-
git log --oneline origin/main ^HEAD
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Se não houver nenhum commit novo em `origin/main`, informe:
|
|
33
|
-
> "Sua branch já está atualizada com a main."
|
|
34
|
-
E encerre.
|
|
35
|
-
|
|
36
|
-
## 3 — Aplicar os commits da main na branch local
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
git merge origin/main
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### Se não houver conflitos:
|
|
43
|
-
Mostre um resumo com:
|
|
44
|
-
- Quantos commits foram integrados
|
|
45
|
-
- Lista dos arquivos modificados (`git diff --name-only HEAD~1 HEAD` ou similar)
|
|
46
|
-
|
|
47
|
-
Encerre.
|
|
48
|
-
|
|
49
|
-
### Se houver conflitos:
|
|
50
|
-
|
|
51
|
-
Liste os arquivos conflitantes e pergunte:
|
|
52
|
-
> "Encontrei conflitos nos arquivos abaixo. Qual é a prioridade?
|
|
53
|
-
> [1] main — usa o código da main nos conflitos
|
|
54
|
-
> [2] local — mantém o seu código nos conflitos"
|
|
55
|
-
|
|
56
|
-
Aguarde a resposta.
|
|
57
|
-
|
|
58
|
-
**Se [1] main:**
|
|
59
|
-
Para cada arquivo conflitante: `git checkout --theirs <arquivo>`
|
|
60
|
-
Depois: `git add . && git commit`
|
|
61
|
-
|
|
62
|
-
**Se [2] local:**
|
|
63
|
-
Para cada arquivo conflitante: `git checkout --ours <arquivo>`
|
|
64
|
-
Depois: `git add . && git commit`
|
|
65
|
-
|
|
66
|
-
Mostre o resumo final: branch atual, status limpo, commits integrados.
|
|
67
|
-
|
|
68
|
-
</process>
|
|
1
|
+
---
|
|
2
|
+
name: sync-main
|
|
3
|
+
description: Atualiza a branch local com os commits da main. Se houver conflitos, pergunta qual priorizar.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
<safety_rules>
|
|
9
|
+
NUNCA execute git push para main ou origin/main.
|
|
10
|
+
NUNCA mude para a branch main (git checkout main / git switch main).
|
|
11
|
+
Este comando só traz código da main para a branch local — nunca o contrário.
|
|
12
|
+
</safety_rules>
|
|
13
|
+
|
|
14
|
+
<process>
|
|
15
|
+
|
|
16
|
+
## 1 — Proteção: bloquear se estiver na main
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
git branch --show-current
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Se a branch atual for `main`, encerre com:
|
|
23
|
+
> "⛔ Você está na branch main. Mude para uma branch de feature antes de continuar."
|
|
24
|
+
|
|
25
|
+
## 2 — Buscar atualizações e verificar se há algo novo
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
git fetch origin
|
|
29
|
+
git log --oneline origin/main ^HEAD
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Se não houver nenhum commit novo em `origin/main`, informe:
|
|
33
|
+
> "Sua branch já está atualizada com a main."
|
|
34
|
+
E encerre.
|
|
35
|
+
|
|
36
|
+
## 3 — Aplicar os commits da main na branch local
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
git merge origin/main
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Se não houver conflitos:
|
|
43
|
+
Mostre um resumo com:
|
|
44
|
+
- Quantos commits foram integrados
|
|
45
|
+
- Lista dos arquivos modificados (`git diff --name-only HEAD~1 HEAD` ou similar)
|
|
46
|
+
|
|
47
|
+
Encerre.
|
|
48
|
+
|
|
49
|
+
### Se houver conflitos:
|
|
50
|
+
|
|
51
|
+
Liste os arquivos conflitantes e pergunte:
|
|
52
|
+
> "Encontrei conflitos nos arquivos abaixo. Qual é a prioridade?
|
|
53
|
+
> [1] main — usa o código da main nos conflitos
|
|
54
|
+
> [2] local — mantém o seu código nos conflitos"
|
|
55
|
+
|
|
56
|
+
Aguarde a resposta.
|
|
57
|
+
|
|
58
|
+
**Se [1] main:**
|
|
59
|
+
Para cada arquivo conflitante: `git checkout --theirs <arquivo>`
|
|
60
|
+
Depois: `git add . && git commit`
|
|
61
|
+
|
|
62
|
+
**Se [2] local:**
|
|
63
|
+
Para cada arquivo conflitante: `git checkout --ours <arquivo>`
|
|
64
|
+
Depois: `git add . && git commit`
|
|
65
|
+
|
|
66
|
+
Mostre o resumo final: branch atual, status limpo, commits integrados.
|
|
67
|
+
|
|
68
|
+
</process>
|