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,302 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Modo Prueba de Concepto para validar viabilidad técnica antes de comprometer implementación completa
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:poc
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Iniciar una Prueba de Concepto (PoC) para validar viabilidad técnica, explorar soluciones o demostrar una idea **antes** de comprometer una implementación completa. El PoC tiene reglas relajadas: prioriza velocidad y aprendizaje sobre calidad de producción.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:poc <descripción de lo que se quiere validar>
|
|
16
|
+
/especdev:poc --hipotesis "<lo que quiero demostrar>"
|
|
17
|
+
/especdev:poc --tiempo 2h # Limitar timebox (default: 4h)
|
|
18
|
+
/especdev:poc --graduar # Convertir PoC exitoso en feature real
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Cuándo Usar
|
|
22
|
+
|
|
23
|
+
| Situación | PoC | Rápido | Completo |
|
|
24
|
+
|-----------|-----|--------|----------|
|
|
25
|
+
| "¿Se puede hacer X con esta librería?" | ✅ | | |
|
|
26
|
+
| "¿Este enfoque escala?" | ✅ | | |
|
|
27
|
+
| "Necesito una demo para el stakeholder" | ✅ | | |
|
|
28
|
+
| "Corregir bug en auth" | | ✅ | |
|
|
29
|
+
| "Implementar feature de pagos" | | | ✅ |
|
|
30
|
+
| "¿WebSockets o SSE para real-time?" | ✅ | | |
|
|
31
|
+
| "Migrar de REST a GraphQL, ¿vale la pena?" | ✅ | | |
|
|
32
|
+
|
|
33
|
+
**Regla de oro:** Si la pregunta empieza con "¿se puede...?", "¿funciona...?" o "¿vale la pena...?" → es un PoC.
|
|
34
|
+
|
|
35
|
+
## Diferencias con Modo Rápido y Completo
|
|
36
|
+
|
|
37
|
+
| Aspecto | PoC | Rápido (N1) | Completo (N3) |
|
|
38
|
+
|---------|-----|-------------|---------------|
|
|
39
|
+
| **Objetivo** | Validar viabilidad | Entregar cambio | Entregar feature |
|
|
40
|
+
| **Output** | Aprendizaje + demo | Código de producción | Sistema completo |
|
|
41
|
+
| **TDD** | Opcional (solo tests de validación) | Obligatorio | Obligatorio |
|
|
42
|
+
| **Coverage** | Sin mínimo | ≥85% | ≥85% |
|
|
43
|
+
| **Lint/Types** | Relajado | Obligatorio | Obligatorio |
|
|
44
|
+
| **Docs** | Veredicto + hallazgos | Descripción PR | spec.md + tech.md |
|
|
45
|
+
| **Código** | Desechable (puede no mergearse) | Producción | Producción |
|
|
46
|
+
| **Timebox** | Fijo (default 4h) | Variable | Variable |
|
|
47
|
+
| **Constitución** | Solo Art. VII (Stop-Loss) | Completa | Completa |
|
|
48
|
+
| **Stubs permitidos** | Sí (con marcador) | No | No |
|
|
49
|
+
| **Contrato UI** | No | Si aplica | Si aplica |
|
|
50
|
+
|
|
51
|
+
## Proceso (4 fases)
|
|
52
|
+
|
|
53
|
+
### Fase 1: Hipótesis (10 min)
|
|
54
|
+
|
|
55
|
+
Definir QUÉ se quiere validar y CÓMO se medirá el éxito/fracaso.
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
## PoC: [título]
|
|
59
|
+
|
|
60
|
+
**Hipótesis:** [lo que se quiere demostrar]
|
|
61
|
+
**Criterio de éxito:** [cómo se sabe que funciona]
|
|
62
|
+
**Criterio de fracaso:** [cuándo abandonar]
|
|
63
|
+
**Timebox:** [tiempo máximo, default 4h]
|
|
64
|
+
**Alcance:**
|
|
65
|
+
- Incluido: [qué se construirá]
|
|
66
|
+
- Excluido: [qué NO se construirá]
|
|
67
|
+
|
|
68
|
+
**Preguntas a responder:**
|
|
69
|
+
1. [pregunta técnica 1]
|
|
70
|
+
2. [pregunta técnica 2]
|
|
71
|
+
3. [pregunta técnica 3]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Ejemplo:**
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
## PoC: WebSockets vs SSE para notificaciones en tiempo real
|
|
78
|
+
|
|
79
|
+
**Hipótesis:** WebSockets ofrece menor latencia que SSE para nuestro caso de uso
|
|
80
|
+
(notificaciones de cambio de estado de pedido, ~100 usuarios concurrentes).
|
|
81
|
+
|
|
82
|
+
**Criterio de éxito:**
|
|
83
|
+
- WebSockets entrega notificaciones en < 50ms
|
|
84
|
+
- Conexión se mantiene estable por > 30 min
|
|
85
|
+
- Funciona detrás de nuestro reverse proxy (nginx)
|
|
86
|
+
|
|
87
|
+
**Criterio de fracaso:**
|
|
88
|
+
- Latencia > 200ms
|
|
89
|
+
- Requiere cambio de infraestructura (nginx no soporta)
|
|
90
|
+
- Complejidad de implementación > 3x vs SSE
|
|
91
|
+
|
|
92
|
+
**Timebox:** 3 horas
|
|
93
|
+
|
|
94
|
+
**Alcance:**
|
|
95
|
+
- Incluido: Servidor WS básico, cliente simple, test de latencia
|
|
96
|
+
- Excluido: Auth, persistencia, UI bonita, reconexión automática
|
|
97
|
+
|
|
98
|
+
**Preguntas a responder:**
|
|
99
|
+
1. ¿Cuál es la latencia real de WS vs SSE en nuestro stack?
|
|
100
|
+
2. ¿nginx necesita configuración especial para WS?
|
|
101
|
+
3. ¿Cuántas conexiones concurrentes aguanta el servidor?
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Fase 2: Construir (80% del tiempo)
|
|
105
|
+
|
|
106
|
+
Reglas relajadas para máxima velocidad:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
✅ PERMITIDO en PoC:
|
|
110
|
+
- Hardcoded values (API keys en .env, datos mock)
|
|
111
|
+
- Código sin tipos estrictos
|
|
112
|
+
- Sin lint perfecto
|
|
113
|
+
- Console.log como debugging
|
|
114
|
+
- Dependencias sin evaluar alternativas
|
|
115
|
+
- Un solo archivo largo (sin modularizar)
|
|
116
|
+
- Estilos inline
|
|
117
|
+
- Sin manejo de errores exhaustivo
|
|
118
|
+
|
|
119
|
+
❌ PROHIBIDO incluso en PoC:
|
|
120
|
+
- Credenciales en código (usar .env)
|
|
121
|
+
- Cambiar código de producción existente
|
|
122
|
+
- Commitear al branch principal
|
|
123
|
+
- Ignorar el timebox (Stop-Loss aplica)
|
|
124
|
+
- Concluir sin evidencia
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Ubicación del código PoC:**
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
poc/
|
|
131
|
+
├── <nombre-poc>/
|
|
132
|
+
│ ├── README.md # Hipótesis + veredicto
|
|
133
|
+
│ ├── src/ # Código del PoC
|
|
134
|
+
│ ├── resultados/ # Screenshots, benchmarks, logs
|
|
135
|
+
│ └── .env.example # Variables requeridas (sin valores)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
**Branch:** `poc/<nombre-poc>` (siempre desde la rama actual, nunca main)
|
|
139
|
+
|
|
140
|
+
### Fase 3: Evaluar (10 min)
|
|
141
|
+
|
|
142
|
+
Contra los criterios definidos en la hipótesis:
|
|
143
|
+
|
|
144
|
+
```markdown
|
|
145
|
+
## Evaluación del PoC
|
|
146
|
+
|
|
147
|
+
### Resultados vs Criterios
|
|
148
|
+
|
|
149
|
+
| Criterio | Resultado | Veredicto |
|
|
150
|
+
|----------|-----------|-----------|
|
|
151
|
+
| Latencia < 50ms | 12ms promedio | ✅ CUMPLE |
|
|
152
|
+
| Estable > 30 min | 45 min sin desconexión | ✅ CUMPLE |
|
|
153
|
+
| Funciona con nginx | Sí, con `proxy_set_header Upgrade` | ✅ CUMPLE |
|
|
154
|
+
|
|
155
|
+
### Preguntas Respondidas
|
|
156
|
+
|
|
157
|
+
1. **Latencia WS vs SSE:** WS = 12ms, SSE = 45ms (WS 3.7x más rápido)
|
|
158
|
+
2. **nginx:** Requiere 3 líneas de config adicional (documentado)
|
|
159
|
+
3. **Conexiones:** Servidor aguanta ~500 concurrentes con 256MB RAM
|
|
160
|
+
|
|
161
|
+
### Hallazgos Inesperados
|
|
162
|
+
- La librería `ws` tiene memory leak conocido en v8.16 (usar v8.17+)
|
|
163
|
+
- SSE no funciona con HTTP/2 en nuestro setup actual
|
|
164
|
+
|
|
165
|
+
### Evidencia
|
|
166
|
+
- Benchmark: resultados/benchmark.json
|
|
167
|
+
- Screenshot: resultados/latency-chart.png
|
|
168
|
+
- Logs: resultados/stress-test.log
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Fase 4: Veredicto (5 min)
|
|
172
|
+
|
|
173
|
+
Uno de 4 resultados posibles:
|
|
174
|
+
|
|
175
|
+
```markdown
|
|
176
|
+
## Veredicto: ✅ VIABLE — Proceder con implementación
|
|
177
|
+
|
|
178
|
+
**Recomendación:** Usar WebSockets para notificaciones real-time.
|
|
179
|
+
**Próximo paso:** /especdev:comenzar Implementar notificaciones real-time con WebSockets
|
|
180
|
+
**Hallazgos a preservar:**
|
|
181
|
+
- Config nginx necesaria → guardar en hallazgos.md
|
|
182
|
+
- Usar ws@8.17+ (no 8.16) → guardar en hallazgos.md
|
|
183
|
+
- Benchmark como referencia → guardar en resultados/
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
| Veredicto | Significado | Acción |
|
|
187
|
+
|-----------|-------------|--------|
|
|
188
|
+
| ✅ **VIABLE** | Hipótesis confirmada, criterios cumplidos | Graduar a feature con `/especdev:poc --graduar` |
|
|
189
|
+
| ⚠️ **VIABLE CON RESERVAS** | Funciona pero con limitaciones | Documentar limitaciones, decidir si proceder |
|
|
190
|
+
| ❌ **NO VIABLE** | Hipótesis refutada | Documentar por qué, explorar alternativas |
|
|
191
|
+
| 🔄 **INCONCLUSO** | Timebox agotado sin evidencia suficiente | Extender timebox o reformular hipótesis |
|
|
192
|
+
|
|
193
|
+
## Graduación de PoC a Feature
|
|
194
|
+
|
|
195
|
+
Cuando un PoC es VIABLE, se puede graduar a una feature real:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
/especdev:poc --graduar
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Flujo de Graduación
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
PoC VIABLE
|
|
205
|
+
│
|
|
206
|
+
├── 1. Extraer hallazgos → .especdev/hallazgos.md
|
|
207
|
+
├── 2. Extraer decisiones técnicas → .especdev/memoria/decisiones.md
|
|
208
|
+
├── 3. Crear propuesta desde PoC → /especdev:proponer (auto-generada)
|
|
209
|
+
├── 4. Iniciar pipeline completo → /especdev:comenzar
|
|
210
|
+
│ (con contexto del PoC como input)
|
|
211
|
+
└── 5. Archivar código PoC → poc/_archivo/<nombre>/
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Importante:** El código del PoC **NO se reutiliza** directamente. Se reescribe con calidad de producción siguiendo el pipeline completo (TDD, constitución, puertas de calidad). El PoC informa las decisiones, no el código.
|
|
215
|
+
|
|
216
|
+
## Timebox y Stop-Loss
|
|
217
|
+
|
|
218
|
+
| Timebox | Acción |
|
|
219
|
+
|---------|--------|
|
|
220
|
+
| 50% del tiempo | Checkpoint: ¿avanzando hacia la respuesta? |
|
|
221
|
+
| 75% del tiempo | Warning: empezar a consolidar hallazgos |
|
|
222
|
+
| 100% del tiempo | ⛔ PARAR. Evaluar con lo que hay |
|
|
223
|
+
| >100% (extendido) | Solo si el usuario lo autoriza explícitamente |
|
|
224
|
+
|
|
225
|
+
**Regla:** Un PoC que no da respuesta en el timebox es un PoC mal definido, no un PoC que necesita más tiempo.
|
|
226
|
+
|
|
227
|
+
## Integración con Pipeline
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
/especdev:poc → hipótesis + código + veredicto
|
|
231
|
+
├── ✅ VIABLE → /especdev:poc --graduar → /especdev:proponer → pipeline normal
|
|
232
|
+
├── ⚠️ CON RESERVAS → documentar → decisión del usuario
|
|
233
|
+
├── ❌ NO VIABLE → documentar → explorar alternativa
|
|
234
|
+
└── 🔄 INCONCLUSO → reformular hipótesis → nuevo PoC
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
## Almacenamiento
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
poc/
|
|
241
|
+
├── websockets-vs-sse/
|
|
242
|
+
│ ├── README.md # Hipótesis + veredicto
|
|
243
|
+
│ ├── src/ # Código PoC
|
|
244
|
+
│ └── resultados/ # Evidencia
|
|
245
|
+
├── graphql-migration/
|
|
246
|
+
│ ├── README.md
|
|
247
|
+
│ ├── src/
|
|
248
|
+
│ └── resultados/
|
|
249
|
+
└── _archivo/ # PoCs graduados o descartados
|
|
250
|
+
└── auth-biometrica/
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## Ejemplo Completo
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
/especdev:poc --hipotesis "Podemos usar SQLite en vez de PostgreSQL para el MVP"
|
|
257
|
+
|
|
258
|
+
=== PoC: SQLite para MVP ===
|
|
259
|
+
|
|
260
|
+
📋 Fase 1: Hipótesis (2 min)
|
|
261
|
+
Hipótesis: SQLite es suficiente para MVP (< 100 usuarios, < 10K registros)
|
|
262
|
+
Criterio de éxito: CRUD funciona, queries < 10ms, datos persisten
|
|
263
|
+
Criterio de fracaso: Concurrencia falla, queries > 100ms
|
|
264
|
+
Timebox: 2 horas
|
|
265
|
+
|
|
266
|
+
🔨 Fase 2: Construir (1h 40min)
|
|
267
|
+
✅ Setup SQLite con Prisma
|
|
268
|
+
✅ Migración de schema existente
|
|
269
|
+
✅ CRUD básico funcionando
|
|
270
|
+
✅ Test de concurrencia (10 escrituras paralelas)
|
|
271
|
+
|
|
272
|
+
📊 Fase 3: Evaluar (10 min)
|
|
273
|
+
✅ CRUD: funciona idéntico a PostgreSQL
|
|
274
|
+
✅ Queries: 2-5ms (vs 5-15ms en PG local)
|
|
275
|
+
⚠️ Concurrencia: WAL mode soporta 10 escrituras paralelas
|
|
276
|
+
❌ Limitación: Sin full-text search nativo
|
|
277
|
+
|
|
278
|
+
📝 Fase 4: Veredicto
|
|
279
|
+
⚠️ VIABLE CON RESERVAS
|
|
280
|
+
- Funciona para MVP si no necesitamos full-text search
|
|
281
|
+
- Migrar a PostgreSQL será necesario antes de escalar
|
|
282
|
+
- Recomendación: usar SQLite para MVP, planear migración para v2
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
## Modelo Recomendado
|
|
286
|
+
|
|
287
|
+
| Paso | Modelo | Razón |
|
|
288
|
+
|------|--------|-------|
|
|
289
|
+
| Hipótesis | Haiku | Solo estructurar la pregunta |
|
|
290
|
+
| Construir | Sonnet | Código funcional rápido |
|
|
291
|
+
| Evaluar | Haiku | Comparar contra criterios |
|
|
292
|
+
| Veredicto | Haiku | Resumir resultados |
|
|
293
|
+
|
|
294
|
+
## Guardrails
|
|
295
|
+
|
|
296
|
+
- **Nunca** commitear al branch principal
|
|
297
|
+
- **Nunca** modificar código de producción existente
|
|
298
|
+
- **Nunca** exceder el timebox sin autorización explícita
|
|
299
|
+
- **Nunca** reutilizar código PoC directamente en producción (graduar primero)
|
|
300
|
+
- **Siempre** definir hipótesis y criterios ANTES de construir
|
|
301
|
+
- **Siempre** documentar el veredicto con evidencia
|
|
302
|
+
- **Siempre** archivar PoCs completados (no dejar código abandonado)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Crear propuesta de cambio con intención, alcance y enfoque antes de especificar
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:proponer
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Crear una propuesta de cambio estructurada ANTES de escribir la especificación Gherkin. Define la intención (WHY), el alcance (WHAT) y el enfoque (HOW) del cambio.
|
|
11
|
+
|
|
12
|
+
> Adaptado de `sdd-propose` de Gentle-AI — fase intermedia entre explorar y especificar.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:proponer <descripción del cambio>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Por Qué Existe
|
|
21
|
+
|
|
22
|
+
Sin una propuesta formal, los developers saltan directo a escribir specs sin
|
|
23
|
+
alinear la intención con el stakeholder. La propuesta:
|
|
24
|
+
- Fuerza a pensar en el **POR QUÉ** antes del **QUÉ**
|
|
25
|
+
- Define el alcance explícito (qué SÍ, qué NO)
|
|
26
|
+
- Identifica riesgos antes de invertir tiempo en specs
|
|
27
|
+
|
|
28
|
+
## Output
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
# Propuesta: Implementar Autenticación OAuth
|
|
32
|
+
|
|
33
|
+
## Intención (POR QUÉ)
|
|
34
|
+
Los usuarios piden login social. El 60% abandona el registro manual.
|
|
35
|
+
|
|
36
|
+
## Alcance (QUÉ)
|
|
37
|
+
### Incluido
|
|
38
|
+
- Login con Google y GitHub
|
|
39
|
+
- Vinculación de cuenta OAuth a cuenta existente
|
|
40
|
+
- Token refresh automático
|
|
41
|
+
|
|
42
|
+
### Excluido
|
|
43
|
+
- Login con Facebook (baja demanda)
|
|
44
|
+
- 2FA con OAuth (fase posterior)
|
|
45
|
+
|
|
46
|
+
## Enfoque (CÓMO)
|
|
47
|
+
- Usar passport.js para providers
|
|
48
|
+
- Almacenar tokens encriptados en BD
|
|
49
|
+
- Flujo: redirect → callback → JWT interno
|
|
50
|
+
|
|
51
|
+
## Riesgos
|
|
52
|
+
- Dependencia de APIs externas de Google/GitHub
|
|
53
|
+
- Complejidad de vinculación de cuentas existentes
|
|
54
|
+
|
|
55
|
+
## Estimado Preliminar
|
|
56
|
+
- Complejidad: Nivel 2 (Estándar)
|
|
57
|
+
- Tiempo: 3-5 días
|
|
58
|
+
- Archivos afectados: ~8-12
|
|
59
|
+
|
|
60
|
+
## Estado: PENDIENTE APROBACIÓN
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Integración
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
/especdev:explorar → hallazgos.md
|
|
67
|
+
→ /especdev:proponer → propuesta.md (ESTE COMANDO)
|
|
68
|
+
→ /especdev:especificar → .feature (solo después de aprobar propuesta)
|
|
69
|
+
```
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Modo rápido para tareas pequeñas y bien definidas (Nivel 1)
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:rapido
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Iniciar modo rápido (Nivel 1 - Micro) para tareas pequeñas y bien definidas.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:rapido <descripción de la tarea>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Cuándo Usar
|
|
19
|
+
|
|
20
|
+
- Tarea bien definida (inicio y fin claros)
|
|
21
|
+
- Solución conocida
|
|
22
|
+
- Alcance pequeño (1-3 tareas, < 1 día)
|
|
23
|
+
- Sin decisiones arquitectónicas
|
|
24
|
+
- Fácil de revertir
|
|
25
|
+
|
|
26
|
+
## Proceso (3 fases)
|
|
27
|
+
|
|
28
|
+
### Fase 1: Planear (5 min)
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
## Tarea Rápida: [título]
|
|
32
|
+
|
|
33
|
+
**Meta:** [una línea]
|
|
34
|
+
**Enfoque:** [2-3 oraciones]
|
|
35
|
+
**Tareas:**
|
|
36
|
+
- [ ] Tarea 1
|
|
37
|
+
- [ ] Tarea 2
|
|
38
|
+
- [ ] Tarea 3
|
|
39
|
+
|
|
40
|
+
**Completado cuando:** [criterio de éxito]
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Fase 2: Ejecutar (trabajo principal)
|
|
44
|
+
|
|
45
|
+
1. Ejecutar tareas secuencialmente
|
|
46
|
+
2. Aplicar Leyes de Hierro (TDD, debugging, verificación)
|
|
47
|
+
3. Registrar progreso en `.especdev/progreso.md`
|
|
48
|
+
|
|
49
|
+
### Fase 3: Verificar (5 min)
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
## Verificación
|
|
53
|
+
- [ ] Todas las tareas completadas
|
|
54
|
+
- [ ] Tests pasan
|
|
55
|
+
- [ ] Sin regresiones
|
|
56
|
+
- [ ] Código commitado
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Escalamiento Automático
|
|
60
|
+
|
|
61
|
+
Si se detecta complejidad → auto-escalar a `/especdev:completo`
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
¿Puedo resolver esto en < 5 min sin cambiar cómo las cosas trabajan juntas?
|
|
65
|
+
├── SÍ → Continuar en modo rápido
|
|
66
|
+
└── NO → ¿Necesita una decisión de diseño?
|
|
67
|
+
├── SÍ → Escalar a modo completo
|
|
68
|
+
└── NO → Registrar y continuar
|
|
69
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Reflexionar sobre una tarea para mejorar calidad (+8-21%)
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:reflexionar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Aplicar reflexión estructurada sobre una tarea completada para mejorar la calidad del output. La investigación muestra **+8-21% de mejora** en calidad de tareas.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:reflexionar [tema]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Las 4 Preguntas
|
|
19
|
+
|
|
20
|
+
1. **¿Qué funcionó bien?** → Identificar patrones exitosos
|
|
21
|
+
2. **¿Qué se puede mejorar?** → Encontrar brechas de calidad
|
|
22
|
+
3. **¿Qué aprendí?** → Extraer insights
|
|
23
|
+
4. **¿Qué haría diferente?** → Considerar alternativas
|
|
24
|
+
|
|
25
|
+
## Cuándo Reflexionar
|
|
26
|
+
|
|
27
|
+
| Disparador | Acción |
|
|
28
|
+
|-----------|--------|
|
|
29
|
+
| Tarea compleja completada | Siempre reflexionar |
|
|
30
|
+
| Usuario solicita revisión | Siempre reflexionar |
|
|
31
|
+
| "reflexionar" en el prompt | Auto-activado |
|
|
32
|
+
| Tarea mecánica simple | Omitir (costo > beneficio) |
|
|
33
|
+
|
|
34
|
+
## Ejemplo
|
|
35
|
+
|
|
36
|
+
```markdown
|
|
37
|
+
## Reflexión: Implementación de API
|
|
38
|
+
|
|
39
|
+
### Qué Funcionó Bien ✅
|
|
40
|
+
- Separación de responsabilidades limpia
|
|
41
|
+
- Buena cobertura de tests (87%)
|
|
42
|
+
|
|
43
|
+
### Qué Se Puede Mejorar 🔧
|
|
44
|
+
- Tiempo de respuesta en búsqueda (800ms → meta 200ms)
|
|
45
|
+
- Falta documentación de rate limiting
|
|
46
|
+
|
|
47
|
+
### Qué Aprendí 💡
|
|
48
|
+
- Índices de base de datos tienen 10x impacto en búsquedas
|
|
49
|
+
- Testing de rendimiento temprano previene sorpresas tardías
|
|
50
|
+
|
|
51
|
+
### Qué Haría Diferente 🔄
|
|
52
|
+
- Agregar benchmarks de rendimiento desde el día 1
|
|
53
|
+
```
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Extraer arquitectura de un codebase existente (ingeniería inversa)
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:reversa
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Analizar un codebase existente y extraer su arquitectura implícita: componentes, conexiones, flujos de datos, tecnologías y propiedad de código. Convierte código desorganizado en un mapa arquitectónico explícito.
|
|
11
|
+
|
|
12
|
+
> Adaptado de DevilDev (lak7/devildev) — Reverse Architecture.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:reversa # Analizar el proyecto actual
|
|
18
|
+
/especdev:reversa @ruta/al/proyecto # Analizar un proyecto específico
|
|
19
|
+
/especdev:reversa --profundidad superficial # Solo estructura de alto nivel
|
|
20
|
+
/especdev:reversa --profundidad profunda # Incluir flujo de datos y dependencias
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Por Qué Existe
|
|
24
|
+
|
|
25
|
+
El 80% del trabajo de desarrollo es sobre codebases **existentes**, no greenfield. Antes de modificar un sistema, necesitas entender:
|
|
26
|
+
- ¿Cuáles son los componentes principales?
|
|
27
|
+
- ¿Cómo se conectan entre sí?
|
|
28
|
+
- ¿Qué tecnologías usa cada componente?
|
|
29
|
+
- ¿Dónde vive el código de cada componente?
|
|
30
|
+
|
|
31
|
+
Sin esta herramienta, un agente IA empieza a modificar código **sin entender la arquitectura**, generando inconsistencias y duplicación.
|
|
32
|
+
|
|
33
|
+
## Comportamiento
|
|
34
|
+
|
|
35
|
+
### Paso 1: Escaneo Estructural
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
Escaneando proyecto...
|
|
39
|
+
├── Detectando framework: Next.js 15 + TypeScript
|
|
40
|
+
├── Identificando dependencias: 24 directas, 8 dev
|
|
41
|
+
├── Mapeando estructura de directorios
|
|
42
|
+
└── Analizando imports y exports
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Paso 2: Identificación de Componentes
|
|
46
|
+
|
|
47
|
+
Aplica estas reglas (de DevilDev):
|
|
48
|
+
|
|
49
|
+
1. **Solo componentes con evidencia** — No inventar lo que no existe
|
|
50
|
+
2. **Test de valor de negocio** — ¿Un stakeholder no-técnico lo entendería?
|
|
51
|
+
3. **Test de significancia** — ¿Si falla, requiere una solución técnica diferente?
|
|
52
|
+
4. **Test de independencia** — ¿Se podría reemplazar con otra tecnología?
|
|
53
|
+
|
|
54
|
+
### Paso 3: Mapeo de Propiedad de Código
|
|
55
|
+
|
|
56
|
+
Para cada componente:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"codeOwnership": {
|
|
61
|
+
"primaryImplementation": {
|
|
62
|
+
"directories": ["src/services/auth/"],
|
|
63
|
+
"files": ["src/middleware/jwt.ts"],
|
|
64
|
+
"confidence": 0.9,
|
|
65
|
+
"rationale": "Contiene toda la lógica de autenticación"
|
|
66
|
+
},
|
|
67
|
+
"supportingRelated": {
|
|
68
|
+
"directories": ["src/utils/crypto/"],
|
|
69
|
+
"confidence": 0.6,
|
|
70
|
+
"rationale": "Helpers de encriptación usados por auth"
|
|
71
|
+
},
|
|
72
|
+
"sharedDependencies": {
|
|
73
|
+
"files": ["src/db/prisma.ts"],
|
|
74
|
+
"confidence": 0.3,
|
|
75
|
+
"rationale": "Cliente de BD compartido con otros servicios"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Output
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
# Arquitectura Extraída: mi-proyecto
|
|
85
|
+
|
|
86
|
+
## Resumen
|
|
87
|
+
E-commerce platform con 6 componentes principales.
|
|
88
|
+
Stack: Next.js 15, PostgreSQL, Stripe, Redis.
|
|
89
|
+
|
|
90
|
+
## Componentes
|
|
91
|
+
|
|
92
|
+
### 1. 🛍️ Portal de Cliente
|
|
93
|
+
- **Propósito:** Interfaz de usuario para compras
|
|
94
|
+
- **Tecnologías:** React 19, Next.js App Router, TailwindCSS
|
|
95
|
+
- **Código:** src/app/(store)/, src/components/
|
|
96
|
+
- **Flujo de datos:**
|
|
97
|
+
- Envía: órdenes, búsquedas, preferencias
|
|
98
|
+
- Recibe: productos, precios, estado de pedido
|
|
99
|
+
|
|
100
|
+
### 2. 🔐 Sistema de Autenticación
|
|
101
|
+
- **Propósito:** Login, registro, sesiones
|
|
102
|
+
- **Tecnologías:** NextAuth.js v5, JWT, bcrypt
|
|
103
|
+
- **Código:** src/app/api/auth/, src/middleware.ts
|
|
104
|
+
- **Flujo de datos:**
|
|
105
|
+
- Envía: tokens JWT, sesiones
|
|
106
|
+
- Recibe: credenciales, tokens OAuth
|
|
107
|
+
|
|
108
|
+
### 3. 💳 Procesamiento de Pagos
|
|
109
|
+
- **Propósito:** Cobros, reembolsos, suscripciones
|
|
110
|
+
- **Tecnologías:** Stripe API v3, webhooks
|
|
111
|
+
- **Código:** src/services/payment/, src/app/api/webhook/stripe/
|
|
112
|
+
- **Flujo de datos:**
|
|
113
|
+
- Envía: cobros, reembolsos
|
|
114
|
+
- Recibe: confirmaciones, eventos Stripe
|
|
115
|
+
|
|
116
|
+
### ... (más componentes)
|
|
117
|
+
|
|
118
|
+
## Mapa de Conexiones
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
Portal de Cliente ──► Sistema de Auth ──► BD PostgreSQL
|
|
122
|
+
│ ▲
|
|
123
|
+
▼ │
|
|
124
|
+
Procesamiento de Pagos ─────────────────────────┘
|
|
125
|
+
│
|
|
126
|
+
▼
|
|
127
|
+
Servicio de Email
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Métricas
|
|
131
|
+
- Complejidad ciclomática promedio: 4.2
|
|
132
|
+
- Archivos sin tests: 12/48 (25%)
|
|
133
|
+
- Dependencias desactualizadas: 3
|
|
134
|
+
- Código muerto detectado: ~200 líneas
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Sincronización Automática
|
|
138
|
+
|
|
139
|
+
Cuando hay un `git push`, la arquitectura se puede re-evaluar automáticamente:
|
|
140
|
+
|
|
141
|
+
```yaml
|
|
142
|
+
# WORKFLOW.md
|
|
143
|
+
reversa:
|
|
144
|
+
auto_sync: true
|
|
145
|
+
trigger: "git push"
|
|
146
|
+
solo_archivos_cambiados: true # Solo re-analiza lo que cambió
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Niveles de Profundidad
|
|
150
|
+
|
|
151
|
+
| Nivel | Qué Incluye | Tokens Estimados |
|
|
152
|
+
|-------|------------|-----------------|
|
|
153
|
+
| Superficial | Estructura, framework, componentes principales | ~2,000 |
|
|
154
|
+
| Media (default) | + conexiones, tecnologías, propiedad de código | ~5,000 |
|
|
155
|
+
| Profunda | + flujo de datos, métricas, código muerto, tests | ~10,000 |
|