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,159 @@
1
+ # Habilidad: Detección de Loops en Auto-Corrección
2
+
3
+ **Versión:** 1.0.0
4
+ **Categoría:** Calidad
5
+ **Tipo:** Rígida
6
+
7
+ > Adaptado de DeepCode (HKUDS/DeepCode) — Loop Detection & Error Correction.
8
+
9
+ ## Cómo Mejora el Framework
10
+
11
+ Don Cheli ya tiene auto-corrección (aprendizajes acumulados), pero carece de un **guard contra ciclos infinitos de fix**. Cuando el agente intenta corregir un error y la corrección genera otro error similar, puede entrar en un loop destructivo que consume tokens sin avanzar.
12
+
13
+ Esta habilidad detecta y rompe esos ciclos automáticamente.
14
+
15
+ ## El Problema
16
+
17
+ ```
18
+ Intento 1: Fix A → genera Error B
19
+ Intento 2: Fix B → genera Error A (¡loop!)
20
+ Intento 3: Fix A → genera Error B
21
+ ... (infinito, consumiendo tokens)
22
+ ```
23
+
24
+ ## Mecanismo de Detección
25
+
26
+ ### 1. Registro de Intentos
27
+
28
+ Cada corrección se registra con su firma:
29
+
30
+ ```
31
+ [INTENTO] #N | Error: <firma> | Archivo: <ruta> | Fix: <descripción>
32
+ ```
33
+
34
+ La **firma del error** es un hash del tipo + mensaje + ubicación:
35
+
36
+ ```
37
+ firma = hash(tipo_error + mensaje_normalizado + archivo + línea)
38
+ ```
39
+
40
+ ### 2. Detección de Patrones
41
+
42
+ El sistema detecta loops cuando:
43
+
44
+ | Patrón | Condición | Ejemplo |
45
+ |--------|-----------|---------|
46
+ | **Loop directo** | Misma firma aparece 2+ veces | Error A → Fix → Error A |
47
+ | **Loop ping-pong** | Dos firmas alternan | Error A → Error B → Error A |
48
+ | **Loop espiral** | 3+ firmas en ciclo | A → B → C → A |
49
+ | **Estancamiento** | 3+ intentos sin progreso medible | Fix no cambia resultado de tests |
50
+
51
+ ### 3. Umbrales
52
+
53
+ | Umbral | Valor | Acción |
54
+ |--------|-------|--------|
55
+ | **Max intentos por error** | 3 | Escalar después del 3er intento |
56
+ | **Max intentos totales por tarea** | 8 | Stop-loss de la tarea |
57
+ | **Ventana de detección** | Últimos 10 intentos | Firmas se comparan en ventana deslizante |
58
+ | **Timeout por intento** | 60 segundos | Prevenir fixes que cuelgan |
59
+
60
+ ## Flujo de Corrección con Guard
61
+
62
+ ```
63
+ 1. Detectar error
64
+ 2. ¿Firma ya vista en ventana?
65
+ ├── NO → Intentar fix, registrar intento
66
+ │ └── ¿Fix exitoso?
67
+ │ ├── SÍ → Limpiar registro, continuar
68
+ │ └── NO → Volver a paso 2
69
+
70
+ └── SÍ → ¿Cuántas veces?
71
+ ├── 2 veces → Cambiar estrategia de fix
72
+ ├── 3 veces → ⛔ PARAR, reportar al usuario
73
+ └── Escalar con contexto completo
74
+ ```
75
+
76
+ ## Estrategias de Escape
77
+
78
+ Cuando se detecta un loop, antes de escalar al usuario se intentan **estrategias alternativas** (en orden):
79
+
80
+ ### Nivel 1: Cambiar Estrategia (automático)
81
+ ```
82
+ 1. Si el fix fue en el mismo archivo → intentar fix en archivo diferente
83
+ 2. Si el fix fue sintáctico → intentar fix semántico
84
+ 3. Si el fix fue local → intentar fix en dependencia
85
+ ```
86
+
87
+ ### Nivel 2: Ampliar Contexto (automático)
88
+ ```
89
+ 1. Leer archivos adyacentes (imports, dependencias)
90
+ 2. Revisar tests para entender comportamiento esperado
91
+ 3. Consultar historial git del archivo
92
+ ```
93
+
94
+ ### Nivel 3: Escalar al Usuario (manual)
95
+ ```
96
+ ⛔ LOOP DETECTADO
97
+
98
+ Error: TypeError: Cannot read property 'id' of undefined
99
+ Archivo: src/services/auth.ts:42
100
+ Intentos: 3
101
+ Estrategias probadas:
102
+ 1. Agregar null check → generó error en caller
103
+ 2. Inicializar objeto vacío → falló validación
104
+ 3. Agregar default parameter → TypeScript error
105
+
106
+ Contexto del loop:
107
+ - El objeto `user` llega como undefined desde `getSession()`
108
+ - `getSession()` devuelve undefined cuando el token expira
109
+ - El fix necesita decisión de negocio: ¿redirigir al login o renovar token?
110
+
111
+ Opciones sugeridas:
112
+ A) Redirigir al login cuando el token expira
113
+ B) Implementar refresh token automático
114
+ C) Otro enfoque: [tu input]
115
+ ```
116
+
117
+ ## Integración con Auto-Corrección Existente
118
+
119
+ Esta habilidad **extiende** la auto-corrección existente, no la reemplaza:
120
+
121
+ ```
122
+ Auto-Corrección (aprendizajes) Detección de Loops (guard)
123
+ ├── Registra correcciones ├── Registra intentos de fix
124
+ ├── Acumula reglas ├── Detecta ciclos
125
+ ├── Previene errores futuros ├── Previene loops presentes
126
+ └── Propone al usuario └── Escala al usuario
127
+ ```
128
+
129
+ ## Registro en Memoria
130
+
131
+ Cuando un loop se resuelve, se registra en `.especdev/memoria/loops-resueltos.md`:
132
+
133
+ ```markdown
134
+ ## Loop Resuelto: 2026-03-21
135
+
136
+ - **Error:** TypeError en auth.ts:42
137
+ - **Causa raíz:** Token expirado no manejado
138
+ - **Intentos antes de resolución:** 3
139
+ - **Estrategia exitosa:** Nivel 3 (decisión del usuario: refresh token)
140
+ - **Regla aprendida:** Siempre manejar caso de token expirado en servicios auth
141
+ ```
142
+
143
+ ## Métricas
144
+
145
+ El sistema trackea:
146
+
147
+ | Métrica | Propósito |
148
+ |---------|-----------|
149
+ | Loops detectados por sesión | Medir frecuencia |
150
+ | Intentos promedio antes de detección | Medir eficiencia |
151
+ | Estrategia de escape más efectiva | Optimizar respuesta |
152
+ | Tokens ahorrados vs sin detección | Justificar la habilidad |
153
+
154
+ ## Guardrails
155
+
156
+ - **Nunca** silenciar un loop — siempre informar
157
+ - **Nunca** superar el stop-loss (8 intentos) sin escalar
158
+ - **Siempre** registrar el loop resuelto para aprendizaje futuro
159
+ - **Siempre** proponer opciones al usuario, no decidir en loops de Nivel 3
@@ -0,0 +1,195 @@
1
+ # Habilidad: Detección de Stubs (Código Placeholder)
2
+
3
+ **Versión:** 1.0.0
4
+ **Categoría:** Calidad
5
+ **Tipo:** Rígida
6
+
7
+ > Adaptado de Get Shit Done (gsd-build/get-shit-done) — Stub Detection Patterns.
8
+
9
+ ## Cómo Mejora el Framework
10
+
11
+ Un problema frecuente del desarrollo asistido por IA: el agente genera código placeholder (stubs) y lo reporta como "implementado". Don Cheli tiene revisión de código, pero no un sistema específico para detectar stubs que pasan como código completo.
12
+
13
+ ## El Problema
14
+
15
+ ```
16
+ Agente: "✅ Implementé el servicio de pagos"
17
+ Código real:
18
+ async processPayment(data) {
19
+ // TODO: implement payment processing
20
+ return { success: true };
21
+ }
22
+ ```
23
+
24
+ El agente "completó" la tarea, pero el código es un stub.
25
+
26
+ ## Patrones de Detección
27
+
28
+ ### Indicadores Universales
29
+
30
+ | Patrón | Ejemplo | Severidad |
31
+ |--------|---------|-----------|
32
+ | **TODO/FIXME/HACK** | `// TODO: implement this` | ❌ Crítico |
33
+ | **Return vacío o hardcoded** | `return {};`, `return true;`, `return []` | ❌ Crítico |
34
+ | **Throw no implementado** | `throw new Error('Not implemented')` | ❌ Crítico |
35
+ | **Console.log como lógica** | `console.log('called')` sin más lógica | ⚠️ Alto |
36
+ | **Valores hardcoded** | `return 42;`, `return "test"` | ⚠️ Alto |
37
+ | **Lorem ipsum** | `"Lorem ipsum dolor sit amet"` | ⚠️ Alto |
38
+ | **Pass/noop** | `pass` (Python), `{}` (cuerpo vacío) | ⚠️ Alto |
39
+ | **Placeholder de config** | `"your-api-key-here"`, `"xxx"`, `"changeme"` | ❌ Crítico |
40
+
41
+ ### Patrones por Tipo de Artefacto
42
+
43
+ #### React/Frontend
44
+ ```
45
+ ❌ Componente que solo renderiza <div>placeholder</div>
46
+ ❌ Handler onClick vacío: onClick={() => {}}
47
+ ❌ Estilos inline con valores mágicos sin design token
48
+ ❌ Imágenes placeholder sin src real
49
+ ⚠️ Componente sin props tipados (any)
50
+ ```
51
+
52
+ #### API/Backend
53
+ ```
54
+ ❌ Endpoint que retorna data mockeada/hardcoded
55
+ ❌ Middleware que no hace nada (next() directo)
56
+ ❌ Validación que acepta todo (return true)
57
+ ❌ Error handler que traga excepciones silenciosamente
58
+ ⚠️ Service con un solo método implementado de N declarados
59
+ ```
60
+
61
+ #### Base de Datos
62
+ ```
63
+ ❌ Migración vacía (up/down sin operaciones)
64
+ ❌ Seed con datos obviamente falsos ("test@test.com", "John Doe")
65
+ ❌ Query que retorna SELECT * sin filtro ni paginación
66
+ ⚠️ Índices declarados pero sin justificación de uso
67
+ ```
68
+
69
+ #### Tests
70
+ ```
71
+ ❌ Test que siempre pasa: expect(true).toBe(true)
72
+ ❌ Test sin assertions
73
+ ❌ Test que solo verifica que no lanza error (sin verificar output)
74
+ ⚠️ Test con un solo caso (falta edge cases)
75
+ ```
76
+
77
+ ### Verificación de Cableado (Wiring)
78
+
79
+ Detectar que los componentes están realmente conectados:
80
+
81
+ | Conexión | Verificación |
82
+ |----------|-------------|
83
+ | **Componente → API** | Componente hace fetch/call real, no datos hardcoded |
84
+ | **API → Base de Datos** | Endpoint ejecuta query real, no retorna mock |
85
+ | **Form → Handler** | Submit ejecuta lógica, no solo console.log |
86
+ | **Error → UI** | Errores se muestran al usuario, no solo se loggean |
87
+
88
+ ## Cuándo Ejecutar
89
+
90
+ | Momento | Trigger |
91
+ |---------|---------|
92
+ | **Post-implementación** | Después de cada tarea GREEN en `/especdev:implementar` |
93
+ | **Pre-revisión** | Antes de `/especdev:revisar` |
94
+ | **Pre-merge** | Como parte de la Puerta 6 (Merge de Código) |
95
+
96
+ ## Flujo de Detección
97
+
98
+ ```
99
+ 1. Escanear archivos modificados/creados
100
+ 2. Aplicar patrones universales
101
+ 3. Aplicar patrones por tipo de artefacto
102
+ 4. Verificar cableado entre capas
103
+ 5. Generar reporte
104
+
105
+ ¿Stubs encontrados?
106
+ ├── SÍ → ⛔ BLOQUEAR tarea como incompleta
107
+ │ └── Listar cada stub con ubicación y severidad
108
+ └── NO → ✅ Tarea genuinamente completa
109
+ ```
110
+
111
+ ## Reporte de Stubs
112
+
113
+ ```markdown
114
+ ## Detección de Stubs: CrearUsuario
115
+
116
+ Archivos escaneados: 8
117
+ Stubs detectados: 3
118
+
119
+ ### ❌ Crítico
120
+
121
+ 1. **src/services/email_service.py:15**
122
+ Patrón: Return hardcoded
123
+ ```python
124
+ async def send_welcome_email(user):
125
+ return True # No envía email real
126
+ ```
127
+ Acción: Implementar envío con servicio de email
128
+
129
+ 2. **src/controllers/usuario_controller.py:42**
130
+ Patrón: TODO pendiente
131
+ ```python
132
+ # TODO: add rate limiting
133
+ ```
134
+ Acción: Implementar rate limiting o remover TODO si no aplica
135
+
136
+ ### ⚠️ Alto
137
+
138
+ 3. **tests/unit/test_email.py:8**
139
+ Patrón: Test sin assertion real
140
+ ```python
141
+ def test_send_email():
142
+ result = send_welcome_email(mock_user)
143
+ assert result is not None # No verifica comportamiento
144
+ ```
145
+ Acción: Verificar que el servicio de email fue llamado con los parámetros correctos
146
+
147
+ ### Resultado: ❌ NO-AVANZAR (2 críticos, 1 alto)
148
+ ```
149
+
150
+ ## Integración con Pipeline
151
+
152
+ ```
153
+ /especdev:implementar (cada tarea GREEN)
154
+ → [DETECCIÓN STUBS] ← automática
155
+ → ¿Stubs encontrados?
156
+ ├── SÍ → Tarea regresa a RED (implementar de verdad)
157
+ └── NO → Tarea completa, siguiente tarea
158
+
159
+ /especdev:revisar
160
+ → [DETECCIÓN STUBS] ← segunda pasada
161
+ → Reporte incluido en review
162
+ ```
163
+
164
+ ## Integración con Puertas de Calidad
165
+
166
+ Se integra como verificación en la **Puerta 6** (Merge de Código):
167
+
168
+ ```
169
+ Puerta 6: Merge de Código
170
+ ├── Tests verdes ✅
171
+ ├── Lint limpio ✅
172
+ ├── Type-check pasa ✅
173
+ ├── Coverage ≥ 85% ✅
174
+ ├── Sin diff no relacionado ✅
175
+ └── Sin stubs detectados ✅ ← NUEVA
176
+ ```
177
+
178
+ ## Excepciones
179
+
180
+ Hay casos legítimos donde un "stub" es intencional:
181
+
182
+ | Caso | Cómo marcar | Ejemplo |
183
+ |------|------------|---------|
184
+ | Feature flag deshabilitado | `// STUB:feature-flag:nombre-flag` | Funcionalidad para release futuro |
185
+ | Mock en test | No aplica (stubs en tests de mock son válidos) | `jest.fn()` |
186
+ | Interface/abstract | No aplica (declaraciones sin cuerpo son válidas) | `abstract class` |
187
+
188
+ Usar el comentario `// STUB:razón` para excluir de detección.
189
+
190
+ ## Guardrails
191
+
192
+ - **Nunca** marcar una tarea como completa si tiene stubs críticos
193
+ - **Nunca** ignorar stubs silenciosamente — siempre reportar
194
+ - **Siempre** verificar cableado entre capas (no solo código individual)
195
+ - **Siempre** respetar excepciones marcadas con `// STUB:razón`
@@ -0,0 +1,75 @@
1
+ # Habilidad: DevLog — Bitácora de Desarrollo
2
+
3
+ **Versión:** 1.0.0
4
+ **Categoría:** Observabilidad
5
+ **Tipo:** Flexible
6
+
7
+ > Adaptado de DevilDev — DevLog para historial de desarrollo.
8
+
9
+ ## Cómo Mejora el Framework
10
+
11
+ El DevLog es una bitácora cronológica de TODOS los cambios significativos del proyecto. Complementa la memoria persistente con un registro temporal ordenado.
12
+
13
+ ## Diferencia con Memoria Persistente
14
+
15
+ | Memoria Persistente | DevLog |
16
+ |--------------------|--------|
17
+ | Decisiones y convenciones | Historial cronológico |
18
+ | "QUÉ decidimos" | "QUÉ pasó y CUÁNDO" |
19
+ | Se actualiza (sobrescribe) | Solo se agrega (append) |
20
+ | Para contexto | Para auditoría |
21
+
22
+ ## Formato
23
+
24
+ ```markdown
25
+ # DevLog: mi-proyecto
26
+
27
+ ## 2026-03-21
28
+
29
+ ### 16:30 — Feature: OAuth Login (PROJ-42)
30
+ - **Tipo:** Feature
31
+ - **Archivos:** 8 modificados, +234 -45 líneas
32
+ - **Arquitectura:** Nuevo componente "OAuth Provider"
33
+ - **Spec:** auth-oauth.delta.md
34
+ - **Tests:** 12 nuevos (todos pasan)
35
+ - **Tokens:** 58,120 | Costo: $0.14
36
+ - **Notas:** Se eligió Strategy Pattern para extensibilidad
37
+
38
+ ### 14:15 — Fix: Login timeout (PROJ-41)
39
+ - **Tipo:** Bugfix
40
+ - **Archivos:** 2 modificados, +8 -4 líneas
41
+ - **Tests:** 1 nuevo (regression test)
42
+ - **Tokens:** 12,500 | Costo: $0.03
43
+ - **Notas:** Timeout aumentado de 30s a 60s
44
+
45
+ ## 2026-03-20
46
+
47
+ ### 11:00 — Refactor: Separar servicio de email
48
+ - **Tipo:** Refactor
49
+ - **Archivos:** 5 modificados, +120 -180 líneas
50
+ - **Arquitectura:** Componente "Email Service" extraído de "API"
51
+ - **Tests:** Sin cambios (todos siguen pasando)
52
+ ```
53
+
54
+ ## Auto-Registro
55
+
56
+ El DevLog se actualiza automáticamente cuando:
57
+ 1. `/especdev:archivar` completa un cambio
58
+ 2. `/especdev:aplicar` termina una implementación
59
+ 3. Se crea un commit significativo
60
+
61
+ ## Ubicación
62
+
63
+ ```
64
+ .especdev/devlog/
65
+ ├── 2026-03.md # Log del mes
66
+ ├── 2026-02.md # Mes anterior
67
+ └── indice.md # Índice con conteos por mes
68
+ ```
69
+
70
+ ## Valor para el Equipo
71
+
72
+ - **Onboarding:** "¿Qué pasó este mes?" → DevLog
73
+ - **Retrospectivas:** Datos reales de qué se hizo
74
+ - **Debugging:** "¿Cuándo se cambió esto?" → Buscar en DevLog
75
+ - **Estimados:** Datos históricos de duración y costo por tipo de cambio
@@ -0,0 +1,222 @@
1
+ # Habilidad: Documentación Técnica Viva
2
+
3
+ **Versión:** 1.0.0
4
+ **Categoría:** Documentación
5
+ **Tipo:** Flexible
6
+
7
+ ## Cómo Mejora el Framework
8
+
9
+ Don Cheli tiene devlog (registro cronológico) y trazabilidad (pipeline de artefactos), pero carece de un sistema para generar y mantener documentación técnica **que evoluciona con el código**: ADRs, specs OpenAPI, y documentación de decisiones.
10
+
11
+ ## Tipos de Documentación
12
+
13
+ ### 1. ADRs — Architecture Decision Records
14
+
15
+ Documentan el **por qué** detrás de decisiones técnicas.
16
+
17
+ ```markdown
18
+ # ADR-001: Usar PostgreSQL en vez de MongoDB
19
+
20
+ **Estado:** Aceptado
21
+ **Fecha:** 2026-03-21
22
+ **Contexto:** Necesitamos una base de datos para el sistema de pedidos.
23
+ **Decisión:** Usar PostgreSQL 16.
24
+ **Consecuencias:**
25
+ - (+) Transacciones ACID para pedidos
26
+ - (+) JSON support para datos semi-estructurados
27
+ - (-) Requiere schema upfront (menos flexible que Mongo)
28
+ - (-) Más configuración inicial
29
+
30
+ **Alternativas evaluadas:**
31
+ - MongoDB: descartada por falta de transacciones multi-documento nativas
32
+ - SQLite: descartada por límites de concurrencia (ver PoC poc/sqlite-mvp/)
33
+ ```
34
+
35
+ **Ubicación:** `.especdev/memoria/decisiones/ADR-###.md`
36
+
37
+ **Cuándo crear:**
38
+ - Elección de tecnología/librería
39
+ - Decisión arquitectónica (monolito vs micro, REST vs GraphQL)
40
+ - Trade-off significativo con alternativas válidas
41
+ - Checkpoint tipo `decisión` en `/especdev:implementar`
42
+
43
+ **Cuándo NO crear:**
44
+ - Decisiones obvias sin alternativas reales
45
+ - Elecciones de estilo/formato
46
+ - Configuraciones menores
47
+
48
+ ### 2. Specs OpenAPI / Swagger
49
+
50
+ Generación automática de especificaciones de API desde los contratos del plan.
51
+
52
+ **Trigger:** Después de `/especdev:planificar-tecnico` si el plan incluye contratos API.
53
+
54
+ ```yaml
55
+ # specs/api/openapi.yaml (auto-generado)
56
+ openapi: 3.1.0
57
+ info:
58
+ title: Mi Proyecto API
59
+ version: 1.0.0
60
+
61
+ paths:
62
+ /api/v1/usuarios:
63
+ post:
64
+ summary: Crear usuario
65
+ operationId: crearUsuario
66
+ requestBody:
67
+ required: true
68
+ content:
69
+ application/json:
70
+ schema:
71
+ $ref: '#/components/schemas/CrearUsuarioRequest'
72
+ responses:
73
+ '201':
74
+ description: Usuario creado
75
+ content:
76
+ application/json:
77
+ schema:
78
+ $ref: '#/components/schemas/UsuarioResponse'
79
+ '400':
80
+ description: Datos inválidos
81
+ '409':
82
+ description: Email duplicado
83
+
84
+ components:
85
+ schemas:
86
+ CrearUsuarioRequest:
87
+ type: object
88
+ required: [email, password, nombre]
89
+ properties:
90
+ email:
91
+ type: string
92
+ format: email
93
+ password:
94
+ type: string
95
+ minLength: 8
96
+ nombre:
97
+ type: string
98
+ maxLength: 100
99
+ UsuarioResponse:
100
+ type: object
101
+ properties:
102
+ id:
103
+ type: string
104
+ format: uuid
105
+ email:
106
+ type: string
107
+ nombre:
108
+ type: string
109
+ createdAt:
110
+ type: string
111
+ format: date-time
112
+ ```
113
+
114
+ **Ubicación:** `specs/api/openapi.yaml`
115
+
116
+ **Auto-actualización:** Cuando `/especdev:planificar-tecnico` genera un nuevo contrato API, el OpenAPI spec se actualiza automáticamente.
117
+
118
+ ### 3. Docstrings/JSDoc Significativos
119
+
120
+ Guía para generar comentarios que aportan valor (no ruido).
121
+
122
+ ```
123
+ ✅ Documentar:
124
+ - WHY (por qué existe esta función/clase)
125
+ - Parámetros con tipos y restricciones
126
+ - Excepciones que puede lanzar
127
+ - Efectos secundarios (escribe en BD, envía email)
128
+ - Invariantes y precondiciones
129
+
130
+ ❌ NO documentar:
131
+ - WHAT (qué hace — si el nombre no lo dice, renombrar)
132
+ - Código obvio (// incrementar contador → i++)
133
+ - Getters/setters triviales
134
+ - Re-describir los tipos que ya son explícitos
135
+ ```
136
+
137
+ **Ejemplo bueno:**
138
+ ```python
139
+ def process_refund(payment_id: str, amount: Decimal | None = None) -> RefundResult:
140
+ """Procesa reembolso total o parcial via Stripe.
141
+
142
+ Si amount es None, reembolsa el total. Reembolsos parciales
143
+ acumulativos no pueden exceder el monto original.
144
+
145
+ Raises:
146
+ PaymentNotFoundError: payment_id no existe
147
+ RefundExceedsPaymentError: monto acumulado > original
148
+ StripeError: error de comunicación con Stripe (auto-retry 3x)
149
+
150
+ Side effects:
151
+ - Crea registro en tabla refunds
152
+ - Envía email de confirmación al usuario (async)
153
+ """
154
+ ```
155
+
156
+ ### 4. Diagramas como Código
157
+
158
+ Usar Mermaid para diagramas que viven con el código:
159
+
160
+ ```markdown
161
+ ## Flujo de Autenticación
162
+
163
+ ```mermaid
164
+ sequenceDiagram
165
+ participant U as Usuario
166
+ participant A as API
167
+ participant S as AuthService
168
+ participant D as Database
169
+
170
+ U->>A: POST /login {email, password}
171
+ A->>S: authenticate(email, password)
172
+ S->>D: findByEmail(email)
173
+ D-->>S: User | null
174
+ alt Usuario existe
175
+ S->>S: verifyPassword(password, hash)
176
+ S-->>A: JWT token
177
+ A-->>U: 200 {token}
178
+ else No existe
179
+ S-->>A: throw UnauthorizedError
180
+ A-->>U: 401 {error}
181
+ end
182
+ ```
183
+ ```
184
+
185
+ **Ubicación:** Inline en specs, plans, o ADRs.
186
+
187
+ ## Ciclo de Vida de la Documentación
188
+
189
+ ```
190
+ Código cambia → ¿Docs afectadas?
191
+ ├── API cambió → Actualizar OpenAPI
192
+ ├── Decisión arquitectónica → Crear/actualizar ADR
193
+ ├── Nuevo módulo → Actualizar mapa arquitectónico
194
+ ├── Nuevo flujo → Agregar diagrama Mermaid
195
+ └── Solo lógica interna → No requiere docs
196
+ ```
197
+
198
+ ## Verificación de Frescura
199
+
200
+ | Documento | Frecuencia de verificación | Cómo verificar |
201
+ |-----------|---------------------------|----------------|
202
+ | OpenAPI | Cada PR con cambio de API | Diff entre spec y código |
203
+ | ADRs | Cada fase de Estrategia | ¿Decisiones siguen vigentes? |
204
+ | Diagramas | Cada cambio arquitectónico | ¿Flujo coincide con código? |
205
+ | README | Cada release | ¿Instrucciones funcionan? |
206
+
207
+ ## Integración con Pipeline
208
+
209
+ ```
210
+ /especdev:planificar-tecnico → genera OpenAPI si hay API
211
+ /especdev:implementar (checkpoint:decisión) → genera ADR
212
+ /especdev:revisar → verifica frescura de docs
213
+ /especdev:archivar → snapshot de docs con versión
214
+ ```
215
+
216
+ ## Guardrails
217
+
218
+ - **Nunca** duplicar información entre docs — referenciar con links
219
+ - **Nunca** documentar código obvio (renombrar en vez de comentar)
220
+ - **Siempre** crear ADR para decisiones con alternativas válidas
221
+ - **Siempre** actualizar OpenAPI cuando cambia un contrato de API
222
+ - **Máximo** ~200 líneas por documento (constitución Art. de concisión)
@@ -0,0 +1,39 @@
1
+ # Habilidad: Estimación de Desarrollo
2
+
3
+ **Versión:** 1.0.0
4
+ **Categoría:** Planificación
5
+ **Tipo:** Flexible
6
+
7
+ ## Propósito
8
+
9
+ Generar estimados de desarrollo profesionales usando múltiples modelos en paralelo.
10
+
11
+ ## Modelos de Estimación
12
+
13
+ ### 1. Puntos de Función
14
+ Evalúa complejidad funcional. Mejor para features nuevas.
15
+
16
+ ### 2. Planning Poker IA
17
+ 3 agentes independientes estiman la misma tarea. Fórmula PERT: `(O + 4M + P) / 6`
18
+
19
+ ### 3. COCOMO Simplificado
20
+ Basado en LOC estimadas. Mejor para proyectos grandes.
21
+
22
+ ### 4. Histórico
23
+ Compara con tareas similares completadas. Mejor para equipos maduros.
24
+
25
+ ## Flujo
26
+
27
+ ```
28
+ Input (PRD/Feature/Tarea)
29
+
30
+ ├─ Desglosar en componentes
31
+ ├─ Aplicar 4 modelos
32
+ ├─ Calcular consenso
33
+ ├─ Identificar riesgos
34
+ └─ Generar estimado-[fecha].md
35
+ ```
36
+
37
+ ## Template de Salida
38
+
39
+ Ver [`plantillas/estimado-desarrollo.md`](../../plantillas/estimado-desarrollo.md)