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,234 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Auditoría de seguridad estática del código (OWASP Top 10, SecDevOps)
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:auditar-seguridad
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Realizar una auditoría de seguridad estática del código, identificando vulnerabilidades basadas en OWASP Top 10, exposición de datos sensibles, fallos de autenticación y problemas de configuración.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:auditar-seguridad # Auditar proyecto completo
|
|
16
|
+
/especdev:auditar-seguridad @src/services/auth/ # Auditar módulo específico
|
|
17
|
+
/especdev:auditar-seguridad --foco inyeccion # Enfocarse en un tipo
|
|
18
|
+
/especdev:auditar-seguridad --severidad critica # Solo hallazgos críticos
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Categorías de Auditoría (OWASP Top 10 + extras)
|
|
22
|
+
|
|
23
|
+
### A01: Broken Access Control
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Buscar:
|
|
27
|
+
❌ Endpoints sin middleware de autenticación
|
|
28
|
+
❌ Rutas admin accesibles sin verificar rol
|
|
29
|
+
❌ IDOR (acceso a recursos de otros usuarios via ID)
|
|
30
|
+
❌ Falta de rate limiting en endpoints sensibles
|
|
31
|
+
❌ CORS configurado como "*" en producción
|
|
32
|
+
|
|
33
|
+
Verificar:
|
|
34
|
+
- Cada ruta tiene middleware de auth
|
|
35
|
+
- IDs de usuario se validan contra sesión
|
|
36
|
+
- Rate limiting en login, registro, reset-password
|
|
37
|
+
- CORS whitelist explícita
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### A02: Cryptographic Failures
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
Buscar:
|
|
44
|
+
❌ Passwords en plaintext o con hash débil (MD5, SHA1)
|
|
45
|
+
❌ Tokens/secretos hardcoded en código
|
|
46
|
+
❌ HTTP en vez de HTTPS para datos sensibles
|
|
47
|
+
❌ JWT sin expiración o con secret débil
|
|
48
|
+
❌ Datos sensibles en logs (passwords, tokens, PII)
|
|
49
|
+
|
|
50
|
+
Verificar:
|
|
51
|
+
- Passwords con bcrypt/argon2id (cost factor ≥ 10)
|
|
52
|
+
- Secretos en variables de entorno o secret manager
|
|
53
|
+
- JWT con expiración razonable (≤ 1h access, ≤ 7d refresh)
|
|
54
|
+
- Logs sanitizados (sin PII)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### A03: Injection
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Buscar:
|
|
61
|
+
❌ SQL sin parametrizar (string concatenation)
|
|
62
|
+
❌ NoSQL injection (operadores en queries)
|
|
63
|
+
❌ Command injection (exec, spawn sin sanitizar)
|
|
64
|
+
❌ XSS (innerHTML, dangerouslySetInnerHTML sin sanitizar)
|
|
65
|
+
❌ Path traversal (../../../etc/passwd)
|
|
66
|
+
❌ LDAP injection, XML injection
|
|
67
|
+
|
|
68
|
+
Verificar:
|
|
69
|
+
- Queries parametrizadas o ORM
|
|
70
|
+
- Input sanitizado antes de exec/spawn
|
|
71
|
+
- Output encodado en templates
|
|
72
|
+
- Paths validados contra whitelist
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### A04: Insecure Design
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
Buscar:
|
|
79
|
+
❌ Falta de validación en puntos de entrada
|
|
80
|
+
❌ Business logic bypassable
|
|
81
|
+
❌ Sin límites en operaciones costosas
|
|
82
|
+
❌ Datos sensibles en URL (query params)
|
|
83
|
+
|
|
84
|
+
Verificar:
|
|
85
|
+
- Validación con Pydantic/Zod en cada endpoint
|
|
86
|
+
- Reglas de negocio en service layer (no en controller)
|
|
87
|
+
- Paginación y límites en queries
|
|
88
|
+
- Datos sensibles solo en body/headers
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### A05-A10: Otras Categorías
|
|
92
|
+
|
|
93
|
+
| Categoría | Qué Buscar |
|
|
94
|
+
|-----------|-----------|
|
|
95
|
+
| **A05: Security Misconfiguration** | Debug mode en prod, headers faltantes, default credentials |
|
|
96
|
+
| **A06: Vulnerable Components** | Dependencias con CVEs conocidos |
|
|
97
|
+
| **A07: Auth Failures** | Login sin brute-force protection, session fixation |
|
|
98
|
+
| **A08: Data Integrity** | Deserialización insegura, falta de checksums |
|
|
99
|
+
| **A09: Logging Failures** | Sin audit log para operaciones sensibles |
|
|
100
|
+
| **A10: SSRF** | Requests a URLs proporcionadas por usuario sin validar |
|
|
101
|
+
|
|
102
|
+
### Extra: Secretos y Configuración
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
Buscar:
|
|
106
|
+
❌ .env commitado en git
|
|
107
|
+
❌ API keys en código fuente
|
|
108
|
+
❌ Credenciales en docker-compose.yml
|
|
109
|
+
❌ Private keys en el repositorio
|
|
110
|
+
❌ Tokens en comentarios o TODOs
|
|
111
|
+
|
|
112
|
+
Verificar:
|
|
113
|
+
- .env en .gitignore
|
|
114
|
+
- .env.example sin valores reales
|
|
115
|
+
- Secrets en variable de entorno o secret manager
|
|
116
|
+
- git history limpio de secretos (git-secrets, truffleHog)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Proceso de Auditoría
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
1. ESCANEAR — Análisis estático del código
|
|
123
|
+
├── Patrones de vulnerabilidad por categoría
|
|
124
|
+
├── Dependencias con vulnerabilidades conocidas
|
|
125
|
+
└── Configuración de seguridad
|
|
126
|
+
|
|
127
|
+
2. CLASIFICAR — Severidad de cada hallazgo
|
|
128
|
+
├── 🔴 Crítico: Explotable remotamente, impacto alto
|
|
129
|
+
├── 🟠 Alto: Explotable con condiciones, impacto medio-alto
|
|
130
|
+
├── 🟡 Medio: Requiere acceso o condiciones específicas
|
|
131
|
+
└── 🔵 Bajo: Mejora de seguridad, sin riesgo inmediato
|
|
132
|
+
|
|
133
|
+
3. REPORTAR — Generar reporte estructurado
|
|
134
|
+
|
|
135
|
+
4. PRIORIZAR — Recomendar orden de remediación
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Output
|
|
139
|
+
|
|
140
|
+
```markdown
|
|
141
|
+
## Auditoría de Seguridad: mi-proyecto
|
|
142
|
+
|
|
143
|
+
**Fecha:** 2026-03-21
|
|
144
|
+
**Alcance:** src/ (42 archivos, 3,200 LOC)
|
|
145
|
+
**Auditor:** Don Cheli Security Audit v1.0
|
|
146
|
+
|
|
147
|
+
### Resumen
|
|
148
|
+
|
|
149
|
+
| Severidad | Cantidad |
|
|
150
|
+
|-----------|----------|
|
|
151
|
+
| 🔴 Crítico | 1 |
|
|
152
|
+
| 🟠 Alto | 3 |
|
|
153
|
+
| 🟡 Medio | 2 |
|
|
154
|
+
| 🔵 Bajo | 4 |
|
|
155
|
+
|
|
156
|
+
### Hallazgos
|
|
157
|
+
|
|
158
|
+
#### 🔴 SEC-001: SQL Injection en búsqueda de productos
|
|
159
|
+
**Archivo:** src/services/product_service.py:45
|
|
160
|
+
**Categoría:** A03 (Injection)
|
|
161
|
+
**Descripción:** Query construida con f-string sin parametrizar.
|
|
162
|
+
```python
|
|
163
|
+
# Vulnerable
|
|
164
|
+
query = f"SELECT * FROM products WHERE name LIKE '%{search_term}%'"
|
|
165
|
+
|
|
166
|
+
# Fix recomendado
|
|
167
|
+
query = "SELECT * FROM products WHERE name LIKE %s"
|
|
168
|
+
cursor.execute(query, (f"%{search_term}%",))
|
|
169
|
+
```
|
|
170
|
+
**Impacto:** Acceso total a la base de datos.
|
|
171
|
+
**Remediación:** Usar query parametrizada o ORM.
|
|
172
|
+
**Esfuerzo:** 15 min
|
|
173
|
+
|
|
174
|
+
#### 🟠 SEC-002: JWT sin expiración
|
|
175
|
+
**Archivo:** src/utils/jwt.py:12
|
|
176
|
+
**Categoría:** A02 (Cryptographic Failures)
|
|
177
|
+
**Descripción:** Token se genera sin campo `exp`.
|
|
178
|
+
**Impacto:** Token válido indefinidamente si se filtra.
|
|
179
|
+
**Remediación:** Agregar `exp: now() + 1h` para access token.
|
|
180
|
+
**Esfuerzo:** 10 min
|
|
181
|
+
|
|
182
|
+
#### ... (más hallazgos)
|
|
183
|
+
|
|
184
|
+
### Verificaciones Pasadas ✅
|
|
185
|
+
- Passwords hasheados con bcrypt (cost 12) ✅
|
|
186
|
+
- CORS configurado con whitelist ✅
|
|
187
|
+
- .env en .gitignore ✅
|
|
188
|
+
- HTTPS enforced en producción ✅
|
|
189
|
+
- Rate limiting en /login ✅
|
|
190
|
+
|
|
191
|
+
### Recomendaciones de Remediación (por prioridad)
|
|
192
|
+
1. SEC-001: SQL Injection → INMEDIATO
|
|
193
|
+
2. SEC-002: JWT sin expiración → ANTES DE RELEASE
|
|
194
|
+
3. SEC-003: ... → PRÓXIMO SPRINT
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
## Almacenamiento
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
.especdev/seguridad/
|
|
201
|
+
├── auditoria-2026-03-21.md # Reporte de auditoría
|
|
202
|
+
└── _remediaciones.md # Tracking de fixes
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Integración con Pipeline
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
/especdev:auditar-seguridad → reporte
|
|
209
|
+
→ /especdev:desglosar → tareas de remediación
|
|
210
|
+
→ /especdev:implementar → fixes con TDD
|
|
211
|
+
→ /especdev:auditar-seguridad → verificar fixes
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Se recomienda ejecutar **antes de cada PR** que toque:
|
|
215
|
+
- Autenticación/autorización
|
|
216
|
+
- Manejo de datos de usuario
|
|
217
|
+
- Endpoints públicos
|
|
218
|
+
- Configuración de infraestructura
|
|
219
|
+
|
|
220
|
+
## Modelo Recomendado
|
|
221
|
+
|
|
222
|
+
| Paso | Modelo | Razón |
|
|
223
|
+
|------|--------|-------|
|
|
224
|
+
| Escaneo de patrones | Sonnet | Comprensión de código |
|
|
225
|
+
| Clasificación de severidad | Sonnet | Juicio técnico |
|
|
226
|
+
| Recomendaciones de fix | Sonnet | Código seguro |
|
|
227
|
+
|
|
228
|
+
## Guardrails
|
|
229
|
+
|
|
230
|
+
- **Nunca** exponer hallazgos de seguridad en documentación pública
|
|
231
|
+
- **Nunca** incluir exploits funcionales en el reporte (solo describir)
|
|
232
|
+
- **Siempre** priorizar hallazgos críticos para remediación inmediata
|
|
233
|
+
- **Siempre** verificar fixes con tests específicos de seguridad
|
|
234
|
+
- **Siempre** re-auditar después de remediar
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Auditar componentes del framework
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:auditar
|
|
7
|
+
|
|
8
|
+
## Uso
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
/especdev:auditar [componente]
|
|
12
|
+
/especdev:auditar todo
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Audita la integridad de comandos, habilidades y configuración del framework.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Crear todos los artefactos de planificación de un golpe (fast-forward)
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:avance-rapido
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Crear TODOS los artefactos de planificación de una vez cuando el alcance es claro. En vez de ir paso a paso (proponer → especificar → diseñar → desglosar), este comando genera todo de un golpe.
|
|
11
|
+
|
|
12
|
+
> Adaptado de `/opsx:ff` (fast-forward) de OpenSpec.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:avance-rapido <nombre-del-cambio>
|
|
18
|
+
/especdev:avance-rapido agregar-dark-mode
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Cuándo Usar
|
|
22
|
+
|
|
23
|
+
| Situación | Comando |
|
|
24
|
+
|-----------|---------|
|
|
25
|
+
| Sabes exactamente qué quieres | `/especdev:avance-rapido` ← ESTE |
|
|
26
|
+
| Requisitos poco claros, necesitas investigar | `/especdev:explorar` primero |
|
|
27
|
+
| Quieres ir paso a paso revisando | `/especdev:proponer` + `/especdev:continuar` |
|
|
28
|
+
|
|
29
|
+
## Comportamiento
|
|
30
|
+
|
|
31
|
+
1. **Crear** carpeta de cambio en `.especdev/cambios/<nombre>/`
|
|
32
|
+
2. **Generar** propuesta.md (intención, alcance, enfoque)
|
|
33
|
+
3. **Generar** specs/ (delta specs con requisitos y escenarios)
|
|
34
|
+
4. **Generar** diseño.md (decisiones de arquitectura)
|
|
35
|
+
5. **Generar** tareas.md (desglose TDD)
|
|
36
|
+
6. **Reportar** resumen
|
|
37
|
+
|
|
38
|
+
## Output
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
=== Avance Rápido: agregar-dark-mode ===
|
|
42
|
+
|
|
43
|
+
📁 Carpeta: .especdev/cambios/agregar-dark-mode/
|
|
44
|
+
|
|
45
|
+
✅ propuesta.md — Intención y alcance definidos
|
|
46
|
+
✅ specs/ui-tema.delta.md — 3 requisitos, 7 escenarios
|
|
47
|
+
✅ diseño.md — 2 decisiones de arquitectura
|
|
48
|
+
✅ tareas.md — 4 fases, 8 tareas
|
|
49
|
+
|
|
50
|
+
¡Listo para implementar!
|
|
51
|
+
→ /especdev:aplicar agregar-dark-mode
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Pipeline Rápido vs Completo
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
RÁPIDO (scope claro):
|
|
58
|
+
/especdev:avance-rapido → /especdev:aplicar → /especdev:archivar
|
|
59
|
+
|
|
60
|
+
COMPLETO (scope incierto):
|
|
61
|
+
/especdev:explorar → /especdev:proponer → /especdev:especificar
|
|
62
|
+
→ /especdev:clarificar → /especdev:diseñar → /especdev:desglosar
|
|
63
|
+
→ /especdev:implementar → /especdev:revisar → /especdev:archivar
|
|
64
|
+
```
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Capturar ideas y notas sin interrumpir el flujo de trabajo
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:capturar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Fire-and-forget de ideas durante cualquier fase de trabajo. Permite anotar pensamientos, bugs, mejoras o dudas sin pausar la tarea actual. El sistema clasifica automáticamente cada captura.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:capturar "Deberíamos agregar rate limiting en el login"
|
|
16
|
+
/especdev:capturar --tipo bug "El endpoint /users devuelve 500 con deviceId vacío"
|
|
17
|
+
/especdev:capturar --listar
|
|
18
|
+
/especdev:capturar --procesar
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Clasificación Automática
|
|
22
|
+
|
|
23
|
+
Cada captura se clasifica en una de 5 categorías:
|
|
24
|
+
|
|
25
|
+
| Categoría | Emoji | Criterio | Acción |
|
|
26
|
+
|-----------|-------|----------|--------|
|
|
27
|
+
| `quick-task` | ⚡ | Resoluble en < 5 min, sin impacto en tarea actual | Ejecutar al terminar tarea actual |
|
|
28
|
+
| `inject` | 💉 | Relevante para la tarea en curso | Incorporar al slice actual |
|
|
29
|
+
| `defer` | 📋 | Importante pero no urgente | Agregar al backlog |
|
|
30
|
+
| `replan` | 🔄 | Cambia el alcance o la estrategia | Pausar y replantear |
|
|
31
|
+
| `note` | 📝 | Observación o aprendizaje | Guardar en conocimiento.md |
|
|
32
|
+
|
|
33
|
+
## Comportamiento
|
|
34
|
+
|
|
35
|
+
1. **Capturar** — Agregar entrada a `.especdev/capturas.md` con timestamp y clasificación
|
|
36
|
+
2. **No interrumpir** — La tarea actual continúa sin pausa
|
|
37
|
+
3. **Procesar** — Al completar la tarea actual (o con `--procesar`), revisar capturas pendientes
|
|
38
|
+
4. **Clasificar** — El LLM clasifica automáticamente basándose en el contexto actual
|
|
39
|
+
5. **Ejecutar** — Las `quick-task` se ejecutan inmediatamente; las `inject` se incorporan al plan
|
|
40
|
+
|
|
41
|
+
## Archivo de Capturas
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
# Capturas
|
|
45
|
+
|
|
46
|
+
## Pendientes
|
|
47
|
+
|
|
48
|
+
- [2026-03-22 14:30] ⚡ `quick-task` — Agregar rate limiting en login
|
|
49
|
+
- [2026-03-22 14:45] 📋 `defer` — Evaluar Sportmonks como segundo provider
|
|
50
|
+
- [2026-03-22 15:10] 💉 `inject` — El test de notifications.worker necesita mock de Expo SDK
|
|
51
|
+
|
|
52
|
+
## Procesadas
|
|
53
|
+
|
|
54
|
+
- [2026-03-22 13:00] 📝 `note` — Redis KEYS bloquea en producción → usar SCAN ✅
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Integración con Pipeline
|
|
58
|
+
|
|
59
|
+
- Durante `/especdev:implementar`: las capturas se revisan al final de cada tarea
|
|
60
|
+
- Durante `/especdev:revisar`: las capturas tipo `defer` se incluyen como observaciones
|
|
61
|
+
- Con `/especdev:cerrar-sesion`: las capturas pendientes se transfieren al traspaso
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Ritual de cierre de sesión con auditoría, calidad, aprendizajes y contexto para la próxima sesión
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:cerrar-sesion
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Ritual de fin de sesión que audita cambios, ejecuta checks de calidad, captura aprendizajes y produce un resumen para la próxima sesión. Evita el anti-patrón de cerrar el editor sin guardar contexto.
|
|
11
|
+
|
|
12
|
+
> Adaptado de `wrap-up` de Pro-Workflow (rohitg00/pro-workflow).
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:cerrar-sesion
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Checklist (obligatorio — no saltar pasos)
|
|
21
|
+
|
|
22
|
+
### 1. 📋 Auditoría de Cambios
|
|
23
|
+
- ¿Qué archivos se modificaron?
|
|
24
|
+
- ¿Hay cambios sin commit?
|
|
25
|
+
- ¿Quedaron TODOs en el código?
|
|
26
|
+
- ¿Hay archivos temporales que limpiar?
|
|
27
|
+
|
|
28
|
+
### 2. ✅ Check de Calidad
|
|
29
|
+
- Ejecutar lint
|
|
30
|
+
- Ejecutar typecheck
|
|
31
|
+
- Ejecutar tests
|
|
32
|
+
- ¿Todo pasa? ¿Hay warnings?
|
|
33
|
+
|
|
34
|
+
### 3. 🧠 Captura de Aprendizajes
|
|
35
|
+
- ¿Qué errores se cometieron?
|
|
36
|
+
- ¿Qué patrones funcionaron bien?
|
|
37
|
+
- Formatear como: `[APRENDER] Categoría: Regla`
|
|
38
|
+
|
|
39
|
+
### 4. 🔮 Contexto para Próxima Sesión
|
|
40
|
+
- ¿Cuál es la siguiente tarea lógica?
|
|
41
|
+
- ¿Hay bloqueantes?
|
|
42
|
+
- ¿Qué contexto preservar?
|
|
43
|
+
|
|
44
|
+
### 5. 📝 Resumen
|
|
45
|
+
- Un párrafo: qué se logró, estado actual, qué sigue
|
|
46
|
+
|
|
47
|
+
## Output
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
# Cierre de Sesión — 2026-03-21 16:45
|
|
51
|
+
|
|
52
|
+
## Auditoría
|
|
53
|
+
- Archivos modificados: 8
|
|
54
|
+
- Commits: 3
|
|
55
|
+
- Sin commit: 2 archivos (src/auth.ts, tests/auth.test.ts)
|
|
56
|
+
- TODOs encontrados: 1 (src/auth.ts:45 — "TODO: handle refresh token")
|
|
57
|
+
|
|
58
|
+
## Calidad
|
|
59
|
+
- Lint: ✅ sin errors | ⚠️ 2 warnings
|
|
60
|
+
- TypeCheck: ✅ pasa
|
|
61
|
+
- Tests: ✅ 47/47
|
|
62
|
+
- Coverage: 87%
|
|
63
|
+
|
|
64
|
+
## Aprendizajes
|
|
65
|
+
- [APRENDER] Testing: Siempre mockear el servicio de email en tests de auth
|
|
66
|
+
- [APRENDER] Git: Hacer commits más pequeños — 3 archivos max
|
|
67
|
+
|
|
68
|
+
## Próxima Sesión
|
|
69
|
+
- Tarea: Implementar refresh token (TODO en auth.ts:45)
|
|
70
|
+
- Bloqueante: Ninguno
|
|
71
|
+
- Contexto: Branch feature/oauth, PR #23 abierto
|
|
72
|
+
|
|
73
|
+
## Resumen
|
|
74
|
+
Se completó el login con Google OAuth: 3 endpoints nuevos, 12 tests,
|
|
75
|
+
integración con NextAuth v5. Falta el refresh token (TODO en auth.ts:45).
|
|
76
|
+
PR #23 listo para review excepto por el refresh token.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
🛑 ¿Cambios sin commit? Stash o commit antes de cerrar.
|
|
80
|
+
✅ ¿Listo para cerrar sesión?
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Si Tests Fallan
|
|
84
|
+
|
|
85
|
+
⚠️ **NO cerrar sesión con tests fallando.** Opciones:
|
|
86
|
+
1. Corregir antes de cerrar
|
|
87
|
+
2. Documentar el fallo en el handoff
|
|
88
|
+
3. Crear issue para el próximo que lo agarre
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Detectar ambigüedades en una especificación, ejecutar Auto-QA y registrar respuestas
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:clarificar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Analizar una especificación Gherkin actuando como **Ingeniero QA Estricto**: detectar ambigüedades, ejecutar verificaciones automáticas de consistencia Schema↔Spec, y registrar las respuestas en el archivo `.feature`.
|
|
11
|
+
|
|
12
|
+
> Mejorado con el protocolo Auto-QA de Specular (constitution.md §VIII)
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:clarificar @specs/features/<dominio>/<Feature>.feature
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Comportamiento
|
|
21
|
+
|
|
22
|
+
### Fase 1: Análisis de Ambigüedades (Original)
|
|
23
|
+
|
|
24
|
+
1. **Leer** el archivo `.feature`
|
|
25
|
+
2. **Analizar** cada escenario buscando:
|
|
26
|
+
- Términos ambiguos o no definidos
|
|
27
|
+
- Casos límite no cubiertos
|
|
28
|
+
- Validaciones implícitas
|
|
29
|
+
- Dependencias no mencionadas
|
|
30
|
+
3. **Formular** hasta 5 preguntas dirigidas
|
|
31
|
+
4. **Registrar** las respuestas en el archivo `.feature` como comentarios
|
|
32
|
+
|
|
33
|
+
### Fase 2: Verificación Auto-QA (De Specular)
|
|
34
|
+
|
|
35
|
+
Ejecutar automáticamente **SIN pedir instrucciones adicionales**:
|
|
36
|
+
|
|
37
|
+
#### 2.1 Verificación de Consistencia Schema-Spec (DBML)
|
|
38
|
+
|
|
39
|
+
- Escanear todos los campos mencionados en el Gherkin
|
|
40
|
+
- Comparar contra el schema DBML en `specs/db_schema/<dominio>.dbml`
|
|
41
|
+
- ❌ Error si nombres de campos no coinciden exactamente (ej: `user_id` vs `userId`)
|
|
42
|
+
- ❌ Error si un campo `NOT NULL` en DBML no tiene escenario de validación en Gherkin
|
|
43
|
+
|
|
44
|
+
#### 2.2 Verificación de Convención de Nombres
|
|
45
|
+
|
|
46
|
+
- **Feature COMMAND:** Usar patrón de precondición + postcondición
|
|
47
|
+
- **Feature QUERY:** Usar patrón de precondición + éxito
|
|
48
|
+
|
|
49
|
+
#### 2.3 Auditoría de Escenarios Auto-Generados
|
|
50
|
+
|
|
51
|
+
- Revisar escenarios tagueados `@auto_generado`
|
|
52
|
+
- Marcar los que sean redundantes o lógicamente imposibles
|
|
53
|
+
|
|
54
|
+
### Fase 3: Generar Checklist de Requisitos
|
|
55
|
+
|
|
56
|
+
Generar automáticamente `requisitos.md` con evidencia citada para cada item.
|
|
57
|
+
|
|
58
|
+
## Output
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
=== Reporte Auto-QA ===
|
|
62
|
+
|
|
63
|
+
Feature: CrearUsuario.feature
|
|
64
|
+
|
|
65
|
+
## Ambigüedades Detectadas: 3
|
|
66
|
+
1. ¿Qué longitud mínima/máxima debe tener la contraseña?
|
|
67
|
+
2. ¿Se permite registro con proveedores OAuth (Google, GitHub)?
|
|
68
|
+
3. ¿El email de bienvenida es síncrono o asíncrono?
|
|
69
|
+
|
|
70
|
+
## Verificación Schema-Spec
|
|
71
|
+
✅ PASS: Campo "email" coincide con usuario.dbml
|
|
72
|
+
✅ PASS: Campo "password_hash" tiene escenario de validación
|
|
73
|
+
❌ FAIL: Campo "nombre" en DBML es NOT NULL pero no tiene escenario de validación
|
|
74
|
+
|
|
75
|
+
## Verificación de Convenciones
|
|
76
|
+
✅ PASS: Feature COMMAND usa patrón precondición/postcondición
|
|
77
|
+
⚠️ WARNING: Escenario "Contraseña débil" no verifica postcondición
|
|
78
|
+
|
|
79
|
+
## Auditoría Auto-Generado
|
|
80
|
+
✅ PASS: Sin escenarios redundantes
|
|
81
|
+
|
|
82
|
+
## Resultado
|
|
83
|
+
NO-AVANZAR (1 FAIL)
|
|
84
|
+
→ Acción requerida: Agregar escenario de validación para campo "nombre"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Transición de Estado
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
@borrador → (clarificar pasa Auto-QA) → @lista
|
|
91
|
+
@borrador → (clarificar falla Auto-QA) → @borrador (corregir y re-clarificar)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Puerta de Calidad Asociada
|
|
95
|
+
|
|
96
|
+
Esta comando implementa la **Puerta 2+3** del pipeline:
|
|
97
|
+
- Puerta 2: El header contiene `@lista` (solo si pasa)
|
|
98
|
+
- Puerta 3: Reporte Auto-QA sin ❌ FALLA
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Iniciar tarea con nivel de complejidad auto-detectado (0-4)
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:comenzar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Iniciar una tarea detectando automáticamente el nivel de complejidad (0-4) y ejecutando el flujo apropiado.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:comenzar <descripción de la tarea>
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Auto-Detección de Nivel
|
|
19
|
+
|
|
20
|
+
Evaluar cada dimensión de 0 a 4:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Alcance: 0=1 archivo 1=2-3 archivos 2=módulo 3=multi-módulo 4=sistema
|
|
24
|
+
Incógnitas: 0=ninguna 1=menores 2=algunas 3=significativas 4=fundamentales
|
|
25
|
+
Riesgo: 0=trivial 1=bajo 2=medio 3=alto 4=crítico
|
|
26
|
+
Duración: 0=<30min 1=horas 2=días 3=1-2 semanas 4=semanas+
|
|
27
|
+
|
|
28
|
+
Nivel = max(puntuaciones) // Conservador: gana la dimensión más alta
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Niveles
|
|
32
|
+
|
|
33
|
+
| Nivel | Nombre | Proceso |
|
|
34
|
+
|-------|--------|---------|
|
|
35
|
+
| **0** | Atómico | Ejecutar directamente |
|
|
36
|
+
| **P** | PoC | Hipótesis → Construir → Evaluar → Veredicto |
|
|
37
|
+
| **1** | Micro | Planear → Ejecutar → Verificar |
|
|
38
|
+
| **2** | Estándar | 5 fases (sin Descubrimiento/Crecimiento) |
|
|
39
|
+
| **3** | Complejo | 7 fases completas |
|
|
40
|
+
| **4** | Producto | 7 fases + artefactos completos |
|
|
41
|
+
|
|
42
|
+
**Detección de PoC:** Si la tarea es una pregunta ("¿se puede...?", "¿funciona...?", "¿vale la pena...?") o incluye palabras como "probar", "viabilidad", "validar", "explorar opción" → sugerir `/especdev:poc`.
|
|
43
|
+
|
|
44
|
+
## Comportamiento
|
|
45
|
+
|
|
46
|
+
1. **Analizar** la descripción de la tarea
|
|
47
|
+
2. **Evaluar** las 4 dimensiones (alcance, incógnitas, riesgo, duración)
|
|
48
|
+
3. **Determinar** nivel de complejidad
|
|
49
|
+
4. **Mostrar** evaluación al usuario
|
|
50
|
+
5. **Preguntar** si está de acuerdo o desea ajustar
|
|
51
|
+
6. **Iniciar** flujo del nivel correspondiente
|
|
52
|
+
|
|
53
|
+
## Ejemplo
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
/especdev:comenzar Implementar autenticación JWT con refresh tokens
|
|
57
|
+
|
|
58
|
+
=== Evaluación de Complejidad ===
|
|
59
|
+
|
|
60
|
+
Tarea: Implementar autenticación JWT con refresh tokens
|
|
61
|
+
|
|
62
|
+
Alcance: 3 (multi-módulo: auth, middleware, database)
|
|
63
|
+
Incógnitas: 2 (algunas: estrategia de refresh)
|
|
64
|
+
Riesgo: 3 (alto: seguridad)
|
|
65
|
+
Duración: 2 (días)
|
|
66
|
+
|
|
67
|
+
→ Nivel detectado: 3 (Complejo)
|
|
68
|
+
→ Proceso: 7 fases completas
|
|
69
|
+
|
|
70
|
+
¿Proceder con Nivel 3? (s/n/ajustar)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Escalamiento y Des-escalamiento
|
|
74
|
+
|
|
75
|
+
- Si durante la ejecución se detecta mayor complejidad → escalar nivel
|
|
76
|
+
- Si la complejidad resulta menor → des-escalar nivel
|
|
77
|
+
- Regla de Desviación 4 → escalar al menos 1 nivel
|
|
78
|
+
|
|
79
|
+
## Heurística de Scale-Adaptive Planning
|
|
80
|
+
|
|
81
|
+
Inspirada en el framework BMAD: el nivel de planificación se ajusta automáticamente según la complejidad detectada.
|
|
82
|
+
|
|
83
|
+
| Nivel detectado | Fases que se ejecutan | Fases que se SALTAN |
|
|
84
|
+
|-----------------|----------------------|---------------------|
|
|
85
|
+
| **0 — Atómico** | implementar → verificar | spec, clarificar, planificar, desglosar |
|
|
86
|
+
| **1 — Micro** | especificar (light) → implementar → revisar | clarificar, planificar, desglosar, pseudocódigo |
|
|
87
|
+
| **P — PoC** | hipótesis → construir → evaluar → veredicto | todo el pipeline formal |
|
|
88
|
+
| **2 — Estándar** | especificar → clarificar → planificar → desglosar → implementar → revisar | pseudocódigo (opcional) |
|
|
89
|
+
| **3 — Complejo** | especificar → clarificar → pseudocódigo → planificar → diseñar → desglosar → implementar → revisar | nada se salta |
|
|
90
|
+
| **4 — Producto** | constitución → proponer → especificar → clarificar → pseudocódigo → planificar → diseñar → desglosar → implementar → revisar | nada se salta |
|
|
91
|
+
|
|
92
|
+
**Principio:** No aplicar el mismo proceso a un micro-fix que a una migración de plataforma. La fricción innecesaria es tan dañina como la falta de estructura.
|
|
93
|
+
|
|
94
|
+
### Señales de detección automática
|
|
95
|
+
|
|
96
|
+
| Señal | Sube nivel | Baja nivel |
|
|
97
|
+
|-------|-----------|------------|
|
|
98
|
+
| Archivos afectados > 10 | +1 | |
|
|
99
|
+
| Archivos afectados ≤ 2 | | -1 |
|
|
100
|
+
| Cambio cruza módulos | +1 | |
|
|
101
|
+
| Solo 1 módulo | | -1 |
|
|
102
|
+
| Toca auth/pagos/seguridad | +1 | |
|
|
103
|
+
| Solo wording/config | | -1 |
|
|
104
|
+
| Dependencias externas nuevas | +1 | |
|
|
105
|
+
| Sin dependencias nuevas | | 0 |
|