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,245 @@
1
+ ---
2
+ description: Bloquear estándares visuales antes de codear frontend (UI Design Contract)
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:contrato-ui
7
+
8
+ ## Objetivo
9
+
10
+ Definir y bloquear los estándares visuales de una feature frontend **antes** de escribir código. Previene el problema más común del desarrollo frontend con IA: inconsistencia visual entre componentes porque no hay un contrato de diseño.
11
+
12
+ > Adaptado de Get Shit Done (gsd-build/get-shit-done) — UI Design Contracts: "lock visual standards before coding to prevent visually inconsistent AI-generated components."
13
+
14
+ ## Uso
15
+
16
+ ```
17
+ /especdev:contrato-ui # Crear contrato para el proyecto
18
+ /especdev:contrato-ui @specs/features/ui/ # Crear para un módulo específico
19
+ /especdev:contrato-ui --desde @figma-export # Derivar de un export de Figma
20
+ /especdev:contrato-ui --extender # Extender contrato existente
21
+ ```
22
+
23
+ ## Por Qué Existe
24
+
25
+ | Sin Contrato UI | Con Contrato UI |
26
+ |-----------------|-----------------|
27
+ | Componente A usa `padding: 16px`, B usa `padding: 1rem`, C usa `padding: 20px` | Todos usan `--spacing-md: 1rem` |
28
+ | Cada componente elige sus propios colores | Paleta definida, tokens de diseño |
29
+ | Tipografía inconsistente entre páginas | Escala tipográfica fija |
30
+ | Copywriting variable ("Click here" vs "Continuar" vs "Submit") | Voz y tono definidos |
31
+ | IA genera componentes "bonitos" pero incompatibles entre sí | Todos los componentes siguen el mismo contrato |
32
+
33
+ ## Comportamiento
34
+
35
+ ### Paso 1: Detectar Stack Frontend
36
+
37
+ ```
38
+ Detectando stack frontend...
39
+ ├── Framework: React 19 / Next.js 15
40
+ ├── Estilos: TailwindCSS 4.x
41
+ ├── Componentes: shadcn/ui
42
+ ├── Iconos: Lucide Icons
43
+ └── Design system existente: No detectado
44
+ ```
45
+
46
+ ### Paso 2: Definir Contrato
47
+
48
+ El contrato cubre 6 dimensiones:
49
+
50
+ #### 1. Espaciado (Spacing)
51
+
52
+ ```yaml
53
+ spacing:
54
+ base: 4px # Unidad mínima
55
+ scale:
56
+ xs: 4px # 1 unidad
57
+ sm: 8px # 2 unidades
58
+ md: 16px # 4 unidades (default)
59
+ lg: 24px # 6 unidades
60
+ xl: 32px # 8 unidades
61
+ 2xl: 48px # 12 unidades
62
+ regla: "Todo espaciado DEBE ser múltiplo de 4px"
63
+ ```
64
+
65
+ #### 2. Tipografía (Typography)
66
+
67
+ ```yaml
68
+ typography:
69
+ familia:
70
+ primaria: "Inter, system-ui, sans-serif"
71
+ monospace: "JetBrains Mono, monospace"
72
+ escala:
73
+ xs: "0.75rem / 1rem" # 12px, captions
74
+ sm: "0.875rem / 1.25rem" # 14px, labels
75
+ base: "1rem / 1.5rem" # 16px, body
76
+ lg: "1.125rem / 1.75rem" # 18px, lead
77
+ xl: "1.25rem / 1.75rem" # 20px, h4
78
+ 2xl: "1.5rem / 2rem" # 24px, h3
79
+ 3xl: "1.875rem / 2.25rem" # 30px, h2
80
+ 4xl: "2.25rem / 2.5rem" # 36px, h1
81
+ peso:
82
+ normal: 400
83
+ medium: 500
84
+ semibold: 600
85
+ bold: 700
86
+ ```
87
+
88
+ #### 3. Color (Palette)
89
+
90
+ ```yaml
91
+ color:
92
+ brand:
93
+ primary: "#2563EB" # Acciones principales
94
+ primary-hover: "#1D4ED8"
95
+ secondary: "#64748B" # Acciones secundarias
96
+ semantic:
97
+ success: "#16A34A"
98
+ warning: "#D97706"
99
+ error: "#DC2626"
100
+ info: "#2563EB"
101
+ neutral:
102
+ background: "#FFFFFF"
103
+ surface: "#F8FAFC"
104
+ border: "#E2E8F0"
105
+ text-primary: "#0F172A"
106
+ text-secondary: "#64748B"
107
+ text-muted: "#94A3B8"
108
+ modo_oscuro: true # Si aplica, definir variantes
109
+ ```
110
+
111
+ #### 4. Componentes (Patterns)
112
+
113
+ ```yaml
114
+ componentes:
115
+ botones:
116
+ primario: "bg-primary text-white rounded-md px-4 py-2 font-medium"
117
+ secundario: "bg-white border border-border text-secondary rounded-md px-4 py-2"
118
+ destructivo: "bg-error text-white rounded-md px-4 py-2"
119
+ fantasma: "text-secondary hover:bg-surface rounded-md px-4 py-2"
120
+ tamanos: [sm, md, lg]
121
+ inputs:
122
+ estilo: "border rounded-md px-3 py-2 focus:ring-2 focus:ring-primary"
123
+ error: "border-error focus:ring-error"
124
+ label: "text-sm font-medium text-text-primary mb-1"
125
+ cards:
126
+ estilo: "bg-white border rounded-lg p-6 shadow-sm"
127
+ modales:
128
+ overlay: "bg-black/50 backdrop-blur-sm"
129
+ contenido: "bg-white rounded-xl shadow-xl max-w-md mx-auto p-6"
130
+ ```
131
+
132
+ #### 5. Layout
133
+
134
+ ```yaml
135
+ layout:
136
+ contenedor: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"
137
+ grid: "12 columnas"
138
+ breakpoints:
139
+ sm: "640px"
140
+ md: "768px"
141
+ lg: "1024px"
142
+ xl: "1280px"
143
+ sidebar: "w-64 fixed"
144
+ navbar: "h-16 fixed top-0"
145
+ ```
146
+
147
+ #### 6. Voz y Tono (Copywriting)
148
+
149
+ ```yaml
150
+ copywriting:
151
+ idioma_ui: "es" # Del config.yaml
152
+ voz: "Profesional pero cercano"
153
+ reglas:
154
+ - "Usar 'tú' (no 'usted') para el usuario"
155
+ - "Botones: verbos en infinitivo ('Crear', 'Guardar', 'Cancelar')"
156
+ - "Errores: explicar qué pasó Y qué hacer ('El email ya existe. Intenta con otro.')"
157
+ - "Éxito: confirmar la acción completada ('Usuario creado exitosamente')"
158
+ - "Vacíos: guiar al usuario ('Aún no tienes proyectos. Crea el primero.')"
159
+ prohibido:
160
+ - "Click here / Haga clic aquí"
161
+ - "Error genérico sin contexto"
162
+ - "Jerga técnica en mensajes al usuario"
163
+ ```
164
+
165
+ ### Paso 3: Generar Artefacto
166
+
167
+ ```
168
+ Contrato UI generado:
169
+ → specs/ui/contrato-ui.yaml (contrato completo)
170
+ → specs/ui/tokens.css (custom properties generadas)
171
+ ```
172
+
173
+ ## Output
174
+
175
+ ### Archivo de Contrato (`specs/ui/contrato-ui.yaml`)
176
+
177
+ YAML completo con las 6 dimensiones definidas arriba.
178
+
179
+ ### Tokens CSS generados (`specs/ui/tokens.css`)
180
+
181
+ ```css
182
+ :root {
183
+ /* Spacing */
184
+ --spacing-xs: 4px;
185
+ --spacing-sm: 8px;
186
+ --spacing-md: 16px;
187
+ --spacing-lg: 24px;
188
+ --spacing-xl: 32px;
189
+
190
+ /* Colors */
191
+ --color-primary: #2563EB;
192
+ --color-primary-hover: #1D4ED8;
193
+ --color-success: #16A34A;
194
+ --color-error: #DC2626;
195
+ --color-text-primary: #0F172A;
196
+ --color-text-secondary: #64748B;
197
+ --color-border: #E2E8F0;
198
+ --color-surface: #F8FAFC;
199
+
200
+ /* Typography */
201
+ --font-primary: 'Inter', system-ui, sans-serif;
202
+ --font-mono: 'JetBrains Mono', monospace;
203
+ }
204
+ ```
205
+
206
+ ## Integración con Pipeline
207
+
208
+ ```
209
+ /especdev:contrato-ui → contrato-ui.yaml + tokens.css
210
+ → /especdev:especificar → escenarios referencian tokens
211
+ → /especdev:planificar-tecnico → plan incluye contrato como dependencia
212
+ → /especdev:implementar → agente usa tokens, NO inventa estilos
213
+ → /especdev:revisar → verifica cumplimiento del contrato
214
+ ```
215
+
216
+ ## Verificación de Cumplimiento
217
+
218
+ Durante `/especdev:revisar`, se verifica:
219
+
220
+ | Verificación | Criterio | Severidad |
221
+ |--------------|----------|-----------|
222
+ | Colores | Solo usa colores del contrato | ❌ Crítico |
223
+ | Espaciado | Múltiplos de la base (4px) | ⚠️ Alto |
224
+ | Tipografía | Solo usa escala definida | ⚠️ Alto |
225
+ | Copywriting | Sigue reglas de voz y tono | ℹ️ Info |
226
+ | Componentes | Usa patterns definidos | ⚠️ Alto |
227
+ | Responsive | Respeta breakpoints | ⚠️ Alto |
228
+
229
+ ## Cuándo Usar
230
+
231
+ | Situación | Usar contrato |
232
+ |-----------|--------------|
233
+ | Feature con UI nueva | ✅ Sí |
234
+ | Modificación de UI existente | ✅ Sí (extender contrato existente) |
235
+ | API/backend sin UI | ❌ No |
236
+ | Fix de bug visual | ❌ No (contrato ya existe) |
237
+ | Prototipo/POC | ⚠️ Opcional (contrato mínimo) |
238
+
239
+ ## Guardrails
240
+
241
+ - **Nunca** generar componentes frontend sin contrato UI vigente
242
+ - **Nunca** usar valores hardcoded de color/spacing en código (usar tokens)
243
+ - **Siempre** verificar cumplimiento del contrato en revisión
244
+ - **Siempre** extender (no reemplazar) el contrato cuando se agregan patrones
245
+ - **Siempre** generar tokens CSS/variables junto al contrato
@@ -0,0 +1,172 @@
1
+ ---
2
+ description: Dividir un blueprint técnico en tareas con TDD (RED→GREEN) y marcadores de paralelismo
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:desglosar
7
+
8
+ ## Objetivo
9
+
10
+ Convertir un blueprint técnico en una lista de tareas ordenadas con enfoque TDD (RED → GREEN → REFACTOR), marcadores de paralelismo `[P]` y fases de ejecución estandarizadas.
11
+
12
+ > Alineado con spec-kit (github/spec-kit) — formato `[ID] [P?] [Story] Descripción` y 5 fases de ejecución
13
+
14
+ ## Uso
15
+
16
+ ```
17
+ /especdev:desglosar @specs/features/<dominio>/<Feature>.plan.md
18
+ ```
19
+
20
+ ## Formato de Tareas
21
+
22
+ ```
23
+ [TID] [P?] [Historia] Descripción
24
+ ```
25
+
26
+ | Campo | Significado | Ejemplo |
27
+ |-------|-------------|---------|
28
+ | `TID` | ID único de tarea | `T001` |
29
+ | `[P]` | Paralelizable (puede ejecutarse en paralelo con otras `[P]` de la misma fase) | `[P]` o vacío |
30
+ | `[Historia]` | Historia de usuario asociada | `[US1]` |
31
+ | Descripción | Qué hacer | Crear modelo de Usuario |
32
+
33
+ ## Output
34
+
35
+ Genera `specs/features/<dominio>/<Feature>.tasks.md`:
36
+
37
+ ```markdown
38
+ # Tareas: CrearUsuario
39
+
40
+ **Feature:** usuario/CrearUsuario
41
+ **Plan:** specs/features/usuario/CrearUsuario.plan.md
42
+ **Creado:** 2026-03-21
43
+
44
+ ## Formato: [TID] [P?] [Historia] Descripción
45
+
46
+ ---
47
+
48
+ ## Fase 1: Setup (Paralelizable)
49
+
50
+ Inicialización del entorno y estructura del proyecto.
51
+
52
+ - [T001] [P] Setup: Crear estructura de directorios del módulo usuario
53
+ - [T002] [P] Setup: Inicializar configuración de testing
54
+ - [T003] [P] Setup: Configurar Docker compose para tests
55
+
56
+ ---
57
+
58
+ ## Fase 2: Fundación (Secuencial después de Setup)
59
+
60
+ Infraestructura crítica que el resto del código necesita.
61
+
62
+ - [T004] [US1] RED: Escribir test para modelo Usuario
63
+ - [T005] [US1] GREEN: Implementar modelo Usuario con validaciones
64
+ - Archivos: `models/usuario.py`, `tests/unit/test_usuario.py`
65
+
66
+ - [T006] [US1] RED: Escribir test para UsuarioRepository (crear/buscar)
67
+ - [T007] [US1] GREEN: Implementar UsuarioRepository
68
+ - Archivos: `repositories/usuario_repo.py`, `tests/unit/test_usuario_repo.py`
69
+
70
+ ---
71
+
72
+ ## Fase 3: Historias de Usuario (Por prioridad)
73
+
74
+ ### P1: Camino Crítico
75
+
76
+ - [T008] [US1] RED: Test para registro exitoso (happy path)
77
+ - [T009] [US1] RED: Test para email duplicado (sad path)
78
+ - [T010] [US1] GREEN: Implementar UsuarioService.crear()
79
+ - Archivos: `services/usuario_service.py`, `tests/unit/test_usuario_service.py`
80
+ - [T011] [P] [US1] RED: Test de integración para POST /usuarios
81
+ - [T012] [P] [US1] RED: Test BDD desde escenarios Gherkin P1
82
+ - [T013] [US1] GREEN: Implementar UsuarioController
83
+ - Archivos: `controllers/usuario_controller.py`, `tests/integration/test_crear_usuario.py`
84
+
85
+ ### P2: Importante
86
+
87
+ - [T014] [US2] RED: Test para campo obligatorio vacío
88
+ - [T015] [US2] RED: Test para contraseña débil
89
+ - [T016] [US2] GREEN: Implementar validaciones adicionales
90
+ - [T017] [P] [US2] RED: Test BDD desde escenarios Gherkin P2
91
+
92
+ ---
93
+
94
+ ## Fase 4: Polish (Paralelizable)
95
+
96
+ Refinamientos transversales.
97
+
98
+ - [T018] [P] Refactor: Extraer validaciones a módulo compartido (si aplica)
99
+ - [T019] [P] Docs: Actualizar API docs con nuevo endpoint
100
+ - [T020] [P] Lint: Ejecutar linter y corregir warnings
101
+
102
+ ---
103
+
104
+ ## Fase 5: Verificación Final
105
+
106
+ - [T021] Ejecutar suite completa de tests
107
+ - [T022] Verificar coverage ≥ 85% sobre código nuevo
108
+ - [T023] Verificar lint y type-check sin errores
109
+ - [T024] Verificar build exitoso
110
+
111
+ ---
112
+
113
+ ## Orden de Ejecución
114
+
115
+ ```
116
+ Fase 1: T001 ║ T002 ║ T003 (paralelo)
117
+
118
+ Fase 2: T004 → T005 → T006 → T007 (secuencial)
119
+
120
+ Fase 3: T008 → T009 → T010 → T011 ║ T012 → T013 (mixto)
121
+ T014 → T015 → T016 → T017 (secuencial)
122
+
123
+ Fase 4: T018 ║ T019 ║ T020 (paralelo)
124
+
125
+ Fase 5: T021 → T022 → T023 → T024 (secuencial)
126
+ ```
127
+
128
+ **Leyenda:** `→` secuencial | `║` paralelo
129
+ ```
130
+
131
+ ## Las 5 Fases de Ejecución
132
+
133
+ | Fase | Nombre | Tipo | Propósito |
134
+ |------|--------|------|-----------|
135
+ | 1 | **Setup** | Paralelo | Inicialización de entorno y estructura |
136
+ | 2 | **Fundación** | Secuencial | Modelos, repos, infraestructura base |
137
+ | 3 | **Historias de Usuario** | Por prioridad | Features P1 → P2 → P3+ con TDD |
138
+ | 4 | **Polish** | Paralelo | Refactoring, docs, limpieza |
139
+ | 5 | **Verificación Final** | Secuencial | Tests, coverage, lint, build |
140
+
141
+ ## Reglas de Paralelismo
142
+
143
+ - Tareas marcadas con `[P]` pueden ejecutarse en paralelo con otras `[P]` **de la misma fase**
144
+ - Tareas sin `[P]` son secuenciales y dependen de la tarea anterior
145
+ - **Nunca** ejecutar tareas de fases diferentes en paralelo
146
+ - Las fases 1 y 4 son predominantemente paralelas
147
+ - Las fases 2 y 5 son predominantemente secuenciales
148
+ - La fase 3 es mixta: secuencial dentro de cada historia, potencialmente paralelo entre historias independientes
149
+
150
+ ## Ciclo TDD por Tarea
151
+
152
+ ```
153
+ RED: Escribir test que FALLA
154
+ → Ejecutar: verificar que falla por la razón correcta
155
+
156
+ GREEN: Implementar el código MÍNIMO para que el test pase
157
+ → Ejecutar: verificar que PASA
158
+
159
+ REFACTOR: Limpiar sin cambiar comportamiento (solo en Fase 4)
160
+ → Ejecutar: verificar que sigue pasando
161
+ ```
162
+
163
+ ## Puerta de Calidad
164
+
165
+ Este comando implementa la **Puerta 5 (Preparación de Tareas)**:
166
+
167
+ - Todas las tareas tienen IDs únicos (`T###`)
168
+ - Todas las tareas de implementación tienen rutas exactas de archivos
169
+ - Tareas paralelizables marcadas con `[P]`
170
+ - Historias asociadas con `[US#]`
171
+ - Las 5 fases están presentes
172
+ - Orden de ejecución documentado
@@ -0,0 +1,211 @@
1
+ ---
2
+ description: Extraer especificaciones compactas desde código existente (Blueprint Distillation)
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:destilar
7
+
8
+ ## Objetivo
9
+
10
+ Analizar un codebase existente y extraer un **blueprint compacto**: especificaciones, contratos, reglas de negocio y decisiones arquitectónicas implícitas en el código. Es ingeniería inversa de specs, no de arquitectura (para eso existe `/especdev:reversa`).
11
+
12
+ > Adaptado de DeepCode (HKUDS/DeepCode) — Blueprint Distillation: "comprimir código fuente para extraer especificaciones esenciales, filtrando ruido y preservando patrones críticos."
13
+
14
+ ## Uso
15
+
16
+ ```
17
+ /especdev:destilar # Destilar el proyecto actual
18
+ /especdev:destilar @ruta/al/modulo # Destilar un módulo específico
19
+ /especdev:destilar --formato gherkin # Output en formato Gherkin
20
+ /especdev:destilar --formato resumen # Output como resumen ejecutivo
21
+ /especdev:destilar --formato contratos # Solo interfaces y contratos
22
+ ```
23
+
24
+ ## Por Qué Existe
25
+
26
+ | Situación | Sin Destilar | Con Destilar |
27
+ |-----------|-------------|--------------|
28
+ | Proyecto heredado sin docs | Leer todo el código | Blueprint de 200 líneas |
29
+ | Migración a nueva versión | Riesgo de perder reglas implícitas | Spec explícita para validar |
30
+ | Onboarding de nuevo dev | Semanas entendiendo el código | Blueprint + mapa en 1 hora |
31
+ | Rewrite parcial | ¿Qué comportamiento preservar? | Contratos explícitos |
32
+
33
+ ## Diferencia con `/especdev:reversa`
34
+
35
+ | Aspecto | `/especdev:reversa` | `/especdev:destilar` |
36
+ |---------|--------------------|--------------------|
37
+ | **Foco** | Arquitectura (componentes, conexiones) | Comportamiento (reglas, contratos) |
38
+ | **Output** | Mapa de componentes | Especificaciones compactas |
39
+ | **Pregunta** | "¿Cómo está construido?" | "¿Qué hace y por qué?" |
40
+ | **Formato** | Diagrama + tabla | Gherkin / contratos / resumen |
41
+
42
+ Se complementan: `reversa` te da el **mapa**, `destilar` te da las **reglas**.
43
+
44
+ ## Comportamiento
45
+
46
+ ### Paso 1: Análisis de Superficie
47
+
48
+ ```
49
+ Escaneando módulo src/services/payment/...
50
+ ├── 8 archivos, 1,247 líneas de código
51
+ ├── 23 funciones exportadas
52
+ ├── 4 interfaces/tipos públicos
53
+ ├── 12 tests encontrados
54
+ └── 3 dependencias externas (Stripe, Redis, Logger)
55
+ ```
56
+
57
+ ### Paso 2: Extracción de Reglas de Negocio
58
+
59
+ El destilador busca reglas implícitas en:
60
+
61
+ | Fuente | Qué Extrae | Ejemplo |
62
+ |--------|-----------|---------|
63
+ | **Validaciones** | Reglas de dominio | "Monto mínimo: $1.00, máximo: $999,999" |
64
+ | **Condicionales** | Lógica de negocio | "Si el usuario es premium, no cobra comisión" |
65
+ | **Error handling** | Casos límite | "Reintentar 3 veces si Stripe devuelve 429" |
66
+ | **Tests** | Comportamiento esperado | "Webhook debe ser idempotente" |
67
+ | **Tipos/Interfaces** | Contratos | "PaymentIntent requiere: amount, currency, customerId" |
68
+ | **Comentarios** | Intención del dev original | "// HACK: Stripe no soporta ARS, convertir a USD" |
69
+
70
+ ### Paso 3: Compresión
71
+
72
+ Eliminar ruido, preservar esencia:
73
+
74
+ ```
75
+ Código original: 1,247 líneas
76
+ ├── Boilerplate eliminado: 400 líneas (imports, exports, logging)
77
+ ├── Implementación interna eliminada: 500 líneas
78
+ ├── Duplicación eliminada: 100 líneas
79
+ └── Blueprint resultante: ~247 líneas (ratio 5:1)
80
+ ```
81
+
82
+ **Regla de compresión:** El blueprint debe ser ≤20% del código original.
83
+
84
+ ### Paso 4: Formato de Output
85
+
86
+ #### Formato Gherkin (default)
87
+
88
+ ```gherkin
89
+ Feature: Procesamiento de Pagos
90
+ El sistema procesa pagos a través de Stripe
91
+ con reintentos automáticos y manejo de moneda.
92
+
93
+ Reglas de Negocio:
94
+ - Monto mínimo: $1.00 USD
95
+ - Monto máximo: $999,999.00 USD
96
+ - Monedas soportadas: USD, EUR, BRL
97
+ - Usuarios premium: sin comisión de procesamiento
98
+ - Comisión estándar: 2.9% + $0.30
99
+
100
+ Escenario: Pago exitoso
101
+ Dado un usuario con customerId válido en Stripe
102
+ Y un monto de $50.00 USD
103
+ Cuando se procesa el pago
104
+ Entonces se crea un PaymentIntent en Stripe
105
+ Y se registra la transacción en la base de datos
106
+ Y se emite el evento "payment.completed"
107
+
108
+ Escenario: Reintento por rate limit
109
+ Dado que Stripe responde con HTTP 429
110
+ Cuando se procesa el pago
111
+ Entonces se reintenta hasta 3 veces con backoff exponencial
112
+ Y si todos fallan, se marca como "payment.failed"
113
+ Y se notifica al equipo de soporte
114
+
115
+ Escenario: Moneda no soportada
116
+ Dado un monto en ARS (peso argentino)
117
+ Cuando se procesa el pago
118
+ Entonces se convierte a USD usando el tipo de cambio del día
119
+ Y se procesa en USD
120
+ Y se registra el tipo de cambio usado
121
+ ```
122
+
123
+ #### Formato Contratos
124
+
125
+ ```typescript
126
+ // Blueprint: Contratos del Módulo de Pagos
127
+ // Extraído de: src/services/payment/ (8 archivos, 1,247 LOC)
128
+ // Fecha: 2026-03-21
129
+
130
+ interface PaymentIntent {
131
+ amount: number; // centavos, min: 100, max: 99999900
132
+ currency: 'USD' | 'EUR' | 'BRL';
133
+ customerId: string; // Stripe customer ID
134
+ metadata?: Record<string, string>;
135
+ }
136
+
137
+ interface PaymentResult {
138
+ id: string;
139
+ status: 'succeeded' | 'failed' | 'pending';
140
+ stripePaymentIntentId: string;
141
+ amount: number;
142
+ fee: number; // 0 para premium, 2.9% + 30 para estándar
143
+ createdAt: Date;
144
+ }
145
+
146
+ // Contratos de servicio
147
+ type ProcessPayment = (intent: PaymentIntent) => Promise<PaymentResult>;
148
+ type RefundPayment = (paymentId: string, amount?: number) => Promise<RefundResult>;
149
+ type GetPaymentStatus = (paymentId: string) => Promise<PaymentResult>;
150
+
151
+ // Invariantes
152
+ // - ProcessPayment es idempotente (mismo intent = mismo resultado)
153
+ // - RefundPayment parcial: amount <= payment.amount
154
+ // - Retry policy: 3 intentos, backoff exponencial (1s, 2s, 4s)
155
+ ```
156
+
157
+ #### Formato Resumen
158
+
159
+ ```markdown
160
+ ## Blueprint: Módulo de Pagos
161
+
162
+ ### Responsabilidad
163
+ Procesar pagos a través de Stripe con reintentos y conversión de moneda.
164
+
165
+ ### Reglas de Negocio
166
+ 1. Montos: $1.00 - $999,999.00 USD
167
+ 2. Monedas: USD, EUR, BRL (ARS se convierte a USD)
168
+ 3. Comisión: 2.9% + $0.30 (premium: 0%)
169
+ 4. Reintentos: 3x con backoff exponencial ante rate limit
170
+ 5. Idempotencia: mismo PaymentIntent = mismo resultado
171
+
172
+ ### Dependencias Externas
173
+ - Stripe API v3 (pagos, reembolsos)
174
+ - Redis (cache de tipos de cambio, idempotency keys)
175
+
176
+ ### Riesgos Identificados
177
+ - Conversión ARS→USD usa hack manual (comentario en código)
178
+ - No hay circuit breaker para Stripe
179
+ - Tests no cubren reembolsos parciales
180
+ ```
181
+
182
+ ## Integración con Pipeline
183
+
184
+ ```
185
+ /especdev:destilar → blueprint
186
+ → /especdev:especificar → .feature (informada por blueprint)
187
+ → /especdev:clarificar → validar contra blueprint
188
+ → /especdev:planificar-tecnico → usar contratos como base
189
+ ```
190
+
191
+ El blueprint alimenta el pipeline de specs, cerrando el ciclo:
192
+ **Código existente → Blueprint → Spec → Nuevo código validado**
193
+
194
+ ## Almacenamiento
195
+
196
+ El blueprint se guarda en:
197
+
198
+ ```
199
+ .especdev/blueprints/
200
+ ├── payment.blueprint.md # Blueprint del módulo de pagos
201
+ ├── auth.blueprint.md # Blueprint del módulo de auth
202
+ └── _index.md # Índice de blueprints
203
+ ```
204
+
205
+ ## Guardrails
206
+
207
+ - **Nunca** incluir credenciales o secretos en el blueprint
208
+ - **Nunca** exceder 20% del tamaño del código original
209
+ - **Siempre** indicar qué archivos se analizaron
210
+ - **Siempre** marcar los "hacks" o workarounds encontrados como riesgos
211
+ - **Siempre** distinguir entre reglas de negocio confirmadas (por tests) y supuestas (por código)
@@ -0,0 +1,81 @@
1
+ ---
2
+ description: Detectar ambigüedades y contradicciones en specs de forma exhaustiva
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:detectar-ambiguedad
7
+
8
+ ## Objetivo
9
+
10
+ Escanear specs en busca de ambigüedades, contradicciones, requisitos implícitos y campos faltantes. Va más allá de la clarificación básica — es un análisis exhaustivo de la calidad de la spec.
11
+
12
+ > Basado en la práctica de MELI: "La ambigüedad es el bottleneck #1 del AI coding."
13
+
14
+ ## Uso
15
+
16
+ ```
17
+ /especdev:detectar-ambiguedad @specs/features/<dominio>/<Feature>.feature
18
+ /especdev:detectar-ambiguedad --todos # Escanear todas las specs activas
19
+ ```
20
+
21
+ ## Qué Detecta
22
+
23
+ ### 1. Ambigüedades Lingüísticas
24
+ - Pronombres sin referente claro ("esto se envía", "eso se valida")
25
+ - Cuantificadores vagos ("algunos", "varios", "muchos")
26
+ - Verbos pasivos sin sujeto ("será procesado", "se debe validar")
27
+
28
+ ### 2. Contradicciones Internas
29
+ - Escenario A dice "email obligatorio", Escenario B no lo valida
30
+ - Plan dice "async", tasks dice "sync"
31
+ - Schema dice `NOT NULL`, spec no tiene escenario de validación
32
+
33
+ ### 3. Requisitos Implícitos No Documentados
34
+ - "El usuario se registra" → ¿Qué pasa con confirmación por email?
35
+ - "Se guarda en BD" → ¿Qué campos son obligatorios?
36
+ - "Se envía notificación" → ¿A quién? ¿Cuándo? ¿Cómo?
37
+
38
+ ### 4. Gaps de Cobertura
39
+ - Happy path sin sad path correspondiente
40
+ - Campos en DBML sin validación en Gherkin
41
+ - Endpoints sin manejo de errores
42
+
43
+ ## Output
44
+
45
+ ```markdown
46
+ === Análisis de Ambigüedad ===
47
+
48
+ Feature: GestionarPedidos.feature
49
+ Score de Claridad: 72/100
50
+
51
+ ## 🔴 Contradicciones (3)
52
+ 1. Línea 15: "el pedido se crea" vs Línea 42: "el pedido requiere aprobación"
53
+ → ¿Se crea directo o necesita aprobación?
54
+ 2. Línea 23: campo "estado" acepta "activo" vs DBML: enum no incluye "activo"
55
+ 3. Escenario 3 y Escenario 7 usan distinto formato de fecha
56
+
57
+ ## 🟡 Ambigüedades (5)
58
+ 1. Línea 8: "se notifica al usuario" → ¿email? ¿push? ¿in-app?
59
+ 2. Línea 31: "se valida el pago" → ¿qué proveedor? ¿qué criterios?
60
+ 3. Línea 45: "datos del cliente" → ¿cuáles exactamente?
61
+ 4. Línea 52: "en tiempo razonable" → ¿cuánto es razonable?
62
+ 5. Línea 67: "se procesa" → ¿quién? ¿cuándo? ¿cómo?
63
+
64
+ ## 🟢 Requisitos Implícitos Detectados (2)
65
+ 1. No hay escenario para cancelar pedido después de pago
66
+ 2. No hay manejo de timeout en validación de pago
67
+
68
+ ## Recomendaciones
69
+ - Resolver contradicciones ANTES de avanzar a fase Plan
70
+ - Score mínimo recomendado: 85/100
71
+ - Score actual: 72/100 → NO AVANZAR
72
+ ```
73
+
74
+ ## Score de Claridad
75
+
76
+ | Rango | Clasificación | Acción |
77
+ |-------|--------------|--------|
78
+ | 90-100 | Cristalino | ✅ Avanzar |
79
+ | 80-89 | Claro | ✅ Avanzar con notas |
80
+ | 70-79 | Aceptable | ⚠️ Resolver ambigüedades primero |
81
+ | <70 | Ambiguo | ❌ NO avanzar, reescribir |