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,237 @@
1
+ ---
2
+ description: Planificar y ejecutar migración entre stacks tecnológicos o versiones mayores
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:migrar
7
+
8
+ ## Objetivo
9
+
10
+ Planificar y ejecutar migraciones de stacks tecnológicos (Vue→React, Express→Fastify) o actualizaciones de versiones mayores (Next.js 14→15, Python 3.9→3.12), minimizando riesgo de regresión.
11
+
12
+ ## Uso
13
+
14
+ ```
15
+ /especdev:migrar --de "Vue 3" --a "React 19"
16
+ /especdev:migrar --de "Express 4" --a "Fastify 5"
17
+ /especdev:migrar --de "Next.js 14" --a "Next.js 15"
18
+ /especdev:migrar --de "Python 3.9" --a "Python 3.12"
19
+ /especdev:migrar --de "REST" --a "GraphQL"
20
+ /especdev:migrar --de "JavaScript" --a "TypeScript"
21
+ /especdev:migrar --solo-plan # Solo generar plan, no ejecutar
22
+ ```
23
+
24
+ ## Tipos de Migración
25
+
26
+ | Tipo | Ejemplo | Riesgo | Enfoque |
27
+ |------|---------|--------|---------|
28
+ | **Framework** | Vue→React, Django→FastAPI | Alto | Rewrite incremental |
29
+ | **Versión mayor** | Next 14→15, Angular 17→19 | Medio | Upgrade guiado por changelog |
30
+ | **Lenguaje** | JS→TS, Python 2→3 | Alto | Codemods + revisión manual |
31
+ | **Paradigma** | REST→GraphQL, Monolito→Micro | Muy alto | Strangler Fig pattern |
32
+ | **Base de datos** | MySQL→PostgreSQL, Mongo→PG | Alto | Dual-write + migración |
33
+
34
+ ## Proceso (6 fases)
35
+
36
+ ### Fase 1: Inventario (automático)
37
+
38
+ Mapear el estado actual del proyecto:
39
+
40
+ ```markdown
41
+ ## Inventario de Migración: Vue 3 → React 19
42
+
43
+ ### Stack Actual
44
+ - Framework: Vue 3.4 + Composition API
45
+ - Estado: Pinia 2.1
46
+ - Router: vue-router 4.3
47
+ - UI: Vuetify 3
48
+ - Build: Vite 5
49
+ - Tests: Vitest + Vue Test Utils
50
+
51
+ ### Alcance
52
+ - Componentes: 47
53
+ - Stores: 8
54
+ - Rutas: 23
55
+ - Tests: 112
56
+ - LOC: 12,400
57
+
58
+ ### Dependencias Vue-Específicas
59
+ | Dependencia | Alternativa React | Complejidad |
60
+ |-------------|-------------------|-------------|
61
+ | Pinia | Zustand / Redux Toolkit | Baja |
62
+ | vue-router | React Router v7 | Media |
63
+ | Vuetify | shadcn/ui + TailwindCSS | Alta |
64
+ | Vue Test Utils | React Testing Library | Media |
65
+ | Composables (12) | Custom hooks | Baja |
66
+ ```
67
+
68
+ ### Fase 2: Mapa de Equivalencias
69
+
70
+ Traducir conceptos entre ecosistemas:
71
+
72
+ ```markdown
73
+ ## Equivalencias Vue → React
74
+
75
+ | Vue | React | Notas |
76
+ |-----|-------|-------|
77
+ | `<template>` | JSX | Diferente sintaxis, misma función |
78
+ | `ref()` / `reactive()` | `useState()` | Reactividad automática vs explícita |
79
+ | `computed()` | `useMemo()` | Semántica similar |
80
+ | `watch()` / `watchEffect()` | `useEffect()` | Cuidado con el array de deps |
81
+ | `onMounted()` | `useEffect(() => {}, [])` | Lifecycle → effects |
82
+ | `provide/inject` | `Context API` | Para estado compartido profundo |
83
+ | `v-if` / `v-for` | `{condition && ...}` / `.map()` | JSX condicional |
84
+ | `v-model` | `value` + `onChange` | Two-way vs one-way binding |
85
+ | Pinia store | Zustand store | API muy similar |
86
+ | `<slot>` | `children` / `render props` | Composición de componentes |
87
+ | Directive (`v-tooltip`) | HOC o hook | Sin equivalente directo |
88
+ | `<Transition>` | `framer-motion` | Animaciones |
89
+ ```
90
+
91
+ ### Fase 3: Estrategia de Migración
92
+
93
+ Elegir enfoque según riesgo:
94
+
95
+ #### Opción A: Big Bang (riesgo alto, rápido)
96
+ ```
97
+ Reescribir todo de una vez.
98
+ ✅ Para: proyectos pequeños (< 20 componentes)
99
+ ❌ No para: proyectos en producción con usuarios activos
100
+ ```
101
+
102
+ #### Opción B: Strangler Fig (riesgo bajo, gradual) ← Recomendado
103
+ ```
104
+ Migrar componente por componente, coexistiendo ambos frameworks.
105
+
106
+ Fase 1: Setup React junto a Vue (micro-frontend o iframe)
107
+ Fase 2: Migrar componentes leaf (sin hijos Vue)
108
+ Fase 3: Migrar componentes intermedios
109
+ Fase 4: Migrar componentes root
110
+ Fase 5: Remover Vue
111
+ ```
112
+
113
+ #### Opción C: Parallel Run (riesgo medio)
114
+ ```
115
+ Construir la versión React en paralelo, switchear cuando esté lista.
116
+ ✅ Para: aplicaciones críticas que no pueden tener downtime
117
+ ❌ Costoso en tiempo (mantener dos codebases)
118
+ ```
119
+
120
+ ### Fase 4: Plan de Migración
121
+
122
+ Genera `.especdev/migracion/plan-migracion.md`:
123
+
124
+ ```markdown
125
+ ## Plan de Migración: Vue → React
126
+
127
+ ### Orden de Migración (por dependencias)
128
+
129
+ #### Wave 1: Infraestructura (sin UI)
130
+ - [ ] M001: Setup React + Vite + TypeScript
131
+ - [ ] M002: Configurar React Router (mapear rutas existentes)
132
+ - [ ] M003: Configurar Zustand (mapear stores Pinia)
133
+ - [ ] M004: Setup React Testing Library
134
+
135
+ #### Wave 2: Componentes Atómicos (sin dependencias internas)
136
+ - [ ] M005: Migrar Button, Input, Modal (Vuetify → shadcn/ui)
137
+ - [ ] M006: Migrar layout components (Header, Sidebar, Footer)
138
+ - [ ] M007: Tests para componentes migrados
139
+
140
+ #### Wave 3: Componentes con Estado
141
+ - [ ] M008: Migrar stores Pinia → Zustand (uno por uno)
142
+ - [ ] M009: Migrar composables → custom hooks
143
+ - [ ] M010: Migrar formularios con validación
144
+
145
+ #### Wave 4: Páginas y Rutas
146
+ - [ ] M011: Migrar páginas leaf (sin sub-rutas)
147
+ - [ ] M012: Migrar páginas con sub-rutas
148
+ - [ ] M013: Migrar guards de ruta → loader/middleware
149
+
150
+ #### Wave 5: Cleanup
151
+ - [ ] M014: Remover dependencias Vue
152
+ - [ ] M015: Actualizar CI/CD
153
+ - [ ] M016: Actualizar documentación
154
+
155
+ ### Tests de Regresión por Wave
156
+ Cada wave ejecuta:
157
+ 1. Tests unitarios de componentes migrados
158
+ 2. Tests de integración de rutas migradas
159
+ 3. Tests end-to-end del flujo completo
160
+ 4. Comparación visual (screenshot diff) si aplica
161
+ ```
162
+
163
+ ### Fase 5: Ejecución
164
+
165
+ Cada tarea de migración sigue el ciclo:
166
+
167
+ ```
168
+ 1. Leer componente/módulo Vue
169
+ 2. Mapear a equivalencia React
170
+ 3. Escribir test React (RED)
171
+ 4. Implementar componente React (GREEN)
172
+ 5. Verificar paridad funcional
173
+ 6. Commit atómico: "migrate: ComponentName Vue→React"
174
+ ```
175
+
176
+ ### Fase 6: Verificación Post-Migración
177
+
178
+ ```markdown
179
+ ## Checklist Post-Migración
180
+
181
+ ### Funcionalidad
182
+ - [ ] Todas las rutas funcionan
183
+ - [ ] Formularios envían datos correctamente
184
+ - [ ] Estado se persiste entre navegaciones
185
+ - [ ] Auth flow completo funciona
186
+
187
+ ### Rendimiento
188
+ - [ ] Bundle size ≤ original (o justificar)
189
+ - [ ] LCP ≤ original
190
+ - [ ] No memory leaks en SPA navigation
191
+
192
+ ### Calidad
193
+ - [ ] Coverage de tests ≥ original
194
+ - [ ] 0 dependencias Vue restantes
195
+ - [ ] Sin TODOs de migración pendientes
196
+ - [ ] CI/CD actualizado y pasando
197
+ ```
198
+
199
+ ## Formato de Commits de Migración
200
+
201
+ ```
202
+ migrate: <componente/módulo> <origen>→<destino>
203
+ migrate: Button component Vue→React
204
+ migrate: auth store Pinia→Zustand
205
+ migrate: /dashboard route vue-router→react-router
206
+ ```
207
+
208
+ ## Almacenamiento
209
+
210
+ ```
211
+ .especdev/migracion/
212
+ ├── inventario.md # Estado actual del proyecto
213
+ ├── equivalencias.md # Mapa de traducciones
214
+ ├── plan-migracion.md # Plan con waves y tareas
215
+ ├── progreso-migracion.md # Tracking de avance
216
+ └── post-migracion.md # Checklist de verificación
217
+ ```
218
+
219
+ ## Integración con Pipeline
220
+
221
+ ```
222
+ /especdev:migrar → inventario + equivalencias + plan
223
+ → /especdev:poc (opcional) → validar enfoque en módulo piloto
224
+ → /especdev:implementar → ejecutar por waves
225
+ → /especdev:auditar-seguridad → verificar que migración no introduce vulnerabilidades
226
+ → /especdev:revisar → review final
227
+ ```
228
+
229
+ ## Guardrails
230
+
231
+ - **Nunca** migrar sin tests de regresión del sistema original
232
+ - **Nunca** migrar todo de una vez en proyectos en producción (usar Strangler Fig)
233
+ - **Siempre** mantener paridad funcional (no agregar features durante migración)
234
+ - **Siempre** commit atómico por componente/módulo migrado
235
+ - **Siempre** verificar rendimiento post-migración (bundle size, LCP)
236
+ - **Siempre** ejecutar tests e2e del flujo completo después de cada wave
237
+ - Si la migración afecta > 30% del codebase → confirmar con usuario antes de cada wave
@@ -0,0 +1,214 @@
1
+ ---
2
+ description: Buscar repos open-source relevantes como referencia antes de implementar
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:minar-referencias
7
+
8
+ ## Objetivo
9
+
10
+ Buscar y evaluar repositorios open-source, snippets y patrones de referencia relevantes para la tarea actual. Reduce el "empezar de cero" proporcionando implementaciones probadas como guía.
11
+
12
+ > Adaptado de DeepCode (HKUDS/DeepCode) — Code Reference Mining Agent: "descubrir repositorios relevantes y construir knowledge graphs para informar la generación de código."
13
+
14
+ ## Uso
15
+
16
+ ```
17
+ /especdev:minar-referencias "webhook handler con verificación de firma"
18
+ /especdev:minar-referencias "rate limiter con sliding window"
19
+ /especdev:minar-referencias --stack node,typescript "auth con JWT refresh"
20
+ /especdev:minar-referencias --max 5 "graphql subscriptions"
21
+ ```
22
+
23
+ ## Por Qué Existe
24
+
25
+ | Sin Minar | Con Minar |
26
+ |-----------|-----------|
27
+ | Implementar desde cero | Partir de patrones probados |
28
+ | Descubrir anti-patrones tarde | Conocer pitfalls de antemano |
29
+ | Reinventar soluciones comunes | Reutilizar lo que funciona |
30
+ | Estimaciones imprecisas | Complejidad real visible |
31
+
32
+ ## Comportamiento
33
+
34
+ ### Paso 1: Análisis de la Query
35
+
36
+ ```
37
+ Query: "webhook handler con verificación de firma"
38
+ ├── Conceptos clave: webhook, handler, signature verification
39
+ ├── Stack detectado: Node.js + TypeScript (de config.yaml)
40
+ ├── Dominio: API integration, security
41
+ └── Complejidad estimada: Media
42
+ ```
43
+
44
+ ### Paso 2: Búsqueda Multi-Fuente
45
+
46
+ El comando busca en múltiples fuentes (según disponibilidad):
47
+
48
+ | Fuente | Método | Qué Busca |
49
+ |--------|--------|-----------|
50
+ | **GitHub** | API search / web search | Repos con implementaciones similares |
51
+ | **Proyecto actual** | Grep local | Código existente reutilizable |
52
+ | **CodeRAG** | Índice local | Patrones ya indexados |
53
+ | **Memoria** | Engram | Decisiones previas sobre el tema |
54
+
55
+ ### Paso 3: Evaluación de Relevancia
56
+
57
+ Cada resultado se evalúa en 4 dimensiones:
58
+
59
+ | Dimensión | Peso | Criterio |
60
+ |-----------|------|----------|
61
+ | **Relevancia** | 40% | ¿Resuelve el mismo problema? |
62
+ | **Calidad** | 25% | Stars, mantenimiento, tests, docs |
63
+ | **Compatibilidad** | 20% | ¿Mismo stack/framework? |
64
+ | **Simplicidad** | 15% | ¿Es adoptable sin refactor mayor? |
65
+
66
+ Score = suma ponderada (0.0 - 1.0)
67
+
68
+ ### Paso 4: Extracción de Patrones
69
+
70
+ De los top resultados, se extraen:
71
+
72
+ ```
73
+ 1. Patrón arquitectónico usado
74
+ 2. Dependencias clave
75
+ 3. Manejo de errores
76
+ 4. Edge cases cubiertos
77
+ 5. Snippet representativo (≤ 30 líneas)
78
+ ```
79
+
80
+ ## Output
81
+
82
+ ```markdown
83
+ ## Referencias Minadas: "webhook handler con verificación de firma"
84
+
85
+ Fecha: 2026-03-21 | Stack: Node.js + TypeScript | Resultados: 3
86
+
87
+ ---
88
+
89
+ ### 1. stripe/stripe-node — Webhook Verification (score: 0.91)
90
+ **Repo:** github.com/stripe/stripe-node
91
+ **Archivo:** src/Webhooks.ts
92
+ **Por qué es relevante:** Implementación de referencia de Stripe para verificar firmas HMAC-SHA256.
93
+
94
+ **Patrón:**
95
+ - Verificar firma antes de procesar
96
+ - Tolerancia de timestamp (5 min por defecto)
97
+ - Comparación timing-safe para prevenir timing attacks
98
+
99
+ **Snippet:**
100
+ ```typescript
101
+ function verifySignature(payload: string, header: string, secret: string): boolean {
102
+ const timestamp = extractTimestamp(header);
103
+ const signature = extractSignature(header);
104
+
105
+ if (Date.now() / 1000 - timestamp > TOLERANCE) {
106
+ throw new WebhookSignatureError('Timestamp too old');
107
+ }
108
+
109
+ const expected = crypto
110
+ .createHmac('sha256', secret)
111
+ .update(`${timestamp}.${payload}`)
112
+ .digest('hex');
113
+
114
+ return crypto.timingSafeEqual(
115
+ Buffer.from(signature),
116
+ Buffer.from(expected)
117
+ );
118
+ }
119
+ ```
120
+
121
+ **Lecciones:**
122
+ - Usar `timingSafeEqual` (no `===`) para comparar firmas
123
+ - Validar timestamp para prevenir replay attacks
124
+ - Lanzar error específico (no genérico)
125
+
126
+ ---
127
+
128
+ ### 2. svix/svix-webhooks — Webhook Handler Pattern (score: 0.84)
129
+ **Repo:** github.com/svix/svix-webhooks
130
+ **Por qué es relevante:** SDK de webhooks con patrón de handler idempotente.
131
+
132
+ **Patrón:**
133
+ - Idempotency key en header
134
+ - Queue para procesamiento async
135
+ - Retry automático con backoff
136
+
137
+ **Lecciones:**
138
+ - Separar verificación de procesamiento
139
+ - Idempotencia es obligatoria para webhooks
140
+ - Responder 200 antes de procesar (async)
141
+
142
+ ---
143
+
144
+ ### 3. [Proyecto actual] src/utils/crypto.ts (score: 0.72)
145
+ **Archivo:** src/utils/crypto.ts:15-30
146
+ **Por qué es relevante:** Ya existe un helper de HMAC en el proyecto.
147
+
148
+ **Nota:** Reutilizar `createHmacSignature()` existente en vez de reimplementar.
149
+
150
+ ---
151
+
152
+ ## Resumen de Decisiones
153
+
154
+ | Decisión | Recomendación | Fuente |
155
+ |----------|--------------|--------|
156
+ | Verificación de firma | HMAC-SHA256 + timestamp | stripe/stripe-node |
157
+ | Comparación de firma | `timingSafeEqual` | stripe/stripe-node |
158
+ | Procesamiento | Async (queue) + responder 200 | svix/svix-webhooks |
159
+ | Helper de HMAC | Reutilizar existente | Proyecto actual |
160
+ | Idempotencia | Idempotency key en header | svix/svix-webhooks |
161
+
162
+ ## Próximo Paso
163
+ → `/especdev:especificar` usando estas referencias como base
164
+ → O `/especdev:planificar-tecnico` para incorporar los patrones al blueprint
165
+ ```
166
+
167
+ ## Integración con Pipeline
168
+
169
+ ```
170
+ /especdev:minar-referencias → referencias
171
+ → /especdev:especificar → specs informadas
172
+ → /especdev:planificar-tecnico → plan con patrones reales
173
+ → CodeRAG → indexar patrones útiles para futuro
174
+
175
+ /especdev:minar-referencias → referencias
176
+ → /especdev:estimar → estimados más precisos (complejidad real)
177
+ ```
178
+
179
+ ## Integración con CodeRAG
180
+
181
+ Los patrones encontrados se pueden indexar automáticamente:
182
+
183
+ ```
184
+ ¿Indexar los patrones encontrados en CodeRAG? (s/n)
185
+ > s
186
+ Indexados 3 patrones en .especdev/code-rag/patterns.json
187
+ ```
188
+
189
+ ## Almacenamiento
190
+
191
+ ```
192
+ .especdev/referencias/
193
+ ├── webhook-handler-2026-03-21.md # Resultado de esta búsqueda
194
+ ├── rate-limiter-2026-03-15.md # Búsqueda anterior
195
+ └── _index.md # Índice de búsquedas
196
+ ```
197
+
198
+ ## Modelo Recomendado
199
+
200
+ | Paso | Modelo | Razón |
201
+ |------|--------|-------|
202
+ | Búsqueda | Haiku | Solo buscar y filtrar |
203
+ | Evaluación de relevancia | Haiku | Scoring simple |
204
+ | Extracción de patrones | Sonnet | Requiere comprensión de código |
205
+ | Resumen de decisiones | Haiku | Formateo |
206
+
207
+ ## Guardrails
208
+
209
+ - **Nunca** copiar código con licencias incompatibles sin verificar
210
+ - **Nunca** incluir credenciales o tokens de repos de referencia
211
+ - **Siempre** priorizar código existente en el proyecto sobre externo
212
+ - **Siempre** indicar la fuente y licencia de cada referencia
213
+ - **Siempre** limitar snippets a ≤30 líneas (respetar fair use)
214
+ - **Máximo** 5 referencias por búsqueda (evitar analysis paralysis)
@@ -0,0 +1,186 @@
1
+ ---
2
+ description: Generar blueprint técnico desde una especificación Gherkin
3
+ i18n: true
4
+ ---
5
+
6
+ # /especdev:planificar-tecnico
7
+
8
+ ## Objetivo
9
+
10
+ Generar un blueprint técnico (contratos API, modelos, arquitectura de servicios) desde una especificación Gherkin, incluyendo verificación de constitución y contexto técnico estructurado.
11
+
12
+ > Alineado con spec-kit (github/spec-kit) — Constitution Check, Technical Context y Complexity Tracking
13
+
14
+ ## Uso
15
+
16
+ ```
17
+ /especdev:planificar-tecnico @specs/features/<dominio>/<Feature>.feature
18
+ ```
19
+
20
+ ## Comportamiento
21
+
22
+ 1. **Verificar Puerta 2** — El `.feature` debe tener tag `@lista` (pasó `/especdev:clarificar`)
23
+ 2. **Verificar** que no hay marcadores `[NECESITA CLARIFICACIÓN]` pendientes
24
+ 3. **Ejecutar Chequeo de Constitución** — Validar contra los principios de `reglas/constitucion.md`
25
+ 4. **Documentar Contexto Técnico** — Stack, dependencias, restricciones
26
+ 5. **Ratificar DBML** — Convertir campos `@provisional` a ratificados
27
+ 6. **Generar** contratos API, modelos, arquitectura de servicios
28
+ 7. **Registrar Complejidad** — Justificar desviaciones de simplicidad
29
+ 8. **Crear** archivo `.plan.md` en `specs/features/<dominio>/`
30
+
31
+ ## Output
32
+
33
+ Genera `specs/features/<dominio>/<Feature>.plan.md`:
34
+
35
+ ```markdown
36
+ # Blueprint Técnico: CrearUsuario
37
+
38
+ **Rama:** feature/crear-usuario
39
+ **Spec:** specs/features/usuario/CrearUsuario.feature
40
+ **Fecha:** 2026-03-21
41
+ **Estado:** Borrador
42
+
43
+ ---
44
+
45
+ ## Resumen
46
+
47
+ Implementar registro de usuarios con email/contraseña, incluyendo
48
+ validación, hashing de contraseña y generación de JWT.
49
+ Enfoque técnico: API REST con patrón Controller → Service → Repository.
50
+
51
+ ---
52
+
53
+ ## Chequeo de Constitución
54
+
55
+ Verificación obligatoria contra `reglas/constitucion.md`:
56
+
57
+ | Artículo | Principio | Estado | Notas |
58
+ |----------|-----------|--------|-------|
59
+ | I | Gherkin es Rey | ✅ | Spec @lista aprobada |
60
+ | I-B | Schema como Verdad Viva | ✅ | DBML ratificado |
61
+ | II | Precisión Quirúrgica | ✅ | Cambio mínimo, 1 feature |
62
+ | III | Arquitectura Plug-and-Play | ✅ | Nuevo módulo, no infla existentes |
63
+ | IV | Regla Las Vegas | ✅ | Tests herméticos planificados |
64
+ | IV-B | Punto de Entrada | ✅ | Validación en Controller |
65
+ | V | Estándares Modernos | ✅ | Type hints + Pydantic/Zod |
66
+ | VI | Adaptabilidad | ✅ | Stack detectado: FastAPI |
67
+ | VII | Codificación Defensiva | ✅ | Excepciones custom planificadas |
68
+
69
+ **Resultado: ✅ PASA** — El plan es compatible con la constitución.
70
+
71
+ ---
72
+
73
+ ## Contexto Técnico
74
+
75
+ | Aspecto | Valor |
76
+ |---------|-------|
77
+ | **Lenguaje** | Python 3.12 / TypeScript 5.x |
78
+ | **Framework** | FastAPI 0.115 / Next.js 15 |
79
+ | **Dependencias** | bcryptjs, python-jose, pydantic |
80
+ | **Almacenamiento** | PostgreSQL 16 + Prisma/SQLAlchemy |
81
+ | **Testing** | pytest + pytest-asyncio / vitest |
82
+ | **Plataforma** | Docker + Linux |
83
+ | **Rendimiento** | < 500ms p95 (de criterios de éxito) |
84
+ | **Escala** | ~1,000 registros/día (estimado) |
85
+ | **Restricciones** | Sin OAuth en v1 (definido en clarificación) |
86
+
87
+ ---
88
+
89
+ ## Contrato API
90
+
91
+ POST /api/v1/usuarios
92
+ Content-Type: application/json
93
+
94
+ Request:
95
+ {
96
+ "email": "string (required, email format)",
97
+ "password": "string (required, min 8 chars)",
98
+ "nombre": "string (required, max 100 chars)"
99
+ }
100
+
101
+ Response 201:
102
+ {
103
+ "id": "uuid",
104
+ "email": "string",
105
+ "nombre": "string",
106
+ "token": "jwt-string",
107
+ "createdAt": "datetime"
108
+ }
109
+
110
+ Response 400:
111
+ {
112
+ "error": "string",
113
+ "field": "string (optional)"
114
+ }
115
+
116
+ Response 409:
117
+ {
118
+ "error": "El email ya está registrado"
119
+ }
120
+
121
+ ---
122
+
123
+ ## Modelo de Datos
124
+
125
+ Usuario (ratificado desde DBML):
126
+ - id: UUID (PK, auto-gen)
127
+ - email: String (unique, indexed, NOT NULL)
128
+ - password_hash: String (NOT NULL)
129
+ - nombre: String (max 100, NOT NULL)
130
+ - created_at: DateTime (default: now())
131
+
132
+ ---
133
+
134
+ ## Arquitectura de Servicios
135
+
136
+ Controller → Service → Repository → Database
137
+
138
+ EmailService (async)
139
+
140
+ ---
141
+
142
+ ## Dependencias
143
+
144
+ - bcryptjs (hash de contraseña)
145
+ - python-jose / jsonwebtoken (generación JWT)
146
+ - pydantic / zod (validación de DTOs)
147
+
148
+ ---
149
+
150
+ ## Tracking de Complejidad
151
+
152
+ Justificar cualquier decisión que añade complejidad por encima de la alternativa más simple:
153
+
154
+ | Decisión | Alternativa Simple | Por Qué Se Rechazó |
155
+ |----------|--------------------|---------------------|
156
+ | JWT con refresh token | Solo JWT simple | Requerimiento de seguridad: tokens de corta duración |
157
+ | Email async con cola | Email síncrono | Bloquea respuesta al usuario, riesgo de timeout |
158
+ | Repository pattern | Queries directas | Testabilidad: inyección de dependencias para mocks |
159
+
160
+ Si la tabla está vacía, no hay desviaciones de simplicidad.
161
+ ```
162
+
163
+ ## Secciones Obligatorias del Plan
164
+
165
+ | Sección | Propósito | Falla si falta |
166
+ |---------|-----------|----------------|
167
+ | **Resumen** | Qué y cómo en 2-3 líneas | Sí |
168
+ | **Chequeo de Constitución** | Validar contra principios | Sí |
169
+ | **Contexto Técnico** | Stack y restricciones | Sí |
170
+ | **Contrato API** | Interfaces públicas | Sí (si hay API) |
171
+ | **Modelo de Datos** | Entidades y relaciones | Sí (si hay datos) |
172
+ | **Arquitectura** | Componentes y flujo | Sí |
173
+ | **Dependencias** | Librerías externas | Sí |
174
+ | **Tracking de Complejidad** | Justificar desviaciones | Sí (puede estar vacía) |
175
+
176
+ ## Puerta de Calidad
177
+
178
+ Este comando implementa la **Puerta 4 (Aprobación de Plan)**:
179
+
180
+ - Chequeo de constitución pasa (todos ✅)
181
+ - Sin `[NECESITA CLARIFICACIÓN]` pendiente
182
+ - Contexto técnico completo
183
+ - DBML ratificado (sin campos `@provisional`)
184
+ - Tracking de complejidad documentado
185
+
186
+ Si algún artículo de la constitución no pasa → **NO-AVANZAR** hasta resolver.