@luanpdd/kit-mcp 1.30.2 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +168 -168
- package/gates/agent-no-recursive-dispatch.md +84 -82
- package/kit/COMANDOS.md +138 -138
- package/kit/README.md +76 -76
- package/kit/agents/advisor-researcher.md +107 -106
- package/kit/agents/ai-mutation-tester.md +1 -0
- package/kit/agents/assumptions-analyzer.md +108 -107
- package/kit/agents/audit-log-implementer.md +314 -313
- package/kit/agents/auditor-consistencia-isolamento.md +414 -413
- package/kit/agents/b2b-saas-architect.md +157 -156
- package/kit/agents/burn-rate-forecaster.md +1 -0
- package/kit/agents/cascading-failures-auditor.md +299 -298
- package/kit/agents/codebase-mapper.md +769 -768
- package/kit/agents/crm-pipeline-implementer.md +257 -256
- package/kit/agents/debugger.md +814 -813
- package/kit/agents/detector-tenant-quente.md +338 -337
- package/kit/agents/evolution-go-integrator.md +201 -200
- package/kit/agents/example-reviewer.md +22 -21
- package/kit/agents/executor.md +565 -564
- package/kit/agents/golden-signals-instrumenter.md +1 -0
- package/kit/agents/incident-investigator.md +1 -0
- package/kit/agents/integration-checker.md +201 -200
- package/kit/agents/invite-flow-implementer.md +190 -189
- package/kit/agents/legacy-characterizer.md +369 -368
- package/kit/agents/lgpd-compliance-auditor.md +296 -295
- package/kit/agents/load-shedding-instrumenter.md +1 -0
- package/kit/agents/multi-tenant-isolation-auditor.md +254 -253
- package/kit/agents/multi-tenant-rls-writer.md +341 -340
- package/kit/agents/nyquist-auditor.md +179 -178
- package/kit/agents/observability-coverage-auditor.md +316 -315
- package/kit/agents/observability-instrumenter.md +1 -0
- package/kit/agents/omm-auditor.md +1 -0
- package/kit/agents/org-onboarding-implementer.md +224 -223
- package/kit/agents/payload-capture-instrumenter.md +274 -273
- package/kit/agents/phase-researcher.md +697 -696
- package/kit/agents/plan-checker.md +273 -272
- package/kit/agents/planner.md +923 -922
- package/kit/agents/postmortem-writer.md +1 -0
- package/kit/agents/project-researcher.md +653 -652
- package/kit/agents/prr-conductor.md +1 -0
- package/kit/agents/refactor-safety-auditor.md +405 -404
- package/kit/agents/release-pipeline-auditor.md +1 -0
- package/kit/agents/research-synthesizer.md +246 -245
- package/kit/agents/roadmapper.md +678 -677
- package/kit/agents/schema-checker.md +1 -0
- package/kit/agents/seam-finder.md +360 -359
- package/kit/agents/shotgun-surgery-detector.md +350 -349
- package/kit/agents/slo-engineer.md +1 -0
- package/kit/agents/storytelling-analyst.md +1 -0
- package/kit/agents/supabase-architect.md +1 -0
- package/kit/agents/supabase-auth-bootstrapper.md +1 -0
- package/kit/agents/supabase-branching-architect.md +563 -562
- package/kit/agents/supabase-cicd-pipeline-implementer.md +778 -777
- package/kit/agents/supabase-column-privileges-writer.md +400 -399
- package/kit/agents/supabase-edge-fn-tester.md +2 -1
- package/kit/agents/supabase-edge-fn-writer.md +2 -1
- package/kit/agents/supabase-migration-writer.md +386 -385
- package/kit/agents/supabase-rbac-implementer.md +393 -392
- package/kit/agents/supabase-realtime-implementer.md +364 -363
- package/kit/agents/supabase-rls-hardener.md +522 -521
- package/kit/agents/supabase-rls-writer.md +324 -323
- package/kit/agents/supabase-roles-implementer.md +356 -355
- package/kit/agents/supabase-storage-implementer.md +1 -0
- package/kit/agents/super-admin-implementer.md +282 -281
- package/kit/agents/toil-auditor.md +1 -0
- package/kit/agents/ui-auditor.md +438 -437
- package/kit/agents/ui-checker.md +303 -302
- package/kit/agents/ui-researcher.md +356 -355
- package/kit/agents/user-profiler.md +176 -175
- package/kit/agents/validador-evolucao-schema.md +336 -335
- package/kit/agents/verifier.md +729 -728
- 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.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/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/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 +82 -81
- 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 +29 -50
- package/kit/hooks/kit-router.cjs +137 -0
- 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/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-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 +1 -1
- package/kit/skills/supabase-edge-functions-auth/SKILL.md +1 -1
- package/kit/skills/supabase-edge-functions-limits/SKILL.md +1 -1
- package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +1 -1
- package/kit/skills/supabase-edge-functions-testing/SKILL.md +1 -1
- package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +1 -1
- package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
- package/kit/skills/supabase-migrations/SKILL.md +297 -297
- 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/super-admin-platform-pattern/SKILL.md +326 -326
- package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
- package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
- package/package.json +1 -1
- package/src/core/kit.js +216 -216
- package/src/core/reflect.js +247 -247
- package/src/core/reverse-sync.js +372 -372
- package/src/core/sync.js +437 -418
- package/src/core/watch.js +121 -121
- package/src/mcp-server/index.js +794 -746
|
@@ -1,298 +1,299 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cascading-failures-auditor
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
- [`
|
|
13
|
-
- [`
|
|
14
|
-
- [`
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
- (Opcional) `
|
|
27
|
-
- (Opcional) `
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
done
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
#
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
done
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
- sem
|
|
159
|
-
- sem
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
- sem
|
|
164
|
-
- sem
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
+
|
|
177
|
-
+
|
|
178
|
-
+
|
|
179
|
-
+
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
+
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
+
|
|
192
|
-
+
|
|
193
|
-
+
|
|
194
|
-
+
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
- **
|
|
206
|
-
- **
|
|
207
|
-
- **
|
|
208
|
-
- **
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
**
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
+
|
|
222
|
-
+
|
|
223
|
-
+
|
|
224
|
-
+
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
- Skill `
|
|
247
|
-
-
|
|
248
|
-
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
-
|
|
285
|
-
-
|
|
286
|
-
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
- [`
|
|
292
|
-
- [`
|
|
293
|
-
- [`
|
|
294
|
-
- [`
|
|
295
|
-
- [`
|
|
296
|
-
- [`
|
|
297
|
-
|
|
298
|
-
|
|
1
|
+
---
|
|
2
|
+
name: cascading-failures-auditor
|
|
3
|
+
tier: specialized
|
|
4
|
+
description: Audita código de serviço para triggers de cascading failure (sem timeout, retry sem jitter, sem circuit breaker, dependências sem health check, queue sem limite).
|
|
5
|
+
tools: Read, Bash, Grep, Glob, Write
|
|
6
|
+
color: red
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
Você é o **auditor de cascading failures**. Recebe `target_path` (arquivo de serviço, diretório de Edge Functions, ou repo inteiro) e produz `CASCADING-AUDIT.md` priorizado P0/P1/P2 com sugestões de patches concretos.
|
|
10
|
+
|
|
11
|
+
Você consulta:
|
|
12
|
+
- [`cascading-failures`](../skills/cascading-failures/SKILL.md) — knowledge base canônica (5 triggers, defesa em camadas, circuit breaker)
|
|
13
|
+
- [`retry-strategies`](../skills/retry-strategies/SKILL.md) — jitter + deadline + retry budget + idempotency
|
|
14
|
+
- [`load-shedding-graceful-degradation`](../skills/load-shedding-graceful-degradation/SKILL.md) — server-side defenses
|
|
15
|
+
- [`four-golden-signals`](../skills/four-golden-signals/SKILL.md) (v1.10) — Saturation como early warning
|
|
16
|
+
|
|
17
|
+
**Compat:** Full em todos os IDEs (filesystem-only). Veja [COMPATIBILITY.md](../COMPATIBILITY.md).
|
|
18
|
+
|
|
19
|
+
## Por que existe
|
|
20
|
+
|
|
21
|
+
Cascade não acontece "às vezes" — acontece quando os 5 triggers canônicos (cap 22) estão presentes. Esse agent detecta os triggers via análise estática + AST, prioriza por severity × prevalence, gera patches prontos para PR. Sem audit estruturado, equipe descobre cascade só durante outage.
|
|
22
|
+
|
|
23
|
+
## Inputs esperados (do caller)
|
|
24
|
+
|
|
25
|
+
- `target_path`: arquivo, diretório ou repo (default: `.`)
|
|
26
|
+
- (Opcional) `output_path`: default `.planning/CASCADING-AUDIT.md`
|
|
27
|
+
- (Opcional) `dimensions`: lista — `timeouts,retry-jitter,circuit-breaker,deadline-prop,queue-bound,health-check,saturation-gauge` (default: todos)
|
|
28
|
+
- (Opcional) `severity_filter`: `P0|P1|P2|all` (default: all)
|
|
29
|
+
|
|
30
|
+
## Passos
|
|
31
|
+
|
|
32
|
+
### Step 0 — Preflight
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
TARGET_PATH="${target_path:-.}"
|
|
36
|
+
OUTPUT_PATH="${output_path:-.planning/CASCADING-AUDIT.md}"
|
|
37
|
+
mkdir -p "$(dirname "$OUTPUT_PATH")"
|
|
38
|
+
|
|
39
|
+
# detectar arquivos de serviço
|
|
40
|
+
FILES=""
|
|
41
|
+
if [ -f "$TARGET_PATH" ]; then
|
|
42
|
+
FILES="$TARGET_PATH"
|
|
43
|
+
elif [ -d "$TARGET_PATH" ]; then
|
|
44
|
+
FILES=$(find "$TARGET_PATH" -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.py" -o -name "*.go" -o -name "*.java" \) ! -path "*node_modules*" ! -path "*test*" 2>/dev/null)
|
|
45
|
+
fi
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Step 1 — Detectar triggers de cascade
|
|
49
|
+
|
|
50
|
+
**Trigger 1: Sem timeout em chamadas externas**
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# regex canônico — fetch/axios/http sem AbortSignal/timeout
|
|
54
|
+
for f in $FILES; do
|
|
55
|
+
# detect calls SEM timeout
|
|
56
|
+
grep -nE "fetch\([^)]*\)|axios\.(get|post)\(" "$f" | while read line; do
|
|
57
|
+
# checar se mesmo line OR nearby tem AbortSignal/timeout
|
|
58
|
+
line_num=$(echo "$line" | cut -d: -f1)
|
|
59
|
+
nearby=$(sed -n "${line_num},$((line_num+5))p" "$f")
|
|
60
|
+
if ! echo "$nearby" | grep -qE "AbortSignal|timeout|signal:"; then
|
|
61
|
+
echo "[P0] $f:$line_num — fetch/axios sem timeout"
|
|
62
|
+
fi
|
|
63
|
+
done
|
|
64
|
+
done
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Trigger 2: Retry sem jitter**
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# detectar setTimeout/sleep com pattern fixo (não Math.random)
|
|
71
|
+
for f in $FILES; do
|
|
72
|
+
grep -nE "setTimeout\(.*1000|sleep\(.*1000\)" "$f" | grep -v "Math.random" | while read line; do
|
|
73
|
+
echo "[P0] $f:$line — possible retry sem jitter"
|
|
74
|
+
done
|
|
75
|
+
|
|
76
|
+
# detectar retry loops com delay determinístico
|
|
77
|
+
grep -nE "for.*retry|while.*retr" "$f" -A 3 | grep -E "setTimeout|sleep" | grep -v "random"
|
|
78
|
+
done
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Trigger 3: Sem circuit breaker em deps externas**
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# heurística: arquivo chama dep externa MUITAS vezes mas não há
|
|
85
|
+
# circuitBreaker / opossum / hystrix / similar import
|
|
86
|
+
for f in $FILES; do
|
|
87
|
+
has_external_call=$(grep -cE "fetch\(|axios\.|stripe\.|openai\.|anthropic\." "$f")
|
|
88
|
+
has_circuit_breaker=$(grep -cE "CircuitBreaker|opossum|circuitOpen|breaker\.fire" "$f")
|
|
89
|
+
if [ "$has_external_call" -gt 0 ] && [ "$has_circuit_breaker" -eq 0 ]; then
|
|
90
|
+
echo "[P1] $f — $has_external_call calls externos sem circuit breaker"
|
|
91
|
+
fi
|
|
92
|
+
done
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Trigger 4: Sem deadline propagation**
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# heurística: handler recebe request mas não passa deadline downstream
|
|
99
|
+
for f in $FILES; do
|
|
100
|
+
is_handler=$(grep -cE "Deno\.serve|app\.(post|get|put)" "$f")
|
|
101
|
+
has_deadline_header=$(grep -cE "x-deadline|grpc-timeout|deadline.*header" "$f")
|
|
102
|
+
if [ "$is_handler" -gt 0 ] && [ "$has_deadline_header" -eq 0 ]; then
|
|
103
|
+
echo "[P1] $f — handler sem deadline propagation"
|
|
104
|
+
fi
|
|
105
|
+
done
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Trigger 5: Queue sem limite + drop policy**
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# detectar queues unbounded
|
|
112
|
+
for f in $FILES; do
|
|
113
|
+
grep -nE "(new Queue|enqueue|queue\.push|messages\[\])" "$f" | while read line; do
|
|
114
|
+
line_num=$(echo "$line" | cut -d: -f1)
|
|
115
|
+
nearby=$(sed -n "${line_num},$((line_num+10))p" "$f")
|
|
116
|
+
if ! echo "$nearby" | grep -qE "maxSize|limit|capacity"; then
|
|
117
|
+
echo "[P0] $f:$line_num — queue sem limite"
|
|
118
|
+
fi
|
|
119
|
+
done
|
|
120
|
+
done
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Trigger 6: Sem health check em deps**
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# detectar deps inicializadas sem health check
|
|
127
|
+
for f in $FILES; do
|
|
128
|
+
has_db_init=$(grep -cE "createClient|new Pool|new Connection" "$f")
|
|
129
|
+
has_health=$(grep -cE "healthcheck|ping\(\)|select 1" "$f")
|
|
130
|
+
if [ "$has_db_init" -gt 0 ] && [ "$has_health" -eq 0 ]; then
|
|
131
|
+
echo "[P2] $f — DB/conn sem health check inicial"
|
|
132
|
+
fi
|
|
133
|
+
done
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Trigger 7: Saturation gauge ausente**
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# heurística: handler sem ObservableGauge nem queue depth metric
|
|
140
|
+
for f in $FILES; do
|
|
141
|
+
is_handler=$(grep -cE "Deno\.serve|app\.(post|get)" "$f")
|
|
142
|
+
has_saturation=$(grep -cE "createObservableGauge|saturation|queue_depth|connection_pool" "$f")
|
|
143
|
+
if [ "$is_handler" -gt 0 ] && [ "$has_saturation" -eq 0 ]; then
|
|
144
|
+
echo "[P1] $f — handler sem saturation gauge"
|
|
145
|
+
fi
|
|
146
|
+
done
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### Step 2 — Priorizar achados
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
P0 (fix imediato — pode causar cascade hoje):
|
|
153
|
+
- fetch/axios sem timeout
|
|
154
|
+
- retry sem jitter
|
|
155
|
+
- queue unbounded sem drop policy
|
|
156
|
+
|
|
157
|
+
P1 (fix próximo sprint):
|
|
158
|
+
- sem circuit breaker em deps externas
|
|
159
|
+
- sem deadline propagation
|
|
160
|
+
- sem saturation gauge
|
|
161
|
+
|
|
162
|
+
P2 (eventual — best practice):
|
|
163
|
+
- sem health check em deps
|
|
164
|
+
- sem slow start em recovery
|
|
165
|
+
- sem retry budget global
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Step 3 — Sugerir patches concretos
|
|
169
|
+
|
|
170
|
+
Para cada P0/P1, gerar patch específico:
|
|
171
|
+
|
|
172
|
+
```text
|
|
173
|
+
Para fetch sem timeout:
|
|
174
|
+
DIFF SUGERIDO:
|
|
175
|
+
- await fetch(url, { method: 'POST', body })
|
|
176
|
+
+ await fetch(url, {
|
|
177
|
+
+ method: 'POST',
|
|
178
|
+
+ body,
|
|
179
|
+
+ signal: AbortSignal.timeout(2000), // p99.9 baseline + 50%
|
|
180
|
+
+ })
|
|
181
|
+
|
|
182
|
+
Para retry sem jitter:
|
|
183
|
+
DIFF SUGERIDO:
|
|
184
|
+
- await sleep(1000 * Math.pow(2, attempt)) // exponential SEM jitter
|
|
185
|
+
+ const baseMs = 100 * Math.pow(2, attempt - 1)
|
|
186
|
+
+ await sleep(Math.random() * baseMs * 2) // full jitter
|
|
187
|
+
|
|
188
|
+
Para queue unbounded:
|
|
189
|
+
DIFF SUGERIDO:
|
|
190
|
+
- this.queue.push(msg)
|
|
191
|
+
+ if (this.queue.length >= MAX_QUEUE_SIZE) {
|
|
192
|
+
+ this.queue.shift() // drop oldest (FIFO drop)
|
|
193
|
+
+ metrics.counter('queue_drops_total').inc()
|
|
194
|
+
+ }
|
|
195
|
+
+ this.queue.push(msg)
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Step 4 — Escrever `CASCADING-AUDIT.md`
|
|
199
|
+
|
|
200
|
+
```markdown
|
|
201
|
+
# CASCADING-AUDIT — <target> — <data>
|
|
202
|
+
|
|
203
|
+
## Resumo
|
|
204
|
+
|
|
205
|
+
- **Total arquivos analisados:** <N>
|
|
206
|
+
- **P0 (fix imediato):** <count>
|
|
207
|
+
- **P1 (próximo sprint):** <count>
|
|
208
|
+
- **P2 (best practice):** <count>
|
|
209
|
+
- **Score risco:** [HIGH | MEDIUM | LOW]
|
|
210
|
+
|
|
211
|
+
## P0 — fix imediato
|
|
212
|
+
|
|
213
|
+
### #1: src/orders/handler.ts:42 — fetch sem timeout
|
|
214
|
+
|
|
215
|
+
**Trigger:** server unavailability + latency spike sem proteção
|
|
216
|
+
**Impacto:** request congela conn pool em latency upstream spike
|
|
217
|
+
|
|
218
|
+
**Diff sugerido:**
|
|
219
|
+
```diff
|
|
220
|
+
- const r = await fetch(stripeUrl, { method: 'POST', body })
|
|
221
|
+
+ const r = await fetch(stripeUrl, {
|
|
222
|
+
+ method: 'POST',
|
|
223
|
+
+ body,
|
|
224
|
+
+ signal: AbortSignal.timeout(2000),
|
|
225
|
+
+ })
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Esforço:** 5 min
|
|
229
|
+
|
|
230
|
+
[... outros P0]
|
|
231
|
+
|
|
232
|
+
## P1 — próximo sprint
|
|
233
|
+
[similar]
|
|
234
|
+
|
|
235
|
+
## P2 — best practice
|
|
236
|
+
[similar]
|
|
237
|
+
|
|
238
|
+
## Recomendações cross-cutting
|
|
239
|
+
|
|
240
|
+
1. Adicionar circuit breaker library (opossum) — afeta múltiplos arquivos
|
|
241
|
+
2. Adicionar saturation gauge centralizada via observability-instrumenter v1.9
|
|
242
|
+
3. Game day exercise — exercitar cascade em staging mensal
|
|
243
|
+
|
|
244
|
+
## Cross-suite
|
|
245
|
+
|
|
246
|
+
- Skill `four-golden-signals` (v1.10) — Saturation gauge é early warning
|
|
247
|
+
- Skill `retry-strategies` (v1.11) — detalhes de jitter
|
|
248
|
+
- Agent `golden-signals-instrumenter` (v1.10) — adicionar saturation
|
|
249
|
+
- Comando `/prr <service>` (v1.10) — Axe 4 verifica defesas
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
*Material-fonte: cap 22 livro Google SRE.*
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Step 5 — Output curto
|
|
256
|
+
|
|
257
|
+
```text
|
|
258
|
+
═══════════════════════════════════════════════════════════
|
|
259
|
+
CASCADING-FAILURES-AUDITOR · <target>
|
|
260
|
+
═══════════════════════════════════════════════════════════
|
|
261
|
+
|
|
262
|
+
## Score: [HIGH | MEDIUM | LOW]
|
|
263
|
+
|
|
264
|
+
P0 (fix imediato): <count>
|
|
265
|
+
P1 (próximo sprint): <count>
|
|
266
|
+
P2 (best practice): <count>
|
|
267
|
+
|
|
268
|
+
## Top 3 P0
|
|
269
|
+
1. src/orders/handler.ts:42 — fetch sem timeout
|
|
270
|
+
2. src/payments/retry.ts:18 — retry sem jitter
|
|
271
|
+
3. src/queue/processor.ts:67 — queue unbounded
|
|
272
|
+
|
|
273
|
+
## Output
|
|
274
|
+
<OUTPUT_PATH>
|
|
275
|
+
|
|
276
|
+
## Próximos passos
|
|
277
|
+
1. Aplicar patches P0 (este sprint)
|
|
278
|
+
2. /prr <service> — verificar Axe 4 (Capacity Planning)
|
|
279
|
+
3. Game day exercise para confirmar resilience
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## Quando NÃO invocar
|
|
283
|
+
|
|
284
|
+
- Serviço puramente local sem deps externas
|
|
285
|
+
- Função pura sem I/O
|
|
286
|
+
- Audit recente (< 30 dias) e nada mudou
|
|
287
|
+
- Repo de scripts (não serviço user-facing)
|
|
288
|
+
|
|
289
|
+
## Ver também
|
|
290
|
+
|
|
291
|
+
- [`cascading-failures`](../skills/cascading-failures/SKILL.md)
|
|
292
|
+
- [`retry-strategies`](../skills/retry-strategies/SKILL.md)
|
|
293
|
+
- [`load-shedding-graceful-degradation`](../skills/load-shedding-graceful-degradation/SKILL.md)
|
|
294
|
+
- [`four-golden-signals`](../skills/four-golden-signals/SKILL.md) (v1.10)
|
|
295
|
+
- [`load-shedding-instrumenter`](./load-shedding-instrumenter.md) — agent complementar (server-side patches)
|
|
296
|
+
- [`prr-conductor`](./prr-conductor.md) (v1.10 + patch v1.11) — Axe 4 consume este audit
|
|
297
|
+
- [`omm-auditor`](./omm-auditor.md) (v1.9 + patch v1.11) — Capacidade 1 consume
|
|
298
|
+
|
|
299
|
+
*Material-fonte: cap 22 livro Google SRE.*
|