@luanpdd/kit-mcp 1.27.0 → 1.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +168 -914
  3. package/gates/agent-no-recursive-dispatch.md +45 -11
  4. package/kit/COMANDOS.md +138 -138
  5. package/kit/README.md +76 -76
  6. package/kit/agents/advisor-researcher.md +106 -106
  7. package/kit/agents/assumptions-analyzer.md +107 -107
  8. package/kit/agents/audit-log-implementer.md +1 -1
  9. package/kit/agents/auditor-consistencia-isolamento.md +1 -1
  10. package/kit/agents/b2b-saas-architect.md +1 -1
  11. package/kit/agents/cascading-failures-auditor.md +1 -1
  12. package/kit/agents/codebase-mapper.md +768 -768
  13. package/kit/agents/crm-pipeline-implementer.md +1 -1
  14. package/kit/agents/debugger.md +813 -813
  15. package/kit/agents/detector-tenant-quente.md +1 -1
  16. package/kit/agents/evolution-go-integrator.md +1 -1
  17. package/kit/agents/example-reviewer.md +21 -21
  18. package/kit/agents/executor.md +564 -564
  19. package/kit/agents/integration-checker.md +200 -200
  20. package/kit/agents/invite-flow-implementer.md +1 -1
  21. package/kit/agents/legacy-characterizer.md +1 -1
  22. package/kit/agents/lgpd-compliance-auditor.md +1 -1
  23. package/kit/agents/multi-tenant-isolation-auditor.md +1 -1
  24. package/kit/agents/multi-tenant-rls-writer.md +1 -1
  25. package/kit/agents/nyquist-auditor.md +178 -178
  26. package/kit/agents/observability-coverage-auditor.md +1 -1
  27. package/kit/agents/org-onboarding-implementer.md +1 -1
  28. package/kit/agents/payload-capture-instrumenter.md +1 -1
  29. package/kit/agents/phase-researcher.md +696 -696
  30. package/kit/agents/plan-checker.md +272 -272
  31. package/kit/agents/planner.md +922 -922
  32. package/kit/agents/project-researcher.md +652 -652
  33. package/kit/agents/refactor-safety-auditor.md +1 -1
  34. package/kit/agents/research-synthesizer.md +245 -245
  35. package/kit/agents/roadmapper.md +677 -677
  36. package/kit/agents/seam-finder.md +1 -1
  37. package/kit/agents/shotgun-surgery-detector.md +1 -1
  38. package/kit/agents/supabase-branching-architect.md +1 -1
  39. package/kit/agents/supabase-cicd-pipeline-implementer.md +1 -1
  40. package/kit/agents/supabase-column-privileges-writer.md +1 -1
  41. package/kit/agents/supabase-migration-writer.md +1 -1
  42. package/kit/agents/supabase-rbac-implementer.md +1 -1
  43. package/kit/agents/supabase-rls-hardener.md +1 -1
  44. package/kit/agents/supabase-rls-writer.md +1 -1
  45. package/kit/agents/supabase-roles-implementer.md +1 -1
  46. package/kit/agents/super-admin-implementer.md +1 -1
  47. package/kit/agents/ui-auditor.md +437 -437
  48. package/kit/agents/ui-checker.md +302 -302
  49. package/kit/agents/ui-researcher.md +355 -355
  50. package/kit/agents/user-profiler.md +175 -175
  51. package/kit/agents/validador-evolucao-schema.md +1 -1
  52. package/kit/agents/verifier.md +728 -728
  53. package/kit/commands/adicionar-backlog.md +75 -75
  54. package/kit/commands/adicionar-fase.md +42 -42
  55. package/kit/commands/adicionar-tarefa.md +45 -45
  56. package/kit/commands/adicionar-testes.md +41 -41
  57. package/kit/commands/ajuda.md +21 -21
  58. package/kit/commands/atualizar.md +37 -37
  59. package/kit/commands/auditar-cascading.md +1 -1
  60. package/kit/commands/auditar-marco.md +179 -179
  61. package/kit/commands/auditar-observabilidade-cobertura.md +1 -1
  62. package/kit/commands/auditar-refactor.md +1 -1
  63. package/kit/commands/auditar-release.md +1 -1
  64. package/kit/commands/auditar-uat.md +23 -23
  65. package/kit/commands/autonomo.md +40 -40
  66. package/kit/commands/branch-pr.md +24 -24
  67. package/kit/commands/burn-rate-status.md +1 -1
  68. package/kit/commands/capturar-payloads.md +1 -1
  69. package/kit/commands/caracterizar.md +1 -1
  70. package/kit/commands/concluir-marco.md +247 -247
  71. package/kit/commands/configuracoes.md +36 -36
  72. package/kit/commands/dados-distribuidos.md +1 -1
  73. package/kit/commands/definir-perfil.md +10 -10
  74. package/kit/commands/depurar.md +190 -190
  75. package/kit/commands/detectar-duplicacao.md +1 -1
  76. package/kit/commands/discutir-fase.md +131 -131
  77. package/kit/commands/encontrar-seams.md +1 -1
  78. package/kit/commands/entrar-discord.md +17 -17
  79. package/kit/commands/estatisticas.md +18 -18
  80. package/kit/commands/example-greeting.md +33 -33
  81. package/kit/commands/executar-fase.md +58 -58
  82. package/kit/commands/expresso.md +56 -56
  83. package/kit/commands/fase-ui.md +34 -34
  84. package/kit/commands/fazer.md +57 -57
  85. package/kit/commands/fio.md +125 -125
  86. package/kit/commands/fluxos-trabalho.md +64 -64
  87. package/kit/commands/forense.md +176 -176
  88. package/kit/commands/gerenciador.md +38 -38
  89. package/kit/commands/inserir-fase.md +31 -31
  90. package/kit/commands/legacy.md +1 -1
  91. package/kit/commands/limpeza.md +17 -17
  92. package/kit/commands/listar-hipoteses-fase.md +45 -45
  93. package/kit/commands/listar-workspaces.md +18 -18
  94. package/kit/commands/load-shedding.md +1 -1
  95. package/kit/commands/mapear-codebase.md +70 -70
  96. package/kit/commands/multi-tenant.md +1 -1
  97. package/kit/commands/nota.md +33 -33
  98. package/kit/commands/novo-marco.md +43 -43
  99. package/kit/commands/novo-projeto.md +41 -41
  100. package/kit/commands/novo-workspace.md +43 -43
  101. package/kit/commands/pausar-trabalho.md +37 -37
  102. package/kit/commands/perfil-usuario.md +45 -45
  103. package/kit/commands/pesquisar-fase.md +195 -195
  104. package/kit/commands/planejar-fase.md +67 -67
  105. package/kit/commands/planejar-lacunas.md +33 -33
  106. package/kit/commands/plantar-ideia.md +25 -25
  107. package/kit/commands/progresso.md +24 -24
  108. package/kit/commands/proximo.md +30 -30
  109. package/kit/commands/publicar.md +490 -490
  110. package/kit/commands/rapido.md +35 -35
  111. package/kit/commands/reaplicar-patches.md +124 -124
  112. package/kit/commands/refactor-seguro.md +1 -1
  113. package/kit/commands/relatorio-sessao.md +19 -19
  114. package/kit/commands/remover-fase.md +31 -31
  115. package/kit/commands/remover-workspace.md +26 -26
  116. package/kit/commands/resumo-marco.md +50 -50
  117. package/kit/commands/retomar-trabalho.md +40 -40
  118. package/kit/commands/revisar-backlog.md +60 -60
  119. package/kit/commands/revisar-ui.md +32 -32
  120. package/kit/commands/revisar.md +37 -37
  121. package/kit/commands/saude.md +21 -21
  122. package/kit/commands/setup-notion.md +93 -93
  123. package/kit/commands/storytelling.md +1 -1
  124. package/kit/commands/supabase.md +1 -1
  125. package/kit/commands/sync-main.md +68 -68
  126. package/kit/commands/validar-fase.md +35 -35
  127. package/kit/commands/verificar-tarefas.md +44 -44
  128. package/kit/commands/verificar-trabalho.md +64 -64
  129. package/kit/file-manifest.json +90 -90
  130. package/kit/framework/bin/lib/commands.cjs +959 -959
  131. package/kit/framework/bin/lib/config.cjs +442 -442
  132. package/kit/framework/bin/lib/core.cjs +1230 -1230
  133. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  134. package/kit/framework/bin/lib/init.cjs +1442 -1442
  135. package/kit/framework/bin/lib/milestone.cjs +252 -252
  136. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  137. package/kit/framework/bin/lib/phase.cjs +888 -888
  138. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  139. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  140. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  141. package/kit/framework/bin/lib/security.cjs +382 -382
  142. package/kit/framework/bin/lib/state.cjs +1031 -1031
  143. package/kit/framework/bin/lib/template.cjs +222 -222
  144. package/kit/framework/bin/lib/uat.cjs +282 -282
  145. package/kit/framework/bin/lib/verify.cjs +888 -888
  146. package/kit/framework/bin/lib/workstream.cjs +491 -491
  147. package/kit/framework/bin/tools.cjs +918 -918
  148. package/kit/framework/commands/workstreams.md +63 -63
  149. package/kit/framework/references/checkpoints.md +778 -778
  150. package/kit/framework/references/continuation-format.md +249 -249
  151. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  152. package/kit/framework/references/git-integration.md +295 -295
  153. package/kit/framework/references/git-planning-commit.md +38 -38
  154. package/kit/framework/references/model-profile-resolution.md +36 -36
  155. package/kit/framework/references/model-profiles.md +139 -139
  156. package/kit/framework/references/phase-argument-parsing.md +61 -61
  157. package/kit/framework/references/planning-config.md +202 -202
  158. package/kit/framework/references/questioning.md +162 -162
  159. package/kit/framework/references/tdd.md +263 -263
  160. package/kit/framework/references/ui-brand.md +160 -160
  161. package/kit/framework/references/user-profiling.md +657 -657
  162. package/kit/framework/references/verification-patterns.md +612 -612
  163. package/kit/framework/references/workstream-flag.md +58 -58
  164. package/kit/framework/templates/DEBUG.md +164 -164
  165. package/kit/framework/templates/UAT.md +265 -265
  166. package/kit/framework/templates/UI-SPEC.md +100 -100
  167. package/kit/framework/templates/VALIDATION.md +76 -76
  168. package/kit/framework/templates/claude-md.md +122 -122
  169. package/kit/framework/templates/codebase/architecture.md +185 -185
  170. package/kit/framework/templates/codebase/concerns.md +205 -205
  171. package/kit/framework/templates/codebase/conventions.md +204 -204
  172. package/kit/framework/templates/codebase/integrations.md +192 -192
  173. package/kit/framework/templates/codebase/stack.md +158 -158
  174. package/kit/framework/templates/codebase/structure.md +199 -199
  175. package/kit/framework/templates/codebase/testing.md +301 -301
  176. package/kit/framework/templates/config.json +44 -44
  177. package/kit/framework/templates/context.md +352 -352
  178. package/kit/framework/templates/continue-here.md +78 -78
  179. package/kit/framework/templates/copilot-instructions.md +7 -7
  180. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  181. package/kit/framework/templates/dev-preferences.md +20 -20
  182. package/kit/framework/templates/discovery.md +146 -146
  183. package/kit/framework/templates/discussion-log.md +63 -63
  184. package/kit/framework/templates/milestone-archive.md +123 -123
  185. package/kit/framework/templates/milestone.md +115 -115
  186. package/kit/framework/templates/phase-prompt.md +610 -610
  187. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  188. package/kit/framework/templates/project.md +186 -186
  189. package/kit/framework/templates/requirements.md +231 -231
  190. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  191. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  192. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  193. package/kit/framework/templates/research-project/STACK.md +120 -120
  194. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  195. package/kit/framework/templates/research.md +419 -419
  196. package/kit/framework/templates/retrospective.md +54 -54
  197. package/kit/framework/templates/roadmap.md +202 -202
  198. package/kit/framework/templates/state.md +176 -176
  199. package/kit/framework/templates/summary-complex.md +59 -59
  200. package/kit/framework/templates/summary-minimal.md +41 -41
  201. package/kit/framework/templates/summary-standard.md +48 -48
  202. package/kit/framework/templates/summary.md +209 -209
  203. package/kit/framework/templates/user-profile.md +146 -146
  204. package/kit/framework/templates/user-setup.md +256 -256
  205. package/kit/framework/templates/verification-report.md +258 -258
  206. package/kit/framework/workflows/add-phase.md +112 -112
  207. package/kit/framework/workflows/add-tests.md +351 -351
  208. package/kit/framework/workflows/add-todo.md +158 -158
  209. package/kit/framework/workflows/audit-milestone.md +340 -340
  210. package/kit/framework/workflows/audit-uat.md +109 -109
  211. package/kit/framework/workflows/autonomous.md +891 -891
  212. package/kit/framework/workflows/check-todos.md +177 -177
  213. package/kit/framework/workflows/cleanup.md +152 -152
  214. package/kit/framework/workflows/complete-milestone.md +696 -696
  215. package/kit/framework/workflows/diagnose-issues.md +231 -231
  216. package/kit/framework/workflows/discovery-phase.md +289 -289
  217. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  218. package/kit/framework/workflows/discuss-phase.md +784 -784
  219. package/kit/framework/workflows/do.md +104 -104
  220. package/kit/framework/workflows/execute-phase.md +838 -838
  221. package/kit/framework/workflows/execute-plan.md +510 -510
  222. package/kit/framework/workflows/fast.md +102 -102
  223. package/kit/framework/workflows/forensics.md +265 -265
  224. package/kit/framework/workflows/health.md +181 -181
  225. package/kit/framework/workflows/help.md +619 -619
  226. package/kit/framework/workflows/insert-phase.md +130 -130
  227. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  228. package/kit/framework/workflows/list-workspaces.md +56 -56
  229. package/kit/framework/workflows/manager.md +362 -362
  230. package/kit/framework/workflows/map-codebase.md +377 -377
  231. package/kit/framework/workflows/milestone-summary.md +223 -223
  232. package/kit/framework/workflows/new-milestone.md +486 -486
  233. package/kit/framework/workflows/new-project.md +1159 -1159
  234. package/kit/framework/workflows/new-workspace.md +237 -237
  235. package/kit/framework/workflows/next.md +97 -97
  236. package/kit/framework/workflows/node-repair.md +92 -92
  237. package/kit/framework/workflows/note.md +156 -156
  238. package/kit/framework/workflows/pause-work.md +176 -176
  239. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  240. package/kit/framework/workflows/plan-phase.md +765 -765
  241. package/kit/framework/workflows/plant-seed.md +169 -169
  242. package/kit/framework/workflows/pr-branch.md +129 -129
  243. package/kit/framework/workflows/profile-user.md +450 -450
  244. package/kit/framework/workflows/progress.md +507 -507
  245. package/kit/framework/workflows/quick.md +757 -757
  246. package/kit/framework/workflows/remove-phase.md +155 -155
  247. package/kit/framework/workflows/remove-workspace.md +90 -90
  248. package/kit/framework/workflows/research-phase.md +82 -82
  249. package/kit/framework/workflows/resume-project.md +326 -326
  250. package/kit/framework/workflows/review.md +228 -228
  251. package/kit/framework/workflows/session-report.md +146 -146
  252. package/kit/framework/workflows/settings.md +283 -283
  253. package/kit/framework/workflows/ship.md +228 -228
  254. package/kit/framework/workflows/stats.md +60 -60
  255. package/kit/framework/workflows/transition.md +671 -671
  256. package/kit/framework/workflows/ui-phase.md +302 -302
  257. package/kit/framework/workflows/ui-review.md +165 -165
  258. package/kit/framework/workflows/update.md +323 -323
  259. package/kit/framework/workflows/validate-phase.md +174 -174
  260. package/kit/framework/workflows/verify-phase.md +252 -252
  261. package/kit/framework/workflows/verify-work.md +637 -637
  262. package/kit/hooks/check-update.js +118 -118
  263. package/kit/hooks/context-monitor.js +163 -163
  264. package/kit/hooks/prompt-guard.js +103 -103
  265. package/kit/hooks/statusline.js +125 -125
  266. package/kit/hooks/workflow-guard.js +101 -101
  267. package/kit/settings.json +45 -45
  268. package/kit/skills/ai-prompt-characterization/SKILL.md +1 -1
  269. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +1 -1
  270. package/kit/skills/audit-log-multi-tenant/SKILL.md +1 -1
  271. package/kit/skills/b2b-saas-architecture/SKILL.md +1 -1
  272. package/kit/skills/consistencia-leitura-replica/SKILL.md +1 -1
  273. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +1 -1
  274. package/kit/skills/escolha-modelo-consistencia/SKILL.md +1 -1
  275. package/kit/skills/evolucao-schema-compativel/SKILL.md +1 -1
  276. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +1 -1
  277. package/kit/skills/example-skill/SKILL.md +42 -42
  278. package/kit/skills/legacy-api-only-applications/SKILL.md +1 -1
  279. package/kit/skills/legacy-characterization-tests/SKILL.md +1 -1
  280. package/kit/skills/legacy-effect-analysis/SKILL.md +1 -1
  281. package/kit/skills/legacy-extract-class/SKILL.md +1 -1
  282. package/kit/skills/legacy-programming-by-difference/SKILL.md +1 -1
  283. package/kit/skills/legacy-seams-and-test-harness/SKILL.md +1 -1
  284. package/kit/skills/legacy-shotgun-surgery/SKILL.md +1 -1
  285. package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +1 -1
  286. package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +1 -1
  287. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +1 -1
  288. package/kit/skills/member-invite-flow/SKILL.md +1 -1
  289. package/kit/skills/member-management-react-shadcn/SKILL.md +1 -1
  290. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +1 -1
  291. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +1 -1
  292. package/kit/skills/org-onboarding-flow/SKILL.md +1 -1
  293. package/kit/skills/org-switcher-react-pattern/SKILL.md +1 -1
  294. package/kit/skills/permission-gate-react-pattern/SKILL.md +1 -1
  295. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +1 -1
  296. package/kit/skills/pre-refactor-characterization/SKILL.md +1 -1
  297. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +1 -1
  298. package/kit/skills/streams-eventos-cdc/SKILL.md +1 -1
  299. package/kit/skills/supabase-branching-workflow/SKILL.md +1 -1
  300. package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +1 -1
  301. package/kit/skills/supabase-column-level-security/SKILL.md +1 -1
  302. package/kit/skills/supabase-config-toml-remotes/SKILL.md +1 -1
  303. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +1 -1
  304. package/kit/skills/supabase-migration-repair/SKILL.md +1 -1
  305. package/kit/skills/supabase-migrations/SKILL.md +1 -1
  306. package/kit/skills/supabase-pgtap-testing/SKILL.md +1 -1
  307. package/kit/skills/supabase-postgres-roles/SKILL.md +1 -1
  308. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +1 -1
  309. package/kit/skills/supabase-rls-policies/SKILL.md +1 -1
  310. package/kit/skills/super-admin-platform-pattern/SKILL.md +1 -1
  311. package/kit/skills/tenant-quente-mitigacao/SKILL.md +1 -1
  312. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +1 -1
  313. package/package.json +63 -63
  314. package/src/cli/index.js +378 -6
  315. package/src/cli/render.js +7 -0
  316. package/src/core/kit.js +216 -216
  317. package/src/core/logger.js +170 -0
  318. package/src/core/notify.js +60 -0
  319. package/src/core/reflect.js +247 -247
  320. package/src/core/reverse-sync.js +372 -372
  321. package/src/core/sync.js +418 -418
  322. package/src/core/watch.js +121 -121
  323. package/src/mcp-server/index.js +276 -10
  324. package/src/mcp-server/roots.js +124 -0
@@ -1,101 +1,101 @@
1
- #!/usr/bin/env node
2
- // hook-version: 1.30.1
3
- // SEC-13-05: flush-before-exit category = A (stdout.write + immediate exit)
4
- // Fix applied: process.stdout.write(payload, () => process.exit(0)) on warning path.
5
- // framework Workflow Guard — PreToolUse hook
6
- // Detects when Claude attempts file edits outside a framework workflow context
7
- // (no active / command or Task subagent) and injects an advisory warning.
8
- //
9
- // This is a SOFT guard — it advises, not blocks. The edit still proceeds.
10
- // The warning nudges Claude to use /quick or /fast instead of
11
- // making direct edits that bypass state tracking.
12
- //
13
- // Enable via config: hooks.workflow_guard: true (default: false)
14
- // Only triggers on Write/Edit tool calls to non-.planning/ files.
15
-
16
- const fs = require('fs');
17
- const path = require('path');
18
-
19
- let input = '';
20
- const stdinTimeout = setTimeout(() => process.exit(0), 3000);
21
- process.stdin.setEncoding('utf8');
22
- process.stdin.on('data', chunk => input += chunk);
23
- process.stdin.on('end', () => {
24
- clearTimeout(stdinTimeout);
25
- try {
26
- const data = JSON.parse(input);
27
- const toolName = data.tool_name;
28
-
29
- // Only guard Write and Edit tool calls
30
- if (toolName !== 'Write' && toolName !== 'Edit') {
31
- process.exit(0);
32
- }
33
-
34
- // Check if we're inside a framework workflow (Task subagent or / command)
35
- // Subagents have a session_id that differs from the parent
36
- // and typically have a description field set by the orchestrator
37
- if (data.tool_input?.is_subagent || data.session_type === 'task') {
38
- process.exit(0);
39
- }
40
-
41
- // Check the file being edited
42
- const filePath = data.tool_input?.file_path || data.tool_input?.path || '';
43
-
44
- // Allow edits to .planning/ files (framework state management)
45
- if (filePath.includes('.planning/') || filePath.includes('.planning\\')) {
46
- process.exit(0);
47
- }
48
-
49
- // Allow edits to common config/docs files that don't need framework tracking
50
- const allowedPatterns = [
51
- /\.gitignore$/,
52
- /\.env/,
53
- /CLAUDE\.md$/,
54
- /AGENTS\.md$/,
55
- /GEMINI\.md$/,
56
- /settings\.json$/,
57
- ];
58
- if (allowedPatterns.some(p => p.test(filePath))) {
59
- process.exit(0);
60
- }
61
-
62
- // Check if workflow guard is enabled
63
- const cwd = data.cwd || process.cwd();
64
- const configPath = path.join(cwd, '.planning', 'config.json');
65
- if (fs.existsSync(configPath)) {
66
- try {
67
- const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
68
- if (!config.hooks?.workflow_guard) {
69
- process.exit(0); // Guard disabled (default)
70
- }
71
- } catch (e) {
72
- process.exit(0);
73
- }
74
- } else {
75
- process.exit(0); // No framework project — don't guard
76
- }
77
-
78
- // If we get here: framework project, guard enabled, file edit outside .planning/,
79
- // not in a subagent context. Inject advisory warning.
80
- const output = {
81
- hookSpecificOutput: {
82
- hookEventName: "PreToolUse",
83
- additionalContext: `⚠️ AVISO DE FLUXO DE TRABALHO: Você está editando ${path.basename(filePath)} diretamente sem um comando do framework. ` +
84
- 'Esta edição não será rastreada no STATE.md nem produzirá um SUMMARY.md. ' +
85
- 'Considere usar /fast para correções triviais ou /quick para mudanças maiores ' +
86
- 'para manter o rastreamento de estado do projeto. ' +
87
- 'Se isso for intencional (ex.: usuário solicitou explicitamente uma edição direta), prossiga normalmente.'
88
- }
89
- };
90
-
91
- // SEC-13-05: aguardar flush do stdout antes do exit. Sem callback, em
92
- // pipes lentos (CI/Windows/Git Bash) o JSON pode ser dropado quando o
93
- // process termina antes do kernel drenar o buffer.
94
- process.stdout.write(JSON.stringify(output), () => {
95
- process.exit(0);
96
- });
97
- } catch (e) {
98
- // Silent fail — never block tool execution
99
- process.exit(0);
100
- }
101
- });
1
+ #!/usr/bin/env node
2
+ // hook-version: 1.30.1
3
+ // SEC-13-05: flush-before-exit category = A (stdout.write + immediate exit)
4
+ // Fix applied: process.stdout.write(payload, () => process.exit(0)) on warning path.
5
+ // framework Workflow Guard — PreToolUse hook
6
+ // Detects when Claude attempts file edits outside a framework workflow context
7
+ // (no active / command or Task subagent) and injects an advisory warning.
8
+ //
9
+ // This is a SOFT guard — it advises, not blocks. The edit still proceeds.
10
+ // The warning nudges Claude to use /quick or /fast instead of
11
+ // making direct edits that bypass state tracking.
12
+ //
13
+ // Enable via config: hooks.workflow_guard: true (default: false)
14
+ // Only triggers on Write/Edit tool calls to non-.planning/ files.
15
+
16
+ const fs = require('fs');
17
+ const path = require('path');
18
+
19
+ let input = '';
20
+ const stdinTimeout = setTimeout(() => process.exit(0), 3000);
21
+ process.stdin.setEncoding('utf8');
22
+ process.stdin.on('data', chunk => input += chunk);
23
+ process.stdin.on('end', () => {
24
+ clearTimeout(stdinTimeout);
25
+ try {
26
+ const data = JSON.parse(input);
27
+ const toolName = data.tool_name;
28
+
29
+ // Only guard Write and Edit tool calls
30
+ if (toolName !== 'Write' && toolName !== 'Edit') {
31
+ process.exit(0);
32
+ }
33
+
34
+ // Check if we're inside a framework workflow (Task subagent or / command)
35
+ // Subagents have a session_id that differs from the parent
36
+ // and typically have a description field set by the orchestrator
37
+ if (data.tool_input?.is_subagent || data.session_type === 'task') {
38
+ process.exit(0);
39
+ }
40
+
41
+ // Check the file being edited
42
+ const filePath = data.tool_input?.file_path || data.tool_input?.path || '';
43
+
44
+ // Allow edits to .planning/ files (framework state management)
45
+ if (filePath.includes('.planning/') || filePath.includes('.planning\\')) {
46
+ process.exit(0);
47
+ }
48
+
49
+ // Allow edits to common config/docs files that don't need framework tracking
50
+ const allowedPatterns = [
51
+ /\.gitignore$/,
52
+ /\.env/,
53
+ /CLAUDE\.md$/,
54
+ /AGENTS\.md$/,
55
+ /GEMINI\.md$/,
56
+ /settings\.json$/,
57
+ ];
58
+ if (allowedPatterns.some(p => p.test(filePath))) {
59
+ process.exit(0);
60
+ }
61
+
62
+ // Check if workflow guard is enabled
63
+ const cwd = data.cwd || process.cwd();
64
+ const configPath = path.join(cwd, '.planning', 'config.json');
65
+ if (fs.existsSync(configPath)) {
66
+ try {
67
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
68
+ if (!config.hooks?.workflow_guard) {
69
+ process.exit(0); // Guard disabled (default)
70
+ }
71
+ } catch (e) {
72
+ process.exit(0);
73
+ }
74
+ } else {
75
+ process.exit(0); // No framework project — don't guard
76
+ }
77
+
78
+ // If we get here: framework project, guard enabled, file edit outside .planning/,
79
+ // not in a subagent context. Inject advisory warning.
80
+ const output = {
81
+ hookSpecificOutput: {
82
+ hookEventName: "PreToolUse",
83
+ additionalContext: `⚠️ AVISO DE FLUXO DE TRABALHO: Você está editando ${path.basename(filePath)} diretamente sem um comando do framework. ` +
84
+ 'Esta edição não será rastreada no STATE.md nem produzirá um SUMMARY.md. ' +
85
+ 'Considere usar /fast para correções triviais ou /quick para mudanças maiores ' +
86
+ 'para manter o rastreamento de estado do projeto. ' +
87
+ 'Se isso for intencional (ex.: usuário solicitou explicitamente uma edição direta), prossiga normalmente.'
88
+ }
89
+ };
90
+
91
+ // SEC-13-05: aguardar flush do stdout antes do exit. Sem callback, em
92
+ // pipes lentos (CI/Windows/Git Bash) o JSON pode ser dropado quando o
93
+ // process termina antes do kernel drenar o buffer.
94
+ process.stdout.write(JSON.stringify(output), () => {
95
+ process.exit(0);
96
+ });
97
+ } catch (e) {
98
+ // Silent fail — never block tool execution
99
+ process.exit(0);
100
+ }
101
+ });
package/kit/settings.json CHANGED
@@ -1,45 +1,45 @@
1
- {
2
- "permissions": {
3
- "allow": []
4
- },
5
- "hooks": {
6
- "SessionStart": [
7
- {
8
- "hooks": [
9
- {
10
- "type": "command",
11
- "command": "node .claude/hooks/check-update.js"
12
- }
13
- ]
14
- }
15
- ],
16
- "PostToolUse": [
17
- {
18
- "matcher": "Bash|Edit|Write|MultiEdit|Agent|Task",
19
- "hooks": [
20
- {
21
- "type": "command",
22
- "command": "node .claude/hooks/context-monitor.js",
23
- "timeout": 10
24
- }
25
- ]
26
- }
27
- ],
28
- "PreToolUse": [
29
- {
30
- "matcher": "Write|Edit",
31
- "hooks": [
32
- {
33
- "type": "command",
34
- "command": "node .claude/hooks/prompt-guard.js",
35
- "timeout": 5
36
- }
37
- ]
38
- }
39
- ]
40
- },
41
- "statusLine": {
42
- "type": "command",
43
- "command": "node .claude/hooks/statusline.js"
44
- }
45
- }
1
+ {
2
+ "permissions": {
3
+ "allow": []
4
+ },
5
+ "hooks": {
6
+ "SessionStart": [
7
+ {
8
+ "hooks": [
9
+ {
10
+ "type": "command",
11
+ "command": "node .claude/hooks/check-update.js"
12
+ }
13
+ ]
14
+ }
15
+ ],
16
+ "PostToolUse": [
17
+ {
18
+ "matcher": "Bash|Edit|Write|MultiEdit|Agent|Task",
19
+ "hooks": [
20
+ {
21
+ "type": "command",
22
+ "command": "node .claude/hooks/context-monitor.js",
23
+ "timeout": 10
24
+ }
25
+ ]
26
+ }
27
+ ],
28
+ "PreToolUse": [
29
+ {
30
+ "matcher": "Write|Edit",
31
+ "hooks": [
32
+ {
33
+ "type": "command",
34
+ "command": "node .claude/hooks/prompt-guard.js",
35
+ "timeout": 5
36
+ }
37
+ ]
38
+ }
39
+ ]
40
+ },
41
+ "statusLine": {
42
+ "type": "command",
43
+ "command": "node .claude/hooks/statusline.js"
44
+ }
45
+ }
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ai-prompt-characterization
3
- description: Use ao modificar prompt/tool LLM em produção — characterization de generations com temperature=0 + seed fixo + sanitização específica. Modernização 2026 sem precedente em 2004 — prompts são código legacy também.
3
+ description: Use ao modificar prompt/tool LLM em produção — characterization de generations com temperature=0 + seed fixo + sanitização específica. Modernização 2026 sem precedente em 2004
4
4
  ---
5
5
 
6
6
  # AI Prompt Characterization (Modernização)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: armadilhas-sistemas-distribuidos
3
- description: Use ao desenhar lógica que depende de relógio (expiração, TTL, ordenação por timestamp) ou distributed lock em Supabase — perigos clock skew (now() vs clock_timestamp() vs transaction_timestamp() semantics), fencing tokens canônicos para distributed locks (pg_advisory_xact_lock + sequence monotônico), GC pause / process pause + impacto split-brain, falhas parciais (timeout-based detection é falaciosa, phi accrual failure detector), modelos sistema (byzantine vs crash-stop vs crash-recovery — Supabase = crash-recovery).
3
+ description: Use ao desenhar lógica que depende de relógio (expiração, TTL, ordenação por timestamp) ou distributed lock em Supabase
4
4
  ---
5
5
 
6
6
  # Armadilhas de Sistemas Distribuídos — Clock Skew, Fencing Tokens, GC Pause, Falhas Parciais, Modelos de Sistema
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: audit-log-multi-tenant
3
- description: Use ao implementar audit log em B2B SaaS multi-tenant Supabase — tabela append-only (REVOKE DELETE/UPDATE), 7 event types canônicos, retention pg_cron 3 tiers (30d/90d/365d), legal_hold flag para LGPD erasure, PII sanitization (hash actor_email), tenant_id obrigatório indexed.
3
+ description: Use ao implementar audit log em B2B SaaS multi-tenant Supabase
4
4
  ---
5
5
 
6
6
  # Audit Log Multi-Tenant — Compliance + Forensics
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: b2b-saas-architecture
3
- description: Use ao desenhar app B2B multi-tenant (org→department→leader→collaborator) com Supabase + React — Single Schema + org_id + RLS é default; JWT minimal (super_admin: bool); 7 tabelas canônicas; slug imutável.
3
+ description: Use ao desenhar app B2B multi-tenant (org→department→leader→collaborator) com Supabase + React
4
4
  ---
5
5
 
6
6
  # B2B SaaS Multi-Tenant — Arquitetura Canônica
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: consistencia-leitura-replica
3
- description: Use ao usar Supabase read replicas via Supavisor (porta 6543) ou ao combinar Realtime broadcast + leitura DB — 3 problemas canônicos DDIA Ch 5 (read-after-write inconsistente, leituras não-monotônicas, prefixo causal violado), 3 soluções para Supabase (leitura no líder após escrita, sticky session por user_id, detecção stale via pg_last_wal_replay_lsn), padrão "ler o próprio broadcast" para evitar re-fetch após broadcast.
3
+ description: Use ao usar Supabase read replicas via Supavisor (porta 6543) ou ao combinar Realtime broadcast + leitura DB
4
4
  ---
5
5
 
6
6
  # Consistência Leitura Réplica — Supabase + Supavisor + Realtime
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: crm-lead-pipeline-patterns
3
- description: Use ao implementar CRM lead pipeline em B2B SaaS Supabase — 6 stages canônicos lead→qualified→proposal→negotiation→won|lost, trigger PG BEFORE UPDATE valida transições (CHECK constraint não basta), ownership transfer com notification+audit, lead dedup via unique(org_id, phone)+(org_id, email), integração WhatsApp lookup contact_phone.
3
+ description: Use ao implementar CRM lead pipeline em B2B SaaS Supabase — 6 stages canônicos lead→qualified→proposal→negotiation→won|lost, trigger PG BEFORE UPDATE valida transições (CHECK cons…
4
4
  ---
5
5
 
6
6
  # CRM Lead Pipeline — Patterns Canônicos
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: escolha-modelo-consistencia
3
- description: Use ao desenhar feature distribuída em Supabase decidindo o modelo de consistência — árvore de decisão linearizabilidade (uniqueness constraint cross-tenant, slug global) vs causal (chat, comentários) vs eventual (feed social, métricas), uniqueness via single-leader Postgres (UNIQUE constraint nativo, app-level UPDATE+SELECT é race), análogos total order broadcast em Postgres (logical replication slots, posição WAL, pg_logical_emit_message), CAP/PACELC mapeado ao real, limitações 2PC + alternativas modernas (sagas, transactional outbox).
3
+ description: Use ao desenhar feature distribuída em Supabase decidindo o modelo de consistência
4
4
  ---
5
5
 
6
6
  # Escolha de Modelo de Consistência — Decision Tree + Patterns Postgres
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: evolucao-schema-compativel
3
- description: Use ao escrever migration Postgres ou versionar contrato API Edge Function — padrão 3-passos (adicionar nullable → backfill em batches → impor NOT NULL), análogos Avro/Protobuf de schema evolution para Postgres (rename via view, alargamento seguro, mudança de default em coluna em uso), rolling upgrade client-side com JWT/session compat.
3
+ description: Use ao escrever migration Postgres ou versionar contrato API Edge Function
4
4
  ---
5
5
 
6
6
  # Evolução de Schema Compatível — Padrão 3-Passos + Rolling Upgrade
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: evolution-go-whatsapp-integration
3
- description: Use ao integrar Evolution Go (whatsmeow) ou Meta Cloud API com Supabase B2B multi-tenant — webhook handler com tenant_id no URL path, HMAC-SHA256 (Meta) ou API key + IP whitelist (Evolution Go), idempotência via unique(org_id, message_id), rate limit Meta 80 msg/s, throttle Evolution Go 1 msg/s.
3
+ description: Use ao integrar Evolution Go (whatsmeow) ou Meta Cloud API com Supabase B2B multi-tenant
4
4
  ---
5
5
 
6
6
  # Evolution Go + WhatsApp — Integração Multi-Tenant Supabase
@@ -1,42 +1,42 @@
1
- ---
2
- name: example-skill
3
- description: Example skill template. Replace with your own. Use when the user mentions "example", "demo", or asks how skills work.
4
- ---
5
-
6
- # Example skill
7
-
8
- This is the SKILL.md of an example skill. Skills are lightweight expertise
9
- packs that an LLM loads when its description matches the user's intent.
10
-
11
- ## When to use
12
-
13
- The frontmatter `description` is what triggers a skill. Be specific about
14
- *when* to use it, not just *what* it does.
15
-
16
- Example trigger phrases:
17
- - "show me an example skill"
18
- - "how do skills work"
19
- - "demo the skill loading"
20
-
21
- ## What this skill does
22
-
23
- When loaded, this skill instructs the LLM to:
24
-
25
- 1. Acknowledge that the example skill loaded.
26
- 2. Explain in one sentence what skills are.
27
- 3. Point the user at `kit/skills/<name>/SKILL.md` so they know where to author their own.
28
-
29
- ## References
30
-
31
- Optional `references/` folder next to this file can hold longer docs the LLM
32
- loads only when needed (saves context window). For example:
33
-
34
- ```
35
- kit/skills/example-skill/
36
- ├── SKILL.md (this file — always loaded when triggered)
37
- └── references/
38
- ├── advanced-usage.md
39
- └── api-reference.md
40
- ```
41
-
42
- Replace this whole folder with your own skill when ready.
1
+ ---
2
+ name: example-skill
3
+ description: Example skill template. Replace with your own. Use when the user mentions "example", "demo", or asks how skills work.
4
+ ---
5
+
6
+ # Example skill
7
+
8
+ This is the SKILL.md of an example skill. Skills are lightweight expertise
9
+ packs that an LLM loads when its description matches the user's intent.
10
+
11
+ ## When to use
12
+
13
+ The frontmatter `description` is what triggers a skill. Be specific about
14
+ *when* to use it, not just *what* it does.
15
+
16
+ Example trigger phrases:
17
+ - "show me an example skill"
18
+ - "how do skills work"
19
+ - "demo the skill loading"
20
+
21
+ ## What this skill does
22
+
23
+ When loaded, this skill instructs the LLM to:
24
+
25
+ 1. Acknowledge that the example skill loaded.
26
+ 2. Explain in one sentence what skills are.
27
+ 3. Point the user at `kit/skills/<name>/SKILL.md` so they know where to author their own.
28
+
29
+ ## References
30
+
31
+ Optional `references/` folder next to this file can hold longer docs the LLM
32
+ loads only when needed (saves context window). For example:
33
+
34
+ ```
35
+ kit/skills/example-skill/
36
+ ├── SKILL.md (this file — always loaded when triggered)
37
+ └── references/
38
+ ├── advanced-usage.md
39
+ └── api-reference.md
40
+ ```
41
+
42
+ Replace this whole folder with your own skill when ready.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: legacy-api-only-applications
3
- description: Use ao escrever ou refatorar código que é maioritariamente wrapper de API externa (cap 15 Feathers + Supabase Edge Functions). Adapter / anti-corruption layer canônico — interface mínima testável + adapter para API real.
3
+ description: Use ao escrever ou refatorar código que é maioritariamente wrapper de API externa (cap 15 Feathers + Supabase Edge Functions). Adapter / anti-corruption layer canônico
4
4
  ---
5
5
 
6
6
  # Legacy — API-Only Applications
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: legacy-characterization-tests
3
- description: Use ao refatorar código legado SEM testes prévios — characterization tests (cap 13 Feathers) capturam comportamento atual como golden snapshot, viram oracle imutável durante o refactor. Bloqueador para legacy refactor.
3
+ description: Use ao refatorar código legado SEM testes prévios — characterization tests (cap 13 Feathers) capturam comportamento atual como golden snapshot, viram oracle imutável durante o refactor.
4
4
  ---
5
5
 
6
6
  # Legacy — Characterization Tests
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: legacy-effect-analysis
3
- description: Use ao decidir quais testes escrever em código sem testes — effect sketch (cap 11-12 Feathers) rastreia propagação de efeitos do change point para inflection/pinch points onde 1 teste cobre N caminhos.
3
+ description: Use ao decidir quais testes escrever em código sem testes — effect sketch (cap 11-12 Feathers) rastreia propagação de efeitos do change point para inflection/pinch points onde 1 teste cob…
4
4
  ---
5
5
 
6
6
  # Legacy — Effect Analysis
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: legacy-extract-class
3
- description: Use ao identificar classes "muito grandes" (cap 20 Feathers) com responsibility hot spots — extract class para separar responsabilidades. Aplicado a domain classes Supabase (OrderService → OrderValidator + Repository + Notifier).
3
+ description: Use ao identificar classes "muito grandes" (cap 20 Feathers) com responsibility hot spots — extract class para separar responsabilidades.
4
4
  ---
5
5
 
6
6
  # Legacy — Extract Class
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: legacy-programming-by-difference
3
- description: Use ao adicionar comportamento variante a código legado via subclassing/composition (cap 8 Feathers) — ponte temporária quando refactor estrutural ainda não cabe. Modernização 2026 — feature flags + variants A/B como aplicação direta.
3
+ description: Use ao adicionar comportamento variante a código legado via subclassing/composition (cap 8 Feathers) — ponte temporária quando refactor estrutural ainda não cabe. Modernização 2026
4
4
  ---
5
5
 
6
6
  # Legacy — Programming by Difference
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: legacy-seams-and-test-harness
3
- description: Use ao identificar pontos de extensão (seams) em código não-testável e aplicar uma das ~24 dependency-breaking techniques (cap 25 Feathers) para colocar código sob test harness. Pré-requisito de characterization.
3
+ description: Use ao identificar pontos de extensão (seams) em código não-testável e aplicar uma das ~24 dependency-breaking techniques (cap 25 Feathers) para colocar código sob test harness.
4
4
  ---
5
5
 
6
6
  # Legacy — Seams & Test Harness
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: legacy-shotgun-surgery
3
- description: Use ao detectar mesma mudança espalhada em N lugares (cap 21 Feathers) — extract before modify para reduzir change point. Modernização 2026 — semantic search via embeddings detecta duplicação semântica que regex não pega.
3
+ description: Use ao detectar mesma mudança espalhada em N lugares (cap 21 Feathers) — extract before modify para reduzir change point. Modernização 2026
4
4
  ---
5
5
 
6
6
  # Legacy — Shotgun Surgery
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: legacy-sprout-wrap-techniques
3
- description: Use ao adicionar comportamento a código legado SEM tempo para colocar tudo sob test harness — Sprout Method, Sprout Class, Wrap Method, Wrap Class (cap 6 Feathers). Atalho seguro quando characterization custa demais.
3
+ description: Use ao adicionar comportamento a código legado SEM tempo para colocar tudo sob test harness — Sprout Method, Sprout Class, Wrap Method, Wrap Class (cap 6 Feathers).
4
4
  ---
5
5
 
6
6
  # Legacy — Sprout / Wrap Techniques
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: legacy-storytelling-naked-crc
3
- description: Use ao precisar entender codebase desconhecido antes de mudar (cap 16-17 Feathers) — telling the story + naked CRC sketches. Modernização 2026 — IA gera mental model em minutos vs horas de leitura manual.
3
+ description: Use ao precisar entender codebase desconhecido antes de mudar (cap 16-17 Feathers) — telling the story + naked CRC sketches. Modernização 2026
4
4
  ---
5
5
 
6
6
  # Legacy — Storytelling & Naked CRC
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: lgpd-multi-tenant-compliance
3
- description: Use ao implementar compliance LGPD (Lei 13.709/2018) per-tenant em B2B SaaS Supabase — 9 direitos Art. 18 com workflow per-org, DSR SLA 15 dias Art. 19 + alert pg_cron D-3, consent management granular default opt-out (Art. 8 §5), erasure via anonymization (não hard delete), cross-border config Brasil-UE adequacy jan/2026.
3
+ description: Use ao implementar compliance LGPD (Lei 13.709/2018) per-tenant em B2B SaaS Supabase — 9 direitos Art. 18 com workflow per-org, DSR SLA 15 dias Art.
4
4
  ---
5
5
 
6
6
  # LGPD Multi-Tenant Compliance — Lei 13.709/2018
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: member-invite-flow
3
- description: Use ao implementar invite de membros em B2B SaaS multi-tenant Supabase — token SHA-256 (raw enviado por email, hash no banco), TTL 7d single-use, state machine 5 estados, email-locked obrigatório, idempotência em accept via FOR UPDATE.
3
+ description: Use ao implementar invite de membros em B2B SaaS multi-tenant Supabase
4
4
  ---
5
5
 
6
6
  # Member Invite Flow — B2B SaaS Multi-Tenant
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: member-management-react-shadcn
3
- description: Use ao implementar UI de member management em B2B SaaS multi-tenant React + shadcn/ui — DataTable TanStack v8 para listar members com filtros, Dialog + Form para invite, Select para role assignment, DropdownMenu para ações por row, Avatar para identidade visual, Command palette para search. Composição canônica para painel admin.
3
+ description: Use ao implementar UI de member management em B2B SaaS multi-tenant React + shadcn/ui
4
4
  ---
5
5
 
6
6
  # Member Management — React + shadcn/ui
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: multi-tenant-performance-scaling
3
- description: Use ao escalar Postgres multi-tenant em Supabase — Supavisor transaction mode (porta 6543), partial indexes obrigatórios em colunas de RLS, helper functions STABLE, partitioning por org_id quando >50k rows/tenant, MVs per-tenant para query caching.
3
+ description: Use ao escalar Postgres multi-tenant em Supabase — Supavisor transaction mode (porta 6543), partial indexes obrigatórios em colunas de RLS, helper functions STABLE, partitioning por org_id
4
4
  ---
5
5
 
6
6
  # Multi-Tenant Performance & Scaling — Postgres + Supabase
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: multi-tenant-rls-hierarchy
3
- description: Use ao escrever RLS hierárquica multi-tenant (org→dept→role→permission→super-admin bypass) em Supabase. 4 helper functions PG canônicas em schema private (STABLE), policies compostas com PERMISSIVE para super_admin, herança dept→org via coalesce.
3
+ description: Use ao escrever RLS hierárquica multi-tenant (org→dept→role→permission→super-admin bypass) em Supabase.
4
4
  ---
5
5
 
6
6
  # Multi-Tenant RLS Hierarchy — Helper Functions + Policies
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: org-onboarding-flow
3
- description: Use ao implementar fluxo signup → criar org → primeiro admin → setup wizard em B2B SaaS Supabase. Atomicidade na criação (org + first member em 1 trx). Slug imutável + redirect trail. Setup wizard separado (não bloqueia signup).
3
+ description: Use ao implementar fluxo signup → criar org → primeiro admin → setup wizard em B2B SaaS Supabase. Atomicidade na criação (org + first member em 1 trx). Slug imutável + redirect trail.
4
4
  ---
5
5
 
6
6
  # Org Onboarding Flow — B2B SaaS Multi-Tenant
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: org-switcher-react-pattern
3
- description: Use ao implementar org switcher React em B2B SaaS multi-tenant — URL pattern /orgs/[slug]/ (Next.js App Router middleware) ou useParams() (Vite SPA + React Router v6), zustand v5 persist para active org context, validação slug → org_id ANTES de servir página, JWT stale strategy via supabase.auth.refreshSession() após role change.
3
+ description: Use ao implementar org switcher React em B2B SaaS multi-tenant — URL pattern /orgs/[slug]/ (Next.js App Router middleware) ou useParams() (Vite SPA + React Router v6), zustand v5 persist para act…
4
4
  ---
5
5
 
6
6
  # Org Switcher — React Pattern Multi-Tenant
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: permission-gate-react-pattern
3
- description: Use ao implementar permission gates React em B2B SaaS multi-tenant — CASL `@casl/ability` 6.8 + `@casl/react` 4.x para gates declarativos `<PermissionGate permission="leads:create">`, hook `usePermission(action, resource)`, anti-pattern explícito permission check só client (server-side enforcement obrigatório via RLS).
3
+ description: "Use ao implementar permission gates React em B2B SaaS multi-tenant"
4
4
  ---
5
5
 
6
6
  # Permission Gate — React Pattern (CASL)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: postgres-isolamento-concorrencia
3
- description: Use ao escrever transação Postgres com risco de race condition — 6 tipos canônicos (dirty read, dirty write, read skew, lost update, write skew, phantom read), árvore de decisão para isolation level (READ COMMITTED default 95% / REPEATABLE READ MVCC / SERIALIZABLE SSI), 3 padrões prevenção lost update (SELECT FOR UPDATE, atomic UPDATE com WHERE conditions, advisory_xact_lock), prevenção write skew via FOR UPDATE em rows lidas OU exclusion constraint OU SERIALIZABLE.
3
+ description: Use ao escrever transação Postgres com risco de race condition
4
4
  ---
5
5
 
6
6
  # Isolamento e Concorrência Postgres — 6 Race Conditions, Decision Tree, 3 Padrões para Lost Update