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,91 @@
|
|
|
1
|
+
# Habilidad: Cambio como Carpeta (Change-as-Folder)
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Organización
|
|
5
|
+
**Tipo:** Rígida
|
|
6
|
+
|
|
7
|
+
> Adaptado de OpenSpec (Fission-AI/OpenSpec) — sistema de cambios como carpetas.
|
|
8
|
+
|
|
9
|
+
## Cómo Mejora el Framework
|
|
10
|
+
|
|
11
|
+
Cada cambio (feature, bugfix, refactor) se empaqueta como una **carpeta autocontenida** con todo lo necesario para entenderlo e implementarlo.
|
|
12
|
+
|
|
13
|
+
## Estructura
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
.especdev/
|
|
17
|
+
└── cambios/
|
|
18
|
+
├── agregar-oauth/ # Cambio activo
|
|
19
|
+
│ ├── propuesta.md # POR QUÉ este cambio
|
|
20
|
+
│ ├── specs/ # QUÉ cambia (delta specs)
|
|
21
|
+
│ │ └── auth-oauth.delta.md
|
|
22
|
+
│ ├── diseño.md # CÓMO se construye
|
|
23
|
+
│ └── tareas.md # Plan de implementación
|
|
24
|
+
│
|
|
25
|
+
├── corregir-timeout-login/ # Otro cambio activo
|
|
26
|
+
│ ├── propuesta.md
|
|
27
|
+
│ ├── specs/
|
|
28
|
+
│ └── tareas.md # (sin diseño — era simple)
|
|
29
|
+
│
|
|
30
|
+
└── archivo/ # Cambios completados
|
|
31
|
+
└── 2026-03-21-agregar-logout/
|
|
32
|
+
├── propuesta.md
|
|
33
|
+
├── specs/
|
|
34
|
+
├── diseño.md
|
|
35
|
+
├── tareas.md
|
|
36
|
+
└── metadata.json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Ventajas
|
|
40
|
+
|
|
41
|
+
| Sin carpetas | Con carpetas |
|
|
42
|
+
|-------------|-------------|
|
|
43
|
+
| Artefactos sueltos por todo el repo | Todo agrupado por cambio |
|
|
44
|
+
| No se sabe qué pertenece a qué | Cada cambio es autocontenido |
|
|
45
|
+
| Difícil trabajar en paralelo | Múltiples cambios activos |
|
|
46
|
+
| No se puede "pausar" un cambio | Context switching natural |
|
|
47
|
+
|
|
48
|
+
## Cambios Paralelos
|
|
49
|
+
|
|
50
|
+
Puedes tener múltiples cambios activos simultáneamente:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
.especdev/cambios/
|
|
54
|
+
├── agregar-oauth/ ← en progreso (70%)
|
|
55
|
+
├── corregir-timeout/ ← listo para implementar
|
|
56
|
+
└── mejorar-performance/ ← en exploración
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Context Switching
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Trabajando en oauth...
|
|
63
|
+
/especdev:aplicar agregar-oauth
|
|
64
|
+
|
|
65
|
+
# Interrupción urgente
|
|
66
|
+
/especdev:aplicar corregir-timeout
|
|
67
|
+
|
|
68
|
+
# Volver a oauth
|
|
69
|
+
/especdev:aplicar agregar-oauth
|
|
70
|
+
# → Retoma donde se quedó (tarea 3/5)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Archivado Masivo
|
|
74
|
+
|
|
75
|
+
Cuando tienes múltiples cambios completados:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
/especdev:archivar --masivo
|
|
79
|
+
|
|
80
|
+
# Detecta conflictos si múltiples cambios tocan las mismas specs
|
|
81
|
+
# Resuelve en orden cronológico
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Ciclo de Vida
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
PROPUESTO → EN PROGRESO → IMPLEMENTADO → ARCHIVADO
|
|
88
|
+
│ │ │ │
|
|
89
|
+
propuesta.md diseño.md código listo metadata.json
|
|
90
|
+
specs/ tareas.md tests pasan → archivo/
|
|
91
|
+
```
|
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
# Habilidad: CodeRAG (Retrieval-Augmented Generation para Código)
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Contexto
|
|
5
|
+
**Tipo:** Flexible
|
|
6
|
+
|
|
7
|
+
> Adaptado de DeepCode (HKUDS/DeepCode) — CodeRAG System con dependency graphs y semantic analysis.
|
|
8
|
+
|
|
9
|
+
## Cómo Mejora el Framework
|
|
10
|
+
|
|
11
|
+
Don Cheli tiene memoria persistente (Engram) para decisiones y convenciones, pero carece de un sistema para **indexar y recuperar patrones de código relevantes** de repos de referencia. CodeRAG permite inyectar conocimiento de código existente durante la generación, sin cargar repos completos en contexto.
|
|
12
|
+
|
|
13
|
+
## El Concepto
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
Sin CodeRAG:
|
|
17
|
+
Tarea: "Implementar webhook handler"
|
|
18
|
+
Agente: Genera desde cero (posibles anti-patrones)
|
|
19
|
+
|
|
20
|
+
Con CodeRAG:
|
|
21
|
+
Tarea: "Implementar webhook handler"
|
|
22
|
+
CodeRAG: Busca patrones similares → encuentra 3 implementaciones
|
|
23
|
+
Agente: Genera informado por mejores prácticas reales
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Arquitectura
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
Repositorio(s) de Referencia
|
|
30
|
+
│
|
|
31
|
+
▼
|
|
32
|
+
┌─────────────────────┐
|
|
33
|
+
│ 1. Indexación │ Escanear → extraer → clasificar
|
|
34
|
+
│ - Dependencias │
|
|
35
|
+
│ - Patrones │
|
|
36
|
+
│ - APIs │
|
|
37
|
+
└────────┬────────────┘
|
|
38
|
+
│
|
|
39
|
+
▼
|
|
40
|
+
┌─────────────────────┐
|
|
41
|
+
│ 2. Índice Local │ .especdev/code-rag/
|
|
42
|
+
│ - patterns.json │ Patrones indexados
|
|
43
|
+
│ - deps.json │ Grafo de dependencias
|
|
44
|
+
│ - apis.json │ APIs y contratos
|
|
45
|
+
└────────┬────────────┘
|
|
46
|
+
│
|
|
47
|
+
▼
|
|
48
|
+
┌─────────────────────┐
|
|
49
|
+
│ 3. Recuperación │ Query → match → inject
|
|
50
|
+
│ - Por similitud │
|
|
51
|
+
│ - Por dependencia │
|
|
52
|
+
│ - Por API │
|
|
53
|
+
└─────────────────────┘
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Pipeline de Indexación
|
|
57
|
+
|
|
58
|
+
### Paso 1: Seleccionar Fuentes
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
# .especdev/code-rag/fuentes.yaml
|
|
62
|
+
fuentes:
|
|
63
|
+
- tipo: local
|
|
64
|
+
ruta: "../proyecto-hermano"
|
|
65
|
+
descripcion: "Proyecto con patrones similares"
|
|
66
|
+
|
|
67
|
+
- tipo: github
|
|
68
|
+
repo: "org/proyecto-referencia"
|
|
69
|
+
branch: "main"
|
|
70
|
+
solo_directorios:
|
|
71
|
+
- "src/services/"
|
|
72
|
+
- "src/utils/"
|
|
73
|
+
descripcion: "Microservicio de referencia del equipo"
|
|
74
|
+
|
|
75
|
+
- tipo: snapshot
|
|
76
|
+
ruta: ".especdev/code-rag/snapshots/auth-pattern.ts"
|
|
77
|
+
descripcion: "Patrón de auth aprobado por el equipo"
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Paso 2: Extraer Patrones
|
|
81
|
+
|
|
82
|
+
Para cada fuente, se extraen:
|
|
83
|
+
|
|
84
|
+
| Artefacto | Qué Captura | Ejemplo |
|
|
85
|
+
|-----------|-------------|---------|
|
|
86
|
+
| **Patrones** | Estructuras repetidas | Factory pattern, Repository pattern |
|
|
87
|
+
| **Dependencias** | Grafo de imports | `auth.ts` → `jwt.ts` → `crypto.ts` |
|
|
88
|
+
| **APIs** | Contratos públicos | `createUser(data: UserInput): Promise<User>` |
|
|
89
|
+
| **Convenciones** | Naming, estructura | snake_case, carpeta por feature |
|
|
90
|
+
| **Error handling** | Estrategias de manejo | Custom exceptions, error boundaries |
|
|
91
|
+
|
|
92
|
+
### Paso 3: Clasificar y Almacenar
|
|
93
|
+
|
|
94
|
+
```json
|
|
95
|
+
// .especdev/code-rag/patterns.json
|
|
96
|
+
{
|
|
97
|
+
"patterns": [
|
|
98
|
+
{
|
|
99
|
+
"id": "webhook-handler",
|
|
100
|
+
"tipo": "architectural",
|
|
101
|
+
"nombre": "Webhook Handler con Verificación",
|
|
102
|
+
"fuente": "org/proyecto-referencia:src/services/webhook.ts",
|
|
103
|
+
"tags": ["webhook", "security", "async"],
|
|
104
|
+
"complejidad": "media",
|
|
105
|
+
"snippet": "// Extracto relevante (< 50 líneas)",
|
|
106
|
+
"dependencias": ["crypto", "queue"],
|
|
107
|
+
"notas": "Incluye verificación de firma HMAC"
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Recuperación Contextual
|
|
114
|
+
|
|
115
|
+
### Cuándo Recuperar
|
|
116
|
+
|
|
117
|
+
CodeRAG se activa automáticamente durante:
|
|
118
|
+
|
|
119
|
+
| Momento | Trigger |
|
|
120
|
+
|---------|---------|
|
|
121
|
+
| `/especdev:planificar-tecnico` | Buscar patrones arquitectónicos relevantes |
|
|
122
|
+
| `/especdev:implementar` | Inyectar snippets de referencia |
|
|
123
|
+
| `/especdev:desglosar` | Informar complejidad real basada en código similar |
|
|
124
|
+
| Manual | `Consulta CodeRAG: <query>` |
|
|
125
|
+
|
|
126
|
+
### Cómo Recuperar
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
1. Extraer keywords de la tarea actual
|
|
130
|
+
2. Buscar en el índice por:
|
|
131
|
+
a. Tags coincidentes (exacto)
|
|
132
|
+
b. Similitud de nombre/descripción (fuzzy)
|
|
133
|
+
c. Dependencias compartidas (grafo)
|
|
134
|
+
3. Rankear por relevancia
|
|
135
|
+
4. Inyectar top-3 como contexto (máx 200 líneas total)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Formato de Inyección
|
|
139
|
+
|
|
140
|
+
```markdown
|
|
141
|
+
## Referencia CodeRAG (3 patrones relevantes)
|
|
142
|
+
|
|
143
|
+
### 1. Webhook Handler con Verificación (relevancia: 0.92)
|
|
144
|
+
Fuente: org/proyecto-referencia:src/services/webhook.ts
|
|
145
|
+
```typescript
|
|
146
|
+
// Extracto: verificación de firma + procesamiento async
|
|
147
|
+
export async function handleWebhook(req: Request): Promise<void> {
|
|
148
|
+
const signature = req.headers['x-webhook-signature'];
|
|
149
|
+
if (!verifySignature(req.body, signature, secret)) {
|
|
150
|
+
throw new UnauthorizedError('Invalid webhook signature');
|
|
151
|
+
}
|
|
152
|
+
await queue.enqueue('webhook', req.body);
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 2. ... (más patrones)
|
|
157
|
+
|
|
158
|
+
> Nota: Estos son patrones de REFERENCIA, no código para copiar directamente.
|
|
159
|
+
> Adaptar al contexto y convenciones del proyecto actual.
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Grafo de Conocimiento (LightRAG)
|
|
163
|
+
|
|
164
|
+
> Mejorado con conceptos de [LightRAG](https://github.com/HKUDS/LightRAG) — Retrieval dual-level con grafo de entidades y relaciones.
|
|
165
|
+
|
|
166
|
+
### Enfoque Dual-Level
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
Query
|
|
170
|
+
├─→ Traversal de grafo (relaciones entre entidades)
|
|
171
|
+
│ └─→ Nodo A → usa → Nodo B → extiende → Nodo C
|
|
172
|
+
│
|
|
173
|
+
└─→ Búsqueda semántica (similitud por tags/nombre)
|
|
174
|
+
└─→ Match fuzzy por descripción
|
|
175
|
+
|
|
176
|
+
├─→ Combinar resultados con contexto relacional
|
|
177
|
+
└─→ Inyectar top-3 con grafo de dependencias incluido
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Entidades y Relaciones
|
|
181
|
+
|
|
182
|
+
El grafo extrae automáticamente:
|
|
183
|
+
|
|
184
|
+
| Entidad | Ejemplos |
|
|
185
|
+
|---------|----------|
|
|
186
|
+
| **Función** | `handleWebhook`, `createUser` |
|
|
187
|
+
| **Clase** | `AuthService`, `UserRepository` |
|
|
188
|
+
| **Módulo** | `src/services/auth`, `src/utils/jwt` |
|
|
189
|
+
| **Patrón** | Factory, Repository, Observer |
|
|
190
|
+
| **Interfaz** | `UserInput`, `WebhookPayload` |
|
|
191
|
+
|
|
192
|
+
| Relación | Significado |
|
|
193
|
+
|----------|-----------|
|
|
194
|
+
| `calls` | Función A invoca función B |
|
|
195
|
+
| `extends` | Clase A hereda de clase B |
|
|
196
|
+
| `implements` | Clase A implementa interfaz B |
|
|
197
|
+
| `imports` | Módulo A importa desde módulo B |
|
|
198
|
+
| `composes` | Patrón A se compone con patrón B |
|
|
199
|
+
| `depends_on` | Componente A depende de componente B |
|
|
200
|
+
|
|
201
|
+
### Queries Multi-Nivel
|
|
202
|
+
|
|
203
|
+
| Modo | Qué busca | Ejemplo |
|
|
204
|
+
|------|----------|---------|
|
|
205
|
+
| **Local** | Contexto específico de un módulo | "error handling en auth service" |
|
|
206
|
+
| **Global** | Patrones cross-módulo | "todas las implementaciones de Factory" |
|
|
207
|
+
| **Híbrido** | Combina local + global | "auth patterns + sus dependencias" |
|
|
208
|
+
|
|
209
|
+
### Almacenamiento
|
|
210
|
+
|
|
211
|
+
```
|
|
212
|
+
.especdev/code-rag/
|
|
213
|
+
├── patterns.json # Patrones indexados
|
|
214
|
+
├── entities.json # Entidades extraídas (funciones, clases, módulos)
|
|
215
|
+
├── relations.json # Relaciones entre entidades (grafo)
|
|
216
|
+
├── deps.json # Grafo de dependencias de archivos
|
|
217
|
+
├── apis.json # APIs y contratos
|
|
218
|
+
└── fuentes.yaml # Configuración de fuentes
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
```json
|
|
222
|
+
// .especdev/code-rag/entities.json
|
|
223
|
+
{
|
|
224
|
+
"entities": [
|
|
225
|
+
{"id": "auth-service", "tipo": "service", "archivo": "src/services/auth.ts",
|
|
226
|
+
"tags": ["auth", "jwt", "security"]},
|
|
227
|
+
{"id": "jwt-util", "tipo": "utility", "archivo": "src/utils/jwt.ts",
|
|
228
|
+
"tags": ["jwt", "crypto", "token"]}
|
|
229
|
+
]
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// .especdev/code-rag/relations.json
|
|
233
|
+
{
|
|
234
|
+
"relations": [
|
|
235
|
+
{"from": "auth-service", "to": "jwt-util", "tipo": "imports"},
|
|
236
|
+
{"from": "auth-service", "to": "user-model", "tipo": "depends_on"},
|
|
237
|
+
{"from": "auth-handler", "to": "auth-service", "tipo": "calls"}
|
|
238
|
+
]
|
|
239
|
+
}
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Ventaja sobre RAG tradicional
|
|
243
|
+
|
|
244
|
+
```
|
|
245
|
+
RAG tradicional:
|
|
246
|
+
Query: "async error handling"
|
|
247
|
+
→ Busca por similitud → Devuelve snippets sueltos
|
|
248
|
+
|
|
249
|
+
CodeRAG + LightRAG:
|
|
250
|
+
Query: "async error handling"
|
|
251
|
+
→ Extrae entidades: [error_handler, async_fn, middleware]
|
|
252
|
+
→ Traversa grafo: async_fn --calls--> error_handler --wraps--> middleware
|
|
253
|
+
→ Devuelve: snippet + contexto relacional + patrones asociados
|
|
254
|
+
→ Bonus: "Este patrón se compone con logging middleware"
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Gestión del Índice
|
|
258
|
+
|
|
259
|
+
| Acción | Cuándo |
|
|
260
|
+
|--------|--------|
|
|
261
|
+
| **Crear** | `/especdev:iniciar` si se configuran fuentes |
|
|
262
|
+
| **Actualizar** | Manualmente o al detectar cambios en fuentes |
|
|
263
|
+
| **Limpiar** | `/especdev:archivar` al completar proyecto |
|
|
264
|
+
| **Exportar** | Para compartir índice entre proyectos similares |
|
|
265
|
+
|
|
266
|
+
## Límites de Tokens
|
|
267
|
+
|
|
268
|
+
| Elemento | Límite |
|
|
269
|
+
|----------|--------|
|
|
270
|
+
| Snippet por patrón | 50 líneas máximo |
|
|
271
|
+
| Patrones inyectados por query | 3 máximo |
|
|
272
|
+
| Contexto total inyectado | 200 líneas máximo |
|
|
273
|
+
| Tamaño del índice | 500 patrones máximo |
|
|
274
|
+
|
|
275
|
+
## Integración con Habilidades Existentes
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
CodeRAG ←→ Mapa Arquitectónico
|
|
279
|
+
El mapa usa el grafo de dependencias de CodeRAG
|
|
280
|
+
|
|
281
|
+
CodeRAG ←→ Ingeniería de Contexto
|
|
282
|
+
CodeRAG respeta los límites de contexto
|
|
283
|
+
|
|
284
|
+
CodeRAG ←→ Memoria Persistente (Engram)
|
|
285
|
+
Decisiones sobre patrones se guardan en Engram
|
|
286
|
+
|
|
287
|
+
CodeRAG ←→ Generador de Specs
|
|
288
|
+
Specs se informan con patrones existentes
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
## Guardrails
|
|
292
|
+
|
|
293
|
+
- **Nunca** copiar código de referencia directamente — siempre adaptar
|
|
294
|
+
- **Nunca** indexar archivos con credenciales o secretos
|
|
295
|
+
- **Nunca** exceder los límites de inyección (200 líneas)
|
|
296
|
+
- **Siempre** indicar la fuente del patrón inyectado
|
|
297
|
+
- **Siempre** verificar que el patrón sigue siendo válido (fuente puede cambiar)
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Habilidad: Contabilidad de Tokens
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Observabilidad
|
|
5
|
+
**Tipo:** Flexible
|
|
6
|
+
|
|
7
|
+
> Adaptado de OpenAI Symphony §13.5 — Session Metrics and Token Accounting.
|
|
8
|
+
|
|
9
|
+
## Cómo Mejora el Framework
|
|
10
|
+
|
|
11
|
+
Sin contabilidad de tokens, se pierde visibilidad sobre:
|
|
12
|
+
- Cuánto cuesta cada feature
|
|
13
|
+
- Qué tareas consumen más recursos
|
|
14
|
+
- Dónde optimizar el uso de tokens
|
|
15
|
+
- Si se está rompiendo el presupuesto
|
|
16
|
+
|
|
17
|
+
## Métricas por Sesión
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"sesion_id": "sess_20260321_163000",
|
|
22
|
+
"tarea": "PROJ-42",
|
|
23
|
+
"inicio": "2026-03-21T16:30:00",
|
|
24
|
+
"fin": "2026-03-21T16:37:23",
|
|
25
|
+
"duracion_segundos": 443,
|
|
26
|
+
"tokens": {
|
|
27
|
+
"input": 45230,
|
|
28
|
+
"output": 12890,
|
|
29
|
+
"total": 58120,
|
|
30
|
+
"cache_hit": 8200
|
|
31
|
+
},
|
|
32
|
+
"turnos": 15,
|
|
33
|
+
"reintentos": 0,
|
|
34
|
+
"modelo": "sonnet",
|
|
35
|
+
"costo_estimado_usd": 0.14,
|
|
36
|
+
"archivos_modificados": 8,
|
|
37
|
+
"lineas_agregadas": 234,
|
|
38
|
+
"lineas_eliminadas": 45,
|
|
39
|
+
"tests_ejecutados": 47,
|
|
40
|
+
"tests_pasaron": 47
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Métricas Acumulativas
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
# Dashboard de Tokens — Marzo 2026
|
|
48
|
+
|
|
49
|
+
## Totales del Mes
|
|
50
|
+
| Métrica | Valor |
|
|
51
|
+
|---------|-------|
|
|
52
|
+
| Sesiones | 34 |
|
|
53
|
+
| Tokens totales | 1,245,890 |
|
|
54
|
+
| Costo estimado | $3.42 |
|
|
55
|
+
| Tiempo total | 4h 12m |
|
|
56
|
+
| Features completadas | 8 |
|
|
57
|
+
| Bugs corregidos | 12 |
|
|
58
|
+
|
|
59
|
+
## Costo por Feature (Top 5)
|
|
60
|
+
| Feature | Tokens | Costo | Duración |
|
|
61
|
+
|---------|--------|-------|----------|
|
|
62
|
+
| OAuth login | 158,000 | $0.42 | 32m |
|
|
63
|
+
| Dashboard UI | 234,000 | $0.65 | 48m |
|
|
64
|
+
| Email service | 89,000 | $0.24 | 18m |
|
|
65
|
+
| DB migrations | 45,000 | $0.12 | 9m |
|
|
66
|
+
| API pagination | 67,000 | $0.18 | 14m |
|
|
67
|
+
|
|
68
|
+
## Eficiencia
|
|
69
|
+
- Costo promedio por feature: $0.43
|
|
70
|
+
- Costo promedio por bug: $0.08
|
|
71
|
+
- Ratio tokens/línea de código: 42
|
|
72
|
+
- Tasa de reintentos: 8%
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Alertas de Presupuesto
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
# .especdev/config.yaml
|
|
79
|
+
tokens:
|
|
80
|
+
presupuesto_diario: 500000
|
|
81
|
+
presupuesto_mensual: 5000000
|
|
82
|
+
alertar_al: 80 # % del presupuesto
|
|
83
|
+
modelo_preferido_bajo_presupuesto: "haiku"
|
|
84
|
+
pausar_al_exceder: false # true = pausar, false = advertir
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Integración con Prueba de Trabajo
|
|
88
|
+
|
|
89
|
+
Cada `prueba-trabajo.md` incluye automáticamente la sección de tokens,
|
|
90
|
+
vinculando costo con resultado para análisis ROI.
|
|
91
|
+
|
|
92
|
+
## Archivo de Métricas
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
.especdev/metricas/
|
|
96
|
+
├── 2026-03/
|
|
97
|
+
│ ├── sesiones.jsonl # Una línea JSON por sesión
|
|
98
|
+
│ ├── resumen-diario.md # Generado automáticamente
|
|
99
|
+
│ └── resumen-mensual.md # Generado al final del mes
|
|
100
|
+
```
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Habilidad: Delta Specs — Specs Incrementales
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Especificación
|
|
5
|
+
**Tipo:** Rígida
|
|
6
|
+
|
|
7
|
+
> Adaptado de OpenSpec (Fission-AI/OpenSpec) — concepto clave para desarrollo brownfield.
|
|
8
|
+
|
|
9
|
+
## Cómo Mejora el Framework
|
|
10
|
+
|
|
11
|
+
Sin delta specs, cada cambio requiere reescribir la spec completa. Esto es:
|
|
12
|
+
- Costoso en tokens
|
|
13
|
+
- Propenso a errores (se puede borrar algo sin querer)
|
|
14
|
+
- Inviable en proyectos grandes con muchas specs
|
|
15
|
+
|
|
16
|
+
Con delta specs, describes **QUÉ CAMBIA** — no reestas todo.
|
|
17
|
+
|
|
18
|
+
## Qué es un Delta Spec
|
|
19
|
+
|
|
20
|
+
Un delta spec describe la **diferencia** entre el estado actual y el estado deseado de una spec:
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
# Delta Spec: Agregar OAuth a Autenticación
|
|
24
|
+
|
|
25
|
+
## Spec Base
|
|
26
|
+
specs/auth/spec.md
|
|
27
|
+
|
|
28
|
+
## Cambios
|
|
29
|
+
|
|
30
|
+
### Nuevo Requisito: Login Social
|
|
31
|
+
El sistema DEBE permitir autenticación via Google y GitHub OAuth2.
|
|
32
|
+
|
|
33
|
+
#### Escenario: Login con Google exitoso
|
|
34
|
+
- DADO un usuario con cuenta de Google
|
|
35
|
+
- CUANDO selecciona "Entrar con Google"
|
|
36
|
+
- ENTONCES recibe un JWT token válido
|
|
37
|
+
- Y su perfil se completa con datos de Google
|
|
38
|
+
|
|
39
|
+
#### Escenario: Vincular OAuth a cuenta existente
|
|
40
|
+
- DADO un usuario registrado con email
|
|
41
|
+
- CUANDO intenta login con Google usando el mismo email
|
|
42
|
+
- ENTONCES se vincula la cuenta OAuth a la existente
|
|
43
|
+
- Y puede usar ambos métodos de login
|
|
44
|
+
|
|
45
|
+
### Requisito Modificado: Session Expiration
|
|
46
|
+
- ANTES: "Las sesiones expiran después de 30 minutos"
|
|
47
|
+
- AHORA: "Las sesiones expiran después de 30 minutos para login local,
|
|
48
|
+
y según configuración del provider para OAuth"
|
|
49
|
+
|
|
50
|
+
### Requisito Sin Cambios
|
|
51
|
+
- User Authentication (sin cambios)
|
|
52
|
+
- Password Reset (sin cambios)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Por Qué Deltas en Vez de Specs Completas
|
|
56
|
+
|
|
57
|
+
| Aspecto | Spec Completa | Delta Spec |
|
|
58
|
+
|---------|--------------|------------|
|
|
59
|
+
| **Tokens** | Reescribir TODO (~2000 tokens) | Solo lo nuevo (~500 tokens) |
|
|
60
|
+
| **Riesgo** | Borrar algo sin querer | Solo se toca lo que cambia |
|
|
61
|
+
| **Revisión** | Comparar todo el doc | Ver solo los cambios |
|
|
62
|
+
| **Merge** | Reemplazar | Aplicar incrementalmente |
|
|
63
|
+
| **Brownfield** | Difícil con specs grandes | Natural y escalable |
|
|
64
|
+
|
|
65
|
+
## El Ciclo Virtuoso
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
1. Specs describen comportamiento actual
|
|
69
|
+
2. Delta specs proponen modificaciones
|
|
70
|
+
3. Implementación hace los cambios reales
|
|
71
|
+
4. /especdev:archivar merge deltas en specs principales
|
|
72
|
+
5. Specs ahora describen el nuevo comportamiento
|
|
73
|
+
6. Siguiente cambio se basa en specs actualizadas
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Secciones de un Delta Spec
|
|
77
|
+
|
|
78
|
+
| Sección | Contenido |
|
|
79
|
+
|---------|-----------|
|
|
80
|
+
| `## Spec Base` | Referencia a la spec que se modifica |
|
|
81
|
+
| `### Nuevo Requisito:` | Requisitos completamente nuevos |
|
|
82
|
+
| `### Requisito Modificado:` | Requisitos existentes que cambian (ANTES/AHORA) |
|
|
83
|
+
| `### Requisito Eliminado:` | Requisitos que se retiran |
|
|
84
|
+
| `### Sin Cambios` | Requisitos que permanecen igual (para contexto) |
|
|
85
|
+
|
|
86
|
+
## Integración con el Pipeline
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
/especdev:proponer → propuesta.md
|
|
90
|
+
→ /especdev:especificar → delta-spec.md (NO spec completa)
|
|
91
|
+
→ /especdev:implementar → código
|
|
92
|
+
→ /especdev:archivar → merge delta en spec principal
|
|
93
|
+
```
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Habilidad: Desarrollo por Subagentes (SDD)
|
|
2
|
+
|
|
3
|
+
**Versión:** 1.0.0
|
|
4
|
+
**Categoría:** Orquestación
|
|
5
|
+
**Tipo:** Rígida
|
|
6
|
+
|
|
7
|
+
## Propósito
|
|
8
|
+
|
|
9
|
+
Transformar ejecución monolítica en flujos de trabajo multi-agente orquestados.
|
|
10
|
+
|
|
11
|
+
## El Problema
|
|
12
|
+
|
|
13
|
+
La ejecución con un solo agente tiene limitaciones:
|
|
14
|
+
- **Contaminación de contexto:** Sesiones largas acumulan contexto irrelevante
|
|
15
|
+
- **Confusión de roles:** Mismo agente planifica, implementa y revisa
|
|
16
|
+
- **Sin perspectiva fresca:** Auto-revisión es menos efectiva
|
|
17
|
+
|
|
18
|
+
## La Solución SDD
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Controlador (Opus)
|
|
22
|
+
│
|
|
23
|
+
├── Planifica tareas
|
|
24
|
+
├── Cura contexto por tarea
|
|
25
|
+
├── Despacha a subagentes
|
|
26
|
+
├── Revisa resultados
|
|
27
|
+
└── Integra trabajo
|
|
28
|
+
|
|
29
|
+
Ejecutor (Sonnet) Revisor (Opus)
|
|
30
|
+
│ │
|
|
31
|
+
├── Contexto fresco ├── Contexto fresco
|
|
32
|
+
├── Foco en una tarea ├── Revisión independiente
|
|
33
|
+
└── Retorna estado └── Evaluación de calidad
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Principios
|
|
37
|
+
|
|
38
|
+
1. **El controlador NUNCA implementa**
|
|
39
|
+
2. **Cada subagente recibe contexto fresco**
|
|
40
|
+
3. **El contexto se cura, no se vuelca**
|
|
41
|
+
4. **Revisión de dos etapas es obligatoria**
|
|
42
|
+
5. **Máximo 3 rondas de revisión**
|