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,522 @@
1
+ #!/bin/bash
2
+ # Don Cheli - Installation Script (i18n)
3
+ # Installs the Don Cheli framework locally or globally
4
+
5
+ set -euo pipefail
6
+
7
+ VERSION="1.13.0"
8
+ REPO_URL="https://github.com/doncheli/don-cheli-sdd"
9
+ SCRIPT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
10
+
11
+ # Colors
12
+ GREEN='\033[0;32m'
13
+ YELLOW='\033[1;33m'
14
+ RED='\033[0;31m'
15
+ CYAN='\033[0;36m'
16
+ BOLD='\033[1m'
17
+ DIM='\033[2m'
18
+ NC='\033[0m'
19
+
20
+ # ═══════════════════════════════════════════════════════════════
21
+ # i18n — JSON locale loader (pure bash, no jq dependency)
22
+ # ═══════════════════════════════════════════════════════════════
23
+
24
+ LOCALE="es"
25
+ LOCALE_FILE=""
26
+
27
+ # Extract a flat key from JSON (e.g., "installer.banner_line1")
28
+ # Works without jq — uses grep + sed for simple key-value extraction
29
+ i18n() {
30
+ local key="$1"
31
+ local section="${key%%.*}"
32
+ local rest="${key#*.}"
33
+ local subkey="${rest%%.*}"
34
+ local leaf="${rest#*.}"
35
+
36
+ # Handle 2-level keys (section.key)
37
+ if [ "$rest" = "$leaf" ]; then
38
+ leaf="$subkey"
39
+ subkey=""
40
+ fi
41
+
42
+ if [ -z "$LOCALE_FILE" ] || [ ! -f "$LOCALE_FILE" ]; then
43
+ echo "$key"
44
+ return
45
+ fi
46
+
47
+ local value
48
+ if [ -n "$subkey" ] && [ "$subkey" != "$leaf" ]; then
49
+ # 3-level key: section.subsection.key
50
+ value=$(grep -A1 "\"$leaf\"" "$LOCALE_FILE" | grep -o '"[^"]*"$' | head -1 | tr -d '"' 2>/dev/null)
51
+ else
52
+ # 2-level key: section.key
53
+ value=$(grep "\"$leaf\"" "$LOCALE_FILE" | head -1 | sed 's/.*: *"//;s/",\{0,1\}$//' 2>/dev/null)
54
+ fi
55
+
56
+ if [ -n "$value" ]; then
57
+ echo "$value"
58
+ else
59
+ echo "$key"
60
+ fi
61
+ }
62
+
63
+ # Template replacement: {{var}} → value
64
+ tpl() {
65
+ local text="$1"
66
+ shift
67
+ while [ $# -gt 0 ]; do
68
+ local var="$1"
69
+ local val="$2"
70
+ text="${text//\{\{$var\}\}/$val}"
71
+ shift 2
72
+ done
73
+ echo "$text"
74
+ }
75
+
76
+ load_locale() {
77
+ LOCALE_FILE="${SCRIPT_DIR}/locales/${LOCALE}.json"
78
+ if [ ! -f "$LOCALE_FILE" ]; then
79
+ LOCALE_FILE="${SCRIPT_DIR}/locales/es.json"
80
+ LOCALE="es"
81
+ fi
82
+ }
83
+
84
+ # ═══════════════════════════════════════════════════════════════
85
+ # Localized folder names per language
86
+ # ═══════════════════════════════════════════════════════════════
87
+
88
+ set_folder_names() {
89
+ case "$LOCALE" in
90
+ en)
91
+ DIR_SKILLS="skills"
92
+ DIR_RULES="rules"
93
+ DIR_TEMPLATES="templates"
94
+ DIR_HOOKS="hooks"
95
+ DIR_AGENTS="agents"
96
+ DIR_SCRIPTS="scripts"
97
+ DIR_ESPECDEV=".especdev"
98
+ FILE_STATUS="status.md"
99
+ FILE_FINDINGS="findings.md"
100
+ FILE_PLAN="plan.md"
101
+ FILE_PROGRESS="progress.md"
102
+ FILE_PROPOSAL="proposal.md"
103
+ FILE_CONFIG="config.yaml"
104
+ ;;
105
+ pt)
106
+ DIR_SKILLS="habilidades"
107
+ DIR_RULES="regras"
108
+ DIR_TEMPLATES="modelos"
109
+ DIR_HOOKS="ganchos"
110
+ DIR_AGENTS="agentes"
111
+ DIR_SCRIPTS="scripts"
112
+ DIR_ESPECDEV=".especdev"
113
+ FILE_STATUS="estado.md"
114
+ FILE_FINDINGS="descobertas.md"
115
+ FILE_PLAN="plano.md"
116
+ FILE_PROGRESS="progresso.md"
117
+ FILE_PROPOSAL="proposta.md"
118
+ FILE_CONFIG="config.yaml"
119
+ ;;
120
+ *) # es (default)
121
+ DIR_SKILLS="habilidades"
122
+ DIR_RULES="reglas"
123
+ DIR_TEMPLATES="plantillas"
124
+ DIR_HOOKS="ganchos"
125
+ DIR_AGENTS="agentes"
126
+ DIR_SCRIPTS="scripts"
127
+ DIR_ESPECDEV=".especdev"
128
+ FILE_STATUS="estado.md"
129
+ FILE_FINDINGS="hallazgos.md"
130
+ FILE_PLAN="plan.md"
131
+ FILE_PROGRESS="progreso.md"
132
+ FILE_PROPOSAL="propuesta.md"
133
+ FILE_CONFIG="config.yaml"
134
+ ;;
135
+ esac
136
+ }
137
+
138
+ # ═══════════════════════════════════════════════════════════════
139
+ # STEP 0 — Language Selection (FIRST THING THE USER SEES)
140
+ # ═══════════════════════════════════════════════════════════════
141
+
142
+ clear 2>/dev/null || true
143
+ echo ""
144
+ echo -e "${CYAN}${BOLD}"
145
+ echo " ╔═══════════════════════════════════════════════════════════╗"
146
+ echo " ║ ║"
147
+ echo " ║ 🏗️ Don Cheli — SDD Framework ║"
148
+ echo " ║ ║"
149
+ echo " ╚═══════════════════════════════════════════════════════════╝"
150
+ echo -e "${NC}"
151
+ echo ""
152
+ echo -e "${BOLD} 🌍 Selecciona tu idioma / Select your language / Selecione seu idioma${NC}"
153
+ echo ""
154
+ echo -e " ${CYAN}1)${NC} 🇪🇸 Español"
155
+ echo -e " ${CYAN}2)${NC} 🇬🇧 English"
156
+ echo -e " ${CYAN}3)${NC} 🇧🇷 Português"
157
+ echo ""
158
+ echo -ne " ${BOLD}▸ ${NC}"
159
+ # Read from /dev/tty to work even when script is piped via curl
160
+ if ! read -r LANG_CHOICE < /dev/tty 2>/dev/null; then
161
+ echo ""
162
+ echo -e " ${YELLOW}⚠ Cannot read input (piped mode). Using default: Español${NC}"
163
+ echo -e " ${DIM} Tip: use --lang es|en|pt to set language non-interactively${NC}"
164
+ LANG_CHOICE="es"
165
+ fi
166
+
167
+ case "$LANG_CHOICE" in
168
+ 1|es|ES|español|Español)
169
+ LOCALE="es"
170
+ LANG_NAME="Español"
171
+ ;;
172
+ 2|en|EN|english|English)
173
+ LOCALE="en"
174
+ LANG_NAME="English"
175
+ ;;
176
+ 3|pt|PT|português|Português|portugues)
177
+ LOCALE="pt"
178
+ LANG_NAME="Português"
179
+ ;;
180
+ *)
181
+ echo ""
182
+ echo -e " ${RED}✗ Invalid option / Opción inválida / Opção inválida${NC}"
183
+ echo -e " ${DIM} Using default: Español${NC}"
184
+ LOCALE="es"
185
+ LANG_NAME="Español"
186
+ ;;
187
+ esac
188
+
189
+ load_locale
190
+ set_folder_names
191
+
192
+ echo ""
193
+ echo -e " ${GREEN}✓${NC} $(tpl "$(i18n installer.language_selected)" language "$LANG_NAME")"
194
+ echo ""
195
+ sleep 0.5
196
+
197
+ # ═══════════════════════════════════════════════════════════════
198
+ # Banner (in selected language)
199
+ # ═══════════════════════════════════════════════════════════════
200
+
201
+ BANNER_1=$(tpl "$(i18n installer.banner_line1)" version "$VERSION")
202
+ BANNER_2=$(i18n installer.banner_line2)
203
+
204
+ echo -e "${CYAN}${BOLD}"
205
+ echo " ┌───────────────────────────────────────────────────────┐"
206
+ printf " │ %-53s │\n" "$BANNER_1"
207
+ printf " │ %-53s │\n" "$BANNER_2"
208
+ echo " └───────────────────────────────────────────────────────┘"
209
+ echo -e "${NC}"
210
+
211
+ # ═══════════════════════════════════════════════════════════════
212
+ # Detect installation mode
213
+ # ═══════════════════════════════════════════════════════════════
214
+
215
+ MODE="local"
216
+ if [ "$1" == "--global" ] || [ "$2" == "--global" ]; then
217
+ MODE="global"
218
+ fi
219
+
220
+ if [ "$MODE" == "global" ]; then
221
+ FRAMEWORK_HOME="$HOME/.claude/don-cheli"
222
+ COMMANDS_DIR="$HOME/.claude/commands"
223
+ echo -e " ${YELLOW}$(i18n installer.mode_global)${NC}"
224
+ else
225
+ FRAMEWORK_HOME="./.claude/don-cheli"
226
+ COMMANDS_DIR="./.claude/commands"
227
+ echo -e " ${YELLOW}$(i18n installer.mode_local)${NC}"
228
+ fi
229
+
230
+ echo -e " ${DIM}$(tpl "$(i18n installer.framework_path)" path "$FRAMEWORK_HOME")${NC}"
231
+ echo -e " ${DIM}$(tpl "$(i18n installer.commands_path)" path "$COMMANDS_DIR")${NC}"
232
+ echo ""
233
+
234
+ # ═══════════════════════════════════════════════════════════════
235
+ # 1. Create structure
236
+ # ═══════════════════════════════════════════════════════════════
237
+
238
+ # Guard: abort if FRAMEWORK_HOME is empty to prevent rm -rf on system root
239
+ if [ -z "$FRAMEWORK_HOME" ]; then
240
+ echo -e " ${RED}✗ Error: FRAMEWORK_HOME is empty. Aborting to prevent data loss.${NC}"
241
+ exit 1
242
+ fi
243
+
244
+ # Clean previous locale folders to avoid leftovers from other languages
245
+ echo -e " 🧹 Cleaning previous installation..."
246
+ for OLD_DIR in habilidades skills reglas rules plantillas templates modelos ganchos hooks agentes agents; do
247
+ if [ -d "${FRAMEWORK_HOME}/${OLD_DIR}" ]; then
248
+ rm -rf "${FRAMEWORK_HOME}/${OLD_DIR}"
249
+ fi
250
+ done
251
+
252
+ echo -e " 📁 $(i18n installer.step_structure)"
253
+ mkdir -p "${FRAMEWORK_HOME}/${DIR_SKILLS}"
254
+ mkdir -p "${FRAMEWORK_HOME}/${DIR_RULES}"
255
+ mkdir -p "${FRAMEWORK_HOME}/${DIR_TEMPLATES}"
256
+ mkdir -p "${FRAMEWORK_HOME}/${DIR_HOOKS}"
257
+ mkdir -p "${FRAMEWORK_HOME}/${DIR_AGENTS}"
258
+ mkdir -p "${FRAMEWORK_HOME}/${DIR_SCRIPTS}"
259
+ mkdir -p "${FRAMEWORK_HOME}/locales"
260
+ mkdir -p "${COMMANDS_DIR}/especdev"
261
+ mkdir -p "${COMMANDS_DIR}/dc"
262
+ mkdir -p "${COMMANDS_DIR}/razonar"
263
+
264
+ # ═══════════════════════════════════════════════════════════════
265
+ # 2. Copy commands
266
+ # ═══════════════════════════════════════════════════════════════
267
+
268
+ echo -e " 📋 $(i18n installer.step_commands)"
269
+ if [ -d "${SCRIPT_DIR}/comandos/especdev" ]; then
270
+ cp -r "${SCRIPT_DIR}/comandos/especdev/"*.md "${COMMANDS_DIR}/especdev/" 2>/dev/null || true
271
+ # Create /dc: alias (same commands, shorter prefix)
272
+ cp -r "${SCRIPT_DIR}/comandos/especdev/"*.md "${COMMANDS_DIR}/dc/" 2>/dev/null || true
273
+ CMDS_ESPECDEV=$(ls "${COMMANDS_DIR}/especdev/"*.md 2>/dev/null | wc -l | tr -d ' ')
274
+ echo -e " ${GREEN}✓${NC} $(tpl "$(i18n installer.step_commands_done)" count "$CMDS_ESPECDEV")"
275
+ echo -e " ${GREEN}✓${NC} /dc:* alias created (${CMDS_ESPECDEV} commands)"
276
+ # Rename dc/ commands to match locale
277
+ if [ "$LOCALE" = "en" ]; then
278
+ cd "${COMMANDS_DIR}/dc/" 2>/dev/null && {
279
+ # Rename Spanish → English (longest names first to avoid conflicts)
280
+ for pair in \
281
+ "analizar-sesiones:analyze-sessions" \
282
+ "auditar-seguridad:security-audit" \
283
+ "avance-rapido:fast-forward" \
284
+ "cerrar-sesion:close-session" \
285
+ "contrato-api:api-contract" \
286
+ "contrato-ui:ui-contract" \
287
+ "crear-skill:create-skill" \
288
+ "detectar-ambiguedad:detect-ambiguity" \
289
+ "limpiar-slop:clean-slop" \
290
+ "mesa-redonda:roundtable" \
291
+ "mesa-tecnica:tech-panel" \
292
+ "minar-referencias:mine-refs" \
293
+ "planificar-tecnico:tech-plan" \
294
+ "validar-spec:validate-spec" \
295
+ "donde-estoy:where-am-i" \
296
+ "pseudocodigo:pseudocode" \
297
+ "reflexionar:reflect" \
298
+ "diagnostico:diagnostic" \
299
+ "especificar:specify" \
300
+ "implementar:implement" \
301
+ "incorporar:onboard" \
302
+ "actualizar:update" \
303
+ "comenzar:start" \
304
+ "continuar:continue" \
305
+ "capturar:capture" \
306
+ "desglosar:breakdown" \
307
+ "destilar:distill" \
308
+ "explorar:explore" \
309
+ "historial:history" \
310
+ "memorizar:memorize" \
311
+ "presentar:present" \
312
+ "proponer:propose" \
313
+ "traspasar:handoff" \
314
+ "traspaso:handover" \
315
+ "archivar:archive" \
316
+ "completo:full" \
317
+ "guardian:guardian" \
318
+ "iniciar:init" \
319
+ "migrar:migrate" \
320
+ "reversa:reverse" \
321
+ "revisar:review" \
322
+ "cambios:changes" \
323
+ "aplicar:apply" \
324
+ "estimar:estimate" \
325
+ "validar:validate" \
326
+ "clarificar:clarify" \
327
+ "rapido:quick" \
328
+ "estado:status" \
329
+ "agente:agent"; do
330
+ src="${pair%%:*}.md"
331
+ dst="${pair##*:}.md"
332
+ [ -f "$src" ] && mv "$src" "$dst" 2>/dev/null
333
+ done
334
+ cd - >/dev/null
335
+ }
336
+ echo -e " ${GREEN}✓${NC} Commands renamed to English"
337
+ elif [ "$LOCALE" = "pt" ]; then
338
+ cd "${COMMANDS_DIR}/dc/" 2>/dev/null && {
339
+ for pair in \
340
+ "analizar-sesiones:analisar-sessoes" \
341
+ "auditar-seguridad:auditar-segurança" \
342
+ "avance-rapido:avanço-rapido" \
343
+ "cerrar-sesion:fechar-sessao" \
344
+ "crear-skill:criar-skill" \
345
+ "detectar-ambiguedad:detectar-ambiguidade" \
346
+ "limpiar-slop:limpar-slop" \
347
+ "donde-estoy:onde-estou" \
348
+ "reflexionar:refletir" \
349
+ "incorporar:integrar" \
350
+ "actualizar:atualizar" \
351
+ "comenzar:começar" \
352
+ "desglosar:decompor" \
353
+ "presentar:apresentar" \
354
+ "proponer:propor" \
355
+ "traspasar:transferir" \
356
+ "traspaso:transferencia" \
357
+ "archivar:arquivar" \
358
+ "guardian:guardiao" \
359
+ "cambios:mudanças" \
360
+ "historial:historico"; do
361
+ src="${pair%%:*}.md"
362
+ dst="${pair##*:}.md"
363
+ [ -f "$src" ] && mv "$src" "$dst" 2>/dev/null
364
+ done
365
+ cd - >/dev/null
366
+ }
367
+ echo -e " ${GREEN}✓${NC} Commands renamed to Português"
368
+ fi
369
+ fi
370
+ if [ -d "${SCRIPT_DIR}/comandos/razonar" ]; then
371
+ cp -r "${SCRIPT_DIR}/comandos/razonar/"*.md "${COMMANDS_DIR}/razonar/" 2>/dev/null || true
372
+ CMDS_RAZONAR=$(ls "${COMMANDS_DIR}/razonar/"*.md 2>/dev/null | wc -l | tr -d ' ')
373
+ echo -e " ${GREEN}✓${NC} $(tpl "$(i18n installer.step_reasoning_done)" count "$CMDS_RAZONAR")"
374
+ fi
375
+ for CMD_FILE in "${SCRIPT_DIR}/comandos/"*.md; do
376
+ [ -f "$CMD_FILE" ] && cp "$CMD_FILE" "${COMMANDS_DIR}/" 2>/dev/null || true
377
+ done
378
+
379
+ # ═══════════════════════════════════════════════════════════════
380
+ # 3. Copy skills
381
+ # ═══════════════════════════════════════════════════════════════
382
+
383
+ echo -e " 🧠 $(i18n installer.step_skills)"
384
+ if [ -d "${SCRIPT_DIR}/habilidades" ]; then
385
+ cp -r "${SCRIPT_DIR}/habilidades/"* "${FRAMEWORK_HOME}/${DIR_SKILLS}/" 2>/dev/null || true
386
+ SKILLS=$(ls -d "${FRAMEWORK_HOME}/${DIR_SKILLS}/"*/ 2>/dev/null | wc -l | tr -d ' ')
387
+ echo -e " ${GREEN}✓${NC} $(tpl "$(i18n installer.step_skills_done)" count "$SKILLS")"
388
+ fi
389
+
390
+ # ═══════════════════════════════════════════════════════════════
391
+ # 4. Copy rules
392
+ # ═══════════════════════════════════════════════════════════════
393
+
394
+ echo -e " ⚖️ $(i18n installer.step_rules)"
395
+ if [ -d "${SCRIPT_DIR}/reglas" ]; then
396
+ cp -r "${SCRIPT_DIR}/reglas/"* "${FRAMEWORK_HOME}/${DIR_RULES}/" 2>/dev/null || true
397
+ RULES=$(ls "${FRAMEWORK_HOME}/${DIR_RULES}/"*.md 2>/dev/null | wc -l | tr -d ' ')
398
+ echo -e " ${GREEN}✓${NC} $(tpl "$(i18n installer.step_rules_done)" count "$RULES")"
399
+ fi
400
+
401
+ # ═══════════════════════════════════════════════════════════════
402
+ # 5. Copy templates
403
+ # ═══════════════════════════════════════════════════════════════
404
+
405
+ echo -e " 📄 $(i18n installer.step_templates)"
406
+ if [ -d "${SCRIPT_DIR}/plantillas" ]; then
407
+ cp -r "${SCRIPT_DIR}/plantillas/"* "${FRAMEWORK_HOME}/${DIR_TEMPLATES}/" 2>/dev/null || true
408
+ echo -e " ${GREEN}✓${NC} $(i18n installer.step_templates_done)"
409
+ fi
410
+
411
+ # ═══════════════════════════════════════════════════════════════
412
+ # 6. Copy hooks
413
+ # ═══════════════════════════════════════════════════════════════
414
+
415
+ echo -e " 🪝 $(i18n installer.step_hooks)"
416
+ if [ -d "${SCRIPT_DIR}/ganchos" ]; then
417
+ cp -r "${SCRIPT_DIR}/ganchos/"* "${FRAMEWORK_HOME}/${DIR_HOOKS}/" 2>/dev/null || true
418
+ echo -e " ${GREEN}✓${NC} $(i18n installer.step_hooks_done)"
419
+ fi
420
+
421
+ # ═══════════════════════════════════════════════════════════════
422
+ # 7. Copy agents
423
+ # ═══════════════════════════════════════════════════════════════
424
+
425
+ echo -e " 🤖 $(i18n installer.step_agents)"
426
+ if [ -d "${SCRIPT_DIR}/agentes" ]; then
427
+ cp -r "${SCRIPT_DIR}/agentes/"* "${FRAMEWORK_HOME}/${DIR_AGENTS}/" 2>/dev/null || true
428
+ echo -e " ${GREEN}✓${NC} $(i18n installer.step_agents_done)"
429
+ fi
430
+
431
+ # ═══════════════════════════════════════════════════════════════
432
+ # 8. Copy scripts
433
+ # ═══════════════════════════════════════════════════════════════
434
+
435
+ echo -e " ⚙️ $(i18n installer.step_scripts)"
436
+ cp "${SCRIPT_DIR}/scripts/"*.sh "${FRAMEWORK_HOME}/${DIR_SCRIPTS}/" 2>/dev/null || true
437
+ echo -e " ${GREEN}✓${NC} $(i18n installer.step_scripts_done)"
438
+
439
+ # ═══════════════════════════════════════════════════════════════
440
+ # 9. Copy locales
441
+ # ═══════════════════════════════════════════════════════════════
442
+
443
+ echo -e " 🌍 Copying locales..."
444
+ if [ -d "${SCRIPT_DIR}/locales" ]; then
445
+ cp -r "${SCRIPT_DIR}/locales/"*.json "${FRAMEWORK_HOME}/locales/" 2>/dev/null || true
446
+ echo -e " ${GREEN}✓${NC} es.json, en.json, pt.json"
447
+ fi
448
+
449
+ # ═══════════════════════════════════════════════════════════════
450
+ # 10. Copy root files
451
+ # ═══════════════════════════════════════════════════════════════
452
+
453
+ echo -e " 📝 $(i18n installer.step_reference)"
454
+ for ROOT_FILE in CLAUDE.md AGENTS.md prompt.md NOTICE; do
455
+ if [ -f "${SCRIPT_DIR}/${ROOT_FILE}" ]; then
456
+ cp "${SCRIPT_DIR}/${ROOT_FILE}" "${FRAMEWORK_HOME}/" 2>/dev/null || true
457
+ fi
458
+ done
459
+ echo -e " ${GREEN}✓${NC} $(i18n installer.step_reference_done)"
460
+
461
+ # ═══════════════════════════════════════════════════════════════
462
+ # 11. Save locale preference + version
463
+ # ═══════════════════════════════════════════════════════════════
464
+
465
+ echo "${VERSION}" > "${FRAMEWORK_HOME}/VERSION"
466
+ echo "${LOCALE}" > "${FRAMEWORK_HOME}/locale"
467
+
468
+ # Save folder name mapping for Claude to read
469
+ cat > "${FRAMEWORK_HOME}/folder-map.json" << FMEOF
470
+ {
471
+ "locale": "${LOCALE}",
472
+ "dirs": {
473
+ "skills": "${DIR_SKILLS}",
474
+ "rules": "${DIR_RULES}",
475
+ "templates": "${DIR_TEMPLATES}",
476
+ "hooks": "${DIR_HOOKS}",
477
+ "agents": "${DIR_AGENTS}",
478
+ "scripts": "${DIR_SCRIPTS}"
479
+ },
480
+ "files": {
481
+ "status": "${FILE_STATUS}",
482
+ "findings": "${FILE_FINDINGS}",
483
+ "plan": "${FILE_PLAN}",
484
+ "progress": "${FILE_PROGRESS}",
485
+ "proposal": "${FILE_PROPOSAL}",
486
+ "config": "${FILE_CONFIG}"
487
+ }
488
+ }
489
+ FMEOF
490
+
491
+ # ═══════════════════════════════════════════════════════════════
492
+ # Summary
493
+ # ═══════════════════════════════════════════════════════════════
494
+
495
+ echo ""
496
+ echo -e " ${GREEN}${BOLD}══════════════════════════════════════════════════════${NC}"
497
+ echo -e " ${GREEN}${BOLD} ✅ $(tpl "$(i18n installer.success_title)" version "$VERSION")${NC}"
498
+ echo -e " ${GREEN}${BOLD}══════════════════════════════════════════════════════${NC}"
499
+ echo ""
500
+ echo -e " $(i18n installer.structure_title)"
501
+ echo -e " 📂 ${FRAMEWORK_HOME}/"
502
+ echo -e " ├── ${DIR_SKILLS}/ (${SKILLS})"
503
+ echo -e " ├── ${DIR_RULES}/ (${RULES})"
504
+ echo -e " ├── ${DIR_TEMPLATES}/"
505
+ echo -e " ├── ${DIR_HOOKS}/"
506
+ echo -e " ├── ${DIR_AGENTS}/"
507
+ echo -e " ├── locales/ (es, en, pt)"
508
+ echo -e " └── CLAUDE.md"
509
+ echo ""
510
+ echo -e " 📂 ${COMMANDS_DIR}/"
511
+ echo -e " ├── dc/ (${CMDS_ESPECDEV} — short alias)"
512
+ echo -e " ├── especdev/ (${CMDS_ESPECDEV} $(i18n installer.structure_commands))"
513
+ echo -e " └── razonar/ (${CMDS_RAZONAR} $(i18n installer.structure_commands))"
514
+ echo ""
515
+ echo -e " 🌍 Locale: ${BOLD}${LANG_NAME}${NC} (${LOCALE})"
516
+ echo ""
517
+ echo -e " ${CYAN}$(i18n installer.next_steps_title)${NC}"
518
+ echo -e " 1. $(i18n installer.next_step_1)"
519
+ echo -e " 2. $(i18n installer.next_step_2)"
520
+ echo ""
521
+ echo -e " ${GREEN}${BOLD}$(i18n installer.farewell)${NC}"
522
+ echo ""
@@ -0,0 +1,70 @@
1
+ #!/bin/bash
2
+ # Don Cheli - Script de Validación
3
+ # Valida la estructura del framework
4
+
5
+ set -euo pipefail
6
+
7
+ VERDE='\033[0;32m'
8
+ ROJO='\033[0;31m'
9
+ AMARILLO='\033[1;33m'
10
+ NC='\033[0m'
11
+
12
+ echo "=== Validación Don Cheli ==="
13
+ echo ""
14
+
15
+ ERRORES=0
16
+ ADVERTENCIAS=0
17
+
18
+ # Verificar directorios principales
19
+ for dir in comandos habilidades ganchos reglas plantillas agentes scripts; do
20
+ if [ -d "$dir" ]; then
21
+ echo -e "${VERDE}✅${NC} $dir/"
22
+ else
23
+ echo -e "${ROJO}❌${NC} $dir/ (faltante)"
24
+ ERRORES=$((ERRORES + 1))
25
+ fi
26
+ done
27
+
28
+ # Verificar archivos raíz
29
+ for archivo in README.md CLAUDE.md LICENCIA package.json VERSION; do
30
+ if [ -f "$archivo" ]; then
31
+ echo -e "${VERDE}✅${NC} $archivo"
32
+ else
33
+ echo -e "${ROJO}❌${NC} $archivo (faltante)"
34
+ ERRORES=$((ERRORES + 1))
35
+ fi
36
+ done
37
+
38
+ # Verificar que cada habilidad tiene HABILIDAD.md
39
+ echo ""
40
+ echo "Verificando habilidades..."
41
+ for dir in habilidades/*/; do
42
+ if [ -f "${dir}HABILIDAD.md" ]; then
43
+ echo -e "${VERDE}✅${NC} ${dir}HABILIDAD.md"
44
+ else
45
+ echo -e "${AMARILLO}⚠️${NC} ${dir}HABILIDAD.md (faltante)"
46
+ ADVERTENCIAS=$((ADVERTENCIAS + 1))
47
+ fi
48
+ done
49
+
50
+ # Contar comandos
51
+ ESPECDEV_COUNT=$(ls comandos/especdev/*.md 2>/dev/null | wc -l | tr -d ' ')
52
+ RAZONAR_COUNT=$(ls comandos/razonar/*.md 2>/dev/null | wc -l | tr -d ' ')
53
+ UTIL_COUNT=$(ls comandos/*.md 2>/dev/null | wc -l | tr -d ' ')
54
+
55
+ echo ""
56
+ echo "Resumen:"
57
+ echo "- Comandos /especdev:*: $ESPECDEV_COUNT"
58
+ echo "- Comandos /razonar:*: $RAZONAR_COUNT"
59
+ echo "- Comandos utilidad: $UTIL_COUNT"
60
+ echo "- Errores: $ERRORES"
61
+ echo "- Advertencias: $ADVERTENCIAS"
62
+
63
+ if [ "$ERRORES" -eq 0 ]; then
64
+ echo ""
65
+ echo -e "${VERDE}✅ Framework válido${NC}"
66
+ else
67
+ echo ""
68
+ echo -e "${ROJO}❌ Framework con errores${NC}"
69
+ exit 1
70
+ fi