don-cheli-sdd 1.13.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 (351) hide show
  1. package/AGENTS.md +33 -0
  2. package/CHANGELOG.md +108 -0
  3. package/CLAUDE.md +114 -0
  4. package/LICENSE +190 -0
  5. package/README.es.md +611 -0
  6. package/README.md +640 -0
  7. package/README.pt.md +579 -0
  8. package/VERSION +1 -0
  9. package/agentes/README.md +28 -0
  10. package/agentes/prompts/estimador.md +29 -0
  11. package/comandos/bucle-completar.md +13 -0
  12. package/comandos/bucle-estado.md +13 -0
  13. package/comandos/bucle.md +74 -0
  14. package/comandos/especdev/actualizar.md +200 -0
  15. package/comandos/especdev/agente.md +43 -0
  16. package/comandos/especdev/analizar-sesiones.md +158 -0
  17. package/comandos/especdev/aplicar.md +73 -0
  18. package/comandos/especdev/archivar.md +69 -0
  19. package/comandos/especdev/auditar-seguridad.md +234 -0
  20. package/comandos/especdev/auditar.md +15 -0
  21. package/comandos/especdev/avance-rapido.md +64 -0
  22. package/comandos/especdev/cambios.md +14 -0
  23. package/comandos/especdev/capturar.md +61 -0
  24. package/comandos/especdev/cerrar-sesion.md +88 -0
  25. package/comandos/especdev/clarificar.md +98 -0
  26. package/comandos/especdev/comenzar.md +105 -0
  27. package/comandos/especdev/completo.md +49 -0
  28. package/comandos/especdev/continuar.md +59 -0
  29. package/comandos/especdev/contrato-api.md +223 -0
  30. package/comandos/especdev/contrato-ui.md +245 -0
  31. package/comandos/especdev/crear-skill.md +148 -0
  32. package/comandos/especdev/debate.md +119 -0
  33. package/comandos/especdev/desglosar.md +172 -0
  34. package/comandos/especdev/destilar.md +211 -0
  35. package/comandos/especdev/detectar-ambiguedad.md +81 -0
  36. package/comandos/especdev/diagnostico.md +92 -0
  37. package/comandos/especdev/dise/303/261ar.md +74 -0
  38. package/comandos/especdev/doctor.md +78 -0
  39. package/comandos/especdev/donde-estoy.md +32 -0
  40. package/comandos/especdev/especificar.md +189 -0
  41. package/comandos/especdev/estado.md +46 -0
  42. package/comandos/especdev/estimar.md +141 -0
  43. package/comandos/especdev/explorar.md +175 -0
  44. package/comandos/especdev/guardian.md +99 -0
  45. package/comandos/especdev/historial.md +14 -0
  46. package/comandos/especdev/implementar.md +227 -0
  47. package/comandos/especdev/incorporar.md +71 -0
  48. package/comandos/especdev/iniciar.md +82 -0
  49. package/comandos/especdev/limpiar-slop.md +88 -0
  50. package/comandos/especdev/marketplace.md +109 -0
  51. package/comandos/especdev/memorizar.md +31 -0
  52. package/comandos/especdev/mesa-redonda.md +60 -0
  53. package/comandos/especdev/mesa-tecnica.md +144 -0
  54. package/comandos/especdev/migrar.md +237 -0
  55. package/comandos/especdev/minar-referencias.md +214 -0
  56. package/comandos/especdev/planificar-tecnico.md +186 -0
  57. package/comandos/especdev/planning.md +264 -0
  58. package/comandos/especdev/poc.md +302 -0
  59. package/comandos/especdev/presentar.md +75 -0
  60. package/comandos/especdev/proponer.md +69 -0
  61. package/comandos/especdev/pseudocodigo.md +49 -0
  62. package/comandos/especdev/rapido.md +69 -0
  63. package/comandos/especdev/reflexionar.md +53 -0
  64. package/comandos/especdev/retro.md +14 -0
  65. package/comandos/especdev/reversa.md +155 -0
  66. package/comandos/especdev/revisar.md +231 -0
  67. package/comandos/especdev/traspasar.md +76 -0
  68. package/comandos/especdev/traspaso.md +43 -0
  69. package/comandos/especdev/uat.md +84 -0
  70. package/comandos/especdev/validar-spec.md +58 -0
  71. package/comandos/especdev/validar.md +40 -0
  72. package/comandos/historias-generar.md +74 -0
  73. package/comandos/razonar/5-porques.md +42 -0
  74. package/comandos/razonar/circulo-competencia.md +22 -0
  75. package/comandos/razonar/costo-oportunidad.md +21 -0
  76. package/comandos/razonar/inversion.md +40 -0
  77. package/comandos/razonar/mapa-territorio.md +22 -0
  78. package/comandos/razonar/minimizar-arrepentimiento.md +20 -0
  79. package/comandos/razonar/pareto.md +32 -0
  80. package/comandos/razonar/pre-mortem.md +22 -0
  81. package/comandos/razonar/primeros-principios.md +57 -0
  82. package/comandos/razonar/probabilistico.md +21 -0
  83. package/comandos/razonar/reversibilidad.md +27 -0
  84. package/comandos/razonar/rlm-cadena-pensamiento.md +189 -0
  85. package/comandos/razonar/rlm-descomposicion.md +216 -0
  86. package/comandos/razonar/rlm-verificacion.md +169 -0
  87. package/comandos/razonar/segundo-orden.md +35 -0
  88. package/ganchos/parar.md +10 -0
  89. package/ganchos/post-herramienta.md +9 -0
  90. package/ganchos/pre-herramienta.md +19 -0
  91. package/habilidades/arnes-agente/HABILIDAD.md +164 -0
  92. package/habilidades/auto-correccion/HABILIDAD.md +114 -0
  93. package/habilidades/brainstorming/HABILIDAD.md +88 -0
  94. package/habilidades/cambio-carpeta/HABILIDAD.md +100 -0
  95. package/habilidades/code-rag/HABILIDAD.md +306 -0
  96. package/habilidades/contabilidad-tokens/HABILIDAD.md +109 -0
  97. package/habilidades/delta-specs/HABILIDAD.md +102 -0
  98. package/habilidades/desarrollo-subagentes/HABILIDAD.md +51 -0
  99. package/habilidades/deteccion-loops/HABILIDAD.md +168 -0
  100. package/habilidades/deteccion-stubs/HABILIDAD.md +204 -0
  101. package/habilidades/devlog/HABILIDAD.md +84 -0
  102. package/habilidades/documentacion-viva/HABILIDAD.md +231 -0
  103. package/habilidades/estimacion/HABILIDAD.md +48 -0
  104. package/habilidades/extensiones-presets/HABILIDAD.md +133 -0
  105. package/habilidades/generador-specs/HABILIDAD.md +37 -0
  106. package/habilidades/ingenieria-contexto/HABILIDAD.md +34 -0
  107. package/habilidades/integracion-mcp/HABILIDAD.md +59 -0
  108. package/habilidades/leyes-hierro/HABILIDAD.md +45 -0
  109. package/habilidades/mapa-arquitectonico/HABILIDAD.md +93 -0
  110. package/habilidades/memoria-persistente/HABILIDAD.md +97 -0
  111. package/habilidades/obsidian/HABILIDAD.md +93 -0
  112. package/habilidades/optimizacion-tokens/HABILIDAD.md +179 -0
  113. package/habilidades/optimizador-contexto/HABILIDAD.md +106 -0
  114. package/habilidades/orquestacion-autonoma/HABILIDAD.md +133 -0
  115. package/habilidades/permisos-seguridad/HABILIDAD.md +76 -0
  116. package/habilidades/persona/HABILIDAD.md +66 -0
  117. package/habilidades/planning-equipo/HABILIDAD.md +169 -0
  118. package/habilidades/presentaciones/HABILIDAD.md +63 -0
  119. package/habilidades/proyecciones-costo/HABILIDAD.md +54 -0
  120. package/habilidades/prueba-trabajo/HABILIDAD.md +131 -0
  121. package/habilidades/razonamiento/HABILIDAD.md +69 -0
  122. package/habilidades/recuperacion-sesion/HABILIDAD.md +27 -0
  123. package/habilidades/refactorizacion-solid/HABILIDAD.md +182 -0
  124. package/habilidades/reflexion/HABILIDAD.md +37 -0
  125. package/habilidades/rigor-progresivo/HABILIDAD.md +109 -0
  126. package/habilidades/rlm/HABILIDAD.md +85 -0
  127. package/habilidades/routing-modelos/HABILIDAD.md +79 -0
  128. package/habilidades/salud-habilidades/HABILIDAD.md +63 -0
  129. package/habilidades/schemas-dbml/HABILIDAD.md +101 -0
  130. package/habilidades/trazabilidad/HABILIDAD.md +63 -0
  131. package/habilidades/ui-ux-design/HABILIDAD.md +76 -0
  132. package/habilidades/validacion-nyquist/HABILIDAD.md +161 -0
  133. package/habilidades/worktrees/HABILIDAD.md +80 -0
  134. package/locales/en.json +179 -0
  135. package/locales/es.json +179 -0
  136. package/locales/pt.json +179 -0
  137. package/package.json +48 -0
  138. package/plantillas/checklist-requisitos.md +31 -0
  139. package/plantillas/docker/Dockerfile +16 -0
  140. package/plantillas/docker/docker-compose.yml +28 -0
  141. package/plantillas/especdev/WORKFLOW.md +118 -0
  142. package/plantillas/especdev/config.yaml +27 -0
  143. package/plantillas/especdev/en/config.yaml +27 -0
  144. package/plantillas/especdev/en/decisions.md +17 -0
  145. package/plantillas/especdev/en/deferred-work.md +17 -0
  146. package/plantillas/especdev/en/findings.md +7 -0
  147. package/plantillas/especdev/en/knowledge.md +19 -0
  148. package/plantillas/especdev/en/plan.md +35 -0
  149. package/plantillas/especdev/en/progress.md +7 -0
  150. package/plantillas/especdev/en/project-constitution.md +53 -0
  151. package/plantillas/especdev/en/pseudocode.md +35 -0
  152. package/plantillas/especdev/en/runtime.md +26 -0
  153. package/plantillas/especdev/en/status.md +16 -0
  154. package/plantillas/especdev/es/config.yaml +27 -0
  155. package/plantillas/especdev/es/conocimiento.md +19 -0
  156. package/plantillas/especdev/es/constitucion-proyecto.md +53 -0
  157. package/plantillas/especdev/es/decisiones.md +17 -0
  158. package/plantillas/especdev/es/deuda-scope.md +17 -0
  159. package/plantillas/especdev/es/estado.md +16 -0
  160. package/plantillas/especdev/es/hallazgos.md +7 -0
  161. package/plantillas/especdev/es/plan.md +35 -0
  162. package/plantillas/especdev/es/progreso.md +7 -0
  163. package/plantillas/especdev/es/pseudocodigo.md +35 -0
  164. package/plantillas/especdev/es/runtime.md +26 -0
  165. package/plantillas/especdev/estado.md +16 -0
  166. package/plantillas/especdev/hallazgos.md +7 -0
  167. package/plantillas/especdev/isa.yml +152 -0
  168. package/plantillas/especdev/plan.md +35 -0
  169. package/plantillas/especdev/progreso.md +7 -0
  170. package/plantillas/especdev/pt/config.yaml +27 -0
  171. package/plantillas/especdev/pt/conhecimento.md +19 -0
  172. package/plantillas/especdev/pt/constituicao-projeto.md +53 -0
  173. package/plantillas/especdev/pt/decisoes.md +17 -0
  174. package/plantillas/especdev/pt/descobertas.md +7 -0
  175. package/plantillas/especdev/pt/estado.md +16 -0
  176. package/plantillas/especdev/pt/plano.md +35 -0
  177. package/plantillas/especdev/pt/progresso.md +7 -0
  178. package/plantillas/especdev/pt/pseudocodigo.md +35 -0
  179. package/plantillas/especdev/pt/runtime.md +26 -0
  180. package/plantillas/especdev/pt/trabalho-diferido.md +17 -0
  181. package/plantillas/estimado-desarrollo.md +43 -0
  182. package/prompt.md +16 -0
  183. package/reglas/constitucion.md +122 -0
  184. package/reglas/hooks-parar.md +102 -0
  185. package/reglas/i18n.md +47 -0
  186. package/reglas/leyes-hierro.md +18 -0
  187. package/reglas/puertas-calidad.md +87 -0
  188. package/reglas/reglas-desviacion.md +36 -0
  189. package/reglas/reglas-trabajo-globales.md +171 -0
  190. package/reglas/skills-best-practices.md +109 -0
  191. package/scripts/.claude/commands/bucle-completar.md +13 -0
  192. package/scripts/.claude/commands/bucle-estado.md +13 -0
  193. package/scripts/.claude/commands/bucle.md +74 -0
  194. package/scripts/.claude/commands/especdev/actualizar.md +200 -0
  195. package/scripts/.claude/commands/especdev/agente.md +43 -0
  196. package/scripts/.claude/commands/especdev/analizar-sesiones.md +158 -0
  197. package/scripts/.claude/commands/especdev/aplicar.md +73 -0
  198. package/scripts/.claude/commands/especdev/archivar.md +69 -0
  199. package/scripts/.claude/commands/especdev/auditar-seguridad.md +234 -0
  200. package/scripts/.claude/commands/especdev/auditar.md +15 -0
  201. package/scripts/.claude/commands/especdev/avance-rapido.md +64 -0
  202. package/scripts/.claude/commands/especdev/cambios.md +14 -0
  203. package/scripts/.claude/commands/especdev/cerrar-sesion.md +88 -0
  204. package/scripts/.claude/commands/especdev/clarificar.md +98 -0
  205. package/scripts/.claude/commands/especdev/comenzar.md +77 -0
  206. package/scripts/.claude/commands/especdev/completo.md +49 -0
  207. package/scripts/.claude/commands/especdev/continuar.md +59 -0
  208. package/scripts/.claude/commands/especdev/contrato-api.md +223 -0
  209. package/scripts/.claude/commands/especdev/contrato-ui.md +245 -0
  210. package/scripts/.claude/commands/especdev/desglosar.md +172 -0
  211. package/scripts/.claude/commands/especdev/destilar.md +211 -0
  212. package/scripts/.claude/commands/especdev/detectar-ambiguedad.md +81 -0
  213. package/scripts/.claude/commands/especdev/diagnostico.md +92 -0
  214. package/scripts/.claude/commands/especdev/dise/303/261ar.md +74 -0
  215. package/scripts/.claude/commands/especdev/donde-estoy.md +32 -0
  216. package/scripts/.claude/commands/especdev/especificar.md +189 -0
  217. package/scripts/.claude/commands/especdev/estado.md +46 -0
  218. package/scripts/.claude/commands/especdev/estimar.md +141 -0
  219. package/scripts/.claude/commands/especdev/explorar.md +175 -0
  220. package/scripts/.claude/commands/especdev/guardian.md +99 -0
  221. package/scripts/.claude/commands/especdev/historial.md +14 -0
  222. package/scripts/.claude/commands/especdev/implementar.md +227 -0
  223. package/scripts/.claude/commands/especdev/incorporar.md +71 -0
  224. package/scripts/.claude/commands/especdev/iniciar.md +82 -0
  225. package/scripts/.claude/commands/especdev/limpiar-slop.md +88 -0
  226. package/scripts/.claude/commands/especdev/memorizar.md +31 -0
  227. package/scripts/.claude/commands/especdev/mesa-redonda.md +60 -0
  228. package/scripts/.claude/commands/especdev/mesa-tecnica.md +144 -0
  229. package/scripts/.claude/commands/especdev/migrar.md +237 -0
  230. package/scripts/.claude/commands/especdev/minar-referencias.md +214 -0
  231. package/scripts/.claude/commands/especdev/planificar-tecnico.md +186 -0
  232. package/scripts/.claude/commands/especdev/planning.md +264 -0
  233. package/scripts/.claude/commands/especdev/poc.md +302 -0
  234. package/scripts/.claude/commands/especdev/proponer.md +69 -0
  235. package/scripts/.claude/commands/especdev/rapido.md +69 -0
  236. package/scripts/.claude/commands/especdev/reflexionar.md +53 -0
  237. package/scripts/.claude/commands/especdev/retro.md +14 -0
  238. package/scripts/.claude/commands/especdev/reversa.md +155 -0
  239. package/scripts/.claude/commands/especdev/revisar.md +221 -0
  240. package/scripts/.claude/commands/especdev/traspasar.md +76 -0
  241. package/scripts/.claude/commands/especdev/traspaso.md +43 -0
  242. package/scripts/.claude/commands/especdev/validar.md +40 -0
  243. package/scripts/.claude/commands/historias-generar.md +74 -0
  244. package/scripts/.claude/commands/razonar/5-porques.md +42 -0
  245. package/scripts/.claude/commands/razonar/circulo-competencia.md +22 -0
  246. package/scripts/.claude/commands/razonar/costo-oportunidad.md +21 -0
  247. package/scripts/.claude/commands/razonar/inversion.md +40 -0
  248. package/scripts/.claude/commands/razonar/mapa-territorio.md +22 -0
  249. package/scripts/.claude/commands/razonar/minimizar-arrepentimiento.md +20 -0
  250. package/scripts/.claude/commands/razonar/pareto.md +32 -0
  251. package/scripts/.claude/commands/razonar/pre-mortem.md +22 -0
  252. package/scripts/.claude/commands/razonar/primeros-principios.md +57 -0
  253. package/scripts/.claude/commands/razonar/probabilistico.md +21 -0
  254. package/scripts/.claude/commands/razonar/reversibilidad.md +27 -0
  255. package/scripts/.claude/commands/razonar/rlm-cadena-pensamiento.md +189 -0
  256. package/scripts/.claude/commands/razonar/rlm-descomposicion.md +216 -0
  257. package/scripts/.claude/commands/razonar/rlm-verificacion.md +169 -0
  258. package/scripts/.claude/commands/razonar/segundo-orden.md +35 -0
  259. package/scripts/.claude/don-cheli/AGENTS.md +20 -0
  260. package/scripts/.claude/don-cheli/CLAUDE.md +114 -0
  261. package/scripts/.claude/don-cheli/NOTICE +17 -0
  262. package/scripts/.claude/don-cheli/VERSION +1 -0
  263. package/scripts/.claude/don-cheli/agentes/README.md +28 -0
  264. package/scripts/.claude/don-cheli/agentes/prompts/estimador.md +29 -0
  265. package/scripts/.claude/don-cheli/folder-map.json +19 -0
  266. package/scripts/.claude/don-cheli/ganchos/parar.md +10 -0
  267. package/scripts/.claude/don-cheli/ganchos/post-herramienta.md +9 -0
  268. package/scripts/.claude/don-cheli/ganchos/pre-herramienta.md +19 -0
  269. package/scripts/.claude/don-cheli/habilidades/arnes-agente/HABILIDAD.md +155 -0
  270. package/scripts/.claude/don-cheli/habilidades/auto-correccion/HABILIDAD.md +105 -0
  271. package/scripts/.claude/don-cheli/habilidades/brainstorming/HABILIDAD.md +79 -0
  272. package/scripts/.claude/don-cheli/habilidades/cambio-carpeta/HABILIDAD.md +91 -0
  273. package/scripts/.claude/don-cheli/habilidades/code-rag/HABILIDAD.md +297 -0
  274. package/scripts/.claude/don-cheli/habilidades/contabilidad-tokens/HABILIDAD.md +100 -0
  275. package/scripts/.claude/don-cheli/habilidades/delta-specs/HABILIDAD.md +93 -0
  276. package/scripts/.claude/don-cheli/habilidades/desarrollo-subagentes/HABILIDAD.md +42 -0
  277. package/scripts/.claude/don-cheli/habilidades/deteccion-loops/HABILIDAD.md +159 -0
  278. package/scripts/.claude/don-cheli/habilidades/deteccion-stubs/HABILIDAD.md +195 -0
  279. package/scripts/.claude/don-cheli/habilidades/devlog/HABILIDAD.md +75 -0
  280. package/scripts/.claude/don-cheli/habilidades/documentacion-viva/HABILIDAD.md +222 -0
  281. package/scripts/.claude/don-cheli/habilidades/estimacion/HABILIDAD.md +39 -0
  282. package/scripts/.claude/don-cheli/habilidades/extensiones-presets/HABILIDAD.md +124 -0
  283. package/scripts/.claude/don-cheli/habilidades/generador-specs/HABILIDAD.md +28 -0
  284. package/scripts/.claude/don-cheli/habilidades/ingenieria-contexto/HABILIDAD.md +25 -0
  285. package/scripts/.claude/don-cheli/habilidades/integracion-mcp/HABILIDAD.md +50 -0
  286. package/scripts/.claude/don-cheli/habilidades/leyes-hierro/HABILIDAD.md +36 -0
  287. package/scripts/.claude/don-cheli/habilidades/mapa-arquitectonico/HABILIDAD.md +84 -0
  288. package/scripts/.claude/don-cheli/habilidades/memoria-persistente/HABILIDAD.md +88 -0
  289. package/scripts/.claude/don-cheli/habilidades/obsidian/HABILIDAD.md +84 -0
  290. package/scripts/.claude/don-cheli/habilidades/optimizacion-tokens/HABILIDAD.md +170 -0
  291. package/scripts/.claude/don-cheli/habilidades/optimizador-contexto/HABILIDAD.md +97 -0
  292. package/scripts/.claude/don-cheli/habilidades/orquestacion-autonoma/HABILIDAD.md +124 -0
  293. package/scripts/.claude/don-cheli/habilidades/permisos-seguridad/HABILIDAD.md +67 -0
  294. package/scripts/.claude/don-cheli/habilidades/persona/HABILIDAD.md +57 -0
  295. package/scripts/.claude/don-cheli/habilidades/presentaciones/HABILIDAD.md +54 -0
  296. package/scripts/.claude/don-cheli/habilidades/prueba-trabajo/HABILIDAD.md +122 -0
  297. package/scripts/.claude/don-cheli/habilidades/razonamiento/HABILIDAD.md +60 -0
  298. package/scripts/.claude/don-cheli/habilidades/recuperacion-sesion/HABILIDAD.md +18 -0
  299. package/scripts/.claude/don-cheli/habilidades/refactorizacion-solid/HABILIDAD.md +173 -0
  300. package/scripts/.claude/don-cheli/habilidades/reflexion/HABILIDAD.md +15 -0
  301. package/scripts/.claude/don-cheli/habilidades/rigor-progresivo/HABILIDAD.md +100 -0
  302. package/scripts/.claude/don-cheli/habilidades/rlm/HABILIDAD.md +76 -0
  303. package/scripts/.claude/don-cheli/habilidades/schemas-dbml/HABILIDAD.md +92 -0
  304. package/scripts/.claude/don-cheli/habilidades/trazabilidad/HABILIDAD.md +54 -0
  305. package/scripts/.claude/don-cheli/habilidades/ui-ux-design/HABILIDAD.md +67 -0
  306. package/scripts/.claude/don-cheli/habilidades/validacion-nyquist/HABILIDAD.md +152 -0
  307. package/scripts/.claude/don-cheli/habilidades/worktrees/HABILIDAD.md +71 -0
  308. package/scripts/.claude/don-cheli/locale +1 -0
  309. package/scripts/.claude/don-cheli/locales/en.json +179 -0
  310. package/scripts/.claude/don-cheli/locales/es.json +179 -0
  311. package/scripts/.claude/don-cheli/locales/pt.json +179 -0
  312. package/scripts/.claude/don-cheli/plantillas/checklist-requisitos.md +31 -0
  313. package/scripts/.claude/don-cheli/plantillas/docker/Dockerfile +16 -0
  314. package/scripts/.claude/don-cheli/plantillas/docker/docker-compose.yml +28 -0
  315. package/scripts/.claude/don-cheli/plantillas/especdev/WORKFLOW.md +118 -0
  316. package/scripts/.claude/don-cheli/plantillas/especdev/config.yaml +27 -0
  317. package/scripts/.claude/don-cheli/plantillas/especdev/en/config.yaml +27 -0
  318. package/scripts/.claude/don-cheli/plantillas/especdev/en/findings.md +7 -0
  319. package/scripts/.claude/don-cheli/plantillas/especdev/en/plan.md +35 -0
  320. package/scripts/.claude/don-cheli/plantillas/especdev/en/progress.md +7 -0
  321. package/scripts/.claude/don-cheli/plantillas/especdev/en/status.md +16 -0
  322. package/scripts/.claude/don-cheli/plantillas/especdev/es/config.yaml +27 -0
  323. package/scripts/.claude/don-cheli/plantillas/especdev/es/estado.md +16 -0
  324. package/scripts/.claude/don-cheli/plantillas/especdev/es/hallazgos.md +7 -0
  325. package/scripts/.claude/don-cheli/plantillas/especdev/es/plan.md +35 -0
  326. package/scripts/.claude/don-cheli/plantillas/especdev/es/progreso.md +7 -0
  327. package/scripts/.claude/don-cheli/plantillas/especdev/estado.md +16 -0
  328. package/scripts/.claude/don-cheli/plantillas/especdev/hallazgos.md +7 -0
  329. package/scripts/.claude/don-cheli/plantillas/especdev/isa.yml +152 -0
  330. package/scripts/.claude/don-cheli/plantillas/especdev/plan.md +35 -0
  331. package/scripts/.claude/don-cheli/plantillas/especdev/progreso.md +7 -0
  332. package/scripts/.claude/don-cheli/plantillas/especdev/pt/config.yaml +27 -0
  333. package/scripts/.claude/don-cheli/plantillas/especdev/pt/descobertas.md +7 -0
  334. package/scripts/.claude/don-cheli/plantillas/especdev/pt/estado.md +16 -0
  335. package/scripts/.claude/don-cheli/plantillas/especdev/pt/plano.md +35 -0
  336. package/scripts/.claude/don-cheli/plantillas/especdev/pt/progresso.md +7 -0
  337. package/scripts/.claude/don-cheli/plantillas/estimado-desarrollo.md +43 -0
  338. package/scripts/.claude/don-cheli/prompt.md +16 -0
  339. package/scripts/.claude/don-cheli/reglas/constitucion.md +122 -0
  340. package/scripts/.claude/don-cheli/reglas/hooks-parar.md +102 -0
  341. package/scripts/.claude/don-cheli/reglas/i18n.md +47 -0
  342. package/scripts/.claude/don-cheli/reglas/leyes-hierro.md +18 -0
  343. package/scripts/.claude/don-cheli/reglas/puertas-calidad.md +87 -0
  344. package/scripts/.claude/don-cheli/reglas/reglas-desviacion.md +36 -0
  345. package/scripts/.claude/don-cheli/reglas/reglas-trabajo-globales.md +171 -0
  346. package/scripts/.claude/don-cheli/scripts/bucle.sh +103 -0
  347. package/scripts/.claude/don-cheli/scripts/instalar.sh +522 -0
  348. package/scripts/.claude/don-cheli/scripts/validar.sh +70 -0
  349. package/scripts/bucle.sh +103 -0
  350. package/scripts/instalar.sh +587 -0
  351. package/scripts/validar.sh +70 -0
@@ -0,0 +1,88 @@
1
+ ---
2
+ description: Ritual de cierre de sesión con auditoría, calidad, aprendizajes y contexto para la próxima sesión
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:cerrar-sesion
7
+
8
+ ## Objetivo
9
+
10
+ Ritual de fin de sesión que audita cambios, ejecuta checks de calidad, captura aprendizajes y produce un resumen para la próxima sesión. Evita el anti-patrón de cerrar el editor sin guardar contexto.
11
+
12
+ > Adaptado de `wrap-up` de Pro-Workflow (rohitg00/pro-workflow).
13
+
14
+ ## Uso
15
+
16
+ ```
17
+ /especdev:cerrar-sesion
18
+ ```
19
+
20
+ ## Checklist (obligatorio — no saltar pasos)
21
+
22
+ ### 1. 📋 Auditoría de Cambios
23
+ - ¿Qué archivos se modificaron?
24
+ - ¿Hay cambios sin commit?
25
+ - ¿Quedaron TODOs en el código?
26
+ - ¿Hay archivos temporales que limpiar?
27
+
28
+ ### 2. ✅ Check de Calidad
29
+ - Ejecutar lint
30
+ - Ejecutar typecheck
31
+ - Ejecutar tests
32
+ - ¿Todo pasa? ¿Hay warnings?
33
+
34
+ ### 3. 🧠 Captura de Aprendizajes
35
+ - ¿Qué errores se cometieron?
36
+ - ¿Qué patrones funcionaron bien?
37
+ - Formatear como: `[APRENDER] Categoría: Regla`
38
+
39
+ ### 4. 🔮 Contexto para Próxima Sesión
40
+ - ¿Cuál es la siguiente tarea lógica?
41
+ - ¿Hay bloqueantes?
42
+ - ¿Qué contexto preservar?
43
+
44
+ ### 5. 📝 Resumen
45
+ - Un párrafo: qué se logró, estado actual, qué sigue
46
+
47
+ ## Output
48
+
49
+ ```markdown
50
+ # Cierre de Sesión — 2026-03-21 16:45
51
+
52
+ ## Auditoría
53
+ - Archivos modificados: 8
54
+ - Commits: 3
55
+ - Sin commit: 2 archivos (src/auth.ts, tests/auth.test.ts)
56
+ - TODOs encontrados: 1 (src/auth.ts:45 — "TODO: handle refresh token")
57
+
58
+ ## Calidad
59
+ - Lint: ✅ sin errors | ⚠️ 2 warnings
60
+ - TypeCheck: ✅ pasa
61
+ - Tests: ✅ 47/47
62
+ - Coverage: 87%
63
+
64
+ ## Aprendizajes
65
+ - [APRENDER] Testing: Siempre mockear el servicio de email en tests de auth
66
+ - [APRENDER] Git: Hacer commits más pequeños — 3 archivos max
67
+
68
+ ## Próxima Sesión
69
+ - Tarea: Implementar refresh token (TODO en auth.ts:45)
70
+ - Bloqueante: Ninguno
71
+ - Contexto: Branch feature/oauth, PR #23 abierto
72
+
73
+ ## Resumen
74
+ Se completó el login con Google OAuth: 3 endpoints nuevos, 12 tests,
75
+ integración con NextAuth v5. Falta el refresh token (TODO en auth.ts:45).
76
+ PR #23 listo para review excepto por el refresh token.
77
+
78
+ ---
79
+ 🛑 ¿Cambios sin commit? Stash o commit antes de cerrar.
80
+ ✅ ¿Listo para cerrar sesión?
81
+ ```
82
+
83
+ ## Si Tests Fallan
84
+
85
+ ⚠️ **NO cerrar sesión con tests fallando.** Opciones:
86
+ 1. Corregir antes de cerrar
87
+ 2. Documentar el fallo en el handoff
88
+ 3. Crear issue para el próximo que lo agarre
@@ -0,0 +1,98 @@
1
+ ---
2
+ description: Detectar ambigüedades en una especificación, ejecutar Auto-QA y registrar respuestas
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:clarificar
7
+
8
+ ## Objetivo
9
+
10
+ Analizar una especificación Gherkin actuando como **Ingeniero QA Estricto**: detectar ambigüedades, ejecutar verificaciones automáticas de consistencia Schema↔Spec, y registrar las respuestas en el archivo `.feature`.
11
+
12
+ > Mejorado con el protocolo Auto-QA de Specular (constitution.md §VIII)
13
+
14
+ ## Uso
15
+
16
+ ```
17
+ /especdev:clarificar @specs/features/<dominio>/<Feature>.feature
18
+ ```
19
+
20
+ ## Comportamiento
21
+
22
+ ### Fase 1: Análisis de Ambigüedades (Original)
23
+
24
+ 1. **Leer** el archivo `.feature`
25
+ 2. **Analizar** cada escenario buscando:
26
+ - Términos ambiguos o no definidos
27
+ - Casos límite no cubiertos
28
+ - Validaciones implícitas
29
+ - Dependencias no mencionadas
30
+ 3. **Formular** hasta 5 preguntas dirigidas
31
+ 4. **Registrar** las respuestas en el archivo `.feature` como comentarios
32
+
33
+ ### Fase 2: Verificación Auto-QA (De Specular)
34
+
35
+ Ejecutar automáticamente **SIN pedir instrucciones adicionales**:
36
+
37
+ #### 2.1 Verificación de Consistencia Schema-Spec (DBML)
38
+
39
+ - Escanear todos los campos mencionados en el Gherkin
40
+ - Comparar contra el schema DBML en `specs/db_schema/<dominio>.dbml`
41
+ - ❌ Error si nombres de campos no coinciden exactamente (ej: `user_id` vs `userId`)
42
+ - ❌ Error si un campo `NOT NULL` en DBML no tiene escenario de validación en Gherkin
43
+
44
+ #### 2.2 Verificación de Convención de Nombres
45
+
46
+ - **Feature COMMAND:** Usar patrón de precondición + postcondición
47
+ - **Feature QUERY:** Usar patrón de precondición + éxito
48
+
49
+ #### 2.3 Auditoría de Escenarios Auto-Generados
50
+
51
+ - Revisar escenarios tagueados `@auto_generado`
52
+ - Marcar los que sean redundantes o lógicamente imposibles
53
+
54
+ ### Fase 3: Generar Checklist de Requisitos
55
+
56
+ Generar automáticamente `requisitos.md` con evidencia citada para cada item.
57
+
58
+ ## Output
59
+
60
+ ```markdown
61
+ === Reporte Auto-QA ===
62
+
63
+ Feature: CrearUsuario.feature
64
+
65
+ ## Ambigüedades Detectadas: 3
66
+ 1. ¿Qué longitud mínima/máxima debe tener la contraseña?
67
+ 2. ¿Se permite registro con proveedores OAuth (Google, GitHub)?
68
+ 3. ¿El email de bienvenida es síncrono o asíncrono?
69
+
70
+ ## Verificación Schema-Spec
71
+ ✅ PASS: Campo "email" coincide con usuario.dbml
72
+ ✅ PASS: Campo "password_hash" tiene escenario de validación
73
+ ❌ FAIL: Campo "nombre" en DBML es NOT NULL pero no tiene escenario de validación
74
+
75
+ ## Verificación de Convenciones
76
+ ✅ PASS: Feature COMMAND usa patrón precondición/postcondición
77
+ ⚠️ WARNING: Escenario "Contraseña débil" no verifica postcondición
78
+
79
+ ## Auditoría Auto-Generado
80
+ ✅ PASS: Sin escenarios redundantes
81
+
82
+ ## Resultado
83
+ NO-AVANZAR (1 FAIL)
84
+ → Acción requerida: Agregar escenario de validación para campo "nombre"
85
+ ```
86
+
87
+ ## Transición de Estado
88
+
89
+ ```
90
+ @borrador → (clarificar pasa Auto-QA) → @lista
91
+ @borrador → (clarificar falla Auto-QA) → @borrador (corregir y re-clarificar)
92
+ ```
93
+
94
+ ## Puerta de Calidad Asociada
95
+
96
+ Esta comando implementa la **Puerta 2+3** del pipeline:
97
+ - Puerta 2: El header contiene `@lista` (solo si pasa)
98
+ - Puerta 3: Reporte Auto-QA sin ❌ FALLA
@@ -0,0 +1,77 @@
1
+ ---
2
+ description: Iniciar tarea con nivel de complejidad auto-detectado (0-4)
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:comenzar
7
+
8
+ ## Objetivo
9
+
10
+ Iniciar una tarea detectando automáticamente el nivel de complejidad (0-4) y ejecutando el flujo apropiado.
11
+
12
+ ## Uso
13
+
14
+ ```
15
+ /especdev:comenzar <descripción de la tarea>
16
+ ```
17
+
18
+ ## Auto-Detección de Nivel
19
+
20
+ Evaluar cada dimensión de 0 a 4:
21
+
22
+ ```
23
+ Alcance: 0=1 archivo 1=2-3 archivos 2=módulo 3=multi-módulo 4=sistema
24
+ Incógnitas: 0=ninguna 1=menores 2=algunas 3=significativas 4=fundamentales
25
+ Riesgo: 0=trivial 1=bajo 2=medio 3=alto 4=crítico
26
+ Duración: 0=<30min 1=horas 2=días 3=1-2 semanas 4=semanas+
27
+
28
+ Nivel = max(puntuaciones) // Conservador: gana la dimensión más alta
29
+ ```
30
+
31
+ ## Niveles
32
+
33
+ | Nivel | Nombre | Proceso |
34
+ |-------|--------|---------|
35
+ | **0** | Atómico | Ejecutar directamente |
36
+ | **P** | PoC | Hipótesis → Construir → Evaluar → Veredicto |
37
+ | **1** | Micro | Planear → Ejecutar → Verificar |
38
+ | **2** | Estándar | 5 fases (sin Descubrimiento/Crecimiento) |
39
+ | **3** | Complejo | 7 fases completas |
40
+ | **4** | Producto | 7 fases + artefactos completos |
41
+
42
+ **Detección de PoC:** Si la tarea es una pregunta ("¿se puede...?", "¿funciona...?", "¿vale la pena...?") o incluye palabras como "probar", "viabilidad", "validar", "explorar opción" → sugerir `/especdev:poc`.
43
+
44
+ ## Comportamiento
45
+
46
+ 1. **Analizar** la descripción de la tarea
47
+ 2. **Evaluar** las 4 dimensiones (alcance, incógnitas, riesgo, duración)
48
+ 3. **Determinar** nivel de complejidad
49
+ 4. **Mostrar** evaluación al usuario
50
+ 5. **Preguntar** si está de acuerdo o desea ajustar
51
+ 6. **Iniciar** flujo del nivel correspondiente
52
+
53
+ ## Ejemplo
54
+
55
+ ```bash
56
+ /especdev:comenzar Implementar autenticación JWT con refresh tokens
57
+
58
+ === Evaluación de Complejidad ===
59
+
60
+ Tarea: Implementar autenticación JWT con refresh tokens
61
+
62
+ Alcance: 3 (multi-módulo: auth, middleware, database)
63
+ Incógnitas: 2 (algunas: estrategia de refresh)
64
+ Riesgo: 3 (alto: seguridad)
65
+ Duración: 2 (días)
66
+
67
+ → Nivel detectado: 3 (Complejo)
68
+ → Proceso: 7 fases completas
69
+
70
+ ¿Proceder con Nivel 3? (s/n/ajustar)
71
+ ```
72
+
73
+ ## Escalamiento y Des-escalamiento
74
+
75
+ - Si durante la ejecución se detecta mayor complejidad → escalar nivel
76
+ - Si la complejidad resulta menor → des-escalar nivel
77
+ - Regla de Desviación 4 → escalar al menos 1 nivel
@@ -0,0 +1,49 @@
1
+ ---
2
+ description: Modo completo para proyectos grandes y complejos (Nivel 3)
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:completo
7
+
8
+ ## Objetivo
9
+
10
+ Iniciar modo completo (Nivel 3 - Complejo) para proyectos que requieren las 7 fases del ciclo de vida.
11
+
12
+ ## Uso
13
+
14
+ ```
15
+ /especdev:completo <descripción del proyecto>
16
+ ```
17
+
18
+ ## Las 7 Fases
19
+
20
+ | Fase | Duración | Actividades |
21
+ |------|----------|-------------|
22
+ | 1. Descubrimiento | 1-2 días | Validar problema, investigar, descubrimientos |
23
+ | 2. Estrategia | 1 día | Hoja de ruta, hitos, decisiones |
24
+ | 3. Diseño | 2-3 días | Arquitectura, UX, especificaciones |
25
+ | 4. Desarrollo | Variable | TDD, implementación, iteración |
26
+ | 5. Calidad | 1-2 días | Testing, validación, rendimiento |
27
+ | 6. Lanzamiento | 1 día | Despliegue, documentación, release |
28
+ | 7. Crecimiento | Continuo | Monitoreo, feedback, iteración |
29
+
30
+ ## Transiciones de Fase
31
+
32
+ Cada fase requiere criterios de Avance/No-Avance:
33
+
34
+ ```markdown
35
+ ## Fase [N] Completada
36
+
37
+ ### Lista de Verificación Avance/No-Avance
38
+ - [ ] Todas las tareas de la fase completadas
39
+ - [ ] Entregables verificados
40
+ - [ ] Sin bloqueadores
41
+ - [ ] Listo para siguiente fase
42
+
43
+ **Decisión:** AVANZAR / NO-AVANZAR
44
+ **Motivo:** [por qué]
45
+ ```
46
+
47
+ ## Des-escalamiento
48
+
49
+ Si después de la Estrategia el alcance es menor → des-escalar a `/especdev:rapido`
@@ -0,0 +1,59 @@
1
+ ---
2
+ description: Recuperar sesión previa y generar reporte de puesta al día
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:continuar
7
+
8
+ ## Objetivo
9
+
10
+ Recuperar el contexto de una sesión previa y generar un reporte de puesta al día.
11
+
12
+ ## Uso
13
+
14
+ ```
15
+ /especdev:continuar
16
+ ```
17
+
18
+ ## Comportamiento
19
+
20
+ 1. **Detectar** directorio `.especdev/` existente
21
+ 2. **Leer** archivos de contexto
22
+ 3. **Generar** Reporte de Puesta al Día:
23
+
24
+ ```markdown
25
+ ## 🔄 Recuperación de Sesión
26
+
27
+ **Proyecto:** api-pagos
28
+ **Última Sesión:** 2026-03-21 15:30
29
+
30
+ **Estado Actual:**
31
+ - Fase: 3/7 (Diseño)
32
+ - Tarea: Diseñar esquema de base de datos
33
+ - Progreso: 40%
34
+
35
+ **Hallazgos Recientes:**
36
+ - JWT preferido sobre sesiones
37
+ - La API legacy tiene vulnerabilidades
38
+
39
+ **Próximos Pasos:**
40
+ 1. Completar esquema de base de datos
41
+ 2. Agregar reset de contraseña
42
+ ```
43
+
44
+ ## Test de 5 Preguntas
45
+
46
+ Para verificar que el contexto está completo:
47
+
48
+ | # | Pregunta | Fuente | Estado |
49
+ |---|----------|--------|--------|
50
+ | 1 | ¿Dónde estoy? | `estado.md` | Fase actual |
51
+ | 2 | ¿A dónde voy? | `plan.md` | Fases restantes |
52
+ | 3 | ¿Cuál es la meta? | `config.yaml` | Objetivo del proyecto |
53
+ | 4 | ¿Qué he aprendido? | `hallazgos.md` | Descubrimientos clave |
54
+ | 5 | ¿Qué he hecho? | `progreso.md` | Acciones recientes |
55
+
56
+ **Estado del Contexto:**
57
+ - ✅ Completo (5/5) → Listo para continuar
58
+ - ⚠️ Parcial (3-4/5) → Proceder con precaución
59
+ - ❌ Incompleto (0-2/5) → Ejecutar `/especdev:iniciar --reparar`
@@ -0,0 +1,223 @@
1
+ ---
2
+ description: Diseñar contratos de API, webhooks e integraciones con manejo de errores y reintentos
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:contrato-api
7
+
8
+ ## Objetivo
9
+
10
+ Diseñar contratos de API completos (REST o GraphQL), definir webhooks, planificar manejo de errores y reintentos para asegurar la resiliencia de integraciones con plataformas externas.
11
+
12
+ ## Uso
13
+
14
+ ```
15
+ /especdev:contrato-api <descripción de la integración>
16
+ /especdev:contrato-api --tipo rest "Integración con Stripe para pagos"
17
+ /especdev:contrato-api --tipo graphql "API de catálogo de productos"
18
+ /especdev:contrato-api --tipo webhook "Recibir eventos de Shopify"
19
+ ```
20
+
21
+ ## Diferencia con `/especdev:planificar-tecnico`
22
+
23
+ | Aspecto | `planificar-tecnico` | `contrato-api` |
24
+ |---------|---------------------|----------------|
25
+ | **Alcance** | Blueprint completo de una feature | Solo el contrato de API/integración |
26
+ | **Profundidad** | Contrato básico (request/response) | Contrato completo (errores, reintentos, webhooks, idempotencia) |
27
+ | **Cuándo** | Después de spec | Cuando la integración es el foco principal |
28
+
29
+ ## Output para API REST
30
+
31
+ ```markdown
32
+ ## Contrato API: Integración de Pagos con Stripe
33
+
34
+ ### Endpoints
35
+
36
+ #### POST /api/v1/pagos
37
+ **Propósito:** Crear un cobro
38
+ **Auth:** Bearer token (JWT)
39
+ **Rate limit:** 100 req/min por usuario
40
+ **Idempotencia:** Sí (header `Idempotency-Key`)
41
+
42
+ **Request:**
43
+ ```json
44
+ {
45
+ "monto": 5000, // centavos, min: 100, max: 99999900
46
+ "moneda": "USD", // ISO 4217
47
+ "cliente_id": "uuid",
48
+ "metodo_pago_id": "pm_xxx",
49
+ "descripcion": "Pedido #1234",
50
+ "metadata": {} // opcional, max 50 keys
51
+ }
52
+ ```
53
+
54
+ **Responses:**
55
+ | Status | Significado | Body |
56
+ |--------|------------|------|
57
+ | 201 | Cobro creado | `{ id, status, monto, stripe_id, created_at }` |
58
+ | 400 | Datos inválidos | `{ error, field, message }` |
59
+ | 402 | Pago rechazado | `{ error, decline_code, message }` |
60
+ | 409 | Idempotency conflict | `{ error, original_id }` |
61
+ | 429 | Rate limit | `{ error, retry_after }` |
62
+ | 500 | Error interno | `{ error, request_id }` |
63
+
64
+ **Headers de respuesta:**
65
+ ```
66
+ X-Request-Id: uuid // Para soporte/debugging
67
+ X-RateLimit-Remaining: 95
68
+ X-RateLimit-Reset: 1616544000
69
+ ```
70
+
71
+ ### Webhooks (recibir desde Stripe)
72
+
73
+ #### POST /api/v1/webhooks/stripe
74
+ **Verificación:** HMAC-SHA256 con `Stripe-Signature` header
75
+ **Tolerancia de timestamp:** 300 segundos (5 min)
76
+ **Respuesta esperada:** 200 OK (body vacío) en < 5s
77
+
78
+ **Eventos soportados:**
79
+ | Evento | Acción | Idempotente |
80
+ |--------|--------|-------------|
81
+ | `payment_intent.succeeded` | Marcar pedido como pagado | Sí |
82
+ | `payment_intent.payment_failed` | Notificar al usuario | Sí |
83
+ | `charge.refunded` | Procesar reembolso | Sí |
84
+ | `charge.dispute.created` | Alertar al equipo | Sí |
85
+
86
+ **Procesamiento:**
87
+ ```
88
+ 1. Verificar firma HMAC
89
+ 2. Parsear evento
90
+ 3. Verificar idempotencia (event.id en tabla processed_events)
91
+ 4. Responder 200 INMEDIATAMENTE
92
+ 5. Procesar en cola async (no bloquear respuesta)
93
+ 6. Registrar en audit log
94
+ ```
95
+
96
+ ### Manejo de Errores
97
+
98
+ **Errores del cliente (4xx):**
99
+ ```json
100
+ {
101
+ "error": {
102
+ "tipo": "validation_error",
103
+ "mensaje": "El monto debe ser mayor a $1.00",
104
+ "campo": "monto",
105
+ "codigo": "MONTO_INVALIDO"
106
+ }
107
+ }
108
+ ```
109
+
110
+ **Errores del servidor (5xx):**
111
+ ```json
112
+ {
113
+ "error": {
114
+ "tipo": "internal_error",
115
+ "mensaje": "Error procesando el pago",
116
+ "request_id": "req_abc123"
117
+ }
118
+ }
119
+ ```
120
+
121
+ **Códigos de error consistentes:**
122
+ | Código | Significado | HTTP |
123
+ |--------|------------|------|
124
+ | `MONTO_INVALIDO` | Monto fuera de rango | 400 |
125
+ | `MONEDA_NO_SOPORTADA` | Moneda no en whitelist | 400 |
126
+ | `PAGO_RECHAZADO` | Tarjeta rechazada | 402 |
127
+ | `DUPLICADO` | Idempotency conflict | 409 |
128
+ | `RATE_LIMIT` | Demasiadas requests | 429 |
129
+ | `STRIPE_ERROR` | Error de comunicación con Stripe | 502 |
130
+
131
+ ### Política de Reintentos
132
+
133
+ ```
134
+ Estrategia: Exponential backoff con jitter
135
+
136
+ Intento 1: inmediato
137
+ Intento 2: 1s + jitter (0-500ms)
138
+ Intento 3: 2s + jitter (0-1000ms)
139
+ Intento 4: 4s + jitter (0-2000ms)
140
+ Max intentos: 4
141
+
142
+ Reintentar en:
143
+ ✅ 429 (rate limit) — respetar Retry-After header
144
+ ✅ 500, 502, 503, 504 (errores transitorios)
145
+ ❌ 400, 401, 402, 403, 404, 409 (errores definitivos)
146
+
147
+ Circuit breaker:
148
+ - Abrir después de 5 fallos consecutivos
149
+ - Half-open después de 30 segundos
150
+ - Cerrar después de 2 éxitos consecutivos
151
+ ```
152
+
153
+ ### Timeouts
154
+
155
+ | Operación | Timeout | Acción si timeout |
156
+ |-----------|---------|-------------------|
157
+ | Crear cobro | 10s | Reintentar (idempotente) |
158
+ | Verificar webhook | 2s | Rechazar (400) |
159
+ | Procesar evento async | 30s | Cola de dead-letter |
160
+ ```
161
+
162
+ ## Output para GraphQL
163
+
164
+ ```markdown
165
+ ### Schema GraphQL
166
+
167
+ ```graphql
168
+ type Mutation {
169
+ crearPago(input: CrearPagoInput!): PagoResult!
170
+ reembolsar(pagoId: ID!, monto: Int): ReembolsoResult!
171
+ }
172
+
173
+ type Query {
174
+ pago(id: ID!): Pago
175
+ pagos(filtro: PagoFiltro, paginacion: Paginacion): PagoConnection!
176
+ }
177
+
178
+ input CrearPagoInput {
179
+ monto: Int! # centavos
180
+ moneda: Moneda!
181
+ clienteId: ID!
182
+ metodoPagoId: String!
183
+ descripcion: String
184
+ }
185
+
186
+ type PagoResult {
187
+ pago: Pago
188
+ error: APIError
189
+ }
190
+ ```
191
+ ```
192
+
193
+ ## Almacenamiento
194
+
195
+ ```
196
+ specs/api/
197
+ ├── openapi.yaml # Spec completa (auto-generada)
198
+ ├── contratos/
199
+ │ ├── pagos.contrato.md # Contrato de pagos
200
+ │ ├── webhooks.contrato.md
201
+ │ └── catalogo.contrato.md
202
+ └── postman/
203
+ └── coleccion.json # Colección Postman exportada
204
+ ```
205
+
206
+ ## Integración con Pipeline
207
+
208
+ ```
209
+ /especdev:contrato-api → contrato + OpenAPI parcial
210
+ → /especdev:planificar-tecnico → incorpora contrato al plan
211
+ → /especdev:desglosar → tareas incluyen implementación del contrato
212
+ → Documentación Viva → actualiza OpenAPI global
213
+ ```
214
+
215
+ ## Guardrails
216
+
217
+ - **Nunca** diseñar API sin definir manejo de errores
218
+ - **Nunca** omitir idempotencia en operaciones de escritura
219
+ - **Nunca** confiar en input externo sin validación
220
+ - **Siempre** definir timeouts y política de reintentos
221
+ - **Siempre** incluir `request_id` en respuestas de error
222
+ - **Siempre** verificar firma de webhooks antes de procesar
223
+ - **Siempre** responder rápido a webhooks (< 5s), procesar async