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.
- package/AGENTS.md +33 -0
- package/CHANGELOG.md +108 -0
- package/CLAUDE.md +114 -0
- package/LICENSE +190 -0
- package/README.es.md +611 -0
- package/README.md +640 -0
- package/README.pt.md +579 -0
- package/VERSION +1 -0
- package/agentes/README.md +28 -0
- package/agentes/prompts/estimador.md +29 -0
- package/comandos/bucle-completar.md +13 -0
- package/comandos/bucle-estado.md +13 -0
- package/comandos/bucle.md +74 -0
- package/comandos/especdev/actualizar.md +200 -0
- package/comandos/especdev/agente.md +43 -0
- package/comandos/especdev/analizar-sesiones.md +158 -0
- package/comandos/especdev/aplicar.md +73 -0
- package/comandos/especdev/archivar.md +69 -0
- package/comandos/especdev/auditar-seguridad.md +234 -0
- package/comandos/especdev/auditar.md +15 -0
- package/comandos/especdev/avance-rapido.md +64 -0
- package/comandos/especdev/cambios.md +14 -0
- package/comandos/especdev/capturar.md +61 -0
- package/comandos/especdev/cerrar-sesion.md +88 -0
- package/comandos/especdev/clarificar.md +98 -0
- package/comandos/especdev/comenzar.md +105 -0
- package/comandos/especdev/completo.md +49 -0
- package/comandos/especdev/continuar.md +59 -0
- package/comandos/especdev/contrato-api.md +223 -0
- package/comandos/especdev/contrato-ui.md +245 -0
- package/comandos/especdev/crear-skill.md +148 -0
- package/comandos/especdev/debate.md +119 -0
- package/comandos/especdev/desglosar.md +172 -0
- package/comandos/especdev/destilar.md +211 -0
- package/comandos/especdev/detectar-ambiguedad.md +81 -0
- package/comandos/especdev/diagnostico.md +92 -0
- package/comandos/especdev/dise/303/261ar.md +74 -0
- package/comandos/especdev/doctor.md +78 -0
- package/comandos/especdev/donde-estoy.md +32 -0
- package/comandos/especdev/especificar.md +189 -0
- package/comandos/especdev/estado.md +46 -0
- package/comandos/especdev/estimar.md +141 -0
- package/comandos/especdev/explorar.md +175 -0
- package/comandos/especdev/guardian.md +99 -0
- package/comandos/especdev/historial.md +14 -0
- package/comandos/especdev/implementar.md +227 -0
- package/comandos/especdev/incorporar.md +71 -0
- package/comandos/especdev/iniciar.md +82 -0
- package/comandos/especdev/limpiar-slop.md +88 -0
- package/comandos/especdev/marketplace.md +109 -0
- package/comandos/especdev/memorizar.md +31 -0
- package/comandos/especdev/mesa-redonda.md +60 -0
- package/comandos/especdev/mesa-tecnica.md +144 -0
- package/comandos/especdev/migrar.md +237 -0
- package/comandos/especdev/minar-referencias.md +214 -0
- package/comandos/especdev/planificar-tecnico.md +186 -0
- package/comandos/especdev/planning.md +264 -0
- package/comandos/especdev/poc.md +302 -0
- package/comandos/especdev/presentar.md +75 -0
- package/comandos/especdev/proponer.md +69 -0
- package/comandos/especdev/pseudocodigo.md +49 -0
- package/comandos/especdev/rapido.md +69 -0
- package/comandos/especdev/reflexionar.md +53 -0
- package/comandos/especdev/retro.md +14 -0
- package/comandos/especdev/reversa.md +155 -0
- package/comandos/especdev/revisar.md +231 -0
- package/comandos/especdev/traspasar.md +76 -0
- package/comandos/especdev/traspaso.md +43 -0
- package/comandos/especdev/uat.md +84 -0
- package/comandos/especdev/validar-spec.md +58 -0
- package/comandos/especdev/validar.md +40 -0
- package/comandos/historias-generar.md +74 -0
- package/comandos/razonar/5-porques.md +42 -0
- package/comandos/razonar/circulo-competencia.md +22 -0
- package/comandos/razonar/costo-oportunidad.md +21 -0
- package/comandos/razonar/inversion.md +40 -0
- package/comandos/razonar/mapa-territorio.md +22 -0
- package/comandos/razonar/minimizar-arrepentimiento.md +20 -0
- package/comandos/razonar/pareto.md +32 -0
- package/comandos/razonar/pre-mortem.md +22 -0
- package/comandos/razonar/primeros-principios.md +57 -0
- package/comandos/razonar/probabilistico.md +21 -0
- package/comandos/razonar/reversibilidad.md +27 -0
- package/comandos/razonar/rlm-cadena-pensamiento.md +189 -0
- package/comandos/razonar/rlm-descomposicion.md +216 -0
- package/comandos/razonar/rlm-verificacion.md +169 -0
- package/comandos/razonar/segundo-orden.md +35 -0
- package/ganchos/parar.md +10 -0
- package/ganchos/post-herramienta.md +9 -0
- package/ganchos/pre-herramienta.md +19 -0
- package/habilidades/arnes-agente/HABILIDAD.md +164 -0
- package/habilidades/auto-correccion/HABILIDAD.md +114 -0
- package/habilidades/brainstorming/HABILIDAD.md +88 -0
- package/habilidades/cambio-carpeta/HABILIDAD.md +100 -0
- package/habilidades/code-rag/HABILIDAD.md +306 -0
- package/habilidades/contabilidad-tokens/HABILIDAD.md +109 -0
- package/habilidades/delta-specs/HABILIDAD.md +102 -0
- package/habilidades/desarrollo-subagentes/HABILIDAD.md +51 -0
- package/habilidades/deteccion-loops/HABILIDAD.md +168 -0
- package/habilidades/deteccion-stubs/HABILIDAD.md +204 -0
- package/habilidades/devlog/HABILIDAD.md +84 -0
- package/habilidades/documentacion-viva/HABILIDAD.md +231 -0
- package/habilidades/estimacion/HABILIDAD.md +48 -0
- package/habilidades/extensiones-presets/HABILIDAD.md +133 -0
- package/habilidades/generador-specs/HABILIDAD.md +37 -0
- package/habilidades/ingenieria-contexto/HABILIDAD.md +34 -0
- package/habilidades/integracion-mcp/HABILIDAD.md +59 -0
- package/habilidades/leyes-hierro/HABILIDAD.md +45 -0
- package/habilidades/mapa-arquitectonico/HABILIDAD.md +93 -0
- package/habilidades/memoria-persistente/HABILIDAD.md +97 -0
- package/habilidades/obsidian/HABILIDAD.md +93 -0
- package/habilidades/optimizacion-tokens/HABILIDAD.md +179 -0
- package/habilidades/optimizador-contexto/HABILIDAD.md +106 -0
- package/habilidades/orquestacion-autonoma/HABILIDAD.md +133 -0
- package/habilidades/permisos-seguridad/HABILIDAD.md +76 -0
- package/habilidades/persona/HABILIDAD.md +66 -0
- package/habilidades/planning-equipo/HABILIDAD.md +169 -0
- package/habilidades/presentaciones/HABILIDAD.md +63 -0
- package/habilidades/proyecciones-costo/HABILIDAD.md +54 -0
- package/habilidades/prueba-trabajo/HABILIDAD.md +131 -0
- package/habilidades/razonamiento/HABILIDAD.md +69 -0
- package/habilidades/recuperacion-sesion/HABILIDAD.md +27 -0
- package/habilidades/refactorizacion-solid/HABILIDAD.md +182 -0
- package/habilidades/reflexion/HABILIDAD.md +37 -0
- package/habilidades/rigor-progresivo/HABILIDAD.md +109 -0
- package/habilidades/rlm/HABILIDAD.md +85 -0
- package/habilidades/routing-modelos/HABILIDAD.md +79 -0
- package/habilidades/salud-habilidades/HABILIDAD.md +63 -0
- package/habilidades/schemas-dbml/HABILIDAD.md +101 -0
- package/habilidades/trazabilidad/HABILIDAD.md +63 -0
- package/habilidades/ui-ux-design/HABILIDAD.md +76 -0
- package/habilidades/validacion-nyquist/HABILIDAD.md +161 -0
- package/habilidades/worktrees/HABILIDAD.md +80 -0
- package/locales/en.json +179 -0
- package/locales/es.json +179 -0
- package/locales/pt.json +179 -0
- package/package.json +48 -0
- package/plantillas/checklist-requisitos.md +31 -0
- package/plantillas/docker/Dockerfile +16 -0
- package/plantillas/docker/docker-compose.yml +28 -0
- package/plantillas/especdev/WORKFLOW.md +118 -0
- package/plantillas/especdev/config.yaml +27 -0
- package/plantillas/especdev/en/config.yaml +27 -0
- package/plantillas/especdev/en/decisions.md +17 -0
- package/plantillas/especdev/en/deferred-work.md +17 -0
- package/plantillas/especdev/en/findings.md +7 -0
- package/plantillas/especdev/en/knowledge.md +19 -0
- package/plantillas/especdev/en/plan.md +35 -0
- package/plantillas/especdev/en/progress.md +7 -0
- package/plantillas/especdev/en/project-constitution.md +53 -0
- package/plantillas/especdev/en/pseudocode.md +35 -0
- package/plantillas/especdev/en/runtime.md +26 -0
- package/plantillas/especdev/en/status.md +16 -0
- package/plantillas/especdev/es/config.yaml +27 -0
- package/plantillas/especdev/es/conocimiento.md +19 -0
- package/plantillas/especdev/es/constitucion-proyecto.md +53 -0
- package/plantillas/especdev/es/decisiones.md +17 -0
- package/plantillas/especdev/es/deuda-scope.md +17 -0
- package/plantillas/especdev/es/estado.md +16 -0
- package/plantillas/especdev/es/hallazgos.md +7 -0
- package/plantillas/especdev/es/plan.md +35 -0
- package/plantillas/especdev/es/progreso.md +7 -0
- package/plantillas/especdev/es/pseudocodigo.md +35 -0
- package/plantillas/especdev/es/runtime.md +26 -0
- package/plantillas/especdev/estado.md +16 -0
- package/plantillas/especdev/hallazgos.md +7 -0
- package/plantillas/especdev/isa.yml +152 -0
- package/plantillas/especdev/plan.md +35 -0
- package/plantillas/especdev/progreso.md +7 -0
- package/plantillas/especdev/pt/config.yaml +27 -0
- package/plantillas/especdev/pt/conhecimento.md +19 -0
- package/plantillas/especdev/pt/constituicao-projeto.md +53 -0
- package/plantillas/especdev/pt/decisoes.md +17 -0
- package/plantillas/especdev/pt/descobertas.md +7 -0
- package/plantillas/especdev/pt/estado.md +16 -0
- package/plantillas/especdev/pt/plano.md +35 -0
- package/plantillas/especdev/pt/progresso.md +7 -0
- package/plantillas/especdev/pt/pseudocodigo.md +35 -0
- package/plantillas/especdev/pt/runtime.md +26 -0
- package/plantillas/especdev/pt/trabalho-diferido.md +17 -0
- package/plantillas/estimado-desarrollo.md +43 -0
- package/prompt.md +16 -0
- package/reglas/constitucion.md +122 -0
- package/reglas/hooks-parar.md +102 -0
- package/reglas/i18n.md +47 -0
- package/reglas/leyes-hierro.md +18 -0
- package/reglas/puertas-calidad.md +87 -0
- package/reglas/reglas-desviacion.md +36 -0
- package/reglas/reglas-trabajo-globales.md +171 -0
- package/reglas/skills-best-practices.md +109 -0
- package/scripts/.claude/commands/bucle-completar.md +13 -0
- package/scripts/.claude/commands/bucle-estado.md +13 -0
- package/scripts/.claude/commands/bucle.md +74 -0
- package/scripts/.claude/commands/especdev/actualizar.md +200 -0
- package/scripts/.claude/commands/especdev/agente.md +43 -0
- package/scripts/.claude/commands/especdev/analizar-sesiones.md +158 -0
- package/scripts/.claude/commands/especdev/aplicar.md +73 -0
- package/scripts/.claude/commands/especdev/archivar.md +69 -0
- package/scripts/.claude/commands/especdev/auditar-seguridad.md +234 -0
- package/scripts/.claude/commands/especdev/auditar.md +15 -0
- package/scripts/.claude/commands/especdev/avance-rapido.md +64 -0
- package/scripts/.claude/commands/especdev/cambios.md +14 -0
- package/scripts/.claude/commands/especdev/cerrar-sesion.md +88 -0
- package/scripts/.claude/commands/especdev/clarificar.md +98 -0
- package/scripts/.claude/commands/especdev/comenzar.md +77 -0
- package/scripts/.claude/commands/especdev/completo.md +49 -0
- package/scripts/.claude/commands/especdev/continuar.md +59 -0
- package/scripts/.claude/commands/especdev/contrato-api.md +223 -0
- package/scripts/.claude/commands/especdev/contrato-ui.md +245 -0
- package/scripts/.claude/commands/especdev/desglosar.md +172 -0
- package/scripts/.claude/commands/especdev/destilar.md +211 -0
- package/scripts/.claude/commands/especdev/detectar-ambiguedad.md +81 -0
- package/scripts/.claude/commands/especdev/diagnostico.md +92 -0
- package/scripts/.claude/commands/especdev/dise/303/261ar.md +74 -0
- package/scripts/.claude/commands/especdev/donde-estoy.md +32 -0
- package/scripts/.claude/commands/especdev/especificar.md +189 -0
- package/scripts/.claude/commands/especdev/estado.md +46 -0
- package/scripts/.claude/commands/especdev/estimar.md +141 -0
- package/scripts/.claude/commands/especdev/explorar.md +175 -0
- package/scripts/.claude/commands/especdev/guardian.md +99 -0
- package/scripts/.claude/commands/especdev/historial.md +14 -0
- package/scripts/.claude/commands/especdev/implementar.md +227 -0
- package/scripts/.claude/commands/especdev/incorporar.md +71 -0
- package/scripts/.claude/commands/especdev/iniciar.md +82 -0
- package/scripts/.claude/commands/especdev/limpiar-slop.md +88 -0
- package/scripts/.claude/commands/especdev/memorizar.md +31 -0
- package/scripts/.claude/commands/especdev/mesa-redonda.md +60 -0
- package/scripts/.claude/commands/especdev/mesa-tecnica.md +144 -0
- package/scripts/.claude/commands/especdev/migrar.md +237 -0
- package/scripts/.claude/commands/especdev/minar-referencias.md +214 -0
- package/scripts/.claude/commands/especdev/planificar-tecnico.md +186 -0
- package/scripts/.claude/commands/especdev/planning.md +264 -0
- package/scripts/.claude/commands/especdev/poc.md +302 -0
- package/scripts/.claude/commands/especdev/proponer.md +69 -0
- package/scripts/.claude/commands/especdev/rapido.md +69 -0
- package/scripts/.claude/commands/especdev/reflexionar.md +53 -0
- package/scripts/.claude/commands/especdev/retro.md +14 -0
- package/scripts/.claude/commands/especdev/reversa.md +155 -0
- package/scripts/.claude/commands/especdev/revisar.md +221 -0
- package/scripts/.claude/commands/especdev/traspasar.md +76 -0
- package/scripts/.claude/commands/especdev/traspaso.md +43 -0
- package/scripts/.claude/commands/especdev/validar.md +40 -0
- package/scripts/.claude/commands/historias-generar.md +74 -0
- package/scripts/.claude/commands/razonar/5-porques.md +42 -0
- package/scripts/.claude/commands/razonar/circulo-competencia.md +22 -0
- package/scripts/.claude/commands/razonar/costo-oportunidad.md +21 -0
- package/scripts/.claude/commands/razonar/inversion.md +40 -0
- package/scripts/.claude/commands/razonar/mapa-territorio.md +22 -0
- package/scripts/.claude/commands/razonar/minimizar-arrepentimiento.md +20 -0
- package/scripts/.claude/commands/razonar/pareto.md +32 -0
- package/scripts/.claude/commands/razonar/pre-mortem.md +22 -0
- package/scripts/.claude/commands/razonar/primeros-principios.md +57 -0
- package/scripts/.claude/commands/razonar/probabilistico.md +21 -0
- package/scripts/.claude/commands/razonar/reversibilidad.md +27 -0
- package/scripts/.claude/commands/razonar/rlm-cadena-pensamiento.md +189 -0
- package/scripts/.claude/commands/razonar/rlm-descomposicion.md +216 -0
- package/scripts/.claude/commands/razonar/rlm-verificacion.md +169 -0
- package/scripts/.claude/commands/razonar/segundo-orden.md +35 -0
- package/scripts/.claude/don-cheli/AGENTS.md +20 -0
- package/scripts/.claude/don-cheli/CLAUDE.md +114 -0
- package/scripts/.claude/don-cheli/NOTICE +17 -0
- package/scripts/.claude/don-cheli/VERSION +1 -0
- package/scripts/.claude/don-cheli/agentes/README.md +28 -0
- package/scripts/.claude/don-cheli/agentes/prompts/estimador.md +29 -0
- package/scripts/.claude/don-cheli/folder-map.json +19 -0
- package/scripts/.claude/don-cheli/ganchos/parar.md +10 -0
- package/scripts/.claude/don-cheli/ganchos/post-herramienta.md +9 -0
- package/scripts/.claude/don-cheli/ganchos/pre-herramienta.md +19 -0
- package/scripts/.claude/don-cheli/habilidades/arnes-agente/HABILIDAD.md +155 -0
- package/scripts/.claude/don-cheli/habilidades/auto-correccion/HABILIDAD.md +105 -0
- package/scripts/.claude/don-cheli/habilidades/brainstorming/HABILIDAD.md +79 -0
- package/scripts/.claude/don-cheli/habilidades/cambio-carpeta/HABILIDAD.md +91 -0
- package/scripts/.claude/don-cheli/habilidades/code-rag/HABILIDAD.md +297 -0
- package/scripts/.claude/don-cheli/habilidades/contabilidad-tokens/HABILIDAD.md +100 -0
- package/scripts/.claude/don-cheli/habilidades/delta-specs/HABILIDAD.md +93 -0
- package/scripts/.claude/don-cheli/habilidades/desarrollo-subagentes/HABILIDAD.md +42 -0
- package/scripts/.claude/don-cheli/habilidades/deteccion-loops/HABILIDAD.md +159 -0
- package/scripts/.claude/don-cheli/habilidades/deteccion-stubs/HABILIDAD.md +195 -0
- package/scripts/.claude/don-cheli/habilidades/devlog/HABILIDAD.md +75 -0
- package/scripts/.claude/don-cheli/habilidades/documentacion-viva/HABILIDAD.md +222 -0
- package/scripts/.claude/don-cheli/habilidades/estimacion/HABILIDAD.md +39 -0
- package/scripts/.claude/don-cheli/habilidades/extensiones-presets/HABILIDAD.md +124 -0
- package/scripts/.claude/don-cheli/habilidades/generador-specs/HABILIDAD.md +28 -0
- package/scripts/.claude/don-cheli/habilidades/ingenieria-contexto/HABILIDAD.md +25 -0
- package/scripts/.claude/don-cheli/habilidades/integracion-mcp/HABILIDAD.md +50 -0
- package/scripts/.claude/don-cheli/habilidades/leyes-hierro/HABILIDAD.md +36 -0
- package/scripts/.claude/don-cheli/habilidades/mapa-arquitectonico/HABILIDAD.md +84 -0
- package/scripts/.claude/don-cheli/habilidades/memoria-persistente/HABILIDAD.md +88 -0
- package/scripts/.claude/don-cheli/habilidades/obsidian/HABILIDAD.md +84 -0
- package/scripts/.claude/don-cheli/habilidades/optimizacion-tokens/HABILIDAD.md +170 -0
- package/scripts/.claude/don-cheli/habilidades/optimizador-contexto/HABILIDAD.md +97 -0
- package/scripts/.claude/don-cheli/habilidades/orquestacion-autonoma/HABILIDAD.md +124 -0
- package/scripts/.claude/don-cheli/habilidades/permisos-seguridad/HABILIDAD.md +67 -0
- package/scripts/.claude/don-cheli/habilidades/persona/HABILIDAD.md +57 -0
- package/scripts/.claude/don-cheli/habilidades/presentaciones/HABILIDAD.md +54 -0
- package/scripts/.claude/don-cheli/habilidades/prueba-trabajo/HABILIDAD.md +122 -0
- package/scripts/.claude/don-cheli/habilidades/razonamiento/HABILIDAD.md +60 -0
- package/scripts/.claude/don-cheli/habilidades/recuperacion-sesion/HABILIDAD.md +18 -0
- package/scripts/.claude/don-cheli/habilidades/refactorizacion-solid/HABILIDAD.md +173 -0
- package/scripts/.claude/don-cheli/habilidades/reflexion/HABILIDAD.md +15 -0
- package/scripts/.claude/don-cheli/habilidades/rigor-progresivo/HABILIDAD.md +100 -0
- package/scripts/.claude/don-cheli/habilidades/rlm/HABILIDAD.md +76 -0
- package/scripts/.claude/don-cheli/habilidades/schemas-dbml/HABILIDAD.md +92 -0
- package/scripts/.claude/don-cheli/habilidades/trazabilidad/HABILIDAD.md +54 -0
- package/scripts/.claude/don-cheli/habilidades/ui-ux-design/HABILIDAD.md +67 -0
- package/scripts/.claude/don-cheli/habilidades/validacion-nyquist/HABILIDAD.md +152 -0
- package/scripts/.claude/don-cheli/habilidades/worktrees/HABILIDAD.md +71 -0
- package/scripts/.claude/don-cheli/locale +1 -0
- package/scripts/.claude/don-cheli/locales/en.json +179 -0
- package/scripts/.claude/don-cheli/locales/es.json +179 -0
- package/scripts/.claude/don-cheli/locales/pt.json +179 -0
- package/scripts/.claude/don-cheli/plantillas/checklist-requisitos.md +31 -0
- package/scripts/.claude/don-cheli/plantillas/docker/Dockerfile +16 -0
- package/scripts/.claude/don-cheli/plantillas/docker/docker-compose.yml +28 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/WORKFLOW.md +118 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/config.yaml +27 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/en/config.yaml +27 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/en/findings.md +7 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/en/plan.md +35 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/en/progress.md +7 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/en/status.md +16 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/es/config.yaml +27 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/es/estado.md +16 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/es/hallazgos.md +7 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/es/plan.md +35 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/es/progreso.md +7 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/estado.md +16 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/hallazgos.md +7 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/isa.yml +152 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/plan.md +35 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/progreso.md +7 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/pt/config.yaml +27 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/pt/descobertas.md +7 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/pt/estado.md +16 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/pt/plano.md +35 -0
- package/scripts/.claude/don-cheli/plantillas/especdev/pt/progresso.md +7 -0
- package/scripts/.claude/don-cheli/plantillas/estimado-desarrollo.md +43 -0
- package/scripts/.claude/don-cheli/prompt.md +16 -0
- package/scripts/.claude/don-cheli/reglas/constitucion.md +122 -0
- package/scripts/.claude/don-cheli/reglas/hooks-parar.md +102 -0
- package/scripts/.claude/don-cheli/reglas/i18n.md +47 -0
- package/scripts/.claude/don-cheli/reglas/leyes-hierro.md +18 -0
- package/scripts/.claude/don-cheli/reglas/puertas-calidad.md +87 -0
- package/scripts/.claude/don-cheli/reglas/reglas-desviacion.md +36 -0
- package/scripts/.claude/don-cheli/reglas/reglas-trabajo-globales.md +171 -0
- package/scripts/.claude/don-cheli/scripts/bucle.sh +103 -0
- package/scripts/.claude/don-cheli/scripts/instalar.sh +522 -0
- package/scripts/.claude/don-cheli/scripts/validar.sh +70 -0
- package/scripts/bucle.sh +103 -0
- package/scripts/instalar.sh +587 -0
- package/scripts/validar.sh +70 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# Habilidad: Refactorización SOLID y Clean Code
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Calidad
|
|
5
|
+
**Tipo:** Flexible
|
|
6
|
+
|
|
7
|
+
## Cómo Mejora el Framework
|
|
8
|
+
|
|
9
|
+
Don Cheli tiene la Constitución (Art. II: Precisión Quirúrgica, Art. III: Plug-and-Play) que define principios, pero no provee un proceso estructurado para refactorizar código existente aplicando patrones de diseño y principios SOLID.
|
|
10
|
+
|
|
11
|
+
## Cuándo Activar
|
|
12
|
+
|
|
13
|
+
- Al detectar code smells durante `/especdev:revisar`
|
|
14
|
+
- Cuando un módulo supera umbrales de complejidad
|
|
15
|
+
- Antes de agregar funcionalidad a código legacy
|
|
16
|
+
- Cuando el usuario solicita refactorización explícitamente
|
|
17
|
+
|
|
18
|
+
## Los 5 Principios SOLID como Checklist
|
|
19
|
+
|
|
20
|
+
### S — Single Responsibility (Responsabilidad Única)
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Verificar: ¿Tiene la clase/módulo una sola razón para cambiar?
|
|
24
|
+
|
|
25
|
+
Smells:
|
|
26
|
+
❌ Clase con > 200 líneas
|
|
27
|
+
❌ Más de 3 dependencias inyectadas
|
|
28
|
+
❌ Nombre genérico (Manager, Helper, Utils, Handler)
|
|
29
|
+
❌ Múltiples secciones con comentarios "// --- Sección X ---"
|
|
30
|
+
|
|
31
|
+
Fix: Extraer a clases/módulos especializados
|
|
32
|
+
UserService → UserCreator + UserValidator + UserNotifier
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### O — Open/Closed (Abierto/Cerrado)
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Verificar: ¿Se puede extender sin modificar código existente?
|
|
39
|
+
|
|
40
|
+
Smells:
|
|
41
|
+
❌ Cadenas if/else o switch crecientes
|
|
42
|
+
❌ Modificar clase existente para cada nueva variante
|
|
43
|
+
❌ Parámetros booleanos que cambian comportamiento
|
|
44
|
+
|
|
45
|
+
Fix: Strategy pattern, Plugin pattern, Registry pattern
|
|
46
|
+
if (type === 'credit') {...} else if (type === 'debit') {...}
|
|
47
|
+
→ paymentStrategies[type].process(data)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### L — Liskov Substitution (Sustitución de Liskov)
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
Verificar: ¿Las subclases pueden reemplazar a la clase padre sin romper nada?
|
|
54
|
+
|
|
55
|
+
Smells:
|
|
56
|
+
❌ Subclase que lanza NotImplementedError en método heredado
|
|
57
|
+
❌ instanceof checks en código que usa la abstracción
|
|
58
|
+
❌ Override que cambia la semántica del método padre
|
|
59
|
+
|
|
60
|
+
Fix: Rediseñar jerarquía, usar composición sobre herencia
|
|
61
|
+
Square extends Rectangle (rompe Liskov)
|
|
62
|
+
→ Shape interface con área() independiente
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### I — Interface Segregation (Segregación de Interfaces)
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Verificar: ¿Las interfaces son específicas o fuerzan a implementar métodos innecesarios?
|
|
69
|
+
|
|
70
|
+
Smells:
|
|
71
|
+
❌ Interfaces con > 5 métodos
|
|
72
|
+
❌ Implementaciones con métodos vacíos o throw
|
|
73
|
+
❌ "God interface" que mezcla concerns
|
|
74
|
+
|
|
75
|
+
Fix: Dividir en interfaces específicas
|
|
76
|
+
IUserService (create, read, update, delete, sendEmail, generateReport)
|
|
77
|
+
→ IUserCRUD + IUserNotification + IUserReporting
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### D — Dependency Inversion (Inversión de Dependencias)
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
Verificar: ¿Los módulos de alto nivel dependen de abstracciones, no de implementaciones?
|
|
84
|
+
|
|
85
|
+
Smells:
|
|
86
|
+
❌ new ConcreteService() dentro de otra clase
|
|
87
|
+
❌ Import directo de implementación concreta
|
|
88
|
+
❌ Tests que requieren infraestructura real
|
|
89
|
+
|
|
90
|
+
Fix: Inyección de dependencias
|
|
91
|
+
class AuthService { db = new PostgresDB() }
|
|
92
|
+
→ class AuthService { constructor(private db: IDatabase) }
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Patrones de Diseño — Cuándo Aplicar
|
|
96
|
+
|
|
97
|
+
| Patrón | Cuándo Usar | Ejemplo |
|
|
98
|
+
|--------|------------|---------|
|
|
99
|
+
| **Factory** | Creación de objetos con lógica condicional | `createPaymentProcessor(type)` |
|
|
100
|
+
| **Strategy** | Algoritmos intercambiables | Múltiples métodos de envío |
|
|
101
|
+
| **Observer** | Notificación de cambios sin acoplamiento | Eventos de dominio |
|
|
102
|
+
| **Adapter** | Integrar interfaces incompatibles | Wrapper para API externa |
|
|
103
|
+
| **Repository** | Abstraer acceso a datos | `UserRepository` interface |
|
|
104
|
+
| **Decorator** | Agregar comportamiento sin modificar | Logging, caching, retry |
|
|
105
|
+
| **Builder** | Construir objetos complejos paso a paso | Query builder, config builder |
|
|
106
|
+
| **Facade** | Simplificar subsistema complejo | `PaymentFacade` sobre Stripe+Tax+Invoice |
|
|
107
|
+
|
|
108
|
+
**Regla:** Aplicar un patrón solo cuando el smell existe. Nunca aplicar preventivamente.
|
|
109
|
+
|
|
110
|
+
## Proceso de Refactorización
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
1. IDENTIFICAR — Detectar smells con análisis estático
|
|
114
|
+
└── Complejidad ciclomática, acoplamiento, cohesión
|
|
115
|
+
|
|
116
|
+
2. PLANIFICAR — Definir qué principio/patrón aplicar
|
|
117
|
+
└── [REGLA 4: Si cambia arquitectura → PARAR Y PREGUNTAR]
|
|
118
|
+
|
|
119
|
+
3. PROTEGER — Asegurar que hay tests antes de refactorizar
|
|
120
|
+
└── Si no hay tests → escribirlos primero (Ley de Hierro #1)
|
|
121
|
+
|
|
122
|
+
4. REFACTORIZAR — Aplicar cambio mínimo viable (Art. II Constitución)
|
|
123
|
+
└── Un patrón a la vez, nunca varios simultáneos
|
|
124
|
+
|
|
125
|
+
5. VERIFICAR — Ejecutar tests, verificar que pasan
|
|
126
|
+
└── Cero cambio de comportamiento (Ley de Hierro #3)
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Métricas de Código
|
|
130
|
+
|
|
131
|
+
| Métrica | Umbral Aceptable | Umbral Refactorizar |
|
|
132
|
+
|---------|------------------|---------------------|
|
|
133
|
+
| Complejidad ciclomática | ≤ 10 | > 15 |
|
|
134
|
+
| Líneas por función | ≤ 30 | > 50 |
|
|
135
|
+
| Líneas por archivo | ≤ 300 | > 500 |
|
|
136
|
+
| Profundidad de anidamiento | ≤ 3 | > 4 |
|
|
137
|
+
| Parámetros por función | ≤ 3 | > 5 |
|
|
138
|
+
| Dependencias por módulo | ≤ 5 | > 7 |
|
|
139
|
+
|
|
140
|
+
## Output del Análisis
|
|
141
|
+
|
|
142
|
+
```markdown
|
|
143
|
+
## Análisis de Refactorización: src/services/order_service.py
|
|
144
|
+
|
|
145
|
+
### Smells Detectados
|
|
146
|
+
|
|
147
|
+
| # | Smell | Principio | Severidad | Líneas |
|
|
148
|
+
|---|-------|-----------|-----------|--------|
|
|
149
|
+
| 1 | Clase de 450 líneas con 12 métodos | S (SRP) | ❌ Alto | 1-450 |
|
|
150
|
+
| 2 | Switch de 8 casos para tipo de pago | O (OCP) | ⚠️ Medio | 120-180 |
|
|
151
|
+
| 3 | `new StripeClient()` hardcoded | D (DIP) | ⚠️ Medio | 45 |
|
|
152
|
+
|
|
153
|
+
### Plan de Refactorización
|
|
154
|
+
|
|
155
|
+
1. **Extraer** validaciones → `OrderValidator` (SRP)
|
|
156
|
+
2. **Extraer** cálculos → `OrderCalculator` (SRP)
|
|
157
|
+
3. **Strategy** para tipos de pago → `PaymentStrategy` interface (OCP)
|
|
158
|
+
4. **Inyectar** StripeClient via constructor (DIP)
|
|
159
|
+
|
|
160
|
+
### Impacto Estimado
|
|
161
|
+
- Archivos afectados: 4 (crear 3 nuevos, modificar 1)
|
|
162
|
+
- Tests a actualizar: 6
|
|
163
|
+
- Riesgo: Bajo (cambio de estructura, no de comportamiento)
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Guardrails
|
|
167
|
+
|
|
168
|
+
- **Nunca** refactorizar sin tests existentes — escribirlos primero
|
|
169
|
+
- **Nunca** aplicar múltiples patrones en un solo PR
|
|
170
|
+
- **Nunca** refactorizar "de paso" junto a una feature (Art. II)
|
|
171
|
+
- **Siempre** verificar cero cambio de comportamiento post-refactor
|
|
172
|
+
- **Siempre** pedir confirmación si afecta > 5 archivos (Regla 4)
|
|
173
|
+
- **Siempre** justificar el patrón elegido vs alternativa más simple
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Habilidad: Reflexión
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Calidad
|
|
5
|
+
|
|
6
|
+
## Propósito
|
|
7
|
+
|
|
8
|
+
Mejorar calidad de output (+8-21%) mediante auto-reflexión estructurada.
|
|
9
|
+
|
|
10
|
+
## Las 4 Preguntas
|
|
11
|
+
|
|
12
|
+
1. ¿Qué funcionó bien?
|
|
13
|
+
2. ¿Qué se puede mejorar?
|
|
14
|
+
3. ¿Qué aprendí?
|
|
15
|
+
4. ¿Qué haría diferente?
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Habilidad: Rigor Progresivo en Specs
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Especificación
|
|
5
|
+
**Tipo:** Flexible
|
|
6
|
+
|
|
7
|
+
> Adaptado de OpenSpec — "Keep It Lightweight: Progressive Rigor"
|
|
8
|
+
|
|
9
|
+
## Cómo Mejora el Framework
|
|
10
|
+
|
|
11
|
+
No todos los cambios necesitan el mismo nivel de detalle en la spec. Un bugfix de una línea no necesita 3 páginas de especificación. Este concepto evita burocracia innecesaria.
|
|
12
|
+
|
|
13
|
+
## Dos Niveles de Rigor
|
|
14
|
+
|
|
15
|
+
### 📝 Spec Ligera (Default — la mayoría de cambios)
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
# Spec: Corregir timeout en login
|
|
19
|
+
|
|
20
|
+
## Propósito
|
|
21
|
+
El login falla con timeout después de 30 segundos en conexiones lentas.
|
|
22
|
+
|
|
23
|
+
## Requisito
|
|
24
|
+
El sistema DEBE esperar hasta 60 segundos antes de timeout.
|
|
25
|
+
|
|
26
|
+
## Aceptación
|
|
27
|
+
- Login funciona en conexión de 3G
|
|
28
|
+
- No hay timeout antes de 60 segundos
|
|
29
|
+
- Se muestra spinner durante la espera
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Usar para:** Bugfixes, features pequeñas, refactors internos, mejoras de UI.
|
|
33
|
+
|
|
34
|
+
### 📋 Spec Completa (Para cambios de alto riesgo)
|
|
35
|
+
|
|
36
|
+
```markdown
|
|
37
|
+
# Spec: Migrar sistema de pagos a Stripe
|
|
38
|
+
|
|
39
|
+
## Propósito
|
|
40
|
+
Reemplazar el procesador de pagos actual por Stripe para soportar
|
|
41
|
+
pagos internacionales y suscripciones.
|
|
42
|
+
|
|
43
|
+
## Requisitos
|
|
44
|
+
|
|
45
|
+
### Requisito: Procesamiento de Pagos
|
|
46
|
+
El sistema DEBE procesar pagos via Stripe API v3.
|
|
47
|
+
|
|
48
|
+
#### Escenario: Pago exitoso
|
|
49
|
+
- DADO un usuario con tarjeta válida
|
|
50
|
+
- CUANDO confirma el pago de $50 USD
|
|
51
|
+
- ENTONCES se crea un PaymentIntent en Stripe
|
|
52
|
+
- Y el pedido cambia a estado "pagado"
|
|
53
|
+
- Y se envía receipt por email
|
|
54
|
+
|
|
55
|
+
#### Escenario: Tarjeta rechazada
|
|
56
|
+
- DADO un usuario con tarjeta expirada
|
|
57
|
+
- CUANDO intenta pagar
|
|
58
|
+
- ENTONCES recibe error "Tarjeta rechazada"
|
|
59
|
+
- Y el pedido permanece en "pendiente"
|
|
60
|
+
- Y NO se cobra nada
|
|
61
|
+
|
|
62
|
+
### Requisito: Suscripciones
|
|
63
|
+
El sistema DEBE soportar planes mensuales y anuales.
|
|
64
|
+
|
|
65
|
+
(... más requisitos detallados ...)
|
|
66
|
+
|
|
67
|
+
## No-Objetivos
|
|
68
|
+
- NO migrar pagos históricos
|
|
69
|
+
- NO soportar crypto en esta fase
|
|
70
|
+
|
|
71
|
+
## Restricciones
|
|
72
|
+
- PCI-DSS compliance obligatorio
|
|
73
|
+
- No almacenar datos de tarjeta en BD propia
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Usar para:** Cambios cross-equipo, APIs contractuales, migraciones, seguridad/privacidad, cambios donde la ambigüedad causa retrabajo costoso.
|
|
77
|
+
|
|
78
|
+
## Palabras Clave RFC 2119
|
|
79
|
+
|
|
80
|
+
En specs, usar keywords formales para comunicar intensidad:
|
|
81
|
+
|
|
82
|
+
| Keyword | Significado | Ejemplo |
|
|
83
|
+
|---------|------------|---------|
|
|
84
|
+
| **DEBE** (MUST/SHALL) | Requisito absoluto | "El sistema DEBE encriptar passwords" |
|
|
85
|
+
| **DEBERÍA** (SHOULD) | Recomendado, excepciones posibles | "El response DEBERÍA incluir paginación" |
|
|
86
|
+
| **PUEDE** (MAY) | Opcional | "El usuario PUEDE agregar avatar" |
|
|
87
|
+
| **NO DEBE** (MUST NOT) | Prohibición absoluta | "NO DEBE almacenar tokens en plain text" |
|
|
88
|
+
|
|
89
|
+
## Auto-Detección de Rigor
|
|
90
|
+
|
|
91
|
+
Don Cheli auto-detecta el rigor necesario:
|
|
92
|
+
|
|
93
|
+
| Indicador | Rigor |
|
|
94
|
+
|-----------|-------|
|
|
95
|
+
| Nivel 0-1 (Atómico/Micro) | 📝 Ligera |
|
|
96
|
+
| Nivel 2 (Estándar) | 📝 Ligera o 📋 Completa |
|
|
97
|
+
| Nivel 3-4 (Complejo/Producto) | 📋 Completa |
|
|
98
|
+
| Toca seguridad/pagos/auth | 📋 Completa siempre |
|
|
99
|
+
| Cambia API pública | 📋 Completa siempre |
|
|
100
|
+
| Refactor interno | 📝 Ligera |
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Habilidad: RLM — Modelo de Lenguaje Recursivo
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Razonamiento Avanzado
|
|
5
|
+
**Tipo:** Flexible
|
|
6
|
+
|
|
7
|
+
> Basado en el paradigma **Recursive Language Model** de [PrimeIntellect](https://www.primeintellect.ai/blog/rlm) (2026)
|
|
8
|
+
|
|
9
|
+
## Qué es el RLM
|
|
10
|
+
|
|
11
|
+
El RLM permite a un LLM **gestionar activamente su propio contexto**. En vez de ingerir directamente datos potencialmente enormes, el modelo usa un **REPL Python persistente** para:
|
|
12
|
+
|
|
13
|
+
1. **Inspeccionar y transformar** datos de entrada programáticamente
|
|
14
|
+
2. **Llamar sub-LLMs** frescos desde el REPL via `llm_batch()`
|
|
15
|
+
3. **Delegar herramientas** solo a los sub-LLMs (mantener el contexto principal limpio)
|
|
16
|
+
4. **Construir la respuesta** iterativamente via variable `respuesta`
|
|
17
|
+
|
|
18
|
+
## Arquitectura Central
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
┌──────────────────────────────────────────┐
|
|
22
|
+
│ RLM Principal │
|
|
23
|
+
│ (Orquestador — contexto limpio) │
|
|
24
|
+
│ │
|
|
25
|
+
│ ┌────────────────────────────────────┐ │
|
|
26
|
+
│ │ REPL Python Persistente │ │
|
|
27
|
+
│ │ │ │
|
|
28
|
+
│ │ datos = env.input_data │ │
|
|
29
|
+
│ │ resultados = llm_batch([...]) │ │
|
|
30
|
+
│ │ respuesta["contenido"] = ... │ │
|
|
31
|
+
│ │ respuesta["lista"] = True │ │
|
|
32
|
+
│ └────────────────────────────────────┘ │
|
|
33
|
+
│ │
|
|
34
|
+
│ ┌──────┐ ┌──────┐ ┌──────┐ │
|
|
35
|
+
│ │SubLLM│ │SubLLM│ │SubLLM│ FRESCOS │
|
|
36
|
+
│ │+tools│ │+tools│ │+tools│ PARALELO │
|
|
37
|
+
│ └──────┘ └──────┘ └──────┘ │
|
|
38
|
+
└──────────────────────────────────────────┘
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Principios Clave
|
|
42
|
+
|
|
43
|
+
| Principio | Descripción |
|
|
44
|
+
|-----------|-------------|
|
|
45
|
+
| **Datos al entorno, no al contexto** | Los datos van al REPL Python, no al prompt del LLM |
|
|
46
|
+
| **Herramientas solo para sub-LLMs** | El RLM principal NO usa herramientas directamente |
|
|
47
|
+
| **Context folding > summarization** | Delegar ≠ resumir. No se pierde información |
|
|
48
|
+
| **Contexto fresco por sub-LLM** | Cada sub-LLM es una instancia nueva sin context rot |
|
|
49
|
+
| **Respuesta por difusión** | Se construye y edita iterativamente |
|
|
50
|
+
| **`llm_batch()` paralelo** | Sub-tareas independientes se despachan en paralelo |
|
|
51
|
+
|
|
52
|
+
## Los 3 Modelos RLM
|
|
53
|
+
|
|
54
|
+
| Modelo | Comando | Caso de Uso |
|
|
55
|
+
|--------|---------|-------------|
|
|
56
|
+
| Verificación | `/razonar:rlm-verificacion` | Verificar código contra specs con sub-LLMs |
|
|
57
|
+
| Cadena de Pensamiento | `/razonar:rlm-cadena-pensamiento` | Razonamiento multi-paso con context folding |
|
|
58
|
+
| Descomposición | `/razonar:rlm-descomposicion` | Codebases grandes, inputs masivos |
|
|
59
|
+
|
|
60
|
+
## Árbol de Decisión
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
¿El problema involucra inputs masivos o contexto muy largo?
|
|
64
|
+
├── SÍ → rlm-descomposicion (Map-Reduce / Divide-Conquista)
|
|
65
|
+
└── NO → ¿Necesita verificación contra criterios?
|
|
66
|
+
├── SÍ → rlm-verificacion (sub-LLMs con tests/tools)
|
|
67
|
+
└── NO → ¿Es razonamiento multi-paso?
|
|
68
|
+
├── SÍ → rlm-cadena-pensamiento (context folding)
|
|
69
|
+
└── NO → Usar modelo de razonamiento clásico
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Referencia
|
|
73
|
+
|
|
74
|
+
- [PrimeIntellect: Recursive Language Models](https://www.primeintellect.ai/blog/rlm)
|
|
75
|
+
- [Alex Zhang (MIT): Paper original RLM](https://arxiv.org/abs/2512.24601)
|
|
76
|
+
- [Context Rot Research](https://research.trychroma.com/context-rot)
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Habilidad: Schemas DBML (Verdad Viva)
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Especificación
|
|
5
|
+
**Tipo:** Rígida
|
|
6
|
+
|
|
7
|
+
> Adaptado de Specular (pei9564/Specular → constitution.md §I-B)
|
|
8
|
+
|
|
9
|
+
## Cómo Mejora el Framework
|
|
10
|
+
|
|
11
|
+
Sin DBML, el schema de base de datos se define de forma ad-hoc y se pierde sincronía con el código. Con DBML:
|
|
12
|
+
|
|
13
|
+
- El schema es la **verdad absoluta** para nombres y tipos de campos
|
|
14
|
+
- Los Gherkin scenarios usan los MISMOS nombres que el DBML
|
|
15
|
+
- El pipeline detecta inconsistencias automáticamente
|
|
16
|
+
|
|
17
|
+
## Qué es DBML
|
|
18
|
+
|
|
19
|
+
[DBML (Database Markup Language)](https://dbml.dbdiagram.io/) es un lenguaje simple para modelar schemas de BD.
|
|
20
|
+
|
|
21
|
+
```dbml
|
|
22
|
+
// specs/db_schema/usuario.dbml
|
|
23
|
+
Table usuario {
|
|
24
|
+
id uuid [pk, default: `gen_random_uuid()`]
|
|
25
|
+
email varchar(255) [unique, not null]
|
|
26
|
+
password_hash varchar(255) [not null]
|
|
27
|
+
nombre varchar(100) [not null]
|
|
28
|
+
created_at timestamp [not null, default: `now()`]
|
|
29
|
+
updated_at timestamp [not null, default: `now()`]
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Ciclo de Vida
|
|
34
|
+
|
|
35
|
+
### 1. Provisional (`@provisional`)
|
|
36
|
+
|
|
37
|
+
```dbml
|
|
38
|
+
// @provisional — Auto-generado por /especdev:especificar
|
|
39
|
+
Table orden @provisional {
|
|
40
|
+
id uuid [pk]
|
|
41
|
+
usuario_id uuid [ref: > usuario.id]
|
|
42
|
+
total decimal [not null]
|
|
43
|
+
estado varchar(20) [not null]
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- Se genera automáticamente al crear una spec si no existe
|
|
48
|
+
- Es un **borrador** que necesita revisión
|
|
49
|
+
- Los scenarios Gherkin DEBEN usar estos nombres tal como están
|
|
50
|
+
|
|
51
|
+
### 2. Ratificado (sin tag)
|
|
52
|
+
|
|
53
|
+
```dbml
|
|
54
|
+
// Ratificado — Revisado en fase Clarify
|
|
55
|
+
Table orden {
|
|
56
|
+
id uuid [pk, default: `gen_random_uuid()`]
|
|
57
|
+
usuario_id uuid [ref: > usuario.id, not null]
|
|
58
|
+
total decimal(10,2) [not null]
|
|
59
|
+
estado varchar(20) [not null, default: 'pendiente']
|
|
60
|
+
created_at timestamp [not null, default: `now()`]
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
- Revisado durante `/especdev:clarificar` o `/especdev:planificar-tecnico`
|
|
65
|
+
- Se convierte en **Verdad Absoluta**
|
|
66
|
+
- Extensión solo con `@provisional` en las NUEVAS partes
|
|
67
|
+
- Renombrar campos requiere nota de migración
|
|
68
|
+
|
|
69
|
+
## Estructura
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
specs/
|
|
73
|
+
└── db_schema/
|
|
74
|
+
├── _proyecto.dbml # Metadata del proyecto
|
|
75
|
+
├── _relaciones.dbml # Relaciones cross-dominio
|
|
76
|
+
├── usuario.dbml # Schema de usuarios
|
|
77
|
+
├── orden.dbml # Schema de órdenes
|
|
78
|
+
└── ...
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Integración con el Pipeline
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
especificar → ¿Existe DBML?
|
|
85
|
+
├── NO → Generar DBML @provisional → Incluir en .feature
|
|
86
|
+
└── SÍ → Usar DBML existente como referencia
|
|
87
|
+
|
|
88
|
+
clarificar → Verificar consistencia Schema↔Gherkin
|
|
89
|
+
→ Ratificar @provisional si está correcto
|
|
90
|
+
|
|
91
|
+
planificar-tecnico → Generar modelos Pydantic/TypeScript DESDE el DBML
|
|
92
|
+
```
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Habilidad: Pipeline de Trazabilidad
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Calidad
|
|
5
|
+
**Tipo:** Rígida
|
|
6
|
+
|
|
7
|
+
> Adaptado de Specular: "Cada línea de código se traza hasta un escenario Gherkin."
|
|
8
|
+
|
|
9
|
+
## Cómo Mejora el Framework
|
|
10
|
+
|
|
11
|
+
La trazabilidad garantiza que **nada se inventa de la nada**. Cada línea de código puede rastrearse hasta:
|
|
12
|
+
1. Un Escenario Gherkin (`.feature`)
|
|
13
|
+
2. Que a su vez viene de un Requerimiento del usuario
|
|
14
|
+
3. Que a su vez fue clarificado (sin ambigüedades)
|
|
15
|
+
|
|
16
|
+
## Matriz de Trazabilidad
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Requerimiento → .feature (Gherkin) → .plan.md (Blueprint) → .tasks.md (Tareas) → Código → Tests
|
|
20
|
+
│ │ │ │ │ │
|
|
21
|
+
└────────────────┴────────────────────┴──────────────────────┴──────────────┴────────┘
|
|
22
|
+
Todo se traza hacia atrás hasta el requerimiento original
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Artefactos Trazables
|
|
26
|
+
|
|
27
|
+
| Artefacto | Formato | Trazable a |
|
|
28
|
+
|-----------|---------|------------|
|
|
29
|
+
| `Feature.feature` | Gherkin | Requerimiento original |
|
|
30
|
+
| `Feature.plan.md` | Markdown | Escenarios en .feature |
|
|
31
|
+
| `Feature.tasks.md` | Markdown | Contratos en .plan.md |
|
|
32
|
+
| Código fuente | Lenguaje | Tareas en .tasks.md |
|
|
33
|
+
| Tests | Frameworks | Escenarios en .feature |
|
|
34
|
+
| `review.md` | Markdown | Todo lo anterior |
|
|
35
|
+
|
|
36
|
+
## Tags de Estado
|
|
37
|
+
|
|
38
|
+
| Tag | Significado | Quién lo Pone |
|
|
39
|
+
|-----|-------------|---------------|
|
|
40
|
+
| `@borrador` | Spec en progreso, no lista | `/especdev:especificar` |
|
|
41
|
+
| `@clarificada` | Ambigüedades resueltas | `/especdev:clarificar` |
|
|
42
|
+
| `@lista` | Aprobada para implementación | Puerta de Calidad |
|
|
43
|
+
| `@implementada` | Código escrito y tests pasan | `/especdev:implementar` |
|
|
44
|
+
| `@provisional` | Schema DBML no ratificado | Auto-generado |
|
|
45
|
+
|
|
46
|
+
## Propiedad de Archivos
|
|
47
|
+
|
|
48
|
+
| El Framework Posee | Tú Posees |
|
|
49
|
+
|---------------------|-----------|
|
|
50
|
+
| `.especdev/` (config, templates) | `specs/features/*` (tus specs) |
|
|
51
|
+
| `comandos/` (slash commands) | `specs/db_schema/*` (tus schemas) |
|
|
52
|
+
| `habilidades/` (skills) | `app/*` / `src/*` (tu código) |
|
|
53
|
+
| `reglas/` (rules) | `tests/*` (tus tests) |
|
|
54
|
+
| `plantillas/` (templates) | `CLAUDE.md` (tus instrucciones) |
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Habilidad: UI/UX Design System
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Diseño
|
|
5
|
+
**Tipo:** Flexible
|
|
6
|
+
|
|
7
|
+
> Adaptado de [ui-ux-pro-max](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) — Motor de razonamiento multi-dominio para diseño.
|
|
8
|
+
|
|
9
|
+
## Propósito
|
|
10
|
+
|
|
11
|
+
Generar sistemas de diseño completos (estilos, colores, tipografía, patrones) a partir de la descripción del producto. Complementa `/especdev:contrato-ui` que **bloquea** estándares — esta habilidad **genera** las opciones.
|
|
12
|
+
|
|
13
|
+
## Relación con contrato-ui
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
ui-ux-design (GENERAR) → contrato-ui (BLOQUEAR) → implementar (CODEAR)
|
|
17
|
+
↑ ↑ ↑
|
|
18
|
+
"¿Qué estilo?" "Este es el estándar" "Codear con estándar"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Dominios de Búsqueda (5 paralelos)
|
|
22
|
+
|
|
23
|
+
| Dominio | Qué evalúa | Datos |
|
|
24
|
+
|---------|-----------|-------|
|
|
25
|
+
| **Estilo** | Tendencia visual | 67 estilos UI |
|
|
26
|
+
| **Color** | Paleta por industria | 161 paletas |
|
|
27
|
+
| **Tipografía** | Par de fuentes | 57 pares Google Fonts |
|
|
28
|
+
| **Patrones** | Componentes y layouts | Por stack técnico |
|
|
29
|
+
| **UX** | Accesibilidad y usabilidad | 99 guidelines |
|
|
30
|
+
|
|
31
|
+
## Flujo
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
1. Describir producto (tipo, audiencia, tono)
|
|
35
|
+
2. Ejecutar búsqueda multi-dominio (5 en paralelo)
|
|
36
|
+
3. Presentar 3 opciones de sistema de diseño
|
|
37
|
+
4. Usuario elige
|
|
38
|
+
5. Generar tokens CSS + guía de componentes
|
|
39
|
+
6. (Opcional) Bloquear con /especdev:contrato-ui
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Output
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
specs/ui/
|
|
46
|
+
├── design-system.md # Documento del sistema elegido
|
|
47
|
+
├── tokens.css # Variables CSS generadas
|
|
48
|
+
└── componentes.md # Guía de componentes
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Estilos Más Usados
|
|
52
|
+
|
|
53
|
+
| Estilo | Cuándo Usar |
|
|
54
|
+
|--------|------------|
|
|
55
|
+
| Glassmorphism | Apps modernas, dashboards |
|
|
56
|
+
| Neumorphism | Interfaces suaves, settings |
|
|
57
|
+
| Brutalism | Portfolios, creativos |
|
|
58
|
+
| Material 3 | Apps Android, consistencia |
|
|
59
|
+
| Flat Design | SaaS, enterprise |
|
|
60
|
+
| Skeuomorphism | Apps de nicho, juegos |
|
|
61
|
+
|
|
62
|
+
## Guardrails
|
|
63
|
+
|
|
64
|
+
- Siempre verificar contraste WCAG AA (4.5:1 texto, 3:1 UI)
|
|
65
|
+
- Google Fonts únicamente (disponibilidad garantizada)
|
|
66
|
+
- Tokens CSS con custom properties (`--color-primary`, `--font-heading`)
|
|
67
|
+
- Si existe `contrato-ui.yaml` → respetar como constraint, no sobreescribir
|