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,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Descomponer un problema o suposición a sus verdades fundamentales, luego reconstruir el entendimiento desde cero.
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /razonar:primeros-principios
|
|
7
|
+
|
|
8
|
+
Descomponer un problema o suposición a sus verdades fundamentales, luego reconstruir el entendimiento desde cero.
|
|
9
|
+
|
|
10
|
+
## Uso
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/razonar:primeros-principios [tema]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Descripción
|
|
17
|
+
|
|
18
|
+
El Pensamiento de Primeros Principios te ayuda a escapar de la sabiduría convencional cuestionando suposiciones. En vez de razonar por analogía ("¿cómo lo hacen otros?"), razonas desde lo básico ("¿qué es fundamentalmente verdad?").
|
|
19
|
+
|
|
20
|
+
**Usar cuando:**
|
|
21
|
+
- Los enfoques convencionales se sienten incorrectos
|
|
22
|
+
- Necesitas innovación, no iteración
|
|
23
|
+
- Las suposiciones están limitando las opciones
|
|
24
|
+
- Enfrentas restricciones "imposibles"
|
|
25
|
+
|
|
26
|
+
## Proceso
|
|
27
|
+
|
|
28
|
+
1. **Identificar suposiciones** — Listar lo que das por sentado
|
|
29
|
+
2. **Descomponer a lo fundamental** — ¿Qué es innegablemente verdad?
|
|
30
|
+
3. **Cuestionar cada suposición** — ¿Es realmente necesaria?
|
|
31
|
+
4. **Reconstruir desde lo básico** — ¿Qué soluciones emergen de lo fundamental?
|
|
32
|
+
|
|
33
|
+
## Ejemplo
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
/razonar:primeros-principios "Necesitamos microservicios para escalar"
|
|
37
|
+
|
|
38
|
+
SUPOSICIONES:
|
|
39
|
+
- Los microservicios son necesarios para escalar
|
|
40
|
+
- Los monolitos no escalan
|
|
41
|
+
- Las empresas grandes saben más
|
|
42
|
+
|
|
43
|
+
FUNDAMENTOS:
|
|
44
|
+
- Necesitamos X solicitudes/segundo
|
|
45
|
+
- Tenemos Y desarrolladores
|
|
46
|
+
- Necesitamos Z frecuencia de despliegue
|
|
47
|
+
|
|
48
|
+
RECONSTRUCCIÓN:
|
|
49
|
+
Nuestra escala: 1000 req/s → El monolito maneja fácilmente
|
|
50
|
+
Nuestro equipo: 5 devs → Pueden coordinarse en monolito
|
|
51
|
+
Conclusión: Un monolito modular nos sirve mejor
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Combina bien con
|
|
55
|
+
|
|
56
|
+
- `/razonar:inversion`
|
|
57
|
+
- `/razonar:5-porques`
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Razonar en probabilidades en vez de certezas. Asignar porcentajes a los posibles resultados.
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /razonar:probabilistico
|
|
7
|
+
|
|
8
|
+
Razonar en probabilidades en vez de certezas. Asignar porcentajes a los posibles resultados.
|
|
9
|
+
|
|
10
|
+
## Uso
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/razonar:probabilistico [escenario]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Proceso
|
|
17
|
+
|
|
18
|
+
1. **Listar** todos los posibles resultados
|
|
19
|
+
2. **Asignar** probabilidad a cada uno (deben sumar 100%)
|
|
20
|
+
3. **Evaluar** el valor esperado de cada opción
|
|
21
|
+
4. **Decidir** basándose en el valor esperado, no en el mejor caso
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Calibrar el nivel de compromiso según si la decisión es reversible o irreversible.
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /razonar:reversibilidad
|
|
7
|
+
|
|
8
|
+
Calibrar el nivel de compromiso según si la decisión es reversible o irreversible.
|
|
9
|
+
|
|
10
|
+
## Uso
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
/razonar:reversibilidad [decisión]
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Proceso
|
|
17
|
+
|
|
18
|
+
1. **Clasificar**: ¿Es reversible o irreversible?
|
|
19
|
+
2. **Si reversible** (puerta de dos vías): Decidir rápido, iterar
|
|
20
|
+
3. **Si irreversible** (puerta de una vía): Decidir con cuidado, analizar profundamente
|
|
21
|
+
|
|
22
|
+
## Regla
|
|
23
|
+
|
|
24
|
+
| Tipo | Velocidad | Análisis |
|
|
25
|
+
|------|-----------|----------|
|
|
26
|
+
| Reversible | Rápido | Mínimo |
|
|
27
|
+
| Irreversible | Lento | Exhaustivo |
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Razonamiento en Cadena con Context Folding
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /razonar:rlm-cadena-pensamiento
|
|
7
|
+
|
|
8
|
+
🧠 **Modelo RLM: Razonamiento en Cadena con Context Folding**
|
|
9
|
+
|
|
10
|
+
Basado en el paradigma **Recursive Language Model (RLM)** de PrimeIntellect. Aplica "context folding" (plegado de contexto) para problemas de razonamiento multi-paso: el LLM principal orquesta sub-LLMs frescos para cada paso de la cadena, manteniendo su propio contexto limpio y evitando el "context rot".
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/razonar:rlm-cadena-pensamiento [problema complejo multi-paso]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## El Problema del Context Rot
|
|
19
|
+
|
|
20
|
+
En razonamiento multi-paso tradicional, cada paso se acumula en el contexto del LLM. Después de muchos pasos, el contexto crece y la calidad de las respuestas **degrada** (context rot). Esto es un problema bien documentado en la investigación.
|
|
21
|
+
|
|
22
|
+
## La Solución: Context Folding
|
|
23
|
+
|
|
24
|
+
En vez de acumular todo en un solo contexto, el RLM:
|
|
25
|
+
|
|
26
|
+
1. **Pliega** el contexto delegando trabajo a sub-LLMs frescos
|
|
27
|
+
2. **Solo retiene** resúmenes concisos de los resultados
|
|
28
|
+
3. **Nunca resume el contexto** (lo cual pierde información) — en su lugar, **delega programáticamente**
|
|
29
|
+
|
|
30
|
+
## Arquitectura
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
┌─────────────────────────────────────────────────────┐
|
|
34
|
+
│ RLM Principal │
|
|
35
|
+
│ (Gestión de Contexto) │
|
|
36
|
+
│ │
|
|
37
|
+
│ # El RLM descompone el problema en pasos │
|
|
38
|
+
│ # y usa Python para orquestar sub-LLMs │
|
|
39
|
+
│ │
|
|
40
|
+
│ ┌─────────────────────────────────────────────┐ │
|
|
41
|
+
│ │ REPL Python │ │
|
|
42
|
+
│ │ │ │
|
|
43
|
+
│ │ # Paso 1: Analizar requisitos │ │
|
|
44
|
+
│ │ paso1 = llm_batch([ │ │
|
|
45
|
+
│ │ "Analiza los requisitos en esta spec..." │ │
|
|
46
|
+
│ │ ])[0] │ │
|
|
47
|
+
│ │ │ │
|
|
48
|
+
│ │ # Paso 2: Diseñar (usando resultado paso1) │ │
|
|
49
|
+
│ │ paso2 = llm_batch([ │ │
|
|
50
|
+
│ │ f"Dado estos requisitos: {paso1[:2000]}" │ │
|
|
51
|
+
│ │ f"Diseña la arquitectura..." │ │
|
|
52
|
+
│ │ ])[0] │ │
|
|
53
|
+
│ │ │ │
|
|
54
|
+
│ │ # Paso 3: Validar en paralelo │ │
|
|
55
|
+
│ │ validaciones = llm_batch([ │ │
|
|
56
|
+
│ │ f"Valida que {paso2} cubre {paso1}", │ │
|
|
57
|
+
│ │ f"Identifica gaps en el diseño {paso2}", │ │
|
|
58
|
+
│ │ f"Evalúa riesgos del diseño {paso2}" │ │
|
|
59
|
+
│ │ ]) │ │
|
|
60
|
+
│ │ │ │
|
|
61
|
+
│ │ # El RLM principal NUNCA vio los documentos │ │
|
|
62
|
+
│ │ # completos — los sub-LLMs los procesaron │ │
|
|
63
|
+
│ │ # y devolvieron resúmenes concisos │ │
|
|
64
|
+
│ │ │ │
|
|
65
|
+
│ │ respuesta["contenido"] = sintetizar(...) │ │
|
|
66
|
+
│ │ respuesta["lista"] = True │ │
|
|
67
|
+
│ └─────────────────────────────────────────────┘ │
|
|
68
|
+
└─────────────────────────────────────────────────────┘
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Proceso
|
|
72
|
+
|
|
73
|
+
### 1. Carga de Datos al Entorno
|
|
74
|
+
|
|
75
|
+
El problema y todo el contexto se cargan al **REPL Python**, NO al contexto del LLM principal:
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
# Los datos están disponibles programáticamente
|
|
79
|
+
# pero NO en el contexto del RLM
|
|
80
|
+
datos_entrada = env.input_data # spec, PRD, código, etc.
|
|
81
|
+
|
|
82
|
+
# El RLM solo ve lo que explícitamente imprime
|
|
83
|
+
print(datos_entrada[:500]) # Ver solo un fragmento
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 2. Descomposición en Pasos
|
|
87
|
+
|
|
88
|
+
El RLM escribe código Python para organizar la cadena de razonamiento:
|
|
89
|
+
|
|
90
|
+
```python
|
|
91
|
+
# Definir los pasos de la cadena
|
|
92
|
+
pasos = [
|
|
93
|
+
"Analizar los requisitos funcionales y no-funcionales",
|
|
94
|
+
"Identificar los componentes técnicos necesarios",
|
|
95
|
+
"Diseñar las interfaces entre componentes",
|
|
96
|
+
"Evaluar alternativas de implementación",
|
|
97
|
+
"Validar el diseño contra los requisitos"
|
|
98
|
+
]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 3. Ejecución con Sub-LLMs Frescos
|
|
102
|
+
|
|
103
|
+
Cada paso se ejecuta con un sub-LLM que tiene **contexto fresco** y acceso a herramientas:
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
# Cada sub-LLM tiene contexto fresco
|
|
107
|
+
# → sin context rot entre pasos
|
|
108
|
+
resultado_paso1 = llm_batch([
|
|
109
|
+
f"Solo necesitas hacer esto: {pasos[0]}. "
|
|
110
|
+
f"Aquí están los datos relevantes: {datos_paso1}"
|
|
111
|
+
])[0]
|
|
112
|
+
|
|
113
|
+
# El paso siguiente recibe solo el RESUMEN del anterior
|
|
114
|
+
resultado_paso2 = llm_batch([
|
|
115
|
+
f"Contexto previo (resumen): {resultado_paso1[:2000]}. "
|
|
116
|
+
f"Tu tarea: {pasos[1]}. "
|
|
117
|
+
f"Datos adicionales: {datos_paso2}"
|
|
118
|
+
])[0]
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### 4. Paralelización donde sea Posible
|
|
122
|
+
|
|
123
|
+
Pasos independientes se ejecutan en paralelo:
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
# Pasos independientes → paralelos
|
|
127
|
+
resultados_paralelos = llm_batch([
|
|
128
|
+
f"Evalúa seguridad del diseño: {diseño}",
|
|
129
|
+
f"Evalúa rendimiento del diseño: {diseño}",
|
|
130
|
+
f"Evalúa mantenibilidad del diseño: {diseño}"
|
|
131
|
+
])
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 5. Construcción Iterativa de Respuesta
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
# La respuesta se construye gradualmente
|
|
138
|
+
respuesta["contenido"] = f"""
|
|
139
|
+
## Análisis de Requisitos
|
|
140
|
+
{resultado_paso1}
|
|
141
|
+
|
|
142
|
+
## Componentes Técnicos
|
|
143
|
+
{resultado_paso2}
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
# ...más pasos...
|
|
147
|
+
|
|
148
|
+
# Agregar validaciones
|
|
149
|
+
respuesta["contenido"] += f"""
|
|
150
|
+
## Validación
|
|
151
|
+
- Seguridad: {resultados_paralelos[0]}
|
|
152
|
+
- Rendimiento: {resultados_paralelos[1]}
|
|
153
|
+
- Mantenibilidad: {resultados_paralelos[2]}
|
|
154
|
+
"""
|
|
155
|
+
|
|
156
|
+
# Finalizar cuando esté completo
|
|
157
|
+
respuesta["lista"] = True
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Ventajas sobre Chain-of-Thought Tradicional
|
|
161
|
+
|
|
162
|
+
| Aspecto | CoT Tradicional | RLM + Context Folding |
|
|
163
|
+
|---------|-----------------|----------------------|
|
|
164
|
+
| **Context rot** | Se acumula → degrada | Cada paso es fresco |
|
|
165
|
+
| **Costo de tokens** | Lineal con pasos | El RLM principal usa pocos tokens |
|
|
166
|
+
| **Herramientas** | Todos los tokens en contexto | Solo sub-LLMs ven los tokens pesados |
|
|
167
|
+
| **Paralelización** | No posible | `llm_batch()` en paralelo |
|
|
168
|
+
| **Pérdida de info** | Resumir = perder info | Delegar ≠ perder info |
|
|
169
|
+
|
|
170
|
+
## Cuándo Usar
|
|
171
|
+
|
|
172
|
+
- Decisiones arquitectónicas complejas
|
|
173
|
+
- Análisis de trade-offs multi-dimensionales
|
|
174
|
+
- Planificación de proyectos con muchas variables
|
|
175
|
+
- Cualquier razonamiento que requiera >5 pasos encadenados
|
|
176
|
+
|
|
177
|
+
## Principios
|
|
178
|
+
|
|
179
|
+
1. **Los datos van al entorno, no al contexto** — REPL Python como buffer
|
|
180
|
+
2. **Cada paso razona con contexto fresco** — Sub-LLM dedicado
|
|
181
|
+
3. **Context folding > context summarization** — No se pierde información
|
|
182
|
+
4. **Paralelizar siempre que sea posible** — Eficiencia via `llm_batch()`
|
|
183
|
+
5. **La respuesta se construye por difusión** — Iterativa, no de una vez
|
|
184
|
+
|
|
185
|
+
## Referencia
|
|
186
|
+
|
|
187
|
+
- [PrimeIntellect: Recursive Language Models](https://www.primeintellect.ai/blog/rlm)
|
|
188
|
+
- [Context Rot Research](https://research.trychroma.com/context-rot)
|
|
189
|
+
- [Context Folding (arXiv:2510.11967)](http://arxiv.org/abs/2510.11967)
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Descomposición Recursiva con Sub-LLMs
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /razonar:rlm-descomposicion
|
|
7
|
+
|
|
8
|
+
🧠 **Modelo RLM: Descomposición Recursiva con Sub-LLMs**
|
|
9
|
+
|
|
10
|
+
Basado en el paradigma **Recursive Language Model (RLM)** de PrimeIntellect. Para problemas con inputs masivos o contextos extremadamente largos, el RLM descompone el problema programáticamente y delega sub-tareas a sub-LLMs frescos en paralelo, evitando completamente el context rot.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/razonar:rlm-descomposicion [problema complejo o codebase grande]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## El Paradigma RLM
|
|
19
|
+
|
|
20
|
+
> "En vez de ingerir directamente sus datos de entrada (potencialmente enormes), el RLM permite al LLM usar un REPL Python persistente para inspeccionar y transformar sus datos de entrada, y llamar sub-LLMs desde ese REPL."
|
|
21
|
+
> — PrimeIntellect, 2026
|
|
22
|
+
|
|
23
|
+
### El modelo NO ve los datos directamente
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
# ❌ Enfoque tradicional: cargar todo al contexto
|
|
27
|
+
# El contexto crece, la calidad baja (context rot)
|
|
28
|
+
|
|
29
|
+
# ✅ Enfoque RLM: datos en entorno externo
|
|
30
|
+
# El RLM los inspecciona programáticamente
|
|
31
|
+
datos = env.input_data # Puede ser enorme: PDFs, codebases, datasets
|
|
32
|
+
print(len(datos)) # "1,500,000 caracteres"
|
|
33
|
+
print(datos[:500]) # Solo ve un fragmento a la vez
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Arquitectura Completa
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
┌──────────────────────────────────────────────────────┐
|
|
40
|
+
│ RLM Principal │
|
|
41
|
+
│ (Orquestador Recursivo) │
|
|
42
|
+
│ │
|
|
43
|
+
│ NO ingiere los datos directamente │
|
|
44
|
+
│ NO usa herramientas directamente │
|
|
45
|
+
│ SOLO escribe código Python en el REPL │
|
|
46
|
+
│ │
|
|
47
|
+
│ ┌──────────────────────────────────────────────┐ │
|
|
48
|
+
│ │ REPL Python Persistente │ │
|
|
49
|
+
│ │ │ │
|
|
50
|
+
│ │ # 1. Inspeccionar datos de entrada │ │
|
|
51
|
+
│ │ archivos = listar_proyecto("src/") │ │
|
|
52
|
+
│ │ print(f"Archivos: {len(archivos)}") │ │
|
|
53
|
+
│ │ │ │
|
|
54
|
+
│ │ # 2. Dividir en chunks manejables │ │
|
|
55
|
+
│ │ chunks = particionar(archivos, tamaño=10) │ │
|
|
56
|
+
│ │ │ │
|
|
57
|
+
│ │ # 3. Despachar sub-LLMs en paralelo │ │
|
|
58
|
+
│ │ analisis = llm_batch([ │ │
|
|
59
|
+
│ │ f"Analiza estos archivos: {chunk}" │ │
|
|
60
|
+
│ │ for chunk in chunks │ │
|
|
61
|
+
│ │ ]) │ │
|
|
62
|
+
│ │ # Cada sub-LLM tiene: │ │
|
|
63
|
+
│ │ # - Contexto FRESCO (sin context rot) │ │
|
|
64
|
+
│ │ # - Acceso a herramientas (leer archivos, │ │
|
|
65
|
+
│ │ # ejecutar tests, buscar) │ │
|
|
66
|
+
│ │ # - Solo ve SU chunk, no todo │ │
|
|
67
|
+
│ │ │ │
|
|
68
|
+
│ │ # 4. Sintetizar hallazgos │ │
|
|
69
|
+
│ │ # Solo los RESÚMENES vuelven al RLM │ │
|
|
70
|
+
│ │ for i, resultado in enumerate(analisis): │ │
|
|
71
|
+
│ │ print(f"Chunk {i}: {resultado[:500]}") │ │
|
|
72
|
+
│ │ │ │
|
|
73
|
+
│ │ # 5. Si hay gaps, despachar más sub-LLMs │ │
|
|
74
|
+
│ │ seguimiento = llm_batch([ │ │
|
|
75
|
+
│ │ "Investiga la dependencia circular...", │ │
|
|
76
|
+
│ │ "¿Cómo se conecta el módulo auth con..." │ │
|
|
77
|
+
│ │ ]) │ │
|
|
78
|
+
│ │ │ │
|
|
79
|
+
│ │ # 6. Construir respuesta iterativamente │ │
|
|
80
|
+
│ │ respuesta["contenido"] = combinar(analisis) │ │
|
|
81
|
+
│ │ respuesta["lista"] = True │ │
|
|
82
|
+
│ └──────────────────────────────────────────────┘ │
|
|
83
|
+
│ │
|
|
84
|
+
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
|
|
85
|
+
│ │Sub 1│ │Sub 2│ │Sub 3│ │Sub 4│ │Sub N│ │
|
|
86
|
+
│ │FRESH│ │FRESH│ │FRESH│ │FRESH│ │FRESH│ │
|
|
87
|
+
│ │+tool│ │+tool│ │+tool│ │+tool│ │+tool│ │
|
|
88
|
+
│ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
|
|
89
|
+
│ ▲ EN PARALELO via llm_batch() │
|
|
90
|
+
└──────────────────────────────────────────────────────┘
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Estrategias de Descomposición
|
|
94
|
+
|
|
95
|
+
### 1. Map-Reduce (para análisis de codebases grandes)
|
|
96
|
+
|
|
97
|
+
```python
|
|
98
|
+
# MAP: Cada sub-LLM analiza un grupo de archivos
|
|
99
|
+
archivos = listar_todos("src/") # 200 archivos
|
|
100
|
+
grupos = particionar(archivos, tamaño=15)
|
|
101
|
+
|
|
102
|
+
hallazgos = llm_batch([
|
|
103
|
+
f"Analiza estos archivos y reporta: "
|
|
104
|
+
f"- Dependencias, APIs expuestas, complejidad. "
|
|
105
|
+
f"Archivos: {grupo}"
|
|
106
|
+
for grupo in grupos
|
|
107
|
+
])
|
|
108
|
+
|
|
109
|
+
# REDUCE: Sintetizar todos los hallazgos
|
|
110
|
+
sintesis = llm_batch([
|
|
111
|
+
f"Sintetiza estos {len(hallazgos)} análisis parciales "
|
|
112
|
+
f"en un reporte unificado: {hallazgos}"
|
|
113
|
+
])[0]
|
|
114
|
+
|
|
115
|
+
respuesta["contenido"] = sintesis
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 2. Divide y Conquista (para problemas particionables)
|
|
119
|
+
|
|
120
|
+
```python
|
|
121
|
+
# Dividir problema en sub-problemas independientes
|
|
122
|
+
sub_problemas = [
|
|
123
|
+
"Diseñar el modelo de datos",
|
|
124
|
+
"Diseñar la API REST",
|
|
125
|
+
"Diseñar la interfaz de usuario",
|
|
126
|
+
"Diseñar la infraestructura"
|
|
127
|
+
]
|
|
128
|
+
|
|
129
|
+
# Resolver en paralelo (cada uno con contexto fresco)
|
|
130
|
+
soluciones = llm_batch([
|
|
131
|
+
f"Resuelve este sub-problema de forma independiente: "
|
|
132
|
+
f"{sp}. Contexto del proyecto: {resumen_proyecto}"
|
|
133
|
+
for sp in sub_problemas
|
|
134
|
+
])
|
|
135
|
+
|
|
136
|
+
# Verificar coherencia entre soluciones
|
|
137
|
+
coherencia = llm_batch([
|
|
138
|
+
f"¿Las soluciones A y B son coherentes entre sí? "
|
|
139
|
+
f"A: {soluciones[i]} B: {soluciones[j]}"
|
|
140
|
+
for i, j in combinaciones_pares(len(soluciones))
|
|
141
|
+
])
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### 3. Búsqueda Binaria Semántica (para recuperación en contextos largos)
|
|
145
|
+
|
|
146
|
+
```python
|
|
147
|
+
# Para encontrar información específica en contextos enormes
|
|
148
|
+
documento = env.input_data # 500K tokens
|
|
149
|
+
mitades = [documento[:len(documento)//2],
|
|
150
|
+
documento[len(documento)//2:]]
|
|
151
|
+
|
|
152
|
+
relevancia = llm_batch([
|
|
153
|
+
f"¿Esta sección contiene info sobre '{consulta}'? "
|
|
154
|
+
f"Responde SÍ/NO y extracto relevante. Sección: {m[:5000]}"
|
|
155
|
+
for m in mitades
|
|
156
|
+
])
|
|
157
|
+
|
|
158
|
+
# Recurrir sobre la mitad relevante
|
|
159
|
+
# (recursión depth puede ser >1 en futuras versiones)
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## La Variable `respuesta`
|
|
163
|
+
|
|
164
|
+
```python
|
|
165
|
+
# Inicializada al comienzo de cada rollout
|
|
166
|
+
respuesta = {"contenido": "", "lista": False}
|
|
167
|
+
|
|
168
|
+
# El RLM puede escribir, editar, reescribir
|
|
169
|
+
# MÚLTIPLES VECES durante el proceso
|
|
170
|
+
respuesta["contenido"] = "Análisis parcial del módulo de auth..."
|
|
171
|
+
|
|
172
|
+
# Después de más procesamiento...
|
|
173
|
+
respuesta["contenido"] = f"""
|
|
174
|
+
# Análisis Completo del Codebase
|
|
175
|
+
|
|
176
|
+
## Módulo de Auth
|
|
177
|
+
{analisis_auth}
|
|
178
|
+
|
|
179
|
+
## Módulo de API
|
|
180
|
+
{analisis_api}
|
|
181
|
+
|
|
182
|
+
## Dependencias y Riesgos
|
|
183
|
+
{analisis_deps}
|
|
184
|
+
"""
|
|
185
|
+
|
|
186
|
+
# Solo cuando está satisfecho:
|
|
187
|
+
respuesta["lista"] = True # Finaliza el rollout
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Cuándo Usar
|
|
191
|
+
|
|
192
|
+
| Situación | ¿Usar RLM-Descomposición? |
|
|
193
|
+
|-----------|--------------------------|
|
|
194
|
+
| Analizar un codebase grande (>50 archivos) | ✅ Sí |
|
|
195
|
+
| Procesar documentos largos (PRDs, specs) | ✅ Sí |
|
|
196
|
+
| Migración de sistema completo | ✅ Sí |
|
|
197
|
+
| Tarea simple (1-3 archivos) | ❌ No (overhead innecesario) |
|
|
198
|
+
| Problema que cabe en un contexto | ❌ No |
|
|
199
|
+
|
|
200
|
+
## Principios del RLM (PrimeIntellect)
|
|
201
|
+
|
|
202
|
+
1. **Los datos van al entorno, NUNCA al contexto del RLM** — Esto evita context rot
|
|
203
|
+
2. **El RLM solo ve lo que imprime** — Fuerza selectividad (máx 8192 chars por print)
|
|
204
|
+
3. **Herramientas solo para sub-LLMs** — El RLM principal orquesta, no ejecuta
|
|
205
|
+
4. **Sub-LLMs siempre tienen contexto fresco** — Cada instancia es nueva
|
|
206
|
+
5. **`llm_batch()` para paralelización** — Eficiencia en procesamiento
|
|
207
|
+
6. **La respuesta se construye por difusión** — Se edita iterativamente
|
|
208
|
+
7. **Context folding > context summarization** — Delegar ≠ resumir (no se pierde info)
|
|
209
|
+
|
|
210
|
+
## Referencia
|
|
211
|
+
|
|
212
|
+
- [PrimeIntellect: Recursive Language Models — the paradigm of 2026](https://www.primeintellect.ai/blog/rlm)
|
|
213
|
+
- [Alex Zhang: Recursive Language Models (Oct 2025)](https://alexzhang13.github.io/blog/2025/rlm/)
|
|
214
|
+
- [Paper: arXiv:2512.24601](https://arxiv.org/abs/2512.24601)
|
|
215
|
+
- [Implementación: PrimeIntellect/verifiers](https://github.com/PrimeIntellect-ai/verifiers/)
|
|
216
|
+
- [Context Rot Research](https://research.trychroma.com/context-rot)
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Verificación con Sub-LLMs
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /razonar:rlm-verificacion
|
|
7
|
+
|
|
8
|
+
🧠 **Modelo RLM: Verificación con Sub-LLMs**
|
|
9
|
+
|
|
10
|
+
Basado en el paradigma **Recursive Language Model (RLM)** de PrimeIntellect. En vez de procesar todo en un solo contexto, el LLM principal actúa como orquestador: usa un REPL de Python para inspeccionar datos, delega trabajo a sub-LLMs frescos en paralelo, y construye la respuesta de forma iterativa sin contaminar su propio contexto.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/razonar:rlm-verificacion [problema con criterios verificables]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Descripción
|
|
19
|
+
|
|
20
|
+
El RLM no ingiere directamente toda la información. En su lugar:
|
|
21
|
+
|
|
22
|
+
1. El LLM principal (el **RLM**) recibe el problema en su contexto
|
|
23
|
+
2. Los datos de entrada se cargan en un **entorno externo** (REPL Python)
|
|
24
|
+
3. El RLM escribe código Python para inspeccionar, filtrar y transformar los datos
|
|
25
|
+
4. Delega trabajo pesado a **sub-LLMs frescos** usando `llm_batch()`
|
|
26
|
+
5. Las herramientas (tests, linters, etc.) solo las usan los sub-LLMs
|
|
27
|
+
6. La respuesta se construye iterativamente en una **variable `respuesta`**
|
|
28
|
+
7. Solo cuando `respuesta["lista"] = True` se finaliza el proceso
|
|
29
|
+
|
|
30
|
+
## Arquitectura
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
┌─────────────────────────────────────────────────────┐
|
|
34
|
+
│ RLM Principal │
|
|
35
|
+
│ (Orquestador) │
|
|
36
|
+
│ │
|
|
37
|
+
│ Contexto limpio — NO usa herramientas directamente │
|
|
38
|
+
│ Solo escribe código Python en el REPL │
|
|
39
|
+
│ │
|
|
40
|
+
│ ┌─────────────────────────────────────────────┐ │
|
|
41
|
+
│ │ REPL Python (Entorno) │ │
|
|
42
|
+
│ │ │ │
|
|
43
|
+
│ │ # Inspeccionar datos de entrada │ │
|
|
44
|
+
│ │ datos = cargar_contexto("specs/feature.md") │ │
|
|
45
|
+
│ │ print(datos[:500]) # Ver fragmento │ │
|
|
46
|
+
│ │ │ │
|
|
47
|
+
│ │ # Delegar verificación a sub-LLMs │ │
|
|
48
|
+
│ │ resultados = llm_batch([ │ │
|
|
49
|
+
│ │ "Ejecuta los tests y reporta resultados", │ │
|
|
50
|
+
│ │ "Revisa el código contra la spec", │ │
|
|
51
|
+
│ │ "Analiza cobertura de edge cases" │ │
|
|
52
|
+
│ │ ]) │ │
|
|
53
|
+
│ │ # Los sub-LLMs SÍ tienen herramientas: │ │
|
|
54
|
+
│ │ # ejecutar tests, leer archivos, etc. │ │
|
|
55
|
+
│ │ │ │
|
|
56
|
+
│ │ # Construir respuesta iterativamente │ │
|
|
57
|
+
│ │ respuesta["contenido"] = sintetizar(res) │ │
|
|
58
|
+
│ │ respuesta["lista"] = True # Finalizar │ │
|
|
59
|
+
│ └─────────────────────────────────────────────┘ │
|
|
60
|
+
│ │
|
|
61
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
62
|
+
│ │ Sub-LLM │ │ Sub-LLM │ │ Sub-LLM │ │
|
|
63
|
+
│ │ (fresco) │ │ (fresco) │ │ (fresco) │ │
|
|
64
|
+
│ │ │ │ │ │ │ │
|
|
65
|
+
│ │ + tests │ │ + leer │ │ + buscar │ │
|
|
66
|
+
│ │ + lint │ │ specs │ │ código │ │
|
|
67
|
+
│ └──────────┘ └──────────┘ └──────────┘ │
|
|
68
|
+
│ EN PARALELO │
|
|
69
|
+
└─────────────────────────────────────────────────────┘
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Conceptos Clave
|
|
73
|
+
|
|
74
|
+
### 1. Contexto como Recurso Escaso
|
|
75
|
+
|
|
76
|
+
El RLM trata el contexto del LLM principal como un recurso escaso. En vez de volcar toda la información en el contexto:
|
|
77
|
+
|
|
78
|
+
- Los datos de entrada se cargan al **entorno externo** (Python REPL)
|
|
79
|
+
- El RLM solo ve lo que explícitamente `print()` en el REPL (limitado a 8192 caracteres por turno)
|
|
80
|
+
- Esto **fuerza** al modelo a ser selectivo con la información que procesa
|
|
81
|
+
|
|
82
|
+
### 2. Sub-LLMs con Herramientas
|
|
83
|
+
|
|
84
|
+
Las herramientas que producen muchos tokens (tests, lectura de archivos, búsquedas web) **solo las usan los sub-LLMs**, no el RLM principal. Así:
|
|
85
|
+
|
|
86
|
+
- El RLM mantiene su contexto limpio y corto
|
|
87
|
+
- Los sub-LLMs procesan el contenido pesado y devuelven resúmenes concisos
|
|
88
|
+
- Cada sub-LLM tiene **contexto fresco** → sin context rot
|
|
89
|
+
|
|
90
|
+
### 3. Variable `respuesta` (Diffusion-style)
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
respuesta = {"contenido": "", "lista": False}
|
|
94
|
+
|
|
95
|
+
# El RLM puede escribir, editar y reescribir
|
|
96
|
+
# la respuesta múltiples veces a lo largo del proceso
|
|
97
|
+
respuesta["contenido"] = "Resultado parcial..."
|
|
98
|
+
# ... más procesamiento ...
|
|
99
|
+
respuesta["contenido"] = "Resultado refinado con más datos..."
|
|
100
|
+
# Solo cuando está satisfecho:
|
|
101
|
+
respuesta["lista"] = True # Finaliza el rollout
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 4. Llamadas Paralelas con `llm_batch()`
|
|
105
|
+
|
|
106
|
+
```python
|
|
107
|
+
# Despachar múltiples sub-LLMs en paralelo
|
|
108
|
+
resultados = llm_batch([
|
|
109
|
+
"Ejecuta test_auth.py y reporta qué tests pasan y cuáles fallan",
|
|
110
|
+
"Lee la spec CrearUsuario.feature y lista los escenarios",
|
|
111
|
+
"Revisa el código de AuthService.ts contra los criterios"
|
|
112
|
+
])
|
|
113
|
+
|
|
114
|
+
# Cada sub-LLM trabaja independientemente con contexto fresco
|
|
115
|
+
# y herramientas propias (test runner, file reader, etc.)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Proceso para Verificación de Código
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
1. CARGAR contexto en entorno Python
|
|
122
|
+
- Specs, criterios de aceptación, código fuente
|
|
123
|
+
- NO en el contexto del RLM → en variables Python
|
|
124
|
+
|
|
125
|
+
2. INSPECCIONAR selectivamente
|
|
126
|
+
- print() solo las partes relevantes
|
|
127
|
+
- Filtrar y transformar datos con Python
|
|
128
|
+
|
|
129
|
+
3. DELEGAR verificación a sub-LLMs en paralelo
|
|
130
|
+
- Sub-LLM 1: Ejecutar tests → reportar pasan/fallan
|
|
131
|
+
- Sub-LLM 2: Comparar código vs spec → reportar cumplimiento
|
|
132
|
+
- Sub-LLM 3: Analizar edge cases → reportar cobertura
|
|
133
|
+
(Los sub-LLMs SÍ tienen las herramientas)
|
|
134
|
+
|
|
135
|
+
4. SINTETIZAR resultados
|
|
136
|
+
- Combinar y cruzar hallazgos de los sub-LLMs
|
|
137
|
+
- Identificar inconsistencias que requieran más investigación
|
|
138
|
+
|
|
139
|
+
5. ITERAR si es necesario
|
|
140
|
+
- Si hay gaps → despachar más sub-LLMs focalizados
|
|
141
|
+
- Si hay contradicciones → verificación cruzada
|
|
142
|
+
|
|
143
|
+
6. FINALIZAR
|
|
144
|
+
- Escribir respuesta["contenido"] con resultado sintetizado
|
|
145
|
+
- Establecer respuesta["lista"] = True
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Cuándo Usar
|
|
149
|
+
|
|
150
|
+
| Situación | ¿Usar RLM-Verificación? |
|
|
151
|
+
|-----------|------------------------|
|
|
152
|
+
| Verificar código contra specs | ✅ Sí |
|
|
153
|
+
| Tests que producen mucho output | ✅ Sí (sub-LLMs manejan el output) |
|
|
154
|
+
| Código simple sin specs | ❌ No |
|
|
155
|
+
| Exploración abierta | ❌ No (usar RLM-Investigación) |
|
|
156
|
+
|
|
157
|
+
## Principios (del paradigma PrimeIntellect)
|
|
158
|
+
|
|
159
|
+
1. **El RLM nunca usa herramientas directamente** — Delega a sub-LLMs
|
|
160
|
+
2. **Contexto fresco para cada sub-LLM** — Sin acumulación de context rot
|
|
161
|
+
3. **Los datos van al entorno, no al contexto** — Python REPL como buffer
|
|
162
|
+
4. **La respuesta se construye por difusión** — Escritura iterativa, no de una vez
|
|
163
|
+
5. **Paralelización siempre que sea posible** — `llm_batch()` para eficiencia
|
|
164
|
+
|
|
165
|
+
## Referencia
|
|
166
|
+
|
|
167
|
+
- [PrimeIntellect: Recursive Language Models](https://www.primeintellect.ai/blog/rlm)
|
|
168
|
+
- [Paper original RLM (Alex Zhang, Oct 2025)](https://alexzhang13.github.io/blog/2025/rlm/)
|
|
169
|
+
- [Implementación en verifiers](https://github.com/PrimeIntellect-ai/verifiers/)
|