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,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Detectar ambigüedades y contradicciones en specs de forma exhaustiva
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:detectar-ambiguedad
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Escanear specs en busca de ambigüedades, contradicciones, requisitos implícitos y campos faltantes. Va más allá de la clarificación básica — es un análisis exhaustivo de la calidad de la spec.
|
|
11
|
+
|
|
12
|
+
> Basado en la práctica de MELI: "La ambigüedad es el bottleneck #1 del AI coding."
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:detectar-ambiguedad @specs/features/<dominio>/<Feature>.feature
|
|
18
|
+
/especdev:detectar-ambiguedad --todos # Escanear todas las specs activas
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Qué Detecta
|
|
22
|
+
|
|
23
|
+
### 1. Ambigüedades Lingüísticas
|
|
24
|
+
- Pronombres sin referente claro ("esto se envía", "eso se valida")
|
|
25
|
+
- Cuantificadores vagos ("algunos", "varios", "muchos")
|
|
26
|
+
- Verbos pasivos sin sujeto ("será procesado", "se debe validar")
|
|
27
|
+
|
|
28
|
+
### 2. Contradicciones Internas
|
|
29
|
+
- Escenario A dice "email obligatorio", Escenario B no lo valida
|
|
30
|
+
- Plan dice "async", tasks dice "sync"
|
|
31
|
+
- Schema dice `NOT NULL`, spec no tiene escenario de validación
|
|
32
|
+
|
|
33
|
+
### 3. Requisitos Implícitos No Documentados
|
|
34
|
+
- "El usuario se registra" → ¿Qué pasa con confirmación por email?
|
|
35
|
+
- "Se guarda en BD" → ¿Qué campos son obligatorios?
|
|
36
|
+
- "Se envía notificación" → ¿A quién? ¿Cuándo? ¿Cómo?
|
|
37
|
+
|
|
38
|
+
### 4. Gaps de Cobertura
|
|
39
|
+
- Happy path sin sad path correspondiente
|
|
40
|
+
- Campos en DBML sin validación en Gherkin
|
|
41
|
+
- Endpoints sin manejo de errores
|
|
42
|
+
|
|
43
|
+
## Output
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
=== Análisis de Ambigüedad ===
|
|
47
|
+
|
|
48
|
+
Feature: GestionarPedidos.feature
|
|
49
|
+
Score de Claridad: 72/100
|
|
50
|
+
|
|
51
|
+
## 🔴 Contradicciones (3)
|
|
52
|
+
1. Línea 15: "el pedido se crea" vs Línea 42: "el pedido requiere aprobación"
|
|
53
|
+
→ ¿Se crea directo o necesita aprobación?
|
|
54
|
+
2. Línea 23: campo "estado" acepta "activo" vs DBML: enum no incluye "activo"
|
|
55
|
+
3. Escenario 3 y Escenario 7 usan distinto formato de fecha
|
|
56
|
+
|
|
57
|
+
## 🟡 Ambigüedades (5)
|
|
58
|
+
1. Línea 8: "se notifica al usuario" → ¿email? ¿push? ¿in-app?
|
|
59
|
+
2. Línea 31: "se valida el pago" → ¿qué proveedor? ¿qué criterios?
|
|
60
|
+
3. Línea 45: "datos del cliente" → ¿cuáles exactamente?
|
|
61
|
+
4. Línea 52: "en tiempo razonable" → ¿cuánto es razonable?
|
|
62
|
+
5. Línea 67: "se procesa" → ¿quién? ¿cuándo? ¿cómo?
|
|
63
|
+
|
|
64
|
+
## 🟢 Requisitos Implícitos Detectados (2)
|
|
65
|
+
1. No hay escenario para cancelar pedido después de pago
|
|
66
|
+
2. No hay manejo de timeout en validación de pago
|
|
67
|
+
|
|
68
|
+
## Recomendaciones
|
|
69
|
+
- Resolver contradicciones ANTES de avanzar a fase Plan
|
|
70
|
+
- Score mínimo recomendado: 85/100
|
|
71
|
+
- Score actual: 72/100 → NO AVANZAR
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Score de Claridad
|
|
75
|
+
|
|
76
|
+
| Rango | Clasificación | Acción |
|
|
77
|
+
|-------|--------------|--------|
|
|
78
|
+
| 90-100 | Cristalino | ✅ Avanzar |
|
|
79
|
+
| 80-89 | Claro | ✅ Avanzar con notas |
|
|
80
|
+
| 70-79 | Aceptable | ⚠️ Resolver ambigüedades primero |
|
|
81
|
+
| <70 | Ambiguo | ❌ NO avanzar, reescribir |
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Verificar la salud del setup de Don Cheli en el proyecto actual
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:diagnostico
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Verificar que el setup de Don Cheli en el proyecto está completo y funcional. Detecta archivos faltantes, configuración inconsistente y problemas comunes.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:diagnostico
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Comportamiento
|
|
19
|
+
|
|
20
|
+
Ejecutar verificaciones en 4 categorías:
|
|
21
|
+
|
|
22
|
+
### 1. Estructura .especdev/
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
Verificando .especdev/...
|
|
26
|
+
✅ config.yaml existe y es válido
|
|
27
|
+
✅ estado.md existe
|
|
28
|
+
✅ plan.md existe
|
|
29
|
+
⚠️ hallazgos.md no existe (se creará al explorar)
|
|
30
|
+
✅ progreso.md existe
|
|
31
|
+
✅ memoria/ directorio existe
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### 2. Configuración
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Verificando configuración...
|
|
38
|
+
✅ proyecto.nombre definido: "mi-proyecto"
|
|
39
|
+
✅ proyecto.tipo válido: "servicio"
|
|
40
|
+
✅ modelos.default definido: "sonnet"
|
|
41
|
+
⚠️ idioma no definido (usando default: "es")
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 3. Entorno
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Verificando entorno...
|
|
48
|
+
✅ Git inicializado
|
|
49
|
+
✅ Branch actual: feature/auth
|
|
50
|
+
✅ Docker disponible (para /especdev:implementar)
|
|
51
|
+
⚠️ Docker Compose no encontrado (opcional)
|
|
52
|
+
✅ Node/Python/Go detectado (según stack)
|
|
53
|
+
✅ Linter configurado
|
|
54
|
+
✅ Tests configurados
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### 4. Pipeline
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Verificando pipeline...
|
|
61
|
+
✅ specs/features/ directorio existe
|
|
62
|
+
✅ 3 features encontradas (2 @lista, 1 @borrador)
|
|
63
|
+
⚠️ specs/db_schema/ no existe (se creará al especificar)
|
|
64
|
+
✅ Constitución presente (reglas/constitucion.md)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Output
|
|
68
|
+
|
|
69
|
+
```markdown
|
|
70
|
+
## Diagnóstico Don Cheli: mi-proyecto
|
|
71
|
+
|
|
72
|
+
| Categoría | Estado | Problemas |
|
|
73
|
+
|-----------|--------|-----------|
|
|
74
|
+
| Estructura | ✅ OK | 0 |
|
|
75
|
+
| Configuración | ⚠️ Warning | 1 warning |
|
|
76
|
+
| Entorno | ⚠️ Warning | 1 warning |
|
|
77
|
+
| Pipeline | ✅ OK | 0 |
|
|
78
|
+
|
|
79
|
+
### Warnings
|
|
80
|
+
1. `idioma` no definido en config.yaml → agregar `idioma: "es"`
|
|
81
|
+
2. Docker Compose no encontrado → instalar para usar `/especdev:implementar`
|
|
82
|
+
|
|
83
|
+
### Resultado: ✅ SALUDABLE (2 warnings menores)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## Resultados Posibles
|
|
87
|
+
|
|
88
|
+
| Resultado | Significado |
|
|
89
|
+
|-----------|-------------|
|
|
90
|
+
| ✅ **SALUDABLE** | Todo funciona, warnings son opcionales |
|
|
91
|
+
| ⚠️ **FUNCIONAL** | Funciona pero con limitaciones |
|
|
92
|
+
| ❌ **REQUIERE ATENCIÓN** | Archivos críticos faltantes, ejecutar `/especdev:iniciar` |
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Diseño técnico con decisiones de arquitectura documentadas
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:diseñar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Crear un documento de diseño técnico entre la planificación y el desglose de tareas. Documenta decisiones de arquitectura, trade-offs evaluados, y el diseño detallado del sistema.
|
|
11
|
+
|
|
12
|
+
> Adaptado de `sdd-design` de Gentle-AI — separa la planificación del diseño técnico.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:diseñar @specs/features/<dominio>/<Feature>.plan.md
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Diferencia con planificar-tecnico
|
|
21
|
+
|
|
22
|
+
| `/especdev:planificar-tecnico` | `/especdev:diseñar` |
|
|
23
|
+
|-------------------------------|---------------------|
|
|
24
|
+
| Blueprint: contratos API, modelos, servicios | Decisiones de arquitectura y trade-offs |
|
|
25
|
+
| QUÉ vamos a construir | CÓMO y POR QUÉ así |
|
|
26
|
+
| Rápido, estructurado | Profundo, con análisis |
|
|
27
|
+
|
|
28
|
+
## Output
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
# Diseño Técnico: Sistema de Autenticación OAuth
|
|
32
|
+
|
|
33
|
+
## Decisiones de Arquitectura
|
|
34
|
+
|
|
35
|
+
### ADR-001: Strategy Pattern para Providers
|
|
36
|
+
- **Estado:** Aceptada
|
|
37
|
+
- **Contexto:** Necesitamos soportar Google, GitHub, y posiblemente más
|
|
38
|
+
- **Opciones evaluadas:**
|
|
39
|
+
1. If/else por provider → No extensible
|
|
40
|
+
2. Strategy Pattern → Extensible, testeable ✅
|
|
41
|
+
3. Plugin system → Over-engineering para esta fase
|
|
42
|
+
- **Consecuencias:** Cada provider es una clase independiente
|
|
43
|
+
|
|
44
|
+
### ADR-002: Tokens en BD vs Redis
|
|
45
|
+
- **Estado:** Aceptada
|
|
46
|
+
- **Decisión:** BD con TTL automático
|
|
47
|
+
- **Razón:** No queremos agregar Redis como dependencia solo para tokens
|
|
48
|
+
|
|
49
|
+
## Diagramas
|
|
50
|
+
|
|
51
|
+
### Flujo de Autenticación
|
|
52
|
+
```
|
|
53
|
+
Usuario → Redirect a Google → Callback → Verificar Token
|
|
54
|
+
→ Buscar/Crear usuario local → Generar JWT interno → Responder
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Complejidad
|
|
58
|
+
| Componente | Complejidad | Notas |
|
|
59
|
+
|-----------|-------------|-------|
|
|
60
|
+
| OAuthProvider interface | Baja | Strategy pattern simple |
|
|
61
|
+
| GoogleProvider | Media | API de Google bien documentada |
|
|
62
|
+
| Account linking | Alta | Lógica de merge de cuentas |
|
|
63
|
+
| Token refresh | Media | Background job necesario |
|
|
64
|
+
|
|
65
|
+
## Estado: APROBADO PARA IMPLEMENTACIÓN
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Pipeline Actualizado (9 Fases)
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
explorar → proponer → especificar → clarificar
|
|
72
|
+
→ planificar-tecnico → diseñar → desglosar
|
|
73
|
+
→ implementar → revisar
|
|
74
|
+
```
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Diagnosticar y reparar problemas del framework, git y entorno
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:doctor
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Detectar y reparar automáticamente problemas comunes del framework, estado de git, worktrees, y entorno de desarrollo. Es el "médico" del proyecto.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:doctor # Diagnóstico completo + reparación automática
|
|
16
|
+
/especdev:doctor --solo-diagnostico # Solo reportar, no reparar
|
|
17
|
+
/especdev:doctor --git # Solo problemas de git
|
|
18
|
+
/especdev:doctor --framework # Solo problemas del framework
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Checks Realizados
|
|
22
|
+
|
|
23
|
+
### Git Health
|
|
24
|
+
| Check | Detecta | Auto-repair |
|
|
25
|
+
|-------|---------|-------------|
|
|
26
|
+
| Detached HEAD | `git status` sin branch | `git checkout <branch>` |
|
|
27
|
+
| Stale lock files | `.git/index.lock` huérfano | Eliminar si proceso no existe |
|
|
28
|
+
| Worktrees huérfanos | Worktrees sin directorio de trabajo | `git worktree prune` |
|
|
29
|
+
| Branches huérfanas | Branches sin remote y sin actividad > 30 días | Listar para limpieza manual |
|
|
30
|
+
| Merge conflicts sin resolver | `<<<` markers en archivos tracked | Listar archivos afectados |
|
|
31
|
+
| Unstaged changes perdidos | Archivos modificados no commiteados | Warning + sugerir stash |
|
|
32
|
+
| Default branch detection | main vs master vs develop | Auto-detectar y configurar |
|
|
33
|
+
|
|
34
|
+
### Framework Health
|
|
35
|
+
| Check | Detecta | Auto-repair |
|
|
36
|
+
|-------|---------|-------------|
|
|
37
|
+
| Archivos .especdev faltantes | estado.md, plan.md, etc. no existen | Regenerar desde plantilla |
|
|
38
|
+
| config.yaml corrupto | YAML inválido | Regenerar con valores default |
|
|
39
|
+
| Versión desactualizada | VERSION < latest | Notificar actualización disponible |
|
|
40
|
+
| Capturas no procesadas | capturas.md con > 10 items pendientes | Warning |
|
|
41
|
+
| Sesión huérfana | Lock de sesión sin proceso activo | Limpiar lock |
|
|
42
|
+
| Habilidades faltantes | Referencia a habilidad que no existe | Warning + listar |
|
|
43
|
+
|
|
44
|
+
### Environment Health
|
|
45
|
+
| Check | Detecta | Auto-repair |
|
|
46
|
+
|-------|---------|-------------|
|
|
47
|
+
| Node/Python no instalado | Runtime requerido no disponible | Warning con instrucciones |
|
|
48
|
+
| Docker no corriendo | Docker daemon parado | Warning |
|
|
49
|
+
| Puerto ocupado | Puerto 3000/5432/6379 en uso | Listar procesos |
|
|
50
|
+
| .env faltante | No existe .env pero sí .env.example | Copiar .env.example → .env |
|
|
51
|
+
| Dependencias desactualizadas | package-lock.json más viejo que package.json | `npm install` |
|
|
52
|
+
|
|
53
|
+
## Output
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
🏥 Don Cheli Doctor — Diagnóstico Completo
|
|
57
|
+
|
|
58
|
+
Git Health:
|
|
59
|
+
✅ Branch: main (up to date with origin)
|
|
60
|
+
✅ No stale locks
|
|
61
|
+
⚠️ 2 worktrees huérfanos detectados → limpiados
|
|
62
|
+
✅ No merge conflicts
|
|
63
|
+
|
|
64
|
+
Framework Health:
|
|
65
|
+
✅ .especdev/ completo (5/5 archivos)
|
|
66
|
+
✅ config.yaml válido
|
|
67
|
+
⚠️ 3 capturas pendientes de procesar
|
|
68
|
+
✅ Versión 1.7.0 (última)
|
|
69
|
+
|
|
70
|
+
Environment:
|
|
71
|
+
✅ Node v22.2.0
|
|
72
|
+
✅ Docker running
|
|
73
|
+
⚠️ Puerto 5432 ocupado (postgres ya corriendo)
|
|
74
|
+
✅ .env existe
|
|
75
|
+
|
|
76
|
+
Resultado: ✅ SALUDABLE (2 warnings, 0 errores)
|
|
77
|
+
Reparaciones: 1 aplicada (worktrees limpiados)
|
|
78
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Test rápido de 5 preguntas para verificar contexto
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:donde-estoy
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Ejecutar un test rápido de 5 preguntas para verificar que el contexto de trabajo está completo.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:donde-estoy
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Las 5 Preguntas
|
|
19
|
+
|
|
20
|
+
| # | Pregunta | Fuente |
|
|
21
|
+
|---|----------|--------|
|
|
22
|
+
| 1 | ¿Dónde estoy? | `estado.md` |
|
|
23
|
+
| 2 | ¿A dónde voy? | `plan.md` |
|
|
24
|
+
| 3 | ¿Cuál es la meta? | `config.yaml` |
|
|
25
|
+
| 4 | ¿Qué he aprendido? | `hallazgos.md` |
|
|
26
|
+
| 5 | ¿Qué he hecho? | `progreso.md` |
|
|
27
|
+
|
|
28
|
+
## Interpretación
|
|
29
|
+
|
|
30
|
+
- ✅ 5/5 → Listo para continuar
|
|
31
|
+
- ⚠️ 3-4/5 → Proceder con precaución
|
|
32
|
+
- ❌ 0-2/5 → Ejecutar `/especdev:iniciar --reparar`
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Crear especificación Gherkin desde un requerimiento con schema DBML auto-generado
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:especificar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Convertir un requerimiento en lenguaje natural a una especificación Gherkin estructurada (`.feature`), incluyendo auto-generación de schema DBML provisional si no existe.
|
|
11
|
+
|
|
12
|
+
> Mejorado con el ciclo de vida DBML de Specular (constitution.md §I-B)
|
|
13
|
+
> Alineado con spec-kit (github/spec-kit) — prioridades P1/P2/P3+, criterios de éxito y marcadores de clarificación
|
|
14
|
+
|
|
15
|
+
## Uso
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/especdev:especificar Tipo: <COMANDO|CONSULTA|EVENTO> Feature: <dominio/Nombre> Dominio: <dominio> Requerimiento: <descripción> Contexto: @<archivo-referencia>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Comportamiento
|
|
22
|
+
|
|
23
|
+
1. **Verificar** si existe `specs/db_schema/<dominio>.dbml`
|
|
24
|
+
- Si **NO existe** → Auto-generar DBML `@provisional` con campos inferidos del requerimiento
|
|
25
|
+
- Si **existe y está ratificado** → Usar como referencia, agregar nuevos campos como `@provisional`
|
|
26
|
+
2. **Analizar** el requerimiento proporcionado
|
|
27
|
+
3. **Identificar** actores, acciones y resultados esperados
|
|
28
|
+
4. **Categorizar** escenarios por prioridad (P1/P2/P3+)
|
|
29
|
+
5. **Generar** escenarios Gherkin con Dado/Cuando/Entonces
|
|
30
|
+
6. **Usar** los nombres de campo EXACTOS del DBML en los escenarios
|
|
31
|
+
7. **Marcar** requisitos ambiguos con `[NECESITA CLARIFICACIÓN]`
|
|
32
|
+
8. **Definir** criterios de éxito medibles y agnósticos de tecnología
|
|
33
|
+
9. **Crear** archivo `.feature` en `specs/features/<dominio>/` con tag `@borrador`
|
|
34
|
+
10. **Incluir** edge cases y escenarios de error
|
|
35
|
+
11. **Generar** checklist de requisitos vacía (`requisitos.md`)
|
|
36
|
+
|
|
37
|
+
## Output
|
|
38
|
+
|
|
39
|
+
### Schema DBML (auto-generado si no existe)
|
|
40
|
+
|
|
41
|
+
```dbml
|
|
42
|
+
// specs/db_schema/usuario.dbml
|
|
43
|
+
// @provisional — Auto-generado por /especdev:especificar
|
|
44
|
+
|
|
45
|
+
Table usuario @provisional {
|
|
46
|
+
id uuid [pk, default: `gen_random_uuid()`]
|
|
47
|
+
email varchar(255) [unique, not null]
|
|
48
|
+
password_hash varchar(255) [not null]
|
|
49
|
+
nombre varchar(100) [not null]
|
|
50
|
+
created_at timestamp [not null, default: `now()`]
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Spec Gherkin
|
|
55
|
+
|
|
56
|
+
```gherkin
|
|
57
|
+
# specs/features/usuario/CrearUsuario.feature
|
|
58
|
+
# Estado: @borrador
|
|
59
|
+
# Rama: feature/crear-usuario
|
|
60
|
+
# Creado: 2026-03-21
|
|
61
|
+
|
|
62
|
+
@borrador
|
|
63
|
+
Feature: Crear Usuario
|
|
64
|
+
Como usuario nuevo
|
|
65
|
+
Quiero registrarme con email y contraseña
|
|
66
|
+
Para poder acceder al sistema
|
|
67
|
+
|
|
68
|
+
## Prioridad P1: Camino Crítico (Must Have)
|
|
69
|
+
|
|
70
|
+
@P1
|
|
71
|
+
Escenario: Registro exitoso
|
|
72
|
+
# Historia: Usuario se registra con datos válidos
|
|
73
|
+
Dado que no existe un usuario con email "test@ejemplo.com"
|
|
74
|
+
Cuando envío una solicitud de registro con:
|
|
75
|
+
| campo | valor |
|
|
76
|
+
| email | test@ejemplo.com |
|
|
77
|
+
| password | MiClave123! |
|
|
78
|
+
| nombre | Test User |
|
|
79
|
+
Entonces el usuario se crea exitosamente
|
|
80
|
+
Y recibo un token de autenticación
|
|
81
|
+
|
|
82
|
+
@P1
|
|
83
|
+
Escenario: Email duplicado
|
|
84
|
+
Dado que existe un usuario con email "test@ejemplo.com"
|
|
85
|
+
Cuando envío una solicitud de registro con email "test@ejemplo.com"
|
|
86
|
+
Entonces la creación debería fallar
|
|
87
|
+
Y el mensaje de error debería indicar "El email ya está registrado"
|
|
88
|
+
|
|
89
|
+
## Prioridad P2: Importante (Should Have)
|
|
90
|
+
|
|
91
|
+
@P2
|
|
92
|
+
Escenario: Campo obligatorio vacío
|
|
93
|
+
Cuando envío una solicitud de registro con:
|
|
94
|
+
| campo | valor |
|
|
95
|
+
| email | test@ejemplo.com |
|
|
96
|
+
| password | MiClave123! |
|
|
97
|
+
| nombre | |
|
|
98
|
+
Entonces la creación debería fallar
|
|
99
|
+
Y el mensaje de error debería indicar "El nombre es obligatorio"
|
|
100
|
+
|
|
101
|
+
@P2
|
|
102
|
+
Escenario: Contraseña débil
|
|
103
|
+
# [NECESITA CLARIFICACIÓN] ¿Cuáles son los requisitos exactos de fortaleza de contraseña?
|
|
104
|
+
Cuando envío una solicitud de registro con:
|
|
105
|
+
| campo | valor |
|
|
106
|
+
| email | test@ejemplo.com |
|
|
107
|
+
| password | 123 |
|
|
108
|
+
| nombre | Test User |
|
|
109
|
+
Entonces la creación debería fallar
|
|
110
|
+
Y el mensaje de error debería indicar "La contraseña no cumple los requisitos"
|
|
111
|
+
|
|
112
|
+
## Prioridad P3+: Deseable (Nice to Have)
|
|
113
|
+
|
|
114
|
+
@P3
|
|
115
|
+
Escenario: Registro con proveedor OAuth
|
|
116
|
+
# [NECESITA CLARIFICACIÓN] ¿Se soporta OAuth? ¿Qué proveedores?
|
|
117
|
+
Dado que el usuario tiene una cuenta de Google
|
|
118
|
+
Cuando inicia registro con Google OAuth
|
|
119
|
+
Entonces el usuario se crea con los datos del proveedor
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Criterios de Éxito
|
|
123
|
+
|
|
124
|
+
Los criterios se incluyen al final del `.feature` como comentarios estructurados:
|
|
125
|
+
|
|
126
|
+
```gherkin
|
|
127
|
+
# === CRITERIOS DE ÉXITO ===
|
|
128
|
+
# Experiencia de Usuario:
|
|
129
|
+
# - El registro se completa en menos de 3 pasos
|
|
130
|
+
# - Los errores de validación son claros y accionables
|
|
131
|
+
# Rendimiento:
|
|
132
|
+
# - El registro responde en < 500ms (p95)
|
|
133
|
+
# Fiabilidad:
|
|
134
|
+
# - 99.9% de los registros válidos se completan exitosamente
|
|
135
|
+
# Negocio:
|
|
136
|
+
# - Tasa de conversión de registro > 60%
|
|
137
|
+
|
|
138
|
+
# === NECESITA CLARIFICACIÓN ===
|
|
139
|
+
# 1. ¿Cuáles son los requisitos de fortaleza de contraseña? (min longitud, caracteres especiales)
|
|
140
|
+
# 2. ¿Se soporta registro con OAuth? ¿Qué proveedores?
|
|
141
|
+
# 3. ¿El email de bienvenida es síncrono o asíncrono?
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Categorización de Prioridades
|
|
145
|
+
|
|
146
|
+
| Prioridad | Significado | Criterio |
|
|
147
|
+
|-----------|-------------|----------|
|
|
148
|
+
| **P1** | Camino Crítico (Must Have) | Sin esto, la feature no funciona |
|
|
149
|
+
| **P2** | Importante (Should Have) | Necesario para calidad de producción |
|
|
150
|
+
| **P3+** | Deseable (Nice to Have) | Mejora la experiencia pero no bloquea |
|
|
151
|
+
|
|
152
|
+
**Regla:** Todo spec DEBE tener al menos 1 escenario P1 (happy path) y 1 escenario P1 (sad path).
|
|
153
|
+
|
|
154
|
+
## Marcadores de Clarificación
|
|
155
|
+
|
|
156
|
+
Usar `[NECESITA CLARIFICACIÓN]` inline cuando:
|
|
157
|
+
- Un requisito es ambiguo
|
|
158
|
+
- Falta información para definir el comportamiento exacto
|
|
159
|
+
- Hay múltiples interpretaciones posibles
|
|
160
|
+
|
|
161
|
+
Estos marcadores se resuelven durante `/especdev:clarificar` y DEBEN estar vacíos antes de avanzar a `/especdev:planificar-tecnico`.
|
|
162
|
+
|
|
163
|
+
## Artefactos Generados
|
|
164
|
+
|
|
165
|
+
| Artefacto | Ruta | Condición |
|
|
166
|
+
|-----------|------|-----------|
|
|
167
|
+
| Schema DBML | `specs/db_schema/<dominio>.dbml` | Solo si no existe |
|
|
168
|
+
| Spec Gherkin | `specs/features/<dominio>/<Feature>.feature` | Siempre |
|
|
169
|
+
| Checklist | `specs/features/<dominio>/requisitos.md` | Siempre (vacía) |
|
|
170
|
+
|
|
171
|
+
## Pipeline Completo
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
/especdev:especificar → .feature + .dbml(@provisional)
|
|
175
|
+
→ /especdev:clarificar → .feature(@lista) + Auto-QA
|
|
176
|
+
→ /especdev:planificar-tecnico → .plan.md (ratifica @provisional)
|
|
177
|
+
→ /especdev:desglosar → .tasks.md
|
|
178
|
+
→ /especdev:implementar → código + tests en Docker
|
|
179
|
+
→ /especdev:revisar → review.md + test-report.html
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
## Puerta de Calidad
|
|
183
|
+
|
|
184
|
+
Este comando produce el tag `@borrador`. El spec DEBE pasar por `/especdev:clarificar` para obtener el tag `@lista` antes de avanzar a la fase Plan.
|
|
185
|
+
|
|
186
|
+
**Criterios de la Puerta 1 (Completitud de Spec):**
|
|
187
|
+
- Cada prioridad P1 tiene al menos un happy path y un sad path
|
|
188
|
+
- Criterios de éxito definidos (al menos 2 medibles)
|
|
189
|
+
- Todos los marcadores `[NECESITA CLARIFICACIÓN]` identificados (se resuelven en clarificar)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Mostrar el estado actual del proyecto Don Cheli
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:estado
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Mostrar un resumen del estado actual del proyecto según los archivos de `.especdev/`.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:estado
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Comportamiento
|
|
19
|
+
|
|
20
|
+
1. **Leer** `.especdev/config.yaml` — nombre y tipo de proyecto
|
|
21
|
+
2. **Leer** `.especdev/estado.md` — fase actual y progreso
|
|
22
|
+
3. **Leer** `.especdev/plan.md` — fases restantes
|
|
23
|
+
4. **Generar** resumen visual
|
|
24
|
+
|
|
25
|
+
## Output
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
=== Estado del Proyecto ===
|
|
29
|
+
|
|
30
|
+
📋 Proyecto: api-pagos (servicio)
|
|
31
|
+
📍 Fase: 3/7 (Diseño)
|
|
32
|
+
📊 Progreso: 40%
|
|
33
|
+
🕐 Última actualización: 2026-03-21 15:30
|
|
34
|
+
|
|
35
|
+
Tareas pendientes: 5
|
|
36
|
+
Hallazgos: 3 registrados
|
|
37
|
+
Sesiones: 4 completadas
|
|
38
|
+
|
|
39
|
+
Velocidad:
|
|
40
|
+
- Sesiones completadas: 4
|
|
41
|
+
- Duración promedio: 2.5h
|
|
42
|
+
- Fases completadas: 2/7
|
|
43
|
+
- Tiempo restante estimado: ~15h
|
|
44
|
+
|
|
45
|
+
Próximo paso: Completar diseño de base de datos
|
|
46
|
+
```
|