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,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Crear, probar y mejorar habilidades (skills) de forma iterativa
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:crear-skill
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Meta-skill que permite crear nuevas habilidades para Don Cheli de forma iterativa. Genera el SKILL.md, lo prueba con un prompt de test, evalúa el resultado, y propone mejoras — repitiendo el ciclo hasta lograr calidad óptima.
|
|
11
|
+
|
|
12
|
+
Compatible con el formato oficial de Anthropic Skills y con el formato HABILIDAD.md de Don Cheli.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:crear-skill "Generador de reportes semanales del equipo"
|
|
18
|
+
/especdev:crear-skill --desde-patron # Detectar tarea repetitiva y convertirla en skill
|
|
19
|
+
/especdev:crear-skill --formato anthropic # Generar solo SKILL.md (formato Anthropic)
|
|
20
|
+
/especdev:crear-skill --formato doncheli # Generar HABILIDAD.md (formato Don Cheli, default)
|
|
21
|
+
/especdev:crear-skill --formato dual # Generar ambos formatos
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Proceso (5 fases iterativas)
|
|
25
|
+
|
|
26
|
+
### Fase 1: Descubrimiento (1 min)
|
|
27
|
+
Preguntar al usuario:
|
|
28
|
+
1. **¿Qué tarea quieres automatizar?** — Descripción en lenguaje natural
|
|
29
|
+
2. **¿Con qué frecuencia la haces?** — Diaria, semanal, por PR, etc.
|
|
30
|
+
3. **¿Qué inputs necesita?** — Archivos, datos, contexto
|
|
31
|
+
4. **¿Qué output esperas?** — Formato, estructura, destino
|
|
32
|
+
5. **¿Qué grado de libertad tiene?** — Alto (texto libre), medio (pseudocódigo), bajo (script exacto)
|
|
33
|
+
|
|
34
|
+
### Fase 2: Generación del Draft (2 min)
|
|
35
|
+
Generar automáticamente:
|
|
36
|
+
- Metadata YAML (name, description) — **optimizada para matching** (esto es lo más importante)
|
|
37
|
+
- Instrucciones paso a paso en el body
|
|
38
|
+
- Ejemplos concretos con inputs/outputs reales
|
|
39
|
+
- Referencias a archivos adicionales si > 500 líneas
|
|
40
|
+
|
|
41
|
+
**Principio clave:** Solo incluir lo que Claude NO sabe. Omitir conocimiento general, lenguajes, librerías comunes. Enfocarse en reglas específicas del proyecto/empresa.
|
|
42
|
+
|
|
43
|
+
### Fase 3: Test con Prompt Real (1 min)
|
|
44
|
+
- Ejecutar la skill con un prompt de prueba proporcionado por el usuario
|
|
45
|
+
- Capturar el output completo
|
|
46
|
+
- Medir: tokens consumidos, tiempo de ejecución, calidad del resultado
|
|
47
|
+
|
|
48
|
+
### Fase 4: Evaluación (1 min)
|
|
49
|
+
Evaluar contra criterios:
|
|
50
|
+
| Criterio | Peso | Cómo se mide |
|
|
51
|
+
|----------|------|-------------|
|
|
52
|
+
| Accuracy | 40% | ¿El output es correcto y completo? |
|
|
53
|
+
| Token efficiency | 20% | ¿Cuántos tokens consumió? ¿Hay contenido innecesario? |
|
|
54
|
+
| Consistency | 20% | ¿Produce resultados consistentes con diferentes inputs? |
|
|
55
|
+
| Metadata match | 20% | ¿Se activa con los prompts correctos? ¿Falsos positivos? |
|
|
56
|
+
|
|
57
|
+
### Fase 5: Iteración (repetir hasta satisfactorio)
|
|
58
|
+
- Proponer mejoras específicas al SKILL.md
|
|
59
|
+
- Aplicar cambios
|
|
60
|
+
- Re-testear
|
|
61
|
+
- **Máximo 3 iteraciones** — si no converge, pedir feedback del usuario
|
|
62
|
+
|
|
63
|
+
## Formato de Salida — SKILL.md (Anthropic Compatible)
|
|
64
|
+
|
|
65
|
+
```yaml
|
|
66
|
+
---
|
|
67
|
+
name: Weekly Team Report Generator
|
|
68
|
+
description: Generates a structured weekly team report from standup notes and PR activity. Activate when user mentions "weekly report", "team update", or "sprint summary".
|
|
69
|
+
---
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
```markdown
|
|
73
|
+
# Weekly Team Report Generator
|
|
74
|
+
|
|
75
|
+
## Instructions
|
|
76
|
+
1. Gather standup notes from the current week
|
|
77
|
+
2. Pull PR merge activity from git log
|
|
78
|
+
3. Structure the report in three sections:
|
|
79
|
+
- Accomplishments (from merged PRs + standup highlights)
|
|
80
|
+
- Blockers (from standup blockers + open issues)
|
|
81
|
+
- Next Week (from upcoming sprint items)
|
|
82
|
+
4. Apply the team's formatting template
|
|
83
|
+
|
|
84
|
+
## Examples
|
|
85
|
+
|
|
86
|
+
### Input
|
|
87
|
+
"Generate this week's team report"
|
|
88
|
+
|
|
89
|
+
### Output
|
|
90
|
+
[Structured report following the template]
|
|
91
|
+
|
|
92
|
+
## References
|
|
93
|
+
- See `templates/weekly-report.md` for the formatting template
|
|
94
|
+
- See `reference.md` for the team's style guide
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Formato de Salida — HABILIDAD.md (Don Cheli)
|
|
98
|
+
|
|
99
|
+
```yaml
|
|
100
|
+
---
|
|
101
|
+
nombre: Generador de Reportes Semanales
|
|
102
|
+
descripcion: Genera reportes semanales del equipo desde notas de standup y actividad de PRs
|
|
103
|
+
version: 1.0.0
|
|
104
|
+
autor: [usuario]
|
|
105
|
+
tags: [reportes, equipo, productividad]
|
|
106
|
+
activacion: "reporte semanal", "actualización del equipo", "resumen de sprint"
|
|
107
|
+
grado_libertad: medio
|
|
108
|
+
---
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Best Practices (del post de Anthropic)
|
|
112
|
+
|
|
113
|
+
### Progressive Disclosure
|
|
114
|
+
La skill usa 3 capas de información:
|
|
115
|
+
1. **Metadata (YAML)** — Siempre cargada al inicio (pocos tokens). Define CUÁNDO activar.
|
|
116
|
+
2. **Body (Markdown)** — Cargada bajo demanda cuando se activa. Define QUÉ hacer.
|
|
117
|
+
3. **File References** — Cargadas solo si se necesitan. Detalles adicionales.
|
|
118
|
+
|
|
119
|
+
### Límite de 500 líneas
|
|
120
|
+
Si el SKILL.md supera 500 líneas, separar material de referencia:
|
|
121
|
+
```
|
|
122
|
+
.claude/skills/
|
|
123
|
+
mi-skill/
|
|
124
|
+
SKILL.md ← Instrucciones principales (< 500 líneas)
|
|
125
|
+
templates/ ← Archivos de plantilla
|
|
126
|
+
reference.md ← Material de referencia detallado
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Solo incluir lo que Claude no sabe
|
|
130
|
+
- ❌ No explicar cómo funciona JavaScript/Python/etc.
|
|
131
|
+
- ❌ No incluir documentación de librerías comunes
|
|
132
|
+
- ✅ Incluir reglas específicas de la empresa
|
|
133
|
+
- ✅ Incluir formatos y templates propios
|
|
134
|
+
- ✅ Incluir quirks de herramientas internas
|
|
135
|
+
- ✅ Incluir workflow steps específicos del equipo
|
|
136
|
+
|
|
137
|
+
### Grado de libertad
|
|
138
|
+
| Grado | Cuándo | Formato de instrucciones |
|
|
139
|
+
|-------|--------|-------------------------|
|
|
140
|
+
| **Alto** | Tareas creativas (redacción, diseño) | Texto libre con guidelines |
|
|
141
|
+
| **Medio** | Workflows con variaciones | Pseudocódigo con parámetros |
|
|
142
|
+
| **Bajo** | Procesos críticos sin margen de error | Scripts exactos, pocos parámetros |
|
|
143
|
+
|
|
144
|
+
## Integración
|
|
145
|
+
|
|
146
|
+
- Las skills creadas se guardan en `.claude/skills/` (formato Anthropic) o en `habilidades/` (formato Don Cheli)
|
|
147
|
+
- Compatible con el marketplace oficial de Anthropic: `https://github.com/anthropics/skills`
|
|
148
|
+
- Se pueden compartir vía `/especdev:archivar` o exportar como ZIP
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Deliberación multi-rol con tensiones explícitas para decisiones de arquitectura y trade-offs
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:debate
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Invocar una deliberación entre múltiples perspectivas en conflicto sobre una decisión técnica, de producto o de negocio. Diferente de brainstorming (generar ideas) y de mesa-redonda (explorar opciones): el debate busca TENSIÓN entre roles senior para sacar a la luz riesgos que un solo agente no genera.
|
|
11
|
+
|
|
12
|
+
Inspirado en el "Party Mode" del framework BMAD.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:debate "¿Monolito o microservicios para el MVP?"
|
|
18
|
+
/especdev:debate "¿PostgreSQL o MongoDB para este caso de uso?"
|
|
19
|
+
/especdev:debate --roles "CPO,Arquitecto,UX,Negocio"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Comportamiento
|
|
23
|
+
|
|
24
|
+
1. **Definir** la pregunta y los roles participantes (default: CPO, Arquitecto, UX)
|
|
25
|
+
2. **Cada rol presenta** su posición con argumentos concretos, datos y experiencia
|
|
26
|
+
3. **Cada rol critica** las posiciones de los demás (adversarial)
|
|
27
|
+
4. **Se identifican** los puntos de tensión irresolubles
|
|
28
|
+
5. **Se documenta** la decisión con trade-offs explícitos
|
|
29
|
+
6. **Se guarda** en `.especdev/decisiones.md`
|
|
30
|
+
|
|
31
|
+
## Roles Disponibles
|
|
32
|
+
|
|
33
|
+
### Roles de Negocio y Producto (Senior)
|
|
34
|
+
|
|
35
|
+
| Rol | Perspectiva | Prioriza |
|
|
36
|
+
|-----|-------------|----------|
|
|
37
|
+
| **CPO** (Chief Product Officer) | Visión de producto, estrategia y mercado | Product-market fit, roadmap, priorización basada en impacto, métricas de adopción |
|
|
38
|
+
| **UX Lead** | Experiencia de usuario y diseño | Usabilidad, accesibilidad (WCAG), research con usuarios, design systems, conversion funnels |
|
|
39
|
+
| **Negocio** (VP/Director) | Viabilidad comercial y estrategia | ROI, unit economics, time to revenue, ventaja competitiva, riesgos regulatorios |
|
|
40
|
+
|
|
41
|
+
### Roles Técnicos (Senior)
|
|
42
|
+
|
|
43
|
+
| Rol | Perspectiva | Prioriza |
|
|
44
|
+
|-----|-------------|----------|
|
|
45
|
+
| **Arquitecto** | Sistema y escalabilidad | Mantenibilidad, performance, extensibilidad, deuda técnica |
|
|
46
|
+
| **QA Lead** | Calidad y testing | Testability, edge cases, regression, automatización |
|
|
47
|
+
| **Seguridad** (CISO) | Protección y compliance | OWASP, datos sensibles, auth, regulaciones (GDPR, SOC2) |
|
|
48
|
+
| **DevOps** | Operaciones y deploy | Observabilidad, CI/CD, costos infra, SLAs |
|
|
49
|
+
| **DBA** | Datos y persistencia | Consistencia, queries, migraciones, backup/recovery |
|
|
50
|
+
|
|
51
|
+
### Presets de Roles
|
|
52
|
+
|
|
53
|
+
| Preset | Roles incluidos | Mejor para |
|
|
54
|
+
|--------|----------------|------------|
|
|
55
|
+
| `--preset tech` | Arquitecto, QA Lead, Seguridad, DevOps | Decisiones puramente técnicas |
|
|
56
|
+
| `--preset product` | CPO, UX Lead, Negocio | Decisiones de producto y estrategia |
|
|
57
|
+
| `--preset full` | CPO, UX Lead, Negocio, Arquitecto, QA Lead, Seguridad | Decisiones cross-funcionales |
|
|
58
|
+
| (default) | CPO, Arquitecto, UX Lead | Balance producto-técnico |
|
|
59
|
+
|
|
60
|
+
## Reglas de Engagement
|
|
61
|
+
|
|
62
|
+
### Regla Adversarial
|
|
63
|
+
Cada rol DEBE encontrar al menos un problema con cada propuesta de los demás. "No tengo objeciones" no es una respuesta válida — obliga a buscar más profundo.
|
|
64
|
+
|
|
65
|
+
### Regla de Evidencia
|
|
66
|
+
Cada argumento DEBE estar respaldado por al menos uno de:
|
|
67
|
+
- **Dato concreto**: métrica, benchmark, caso de estudio real
|
|
68
|
+
- **Experiencia**: patrón observado en proyectos similares con resultado conocido
|
|
69
|
+
- **Principio establecido**: ley, heurística o framework reconocido en la industria
|
|
70
|
+
|
|
71
|
+
Opiniones sin respaldo se marcan como `[sin evidencia]` y tienen menor peso en la decisión.
|
|
72
|
+
|
|
73
|
+
### Regla de Impacto
|
|
74
|
+
Cada rol DEBE cuantificar el impacto de su posición cuando sea posible:
|
|
75
|
+
- Negocio: revenue, costos, timeline
|
|
76
|
+
- Técnico: latencia, throughput, horas de desarrollo
|
|
77
|
+
- UX: tasa de conversión, NPS, task completion rate
|
|
78
|
+
- Producto: adoption rate, churn, time to value
|
|
79
|
+
|
|
80
|
+
## Output
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
## Debate: ¿Monolito o microservicios?
|
|
84
|
+
|
|
85
|
+
### CPO dice: Monolito
|
|
86
|
+
- Time to market es 2-3x más rápido para MVP (dato: empresas en etapa seed con monolito lanzan en promedio 40% antes — Startup Genome Report)
|
|
87
|
+
- Un solo producto coherente para los primeros 1000 usuarios
|
|
88
|
+
- ⚠️ Riesgo: si product-market fit requiere pivotar rápido, un monolito acoplado frena los cambios
|
|
89
|
+
|
|
90
|
+
### Arquitecto dice: Monolito modular
|
|
91
|
+
- Shopify procesó $5.1B en Black Friday 2023 con un monolito Ruby — la escala no requiere microservicios
|
|
92
|
+
- Módulos bien definidos permiten extraer servicios después con datos reales de carga
|
|
93
|
+
- ⚠️ Riesgo: sin disciplina en boundaries, los módulos se acoplan y la extracción futura se vuelve rewrite
|
|
94
|
+
|
|
95
|
+
### UX Lead dice: Monolito
|
|
96
|
+
- UI consistente es más fácil con un solo codebase y design system centralizado
|
|
97
|
+
- Latencia percibida menor sin hops entre servicios (p95 < 200ms vs 400ms+ con microservicios)
|
|
98
|
+
- ⚠️ Riesgo: si el monolito crece, el frontend se acopla al backend y los cambios de UX requieren deploys full
|
|
99
|
+
|
|
100
|
+
### Negocio dice: Monolito con plan de migración
|
|
101
|
+
- Costo operativo de microservicios para un equipo < 10 personas: +$3-5K/mes en infra + 30% más tiempo en DevOps
|
|
102
|
+
- Inversores en Serie A quieren ver tracción, no arquitectura — priorizar velocidad
|
|
103
|
+
- ⚠️ Riesgo: si se escala sin plan, la deuda técnica se convierte en deuda financiera (caso: Segment revirtió microservicios a monolito en 2018)
|
|
104
|
+
|
|
105
|
+
### Tensiones irresolubles
|
|
106
|
+
1. Velocidad ahora (CPO/Negocio) vs Flexibilidad futura (Arquitecto)
|
|
107
|
+
2. Consistencia de UX (UX Lead) vs Independencia de deploy (Arquitecto)
|
|
108
|
+
3. Costo operativo (Negocio) vs Escalabilidad técnica (Arquitecto)
|
|
109
|
+
|
|
110
|
+
### Decisión: Monolito modular con boundaries explícitos
|
|
111
|
+
Monolito con módulos bien separados, contratos internos entre módulos, y métricas de acoplamiento. Revisión de arquitectura al llegar a 10K usuarios o 10 developers.
|
|
112
|
+
|
|
113
|
+
### Trade-offs aceptados
|
|
114
|
+
- ✅ Time to market agresivo (CPO + Negocio satisfechos)
|
|
115
|
+
- ✅ UX consistente (UX Lead satisfecho)
|
|
116
|
+
- ✅ Testability simple (QA satisfecho)
|
|
117
|
+
- ⚠️ Requiere disciplina de boundaries desde día 1 (Arquitecto advierte)
|
|
118
|
+
- ⚠️ Punto de revisión obligatorio al escalar (Negocio + Arquitecto acuerdan)
|
|
119
|
+
```
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Dividir un blueprint técnico en tareas con TDD (RED→GREEN) y marcadores de paralelismo
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:desglosar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Convertir un blueprint técnico en una lista de tareas ordenadas con enfoque TDD (RED → GREEN → REFACTOR), marcadores de paralelismo `[P]` y fases de ejecución estandarizadas.
|
|
11
|
+
|
|
12
|
+
> Alineado con spec-kit (github/spec-kit) — formato `[ID] [P?] [Story] Descripción` y 5 fases de ejecución
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:desglosar @specs/features/<dominio>/<Feature>.plan.md
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Formato de Tareas
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
[TID] [P?] [Historia] Descripción
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
| Campo | Significado | Ejemplo |
|
|
27
|
+
|-------|-------------|---------|
|
|
28
|
+
| `TID` | ID único de tarea | `T001` |
|
|
29
|
+
| `[P]` | Paralelizable (puede ejecutarse en paralelo con otras `[P]` de la misma fase) | `[P]` o vacío |
|
|
30
|
+
| `[Historia]` | Historia de usuario asociada | `[US1]` |
|
|
31
|
+
| Descripción | Qué hacer | Crear modelo de Usuario |
|
|
32
|
+
|
|
33
|
+
## Output
|
|
34
|
+
|
|
35
|
+
Genera `specs/features/<dominio>/<Feature>.tasks.md`:
|
|
36
|
+
|
|
37
|
+
```markdown
|
|
38
|
+
# Tareas: CrearUsuario
|
|
39
|
+
|
|
40
|
+
**Feature:** usuario/CrearUsuario
|
|
41
|
+
**Plan:** specs/features/usuario/CrearUsuario.plan.md
|
|
42
|
+
**Creado:** 2026-03-21
|
|
43
|
+
|
|
44
|
+
## Formato: [TID] [P?] [Historia] Descripción
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Fase 1: Setup (Paralelizable)
|
|
49
|
+
|
|
50
|
+
Inicialización del entorno y estructura del proyecto.
|
|
51
|
+
|
|
52
|
+
- [T001] [P] Setup: Crear estructura de directorios del módulo usuario
|
|
53
|
+
- [T002] [P] Setup: Inicializar configuración de testing
|
|
54
|
+
- [T003] [P] Setup: Configurar Docker compose para tests
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Fase 2: Fundación (Secuencial después de Setup)
|
|
59
|
+
|
|
60
|
+
Infraestructura crítica que el resto del código necesita.
|
|
61
|
+
|
|
62
|
+
- [T004] [US1] RED: Escribir test para modelo Usuario
|
|
63
|
+
- [T005] [US1] GREEN: Implementar modelo Usuario con validaciones
|
|
64
|
+
- Archivos: `models/usuario.py`, `tests/unit/test_usuario.py`
|
|
65
|
+
|
|
66
|
+
- [T006] [US1] RED: Escribir test para UsuarioRepository (crear/buscar)
|
|
67
|
+
- [T007] [US1] GREEN: Implementar UsuarioRepository
|
|
68
|
+
- Archivos: `repositories/usuario_repo.py`, `tests/unit/test_usuario_repo.py`
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Fase 3: Historias de Usuario (Por prioridad)
|
|
73
|
+
|
|
74
|
+
### P1: Camino Crítico
|
|
75
|
+
|
|
76
|
+
- [T008] [US1] RED: Test para registro exitoso (happy path)
|
|
77
|
+
- [T009] [US1] RED: Test para email duplicado (sad path)
|
|
78
|
+
- [T010] [US1] GREEN: Implementar UsuarioService.crear()
|
|
79
|
+
- Archivos: `services/usuario_service.py`, `tests/unit/test_usuario_service.py`
|
|
80
|
+
- [T011] [P] [US1] RED: Test de integración para POST /usuarios
|
|
81
|
+
- [T012] [P] [US1] RED: Test BDD desde escenarios Gherkin P1
|
|
82
|
+
- [T013] [US1] GREEN: Implementar UsuarioController
|
|
83
|
+
- Archivos: `controllers/usuario_controller.py`, `tests/integration/test_crear_usuario.py`
|
|
84
|
+
|
|
85
|
+
### P2: Importante
|
|
86
|
+
|
|
87
|
+
- [T014] [US2] RED: Test para campo obligatorio vacío
|
|
88
|
+
- [T015] [US2] RED: Test para contraseña débil
|
|
89
|
+
- [T016] [US2] GREEN: Implementar validaciones adicionales
|
|
90
|
+
- [T017] [P] [US2] RED: Test BDD desde escenarios Gherkin P2
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Fase 4: Polish (Paralelizable)
|
|
95
|
+
|
|
96
|
+
Refinamientos transversales.
|
|
97
|
+
|
|
98
|
+
- [T018] [P] Refactor: Extraer validaciones a módulo compartido (si aplica)
|
|
99
|
+
- [T019] [P] Docs: Actualizar API docs con nuevo endpoint
|
|
100
|
+
- [T020] [P] Lint: Ejecutar linter y corregir warnings
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Fase 5: Verificación Final
|
|
105
|
+
|
|
106
|
+
- [T021] Ejecutar suite completa de tests
|
|
107
|
+
- [T022] Verificar coverage ≥ 85% sobre código nuevo
|
|
108
|
+
- [T023] Verificar lint y type-check sin errores
|
|
109
|
+
- [T024] Verificar build exitoso
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Orden de Ejecución
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
Fase 1: T001 ║ T002 ║ T003 (paralelo)
|
|
117
|
+
↓
|
|
118
|
+
Fase 2: T004 → T005 → T006 → T007 (secuencial)
|
|
119
|
+
↓
|
|
120
|
+
Fase 3: T008 → T009 → T010 → T011 ║ T012 → T013 (mixto)
|
|
121
|
+
T014 → T015 → T016 → T017 (secuencial)
|
|
122
|
+
↓
|
|
123
|
+
Fase 4: T018 ║ T019 ║ T020 (paralelo)
|
|
124
|
+
↓
|
|
125
|
+
Fase 5: T021 → T022 → T023 → T024 (secuencial)
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Leyenda:** `→` secuencial | `║` paralelo
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Las 5 Fases de Ejecución
|
|
132
|
+
|
|
133
|
+
| Fase | Nombre | Tipo | Propósito |
|
|
134
|
+
|------|--------|------|-----------|
|
|
135
|
+
| 1 | **Setup** | Paralelo | Inicialización de entorno y estructura |
|
|
136
|
+
| 2 | **Fundación** | Secuencial | Modelos, repos, infraestructura base |
|
|
137
|
+
| 3 | **Historias de Usuario** | Por prioridad | Features P1 → P2 → P3+ con TDD |
|
|
138
|
+
| 4 | **Polish** | Paralelo | Refactoring, docs, limpieza |
|
|
139
|
+
| 5 | **Verificación Final** | Secuencial | Tests, coverage, lint, build |
|
|
140
|
+
|
|
141
|
+
## Reglas de Paralelismo
|
|
142
|
+
|
|
143
|
+
- Tareas marcadas con `[P]` pueden ejecutarse en paralelo con otras `[P]` **de la misma fase**
|
|
144
|
+
- Tareas sin `[P]` son secuenciales y dependen de la tarea anterior
|
|
145
|
+
- **Nunca** ejecutar tareas de fases diferentes en paralelo
|
|
146
|
+
- Las fases 1 y 4 son predominantemente paralelas
|
|
147
|
+
- Las fases 2 y 5 son predominantemente secuenciales
|
|
148
|
+
- La fase 3 es mixta: secuencial dentro de cada historia, potencialmente paralelo entre historias independientes
|
|
149
|
+
|
|
150
|
+
## Ciclo TDD por Tarea
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
RED: Escribir test que FALLA
|
|
154
|
+
→ Ejecutar: verificar que falla por la razón correcta
|
|
155
|
+
|
|
156
|
+
GREEN: Implementar el código MÍNIMO para que el test pase
|
|
157
|
+
→ Ejecutar: verificar que PASA
|
|
158
|
+
|
|
159
|
+
REFACTOR: Limpiar sin cambiar comportamiento (solo en Fase 4)
|
|
160
|
+
→ Ejecutar: verificar que sigue pasando
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Puerta de Calidad
|
|
164
|
+
|
|
165
|
+
Este comando implementa la **Puerta 5 (Preparación de Tareas)**:
|
|
166
|
+
|
|
167
|
+
- Todas las tareas tienen IDs únicos (`T###`)
|
|
168
|
+
- Todas las tareas de implementación tienen rutas exactas de archivos
|
|
169
|
+
- Tareas paralelizables marcadas con `[P]`
|
|
170
|
+
- Historias asociadas con `[US#]`
|
|
171
|
+
- Las 5 fases están presentes
|
|
172
|
+
- Orden de ejecución documentado
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Extraer especificaciones compactas desde código existente (Blueprint Distillation)
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:destilar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Analizar un codebase existente y extraer un **blueprint compacto**: especificaciones, contratos, reglas de negocio y decisiones arquitectónicas implícitas en el código. Es ingeniería inversa de specs, no de arquitectura (para eso existe `/especdev:reversa`).
|
|
11
|
+
|
|
12
|
+
> Adaptado de DeepCode (HKUDS/DeepCode) — Blueprint Distillation: "comprimir código fuente para extraer especificaciones esenciales, filtrando ruido y preservando patrones críticos."
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:destilar # Destilar el proyecto actual
|
|
18
|
+
/especdev:destilar @ruta/al/modulo # Destilar un módulo específico
|
|
19
|
+
/especdev:destilar --formato gherkin # Output en formato Gherkin
|
|
20
|
+
/especdev:destilar --formato resumen # Output como resumen ejecutivo
|
|
21
|
+
/especdev:destilar --formato contratos # Solo interfaces y contratos
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Por Qué Existe
|
|
25
|
+
|
|
26
|
+
| Situación | Sin Destilar | Con Destilar |
|
|
27
|
+
|-----------|-------------|--------------|
|
|
28
|
+
| Proyecto heredado sin docs | Leer todo el código | Blueprint de 200 líneas |
|
|
29
|
+
| Migración a nueva versión | Riesgo de perder reglas implícitas | Spec explícita para validar |
|
|
30
|
+
| Onboarding de nuevo dev | Semanas entendiendo el código | Blueprint + mapa en 1 hora |
|
|
31
|
+
| Rewrite parcial | ¿Qué comportamiento preservar? | Contratos explícitos |
|
|
32
|
+
|
|
33
|
+
## Diferencia con `/especdev:reversa`
|
|
34
|
+
|
|
35
|
+
| Aspecto | `/especdev:reversa` | `/especdev:destilar` |
|
|
36
|
+
|---------|--------------------|--------------------|
|
|
37
|
+
| **Foco** | Arquitectura (componentes, conexiones) | Comportamiento (reglas, contratos) |
|
|
38
|
+
| **Output** | Mapa de componentes | Especificaciones compactas |
|
|
39
|
+
| **Pregunta** | "¿Cómo está construido?" | "¿Qué hace y por qué?" |
|
|
40
|
+
| **Formato** | Diagrama + tabla | Gherkin / contratos / resumen |
|
|
41
|
+
|
|
42
|
+
Se complementan: `reversa` te da el **mapa**, `destilar` te da las **reglas**.
|
|
43
|
+
|
|
44
|
+
## Comportamiento
|
|
45
|
+
|
|
46
|
+
### Paso 1: Análisis de Superficie
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Escaneando módulo src/services/payment/...
|
|
50
|
+
├── 8 archivos, 1,247 líneas de código
|
|
51
|
+
├── 23 funciones exportadas
|
|
52
|
+
├── 4 interfaces/tipos públicos
|
|
53
|
+
├── 12 tests encontrados
|
|
54
|
+
└── 3 dependencias externas (Stripe, Redis, Logger)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Paso 2: Extracción de Reglas de Negocio
|
|
58
|
+
|
|
59
|
+
El destilador busca reglas implícitas en:
|
|
60
|
+
|
|
61
|
+
| Fuente | Qué Extrae | Ejemplo |
|
|
62
|
+
|--------|-----------|---------|
|
|
63
|
+
| **Validaciones** | Reglas de dominio | "Monto mínimo: $1.00, máximo: $999,999" |
|
|
64
|
+
| **Condicionales** | Lógica de negocio | "Si el usuario es premium, no cobra comisión" |
|
|
65
|
+
| **Error handling** | Casos límite | "Reintentar 3 veces si Stripe devuelve 429" |
|
|
66
|
+
| **Tests** | Comportamiento esperado | "Webhook debe ser idempotente" |
|
|
67
|
+
| **Tipos/Interfaces** | Contratos | "PaymentIntent requiere: amount, currency, customerId" |
|
|
68
|
+
| **Comentarios** | Intención del dev original | "// HACK: Stripe no soporta ARS, convertir a USD" |
|
|
69
|
+
|
|
70
|
+
### Paso 3: Compresión
|
|
71
|
+
|
|
72
|
+
Eliminar ruido, preservar esencia:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Código original: 1,247 líneas
|
|
76
|
+
├── Boilerplate eliminado: 400 líneas (imports, exports, logging)
|
|
77
|
+
├── Implementación interna eliminada: 500 líneas
|
|
78
|
+
├── Duplicación eliminada: 100 líneas
|
|
79
|
+
└── Blueprint resultante: ~247 líneas (ratio 5:1)
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Regla de compresión:** El blueprint debe ser ≤20% del código original.
|
|
83
|
+
|
|
84
|
+
### Paso 4: Formato de Output
|
|
85
|
+
|
|
86
|
+
#### Formato Gherkin (default)
|
|
87
|
+
|
|
88
|
+
```gherkin
|
|
89
|
+
Feature: Procesamiento de Pagos
|
|
90
|
+
El sistema procesa pagos a través de Stripe
|
|
91
|
+
con reintentos automáticos y manejo de moneda.
|
|
92
|
+
|
|
93
|
+
Reglas de Negocio:
|
|
94
|
+
- Monto mínimo: $1.00 USD
|
|
95
|
+
- Monto máximo: $999,999.00 USD
|
|
96
|
+
- Monedas soportadas: USD, EUR, BRL
|
|
97
|
+
- Usuarios premium: sin comisión de procesamiento
|
|
98
|
+
- Comisión estándar: 2.9% + $0.30
|
|
99
|
+
|
|
100
|
+
Escenario: Pago exitoso
|
|
101
|
+
Dado un usuario con customerId válido en Stripe
|
|
102
|
+
Y un monto de $50.00 USD
|
|
103
|
+
Cuando se procesa el pago
|
|
104
|
+
Entonces se crea un PaymentIntent en Stripe
|
|
105
|
+
Y se registra la transacción en la base de datos
|
|
106
|
+
Y se emite el evento "payment.completed"
|
|
107
|
+
|
|
108
|
+
Escenario: Reintento por rate limit
|
|
109
|
+
Dado que Stripe responde con HTTP 429
|
|
110
|
+
Cuando se procesa el pago
|
|
111
|
+
Entonces se reintenta hasta 3 veces con backoff exponencial
|
|
112
|
+
Y si todos fallan, se marca como "payment.failed"
|
|
113
|
+
Y se notifica al equipo de soporte
|
|
114
|
+
|
|
115
|
+
Escenario: Moneda no soportada
|
|
116
|
+
Dado un monto en ARS (peso argentino)
|
|
117
|
+
Cuando se procesa el pago
|
|
118
|
+
Entonces se convierte a USD usando el tipo de cambio del día
|
|
119
|
+
Y se procesa en USD
|
|
120
|
+
Y se registra el tipo de cambio usado
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
#### Formato Contratos
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
// Blueprint: Contratos del Módulo de Pagos
|
|
127
|
+
// Extraído de: src/services/payment/ (8 archivos, 1,247 LOC)
|
|
128
|
+
// Fecha: 2026-03-21
|
|
129
|
+
|
|
130
|
+
interface PaymentIntent {
|
|
131
|
+
amount: number; // centavos, min: 100, max: 99999900
|
|
132
|
+
currency: 'USD' | 'EUR' | 'BRL';
|
|
133
|
+
customerId: string; // Stripe customer ID
|
|
134
|
+
metadata?: Record<string, string>;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
interface PaymentResult {
|
|
138
|
+
id: string;
|
|
139
|
+
status: 'succeeded' | 'failed' | 'pending';
|
|
140
|
+
stripePaymentIntentId: string;
|
|
141
|
+
amount: number;
|
|
142
|
+
fee: number; // 0 para premium, 2.9% + 30 para estándar
|
|
143
|
+
createdAt: Date;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// Contratos de servicio
|
|
147
|
+
type ProcessPayment = (intent: PaymentIntent) => Promise<PaymentResult>;
|
|
148
|
+
type RefundPayment = (paymentId: string, amount?: number) => Promise<RefundResult>;
|
|
149
|
+
type GetPaymentStatus = (paymentId: string) => Promise<PaymentResult>;
|
|
150
|
+
|
|
151
|
+
// Invariantes
|
|
152
|
+
// - ProcessPayment es idempotente (mismo intent = mismo resultado)
|
|
153
|
+
// - RefundPayment parcial: amount <= payment.amount
|
|
154
|
+
// - Retry policy: 3 intentos, backoff exponencial (1s, 2s, 4s)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
#### Formato Resumen
|
|
158
|
+
|
|
159
|
+
```markdown
|
|
160
|
+
## Blueprint: Módulo de Pagos
|
|
161
|
+
|
|
162
|
+
### Responsabilidad
|
|
163
|
+
Procesar pagos a través de Stripe con reintentos y conversión de moneda.
|
|
164
|
+
|
|
165
|
+
### Reglas de Negocio
|
|
166
|
+
1. Montos: $1.00 - $999,999.00 USD
|
|
167
|
+
2. Monedas: USD, EUR, BRL (ARS se convierte a USD)
|
|
168
|
+
3. Comisión: 2.9% + $0.30 (premium: 0%)
|
|
169
|
+
4. Reintentos: 3x con backoff exponencial ante rate limit
|
|
170
|
+
5. Idempotencia: mismo PaymentIntent = mismo resultado
|
|
171
|
+
|
|
172
|
+
### Dependencias Externas
|
|
173
|
+
- Stripe API v3 (pagos, reembolsos)
|
|
174
|
+
- Redis (cache de tipos de cambio, idempotency keys)
|
|
175
|
+
|
|
176
|
+
### Riesgos Identificados
|
|
177
|
+
- Conversión ARS→USD usa hack manual (comentario en código)
|
|
178
|
+
- No hay circuit breaker para Stripe
|
|
179
|
+
- Tests no cubren reembolsos parciales
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Integración con Pipeline
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
/especdev:destilar → blueprint
|
|
186
|
+
→ /especdev:especificar → .feature (informada por blueprint)
|
|
187
|
+
→ /especdev:clarificar → validar contra blueprint
|
|
188
|
+
→ /especdev:planificar-tecnico → usar contratos como base
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
El blueprint alimenta el pipeline de specs, cerrando el ciclo:
|
|
192
|
+
**Código existente → Blueprint → Spec → Nuevo código validado**
|
|
193
|
+
|
|
194
|
+
## Almacenamiento
|
|
195
|
+
|
|
196
|
+
El blueprint se guarda en:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
.especdev/blueprints/
|
|
200
|
+
├── payment.blueprint.md # Blueprint del módulo de pagos
|
|
201
|
+
├── auth.blueprint.md # Blueprint del módulo de auth
|
|
202
|
+
└── _index.md # Índice de blueprints
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Guardrails
|
|
206
|
+
|
|
207
|
+
- **Nunca** incluir credenciales o secretos en el blueprint
|
|
208
|
+
- **Nunca** exceder 20% del tamaño del código original
|
|
209
|
+
- **Siempre** indicar qué archivos se analizaron
|
|
210
|
+
- **Siempre** marcar los "hacks" o workarounds encontrados como riesgos
|
|
211
|
+
- **Siempre** distinguir entre reglas de negocio confirmadas (por tests) y supuestas (por código)
|