@luanpdd/kit-mcp 1.29.0 → 1.30.1

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 (331) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +168 -168
  3. package/gates/agent-no-recursive-dispatch.md +82 -82
  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 +313 -313
  9. package/kit/agents/auditor-consistencia-isolamento.md +413 -413
  10. package/kit/agents/b2b-saas-architect.md +156 -156
  11. package/kit/agents/cascading-failures-auditor.md +298 -298
  12. package/kit/agents/codebase-mapper.md +768 -768
  13. package/kit/agents/crm-pipeline-implementer.md +256 -256
  14. package/kit/agents/debugger.md +813 -813
  15. package/kit/agents/detector-tenant-quente.md +337 -337
  16. package/kit/agents/evolution-go-integrator.md +200 -200
  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 +189 -189
  21. package/kit/agents/legacy-characterizer.md +368 -368
  22. package/kit/agents/lgpd-compliance-auditor.md +295 -295
  23. package/kit/agents/multi-tenant-isolation-auditor.md +253 -253
  24. package/kit/agents/multi-tenant-rls-writer.md +340 -340
  25. package/kit/agents/nyquist-auditor.md +178 -178
  26. package/kit/agents/observability-coverage-auditor.md +315 -315
  27. package/kit/agents/org-onboarding-implementer.md +223 -223
  28. package/kit/agents/payload-capture-instrumenter.md +273 -273
  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 +404 -404
  34. package/kit/agents/research-synthesizer.md +245 -245
  35. package/kit/agents/roadmapper.md +677 -677
  36. package/kit/agents/seam-finder.md +359 -359
  37. package/kit/agents/shotgun-surgery-detector.md +349 -349
  38. package/kit/agents/supabase-branching-architect.md +562 -562
  39. package/kit/agents/supabase-cicd-pipeline-implementer.md +777 -777
  40. package/kit/agents/supabase-column-privileges-writer.md +399 -399
  41. package/kit/agents/supabase-edge-fn-tester.md +287 -0
  42. package/kit/agents/supabase-edge-fn-writer.md +239 -210
  43. package/kit/agents/supabase-migration-writer.md +385 -385
  44. package/kit/agents/supabase-rbac-implementer.md +392 -392
  45. package/kit/agents/supabase-realtime-implementer.md +363 -267
  46. package/kit/agents/supabase-rls-hardener.md +521 -521
  47. package/kit/agents/supabase-rls-writer.md +323 -323
  48. package/kit/agents/supabase-roles-implementer.md +355 -355
  49. package/kit/agents/super-admin-implementer.md +281 -281
  50. package/kit/agents/ui-auditor.md +437 -437
  51. package/kit/agents/ui-checker.md +302 -302
  52. package/kit/agents/ui-researcher.md +355 -355
  53. package/kit/agents/user-profiler.md +175 -175
  54. package/kit/agents/validador-evolucao-schema.md +335 -335
  55. package/kit/agents/verifier.md +728 -728
  56. package/kit/commands/adicionar-backlog.md +75 -75
  57. package/kit/commands/adicionar-fase.md +42 -42
  58. package/kit/commands/adicionar-tarefa.md +45 -45
  59. package/kit/commands/adicionar-testes.md +41 -41
  60. package/kit/commands/ajuda.md +21 -21
  61. package/kit/commands/atualizar.md +37 -37
  62. package/kit/commands/auditar-cascading.md +111 -111
  63. package/kit/commands/auditar-marco.md +179 -179
  64. package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
  65. package/kit/commands/auditar-refactor.md +219 -219
  66. package/kit/commands/auditar-release.md +109 -109
  67. package/kit/commands/auditar-uat.md +23 -23
  68. package/kit/commands/autonomo.md +40 -40
  69. package/kit/commands/branch-pr.md +24 -24
  70. package/kit/commands/burn-rate-status.md +408 -408
  71. package/kit/commands/capturar-payloads.md +193 -193
  72. package/kit/commands/caracterizar.md +212 -212
  73. package/kit/commands/concluir-marco.md +247 -247
  74. package/kit/commands/configuracoes.md +36 -36
  75. package/kit/commands/dados-distribuidos.md +188 -188
  76. package/kit/commands/definir-perfil.md +10 -10
  77. package/kit/commands/depurar.md +190 -190
  78. package/kit/commands/detectar-duplicacao.md +197 -197
  79. package/kit/commands/discutir-fase.md +131 -131
  80. package/kit/commands/encontrar-seams.md +136 -136
  81. package/kit/commands/entrar-discord.md +17 -17
  82. package/kit/commands/estatisticas.md +18 -18
  83. package/kit/commands/example-greeting.md +33 -33
  84. package/kit/commands/executar-fase.md +58 -58
  85. package/kit/commands/expresso.md +56 -56
  86. package/kit/commands/fase-ui.md +34 -34
  87. package/kit/commands/fazer.md +57 -57
  88. package/kit/commands/fio.md +125 -125
  89. package/kit/commands/fluxos-trabalho.md +64 -64
  90. package/kit/commands/forense.md +176 -176
  91. package/kit/commands/gerenciador.md +38 -38
  92. package/kit/commands/inserir-fase.md +31 -31
  93. package/kit/commands/legacy.md +263 -263
  94. package/kit/commands/limpeza.md +17 -17
  95. package/kit/commands/listar-hipoteses-fase.md +45 -45
  96. package/kit/commands/listar-workspaces.md +18 -18
  97. package/kit/commands/load-shedding.md +117 -117
  98. package/kit/commands/mapear-codebase.md +70 -70
  99. package/kit/commands/multi-tenant.md +163 -163
  100. package/kit/commands/nota.md +33 -33
  101. package/kit/commands/novo-marco.md +43 -43
  102. package/kit/commands/novo-projeto.md +41 -41
  103. package/kit/commands/novo-workspace.md +43 -43
  104. package/kit/commands/pausar-trabalho.md +37 -37
  105. package/kit/commands/perfil-usuario.md +45 -45
  106. package/kit/commands/pesquisar-fase.md +195 -195
  107. package/kit/commands/planejar-fase.md +67 -67
  108. package/kit/commands/planejar-lacunas.md +33 -33
  109. package/kit/commands/plantar-ideia.md +25 -25
  110. package/kit/commands/progresso.md +24 -24
  111. package/kit/commands/proximo.md +30 -30
  112. package/kit/commands/publicar.md +490 -490
  113. package/kit/commands/rapido.md +35 -35
  114. package/kit/commands/reaplicar-patches.md +124 -124
  115. package/kit/commands/refactor-seguro.md +321 -321
  116. package/kit/commands/relatorio-sessao.md +19 -19
  117. package/kit/commands/remover-fase.md +31 -31
  118. package/kit/commands/remover-workspace.md +26 -26
  119. package/kit/commands/resumo-marco.md +50 -50
  120. package/kit/commands/retomar-trabalho.md +40 -40
  121. package/kit/commands/revisar-backlog.md +60 -60
  122. package/kit/commands/revisar-ui.md +32 -32
  123. package/kit/commands/revisar.md +37 -37
  124. package/kit/commands/saude.md +21 -21
  125. package/kit/commands/setup-notion.md +93 -93
  126. package/kit/commands/storytelling.md +179 -179
  127. package/kit/commands/supabase.md +30 -7
  128. package/kit/commands/sync-main.md +68 -68
  129. package/kit/commands/validar-fase.md +35 -35
  130. package/kit/commands/verificar-tarefas.md +44 -44
  131. package/kit/commands/verificar-trabalho.md +64 -64
  132. package/kit/file-manifest.json +15 -8
  133. package/kit/framework/bin/lib/commands.cjs +959 -959
  134. package/kit/framework/bin/lib/config.cjs +442 -442
  135. package/kit/framework/bin/lib/core.cjs +1230 -1230
  136. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  137. package/kit/framework/bin/lib/init.cjs +1442 -1442
  138. package/kit/framework/bin/lib/milestone.cjs +252 -252
  139. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  140. package/kit/framework/bin/lib/phase.cjs +888 -888
  141. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  142. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  143. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  144. package/kit/framework/bin/lib/security.cjs +382 -382
  145. package/kit/framework/bin/lib/state.cjs +1031 -1031
  146. package/kit/framework/bin/lib/template.cjs +222 -222
  147. package/kit/framework/bin/lib/uat.cjs +282 -282
  148. package/kit/framework/bin/lib/verify.cjs +888 -888
  149. package/kit/framework/bin/lib/workstream.cjs +491 -491
  150. package/kit/framework/bin/tools.cjs +918 -918
  151. package/kit/framework/commands/workstreams.md +63 -63
  152. package/kit/framework/references/checkpoints.md +778 -778
  153. package/kit/framework/references/continuation-format.md +249 -249
  154. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  155. package/kit/framework/references/git-integration.md +295 -295
  156. package/kit/framework/references/git-planning-commit.md +38 -38
  157. package/kit/framework/references/model-profile-resolution.md +36 -36
  158. package/kit/framework/references/model-profiles.md +139 -139
  159. package/kit/framework/references/phase-argument-parsing.md +61 -61
  160. package/kit/framework/references/planning-config.md +202 -202
  161. package/kit/framework/references/questioning.md +162 -162
  162. package/kit/framework/references/tdd.md +263 -263
  163. package/kit/framework/references/ui-brand.md +160 -160
  164. package/kit/framework/references/user-profiling.md +657 -657
  165. package/kit/framework/references/verification-patterns.md +612 -612
  166. package/kit/framework/references/workstream-flag.md +58 -58
  167. package/kit/framework/templates/DEBUG.md +164 -164
  168. package/kit/framework/templates/UAT.md +265 -265
  169. package/kit/framework/templates/UI-SPEC.md +100 -100
  170. package/kit/framework/templates/VALIDATION.md +76 -76
  171. package/kit/framework/templates/claude-md.md +122 -122
  172. package/kit/framework/templates/codebase/architecture.md +185 -185
  173. package/kit/framework/templates/codebase/concerns.md +205 -205
  174. package/kit/framework/templates/codebase/conventions.md +204 -204
  175. package/kit/framework/templates/codebase/integrations.md +192 -192
  176. package/kit/framework/templates/codebase/stack.md +158 -158
  177. package/kit/framework/templates/codebase/structure.md +199 -199
  178. package/kit/framework/templates/codebase/testing.md +301 -301
  179. package/kit/framework/templates/config.json +44 -44
  180. package/kit/framework/templates/context.md +352 -352
  181. package/kit/framework/templates/continue-here.md +78 -78
  182. package/kit/framework/templates/copilot-instructions.md +7 -7
  183. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  184. package/kit/framework/templates/dev-preferences.md +20 -20
  185. package/kit/framework/templates/discovery.md +146 -146
  186. package/kit/framework/templates/discussion-log.md +63 -63
  187. package/kit/framework/templates/milestone-archive.md +123 -123
  188. package/kit/framework/templates/milestone.md +115 -115
  189. package/kit/framework/templates/phase-prompt.md +610 -610
  190. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  191. package/kit/framework/templates/project.md +186 -186
  192. package/kit/framework/templates/requirements.md +231 -231
  193. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  194. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  195. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  196. package/kit/framework/templates/research-project/STACK.md +120 -120
  197. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  198. package/kit/framework/templates/research.md +419 -419
  199. package/kit/framework/templates/retrospective.md +54 -54
  200. package/kit/framework/templates/roadmap.md +202 -202
  201. package/kit/framework/templates/state.md +176 -176
  202. package/kit/framework/templates/summary-complex.md +59 -59
  203. package/kit/framework/templates/summary-minimal.md +41 -41
  204. package/kit/framework/templates/summary-standard.md +48 -48
  205. package/kit/framework/templates/summary.md +209 -209
  206. package/kit/framework/templates/user-profile.md +146 -146
  207. package/kit/framework/templates/user-setup.md +256 -256
  208. package/kit/framework/templates/verification-report.md +258 -258
  209. package/kit/framework/workflows/add-phase.md +112 -112
  210. package/kit/framework/workflows/add-tests.md +351 -351
  211. package/kit/framework/workflows/add-todo.md +158 -158
  212. package/kit/framework/workflows/audit-milestone.md +340 -340
  213. package/kit/framework/workflows/audit-uat.md +109 -109
  214. package/kit/framework/workflows/autonomous.md +891 -891
  215. package/kit/framework/workflows/check-todos.md +177 -177
  216. package/kit/framework/workflows/cleanup.md +152 -152
  217. package/kit/framework/workflows/complete-milestone.md +696 -696
  218. package/kit/framework/workflows/diagnose-issues.md +231 -231
  219. package/kit/framework/workflows/discovery-phase.md +289 -289
  220. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  221. package/kit/framework/workflows/discuss-phase.md +784 -784
  222. package/kit/framework/workflows/do.md +104 -104
  223. package/kit/framework/workflows/execute-phase.md +838 -838
  224. package/kit/framework/workflows/execute-plan.md +510 -510
  225. package/kit/framework/workflows/fast.md +102 -102
  226. package/kit/framework/workflows/forensics.md +265 -265
  227. package/kit/framework/workflows/health.md +181 -181
  228. package/kit/framework/workflows/help.md +619 -619
  229. package/kit/framework/workflows/insert-phase.md +130 -130
  230. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  231. package/kit/framework/workflows/list-workspaces.md +56 -56
  232. package/kit/framework/workflows/manager.md +362 -362
  233. package/kit/framework/workflows/map-codebase.md +377 -377
  234. package/kit/framework/workflows/milestone-summary.md +223 -223
  235. package/kit/framework/workflows/new-milestone.md +486 -486
  236. package/kit/framework/workflows/new-project.md +1159 -1159
  237. package/kit/framework/workflows/new-workspace.md +237 -237
  238. package/kit/framework/workflows/next.md +97 -97
  239. package/kit/framework/workflows/node-repair.md +92 -92
  240. package/kit/framework/workflows/note.md +156 -156
  241. package/kit/framework/workflows/pause-work.md +176 -176
  242. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  243. package/kit/framework/workflows/plan-phase.md +765 -765
  244. package/kit/framework/workflows/plant-seed.md +169 -169
  245. package/kit/framework/workflows/pr-branch.md +129 -129
  246. package/kit/framework/workflows/profile-user.md +450 -450
  247. package/kit/framework/workflows/progress.md +507 -507
  248. package/kit/framework/workflows/quick.md +757 -757
  249. package/kit/framework/workflows/remove-phase.md +155 -155
  250. package/kit/framework/workflows/remove-workspace.md +90 -90
  251. package/kit/framework/workflows/research-phase.md +82 -82
  252. package/kit/framework/workflows/resume-project.md +326 -326
  253. package/kit/framework/workflows/review.md +228 -228
  254. package/kit/framework/workflows/session-report.md +146 -146
  255. package/kit/framework/workflows/settings.md +283 -283
  256. package/kit/framework/workflows/ship.md +228 -228
  257. package/kit/framework/workflows/stats.md +60 -60
  258. package/kit/framework/workflows/transition.md +671 -671
  259. package/kit/framework/workflows/ui-phase.md +302 -302
  260. package/kit/framework/workflows/ui-review.md +165 -165
  261. package/kit/framework/workflows/update.md +323 -323
  262. package/kit/framework/workflows/validate-phase.md +174 -174
  263. package/kit/framework/workflows/verify-phase.md +252 -252
  264. package/kit/framework/workflows/verify-work.md +637 -637
  265. package/kit/hooks/check-update.js +118 -118
  266. package/kit/hooks/context-monitor.js +163 -163
  267. package/kit/hooks/kit-attribution-reminder.cjs +98 -0
  268. package/kit/hooks/prompt-guard.js +103 -103
  269. package/kit/hooks/statusline.js +125 -125
  270. package/kit/hooks/workflow-guard.js +101 -101
  271. package/kit/settings.json +45 -45
  272. package/kit/skills/_shared-supabase/glossary.md +17 -0
  273. package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
  274. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
  275. package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
  276. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
  277. package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
  278. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
  279. package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
  280. package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
  281. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
  282. package/kit/skills/example-skill/SKILL.md +42 -42
  283. package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
  284. package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
  285. package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
  286. package/kit/skills/legacy-extract-class/SKILL.md +203 -203
  287. package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
  288. package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
  289. package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
  290. package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
  291. package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
  292. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
  293. package/kit/skills/member-invite-flow/SKILL.md +305 -305
  294. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
  295. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
  296. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
  297. package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
  298. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
  299. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
  300. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
  301. package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
  302. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
  303. package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
  304. package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
  305. package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
  306. package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
  307. package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
  308. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
  309. package/kit/skills/supabase-edge-functions/SKILL.md +229 -141
  310. package/kit/skills/supabase-edge-functions-auth/SKILL.md +309 -0
  311. package/kit/skills/supabase-edge-functions-limits/SKILL.md +302 -0
  312. package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +279 -0
  313. package/kit/skills/supabase-edge-functions-testing/SKILL.md +277 -0
  314. package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +357 -0
  315. package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
  316. package/kit/skills/supabase-migrations/SKILL.md +297 -297
  317. package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
  318. package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
  319. package/kit/skills/supabase-realtime/SKILL.md +460 -236
  320. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
  321. package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
  322. package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
  323. package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
  324. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
  325. package/package.json +1 -1
  326. package/src/core/kit.js +216 -216
  327. package/src/core/reflect.js +247 -247
  328. package/src/core/reverse-sync.js +372 -372
  329. package/src/core/sync.js +418 -418
  330. package/src/core/watch.js +121 -121
  331. package/src/mcp-server/index.js +715 -693
@@ -1,321 +1,321 @@
1
- ---
2
- name: refactor-seguro
3
- description: Orquestrador de refactor seguro — chain canônico encontrar-seams → caracterizar → auditar-refactor → executar. Suporta modos --mode=full|sprout|safe-extract|override.
4
- argument-hint: "<target_file> [--mode full|sprout|safe-extract|override] [--ticket REQ-N] [--reason \"...\"] [--skip-seams] [--skip-characterize]"
5
- allowed-tools:
6
- - Read
7
- - Write
8
- - Bash
9
- - Grep
10
- - Glob
11
- - Task
12
- - AskUserQuestion
13
- ---
14
-
15
- <objective>
16
- Orquestrar fluxo canônico de refactor seguro em código legado: (1) identificar seams + quebrar deps; (2) caracterizar comportamento; (3) auditar safety net; (4) executar refactor com cover-and-modify. Substitui o pattern edit-and-pray (cap 1 Feathers) por cover-and-modify, baseado em characterization tests como oracle.
17
-
18
- **Chain padrão (`--mode=full`):**
19
-
20
- ```
21
- seam-finder → legacy-characterizer → refactor-safety-auditor → executor
22
- (se necessário) (sempre) (gate) (refactor real)
23
- ```
24
-
25
- **Modos alternativos** (atalhos quando mudança não justifica chain completo):
26
- - `--mode=sprout` — usa `legacy-sprout-wrap-techniques`; legado intocado, comportamento adicionado em sprout testado isoladamente
27
- - `--mode=safe-extract` — refactor mecânico (rename, IDE-extract bloco contíguo); checklist signed-off + sem characterization
28
- - `--mode=override` — bypass com audit trail (--ticket + --reason obrigatórios)
29
-
30
- **Cria/Atualiza:**
31
- - Em modo full: `.planning/SEAM-ANALYSIS.md`, `tests/characterization/<file_stem>/`, `.planning/REFACTOR-SAFETY.md`
32
- - Em modo sprout: novo módulo + tests
33
- - Em modo safe-extract: refactor commit + checklist em `.planning/SAFE-EXTRACT-<file>.md`
34
- - Em modo override: `.planning/REFACTOR-SAFETY.md` com audit trail
35
-
36
- **Após:** o user terminou refactor com confiança proporcional ao nível de safety net adotado.
37
- </objective>
38
-
39
- <context>
40
- **Argumentos:**
41
- - `<target_file>` — caminho do arquivo a refatorar — OBRIGATÓRIO
42
- - `--mode <full|sprout|safe-extract|override>` — modo do orquestrador (default: `full`)
43
- - `--ticket REQ-N` — ticket linkado (obrigatório com `--mode=override`)
44
- - `--reason "<texto>"` — justificativa (obrigatória com `--mode=override`)
45
- - `--skip-seams` — pular seam-finder (assume deps já controláveis)
46
- - `--skip-characterize` — pular caracterizar (assume safety net já existe)
47
- - `--symbol <name>` — escopo limitado a símbolo específico
48
- - `--feature-description "<texto>"` — em mode=sprout, descreve feature a adicionar
49
-
50
- **Modos detalhados:**
51
-
52
- ```
53
- --mode=full (default)
54
- =====================
55
- 1. /encontrar-seams <file> (se necessário, deps externas presentes)
56
- 2. Aplicar técnicas de break-deps (commits 1-N, manual ou via executor)
57
- 3. /caracterizar <file> (gera safety net)
58
- 4. /auditar-refactor <file> (gate retorna GO)
59
- 5. Refactor real (cover-and-modify, suite verde a cada commit)
60
- 6. Re-rodar suite final (regressão = 0)
61
-
62
- --mode=sprout
63
- =============
64
- 1. AskUserQuestion para feature description
65
- 2. Aplicar legacy-sprout-wrap-techniques
66
- 3. Gerar sprout method/class testável
67
- 4. Conectar ao legado em 1-2 linhas
68
- 5. Tests do sprout (100% cobertura no novo)
69
- 6. PR criado com TODO de débito técnico (legado ainda untested)
70
-
71
- --mode=safe-extract
72
- ====================
73
- 1. Validar checklist canônico:
74
- - Bloco a extrair é CONTÍGUO?
75
- - Sem control flow saindo do meio (return/throw/break)?
76
- - Variáveis lidas/escritas mapeadas?
77
- - Sem mover lógica entre escopos?
78
- 2. Aplicar refactor IDE-assisted
79
- 3. Compilação verde + smoke run
80
- 4. PR com SAFE-EXTRACT-<file>.md como artefato
81
-
82
- --mode=override
83
- ================
84
- 1. Validar --ticket E --reason
85
- 2. Auditoria do refactor-safety-auditor com flag override
86
- 3. Audit trail registrado em REFACTOR-SAFETY.md
87
- 4. Refactor pode prosseguir SEM characterization
88
- 5. Débito técnico documentado no ticket
89
- ```
90
-
91
- **Exemplos:**
92
- ```
93
- /refactor-seguro src/orders/handler.ts # full chain (recomendado)
94
- /refactor-seguro src/orders/handler.ts --mode=sprout # adicionar feature sem tocar legado
95
- /refactor-seguro src/orders/handler.ts --mode=safe-extract # rename/extract mecânico
96
- /refactor-seguro src/orders/handler.ts --mode=override \
97
- --ticket REQ-2026-Q2-1234 --reason "hot fix SEV1, char em REQ-...1235"
98
- /refactor-seguro src/orders/handler.ts --skip-seams # deps já testáveis
99
- /refactor-seguro src/orders/handler.ts --symbol processOrder # método específico
100
- ```
101
-
102
- **Quando este comando é o caminho certo:**
103
- - Você vai modificar arquivo > 200 linhas com cobertura < 60%
104
- - Webhook/API/Edge Function precisa refactor (contrato externo)
105
- - Equipe quer disciplina cover-and-modify em vez de edit-and-pray
106
- - `/discutir-fase` ou `/planejar-fase` detectaram refactor intent
107
-
108
- **Quando NÃO é o caminho:**
109
- - Bug fix → use TDD direto (escrever test do comportamento correto, depois fix)
110
- - Feature nova em código novo → use `/discutir-fase` + `/planejar-fase` normais
111
- - Arquivo trivial → refactor inline sem ceremonial
112
- </context>
113
-
114
- <process>
115
-
116
- ## 1. Parsear argumentos + validações
117
-
118
- ```bash
119
- TARGET_FILE=$(echo "$ARGUMENTS" | awk '{print $1}')
120
- MODE=$(echo "$ARGUMENTS" | grep -oE -- '--mode[= ][^ ]+' | sed 's/--mode[= ]//')
121
- TICKET=$(echo "$ARGUMENTS" | grep -oE -- '--ticket [^ ]+' | awk '{print $2}')
122
- REASON=$(echo "$ARGUMENTS" | grep -oE -- '--reason "[^"]+"' | sed 's/--reason "\(.*\)"/\1/')
123
- SYMBOL=$(echo "$ARGUMENTS" | grep -oE -- '--symbol [^ ]+' | awk '{print $2}')
124
- FEATURE_DESC=$(echo "$ARGUMENTS" | grep -oE -- '--feature-description "[^"]+"' | sed 's/--feature-description "\(.*\)"/\1/')
125
- SKIP_SEAMS=false
126
- SKIP_CHAR=false
127
-
128
- echo "$ARGUMENTS" | grep -qE -- '--skip-seams' && SKIP_SEAMS=true
129
- echo "$ARGUMENTS" | grep -qE -- '--skip-characterize' && SKIP_CHAR=true
130
-
131
- [ -z "$MODE" ] && MODE="full"
132
-
133
- if [ -z "$TARGET_FILE" ]; then
134
- echo "ERROR: target_file é obrigatório."
135
- echo "Uso: /refactor-seguro <target_file> [opções]"
136
- exit 1
137
- fi
138
-
139
- if [ ! -f "$TARGET_FILE" ]; then
140
- echo "ERROR: arquivo não encontrado: $TARGET_FILE"
141
- exit 1
142
- fi
143
-
144
- # PT-BR: validações por mode
145
- case "$MODE" in
146
- full|sprout|safe-extract|override) ;;
147
- *)
148
- echo "ERROR: --mode inválido: $MODE"
149
- echo "Valores válidos: full, sprout, safe-extract, override"
150
- exit 1
151
- ;;
152
- esac
153
-
154
- if [ "$MODE" = "override" ]; then
155
- if [ -z "$TICKET" ] || [ -z "$REASON" ]; then
156
- echo "ERROR: --mode=override requer --ticket REQ-N E --reason \"<texto>\"."
157
- exit 1
158
- fi
159
- fi
160
- ```
161
-
162
- ## 2. Roteamento por mode
163
-
164
- ### Mode=full (default chain)
165
-
166
- ```text
167
- Step 1 — Seam analysis (skip se --skip-seams)
168
- /encontrar-seams ${TARGET_FILE} ${SYMBOL:+--symbol $SYMBOL}
169
- → produz .planning/SEAM-ANALYSIS.md
170
- → user aplica técnicas (commits 1-N)
171
-
172
- Step 2 — Verificar suite verde após break-deps
173
- Run test suite, abort se vermelho
174
-
175
- Step 3 — Characterization (skip se --skip-characterize)
176
- /caracterizar ${TARGET_FILE} ${SYMBOL:+--symbol $SYMBOL}
177
- → produz tests/characterization/<file_stem>/
178
- → user revisa snapshots manualmente
179
- → user commita como `chore: characterize <file_stem>`
180
-
181
- Step 4 — Audit do safety net
182
- /auditar-refactor ${TARGET_FILE} --change-kind=refactor
183
- → produz .planning/REFACTOR-SAFETY.md com veredito GO/WARN/BLOCK
184
- → SE BLOCK ainda → loop de volta para step 3 (com --gap-fill)
185
- → SE GO → prossegue
186
-
187
- Step 5 — Refactor real
188
- Delegar para executor OR prompt user para refactor manual
189
- Após cada commit: rodar suite (verde)
190
- Após cada commit: characterization tests (verdes — comportamento preservado)
191
-
192
- Step 6 — Verificação final
193
- Suite verde
194
- Characterization VERDE (regressão = 0)
195
- Mutation kill ≥ 70% (validar safety net)
196
- PR pode ser aberto
197
- ```
198
-
199
- ### Mode=sprout
200
-
201
- ```text
202
- Step 1 — Coletar feature description
203
- Se $FEATURE_DESC vazio → AskUserQuestion:
204
- "Descreva a feature a ser adicionada (será encapsulada em sprout):"
205
-
206
- Step 2 — Aplicar legacy-sprout-wrap-techniques
207
- Decision: sprout method vs sprout class vs wrap method vs wrap class
208
- - feature ≤ 30 linhas, 1 responsabilidade → sprout method
209
- - feature > 30 linhas OR multi-responsibility → sprout class
210
- - feature transforma input/output do legado inteiro → wrap method
211
- - feature atravessa N métodos da classe → wrap class
212
-
213
- Step 3 — Gerar sprout
214
- Criar arquivo novo (sprout module) com lógica testável
215
- DI explícita para qualquer dep
216
-
217
- Step 4 — Conectar ao legado em 1-2 linhas
218
- Inserir chamada ao sprout no legado
219
- Comment canônico: [legacy-debt #issue-N] sprout — <descrição>
220
-
221
- Step 5 — Tests do sprout (100% cobertura)
222
- Escrever 5+ tests cobrindo grupos de equivalência
223
- Mutation testing no sprout (não no legado)
224
-
225
- Step 6 — PR
226
- Diff esperado: arquivo novo + 1-2 linhas no legado
227
- README/CHANGELOG atualizado se aplicável
228
- Ticket de débito técnico criado se ainda não existia
229
- ```
230
-
231
- ### Mode=safe-extract
232
-
233
- ```text
234
- Step 1 — Validar checklist canônico
235
- AskUserQuestion ou inline-confirm:
236
- □ Bloco a extrair é CONTÍGUO? (não pode ter return/throw/break/continue saindo)
237
- □ Variáveis lidas dentro mas declaradas fora → parâmetros (in)?
238
- □ Variáveis escritas dentro mas usadas fora → return values (out)?
239
- □ NÃO move lógica entre escopos? (sem move method)
240
- □ NÃO muda control flow? (sem inverter ifs, sem early return novo)
241
- □ NÃO modifica sintaxe além de extract/rename?
242
- Qualquer NÃO → veto, voltar para mode=full
243
-
244
- Step 2 — Identificar refactor IDE-assisted
245
- Se Cursor/VS Code/IntelliJ disponível → usar Refactor → Extract Function/Method/Variable
246
- Caso contrário → manual mas mecânico
247
-
248
- Step 3 — Aplicar refactor (commits single-goal)
249
- Após cada commit: compilação verde
250
- Após cada commit: smoke run (qualquer comando que rodava antes)
251
-
252
- Step 4 — Output checklist signed-off
253
- Escrever .planning/SAFE-EXTRACT-<file_stem>.md com:
254
- - Checklist canônico (todos os itens marcados)
255
- - Lista de commits (cada um single-goal)
256
- - Validação de comportamento (smoke verde)
257
- ```
258
-
259
- ### Mode=override
260
-
261
- ```text
262
- Step 1 — Validar --ticket E --reason (já feito acima)
263
-
264
- Step 2 — Auditar com flag override
265
- /auditar-refactor ${TARGET_FILE} \
266
- --change-kind=override \
267
- --ticket ${TICKET} \
268
- --reason "${REASON}"
269
- → audit trail registrado em REFACTOR-SAFETY.md
270
-
271
- Step 3 — Refactor pode prosseguir
272
- Output:
273
- ⚠ MODE=OVERRIDE — refactor sem characterization
274
- Ticket: ${TICKET}
275
- Reason: ${REASON}
276
- Audit trail: .planning/REFACTOR-SAFETY.md
277
-
278
- Você aceitou o débito técnico. Refactor pode iniciar AGORA.
279
- Lembre-se: regressão silenciosa em prod é responsabilidade do owner do ticket.
280
- ```
281
-
282
- ## 3. Output canônico
283
-
284
- ```
285
- ═══════════════════════════════════════════════════════════
286
- framework ► REFACTOR-SEGURO ▸ ${TARGET_FILE} (mode: ${MODE})
287
- ═══════════════════════════════════════════════════════════
288
-
289
- [output específico do mode escolhido]
290
-
291
- ## Sumário do que foi feito
292
-
293
- | Step | Ação | Output |
294
- |---|---|---|
295
- | 1 | Seam analysis | .planning/SEAM-ANALYSIS.md |
296
- | 2 | Characterization | tests/characterization/<file_stem>/ |
297
- | 3 | Safety audit | .planning/REFACTOR-SAFETY.md (veredito: GO) |
298
- | 4 | Refactor | <commits sequenciais> |
299
- | 5 | Verificação final | suite verde, mutation kill ≥ 70% |
300
-
301
- ## Cross-suite
302
-
303
- - **/instrumentar-fase** (v1.9) — adicionar instrumentação para detectar regressão precoce em prod via golden signals
304
- - **/burn-rate-status** (v1.9) — monitor SLO budget pós-deploy do refactor
305
- - **/prr** (v1.10) — PRR Axe 5 (Change Management) — invoque após refactor para validar production-readiness
306
- - **/postmortem** (v1.10) — pronto para usar se algo regredir em prod (audit trail completo via REFACTOR-SAFETY.md)
307
- - **/concluir-marco** — gate `legacy-refactor-safety` (opt-in) bloqueia close se há refactors com mode=override sem ticket close
308
- ```
309
-
310
- </process>
311
-
312
- <success_criteria>
313
- - [ ] $ARGUMENTS parseados (target_file obrigatório, --mode opcional com 4 valores)
314
- - [ ] Validações por mode aplicadas (override → ticket + reason; safe-extract → checklist)
315
- - [ ] Mode=full executa chain canônico (seam-finder → characterizer → safety-auditor → refactor)
316
- - [ ] Mode=sprout aplica legacy-sprout-wrap-techniques + AskUserQuestion para feature
317
- - [ ] Mode=safe-extract valida checklist + commits single-goal
318
- - [ ] Mode=override registra audit trail completo via refactor-safety-auditor
319
- - [ ] Steps 1-5 e cross-suite documentados no output
320
- - [ ] Each sub-comando invocado via syntax canônica (`/encontrar-seams`, `/caracterizar`, `/auditar-refactor`)
321
- </success_criteria>
1
+ ---
2
+ name: refactor-seguro
3
+ description: Orquestrador de refactor seguro — chain canônico encontrar-seams → caracterizar → auditar-refactor → executar. Suporta modos --mode=full|sprout|safe-extract|override.
4
+ argument-hint: "<target_file> [--mode full|sprout|safe-extract|override] [--ticket REQ-N] [--reason \"...\"] [--skip-seams] [--skip-characterize]"
5
+ allowed-tools:
6
+ - Read
7
+ - Write
8
+ - Bash
9
+ - Grep
10
+ - Glob
11
+ - Task
12
+ - AskUserQuestion
13
+ ---
14
+
15
+ <objective>
16
+ Orquestrar fluxo canônico de refactor seguro em código legado: (1) identificar seams + quebrar deps; (2) caracterizar comportamento; (3) auditar safety net; (4) executar refactor com cover-and-modify. Substitui o pattern edit-and-pray (cap 1 Feathers) por cover-and-modify, baseado em characterization tests como oracle.
17
+
18
+ **Chain padrão (`--mode=full`):**
19
+
20
+ ```
21
+ seam-finder → legacy-characterizer → refactor-safety-auditor → executor
22
+ (se necessário) (sempre) (gate) (refactor real)
23
+ ```
24
+
25
+ **Modos alternativos** (atalhos quando mudança não justifica chain completo):
26
+ - `--mode=sprout` — usa `legacy-sprout-wrap-techniques`; legado intocado, comportamento adicionado em sprout testado isoladamente
27
+ - `--mode=safe-extract` — refactor mecânico (rename, IDE-extract bloco contíguo); checklist signed-off + sem characterization
28
+ - `--mode=override` — bypass com audit trail (--ticket + --reason obrigatórios)
29
+
30
+ **Cria/Atualiza:**
31
+ - Em modo full: `.planning/SEAM-ANALYSIS.md`, `tests/characterization/<file_stem>/`, `.planning/REFACTOR-SAFETY.md`
32
+ - Em modo sprout: novo módulo + tests
33
+ - Em modo safe-extract: refactor commit + checklist em `.planning/SAFE-EXTRACT-<file>.md`
34
+ - Em modo override: `.planning/REFACTOR-SAFETY.md` com audit trail
35
+
36
+ **Após:** o user terminou refactor com confiança proporcional ao nível de safety net adotado.
37
+ </objective>
38
+
39
+ <context>
40
+ **Argumentos:**
41
+ - `<target_file>` — caminho do arquivo a refatorar — OBRIGATÓRIO
42
+ - `--mode <full|sprout|safe-extract|override>` — modo do orquestrador (default: `full`)
43
+ - `--ticket REQ-N` — ticket linkado (obrigatório com `--mode=override`)
44
+ - `--reason "<texto>"` — justificativa (obrigatória com `--mode=override`)
45
+ - `--skip-seams` — pular seam-finder (assume deps já controláveis)
46
+ - `--skip-characterize` — pular caracterizar (assume safety net já existe)
47
+ - `--symbol <name>` — escopo limitado a símbolo específico
48
+ - `--feature-description "<texto>"` — em mode=sprout, descreve feature a adicionar
49
+
50
+ **Modos detalhados:**
51
+
52
+ ```
53
+ --mode=full (default)
54
+ =====================
55
+ 1. /encontrar-seams <file> (se necessário, deps externas presentes)
56
+ 2. Aplicar técnicas de break-deps (commits 1-N, manual ou via executor)
57
+ 3. /caracterizar <file> (gera safety net)
58
+ 4. /auditar-refactor <file> (gate retorna GO)
59
+ 5. Refactor real (cover-and-modify, suite verde a cada commit)
60
+ 6. Re-rodar suite final (regressão = 0)
61
+
62
+ --mode=sprout
63
+ =============
64
+ 1. AskUserQuestion para feature description
65
+ 2. Aplicar legacy-sprout-wrap-techniques
66
+ 3. Gerar sprout method/class testável
67
+ 4. Conectar ao legado em 1-2 linhas
68
+ 5. Tests do sprout (100% cobertura no novo)
69
+ 6. PR criado com TODO de débito técnico (legado ainda untested)
70
+
71
+ --mode=safe-extract
72
+ ====================
73
+ 1. Validar checklist canônico:
74
+ - Bloco a extrair é CONTÍGUO?
75
+ - Sem control flow saindo do meio (return/throw/break)?
76
+ - Variáveis lidas/escritas mapeadas?
77
+ - Sem mover lógica entre escopos?
78
+ 2. Aplicar refactor IDE-assisted
79
+ 3. Compilação verde + smoke run
80
+ 4. PR com SAFE-EXTRACT-<file>.md como artefato
81
+
82
+ --mode=override
83
+ ================
84
+ 1. Validar --ticket E --reason
85
+ 2. Auditoria do refactor-safety-auditor com flag override
86
+ 3. Audit trail registrado em REFACTOR-SAFETY.md
87
+ 4. Refactor pode prosseguir SEM characterization
88
+ 5. Débito técnico documentado no ticket
89
+ ```
90
+
91
+ **Exemplos:**
92
+ ```
93
+ /refactor-seguro src/orders/handler.ts # full chain (recomendado)
94
+ /refactor-seguro src/orders/handler.ts --mode=sprout # adicionar feature sem tocar legado
95
+ /refactor-seguro src/orders/handler.ts --mode=safe-extract # rename/extract mecânico
96
+ /refactor-seguro src/orders/handler.ts --mode=override \
97
+ --ticket REQ-2026-Q2-1234 --reason "hot fix SEV1, char em REQ-...1235"
98
+ /refactor-seguro src/orders/handler.ts --skip-seams # deps já testáveis
99
+ /refactor-seguro src/orders/handler.ts --symbol processOrder # método específico
100
+ ```
101
+
102
+ **Quando este comando é o caminho certo:**
103
+ - Você vai modificar arquivo > 200 linhas com cobertura < 60%
104
+ - Webhook/API/Edge Function precisa refactor (contrato externo)
105
+ - Equipe quer disciplina cover-and-modify em vez de edit-and-pray
106
+ - `/discutir-fase` ou `/planejar-fase` detectaram refactor intent
107
+
108
+ **Quando NÃO é o caminho:**
109
+ - Bug fix → use TDD direto (escrever test do comportamento correto, depois fix)
110
+ - Feature nova em código novo → use `/discutir-fase` + `/planejar-fase` normais
111
+ - Arquivo trivial → refactor inline sem ceremonial
112
+ </context>
113
+
114
+ <process>
115
+
116
+ ## 1. Parsear argumentos + validações
117
+
118
+ ```bash
119
+ TARGET_FILE=$(echo "$ARGUMENTS" | awk '{print $1}')
120
+ MODE=$(echo "$ARGUMENTS" | grep -oE -- '--mode[= ][^ ]+' | sed 's/--mode[= ]//')
121
+ TICKET=$(echo "$ARGUMENTS" | grep -oE -- '--ticket [^ ]+' | awk '{print $2}')
122
+ REASON=$(echo "$ARGUMENTS" | grep -oE -- '--reason "[^"]+"' | sed 's/--reason "\(.*\)"/\1/')
123
+ SYMBOL=$(echo "$ARGUMENTS" | grep -oE -- '--symbol [^ ]+' | awk '{print $2}')
124
+ FEATURE_DESC=$(echo "$ARGUMENTS" | grep -oE -- '--feature-description "[^"]+"' | sed 's/--feature-description "\(.*\)"/\1/')
125
+ SKIP_SEAMS=false
126
+ SKIP_CHAR=false
127
+
128
+ echo "$ARGUMENTS" | grep -qE -- '--skip-seams' && SKIP_SEAMS=true
129
+ echo "$ARGUMENTS" | grep -qE -- '--skip-characterize' && SKIP_CHAR=true
130
+
131
+ [ -z "$MODE" ] && MODE="full"
132
+
133
+ if [ -z "$TARGET_FILE" ]; then
134
+ echo "ERROR: target_file é obrigatório."
135
+ echo "Uso: /refactor-seguro <target_file> [opções]"
136
+ exit 1
137
+ fi
138
+
139
+ if [ ! -f "$TARGET_FILE" ]; then
140
+ echo "ERROR: arquivo não encontrado: $TARGET_FILE"
141
+ exit 1
142
+ fi
143
+
144
+ # PT-BR: validações por mode
145
+ case "$MODE" in
146
+ full|sprout|safe-extract|override) ;;
147
+ *)
148
+ echo "ERROR: --mode inválido: $MODE"
149
+ echo "Valores válidos: full, sprout, safe-extract, override"
150
+ exit 1
151
+ ;;
152
+ esac
153
+
154
+ if [ "$MODE" = "override" ]; then
155
+ if [ -z "$TICKET" ] || [ -z "$REASON" ]; then
156
+ echo "ERROR: --mode=override requer --ticket REQ-N E --reason \"<texto>\"."
157
+ exit 1
158
+ fi
159
+ fi
160
+ ```
161
+
162
+ ## 2. Roteamento por mode
163
+
164
+ ### Mode=full (default chain)
165
+
166
+ ```text
167
+ Step 1 — Seam analysis (skip se --skip-seams)
168
+ /encontrar-seams ${TARGET_FILE} ${SYMBOL:+--symbol $SYMBOL}
169
+ → produz .planning/SEAM-ANALYSIS.md
170
+ → user aplica técnicas (commits 1-N)
171
+
172
+ Step 2 — Verificar suite verde após break-deps
173
+ Run test suite, abort se vermelho
174
+
175
+ Step 3 — Characterization (skip se --skip-characterize)
176
+ /caracterizar ${TARGET_FILE} ${SYMBOL:+--symbol $SYMBOL}
177
+ → produz tests/characterization/<file_stem>/
178
+ → user revisa snapshots manualmente
179
+ → user commita como `chore: characterize <file_stem>`
180
+
181
+ Step 4 — Audit do safety net
182
+ /auditar-refactor ${TARGET_FILE} --change-kind=refactor
183
+ → produz .planning/REFACTOR-SAFETY.md com veredito GO/WARN/BLOCK
184
+ → SE BLOCK ainda → loop de volta para step 3 (com --gap-fill)
185
+ → SE GO → prossegue
186
+
187
+ Step 5 — Refactor real
188
+ Delegar para executor OR prompt user para refactor manual
189
+ Após cada commit: rodar suite (verde)
190
+ Após cada commit: characterization tests (verdes — comportamento preservado)
191
+
192
+ Step 6 — Verificação final
193
+ Suite verde
194
+ Characterization VERDE (regressão = 0)
195
+ Mutation kill ≥ 70% (validar safety net)
196
+ PR pode ser aberto
197
+ ```
198
+
199
+ ### Mode=sprout
200
+
201
+ ```text
202
+ Step 1 — Coletar feature description
203
+ Se $FEATURE_DESC vazio → AskUserQuestion:
204
+ "Descreva a feature a ser adicionada (será encapsulada em sprout):"
205
+
206
+ Step 2 — Aplicar legacy-sprout-wrap-techniques
207
+ Decision: sprout method vs sprout class vs wrap method vs wrap class
208
+ - feature ≤ 30 linhas, 1 responsabilidade → sprout method
209
+ - feature > 30 linhas OR multi-responsibility → sprout class
210
+ - feature transforma input/output do legado inteiro → wrap method
211
+ - feature atravessa N métodos da classe → wrap class
212
+
213
+ Step 3 — Gerar sprout
214
+ Criar arquivo novo (sprout module) com lógica testável
215
+ DI explícita para qualquer dep
216
+
217
+ Step 4 — Conectar ao legado em 1-2 linhas
218
+ Inserir chamada ao sprout no legado
219
+ Comment canônico: [legacy-debt #issue-N] sprout — <descrição>
220
+
221
+ Step 5 — Tests do sprout (100% cobertura)
222
+ Escrever 5+ tests cobrindo grupos de equivalência
223
+ Mutation testing no sprout (não no legado)
224
+
225
+ Step 6 — PR
226
+ Diff esperado: arquivo novo + 1-2 linhas no legado
227
+ README/CHANGELOG atualizado se aplicável
228
+ Ticket de débito técnico criado se ainda não existia
229
+ ```
230
+
231
+ ### Mode=safe-extract
232
+
233
+ ```text
234
+ Step 1 — Validar checklist canônico
235
+ AskUserQuestion ou inline-confirm:
236
+ □ Bloco a extrair é CONTÍGUO? (não pode ter return/throw/break/continue saindo)
237
+ □ Variáveis lidas dentro mas declaradas fora → parâmetros (in)?
238
+ □ Variáveis escritas dentro mas usadas fora → return values (out)?
239
+ □ NÃO move lógica entre escopos? (sem move method)
240
+ □ NÃO muda control flow? (sem inverter ifs, sem early return novo)
241
+ □ NÃO modifica sintaxe além de extract/rename?
242
+ Qualquer NÃO → veto, voltar para mode=full
243
+
244
+ Step 2 — Identificar refactor IDE-assisted
245
+ Se Cursor/VS Code/IntelliJ disponível → usar Refactor → Extract Function/Method/Variable
246
+ Caso contrário → manual mas mecânico
247
+
248
+ Step 3 — Aplicar refactor (commits single-goal)
249
+ Após cada commit: compilação verde
250
+ Após cada commit: smoke run (qualquer comando que rodava antes)
251
+
252
+ Step 4 — Output checklist signed-off
253
+ Escrever .planning/SAFE-EXTRACT-<file_stem>.md com:
254
+ - Checklist canônico (todos os itens marcados)
255
+ - Lista de commits (cada um single-goal)
256
+ - Validação de comportamento (smoke verde)
257
+ ```
258
+
259
+ ### Mode=override
260
+
261
+ ```text
262
+ Step 1 — Validar --ticket E --reason (já feito acima)
263
+
264
+ Step 2 — Auditar com flag override
265
+ /auditar-refactor ${TARGET_FILE} \
266
+ --change-kind=override \
267
+ --ticket ${TICKET} \
268
+ --reason "${REASON}"
269
+ → audit trail registrado em REFACTOR-SAFETY.md
270
+
271
+ Step 3 — Refactor pode prosseguir
272
+ Output:
273
+ ⚠ MODE=OVERRIDE — refactor sem characterization
274
+ Ticket: ${TICKET}
275
+ Reason: ${REASON}
276
+ Audit trail: .planning/REFACTOR-SAFETY.md
277
+
278
+ Você aceitou o débito técnico. Refactor pode iniciar AGORA.
279
+ Lembre-se: regressão silenciosa em prod é responsabilidade do owner do ticket.
280
+ ```
281
+
282
+ ## 3. Output canônico
283
+
284
+ ```
285
+ ═══════════════════════════════════════════════════════════
286
+ framework ► REFACTOR-SEGURO ▸ ${TARGET_FILE} (mode: ${MODE})
287
+ ═══════════════════════════════════════════════════════════
288
+
289
+ [output específico do mode escolhido]
290
+
291
+ ## Sumário do que foi feito
292
+
293
+ | Step | Ação | Output |
294
+ |---|---|---|
295
+ | 1 | Seam analysis | .planning/SEAM-ANALYSIS.md |
296
+ | 2 | Characterization | tests/characterization/<file_stem>/ |
297
+ | 3 | Safety audit | .planning/REFACTOR-SAFETY.md (veredito: GO) |
298
+ | 4 | Refactor | <commits sequenciais> |
299
+ | 5 | Verificação final | suite verde, mutation kill ≥ 70% |
300
+
301
+ ## Cross-suite
302
+
303
+ - **/instrumentar-fase** (v1.9) — adicionar instrumentação para detectar regressão precoce em prod via golden signals
304
+ - **/burn-rate-status** (v1.9) — monitor SLO budget pós-deploy do refactor
305
+ - **/prr** (v1.10) — PRR Axe 5 (Change Management) — invoque após refactor para validar production-readiness
306
+ - **/postmortem** (v1.10) — pronto para usar se algo regredir em prod (audit trail completo via REFACTOR-SAFETY.md)
307
+ - **/concluir-marco** — gate `legacy-refactor-safety` (opt-in) bloqueia close se há refactors com mode=override sem ticket close
308
+ ```
309
+
310
+ </process>
311
+
312
+ <success_criteria>
313
+ - [ ] $ARGUMENTS parseados (target_file obrigatório, --mode opcional com 4 valores)
314
+ - [ ] Validações por mode aplicadas (override → ticket + reason; safe-extract → checklist)
315
+ - [ ] Mode=full executa chain canônico (seam-finder → characterizer → safety-auditor → refactor)
316
+ - [ ] Mode=sprout aplica legacy-sprout-wrap-techniques + AskUserQuestion para feature
317
+ - [ ] Mode=safe-extract valida checklist + commits single-goal
318
+ - [ ] Mode=override registra audit trail completo via refactor-safety-auditor
319
+ - [ ] Steps 1-5 e cross-suite documentados no output
320
+ - [ ] Each sub-comando invocado via syntax canônica (`/encontrar-seams`, `/caracterizar`, `/auditar-refactor`)
321
+ </success_criteria>