@luanpdd/kit-mcp 1.33.0 → 1.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +168 -168
  3. package/gates/agent-no-recursive-dispatch.md +84 -84
  4. package/kit/COMANDOS.md +138 -138
  5. package/kit/COMPATIBILITY.md +70 -70
  6. package/kit/README.md +76 -76
  7. package/kit/agents/advisor-researcher.md +109 -109
  8. package/kit/agents/ai-mutation-tester.md +289 -289
  9. package/kit/agents/assumptions-analyzer.md +110 -110
  10. package/kit/agents/audit-log-implementer.md +314 -314
  11. package/kit/agents/auditor-consistencia-isolamento.md +414 -414
  12. package/kit/agents/b2b-saas-architect.md +157 -157
  13. package/kit/agents/burn-rate-forecaster.md +153 -153
  14. package/kit/agents/cascading-failures-auditor.md +299 -299
  15. package/kit/agents/codebase-mapper.md +769 -769
  16. package/kit/agents/crm-pipeline-implementer.md +257 -257
  17. package/kit/agents/debugger.md +814 -814
  18. package/kit/agents/designer-ui.md +216 -216
  19. package/kit/agents/detector-tenant-quente.md +338 -338
  20. package/kit/agents/evolution-go-integrator.md +201 -201
  21. package/kit/agents/example-reviewer.md +22 -22
  22. package/kit/agents/executor.md +565 -565
  23. package/kit/agents/golden-signals-instrumenter.md +232 -232
  24. package/kit/agents/incident-investigator.md +238 -238
  25. package/kit/agents/integration-checker.md +203 -203
  26. package/kit/agents/invite-flow-implementer.md +190 -190
  27. package/kit/agents/legacy-characterizer.md +369 -369
  28. package/kit/agents/lgpd-compliance-auditor.md +296 -296
  29. package/kit/agents/load-shedding-instrumenter.md +290 -290
  30. package/kit/agents/multi-tenant-isolation-auditor.md +254 -254
  31. package/kit/agents/multi-tenant-rls-writer.md +341 -341
  32. package/kit/agents/nyquist-auditor.md +181 -181
  33. package/kit/agents/observability-coverage-auditor.md +316 -316
  34. package/kit/agents/observability-instrumenter.md +191 -191
  35. package/kit/agents/omm-auditor.md +291 -291
  36. package/kit/agents/org-onboarding-implementer.md +224 -224
  37. package/kit/agents/payload-capture-instrumenter.md +274 -274
  38. package/kit/agents/phase-researcher.md +697 -697
  39. package/kit/agents/plan-checker.md +275 -275
  40. package/kit/agents/planner.md +923 -923
  41. package/kit/agents/postmortem-writer.md +273 -273
  42. package/kit/agents/project-researcher.md +653 -653
  43. package/kit/agents/prr-conductor.md +287 -287
  44. package/kit/agents/refactor-safety-auditor.md +405 -405
  45. package/kit/agents/release-pipeline-auditor.md +364 -364
  46. package/kit/agents/research-synthesizer.md +246 -246
  47. package/kit/agents/roadmapper.md +678 -678
  48. package/kit/agents/schema-checker.md +160 -160
  49. package/kit/agents/seam-finder.md +360 -360
  50. package/kit/agents/shotgun-surgery-detector.md +350 -350
  51. package/kit/agents/slo-engineer.md +217 -217
  52. package/kit/agents/storytelling-analyst.md +300 -300
  53. package/kit/agents/supabase-architect.md +249 -249
  54. package/kit/agents/supabase-auth-bootstrapper.md +400 -400
  55. package/kit/agents/supabase-auth-hook-writer.md +418 -418
  56. package/kit/agents/supabase-branching-architect.md +563 -563
  57. package/kit/agents/supabase-cicd-pipeline-implementer.md +778 -778
  58. package/kit/agents/supabase-column-privileges-writer.md +400 -400
  59. package/kit/agents/supabase-edge-fn-tester.md +288 -288
  60. package/kit/agents/supabase-edge-fn-writer.md +341 -341
  61. package/kit/agents/supabase-mfa-implementer.md +439 -439
  62. package/kit/agents/supabase-migration-writer.md +386 -386
  63. package/kit/agents/supabase-oauth-server-implementer.md +507 -507
  64. package/kit/agents/supabase-rbac-implementer.md +393 -393
  65. package/kit/agents/supabase-realtime-implementer.md +364 -364
  66. package/kit/agents/supabase-rls-hardener.md +522 -522
  67. package/kit/agents/supabase-rls-writer.md +324 -324
  68. package/kit/agents/supabase-roles-implementer.md +356 -356
  69. package/kit/agents/supabase-social-auth-implementer.md +451 -451
  70. package/kit/agents/supabase-sso-saml-architect.md +549 -549
  71. package/kit/agents/supabase-storage-implementer.md +407 -407
  72. package/kit/agents/super-admin-implementer.md +282 -282
  73. package/kit/agents/toil-auditor.md +268 -268
  74. package/kit/agents/ui-auditor.md +438 -438
  75. package/kit/agents/ui-checker.md +305 -305
  76. package/kit/agents/ui-researcher.md +356 -356
  77. package/kit/agents/user-profiler.md +176 -176
  78. package/kit/agents/validador-evolucao-schema.md +336 -336
  79. package/kit/agents/verifier.md +729 -729
  80. package/kit/agents/workflow-generator.md +167 -0
  81. package/kit/commands/adicionar-backlog.md +75 -75
  82. package/kit/commands/adicionar-fase.md +42 -42
  83. package/kit/commands/adicionar-tarefa.md +45 -45
  84. package/kit/commands/adicionar-testes.md +41 -41
  85. package/kit/commands/ajuda.md +21 -21
  86. package/kit/commands/atualizar.md +37 -37
  87. package/kit/commands/auditar-cascading.md +111 -111
  88. package/kit/commands/auditar-marco.md +179 -179
  89. package/kit/commands/auditar-observabilidade-cobertura-workflow.md +121 -0
  90. package/kit/commands/auditar-observabilidade-cobertura.md +183 -183
  91. package/kit/commands/auditar-refactor.md +219 -219
  92. package/kit/commands/auditar-release.md +109 -109
  93. package/kit/commands/auditar-uat.md +23 -23
  94. package/kit/commands/autonomo.md +40 -40
  95. package/kit/commands/branch-pr.md +24 -24
  96. package/kit/commands/burn-rate-status.md +408 -408
  97. package/kit/commands/capturar-payloads.md +193 -193
  98. package/kit/commands/caracterizar.md +212 -212
  99. package/kit/commands/concluir-marco.md +247 -247
  100. package/kit/commands/configuracoes.md +36 -36
  101. package/kit/commands/criar-workflow.md +158 -0
  102. package/kit/commands/dados-distribuidos.md +188 -188
  103. package/kit/commands/definir-perfil.md +10 -10
  104. package/kit/commands/depurar.md +190 -190
  105. package/kit/commands/detectar-duplicacao.md +197 -197
  106. package/kit/commands/discutir-fase.md +131 -131
  107. package/kit/commands/encontrar-seams.md +136 -136
  108. package/kit/commands/entrar-discord.md +17 -17
  109. package/kit/commands/estatisticas.md +18 -18
  110. package/kit/commands/example-greeting.md +33 -33
  111. package/kit/commands/executar-fase.md +58 -58
  112. package/kit/commands/expresso.md +56 -56
  113. package/kit/commands/fase-ui.md +34 -34
  114. package/kit/commands/fazer.md +57 -57
  115. package/kit/commands/fio.md +125 -125
  116. package/kit/commands/fluxos-trabalho.md +64 -64
  117. package/kit/commands/forense.md +176 -176
  118. package/kit/commands/gerenciador.md +38 -38
  119. package/kit/commands/inserir-fase.md +31 -31
  120. package/kit/commands/legacy.md +263 -263
  121. package/kit/commands/limpeza.md +17 -17
  122. package/kit/commands/listar-hipoteses-fase.md +45 -45
  123. package/kit/commands/listar-workspaces.md +18 -18
  124. package/kit/commands/load-shedding.md +117 -117
  125. package/kit/commands/mapear-codebase.md +70 -70
  126. package/kit/commands/multi-tenant.md +163 -163
  127. package/kit/commands/nota.md +33 -33
  128. package/kit/commands/novo-marco.md +43 -43
  129. package/kit/commands/novo-projeto.md +41 -41
  130. package/kit/commands/novo-workspace.md +43 -43
  131. package/kit/commands/pausar-trabalho.md +37 -37
  132. package/kit/commands/perfil-usuario.md +45 -45
  133. package/kit/commands/pesquisar-fase.md +195 -195
  134. package/kit/commands/planejar-fase.md +67 -67
  135. package/kit/commands/planejar-lacunas.md +33 -33
  136. package/kit/commands/plantar-ideia.md +25 -25
  137. package/kit/commands/progresso.md +24 -24
  138. package/kit/commands/proximo.md +30 -30
  139. package/kit/commands/publicar.md +490 -490
  140. package/kit/commands/rapido.md +35 -35
  141. package/kit/commands/reaplicar-patches.md +124 -124
  142. package/kit/commands/refactor-seguro.md +321 -321
  143. package/kit/commands/relatorio-sessao.md +19 -19
  144. package/kit/commands/remover-fase.md +31 -31
  145. package/kit/commands/remover-workspace.md +26 -26
  146. package/kit/commands/resumo-marco.md +50 -50
  147. package/kit/commands/retomar-trabalho.md +40 -40
  148. package/kit/commands/revisar-backlog.md +60 -60
  149. package/kit/commands/revisar-ui.md +32 -32
  150. package/kit/commands/revisar.md +37 -37
  151. package/kit/commands/saude.md +21 -21
  152. package/kit/commands/setup-notion.md +93 -93
  153. package/kit/commands/storytelling.md +179 -179
  154. package/kit/commands/supabase.md +238 -238
  155. package/kit/commands/sync-main.md +68 -68
  156. package/kit/commands/validar-fase.md +35 -35
  157. package/kit/commands/verificar-tarefas.md +44 -44
  158. package/kit/commands/verificar-trabalho.md +64 -64
  159. package/kit/file-manifest.json +424 -419
  160. package/kit/framework/bin/lib/commands.cjs +959 -959
  161. package/kit/framework/bin/lib/config.cjs +442 -442
  162. package/kit/framework/bin/lib/core.cjs +1230 -1230
  163. package/kit/framework/bin/lib/frontmatter.cjs +336 -336
  164. package/kit/framework/bin/lib/init.cjs +1442 -1442
  165. package/kit/framework/bin/lib/milestone.cjs +252 -252
  166. package/kit/framework/bin/lib/model-profiles.cjs +68 -68
  167. package/kit/framework/bin/lib/phase.cjs +888 -888
  168. package/kit/framework/bin/lib/profile-output.cjs +952 -952
  169. package/kit/framework/bin/lib/profile-pipeline.cjs +539 -539
  170. package/kit/framework/bin/lib/roadmap.cjs +329 -329
  171. package/kit/framework/bin/lib/security.cjs +382 -382
  172. package/kit/framework/bin/lib/state.cjs +1031 -1031
  173. package/kit/framework/bin/lib/template.cjs +222 -222
  174. package/kit/framework/bin/lib/uat.cjs +282 -282
  175. package/kit/framework/bin/lib/verify.cjs +888 -888
  176. package/kit/framework/bin/lib/workstream.cjs +491 -491
  177. package/kit/framework/bin/tools.cjs +918 -918
  178. package/kit/framework/commands/workstreams.md +63 -63
  179. package/kit/framework/references/checkpoints.md +778 -778
  180. package/kit/framework/references/continuation-format.md +249 -249
  181. package/kit/framework/references/decimal-phase-calculation.md +64 -64
  182. package/kit/framework/references/git-integration.md +295 -295
  183. package/kit/framework/references/git-planning-commit.md +38 -38
  184. package/kit/framework/references/model-profile-resolution.md +36 -36
  185. package/kit/framework/references/model-profiles.md +139 -139
  186. package/kit/framework/references/phase-argument-parsing.md +61 -61
  187. package/kit/framework/references/planning-config.md +202 -202
  188. package/kit/framework/references/questioning.md +162 -162
  189. package/kit/framework/references/tdd.md +263 -263
  190. package/kit/framework/references/ui-brand.md +160 -160
  191. package/kit/framework/references/user-profiling.md +657 -657
  192. package/kit/framework/references/verification-patterns.md +612 -612
  193. package/kit/framework/references/workstream-flag.md +58 -58
  194. package/kit/framework/templates/DEBUG.md +164 -164
  195. package/kit/framework/templates/UAT.md +265 -265
  196. package/kit/framework/templates/UI-SPEC.md +100 -100
  197. package/kit/framework/templates/VALIDATION.md +76 -76
  198. package/kit/framework/templates/claude-md.md +122 -122
  199. package/kit/framework/templates/codebase/architecture.md +185 -185
  200. package/kit/framework/templates/codebase/concerns.md +205 -205
  201. package/kit/framework/templates/codebase/conventions.md +204 -204
  202. package/kit/framework/templates/codebase/integrations.md +192 -192
  203. package/kit/framework/templates/codebase/stack.md +158 -158
  204. package/kit/framework/templates/codebase/structure.md +199 -199
  205. package/kit/framework/templates/codebase/testing.md +301 -301
  206. package/kit/framework/templates/config.json +44 -44
  207. package/kit/framework/templates/context.md +352 -352
  208. package/kit/framework/templates/continue-here.md +78 -78
  209. package/kit/framework/templates/copilot-instructions.md +7 -7
  210. package/kit/framework/templates/debug-subagent-prompt.md +91 -91
  211. package/kit/framework/templates/dev-preferences.md +20 -20
  212. package/kit/framework/templates/discovery.md +146 -146
  213. package/kit/framework/templates/discussion-log.md +63 -63
  214. package/kit/framework/templates/milestone-archive.md +123 -123
  215. package/kit/framework/templates/milestone.md +115 -115
  216. package/kit/framework/templates/phase-prompt.md +610 -610
  217. package/kit/framework/templates/planner-subagent-prompt.md +117 -117
  218. package/kit/framework/templates/project.md +186 -186
  219. package/kit/framework/templates/requirements.md +231 -231
  220. package/kit/framework/templates/research-project/ARCHITECTURE.md +204 -204
  221. package/kit/framework/templates/research-project/FEATURES.md +147 -147
  222. package/kit/framework/templates/research-project/PITFALLS.md +200 -200
  223. package/kit/framework/templates/research-project/STACK.md +120 -120
  224. package/kit/framework/templates/research-project/SUMMARY.md +170 -170
  225. package/kit/framework/templates/research.md +419 -419
  226. package/kit/framework/templates/retrospective.md +54 -54
  227. package/kit/framework/templates/roadmap.md +202 -202
  228. package/kit/framework/templates/state.md +176 -176
  229. package/kit/framework/templates/summary-complex.md +59 -59
  230. package/kit/framework/templates/summary-minimal.md +41 -41
  231. package/kit/framework/templates/summary-standard.md +48 -48
  232. package/kit/framework/templates/summary.md +209 -209
  233. package/kit/framework/templates/user-profile.md +146 -146
  234. package/kit/framework/templates/user-setup.md +256 -256
  235. package/kit/framework/templates/verification-report.md +258 -258
  236. package/kit/framework/workflows/add-phase.md +112 -112
  237. package/kit/framework/workflows/add-tests.md +351 -351
  238. package/kit/framework/workflows/add-todo.md +158 -158
  239. package/kit/framework/workflows/audit-milestone.md +340 -340
  240. package/kit/framework/workflows/audit-uat.md +109 -109
  241. package/kit/framework/workflows/autonomous.md +891 -891
  242. package/kit/framework/workflows/check-todos.md +177 -177
  243. package/kit/framework/workflows/cleanup.md +152 -152
  244. package/kit/framework/workflows/complete-milestone.md +696 -696
  245. package/kit/framework/workflows/diagnose-issues.md +231 -231
  246. package/kit/framework/workflows/discovery-phase.md +289 -289
  247. package/kit/framework/workflows/discuss-phase-assumptions.md +653 -653
  248. package/kit/framework/workflows/discuss-phase.md +784 -784
  249. package/kit/framework/workflows/do.md +104 -104
  250. package/kit/framework/workflows/execute-phase.md +838 -838
  251. package/kit/framework/workflows/execute-plan.md +510 -510
  252. package/kit/framework/workflows/fast.md +102 -102
  253. package/kit/framework/workflows/forensics.md +265 -265
  254. package/kit/framework/workflows/health.md +181 -181
  255. package/kit/framework/workflows/help.md +619 -619
  256. package/kit/framework/workflows/insert-phase.md +130 -130
  257. package/kit/framework/workflows/list-phase-assumptions.md +178 -178
  258. package/kit/framework/workflows/list-workspaces.md +56 -56
  259. package/kit/framework/workflows/manager.md +362 -362
  260. package/kit/framework/workflows/map-codebase.md +377 -377
  261. package/kit/framework/workflows/milestone-summary.md +223 -223
  262. package/kit/framework/workflows/new-milestone.md +486 -486
  263. package/kit/framework/workflows/new-project.md +1159 -1159
  264. package/kit/framework/workflows/new-workspace.md +237 -237
  265. package/kit/framework/workflows/next.md +97 -97
  266. package/kit/framework/workflows/node-repair.md +92 -92
  267. package/kit/framework/workflows/note.md +156 -156
  268. package/kit/framework/workflows/pause-work.md +176 -176
  269. package/kit/framework/workflows/plan-milestone-gaps.md +273 -273
  270. package/kit/framework/workflows/plan-phase.md +765 -765
  271. package/kit/framework/workflows/plant-seed.md +169 -169
  272. package/kit/framework/workflows/pr-branch.md +129 -129
  273. package/kit/framework/workflows/profile-user.md +450 -450
  274. package/kit/framework/workflows/progress.md +507 -507
  275. package/kit/framework/workflows/quick.md +757 -757
  276. package/kit/framework/workflows/remove-phase.md +155 -155
  277. package/kit/framework/workflows/remove-workspace.md +90 -90
  278. package/kit/framework/workflows/research-phase.md +82 -82
  279. package/kit/framework/workflows/resume-project.md +326 -326
  280. package/kit/framework/workflows/review.md +228 -228
  281. package/kit/framework/workflows/session-report.md +146 -146
  282. package/kit/framework/workflows/settings.md +283 -283
  283. package/kit/framework/workflows/ship.md +228 -228
  284. package/kit/framework/workflows/stats.md +60 -60
  285. package/kit/framework/workflows/transition.md +671 -671
  286. package/kit/framework/workflows/ui-phase.md +302 -302
  287. package/kit/framework/workflows/ui-review.md +165 -165
  288. package/kit/framework/workflows/update.md +323 -323
  289. package/kit/framework/workflows/validate-phase.md +174 -174
  290. package/kit/framework/workflows/verify-phase.md +252 -252
  291. package/kit/framework/workflows/verify-work.md +637 -637
  292. package/kit/hooks/check-update.js +118 -118
  293. package/kit/hooks/context-monitor.js +163 -163
  294. package/kit/hooks/kit-attribution-reminder.cjs +92 -92
  295. package/kit/hooks/kit-router.cjs +137 -137
  296. package/kit/hooks/prompt-guard.js +103 -103
  297. package/kit/hooks/statusline.js +125 -125
  298. package/kit/hooks/workflow-guard.js +101 -101
  299. package/kit/settings.json +45 -45
  300. package/kit/skills/ai-prompt-characterization/SKILL.md +335 -335
  301. package/kit/skills/armadilhas-sistemas-distribuidos/SKILL.md +447 -447
  302. package/kit/skills/audit-log-multi-tenant/SKILL.md +340 -340
  303. package/kit/skills/b2b-saas-architecture/SKILL.md +300 -300
  304. package/kit/skills/consistencia-leitura-replica/SKILL.md +385 -385
  305. package/kit/skills/crm-lead-pipeline-patterns/SKILL.md +343 -343
  306. package/kit/skills/dynamic-workflow-authoring/SKILL.md +223 -0
  307. package/kit/skills/escolha-modelo-consistencia/SKILL.md +494 -494
  308. package/kit/skills/evolucao-schema-compativel/SKILL.md +448 -448
  309. package/kit/skills/evolution-go-whatsapp-integration/SKILL.md +322 -322
  310. package/kit/skills/example-skill/SKILL.md +42 -42
  311. package/kit/skills/legacy-api-only-applications/SKILL.md +358 -358
  312. package/kit/skills/legacy-characterization-tests/SKILL.md +330 -330
  313. package/kit/skills/legacy-effect-analysis/SKILL.md +331 -331
  314. package/kit/skills/legacy-extract-class/SKILL.md +203 -203
  315. package/kit/skills/legacy-programming-by-difference/SKILL.md +252 -252
  316. package/kit/skills/legacy-seams-and-test-harness/SKILL.md +460 -460
  317. package/kit/skills/legacy-shotgun-surgery/SKILL.md +286 -286
  318. package/kit/skills/legacy-sprout-wrap-techniques/SKILL.md +434 -434
  319. package/kit/skills/legacy-storytelling-naked-crc/SKILL.md +270 -270
  320. package/kit/skills/lgpd-multi-tenant-compliance/SKILL.md +340 -340
  321. package/kit/skills/member-invite-flow/SKILL.md +305 -305
  322. package/kit/skills/member-management-react-shadcn/SKILL.md +328 -328
  323. package/kit/skills/multi-tenant-performance-scaling/SKILL.md +316 -316
  324. package/kit/skills/multi-tenant-rls-hierarchy/SKILL.md +342 -342
  325. package/kit/skills/org-onboarding-flow/SKILL.md +257 -257
  326. package/kit/skills/org-switcher-react-pattern/SKILL.md +349 -349
  327. package/kit/skills/permission-gate-react-pattern/SKILL.md +271 -271
  328. package/kit/skills/postgres-isolamento-concorrencia/SKILL.md +552 -552
  329. package/kit/skills/pre-refactor-characterization/SKILL.md +421 -421
  330. package/kit/skills/rbac-permissions-matrix-supabase/SKILL.md +338 -338
  331. package/kit/skills/streams-eventos-cdc/SKILL.md +711 -711
  332. package/kit/skills/supabase-auth-hardening/SKILL.md +674 -674
  333. package/kit/skills/supabase-auth-hooks/SKILL.md +875 -875
  334. package/kit/skills/supabase-auth-methods/SKILL.md +486 -486
  335. package/kit/skills/supabase-auth-sessions/SKILL.md +579 -579
  336. package/kit/skills/supabase-auth-ssr/SKILL.md +306 -306
  337. package/kit/skills/supabase-branching-workflow/SKILL.md +544 -544
  338. package/kit/skills/supabase-ci-cd-github-actions/SKILL.md +880 -880
  339. package/kit/skills/supabase-column-level-security/SKILL.md +426 -426
  340. package/kit/skills/supabase-config-toml-remotes/SKILL.md +807 -807
  341. package/kit/skills/supabase-custom-claims-rbac/SKILL.md +472 -472
  342. package/kit/skills/supabase-edge-functions/SKILL.md +330 -330
  343. package/kit/skills/supabase-edge-functions-auth/SKILL.md +309 -309
  344. package/kit/skills/supabase-edge-functions-limits/SKILL.md +302 -302
  345. package/kit/skills/supabase-edge-functions-mcp-server/SKILL.md +279 -279
  346. package/kit/skills/supabase-edge-functions-testing/SKILL.md +277 -277
  347. package/kit/skills/supabase-edge-runtime-builtins/SKILL.md +357 -357
  348. package/kit/skills/supabase-enterprise-sso-saml/SKILL.md +545 -545
  349. package/kit/skills/supabase-jwt-signing-keys/SKILL.md +399 -399
  350. package/kit/skills/supabase-mfa/SKILL.md +488 -488
  351. package/kit/skills/supabase-migration-repair/SKILL.md +823 -823
  352. package/kit/skills/supabase-migrations/SKILL.md +297 -297
  353. package/kit/skills/supabase-oauth-server/SKILL.md +537 -537
  354. package/kit/skills/supabase-pgtap-testing/SKILL.md +1053 -1053
  355. package/kit/skills/supabase-postgres-roles/SKILL.md +392 -392
  356. package/kit/skills/supabase-realtime/SKILL.md +460 -460
  357. package/kit/skills/supabase-rls-defense-in-depth/SKILL.md +418 -418
  358. package/kit/skills/supabase-rls-policies/SKILL.md +635 -635
  359. package/kit/skills/supabase-social-oauth/SKILL.md +480 -480
  360. package/kit/skills/supabase-third-party-auth/SKILL.md +450 -450
  361. package/kit/skills/super-admin-platform-pattern/SKILL.md +326 -326
  362. package/kit/skills/tenant-quente-mitigacao/SKILL.md +605 -605
  363. package/kit/skills/ui-anti-padroes-ia/SKILL.md +261 -261
  364. package/kit/skills/ui-contexto-produto/SKILL.md +248 -248
  365. package/kit/skills/ui-cor-estrategia/SKILL.md +213 -213
  366. package/kit/skills/ui-critica-auditoria/SKILL.md +260 -260
  367. package/kit/skills/ui-motion-funcional/SKILL.md +264 -264
  368. package/kit/skills/ui-ritmo-espacial/SKILL.md +259 -259
  369. package/kit/skills/ui-tipografia/SKILL.md +211 -211
  370. package/kit/skills/whatsapp-conversation-state-machine/SKILL.md +287 -287
  371. package/kit/workflows/auditar-observabilidade-cobertura.workflow.js +250 -0
  372. package/package.json +65 -63
  373. package/src/core/kit.js +333 -216
  374. package/src/core/reflect.js +247 -247
  375. package/src/core/registry.js +123 -112
  376. package/src/core/reverse-sync.js +448 -372
  377. package/src/core/sync.js +477 -437
  378. package/src/core/watch.js +121 -121
  379. package/src/mcp-server/index.js +794 -794
@@ -1,778 +1,778 @@
1
- <overview>
2
- Planos executam de forma autônoma. Checkpoints formalizam pontos de interação onde a verificação humana ou decisões são necessárias.
3
-
4
- **Princípio central:** Claude automatiza tudo via CLI/API. Checkpoints são para verificação e decisões, não trabalho manual.
5
-
6
- **Regras de ouro:**
7
- 1. **Se Claude pode executar, Claude executa** - Nunca peça ao usuário para executar comandos CLI, iniciar servidores ou rodar builds
8
- 2. **Claude configura o ambiente de verificação** - Inicia dev servers, popula bancos de dados, configura variáveis de ambiente
9
- 3. **O usuário só faz o que exige julgamento humano** - Verificações visuais, avaliação de UX, "isso parece certo?"
10
- 4. **Secrets vêm do usuário, automação vem do Claude** - Peça chaves de API, então Claude as usa via CLI
11
- 5. **Modo automático ignora checkpoints de verificação/decisão** — Quando `workflow._auto_chain_active` ou `workflow.auto_advance` for true na config: human-verify é aprovado automaticamente, decision seleciona a primeira opção automaticamente, human-action ainda para (auth gates não podem ser automatizados)
12
- </overview>
13
-
14
- <checkpoint_types>
15
-
16
- <type name="human-verify">
17
- ## checkpoint:human-verify (Mais Comum - 90%)
18
-
19
- **Quando:** Claude concluiu trabalho automatizado, humano confirma que funciona corretamente.
20
-
21
- **Use para:**
22
- - Verificações visuais de UI (layout, estilo, responsividade)
23
- - Fluxos interativos (navegar por wizard, testar fluxos de usuário)
24
- - Verificação funcional (funcionalidade funciona como esperado)
25
- - Qualidade de reprodução de áudio/vídeo
26
- - Suavidade de animações
27
- - Testes de acessibilidade
28
-
29
- **Estrutura:**
30
- ```xml
31
- <task type="checkpoint:human-verify" gate="blocking">
32
- <what-built>[O que Claude automatizou e implantou/construiu]</what-built>
33
- <how-to-verify>
34
- [Passos exatos para testar - URLs, comandos, comportamento esperado]
35
- </how-to-verify>
36
- <resume-signal>[Como continuar - "aprovado", "sim", ou descreva problemas]</resume-signal>
37
- </task>
38
- ```
39
-
40
- **Exemplo: Componente de UI (mostra padrão-chave: Claude inicia servidor ANTES do checkpoint)**
41
- ```xml
42
- <task type="auto">
43
- <name>Build responsive dashboard layout</name>
44
- <files>src/components/Dashboard.tsx, src/app/dashboard/page.tsx</files>
45
- <action>Create dashboard with sidebar, header, and content area. Use Tailwind responsive classes for mobile.</action>
46
- <verify>npm run build succeeds, no TypeScript errors</verify>
47
- <done>Dashboard component builds without errors</done>
48
- </task>
49
-
50
- <task type="auto">
51
- <name>Start dev server for verification</name>
52
- <action>Run `npm run dev` in background, wait for "ready" message, capture port</action>
53
- <verify>fetch http://localhost:3000 returns 200</verify>
54
- <done>Dev server running at http://localhost:3000</done>
55
- </task>
56
-
57
- <task type="checkpoint:human-verify" gate="blocking">
58
- <what-built>Layout responsivo do dashboard - dev server rodando em http://localhost:3000</what-built>
59
- <how-to-verify>
60
- Acesse http://localhost:3000/dashboard e verifique:
61
- 1. Desktop (>1024px): Sidebar à esquerda, conteúdo à direita, header no topo
62
- 2. Tablet (768px): Sidebar colapsa para menu hambúrguer
63
- 3. Mobile (375px): Layout de coluna única, nav inferior aparece
64
- 4. Sem deslocamento de layout ou scroll horizontal em qualquer tamanho
65
- </how-to-verify>
66
- <resume-signal>Digite "aprovado" ou descreva problemas de layout</resume-signal>
67
- </task>
68
- ```
69
-
70
- **Exemplo: Build do Xcode**
71
- ```xml
72
- <task type="auto">
73
- <name>Build macOS app with Xcode</name>
74
- <files>App.xcodeproj, Sources/</files>
75
- <action>Run `xcodebuild -project App.xcodeproj -scheme App build`. Check for compilation errors in output.</action>
76
- <verify>Build output contains "BUILD SUCCEEDED", no errors</verify>
77
- <done>App builds successfully</done>
78
- </task>
79
-
80
- <task type="checkpoint:human-verify" gate="blocking">
81
- <what-built>App macOS construído em DerivedData/Build/Products/Debug/App.app</what-built>
82
- <how-to-verify>
83
- Abra App.app e teste:
84
- - App inicia sem crashes
85
- - Ícone na barra de menu aparece
86
- - Janela de preferências abre corretamente
87
- - Sem glitches visuais ou problemas de layout
88
- </how-to-verify>
89
- <resume-signal>Digite "aprovado" ou descreva problemas</resume-signal>
90
- </task>
91
- ```
92
- </type>
93
-
94
- <type name="decision">
95
- ## checkpoint:decision (9%)
96
-
97
- **Quando:** Humano deve fazer uma escolha que afeta a direção da implementação.
98
-
99
- **Use para:**
100
- - Seleção de tecnologia (qual provedor de auth, qual banco de dados)
101
- - Decisões de arquitetura (monorepo vs repositórios separados)
102
- - Escolhas de design (esquema de cores, abordagem de layout)
103
- - Priorização de funcionalidades (qual variante construir)
104
- - Decisões de modelo de dados (estrutura do schema)
105
-
106
- **Estrutura:**
107
- ```xml
108
- <task type="checkpoint:decision" gate="blocking">
109
- <decision>[O que está sendo decidido]</decision>
110
- <context>[Por que essa decisão importa]</context>
111
- <options>
112
- <option id="option-a">
113
- <name>[Nome da opção]</name>
114
- <pros>[Benefícios]</pros>
115
- <cons>[Compensações]</cons>
116
- </option>
117
- <option id="option-b">
118
- <name>[Nome da opção]</name>
119
- <pros>[Benefícios]</pros>
120
- <cons>[Compensações]</cons>
121
- </option>
122
- </options>
123
- <resume-signal>[Como indicar a escolha]</resume-signal>
124
- </task>
125
- ```
126
-
127
- **Exemplo: Seleção de Provedor de Auth**
128
- ```xml
129
- <task type="checkpoint:decision" gate="blocking">
130
- <decision>Select authentication provider</decision>
131
- <context>
132
- Need user authentication for the app. Three solid options with different tradeoffs.
133
- </context>
134
- <options>
135
- <option id="supabase">
136
- <name>Supabase Auth</name>
137
- <pros>Built-in with Supabase DB we're using, generous free tier, row-level security integration</pros>
138
- <cons>Less customizable UI, tied to Supabase ecosystem</cons>
139
- </option>
140
- <option id="clerk">
141
- <name>Clerk</name>
142
- <pros>Beautiful pre-built UI, best developer experience, excellent docs</pros>
143
- <cons>Paid after 10k MAU, vendor lock-in</cons>
144
- </option>
145
- <option id="nextauth">
146
- <name>NextAuth.js</name>
147
- <pros>Free, self-hosted, maximum control, widely adopted</pros>
148
- <cons>More setup work, you manage security updates, UI is DIY</cons>
149
- </option>
150
- </options>
151
- <resume-signal>Select: supabase, clerk, or nextauth</resume-signal>
152
- </task>
153
- ```
154
-
155
- **Exemplo: Seleção de Banco de Dados**
156
- ```xml
157
- <task type="checkpoint:decision" gate="blocking">
158
- <decision>Select database for user data</decision>
159
- <context>
160
- App needs persistent storage for users, sessions, and user-generated content.
161
- Expected scale: 10k users, 1M records first year.
162
- </context>
163
- <options>
164
- <option id="supabase">
165
- <name>Supabase (Postgres)</name>
166
- <pros>Full SQL, generous free tier, built-in auth, real-time subscriptions</pros>
167
- <cons>Vendor lock-in for real-time features, less flexible than raw Postgres</cons>
168
- </option>
169
- <option id="planetscale">
170
- <name>PlanetScale (MySQL)</name>
171
- <pros>Serverless scaling, branching workflow, excellent DX</pros>
172
- <cons>MySQL not Postgres, no foreign keys in free tier</cons>
173
- </option>
174
- <option id="convex">
175
- <name>Convex</name>
176
- <pros>Real-time by default, TypeScript-native, automatic caching</pros>
177
- <cons>Newer platform, different mental model, less SQL flexibility</cons>
178
- </option>
179
- </options>
180
- <resume-signal>Select: supabase, planetscale, or convex</resume-signal>
181
- </task>
182
- ```
183
- </type>
184
-
185
- <type name="human-action">
186
- ## checkpoint:human-action (1% - Raro)
187
-
188
- **Quando:** A ação NÃO tem CLI/API e requer interação exclusivamente humana, OU Claude encontrou um auth gate durante a automação.
189
-
190
- **Use APENAS para:**
191
- - **Auth gates** - Claude tentou CLI/API mas precisa de credenciais (isso NÃO é uma falha)
192
- - Links de verificação por e-mail (clicar no e-mail)
193
- - Códigos 2FA por SMS (verificação por telefone)
194
- - Aprovações manuais de conta (plataforma exige revisão humana)
195
- - Fluxos 3D Secure de cartão de crédito (autorização de pagamento via web)
196
- - Aprovações de app OAuth (aprovação via web)
197
-
198
- **NÃO use para trabalho manual pré-planejado:**
199
- - Fazer deploy (use CLI - auth gate se necessário)
200
- - Criar webhooks/bancos de dados (use API/CLI - auth gate se necessário)
201
- - Rodar builds/testes (use a ferramenta Bash)
202
- - Criar arquivos (use a ferramenta Write)
203
-
204
- **Estrutura:**
205
- ```xml
206
- <task type="checkpoint:human-action" gate="blocking">
207
- <action>[O que o humano deve fazer - Claude já fez tudo que é automatizável]</action>
208
- <instructions>
209
- [O que Claude já automatizou]
210
- [A UMA coisa que requer ação humana]
211
- </instructions>
212
- <verification>[O que Claude pode verificar depois]</verification>
213
- <resume-signal>[Como continuar]</resume-signal>
214
- </task>
215
- ```
216
-
217
- **Exemplo: Verificação de E-mail**
218
- ```xml
219
- <task type="auto">
220
- <name>Create SendGrid account via API</name>
221
- <action>Use SendGrid API to create subuser account with provided email. Request verification email.</action>
222
- <verify>API returns 201, account created</verify>
223
- <done>Account created, verification email sent</done>
224
- </task>
225
-
226
- <task type="checkpoint:human-action" gate="blocking">
227
- <action>Completar verificação de e-mail da conta SendGrid</action>
228
- <instructions>
229
- Criei a conta e solicitei o e-mail de verificação.
230
- Verifique sua caixa de entrada pelo link de verificação do SendGrid e clique nele.
231
- </instructions>
232
- <verification>Chave de API do SendGrid funciona: teste curl bem-sucedido</verification>
233
- <resume-signal>Digite "feito" quando o e-mail for verificado</resume-signal>
234
- </task>
235
- ```
236
-
237
- **Exemplo: Auth Gate (Checkpoint Dinâmico)**
238
- ```xml
239
- <task type="auto">
240
- <name>Deploy to Vercel</name>
241
- <files>.vercel/, vercel.json</files>
242
- <action>Run `vercel --yes` to deploy</action>
243
- <verify>vercel ls shows deployment, fetch returns 200</verify>
244
- </task>
245
-
246
- <!-- Se vercel retornar "Error: Not authenticated", Claude cria checkpoint dinamicamente -->
247
-
248
- <task type="checkpoint:human-action" gate="blocking">
249
- <action>Autenticar o CLI Vercel para que eu possa continuar o deploy</action>
250
- <instructions>
251
- Tentei fazer o deploy mas recebi erro de autenticação.
252
- Execute: vercel login
253
- Isso abrirá seu navegador - complete o fluxo de autenticação.
254
- </instructions>
255
- <verification>vercel whoami retorna o e-mail da sua conta</verification>
256
- <resume-signal>Digite "feito" quando autenticado</resume-signal>
257
- </task>
258
-
259
- <!-- Após autenticação, Claude tenta o deploy novamente -->
260
-
261
- <task type="auto">
262
- <name>Retry Vercel deployment</name>
263
- <action>Run `vercel --yes` (now authenticated)</action>
264
- <verify>vercel ls shows deployment, fetch returns 200</verify>
265
- </task>
266
- ```
267
-
268
- **Distinção-chave:** Auth gates são criados dinamicamente quando Claude encontra erros de auth. NÃO são pré-planejados — Claude automatiza primeiro, pede credenciais apenas quando bloqueado.
269
- </type>
270
- </checkpoint_types>
271
-
272
- <execution_protocol>
273
-
274
- Quando Claude encontra `type="checkpoint:*"`:
275
-
276
- 1. **Pare imediatamente** - não avance para a próxima tarefa
277
- 2. **Exiba o checkpoint claramente** usando o formato abaixo
278
- 3. **Aguarde a resposta do usuário** - não simule conclusão
279
- 4. **Verifique se possível** - verifique arquivos, rode testes, o que for especificado
280
- 5. **Retome a execução** - continue para a próxima tarefa apenas após confirmação
281
-
282
- **Para checkpoint:human-verify:**
283
- ```
284
- ╔═══════════════════════════════════════════════════════╗
285
- ║ CHECKPOINT: Verificação Necessária ║
286
- ╚═══════════════════════════════════════════════════════╝
287
-
288
- Progresso: 5/8 tarefas concluídas
289
- Tarefa: Layout responsivo do dashboard
290
-
291
- Construído: Dashboard responsivo em /dashboard
292
-
293
- Como verificar:
294
- 1. Acesse: http://localhost:3000/dashboard
295
- 2. Desktop (>1024px): Sidebar visível, conteúdo preenche o espaço restante
296
- 3. Tablet (768px): Sidebar colapsa para ícones
297
- 4. Mobile (375px): Sidebar oculta, menu hambúrguer aparece
298
-
299
- ────────────────────────────────────────────────────────
300
- → SUA AÇÃO: Digite "aprovado" ou descreva problemas
301
- ────────────────────────────────────────────────────────
302
- ```
303
-
304
- **Para checkpoint:decision:**
305
- ```
306
- ╔═══════════════════════════════════════════════════════╗
307
- ║ CHECKPOINT: Decisão Necessária ║
308
- ╚═══════════════════════════════════════════════════════╝
309
-
310
- Progresso: 2/6 tarefas concluídas
311
- Tarefa: Selecionar provedor de autenticação
312
-
313
- Decisão: Qual provedor de auth devemos usar?
314
-
315
- Contexto: Precisamos de autenticação de usuário. Três opções com compensações diferentes.
316
-
317
- Opções:
318
- 1. supabase - Integrado ao nosso DB, plano gratuito
319
- Prós: Integração com row-level security, plano gratuito generoso
320
- Contras: UI menos customizável, lock-in no ecossistema
321
-
322
- 2. clerk - Melhor DX, pago após 10k usuários
323
- Prós: UI pré-construída linda, documentação excelente
324
- Contras: Vendor lock-in, preço em escala
325
-
326
- 3. nextauth - Auto-hospedado, controle máximo
327
- Prós: Gratuito, sem vendor lock-in, amplamente adotado
328
- Contras: Mais trabalho de configuração, atualizações de segurança por conta própria
329
-
330
- ────────────────────────────────────────────────────────
331
- → SUA AÇÃO: Selecione supabase, clerk ou nextauth
332
- ────────────────────────────────────────────────────────
333
- ```
334
-
335
- **Para checkpoint:human-action:**
336
- ```
337
- ╔═══════════════════════════════════════════════════════╗
338
- ║ CHECKPOINT: Ação Necessária ║
339
- ╚═══════════════════════════════════════════════════════╝
340
-
341
- Progresso: 3/8 tarefas concluídas
342
- Tarefa: Deploy para Vercel
343
-
344
- Tentado: vercel --yes
345
- Erro: Not authenticated. Please run 'vercel login'
346
-
347
- O que você precisa fazer:
348
- 1. Execute: vercel login
349
- 2. Complete a autenticação no navegador quando abrir
350
- 3. Volte aqui quando concluído
351
-
352
- Vou verificar: vercel whoami retorna sua conta
353
-
354
- ────────────────────────────────────────────────────────
355
- → SUA AÇÃO: Digite "feito" quando autenticado
356
- ────────────────────────────────────────────────────────
357
- ```
358
- </execution_protocol>
359
-
360
- <authentication_gates>
361
-
362
- **Auth gate = Claude tentou CLI/API, recebeu erro de auth.** Não é uma falha — é um gate que requer entrada humana para desbloquear.
363
-
364
- **Padrão:** Claude tenta automação → erro de auth → cria checkpoint:human-action → usuário autentica → Claude tenta novamente → continua
365
-
366
- **Protocolo do gate:**
367
- 1. Reconhecer que não é uma falha - auth ausente é esperado
368
- 2. Parar a tarefa atual - não tentar repetidamente
369
- 3. Criar checkpoint:human-action dinamicamente
370
- 4. Fornecer passos exatos de autenticação
371
- 5. Verificar que a autenticação funciona
372
- 6. Tentar novamente a tarefa original
373
- 7. Continuar normalmente
374
-
375
- **Distinção-chave:**
376
- - Checkpoint pré-planejado: "Preciso que você faça X" (errado - Claude deveria automatizar)
377
- - Auth gate: "Tentei automatizar X mas preciso de credenciais" (correto - desbloqueia automação)
378
-
379
- </authentication_gates>
380
-
381
- <automation_reference>
382
-
383
- **A regra:** Se tem CLI/API, Claude faz. Nunca peça ao humano para realizar trabalho automatizável.
384
-
385
- ## Referência de CLI por Serviço
386
-
387
- | Serviço | CLI/API | Comandos-chave | Auth Gate |
388
- |---------|---------|----------------|-----------|
389
- | Vercel | `vercel` | `--yes`, `env add`, `--prod`, `ls` | `vercel login` |
390
- | Railway | `railway` | `init`, `up`, `variables set` | `railway login` |
391
- | Fly | `fly` | `launch`, `deploy`, `secrets set` | `fly auth login` |
392
- | Stripe | `stripe` + API | `listen`, `trigger`, chamadas API | API key no .env |
393
- | Supabase | `supabase` | `init`, `link`, `db push`, `gen types` | `supabase login` |
394
- | Upstash | `upstash` | `redis create`, `redis get` | `upstash auth login` |
395
- | PlanetScale | `pscale` | `database create`, `branch create` | `pscale auth login` |
396
- | GitHub | `gh` | `repo create`, `pr create`, `secret set` | `gh auth login` |
397
- | Node | `npm`/`pnpm` | `install`, `run build`, `test`, `run dev` | N/A |
398
- | Xcode | `xcodebuild` | `-project`, `-scheme`, `build`, `test` | N/A |
399
- | Convex | `npx convex` | `dev`, `deploy`, `env set`, `env get` | `npx convex login` |
400
-
401
- ## Automação de Variáveis de Ambiente
402
-
403
- **Arquivos env:** Use as ferramentas Write/Edit. Nunca peça ao humano para criar .env manualmente.
404
-
405
- **Variáveis env do dashboard via CLI:**
406
-
407
- | Plataforma | Comando CLI | Exemplo |
408
- |------------|-------------|---------|
409
- | Convex | `npx convex env set` | `npx convex env set OPENAI_API_KEY sk-...` |
410
- | Vercel | `vercel env add` | `vercel env add STRIPE_KEY production` |
411
- | Railway | `railway variables set` | `railway variables set API_KEY=value` |
412
- | Fly | `fly secrets set` | `fly secrets set DATABASE_URL=...` |
413
- | Supabase | `supabase secrets set` | `supabase secrets set MY_SECRET=value` |
414
-
415
- **Padrão de coleta de secrets:**
416
- ```xml
417
- <!-- ERRADO: Pedir ao usuário para adicionar env vars no dashboard -->
418
- <task type="checkpoint:human-action">
419
- <action>Add OPENAI_API_KEY to Convex dashboard</action>
420
- <instructions>Go to dashboard.convex.dev → Settings → Environment Variables → Add</instructions>
421
- </task>
422
-
423
- <!-- CERTO: Claude pede o valor, depois adiciona via CLI -->
424
- <task type="checkpoint:human-action">
425
- <action>Forneça sua chave de API do OpenAI</action>
426
- <instructions>
427
- Preciso da sua chave de API do OpenAI para o backend Convex.
428
- Obtenha em: https://platform.openai.com/api-keys
429
- Cole a chave (começa com sk-)
430
- </instructions>
431
- <verification>Vou adicioná-la via `npx convex env set` e verificar</verification>
432
- <resume-signal>Cole sua chave de API</resume-signal>
433
- </task>
434
-
435
- <task type="auto">
436
- <name>Configure OpenAI key in Convex</name>
437
- <action>Run `npx convex env set OPENAI_API_KEY {user-provided-key}`</action>
438
- <verify>`npx convex env get OPENAI_API_KEY` returns the key (masked)</verify>
439
- </task>
440
- ```
441
-
442
- ## Automação de Dev Server
443
-
444
- | Framework | Comando de Início | Sinal de Pronto | URL Padrão |
445
- |-----------|-------------------|-----------------|------------|
446
- | Next.js | `npm run dev` | "Ready in" ou "started server" | http://localhost:3000 |
447
- | Vite | `npm run dev` | "ready in" | http://localhost:5173 |
448
- | Convex | `npx convex dev` | "Convex functions ready" | N/A (somente backend) |
449
- | Express | `npm start` | "listening on port" | http://localhost:3000 |
450
- | Django | `python manage.py runserver` | "Starting development server" | http://localhost:8000 |
451
-
452
- **Ciclo de vida do servidor:**
453
- ```bash
454
- # Run in background, capture PID
455
- npm run dev &
456
- DEV_SERVER_PID=$!
457
-
458
- # Wait for ready (max 30s) — uses fetch() for cross-platform compatibility
459
- timeout 30 bash -c 'until node -e "fetch(\"http://localhost:3000\").then(r=>{process.exit(r.ok?0:1)}).catch(()=>process.exit(1))" 2>/dev/null; do sleep 1; done'
460
- ```
461
-
462
- **Conflitos de porta:** Encerre o processo inativo (`lsof -ti:3000 | xargs kill`) ou use porta alternativa (`--port 3001`).
463
-
464
- **O servidor permanece rodando** durante os checkpoints. Encerre apenas quando o plano estiver completo, ao mudar para produção ou se a porta for necessária para outro serviço.
465
-
466
- ## Instalação de CLI
467
-
468
- | CLI | Auto-instalar? | Comando |
469
- |-----|----------------|---------|
470
- | npm/pnpm/yarn | Não - pergunte ao usuário | Usuário escolhe o gerenciador de pacotes |
471
- | vercel | Sim | `npm i -g vercel` |
472
- | gh (GitHub) | Sim | `brew install gh` (macOS) ou `apt install gh` (Linux) |
473
- | stripe | Sim | `npm i -g stripe` |
474
- | supabase | Sim | `npm i -g supabase` |
475
- | convex | Não - use npx | `npx convex` (sem instalação necessária) |
476
- | fly | Sim | `brew install flyctl` ou instalador curl |
477
- | railway | Sim | `npm i -g @railway/cli` |
478
-
479
- **Protocolo:** Tente o comando → "command not found" → é auto-instalável? → sim: instale silenciosamente, tente novamente → não: checkpoint pedindo ao usuário para instalar.
480
-
481
- ## Falhas de Automação Pré-Checkpoint
482
-
483
- | Falha | Resposta |
484
- |-------|----------|
485
- | Servidor não inicia | Verifique o erro, corrija o problema, tente novamente (não avance para checkpoint) |
486
- | Porta em uso | Encerre o processo inativo ou use porta alternativa |
487
- | Dependência ausente | Execute `npm install`, tente novamente |
488
- | Erro de build | Corrija o erro primeiro (problema de código, não de checkpoint) |
489
- | Erro de auth | Crie checkpoint de auth gate |
490
- | Timeout de rede | Tente novamente com backoff, então checkpoint se persistir |
491
-
492
- **Nunca apresente um checkpoint com ambiente de verificação quebrado.** Se o servidor local não responde, não peça ao usuário para "acessar localhost:3000".
493
-
494
- > **Nota multiplataforma:** Use `node -e "fetch('http://localhost:3000').then(r=>console.log(r.status))"` em vez de `curl` para health checks. `curl` tem problemas no Windows MSYS/Git Bash por causa de mangling de SSL/path.
495
-
496
- ```xml
497
- <!-- ERRADO: Checkpoint com ambiente quebrado -->
498
- <task type="checkpoint:human-verify">
499
- <what-built>Dashboard (servidor falhou ao iniciar)</what-built>
500
- <how-to-verify>Acesse http://localhost:3000...</how-to-verify>
501
- </task>
502
-
503
- <!-- CERTO: Corrija primeiro, depois o checkpoint -->
504
- <task type="auto">
505
- <name>Fix server startup issue</name>
506
- <action>Investigate error, fix root cause, restart server</action>
507
- <verify>fetch http://localhost:3000 returns 200</verify>
508
- </task>
509
-
510
- <task type="checkpoint:human-verify">
511
- <what-built>Dashboard - servidor rodando em http://localhost:3000</what-built>
512
- <how-to-verify>Acesse http://localhost:3000/dashboard...</how-to-verify>
513
- </task>
514
- ```
515
-
516
- ## Referência Rápida de Automatizável
517
-
518
- | Ação | Automatizável? | Claude faz? |
519
- |------|----------------|-------------|
520
- | Deploy para Vercel | Sim (`vercel`) | SIM |
521
- | Criar webhook no Stripe | Sim (API) | SIM |
522
- | Escrever arquivo .env | Sim (ferramenta Write) | SIM |
523
- | Criar DB no Upstash | Sim (`upstash`) | SIM |
524
- | Rodar testes | Sim (`npm test`) | SIM |
525
- | Iniciar dev server | Sim (`npm run dev`) | SIM |
526
- | Adicionar env vars no Convex | Sim (`npx convex env set`) | SIM |
527
- | Adicionar env vars no Vercel | Sim (`vercel env add`) | SIM |
528
- | Popular banco de dados | Sim (CLI/API) | SIM |
529
- | Clicar link de verificação por e-mail | Não | NÃO |
530
- | Inserir cartão de crédito com 3DS | Não | NÃO |
531
- | Completar OAuth no navegador | Não | NÃO |
532
- | Verificar visualmente se a UI está correta | Não | NÃO |
533
- | Testar fluxos interativos de usuário | Não | NÃO |
534
-
535
- </automation_reference>
536
-
537
- <writing_guidelines>
538
-
539
- **FAÇA:**
540
- - Automatize tudo via CLI/API antes do checkpoint
541
- - Seja específico: "Acesse https://myapp.vercel.app" em vez de "verifique o deploy"
542
- - Numere os passos de verificação
543
- - Declare os resultados esperados: "Você deve ver X"
544
- - Forneça contexto: por que esse checkpoint existe
545
-
546
- **NÃO FAÇA:**
547
- - Pedir ao humano para fazer trabalho que Claude pode automatizar ❌
548
- - Assumir conhecimento: "Configure as configurações usuais" ❌
549
- - Pular etapas: "Configure o banco de dados" (muito vago) ❌
550
- - Misturar múltiplas verificações em um único checkpoint ❌
551
-
552
- **Posicionamento:**
553
- - **Após a automação ser concluída** - não antes de Claude fazer o trabalho
554
- - **Após construção de UI** - antes de declarar a fase completa
555
- - **Antes do trabalho dependente** - decisões antes da implementação
556
- - **Em pontos de integração** - após configurar serviços externos
557
-
558
- **Posicionamento ruim:** Antes da automação ❌ | Muito frequente ❌ | Tarde demais (tarefas dependentes já precisavam do resultado) ❌
559
- </writing_guidelines>
560
-
561
- <examples>
562
-
563
- ### Exemplo 1: Configuração de Banco de Dados (Sem Checkpoint Necessário)
564
-
565
- ```xml
566
- <task type="auto">
567
- <name>Create Upstash Redis database</name>
568
- <files>.env</files>
569
- <action>
570
- 1. Run `upstash redis create myapp-cache --region us-east-1`
571
- 2. Capture connection URL from output
572
- 3. Write to .env: UPSTASH_REDIS_URL={url}
573
- 4. Verify connection with test command
574
- </action>
575
- <verify>
576
- - upstash redis list shows database
577
- - .env contains UPSTASH_REDIS_URL
578
- - Test connection succeeds
579
- </verify>
580
- <done>Redis database created and configured</done>
581
- </task>
582
-
583
- <!-- SEM CHECKPOINT NECESSÁRIO - Claude automatizou tudo e verificou programaticamente -->
584
- ```
585
-
586
- ### Exemplo 2: Fluxo Completo de Auth (Único checkpoint ao final)
587
-
588
- ```xml
589
- <task type="auto">
590
- <name>Create user schema</name>
591
- <files>src/db/schema.ts</files>
592
- <action>Define User, Session, Account tables with Drizzle ORM</action>
593
- <verify>npm run db:generate succeeds</verify>
594
- </task>
595
-
596
- <task type="auto">
597
- <name>Create auth API routes</name>
598
- <files>src/app/api/auth/[...nextauth]/route.ts</files>
599
- <action>Set up NextAuth with GitHub provider, JWT strategy</action>
600
- <verify>TypeScript compiles, no errors</verify>
601
- </task>
602
-
603
- <task type="auto">
604
- <name>Create login UI</name>
605
- <files>src/app/login/page.tsx, src/components/LoginButton.tsx</files>
606
- <action>Create login page with GitHub OAuth button</action>
607
- <verify>npm run build succeeds</verify>
608
- </task>
609
-
610
- <task type="auto">
611
- <name>Start dev server for auth testing</name>
612
- <action>Run `npm run dev` in background, wait for ready signal</action>
613
- <verify>fetch http://localhost:3000 returns 200</verify>
614
- <done>Dev server running at http://localhost:3000</done>
615
- </task>
616
-
617
- <!-- UM checkpoint ao final verifica o fluxo completo -->
618
- <task type="checkpoint:human-verify" gate="blocking">
619
- <what-built>Fluxo completo de autenticação - dev server rodando em http://localhost:3000</what-built>
620
- <how-to-verify>
621
- 1. Acesse: http://localhost:3000/login
622
- 2. Clique em "Sign in with GitHub"
623
- 3. Complete o fluxo OAuth do GitHub
624
- 4. Verifique: Redirecionado para /dashboard, nome do usuário exibido
625
- 5. Atualize a página: Sessão persiste
626
- 6. Clique em logout: Sessão encerrada
627
- </how-to-verify>
628
- <resume-signal>Digite "aprovado" ou descreva problemas</resume-signal>
629
- </task>
630
- ```
631
- </examples>
632
-
633
- <anti_patterns>
634
-
635
- ### ❌ RUIM: Pedir ao usuário para iniciar o dev server
636
-
637
- ```xml
638
- <task type="checkpoint:human-verify" gate="blocking">
639
- <what-built>Dashboard component</what-built>
640
- <how-to-verify>
641
- 1. Run: npm run dev
642
- 2. Visit: http://localhost:3000/dashboard
643
- 3. Check layout is correct
644
- </how-to-verify>
645
- </task>
646
- ```
647
-
648
- **Por que é ruim:** Claude pode executar `npm run dev`. O usuário deve apenas acessar URLs, não executar comandos.
649
-
650
- ### ✅ BOM: Claude inicia o servidor, usuário acessa
651
-
652
- ```xml
653
- <task type="auto">
654
- <name>Start dev server</name>
655
- <action>Run `npm run dev` in background</action>
656
- <verify>fetch http://localhost:3000 returns 200</verify>
657
- </task>
658
-
659
- <task type="checkpoint:human-verify" gate="blocking">
660
- <what-built>Dashboard em http://localhost:3000/dashboard (servidor rodando)</what-built>
661
- <how-to-verify>
662
- Acesse http://localhost:3000/dashboard e verifique:
663
- 1. Layout corresponde ao design
664
- 2. Sem erros no console
665
- </how-to-verify>
666
- </task>
667
- ```
668
-
669
- ### ❌ RUIM: Pedir ao humano para fazer deploy / ✅ BOM: Claude automatiza
670
-
671
- ```xml
672
- <!-- RUIM: Pedir ao usuário para fazer deploy via dashboard -->
673
- <task type="checkpoint:human-action" gate="blocking">
674
- <action>Deploy to Vercel</action>
675
- <instructions>Visit vercel.com/new → Import repo → Click Deploy → Copy URL</instructions>
676
- </task>
677
-
678
- <!-- BOM: Claude faz o deploy, usuário verifica -->
679
- <task type="auto">
680
- <name>Deploy to Vercel</name>
681
- <action>Run `vercel --yes`. Capture URL.</action>
682
- <verify>vercel ls shows deployment, fetch returns 200</verify>
683
- </task>
684
-
685
- <task type="checkpoint:human-verify">
686
- <what-built>Deploy realizado em {url}</what-built>
687
- <how-to-verify>Acesse {url}, verifique se a homepage carrega</how-to-verify>
688
- <resume-signal>Digite "aprovado"</resume-signal>
689
- </task>
690
- ```
691
-
692
- ### ❌ RUIM: Muitos checkpoints / ✅ BOM: Checkpoint único
693
-
694
- ```xml
695
- <!-- RUIM: Checkpoint após cada tarefa -->
696
- <task type="auto">Create schema</task>
697
- <task type="checkpoint:human-verify">Check schema</task>
698
- <task type="auto">Create API route</task>
699
- <task type="checkpoint:human-verify">Check API</task>
700
- <task type="auto">Create UI form</task>
701
- <task type="checkpoint:human-verify">Check form</task>
702
-
703
- <!-- BOM: Um checkpoint ao final -->
704
- <task type="auto">Create schema</task>
705
- <task type="auto">Create API route</task>
706
- <task type="auto">Create UI form</task>
707
-
708
- <task type="checkpoint:human-verify">
709
- <what-built>Fluxo completo de auth (schema + API + UI)</what-built>
710
- <how-to-verify>Teste o fluxo completo: cadastro, login, acesso à página protegida</how-to-verify>
711
- <resume-signal>Digite "aprovado"</resume-signal>
712
- </task>
713
- ```
714
-
715
- ### ❌ RUIM: Verificação vaga / ✅ BOM: Passos específicos
716
-
717
- ```xml
718
- <!-- RUIM -->
719
- <task type="checkpoint:human-verify">
720
- <what-built>Dashboard</what-built>
721
- <how-to-verify>Verifique se funciona</how-to-verify>
722
- </task>
723
-
724
- <!-- BOM -->
725
- <task type="checkpoint:human-verify">
726
- <what-built>Dashboard responsivo - servidor rodando em http://localhost:3000</what-built>
727
- <how-to-verify>
728
- Acesse http://localhost:3000/dashboard e verifique:
729
- 1. Desktop (>1024px): Sidebar visível, área de conteúdo preenche o espaço restante
730
- 2. Tablet (768px): Sidebar colapsa para ícones
731
- 3. Mobile (375px): Sidebar oculta, menu hambúrguer no header
732
- 4. Sem scroll horizontal em nenhum tamanho
733
- </how-to-verify>
734
- <resume-signal>Digite "aprovado" ou descreva problemas de layout</resume-signal>
735
- </task>
736
- ```
737
-
738
- ### ❌ RUIM: Pedir ao usuário para executar comandos CLI
739
-
740
- ```xml
741
- <task type="checkpoint:human-action">
742
- <action>Run database migrations</action>
743
- <instructions>Run: npx prisma migrate deploy && npx prisma db seed</instructions>
744
- </task>
745
- ```
746
-
747
- **Por que é ruim:** Claude pode executar esses comandos. O usuário nunca deve executar comandos CLI.
748
-
749
- ### ❌ RUIM: Pedir ao usuário para copiar valores entre serviços
750
-
751
- ```xml
752
- <task type="checkpoint:human-action">
753
- <action>Configure webhook URL in Stripe</action>
754
- <instructions>Copy deployment URL → Stripe Dashboard → Webhooks → Add endpoint → Copy secret → Add to .env</instructions>
755
- </task>
756
- ```
757
-
758
- **Por que é ruim:** O Stripe tem uma API. Claude deve criar o webhook via API e escrever no .env diretamente.
759
-
760
- </anti_patterns>
761
-
762
- <summary>
763
-
764
- Checkpoints formalizam pontos de human-in-the-loop para verificação e decisões, não trabalho manual.
765
-
766
- **A regra de ouro:** Se Claude PODE automatizar, Claude DEVE automatizar.
767
-
768
- **Prioridade de checkpoints:**
769
- 1. **checkpoint:human-verify** (90%) - Claude automatizou tudo, humano confirma correção visual/funcional
770
- 2. **checkpoint:decision** (9%) - Humano faz escolhas arquiteturais/tecnológicas
771
- 3. **checkpoint:human-action** (1%) - Passos manuais verdadeiramente inevitáveis sem API/CLI
772
-
773
- **Quando NÃO usar checkpoints:**
774
- - Coisas que Claude pode verificar programaticamente (testes, builds)
775
- - Operações de arquivo (Claude pode ler arquivos)
776
- - Correção de código (testes e análise estática)
777
- - Qualquer coisa automatizável via CLI/API
778
- </summary>
1
+ <overview>
2
+ Planos executam de forma autônoma. Checkpoints formalizam pontos de interação onde a verificação humana ou decisões são necessárias.
3
+
4
+ **Princípio central:** Claude automatiza tudo via CLI/API. Checkpoints são para verificação e decisões, não trabalho manual.
5
+
6
+ **Regras de ouro:**
7
+ 1. **Se Claude pode executar, Claude executa** - Nunca peça ao usuário para executar comandos CLI, iniciar servidores ou rodar builds
8
+ 2. **Claude configura o ambiente de verificação** - Inicia dev servers, popula bancos de dados, configura variáveis de ambiente
9
+ 3. **O usuário só faz o que exige julgamento humano** - Verificações visuais, avaliação de UX, "isso parece certo?"
10
+ 4. **Secrets vêm do usuário, automação vem do Claude** - Peça chaves de API, então Claude as usa via CLI
11
+ 5. **Modo automático ignora checkpoints de verificação/decisão** — Quando `workflow._auto_chain_active` ou `workflow.auto_advance` for true na config: human-verify é aprovado automaticamente, decision seleciona a primeira opção automaticamente, human-action ainda para (auth gates não podem ser automatizados)
12
+ </overview>
13
+
14
+ <checkpoint_types>
15
+
16
+ <type name="human-verify">
17
+ ## checkpoint:human-verify (Mais Comum - 90%)
18
+
19
+ **Quando:** Claude concluiu trabalho automatizado, humano confirma que funciona corretamente.
20
+
21
+ **Use para:**
22
+ - Verificações visuais de UI (layout, estilo, responsividade)
23
+ - Fluxos interativos (navegar por wizard, testar fluxos de usuário)
24
+ - Verificação funcional (funcionalidade funciona como esperado)
25
+ - Qualidade de reprodução de áudio/vídeo
26
+ - Suavidade de animações
27
+ - Testes de acessibilidade
28
+
29
+ **Estrutura:**
30
+ ```xml
31
+ <task type="checkpoint:human-verify" gate="blocking">
32
+ <what-built>[O que Claude automatizou e implantou/construiu]</what-built>
33
+ <how-to-verify>
34
+ [Passos exatos para testar - URLs, comandos, comportamento esperado]
35
+ </how-to-verify>
36
+ <resume-signal>[Como continuar - "aprovado", "sim", ou descreva problemas]</resume-signal>
37
+ </task>
38
+ ```
39
+
40
+ **Exemplo: Componente de UI (mostra padrão-chave: Claude inicia servidor ANTES do checkpoint)**
41
+ ```xml
42
+ <task type="auto">
43
+ <name>Build responsive dashboard layout</name>
44
+ <files>src/components/Dashboard.tsx, src/app/dashboard/page.tsx</files>
45
+ <action>Create dashboard with sidebar, header, and content area. Use Tailwind responsive classes for mobile.</action>
46
+ <verify>npm run build succeeds, no TypeScript errors</verify>
47
+ <done>Dashboard component builds without errors</done>
48
+ </task>
49
+
50
+ <task type="auto">
51
+ <name>Start dev server for verification</name>
52
+ <action>Run `npm run dev` in background, wait for "ready" message, capture port</action>
53
+ <verify>fetch http://localhost:3000 returns 200</verify>
54
+ <done>Dev server running at http://localhost:3000</done>
55
+ </task>
56
+
57
+ <task type="checkpoint:human-verify" gate="blocking">
58
+ <what-built>Layout responsivo do dashboard - dev server rodando em http://localhost:3000</what-built>
59
+ <how-to-verify>
60
+ Acesse http://localhost:3000/dashboard e verifique:
61
+ 1. Desktop (>1024px): Sidebar à esquerda, conteúdo à direita, header no topo
62
+ 2. Tablet (768px): Sidebar colapsa para menu hambúrguer
63
+ 3. Mobile (375px): Layout de coluna única, nav inferior aparece
64
+ 4. Sem deslocamento de layout ou scroll horizontal em qualquer tamanho
65
+ </how-to-verify>
66
+ <resume-signal>Digite "aprovado" ou descreva problemas de layout</resume-signal>
67
+ </task>
68
+ ```
69
+
70
+ **Exemplo: Build do Xcode**
71
+ ```xml
72
+ <task type="auto">
73
+ <name>Build macOS app with Xcode</name>
74
+ <files>App.xcodeproj, Sources/</files>
75
+ <action>Run `xcodebuild -project App.xcodeproj -scheme App build`. Check for compilation errors in output.</action>
76
+ <verify>Build output contains "BUILD SUCCEEDED", no errors</verify>
77
+ <done>App builds successfully</done>
78
+ </task>
79
+
80
+ <task type="checkpoint:human-verify" gate="blocking">
81
+ <what-built>App macOS construído em DerivedData/Build/Products/Debug/App.app</what-built>
82
+ <how-to-verify>
83
+ Abra App.app e teste:
84
+ - App inicia sem crashes
85
+ - Ícone na barra de menu aparece
86
+ - Janela de preferências abre corretamente
87
+ - Sem glitches visuais ou problemas de layout
88
+ </how-to-verify>
89
+ <resume-signal>Digite "aprovado" ou descreva problemas</resume-signal>
90
+ </task>
91
+ ```
92
+ </type>
93
+
94
+ <type name="decision">
95
+ ## checkpoint:decision (9%)
96
+
97
+ **Quando:** Humano deve fazer uma escolha que afeta a direção da implementação.
98
+
99
+ **Use para:**
100
+ - Seleção de tecnologia (qual provedor de auth, qual banco de dados)
101
+ - Decisões de arquitetura (monorepo vs repositórios separados)
102
+ - Escolhas de design (esquema de cores, abordagem de layout)
103
+ - Priorização de funcionalidades (qual variante construir)
104
+ - Decisões de modelo de dados (estrutura do schema)
105
+
106
+ **Estrutura:**
107
+ ```xml
108
+ <task type="checkpoint:decision" gate="blocking">
109
+ <decision>[O que está sendo decidido]</decision>
110
+ <context>[Por que essa decisão importa]</context>
111
+ <options>
112
+ <option id="option-a">
113
+ <name>[Nome da opção]</name>
114
+ <pros>[Benefícios]</pros>
115
+ <cons>[Compensações]</cons>
116
+ </option>
117
+ <option id="option-b">
118
+ <name>[Nome da opção]</name>
119
+ <pros>[Benefícios]</pros>
120
+ <cons>[Compensações]</cons>
121
+ </option>
122
+ </options>
123
+ <resume-signal>[Como indicar a escolha]</resume-signal>
124
+ </task>
125
+ ```
126
+
127
+ **Exemplo: Seleção de Provedor de Auth**
128
+ ```xml
129
+ <task type="checkpoint:decision" gate="blocking">
130
+ <decision>Select authentication provider</decision>
131
+ <context>
132
+ Need user authentication for the app. Three solid options with different tradeoffs.
133
+ </context>
134
+ <options>
135
+ <option id="supabase">
136
+ <name>Supabase Auth</name>
137
+ <pros>Built-in with Supabase DB we're using, generous free tier, row-level security integration</pros>
138
+ <cons>Less customizable UI, tied to Supabase ecosystem</cons>
139
+ </option>
140
+ <option id="clerk">
141
+ <name>Clerk</name>
142
+ <pros>Beautiful pre-built UI, best developer experience, excellent docs</pros>
143
+ <cons>Paid after 10k MAU, vendor lock-in</cons>
144
+ </option>
145
+ <option id="nextauth">
146
+ <name>NextAuth.js</name>
147
+ <pros>Free, self-hosted, maximum control, widely adopted</pros>
148
+ <cons>More setup work, you manage security updates, UI is DIY</cons>
149
+ </option>
150
+ </options>
151
+ <resume-signal>Select: supabase, clerk, or nextauth</resume-signal>
152
+ </task>
153
+ ```
154
+
155
+ **Exemplo: Seleção de Banco de Dados**
156
+ ```xml
157
+ <task type="checkpoint:decision" gate="blocking">
158
+ <decision>Select database for user data</decision>
159
+ <context>
160
+ App needs persistent storage for users, sessions, and user-generated content.
161
+ Expected scale: 10k users, 1M records first year.
162
+ </context>
163
+ <options>
164
+ <option id="supabase">
165
+ <name>Supabase (Postgres)</name>
166
+ <pros>Full SQL, generous free tier, built-in auth, real-time subscriptions</pros>
167
+ <cons>Vendor lock-in for real-time features, less flexible than raw Postgres</cons>
168
+ </option>
169
+ <option id="planetscale">
170
+ <name>PlanetScale (MySQL)</name>
171
+ <pros>Serverless scaling, branching workflow, excellent DX</pros>
172
+ <cons>MySQL not Postgres, no foreign keys in free tier</cons>
173
+ </option>
174
+ <option id="convex">
175
+ <name>Convex</name>
176
+ <pros>Real-time by default, TypeScript-native, automatic caching</pros>
177
+ <cons>Newer platform, different mental model, less SQL flexibility</cons>
178
+ </option>
179
+ </options>
180
+ <resume-signal>Select: supabase, planetscale, or convex</resume-signal>
181
+ </task>
182
+ ```
183
+ </type>
184
+
185
+ <type name="human-action">
186
+ ## checkpoint:human-action (1% - Raro)
187
+
188
+ **Quando:** A ação NÃO tem CLI/API e requer interação exclusivamente humana, OU Claude encontrou um auth gate durante a automação.
189
+
190
+ **Use APENAS para:**
191
+ - **Auth gates** - Claude tentou CLI/API mas precisa de credenciais (isso NÃO é uma falha)
192
+ - Links de verificação por e-mail (clicar no e-mail)
193
+ - Códigos 2FA por SMS (verificação por telefone)
194
+ - Aprovações manuais de conta (plataforma exige revisão humana)
195
+ - Fluxos 3D Secure de cartão de crédito (autorização de pagamento via web)
196
+ - Aprovações de app OAuth (aprovação via web)
197
+
198
+ **NÃO use para trabalho manual pré-planejado:**
199
+ - Fazer deploy (use CLI - auth gate se necessário)
200
+ - Criar webhooks/bancos de dados (use API/CLI - auth gate se necessário)
201
+ - Rodar builds/testes (use a ferramenta Bash)
202
+ - Criar arquivos (use a ferramenta Write)
203
+
204
+ **Estrutura:**
205
+ ```xml
206
+ <task type="checkpoint:human-action" gate="blocking">
207
+ <action>[O que o humano deve fazer - Claude já fez tudo que é automatizável]</action>
208
+ <instructions>
209
+ [O que Claude já automatizou]
210
+ [A UMA coisa que requer ação humana]
211
+ </instructions>
212
+ <verification>[O que Claude pode verificar depois]</verification>
213
+ <resume-signal>[Como continuar]</resume-signal>
214
+ </task>
215
+ ```
216
+
217
+ **Exemplo: Verificação de E-mail**
218
+ ```xml
219
+ <task type="auto">
220
+ <name>Create SendGrid account via API</name>
221
+ <action>Use SendGrid API to create subuser account with provided email. Request verification email.</action>
222
+ <verify>API returns 201, account created</verify>
223
+ <done>Account created, verification email sent</done>
224
+ </task>
225
+
226
+ <task type="checkpoint:human-action" gate="blocking">
227
+ <action>Completar verificação de e-mail da conta SendGrid</action>
228
+ <instructions>
229
+ Criei a conta e solicitei o e-mail de verificação.
230
+ Verifique sua caixa de entrada pelo link de verificação do SendGrid e clique nele.
231
+ </instructions>
232
+ <verification>Chave de API do SendGrid funciona: teste curl bem-sucedido</verification>
233
+ <resume-signal>Digite "feito" quando o e-mail for verificado</resume-signal>
234
+ </task>
235
+ ```
236
+
237
+ **Exemplo: Auth Gate (Checkpoint Dinâmico)**
238
+ ```xml
239
+ <task type="auto">
240
+ <name>Deploy to Vercel</name>
241
+ <files>.vercel/, vercel.json</files>
242
+ <action>Run `vercel --yes` to deploy</action>
243
+ <verify>vercel ls shows deployment, fetch returns 200</verify>
244
+ </task>
245
+
246
+ <!-- Se vercel retornar "Error: Not authenticated", Claude cria checkpoint dinamicamente -->
247
+
248
+ <task type="checkpoint:human-action" gate="blocking">
249
+ <action>Autenticar o CLI Vercel para que eu possa continuar o deploy</action>
250
+ <instructions>
251
+ Tentei fazer o deploy mas recebi erro de autenticação.
252
+ Execute: vercel login
253
+ Isso abrirá seu navegador - complete o fluxo de autenticação.
254
+ </instructions>
255
+ <verification>vercel whoami retorna o e-mail da sua conta</verification>
256
+ <resume-signal>Digite "feito" quando autenticado</resume-signal>
257
+ </task>
258
+
259
+ <!-- Após autenticação, Claude tenta o deploy novamente -->
260
+
261
+ <task type="auto">
262
+ <name>Retry Vercel deployment</name>
263
+ <action>Run `vercel --yes` (now authenticated)</action>
264
+ <verify>vercel ls shows deployment, fetch returns 200</verify>
265
+ </task>
266
+ ```
267
+
268
+ **Distinção-chave:** Auth gates são criados dinamicamente quando Claude encontra erros de auth. NÃO são pré-planejados — Claude automatiza primeiro, pede credenciais apenas quando bloqueado.
269
+ </type>
270
+ </checkpoint_types>
271
+
272
+ <execution_protocol>
273
+
274
+ Quando Claude encontra `type="checkpoint:*"`:
275
+
276
+ 1. **Pare imediatamente** - não avance para a próxima tarefa
277
+ 2. **Exiba o checkpoint claramente** usando o formato abaixo
278
+ 3. **Aguarde a resposta do usuário** - não simule conclusão
279
+ 4. **Verifique se possível** - verifique arquivos, rode testes, o que for especificado
280
+ 5. **Retome a execução** - continue para a próxima tarefa apenas após confirmação
281
+
282
+ **Para checkpoint:human-verify:**
283
+ ```
284
+ ╔═══════════════════════════════════════════════════════╗
285
+ ║ CHECKPOINT: Verificação Necessária ║
286
+ ╚═══════════════════════════════════════════════════════╝
287
+
288
+ Progresso: 5/8 tarefas concluídas
289
+ Tarefa: Layout responsivo do dashboard
290
+
291
+ Construído: Dashboard responsivo em /dashboard
292
+
293
+ Como verificar:
294
+ 1. Acesse: http://localhost:3000/dashboard
295
+ 2. Desktop (>1024px): Sidebar visível, conteúdo preenche o espaço restante
296
+ 3. Tablet (768px): Sidebar colapsa para ícones
297
+ 4. Mobile (375px): Sidebar oculta, menu hambúrguer aparece
298
+
299
+ ────────────────────────────────────────────────────────
300
+ → SUA AÇÃO: Digite "aprovado" ou descreva problemas
301
+ ────────────────────────────────────────────────────────
302
+ ```
303
+
304
+ **Para checkpoint:decision:**
305
+ ```
306
+ ╔═══════════════════════════════════════════════════════╗
307
+ ║ CHECKPOINT: Decisão Necessária ║
308
+ ╚═══════════════════════════════════════════════════════╝
309
+
310
+ Progresso: 2/6 tarefas concluídas
311
+ Tarefa: Selecionar provedor de autenticação
312
+
313
+ Decisão: Qual provedor de auth devemos usar?
314
+
315
+ Contexto: Precisamos de autenticação de usuário. Três opções com compensações diferentes.
316
+
317
+ Opções:
318
+ 1. supabase - Integrado ao nosso DB, plano gratuito
319
+ Prós: Integração com row-level security, plano gratuito generoso
320
+ Contras: UI menos customizável, lock-in no ecossistema
321
+
322
+ 2. clerk - Melhor DX, pago após 10k usuários
323
+ Prós: UI pré-construída linda, documentação excelente
324
+ Contras: Vendor lock-in, preço em escala
325
+
326
+ 3. nextauth - Auto-hospedado, controle máximo
327
+ Prós: Gratuito, sem vendor lock-in, amplamente adotado
328
+ Contras: Mais trabalho de configuração, atualizações de segurança por conta própria
329
+
330
+ ────────────────────────────────────────────────────────
331
+ → SUA AÇÃO: Selecione supabase, clerk ou nextauth
332
+ ────────────────────────────────────────────────────────
333
+ ```
334
+
335
+ **Para checkpoint:human-action:**
336
+ ```
337
+ ╔═══════════════════════════════════════════════════════╗
338
+ ║ CHECKPOINT: Ação Necessária ║
339
+ ╚═══════════════════════════════════════════════════════╝
340
+
341
+ Progresso: 3/8 tarefas concluídas
342
+ Tarefa: Deploy para Vercel
343
+
344
+ Tentado: vercel --yes
345
+ Erro: Not authenticated. Please run 'vercel login'
346
+
347
+ O que você precisa fazer:
348
+ 1. Execute: vercel login
349
+ 2. Complete a autenticação no navegador quando abrir
350
+ 3. Volte aqui quando concluído
351
+
352
+ Vou verificar: vercel whoami retorna sua conta
353
+
354
+ ────────────────────────────────────────────────────────
355
+ → SUA AÇÃO: Digite "feito" quando autenticado
356
+ ────────────────────────────────────────────────────────
357
+ ```
358
+ </execution_protocol>
359
+
360
+ <authentication_gates>
361
+
362
+ **Auth gate = Claude tentou CLI/API, recebeu erro de auth.** Não é uma falha — é um gate que requer entrada humana para desbloquear.
363
+
364
+ **Padrão:** Claude tenta automação → erro de auth → cria checkpoint:human-action → usuário autentica → Claude tenta novamente → continua
365
+
366
+ **Protocolo do gate:**
367
+ 1. Reconhecer que não é uma falha - auth ausente é esperado
368
+ 2. Parar a tarefa atual - não tentar repetidamente
369
+ 3. Criar checkpoint:human-action dinamicamente
370
+ 4. Fornecer passos exatos de autenticação
371
+ 5. Verificar que a autenticação funciona
372
+ 6. Tentar novamente a tarefa original
373
+ 7. Continuar normalmente
374
+
375
+ **Distinção-chave:**
376
+ - Checkpoint pré-planejado: "Preciso que você faça X" (errado - Claude deveria automatizar)
377
+ - Auth gate: "Tentei automatizar X mas preciso de credenciais" (correto - desbloqueia automação)
378
+
379
+ </authentication_gates>
380
+
381
+ <automation_reference>
382
+
383
+ **A regra:** Se tem CLI/API, Claude faz. Nunca peça ao humano para realizar trabalho automatizável.
384
+
385
+ ## Referência de CLI por Serviço
386
+
387
+ | Serviço | CLI/API | Comandos-chave | Auth Gate |
388
+ |---------|---------|----------------|-----------|
389
+ | Vercel | `vercel` | `--yes`, `env add`, `--prod`, `ls` | `vercel login` |
390
+ | Railway | `railway` | `init`, `up`, `variables set` | `railway login` |
391
+ | Fly | `fly` | `launch`, `deploy`, `secrets set` | `fly auth login` |
392
+ | Stripe | `stripe` + API | `listen`, `trigger`, chamadas API | API key no .env |
393
+ | Supabase | `supabase` | `init`, `link`, `db push`, `gen types` | `supabase login` |
394
+ | Upstash | `upstash` | `redis create`, `redis get` | `upstash auth login` |
395
+ | PlanetScale | `pscale` | `database create`, `branch create` | `pscale auth login` |
396
+ | GitHub | `gh` | `repo create`, `pr create`, `secret set` | `gh auth login` |
397
+ | Node | `npm`/`pnpm` | `install`, `run build`, `test`, `run dev` | N/A |
398
+ | Xcode | `xcodebuild` | `-project`, `-scheme`, `build`, `test` | N/A |
399
+ | Convex | `npx convex` | `dev`, `deploy`, `env set`, `env get` | `npx convex login` |
400
+
401
+ ## Automação de Variáveis de Ambiente
402
+
403
+ **Arquivos env:** Use as ferramentas Write/Edit. Nunca peça ao humano para criar .env manualmente.
404
+
405
+ **Variáveis env do dashboard via CLI:**
406
+
407
+ | Plataforma | Comando CLI | Exemplo |
408
+ |------------|-------------|---------|
409
+ | Convex | `npx convex env set` | `npx convex env set OPENAI_API_KEY sk-...` |
410
+ | Vercel | `vercel env add` | `vercel env add STRIPE_KEY production` |
411
+ | Railway | `railway variables set` | `railway variables set API_KEY=value` |
412
+ | Fly | `fly secrets set` | `fly secrets set DATABASE_URL=...` |
413
+ | Supabase | `supabase secrets set` | `supabase secrets set MY_SECRET=value` |
414
+
415
+ **Padrão de coleta de secrets:**
416
+ ```xml
417
+ <!-- ERRADO: Pedir ao usuário para adicionar env vars no dashboard -->
418
+ <task type="checkpoint:human-action">
419
+ <action>Add OPENAI_API_KEY to Convex dashboard</action>
420
+ <instructions>Go to dashboard.convex.dev → Settings → Environment Variables → Add</instructions>
421
+ </task>
422
+
423
+ <!-- CERTO: Claude pede o valor, depois adiciona via CLI -->
424
+ <task type="checkpoint:human-action">
425
+ <action>Forneça sua chave de API do OpenAI</action>
426
+ <instructions>
427
+ Preciso da sua chave de API do OpenAI para o backend Convex.
428
+ Obtenha em: https://platform.openai.com/api-keys
429
+ Cole a chave (começa com sk-)
430
+ </instructions>
431
+ <verification>Vou adicioná-la via `npx convex env set` e verificar</verification>
432
+ <resume-signal>Cole sua chave de API</resume-signal>
433
+ </task>
434
+
435
+ <task type="auto">
436
+ <name>Configure OpenAI key in Convex</name>
437
+ <action>Run `npx convex env set OPENAI_API_KEY {user-provided-key}`</action>
438
+ <verify>`npx convex env get OPENAI_API_KEY` returns the key (masked)</verify>
439
+ </task>
440
+ ```
441
+
442
+ ## Automação de Dev Server
443
+
444
+ | Framework | Comando de Início | Sinal de Pronto | URL Padrão |
445
+ |-----------|-------------------|-----------------|------------|
446
+ | Next.js | `npm run dev` | "Ready in" ou "started server" | http://localhost:3000 |
447
+ | Vite | `npm run dev` | "ready in" | http://localhost:5173 |
448
+ | Convex | `npx convex dev` | "Convex functions ready" | N/A (somente backend) |
449
+ | Express | `npm start` | "listening on port" | http://localhost:3000 |
450
+ | Django | `python manage.py runserver` | "Starting development server" | http://localhost:8000 |
451
+
452
+ **Ciclo de vida do servidor:**
453
+ ```bash
454
+ # Run in background, capture PID
455
+ npm run dev &
456
+ DEV_SERVER_PID=$!
457
+
458
+ # Wait for ready (max 30s) — uses fetch() for cross-platform compatibility
459
+ timeout 30 bash -c 'until node -e "fetch(\"http://localhost:3000\").then(r=>{process.exit(r.ok?0:1)}).catch(()=>process.exit(1))" 2>/dev/null; do sleep 1; done'
460
+ ```
461
+
462
+ **Conflitos de porta:** Encerre o processo inativo (`lsof -ti:3000 | xargs kill`) ou use porta alternativa (`--port 3001`).
463
+
464
+ **O servidor permanece rodando** durante os checkpoints. Encerre apenas quando o plano estiver completo, ao mudar para produção ou se a porta for necessária para outro serviço.
465
+
466
+ ## Instalação de CLI
467
+
468
+ | CLI | Auto-instalar? | Comando |
469
+ |-----|----------------|---------|
470
+ | npm/pnpm/yarn | Não - pergunte ao usuário | Usuário escolhe o gerenciador de pacotes |
471
+ | vercel | Sim | `npm i -g vercel` |
472
+ | gh (GitHub) | Sim | `brew install gh` (macOS) ou `apt install gh` (Linux) |
473
+ | stripe | Sim | `npm i -g stripe` |
474
+ | supabase | Sim | `npm i -g supabase` |
475
+ | convex | Não - use npx | `npx convex` (sem instalação necessária) |
476
+ | fly | Sim | `brew install flyctl` ou instalador curl |
477
+ | railway | Sim | `npm i -g @railway/cli` |
478
+
479
+ **Protocolo:** Tente o comando → "command not found" → é auto-instalável? → sim: instale silenciosamente, tente novamente → não: checkpoint pedindo ao usuário para instalar.
480
+
481
+ ## Falhas de Automação Pré-Checkpoint
482
+
483
+ | Falha | Resposta |
484
+ |-------|----------|
485
+ | Servidor não inicia | Verifique o erro, corrija o problema, tente novamente (não avance para checkpoint) |
486
+ | Porta em uso | Encerre o processo inativo ou use porta alternativa |
487
+ | Dependência ausente | Execute `npm install`, tente novamente |
488
+ | Erro de build | Corrija o erro primeiro (problema de código, não de checkpoint) |
489
+ | Erro de auth | Crie checkpoint de auth gate |
490
+ | Timeout de rede | Tente novamente com backoff, então checkpoint se persistir |
491
+
492
+ **Nunca apresente um checkpoint com ambiente de verificação quebrado.** Se o servidor local não responde, não peça ao usuário para "acessar localhost:3000".
493
+
494
+ > **Nota multiplataforma:** Use `node -e "fetch('http://localhost:3000').then(r=>console.log(r.status))"` em vez de `curl` para health checks. `curl` tem problemas no Windows MSYS/Git Bash por causa de mangling de SSL/path.
495
+
496
+ ```xml
497
+ <!-- ERRADO: Checkpoint com ambiente quebrado -->
498
+ <task type="checkpoint:human-verify">
499
+ <what-built>Dashboard (servidor falhou ao iniciar)</what-built>
500
+ <how-to-verify>Acesse http://localhost:3000...</how-to-verify>
501
+ </task>
502
+
503
+ <!-- CERTO: Corrija primeiro, depois o checkpoint -->
504
+ <task type="auto">
505
+ <name>Fix server startup issue</name>
506
+ <action>Investigate error, fix root cause, restart server</action>
507
+ <verify>fetch http://localhost:3000 returns 200</verify>
508
+ </task>
509
+
510
+ <task type="checkpoint:human-verify">
511
+ <what-built>Dashboard - servidor rodando em http://localhost:3000</what-built>
512
+ <how-to-verify>Acesse http://localhost:3000/dashboard...</how-to-verify>
513
+ </task>
514
+ ```
515
+
516
+ ## Referência Rápida de Automatizável
517
+
518
+ | Ação | Automatizável? | Claude faz? |
519
+ |------|----------------|-------------|
520
+ | Deploy para Vercel | Sim (`vercel`) | SIM |
521
+ | Criar webhook no Stripe | Sim (API) | SIM |
522
+ | Escrever arquivo .env | Sim (ferramenta Write) | SIM |
523
+ | Criar DB no Upstash | Sim (`upstash`) | SIM |
524
+ | Rodar testes | Sim (`npm test`) | SIM |
525
+ | Iniciar dev server | Sim (`npm run dev`) | SIM |
526
+ | Adicionar env vars no Convex | Sim (`npx convex env set`) | SIM |
527
+ | Adicionar env vars no Vercel | Sim (`vercel env add`) | SIM |
528
+ | Popular banco de dados | Sim (CLI/API) | SIM |
529
+ | Clicar link de verificação por e-mail | Não | NÃO |
530
+ | Inserir cartão de crédito com 3DS | Não | NÃO |
531
+ | Completar OAuth no navegador | Não | NÃO |
532
+ | Verificar visualmente se a UI está correta | Não | NÃO |
533
+ | Testar fluxos interativos de usuário | Não | NÃO |
534
+
535
+ </automation_reference>
536
+
537
+ <writing_guidelines>
538
+
539
+ **FAÇA:**
540
+ - Automatize tudo via CLI/API antes do checkpoint
541
+ - Seja específico: "Acesse https://myapp.vercel.app" em vez de "verifique o deploy"
542
+ - Numere os passos de verificação
543
+ - Declare os resultados esperados: "Você deve ver X"
544
+ - Forneça contexto: por que esse checkpoint existe
545
+
546
+ **NÃO FAÇA:**
547
+ - Pedir ao humano para fazer trabalho que Claude pode automatizar ❌
548
+ - Assumir conhecimento: "Configure as configurações usuais" ❌
549
+ - Pular etapas: "Configure o banco de dados" (muito vago) ❌
550
+ - Misturar múltiplas verificações em um único checkpoint ❌
551
+
552
+ **Posicionamento:**
553
+ - **Após a automação ser concluída** - não antes de Claude fazer o trabalho
554
+ - **Após construção de UI** - antes de declarar a fase completa
555
+ - **Antes do trabalho dependente** - decisões antes da implementação
556
+ - **Em pontos de integração** - após configurar serviços externos
557
+
558
+ **Posicionamento ruim:** Antes da automação ❌ | Muito frequente ❌ | Tarde demais (tarefas dependentes já precisavam do resultado) ❌
559
+ </writing_guidelines>
560
+
561
+ <examples>
562
+
563
+ ### Exemplo 1: Configuração de Banco de Dados (Sem Checkpoint Necessário)
564
+
565
+ ```xml
566
+ <task type="auto">
567
+ <name>Create Upstash Redis database</name>
568
+ <files>.env</files>
569
+ <action>
570
+ 1. Run `upstash redis create myapp-cache --region us-east-1`
571
+ 2. Capture connection URL from output
572
+ 3. Write to .env: UPSTASH_REDIS_URL={url}
573
+ 4. Verify connection with test command
574
+ </action>
575
+ <verify>
576
+ - upstash redis list shows database
577
+ - .env contains UPSTASH_REDIS_URL
578
+ - Test connection succeeds
579
+ </verify>
580
+ <done>Redis database created and configured</done>
581
+ </task>
582
+
583
+ <!-- SEM CHECKPOINT NECESSÁRIO - Claude automatizou tudo e verificou programaticamente -->
584
+ ```
585
+
586
+ ### Exemplo 2: Fluxo Completo de Auth (Único checkpoint ao final)
587
+
588
+ ```xml
589
+ <task type="auto">
590
+ <name>Create user schema</name>
591
+ <files>src/db/schema.ts</files>
592
+ <action>Define User, Session, Account tables with Drizzle ORM</action>
593
+ <verify>npm run db:generate succeeds</verify>
594
+ </task>
595
+
596
+ <task type="auto">
597
+ <name>Create auth API routes</name>
598
+ <files>src/app/api/auth/[...nextauth]/route.ts</files>
599
+ <action>Set up NextAuth with GitHub provider, JWT strategy</action>
600
+ <verify>TypeScript compiles, no errors</verify>
601
+ </task>
602
+
603
+ <task type="auto">
604
+ <name>Create login UI</name>
605
+ <files>src/app/login/page.tsx, src/components/LoginButton.tsx</files>
606
+ <action>Create login page with GitHub OAuth button</action>
607
+ <verify>npm run build succeeds</verify>
608
+ </task>
609
+
610
+ <task type="auto">
611
+ <name>Start dev server for auth testing</name>
612
+ <action>Run `npm run dev` in background, wait for ready signal</action>
613
+ <verify>fetch http://localhost:3000 returns 200</verify>
614
+ <done>Dev server running at http://localhost:3000</done>
615
+ </task>
616
+
617
+ <!-- UM checkpoint ao final verifica o fluxo completo -->
618
+ <task type="checkpoint:human-verify" gate="blocking">
619
+ <what-built>Fluxo completo de autenticação - dev server rodando em http://localhost:3000</what-built>
620
+ <how-to-verify>
621
+ 1. Acesse: http://localhost:3000/login
622
+ 2. Clique em "Sign in with GitHub"
623
+ 3. Complete o fluxo OAuth do GitHub
624
+ 4. Verifique: Redirecionado para /dashboard, nome do usuário exibido
625
+ 5. Atualize a página: Sessão persiste
626
+ 6. Clique em logout: Sessão encerrada
627
+ </how-to-verify>
628
+ <resume-signal>Digite "aprovado" ou descreva problemas</resume-signal>
629
+ </task>
630
+ ```
631
+ </examples>
632
+
633
+ <anti_patterns>
634
+
635
+ ### ❌ RUIM: Pedir ao usuário para iniciar o dev server
636
+
637
+ ```xml
638
+ <task type="checkpoint:human-verify" gate="blocking">
639
+ <what-built>Dashboard component</what-built>
640
+ <how-to-verify>
641
+ 1. Run: npm run dev
642
+ 2. Visit: http://localhost:3000/dashboard
643
+ 3. Check layout is correct
644
+ </how-to-verify>
645
+ </task>
646
+ ```
647
+
648
+ **Por que é ruim:** Claude pode executar `npm run dev`. O usuário deve apenas acessar URLs, não executar comandos.
649
+
650
+ ### ✅ BOM: Claude inicia o servidor, usuário acessa
651
+
652
+ ```xml
653
+ <task type="auto">
654
+ <name>Start dev server</name>
655
+ <action>Run `npm run dev` in background</action>
656
+ <verify>fetch http://localhost:3000 returns 200</verify>
657
+ </task>
658
+
659
+ <task type="checkpoint:human-verify" gate="blocking">
660
+ <what-built>Dashboard em http://localhost:3000/dashboard (servidor rodando)</what-built>
661
+ <how-to-verify>
662
+ Acesse http://localhost:3000/dashboard e verifique:
663
+ 1. Layout corresponde ao design
664
+ 2. Sem erros no console
665
+ </how-to-verify>
666
+ </task>
667
+ ```
668
+
669
+ ### ❌ RUIM: Pedir ao humano para fazer deploy / ✅ BOM: Claude automatiza
670
+
671
+ ```xml
672
+ <!-- RUIM: Pedir ao usuário para fazer deploy via dashboard -->
673
+ <task type="checkpoint:human-action" gate="blocking">
674
+ <action>Deploy to Vercel</action>
675
+ <instructions>Visit vercel.com/new → Import repo → Click Deploy → Copy URL</instructions>
676
+ </task>
677
+
678
+ <!-- BOM: Claude faz o deploy, usuário verifica -->
679
+ <task type="auto">
680
+ <name>Deploy to Vercel</name>
681
+ <action>Run `vercel --yes`. Capture URL.</action>
682
+ <verify>vercel ls shows deployment, fetch returns 200</verify>
683
+ </task>
684
+
685
+ <task type="checkpoint:human-verify">
686
+ <what-built>Deploy realizado em {url}</what-built>
687
+ <how-to-verify>Acesse {url}, verifique se a homepage carrega</how-to-verify>
688
+ <resume-signal>Digite "aprovado"</resume-signal>
689
+ </task>
690
+ ```
691
+
692
+ ### ❌ RUIM: Muitos checkpoints / ✅ BOM: Checkpoint único
693
+
694
+ ```xml
695
+ <!-- RUIM: Checkpoint após cada tarefa -->
696
+ <task type="auto">Create schema</task>
697
+ <task type="checkpoint:human-verify">Check schema</task>
698
+ <task type="auto">Create API route</task>
699
+ <task type="checkpoint:human-verify">Check API</task>
700
+ <task type="auto">Create UI form</task>
701
+ <task type="checkpoint:human-verify">Check form</task>
702
+
703
+ <!-- BOM: Um checkpoint ao final -->
704
+ <task type="auto">Create schema</task>
705
+ <task type="auto">Create API route</task>
706
+ <task type="auto">Create UI form</task>
707
+
708
+ <task type="checkpoint:human-verify">
709
+ <what-built>Fluxo completo de auth (schema + API + UI)</what-built>
710
+ <how-to-verify>Teste o fluxo completo: cadastro, login, acesso à página protegida</how-to-verify>
711
+ <resume-signal>Digite "aprovado"</resume-signal>
712
+ </task>
713
+ ```
714
+
715
+ ### ❌ RUIM: Verificação vaga / ✅ BOM: Passos específicos
716
+
717
+ ```xml
718
+ <!-- RUIM -->
719
+ <task type="checkpoint:human-verify">
720
+ <what-built>Dashboard</what-built>
721
+ <how-to-verify>Verifique se funciona</how-to-verify>
722
+ </task>
723
+
724
+ <!-- BOM -->
725
+ <task type="checkpoint:human-verify">
726
+ <what-built>Dashboard responsivo - servidor rodando em http://localhost:3000</what-built>
727
+ <how-to-verify>
728
+ Acesse http://localhost:3000/dashboard e verifique:
729
+ 1. Desktop (>1024px): Sidebar visível, área de conteúdo preenche o espaço restante
730
+ 2. Tablet (768px): Sidebar colapsa para ícones
731
+ 3. Mobile (375px): Sidebar oculta, menu hambúrguer no header
732
+ 4. Sem scroll horizontal em nenhum tamanho
733
+ </how-to-verify>
734
+ <resume-signal>Digite "aprovado" ou descreva problemas de layout</resume-signal>
735
+ </task>
736
+ ```
737
+
738
+ ### ❌ RUIM: Pedir ao usuário para executar comandos CLI
739
+
740
+ ```xml
741
+ <task type="checkpoint:human-action">
742
+ <action>Run database migrations</action>
743
+ <instructions>Run: npx prisma migrate deploy && npx prisma db seed</instructions>
744
+ </task>
745
+ ```
746
+
747
+ **Por que é ruim:** Claude pode executar esses comandos. O usuário nunca deve executar comandos CLI.
748
+
749
+ ### ❌ RUIM: Pedir ao usuário para copiar valores entre serviços
750
+
751
+ ```xml
752
+ <task type="checkpoint:human-action">
753
+ <action>Configure webhook URL in Stripe</action>
754
+ <instructions>Copy deployment URL → Stripe Dashboard → Webhooks → Add endpoint → Copy secret → Add to .env</instructions>
755
+ </task>
756
+ ```
757
+
758
+ **Por que é ruim:** O Stripe tem uma API. Claude deve criar o webhook via API e escrever no .env diretamente.
759
+
760
+ </anti_patterns>
761
+
762
+ <summary>
763
+
764
+ Checkpoints formalizam pontos de human-in-the-loop para verificação e decisões, não trabalho manual.
765
+
766
+ **A regra de ouro:** Se Claude PODE automatizar, Claude DEVE automatizar.
767
+
768
+ **Prioridade de checkpoints:**
769
+ 1. **checkpoint:human-verify** (90%) - Claude automatizou tudo, humano confirma correção visual/funcional
770
+ 2. **checkpoint:decision** (9%) - Humano faz escolhas arquiteturais/tecnológicas
771
+ 3. **checkpoint:human-action** (1%) - Passos manuais verdadeiramente inevitáveis sem API/CLI
772
+
773
+ **Quando NÃO usar checkpoints:**
774
+ - Coisas que Claude pode verificar programaticamente (testes, builds)
775
+ - Operações de arquivo (Claude pode ler arquivos)
776
+ - Correção de código (testes e análise estática)
777
+ - Qualquer coisa automatizável via CLI/API
778
+ </summary>