@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
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
export const meta = {
|
|
2
|
+
name: 'auditar-observabilidade-cobertura',
|
|
3
|
+
description:
|
|
4
|
+
'Audit cross-suite (v1.9 Observability + v1.10 SRE + v1.12 Legacy) de cobertura por Edge Function — em paralelo, com verify adversarial por gap.',
|
|
5
|
+
whenToUse:
|
|
6
|
+
'Quando há >= 10 Edge Functions e o audit serial do agent observability-coverage-auditor fica lento ou perde foco. Aceita os mesmos argumentos do command tradicional via `args`.',
|
|
7
|
+
phases: [
|
|
8
|
+
{ title: 'Discover', detail: 'enumerar Edge Functions e coletar traffic 30d' },
|
|
9
|
+
{ title: 'Audit', detail: '1 agent por função × 4 dimensões em paralelo' },
|
|
10
|
+
{ title: 'Verify', detail: 'verify adversarial só nos gaps reportados' },
|
|
11
|
+
{ title: 'Synthesize', detail: 'matriz X/N + top-N críticas + write report' },
|
|
12
|
+
],
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const PROJECT_ROOT = args?.projectRoot ?? '.'
|
|
16
|
+
const TRAFFIC_WINDOW = args?.trafficWindow ?? '30d'
|
|
17
|
+
const TOP_N = args?.topN ?? 5
|
|
18
|
+
const DIMENSIONS = args?.dimensions ?? ['signals', 'slo', 'burn-alert', 'characterization']
|
|
19
|
+
const OUTPUT_PATH = args?.outputPath ?? '.planning/OBSERVABILITY-COVERAGE.md'
|
|
20
|
+
|
|
21
|
+
const FN_LIST_SCHEMA = {
|
|
22
|
+
type: 'object',
|
|
23
|
+
required: ['functions', 'tier'],
|
|
24
|
+
properties: {
|
|
25
|
+
tier: { type: 'string', enum: ['full', 'partial'] },
|
|
26
|
+
projectId: { type: ['string', 'null'] },
|
|
27
|
+
functions: {
|
|
28
|
+
type: 'array',
|
|
29
|
+
items: {
|
|
30
|
+
type: 'object',
|
|
31
|
+
required: ['name', 'path'],
|
|
32
|
+
properties: {
|
|
33
|
+
name: { type: 'string' },
|
|
34
|
+
path: { type: 'string' },
|
|
35
|
+
deployed: { type: 'boolean' },
|
|
36
|
+
traffic30d: { type: ['number', 'null'] },
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const COVERAGE_SCHEMA = {
|
|
44
|
+
type: 'object',
|
|
45
|
+
required: ['name', 'hasSignals', 'hasSlo', 'hasBurnAlert', 'hasChar'],
|
|
46
|
+
properties: {
|
|
47
|
+
name: { type: 'string' },
|
|
48
|
+
hasSignals: { type: 'boolean' },
|
|
49
|
+
hasLatency: { type: 'boolean' },
|
|
50
|
+
hasTraffic: { type: 'boolean' },
|
|
51
|
+
hasErrors: { type: 'boolean' },
|
|
52
|
+
hasSaturation: { type: 'boolean' },
|
|
53
|
+
hasSlo: { type: 'boolean' },
|
|
54
|
+
hasBurnAlert: { type: 'boolean' },
|
|
55
|
+
hasChar: { type: 'boolean' },
|
|
56
|
+
evidence: {
|
|
57
|
+
type: 'object',
|
|
58
|
+
properties: {
|
|
59
|
+
signalsHits: { type: 'array', items: { type: 'string' } },
|
|
60
|
+
sloPath: { type: ['string', 'null'] },
|
|
61
|
+
burnPath: { type: ['string', 'null'] },
|
|
62
|
+
charPath: { type: ['string', 'null'] },
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const VERDICT_SCHEMA = {
|
|
69
|
+
type: 'object',
|
|
70
|
+
required: ['name', 'confirmedGaps'],
|
|
71
|
+
properties: {
|
|
72
|
+
name: { type: 'string' },
|
|
73
|
+
confirmedGaps: {
|
|
74
|
+
type: 'object',
|
|
75
|
+
properties: {
|
|
76
|
+
signals: { type: 'boolean' },
|
|
77
|
+
slo: { type: 'boolean' },
|
|
78
|
+
burnAlert: { type: 'boolean' },
|
|
79
|
+
characterization: { type: 'boolean' },
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
refutedEvidence: {
|
|
83
|
+
type: 'array',
|
|
84
|
+
items: {
|
|
85
|
+
type: 'object',
|
|
86
|
+
properties: {
|
|
87
|
+
dimension: { type: 'string' },
|
|
88
|
+
foundAt: { type: 'string' },
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const SYNTHESIS_SCHEMA = {
|
|
96
|
+
type: 'object',
|
|
97
|
+
required: ['outputPath', 'status', 'coverage'],
|
|
98
|
+
properties: {
|
|
99
|
+
outputPath: { type: 'string' },
|
|
100
|
+
status: { type: 'string', enum: ['GREEN', 'YELLOW', 'RED'] },
|
|
101
|
+
coverage: {
|
|
102
|
+
type: 'object',
|
|
103
|
+
properties: {
|
|
104
|
+
signals: { type: 'object', properties: { covered: { type: 'number' }, total: { type: 'number' } } },
|
|
105
|
+
slo: { type: 'object', properties: { covered: { type: 'number' }, total: { type: 'number' } } },
|
|
106
|
+
burnAlert: { type: 'object', properties: { covered: { type: 'number' }, total: { type: 'number' } } },
|
|
107
|
+
characterization: { type: 'object', properties: { covered: { type: 'number' }, total: { type: 'number' } } },
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
topCritical: {
|
|
111
|
+
type: 'array',
|
|
112
|
+
items: {
|
|
113
|
+
type: 'object',
|
|
114
|
+
properties: {
|
|
115
|
+
name: { type: 'string' },
|
|
116
|
+
traffic30d: { type: ['number', 'null'] },
|
|
117
|
+
missing: { type: 'array', items: { type: 'string' } },
|
|
118
|
+
criticality: { type: 'number' },
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
phase('Discover')
|
|
126
|
+
|
|
127
|
+
const discovery = await agent(
|
|
128
|
+
`Enumerar Edge Functions do projeto em ${PROJECT_ROOT}.
|
|
129
|
+
|
|
130
|
+
1. Detectar project_id em supabase/config.toml (grep -E '^project_id\\s*=' supabase/config.toml | sed 's/.*= *"\\(.*\\)".*/\\1/').
|
|
131
|
+
2. Se project_id presente E mcp__supabase__list_edge_functions disponível → tier="full", listar via MCP.
|
|
132
|
+
3. Senão → tier="partial", listar via filesystem: find supabase/functions -mindepth 1 -maxdepth 1 -type d.
|
|
133
|
+
4. Para tier="full": coletar traffic ${TRAFFIC_WINDOW} via mcp__supabase__get_logs (service=edge-function, query_filter por fn_name, aggregate=count). Para tier="partial": traffic30d=null.
|
|
134
|
+
5. Para cada function, devolver { name, path (relativo, ex: "supabase/functions/process-payments"), deployed?, traffic30d }.
|
|
135
|
+
|
|
136
|
+
Sem narração. Apenas o objeto JSON conforme schema.`,
|
|
137
|
+
{ label: 'discover-fns', phase: 'Discover', schema: FN_LIST_SCHEMA }
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
if (!discovery || !discovery.functions?.length) {
|
|
141
|
+
log('Nenhuma Edge Function detectada. Abortando.')
|
|
142
|
+
return { aborted: true, reason: 'no-edge-functions', outputPath: null }
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
log(`${discovery.functions.length} Edge Functions detectadas (tier=${discovery.tier})`)
|
|
146
|
+
|
|
147
|
+
const audited = await pipeline(
|
|
148
|
+
discovery.functions,
|
|
149
|
+
(fn) =>
|
|
150
|
+
agent(
|
|
151
|
+
`Audite a Edge Function "${fn.name}" (path: ${fn.path}) em 4 dimensões usando grep determinístico. Sem narração.
|
|
152
|
+
|
|
153
|
+
ENTRYPOINT esperado: ${fn.path}/index.ts (fallback: ${fn.path}/mod.ts ou primeiro *.ts no diretório).
|
|
154
|
+
|
|
155
|
+
1. **4 Golden Signals** no entrypoint:
|
|
156
|
+
- hasLatency: grep -qE "createHistogram\\(.*duration|histogram.*ms|latency_histogram"
|
|
157
|
+
- hasTraffic: grep -qE "createCounter\\(.*requests|http_requests_total|trafficCounter"
|
|
158
|
+
- hasErrors: grep -qE "createCounter\\(.*errors|http_errors_total|errorsCounter|error_type"
|
|
159
|
+
- hasSaturation: grep -qE "createObservableGauge\\(.*saturation|connection_pool|queue_depth"
|
|
160
|
+
- hasSignals = AND(hasLatency, hasTraffic, hasErrors, hasSaturation)
|
|
161
|
+
2. **SLO**: arquivo .planning/slos/${fn.name}.md existe OU .planning/SLO.md grep -q "${fn.name}".
|
|
162
|
+
3. **Burn alert**: .planning/burn-rate-alerts.md grep -q "${fn.name}" OU .planning/SLO.md tem "burn" no contexto de "${fn.name}" (grep -A 20 "${fn.name}" .planning/SLO.md | grep -q "burn").
|
|
163
|
+
4. **Characterization tests**: find tests/characterization test/characterization __tests__/characterization -path "*${fn.name}*" 2>/dev/null produz ≥1 linha.
|
|
164
|
+
|
|
165
|
+
Em "evidence", liste paths/linhas encontrados para CADA dimensão positiva (vão ser auditados pelo verifier do próximo stage). Para dimensão negativa, deixe array vazio / null.`,
|
|
166
|
+
{ label: `audit:${fn.name}`, phase: 'Audit', schema: COVERAGE_SCHEMA }
|
|
167
|
+
),
|
|
168
|
+
async (coverage, fn) => {
|
|
169
|
+
if (!coverage) return null
|
|
170
|
+
const gaps = {
|
|
171
|
+
signals: !coverage.hasSignals,
|
|
172
|
+
slo: !coverage.hasSlo,
|
|
173
|
+
burnAlert: !coverage.hasBurnAlert,
|
|
174
|
+
characterization: !coverage.hasChar,
|
|
175
|
+
}
|
|
176
|
+
const missingDims = Object.entries(gaps)
|
|
177
|
+
.filter(([, v]) => v)
|
|
178
|
+
.map(([k]) => k)
|
|
179
|
+
if (!missingDims.length) {
|
|
180
|
+
return { ...coverage, verifiedGaps: {}, traffic30d: fn.traffic30d ?? null }
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const verdict = await agent(
|
|
184
|
+
`Você é skeptic. Coverage report para "${fn.name}" (${fn.path}) diz que estas dimensões estão MISSING: ${missingDims.join(', ')}.
|
|
185
|
+
|
|
186
|
+
Tente REFUTAR esses gaps. Padrões alternativos a checar (false negatives comuns do grep simples):
|
|
187
|
+
- **signals**: wrapper helpers (instrumentRequest, traced, withMetrics, withGoldenSignals), imports renomeados (import { Counter as C }), instrumentação OTel via decorator/middleware em arquivo separado (./telemetry.ts, ./otel.ts, ./metrics.ts) importado pelo entrypoint.
|
|
188
|
+
- **slo**: SLO em .planning/marcos/*/SLO.md, docs/slo/*.yml, supabase/slos/, arquivo SLO.md em path não-canônico.
|
|
189
|
+
- **burnAlert**: alerting.yaml, grafana/, prometheus rules (*.rules.yml), .planning/burn-rates/*.
|
|
190
|
+
- **characterization**: __tests__/<name>.snapshot.ts, e2e/<name>.spec.ts, tests/golden/, tests/<name>.golden.*.
|
|
191
|
+
|
|
192
|
+
Para CADA dimensão MISSING acima, em "confirmedGaps":
|
|
193
|
+
- true SOMENTE se o gap for genuíno (não achou padrão alternativo após busca expandida).
|
|
194
|
+
- false se você encontrou evidência alternativa (registre em "refutedEvidence").
|
|
195
|
+
|
|
196
|
+
Default cético: na dúvida, confirmedGaps=true (preserva o gap reportado).`,
|
|
197
|
+
{ label: `verify:${fn.name}`, phase: 'Verify', schema: VERDICT_SCHEMA }
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
const verifiedGaps = verdict?.confirmedGaps ?? gaps
|
|
201
|
+
return {
|
|
202
|
+
...coverage,
|
|
203
|
+
hasSignals: coverage.hasSignals || (gaps.signals && !verifiedGaps.signals),
|
|
204
|
+
hasSlo: coverage.hasSlo || (gaps.slo && !verifiedGaps.slo),
|
|
205
|
+
hasBurnAlert: coverage.hasBurnAlert || (gaps.burnAlert && !verifiedGaps.burnAlert),
|
|
206
|
+
hasChar: coverage.hasChar || (gaps.characterization && !verifiedGaps.characterization),
|
|
207
|
+
verifiedGaps,
|
|
208
|
+
refutedEvidence: verdict?.refutedEvidence ?? [],
|
|
209
|
+
traffic30d: fn.traffic30d ?? null,
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
phase('Synthesize')
|
|
215
|
+
|
|
216
|
+
const rows = audited.filter(Boolean)
|
|
217
|
+
|
|
218
|
+
const synthesis = await agent(
|
|
219
|
+
`Sintetize o audit cross-suite em ${OUTPUT_PATH}. Use a estrutura canônica do agent observability-coverage-auditor (Resumo executivo → Top ${TOP_N} → Tabela completa → Análise por dimensão → Cross-suite scoring → Próximas ações priorizadas).
|
|
220
|
+
|
|
221
|
+
DADOS (já verificados adversarialmente — gaps falsos foram corrigidos no stage Verify):
|
|
222
|
+
|
|
223
|
+
tier: ${discovery.tier}
|
|
224
|
+
trafficWindow: ${TRAFFIC_WINDOW}
|
|
225
|
+
dimensions: ${JSON.stringify(DIMENSIONS)}
|
|
226
|
+
rows: ${JSON.stringify(rows, null, 2)}
|
|
227
|
+
|
|
228
|
+
REGRAS:
|
|
229
|
+
1. Cobertura por dimensão = count(true) / total.
|
|
230
|
+
2. Status agregado: GREEN se ≥80% em TODAS, YELLOW se 50–80% em alguma, RED se <50% em alguma.
|
|
231
|
+
3. criticality_score = (traffic30d ?? 1) × missing_count (NULL traffic → score = missing_count).
|
|
232
|
+
4. Top ${TOP_N} críticas: ordenar por criticality_score desc, listar com missing dims e comando recomendado:
|
|
233
|
+
- signals missing → /golden-signals <fn>
|
|
234
|
+
- slo missing → /definir-slo <fn>
|
|
235
|
+
- burnAlert missing → /burn-rate-status + criar alert
|
|
236
|
+
- characterization missing → /caracterizar <fn>
|
|
237
|
+
5. Em "Análise por dimensão", mencione o impacto cross-suite (OMM Capacidade X, PRR Axe Y) conforme o template do agent original.
|
|
238
|
+
6. Escrever o markdown via Write tool em ${OUTPUT_PATH}.
|
|
239
|
+
7. Retornar { outputPath, status, coverage: { signals: {covered,total}, slo: {covered,total}, burnAlert: {covered,total}, characterization: {covered,total} }, topCritical: [...] }.`,
|
|
240
|
+
{ label: 'synthesize', phase: 'Synthesize', schema: SYNTHESIS_SCHEMA }
|
|
241
|
+
)
|
|
242
|
+
|
|
243
|
+
return {
|
|
244
|
+
outputPath: synthesis?.outputPath ?? OUTPUT_PATH,
|
|
245
|
+
status: synthesis?.status,
|
|
246
|
+
coverage: synthesis?.coverage,
|
|
247
|
+
topCritical: synthesis?.topCritical,
|
|
248
|
+
totalFunctions: discovery.functions.length,
|
|
249
|
+
tier: discovery.tier,
|
|
250
|
+
}
|
package/package.json
CHANGED
|
@@ -1,63 +1,65 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@luanpdd/kit-mcp",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Generic infrastructure to ship YOUR personal kit of agents/commands/skills as an MCP server, with cross-IDE sync (Claude Code, Cursor, Codex, Gemini, Windsurf, Antigravity, Copilot, Trae).",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"bin": {
|
|
7
|
-
"kit-mcp": "bin/mcp.js",
|
|
8
|
-
"kit": "bin/cli.js"
|
|
9
|
-
},
|
|
10
|
-
"publishConfig": {
|
|
11
|
-
"access": "public"
|
|
12
|
-
},
|
|
13
|
-
"files": [
|
|
14
|
-
"bin/",
|
|
15
|
-
"src/",
|
|
16
|
-
"kit/",
|
|
17
|
-
"gates/",
|
|
18
|
-
"README.md",
|
|
19
|
-
"LICENSE"
|
|
20
|
-
],
|
|
21
|
-
"keywords": [
|
|
22
|
-
"mcp",
|
|
23
|
-
"model-context-protocol",
|
|
24
|
-
"claude",
|
|
25
|
-
"cursor",
|
|
26
|
-
"codex",
|
|
27
|
-
"gemini",
|
|
28
|
-
"agents",
|
|
29
|
-
"skills"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"test
|
|
47
|
-
"test:
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@luanpdd/kit-mcp",
|
|
3
|
+
"version": "1.35.0",
|
|
4
|
+
"description": "Generic infrastructure to ship YOUR personal kit of agents/commands/skills as an MCP server, with cross-IDE sync (Claude Code, Cursor, Codex, Gemini, Windsurf, Antigravity, Copilot, Trae).",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"kit-mcp": "bin/mcp.js",
|
|
8
|
+
"kit": "bin/cli.js"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"bin/",
|
|
15
|
+
"src/",
|
|
16
|
+
"kit/",
|
|
17
|
+
"gates/",
|
|
18
|
+
"README.md",
|
|
19
|
+
"LICENSE"
|
|
20
|
+
],
|
|
21
|
+
"keywords": [
|
|
22
|
+
"mcp",
|
|
23
|
+
"model-context-protocol",
|
|
24
|
+
"claude",
|
|
25
|
+
"cursor",
|
|
26
|
+
"codex",
|
|
27
|
+
"gemini",
|
|
28
|
+
"agents",
|
|
29
|
+
"skills",
|
|
30
|
+
"workflows",
|
|
31
|
+
"dynamic-workflows"
|
|
32
|
+
],
|
|
33
|
+
"author": "luanpdd",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "git+https://github.com/luanpdd/kit-mcp.git"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=20"
|
|
41
|
+
},
|
|
42
|
+
"scripts": {
|
|
43
|
+
"start": "node bin/mcp.js",
|
|
44
|
+
"cli": "node bin/cli.js",
|
|
45
|
+
"smoke": "node bin/cli.js kit list-agents | head -5",
|
|
46
|
+
"test": "node test/run.mjs test/unit",
|
|
47
|
+
"test:all": "node test/run.mjs test",
|
|
48
|
+
"test:integration": "node test/run.mjs test/integration",
|
|
49
|
+
"test:mutation": "stryker run",
|
|
50
|
+
"prepublishOnly": "node scripts/regen-manifest.js && node scripts/update-readme-counts.js && node test/run.mjs test/unit && node test/run.mjs test/integration"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
54
|
+
"commander": "^14.0.3",
|
|
55
|
+
"picocolors": "^1.1.1"
|
|
56
|
+
},
|
|
57
|
+
"optionalDependencies": {
|
|
58
|
+
"@inquirer/prompts": "^8.4.2",
|
|
59
|
+
"chokidar": "^5.0.0",
|
|
60
|
+
"open": "^11.0.0"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@stryker-mutator/core": "9.6.1"
|
|
64
|
+
}
|
|
65
|
+
}
|