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,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,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generar pseudocódigo agnóstico de tecnología desde las specs antes de planificar
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:pseudocodigo
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Crear un artefacto de pseudocódigo de alto nivel entre la fase de especificación y la planificación técnica. Fuerza al agente a razonar sobre la LÓGICA del sistema sin comprometer stack, framework o estructura de archivos.
|
|
11
|
+
|
|
12
|
+
Inspirado en la fase "P" (Pseudocode) del framework SPARC.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:pseudocodigo # Desde las specs del sprint actual
|
|
18
|
+
/especdev:pseudocodigo @specs/auth/ # Para un dominio específico
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Comportamiento
|
|
22
|
+
|
|
23
|
+
1. **Leer** las specs Gherkin del dominio
|
|
24
|
+
2. **Extraer** los flujos principales (happy path + sad paths)
|
|
25
|
+
3. **Generar** pseudocódigo agnóstico:
|
|
26
|
+
- Sin nombres de funciones reales
|
|
27
|
+
- Sin imports ni frameworks
|
|
28
|
+
- Sin tipos de datos específicos del lenguaje
|
|
29
|
+
- Solo lógica: CUANDO/SI/SINO/PARA-CADA/RETORNAR
|
|
30
|
+
4. **Identificar** invariantes (condiciones siempre verdaderas)
|
|
31
|
+
5. **Listar** casos límite y dependencias de datos
|
|
32
|
+
6. **Guardar** en `.especdev/pseudocodigo.md`
|
|
33
|
+
|
|
34
|
+
## Por qué existe
|
|
35
|
+
|
|
36
|
+
Sin pseudocódigo, el agente salta de "qué hacer" (spec) a "cómo implementar" (plan técnico) sin pasar por "qué lógica necesito". Esto causa:
|
|
37
|
+
- Sobre-ingeniería (resolver problemas que no existen)
|
|
38
|
+
- Under-ingeniería (olvidar edge cases obvios)
|
|
39
|
+
- Acoplamiento temprano a un framework
|
|
40
|
+
|
|
41
|
+
El pseudocódigo es el "boceto" del arquitecto antes de los planos.
|
|
42
|
+
|
|
43
|
+
## Integración en el Pipeline
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
especificar → clarificar → PSEUDOCÓDIGO → planificar-tecnico → desglosar → implementar
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Es opcional pero recomendado para tareas de complejidad ≥ 2 (Estándar).
|
|
@@ -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 |
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Peer review estricto con análisis de rendimiento, arquitectura, seguridad y cumplimiento
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:revisar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Generar un peer review estricto asumiendo el rol de **Arquitecto de Software / Lead Developer**. Evalúa no solo sintaxis y tests, sino rendimiento, cumplimiento de arquitectura, seguridad y eficiencia algorítmica.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:revisar
|
|
16
|
+
/especdev:revisar @specs/features/<dominio>/<Feature>.tasks.md
|
|
17
|
+
/especdev:revisar --rigor alto # Review de arquitecto senior
|
|
18
|
+
/especdev:revisar --rigor estandar # Review estándar (default)
|
|
19
|
+
/especdev:revisar --foco rendimiento # Enfocarse en performance
|
|
20
|
+
/especdev:revisar --foco seguridad # Enfocarse en seguridad
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Dimensiones del Review
|
|
24
|
+
|
|
25
|
+
### 1. Corrección Funcional
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Verificar:
|
|
29
|
+
- [ ] Todos los escenarios Gherkin P1 implementados
|
|
30
|
+
- [ ] Escenarios P2 implementados
|
|
31
|
+
- [ ] Edge cases cubiertos con tests
|
|
32
|
+
- [ ] Sin stubs detectados (habilidad detección-stubs)
|
|
33
|
+
- [ ] Criterios de éxito de la spec cumplidos
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 2. Tests y Cobertura
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Verificar:
|
|
40
|
+
- [ ] Tests unitarios pasan
|
|
41
|
+
- [ ] Tests de integración pasan
|
|
42
|
+
- [ ] Tests BDD desde Gherkin pasan
|
|
43
|
+
- [ ] Cobertura ≥ 85% sobre código nuevo
|
|
44
|
+
- [ ] Validación Nyquist: 100% P1, 80% P2
|
|
45
|
+
- [ ] Tests verifican comportamiento, no implementación
|
|
46
|
+
- [ ] Sin tests frágiles (no dependen de orden, tiempo, estado global)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 3. Rendimiento
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Detectar:
|
|
53
|
+
❌ Consultas N+1 a base de datos
|
|
54
|
+
❌ Loops innecesarios sobre datasets grandes (O(n²) evitable)
|
|
55
|
+
❌ Falta de paginación en queries que pueden crecer
|
|
56
|
+
❌ Objetos grandes en memoria sin liberar
|
|
57
|
+
❌ Imports pesados que podrían ser lazy
|
|
58
|
+
❌ Re-renders innecesarios (React) o watchers excesivos (Vue)
|
|
59
|
+
❌ Falta de índices en queries frecuentes
|
|
60
|
+
❌ Serialización/deserialización redundante
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### 4. Arquitectura y Diseño
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Verificar:
|
|
67
|
+
- [ ] Cumple con constitución (todos los artículos)
|
|
68
|
+
- [ ] Principios SOLID respetados (habilidad refactorizacion-solid)
|
|
69
|
+
- [ ] Contrato UI respetado (si aplica, habilidad contrato-ui)
|
|
70
|
+
- [ ] Sin acoplamiento excesivo entre módulos
|
|
71
|
+
- [ ] Dependencias inyectadas (no hardcoded)
|
|
72
|
+
- [ ] Separación de concerns (controller thin, service con lógica)
|
|
73
|
+
- [ ] Sin código duplicado significativo (>10 líneas)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 5. Seguridad
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
Verificar (subset de auditar-seguridad):
|
|
80
|
+
- [ ] Input validado en puntos de entrada
|
|
81
|
+
- [ ] Queries parametrizadas (no concatenación)
|
|
82
|
+
- [ ] Sin credenciales en código
|
|
83
|
+
- [ ] Auth/authz en endpoints que lo requieren
|
|
84
|
+
- [ ] Output encodado (prevención XSS)
|
|
85
|
+
- [ ] Sin datos sensibles en logs
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 6. Estilo y Convenciones
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
Verificar:
|
|
92
|
+
- [ ] Naming consistente con convenciones del proyecto
|
|
93
|
+
- [ ] Sin imports no usados
|
|
94
|
+
- [ ] Sin variables no usadas
|
|
95
|
+
- [ ] Sin console.log/print de debugging
|
|
96
|
+
- [ ] Lint y type-check sin errores
|
|
97
|
+
- [ ] Comentarios que aportan valor (no ruido)
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 7. Diff Limpio
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
Verificar:
|
|
104
|
+
- [ ] Solo cambios relacionados a la feature
|
|
105
|
+
- [ ] Sin refactoring "de paso" (Art. II Constitución)
|
|
106
|
+
- [ ] Sin cambios de formato no relacionados
|
|
107
|
+
- [ ] Sin archivos de configuración personal (.vscode, .idea)
|
|
108
|
+
- [ ] Sin archivos binarios innecesarios
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Output
|
|
112
|
+
|
|
113
|
+
Genera `specs/features/<dominio>/revision.md`:
|
|
114
|
+
|
|
115
|
+
```markdown
|
|
116
|
+
# Peer Review: CrearUsuario
|
|
117
|
+
|
|
118
|
+
**Revisor:** Don Cheli Peer Review v2.0
|
|
119
|
+
**Fecha:** 2026-03-21
|
|
120
|
+
**Rigor:** Alto (Arquitecto Senior)
|
|
121
|
+
**Archivos revisados:** 8
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Veredicto: ⚠️ APROBADO CON OBSERVACIONES
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## 1. Corrección Funcional ✅
|
|
130
|
+
- P1: 3/3 escenarios implementados
|
|
131
|
+
- P2: 2/2 escenarios implementados
|
|
132
|
+
- Stubs: 0 detectados
|
|
133
|
+
|
|
134
|
+
## 2. Tests y Cobertura ✅
|
|
135
|
+
- Unitarios: 12/12 ✅
|
|
136
|
+
- Integración: 4/4 ✅
|
|
137
|
+
- BDD: 5/5 ✅
|
|
138
|
+
- Cobertura: 89% (≥ 85% ✅)
|
|
139
|
+
- Nyquist P1: 100% ✅
|
|
140
|
+
|
|
141
|
+
## 3. Rendimiento ⚠️
|
|
142
|
+
|
|
143
|
+
### ⚠️ PERF-001: Consulta N+1 potencial
|
|
144
|
+
**Archivo:** src/services/usuario_service.py:67
|
|
145
|
+
**Descripción:** Al listar usuarios con sus roles, se ejecuta 1 query por rol.
|
|
146
|
+
```python
|
|
147
|
+
# Actual (N+1)
|
|
148
|
+
for user in users:
|
|
149
|
+
user.roles = await role_repo.find_by_user(user.id)
|
|
150
|
+
|
|
151
|
+
# Sugerido (1 query)
|
|
152
|
+
user_ids = [u.id for u in users]
|
|
153
|
+
roles_map = await role_repo.find_by_users(user_ids)
|
|
154
|
+
for user in users:
|
|
155
|
+
user.roles = roles_map.get(user.id, [])
|
|
156
|
+
```
|
|
157
|
+
**Impacto:** Bajo ahora (pocos usuarios), pero escala linealmente.
|
|
158
|
+
**Acción:** Corregir antes de que la tabla usuarios crezca.
|
|
159
|
+
|
|
160
|
+
## 4. Arquitectura y Diseño ✅
|
|
161
|
+
- Constitución: todos los artículos ✅
|
|
162
|
+
- SOLID: sin violaciones detectadas
|
|
163
|
+
- Separación de concerns: controller thin ✅
|
|
164
|
+
- DI: todas las dependencias inyectadas ✅
|
|
165
|
+
|
|
166
|
+
## 5. Seguridad ✅
|
|
167
|
+
- Input validado con Pydantic ✅
|
|
168
|
+
- Queries parametrizadas (SQLAlchemy) ✅
|
|
169
|
+
- Password con argon2id ✅
|
|
170
|
+
- Sin credenciales en código ✅
|
|
171
|
+
|
|
172
|
+
## 6. Estilo y Convenciones ✅
|
|
173
|
+
- Naming consistente ✅
|
|
174
|
+
- Lint: 0 errores ✅
|
|
175
|
+
- Type-check: 0 errores ✅
|
|
176
|
+
- Sin console.log ✅
|
|
177
|
+
|
|
178
|
+
## 7. Diff Limpio ✅
|
|
179
|
+
- Solo archivos de la feature ✅
|
|
180
|
+
- Sin cambios de formato ✅
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Resumen de Hallazgos
|
|
185
|
+
|
|
186
|
+
| ID | Tipo | Severidad | Estado |
|
|
187
|
+
|----|------|-----------|--------|
|
|
188
|
+
| PERF-001 | Rendimiento | ⚠️ Medio | Pendiente |
|
|
189
|
+
|
|
190
|
+
## Recomendaciones
|
|
191
|
+
1. Corregir N+1 en listado de usuarios (PERF-001)
|
|
192
|
+
2. Considerar agregar índice en `email` si aún no existe
|
|
193
|
+
3. Agregar rate limiting en POST /usuarios para v2
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Niveles de Rigor
|
|
197
|
+
|
|
198
|
+
| Rigor | Quién simula | Dimensiones | Cuándo usar |
|
|
199
|
+
|-------|-------------|-------------|-------------|
|
|
200
|
+
| **Básico** | Developer Jr | 1, 2, 6 | Fix rápido, cambio menor |
|
|
201
|
+
| **Estándar** | Senior Dev | 1-4, 6, 7 | Features estándar |
|
|
202
|
+
| **Alto** | Arquitecto Senior | 1-7 (todas) | Features críticas, auth, pagos |
|
|
203
|
+
|
|
204
|
+
## Integración con Pipeline
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
/especdev:implementar → código completo
|
|
208
|
+
→ /especdev:revisar → reporte de review
|
|
209
|
+
→ ¿Aprobado?
|
|
210
|
+
├── ✅ APROBADO → listo para PR
|
|
211
|
+
├── ⚠️ CON OBSERVACIONES → corregir hallazgos → re-revisar
|
|
212
|
+
└── ❌ RECHAZADO → cambios significativos necesarios
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Guardrails
|
|
216
|
+
|
|
217
|
+
- **Nunca** aprobar código con stubs críticos
|
|
218
|
+
- **Nunca** aprobar sin tests (Ley de Hierro #1)
|
|
219
|
+
- **Nunca** ignorar hallazgos de seguridad
|
|
220
|
+
- **Siempre** verificar cumplimiento de constitución
|
|
221
|
+
- **Siempre** documentar hallazgos con archivo + línea + sugerencia
|
|
222
|
+
|
|
223
|
+
## Regla Adversarial
|
|
224
|
+
|
|
225
|
+
Inspirada en el framework BMAD: el reviewer DEBE encontrar al menos un hallazgo concreto en cada revisión.
|
|
226
|
+
|
|
227
|
+
- Si el review produce **cero hallazgos**, se activa una segunda pasada obligatoria con instrucción explícita: "Re-analizar buscando específicamente: N+1 queries, race conditions, edge cases no testeados, datos sensibles en logs, y naming inconsistencies."
|
|
228
|
+
- Si la segunda pasada también produce cero hallazgos, se debe incluir una justificación explícita de por qué el código es excepcionalmente limpio.
|
|
229
|
+
- **Nunca** aprobar con "todo se ve bien" sin evidencia de análisis profundo.
|
|
230
|
+
|
|
231
|
+
Esto combate la tendencia natural del LLM a aprobar trabajo propio sin challenge suficiente.
|