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,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Explorar e investigar el codebase antes de proponer cambios
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:explorar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Investigar el codebase existente antes de comprometer un cambio. Entender la arquitectura, patrones, convenciones y dependencias ANTES de modificar nada.
|
|
11
|
+
|
|
12
|
+
> Adaptado de `sdd-explore` de Gentle-AI — fase que Don Cheli no tenía.
|
|
13
|
+
> Mejorado con Modo Supuestos de Get Shit Done (gsd-build/get-shit-done).
|
|
14
|
+
|
|
15
|
+
## Uso
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/especdev:explorar <área o concepto a investigar>
|
|
19
|
+
/especdev:explorar --profundidad <superficial|media|profunda>
|
|
20
|
+
/especdev:explorar --modo supuestos # Modo Supuestos (nuevo)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Dos Modos de Exploración
|
|
24
|
+
|
|
25
|
+
### Modo Interactivo (default)
|
|
26
|
+
|
|
27
|
+
El modo original: el agente investiga y hace preguntas al usuario.
|
|
28
|
+
|
|
29
|
+
**Flujo:** Escanear → Preguntar → Documentar → Repetir (15-20 interacciones típicas)
|
|
30
|
+
|
|
31
|
+
### Modo Supuestos (nuevo)
|
|
32
|
+
|
|
33
|
+
El agente analiza el codebase, forma **supuestos con evidencia**, y el usuario solo confirma o corrige.
|
|
34
|
+
|
|
35
|
+
**Flujo:** Analizar → Presentar supuestos → Usuario confirma/corrige (2-4 interacciones típicas)
|
|
36
|
+
|
|
37
|
+
**Cuándo usar cada modo:**
|
|
38
|
+
|
|
39
|
+
| Situación | Modo recomendado |
|
|
40
|
+
|-----------|------------------|
|
|
41
|
+
| Proyecto nuevo sin código | Interactivo |
|
|
42
|
+
| Codebase existente con >10 archivos | **Supuestos** |
|
|
43
|
+
| Usuario conoce bien el proyecto | **Supuestos** |
|
|
44
|
+
| Dominio complejo o desconocido | Interactivo |
|
|
45
|
+
| Quiero terminar rápido | **Supuestos** |
|
|
46
|
+
|
|
47
|
+
## Comportamiento — Modo Interactivo
|
|
48
|
+
|
|
49
|
+
1. **Escanear** estructura del proyecto (directorios, archivos clave)
|
|
50
|
+
2. **Identificar** stack tecnológico (package.json, requirements.txt, etc.)
|
|
51
|
+
3. **Mapear** patrones existentes (naming, estructura, imports)
|
|
52
|
+
4. **Detectar** convenciones (estilo de código, formato de tests)
|
|
53
|
+
5. **Documentar** hallazgos en `.especdev/hallazgos.md`
|
|
54
|
+
|
|
55
|
+
## Comportamiento — Modo Supuestos
|
|
56
|
+
|
|
57
|
+
### Paso 1: Análisis Silencioso
|
|
58
|
+
|
|
59
|
+
El agente analiza 5-15 archivos relevantes **sin preguntar nada**:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Analizando codebase...
|
|
63
|
+
├── Archivos escaneados: 12
|
|
64
|
+
├── Patrones detectados: 8
|
|
65
|
+
├── Convenciones inferidas: 5
|
|
66
|
+
└── Supuestos formados: 7
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Paso 2: Presentar Supuestos
|
|
70
|
+
|
|
71
|
+
Cada supuesto incluye **evidencia** y **nivel de confianza**:
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
## Supuestos sobre el Módulo de Autenticación
|
|
75
|
+
|
|
76
|
+
### S1: El proyecto usa Repository Pattern [ALTA confianza]
|
|
77
|
+
**Evidencia:**
|
|
78
|
+
- `src/repositories/user_repo.py` existe con interface definida (línea 5-15)
|
|
79
|
+
- `src/services/auth_service.py` recibe repositorio por inyección (línea 8)
|
|
80
|
+
- 3 repositorios más siguen el mismo patrón
|
|
81
|
+
|
|
82
|
+
**Supuesto:** Los nuevos componentes DEBEN seguir Repository Pattern con DI.
|
|
83
|
+
→ ¿Correcto? [sí/no/matiz]
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### S2: Los tests de integración usan base de datos real [MEDIA confianza]
|
|
88
|
+
**Evidencia:**
|
|
89
|
+
- `tests/conftest.py` crea una BD de test (línea 12-20)
|
|
90
|
+
- No hay mocks de BD en `tests/integration/`
|
|
91
|
+
- Pero `tests/unit/` sí usa mocks
|
|
92
|
+
|
|
93
|
+
**Supuesto:** Integration tests = BD real. Unit tests = mocks.
|
|
94
|
+
→ ¿Correcto? [sí/no/matiz]
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### S3: No hay sistema de permisos/roles [ALTA confianza]
|
|
99
|
+
**Evidencia:**
|
|
100
|
+
- No existe archivo de roles ni middleware de permisos
|
|
101
|
+
- El JWT solo contiene `user_id`, sin `role` ni `permissions`
|
|
102
|
+
- No hay tests relacionados con autorización
|
|
103
|
+
|
|
104
|
+
**Supuesto:** La feature nueva NO necesita considerar roles/permisos.
|
|
105
|
+
→ ¿Correcto? [sí/no/matiz]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Paso 3: Confirmar/Corregir
|
|
109
|
+
|
|
110
|
+
El usuario responde con:
|
|
111
|
+
- **"sí"** → Supuesto confirmado
|
|
112
|
+
- **"no"** → Supuesto rechazado (el agente pide la corrección)
|
|
113
|
+
- **"matiz: ..."** → Parcialmente correcto (el agente ajusta)
|
|
114
|
+
|
|
115
|
+
### Paso 4: Generar Hallazgos
|
|
116
|
+
|
|
117
|
+
Los supuestos confirmados se documentan en `.especdev/hallazgos.md` con la misma estructura que el modo interactivo, pero **más rápido**.
|
|
118
|
+
|
|
119
|
+
## Niveles de Confianza
|
|
120
|
+
|
|
121
|
+
| Nivel | Significado | Evidencia requerida |
|
|
122
|
+
|-------|-------------|---------------------|
|
|
123
|
+
| **ALTA** | Patrón consistente en 3+ archivos | ≥3 archivos coinciden |
|
|
124
|
+
| **MEDIA** | Patrón en 1-2 archivos o con excepciones | 1-2 archivos, con contraejemplos |
|
|
125
|
+
| **BAJA** | Inferencia sin evidencia directa | Sin archivos que lo demuestren directamente |
|
|
126
|
+
|
|
127
|
+
**Regla:** Solo presentar supuestos con confianza MEDIA o ALTA. Los de confianza BAJA se descartan o se convierten en preguntas abiertas.
|
|
128
|
+
|
|
129
|
+
## Output
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
## Exploración: Módulo de Autenticación
|
|
133
|
+
|
|
134
|
+
### Stack Detectado
|
|
135
|
+
- Framework: FastAPI 0.115
|
|
136
|
+
- ORM: SQLAlchemy 2.0
|
|
137
|
+
- Auth: JWT con python-jose
|
|
138
|
+
- Tests: pytest + pytest-asyncio
|
|
139
|
+
|
|
140
|
+
### Estructura
|
|
141
|
+
app/
|
|
142
|
+
├── services/auth_service.py (342 líneas)
|
|
143
|
+
├── routers/auth.py (89 líneas)
|
|
144
|
+
├── models/user.py (45 líneas)
|
|
145
|
+
└── middleware/jwt.py (67 líneas)
|
|
146
|
+
|
|
147
|
+
### Convenciones Encontradas
|
|
148
|
+
- Servicios usan async/await
|
|
149
|
+
- Repository pattern con inyección de dependencias
|
|
150
|
+
- Tests unitarios en tests/unit/, integración en tests/integration/
|
|
151
|
+
- Naming: snake_case para todo
|
|
152
|
+
|
|
153
|
+
### Funcionalidad Existente Relevante
|
|
154
|
+
- `auth_service.create_user()` ya existe
|
|
155
|
+
- `jwt.verify_token()` ya existe
|
|
156
|
+
- `UserRepository` interface definida
|
|
157
|
+
|
|
158
|
+
### Supuestos Confirmados (Modo Supuestos)
|
|
159
|
+
- S1 ✅ Repository Pattern con DI es obligatorio
|
|
160
|
+
- S2 ✅ Integration tests = BD real, unit tests = mocks
|
|
161
|
+
- S3 ✅ No hay sistema de roles/permisos
|
|
162
|
+
|
|
163
|
+
### ⚠️ Notas
|
|
164
|
+
- El middleware de auth no cubre rutas /admin/*
|
|
165
|
+
- No hay tests para refresh token
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## Integración con Pipeline
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
/especdev:explorar → hallazgos.md
|
|
172
|
+
→ /especdev:proponer → propuesta de cambio
|
|
173
|
+
→ /especdev:especificar → .feature
|
|
174
|
+
→ ... (pipeline normal)
|
|
175
|
+
```
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Revisión de código IA como pre-commit hook — Guardian Angel
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:guardian
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Ejecutar revisión de código automatizada usando IA como puerta de calidad antes de cada commit. Actúa como un "Ángel Guardián" que valida que el código cumple con los estándares del equipo.
|
|
11
|
+
|
|
12
|
+
> Inspirado en GGA (Gentleman Guardian Angel) de Gentle-AI.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:guardian # Revisar archivos staged
|
|
18
|
+
/especdev:guardian --modo pr # Revisar todos los cambios del branch vs base
|
|
19
|
+
/especdev:guardian --modo ci # Para integración continua
|
|
20
|
+
/especdev:guardian --instalar-hook # Instalar como pre-commit hook
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Cómo Funciona
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
git add <archivos>
|
|
27
|
+
git commit -m "feat: agregar login"
|
|
28
|
+
│
|
|
29
|
+
├── Hook pre-commit se activa
|
|
30
|
+
│ └── /especdev:guardian
|
|
31
|
+
│ ├── Lee archivos staged
|
|
32
|
+
│ ├── Lee reglas de .especdev/estandares.md
|
|
33
|
+
│ ├── Envía al LLM para revisión
|
|
34
|
+
│ └── Resultado:
|
|
35
|
+
│ ├── ✅ PASS → commit permitido
|
|
36
|
+
│ ├── ⚠️ WARN → commit con advertencias
|
|
37
|
+
│ └── ❌ FAIL → commit BLOQUEADO
|
|
38
|
+
│
|
|
39
|
+
└── Resultado del commit
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Estandares de Revisión
|
|
43
|
+
|
|
44
|
+
El archivo `.especdev/estandares.md` define las reglas que el Guardian valida:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
# Estándares de Código
|
|
48
|
+
|
|
49
|
+
## Obligatorios (❌ si falta)
|
|
50
|
+
- [ ] Type hints en todas las firmas de función
|
|
51
|
+
- [ ] No hay `any` / `Any` sin justificación
|
|
52
|
+
- [ ] Tests para lógica de negocio nueva
|
|
53
|
+
- [ ] No credenciales en código fuente
|
|
54
|
+
- [ ] Manejo de errores (no try/catch vacíos)
|
|
55
|
+
|
|
56
|
+
## Recomendados (⚠️ si falta)
|
|
57
|
+
- [ ] Docstrings en funciones públicas
|
|
58
|
+
- [ ] Nombres descriptivos (no variables de 1 letra)
|
|
59
|
+
- [ ] Imports organizados
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Output
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
=== Guardian Angel: Revisión de Código ===
|
|
66
|
+
|
|
67
|
+
Archivos revisados: 3
|
|
68
|
+
Modelo usado: sonnet
|
|
69
|
+
|
|
70
|
+
✅ PASS: app/services/auth_service.py
|
|
71
|
+
• Type hints completos
|
|
72
|
+
• Manejo de errores correcto
|
|
73
|
+
• Tests existentes
|
|
74
|
+
|
|
75
|
+
⚠️ WARN: app/routers/auth.py
|
|
76
|
+
• Falta docstring en endpoint /login (recomendado)
|
|
77
|
+
• Import no usado: `from typing import Optional`
|
|
78
|
+
|
|
79
|
+
❌ FAIL: app/config.py
|
|
80
|
+
• Línea 23: API_KEY hardcodeada — usar variable de entorno
|
|
81
|
+
• Línea 45: try/except vacío que engulre errores
|
|
82
|
+
|
|
83
|
+
RESULTADO: BLOQUEADO (1 FAIL)
|
|
84
|
+
→ Corregir los issues marcados con ❌ antes de commitear
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Caché Inteligente
|
|
88
|
+
|
|
89
|
+
- SHA256 por archivo — solo re-revisa archivos que cambiaron
|
|
90
|
+
- Solo archivos con `PASS` se cachean
|
|
91
|
+
- El caché se invalida si `.especdev/estandares.md` cambia
|
|
92
|
+
|
|
93
|
+
## Selección de Modelo
|
|
94
|
+
|
|
95
|
+
| Tipo de Revisión | Modelo |
|
|
96
|
+
|-----------------|--------|
|
|
97
|
+
| Style / lint | `haiku` (rápido, barato) |
|
|
98
|
+
| Lógica de negocio | `sonnet` (balance) |
|
|
99
|
+
| Seguridad / crypto | `opus` (profundidad) |
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Ejecutar tareas TDD fase por fase dentro de Docker hasta que todos los tests pasen
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:implementar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Ejecutar las tareas generadas por `/especdev:desglosar` de forma automatizada, siguiendo el ciclo TDD (RED → GREEN → REFACTOR) dentro de un entorno Docker aislado, con checkpoints formalizados para intervención humana.
|
|
11
|
+
|
|
12
|
+
> Adaptado del comando `speckit.implement` de Specular.
|
|
13
|
+
> Mejorado con Taxonomía de Checkpoints de Get Shit Done (gsd-build/get-shit-done).
|
|
14
|
+
|
|
15
|
+
## Uso
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/especdev:implementar @specs/features/<dominio>/<Feature>.tasks.md
|
|
19
|
+
/especdev:implementar --fase <numero>
|
|
20
|
+
/especdev:implementar --seco # Solo mostrar plan sin ejecutar
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Comportamiento
|
|
24
|
+
|
|
25
|
+
1. **Leer** archivo `.tasks.md`
|
|
26
|
+
2. **Verificar** que Docker está disponible
|
|
27
|
+
3. **Verificar Nyquist** — Validar mapeo tests↔requisitos (Puerta 5)
|
|
28
|
+
4. **Ejecutar** tareas fase por fase con checkpoints
|
|
29
|
+
|
|
30
|
+
### Flujo por Fase
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
┌─ Fase 1: Setup ───────────────────────────────┐
|
|
34
|
+
│ Crear archivos vacíos: modelos, servicios, │
|
|
35
|
+
│ repositorios, controladores, tests │
|
|
36
|
+
│ → Verificar: archivos existen │
|
|
37
|
+
└────────────────────────────────────────────────┘
|
|
38
|
+
│
|
|
39
|
+
┌─ Fase 2: Tests Unitarios (RED) ───────────────┐
|
|
40
|
+
│ Escribir tests que FALLAN │
|
|
41
|
+
│ → docker compose run --rm test │
|
|
42
|
+
│ → Verificar: tests existen y FALLAN (RED) │
|
|
43
|
+
└────────────────────────────────────────────────┘
|
|
44
|
+
│
|
|
45
|
+
┌─ Fase 3: Tests BDD/Integración (RED) ────────┐
|
|
46
|
+
│ Escribir tests BDD desde Gherkin │
|
|
47
|
+
│ → Aplicar patrones ISA (isa.yml) │
|
|
48
|
+
│ → docker compose run --rm test │
|
|
49
|
+
│ → Verificar: tests BDD existen y FALLAN │
|
|
50
|
+
└────────────────────────────────────────────────┘
|
|
51
|
+
│
|
|
52
|
+
┌─ Fase 4: Lógica de Negocio (GREEN) ──────────┐
|
|
53
|
+
│ Implementar código que hace pasar los tests │
|
|
54
|
+
│ → docker compose run --rm test │
|
|
55
|
+
│ → [DETECCIÓN STUBS] automática │
|
|
56
|
+
│ → Verificar: TODOS los tests PASAN (GREEN) │
|
|
57
|
+
└────────────────────────────────────────────────┘
|
|
58
|
+
│
|
|
59
|
+
┌─ Fase 5: Lint & Tipos ───────────────────────┐
|
|
60
|
+
│ → docker compose run --rm lint │
|
|
61
|
+
│ → Verificar: sin errores de lint/tipos │
|
|
62
|
+
└────────────────────────────────────────────────┘
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Taxonomía de Checkpoints
|
|
66
|
+
|
|
67
|
+
Durante la ejecución, hay momentos donde el agente DEBE pausar para intervención humana. Estos se clasifican en 3 tipos:
|
|
68
|
+
|
|
69
|
+
### 1. `[checkpoint:verificar]` — Verificación Humana (90% de los casos)
|
|
70
|
+
|
|
71
|
+
El agente completó una tarea y necesita que el usuario **verifique el resultado** visualmente o funcionalmente.
|
|
72
|
+
|
|
73
|
+
```markdown
|
|
74
|
+
⏸️ CHECKPOINT: verificar
|
|
75
|
+
Tarea: T013 — Implementar UsuarioController
|
|
76
|
+
Verificación: Abrir http://localhost:3000/register y verificar:
|
|
77
|
+
- [ ] El formulario renderiza correctamente
|
|
78
|
+
- [ ] Los campos tienen labels y placeholders
|
|
79
|
+
- [ ] El submit envía los datos al backend
|
|
80
|
+
- [ ] Los errores de validación se muestran al usuario
|
|
81
|
+
|
|
82
|
+
→ ¿Verificado? [sí/no/parcial]
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**Cuándo usar:**
|
|
86
|
+
- UI implementada que requiere verificación visual
|
|
87
|
+
- Flujo de usuario completo que requiere testing manual
|
|
88
|
+
- Integración con servicio externo (OAuth, pagos)
|
|
89
|
+
|
|
90
|
+
### 2. `[checkpoint:decision]` — Decisión Humana (9% de los casos)
|
|
91
|
+
|
|
92
|
+
El agente llegó a un punto donde hay **múltiples opciones válidas** y necesita una decisión del usuario.
|
|
93
|
+
|
|
94
|
+
```markdown
|
|
95
|
+
⏸️ CHECKPOINT: decisión
|
|
96
|
+
Tarea: T010 — Implementar UsuarioService
|
|
97
|
+
Decisión requerida: Estrategia de hashing de contraseña
|
|
98
|
+
|
|
99
|
+
A) bcrypt (estándar, bien conocido, ~100ms/hash)
|
|
100
|
+
B) argon2id (más moderno, más seguro, ~200ms/hash)
|
|
101
|
+
C) scrypt (alternativa, menos popular)
|
|
102
|
+
|
|
103
|
+
Recomendación: B (argon2id) — mejor resistencia a ataques GPU
|
|
104
|
+
→ Tu elección: [A/B/C]
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
**Cuándo usar:**
|
|
108
|
+
- Elección de librería/dependencia externa
|
|
109
|
+
- Decisión arquitectónica con trade-offs
|
|
110
|
+
- Configuración de seguridad
|
|
111
|
+
- Proveedor de servicio externo
|
|
112
|
+
|
|
113
|
+
### 3. `[checkpoint:accion-humana]` — Acción Humana (1% de los casos)
|
|
114
|
+
|
|
115
|
+
El agente necesita que el usuario **haga algo** que no puede automatizarse.
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
⏸️ CHECKPOINT: acción-humana
|
|
119
|
+
Tarea: T015 — Configurar OAuth con Google
|
|
120
|
+
Acción requerida: Crear credenciales en Google Cloud Console
|
|
121
|
+
|
|
122
|
+
1. Ir a https://console.cloud.google.com/apis/credentials
|
|
123
|
+
2. Crear OAuth 2.0 Client ID
|
|
124
|
+
3. Agregar redirect URI: http://localhost:3000/api/auth/callback/google
|
|
125
|
+
4. Copiar Client ID y Client Secret
|
|
126
|
+
|
|
127
|
+
→ Proporcionar:
|
|
128
|
+
- GOOGLE_CLIENT_ID: ___
|
|
129
|
+
- GOOGLE_CLIENT_SECRET: ___
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Cuándo usar:**
|
|
133
|
+
- Configuración de servicios externos (OAuth, DNS, certificados)
|
|
134
|
+
- Acciones en dashboards que no tienen API/CLI
|
|
135
|
+
- Aprobaciones organizacionales
|
|
136
|
+
- Configuración de hardware/dispositivos
|
|
137
|
+
|
|
138
|
+
### Principio: "Si el agente puede ejecutarlo, el agente lo ejecuta"
|
|
139
|
+
|
|
140
|
+
Los checkpoints son **excepciones**, no la norma. Solo usar cuando genuinamente se necesita intervención humana.
|
|
141
|
+
|
|
142
|
+
| Automatizable | NO checkpoint | Ejemplo |
|
|
143
|
+
|---------------|---------------|---------|
|
|
144
|
+
| Instalar dependencia | `npm install bcrypt` | El agente lo ejecuta |
|
|
145
|
+
| Crear migración | `prisma migrate dev` | El agente lo ejecuta |
|
|
146
|
+
| Ejecutar tests | `pytest` | El agente lo ejecuta |
|
|
147
|
+
| Formatear código | `prettier --write .` | El agente lo ejecuta |
|
|
148
|
+
|
|
149
|
+
| No automatizable | SÍ checkpoint | Tipo |
|
|
150
|
+
|------------------|---------------|------|
|
|
151
|
+
| ¿Se ve bien la UI? | Verificar | `verificar` |
|
|
152
|
+
| ¿bcrypt o argon2? | Decidir | `decisión` |
|
|
153
|
+
| Crear API key en dashboard | Acción | `acción-humana` |
|
|
154
|
+
|
|
155
|
+
## Regla Stop-Loss
|
|
156
|
+
|
|
157
|
+
> Si una tarea falla (luz ROJA) más de **3 veces** durante la implementación, el trabajo DEBE detenerse y se DEBE solicitar guía humana. Los ciclos infinitos de fix-break están **PROHIBIDOS**.
|
|
158
|
+
|
|
159
|
+
Integración con **Detección de Loops** (habilidad): si se detecta un loop, escalar según los 3 niveles de escape antes de llegar al stop-loss.
|
|
160
|
+
|
|
161
|
+
## Ejemplo
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
/especdev:implementar @specs/features/usuario/CrearUsuario.tasks.md
|
|
165
|
+
|
|
166
|
+
=== Implementando: CrearUsuario ===
|
|
167
|
+
|
|
168
|
+
📁 Fase 1: Setup
|
|
169
|
+
✅ app/models/usuario.py (creado)
|
|
170
|
+
✅ app/services/usuario_service.py (creado)
|
|
171
|
+
✅ tests/unit/test_usuario_service.py (creado)
|
|
172
|
+
✅ tests/integracion/test_crear_usuario.py (creado)
|
|
173
|
+
|
|
174
|
+
🔴 Fase 2: Tests Unitarios (RED)
|
|
175
|
+
✅ 3 tests escritos
|
|
176
|
+
✅ 3/3 FALLAN (RED esperado)
|
|
177
|
+
|
|
178
|
+
🔴 Fase 3: Tests BDD (RED)
|
|
179
|
+
✅ 4 escenarios BDD escritos (desde .feature)
|
|
180
|
+
✅ 4/4 FALLAN (RED esperado)
|
|
181
|
+
✅ ISA patterns aplicados
|
|
182
|
+
|
|
183
|
+
⏸️ CHECKPOINT: decisión
|
|
184
|
+
Estrategia de hashing: bcrypt vs argon2id
|
|
185
|
+
→ Usuario elige: argon2id
|
|
186
|
+
|
|
187
|
+
🟢 Fase 4: Lógica de Negocio (GREEN)
|
|
188
|
+
✅ UsuarioService.crear() implementado
|
|
189
|
+
✅ Detección de stubs: 0 stubs encontrados
|
|
190
|
+
✅ 7/7 tests PASAN (GREEN)
|
|
191
|
+
|
|
192
|
+
⏸️ CHECKPOINT: verificar
|
|
193
|
+
Abrir http://localhost:3000/register
|
|
194
|
+
→ Usuario verifica: ✅ OK
|
|
195
|
+
|
|
196
|
+
✨ Fase 5: Lint
|
|
197
|
+
✅ Sin errores de lint
|
|
198
|
+
✅ 0 type errors
|
|
199
|
+
|
|
200
|
+
=== COMPLETO ===
|
|
201
|
+
Todos los tests pasan. Feature implementada exitosamente.
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
## Integración con Docker
|
|
205
|
+
|
|
206
|
+
```yaml
|
|
207
|
+
# docker-compose.yml (requerido)
|
|
208
|
+
services:
|
|
209
|
+
test:
|
|
210
|
+
build: .
|
|
211
|
+
command: pytest -v
|
|
212
|
+
volumes:
|
|
213
|
+
- .:/app
|
|
214
|
+
lint:
|
|
215
|
+
build: .
|
|
216
|
+
command: |
|
|
217
|
+
flake8 app/ &&
|
|
218
|
+
mypy app/ --strict
|
|
219
|
+
volumes:
|
|
220
|
+
- .:/app
|
|
221
|
+
reporte:
|
|
222
|
+
build: .
|
|
223
|
+
command: pytest --html=reports/test-report.html --self-contained-html
|
|
224
|
+
volumes:
|
|
225
|
+
- .:/app
|
|
226
|
+
- ./reports:/app/reports
|
|
227
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Incorporar nuevo desarrollador al proyecto con contexto completo
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:incorporar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Generar un briefing completo del proyecto para incorporar a un nuevo desarrollador (humano o agente IA) con el contexto necesario para ser productivo inmediatamente.
|
|
11
|
+
|
|
12
|
+
> Adaptado de `/opsx:onboard` de OpenSpec.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:incorporar
|
|
18
|
+
/especdev:incorporar --rol <backend|frontend|fullstack|devops>
|
|
19
|
+
/especdev:incorporar --profundidad <rapido|completo>
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Output (modo rápido)
|
|
23
|
+
|
|
24
|
+
```markdown
|
|
25
|
+
# Briefing del Proyecto: Mi-App
|
|
26
|
+
|
|
27
|
+
## Tech Stack
|
|
28
|
+
- Framework: Next.js 15 + TypeScript 5.7
|
|
29
|
+
- BD: PostgreSQL 16 + Prisma
|
|
30
|
+
- Auth: NextAuth.js v5
|
|
31
|
+
- Tests: Vitest + Playwright
|
|
32
|
+
|
|
33
|
+
## Arquitectura
|
|
34
|
+
app/
|
|
35
|
+
├── (auth)/ → Rutas de autenticación
|
|
36
|
+
├── (dashboard)/ → Panel principal
|
|
37
|
+
├── api/ → API routes
|
|
38
|
+
└── components/ → UI compartida
|
|
39
|
+
|
|
40
|
+
## Convenciones
|
|
41
|
+
- Código en inglés, commits en español
|
|
42
|
+
- Branches: feature/, fix/, hotfix/
|
|
43
|
+
- Tests obligatorios para lógica de negocio
|
|
44
|
+
- PR máximo 400 líneas
|
|
45
|
+
|
|
46
|
+
## Estado Actual
|
|
47
|
+
- Fase: Desarrollo (4 de 7)
|
|
48
|
+
- Cambios activos: 2
|
|
49
|
+
- agregar-oauth (70% completado)
|
|
50
|
+
- corregir-timeout (pendiente)
|
|
51
|
+
|
|
52
|
+
## Para Empezar
|
|
53
|
+
1. `npm install`
|
|
54
|
+
2. `cp .env.example .env.local`
|
|
55
|
+
3. `docker compose up -d` (PostgreSQL)
|
|
56
|
+
4. `npx prisma migrate dev`
|
|
57
|
+
5. `npm run dev`
|
|
58
|
+
|
|
59
|
+
## Specs Activas
|
|
60
|
+
Ver specs/ para documentación de comportamiento.
|
|
61
|
+
Ver .especdev/cambios/ para cambios en progreso.
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Output (modo completo)
|
|
65
|
+
|
|
66
|
+
Agrega adicionalmente:
|
|
67
|
+
- Decisiones arquitectónicas (ADRs) desde memoria
|
|
68
|
+
- Errores conocidos y workarounds
|
|
69
|
+
- Guía de debugging
|
|
70
|
+
- Patrones de código con ejemplos
|
|
71
|
+
- Flujo completo de un feature típico
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Inicializar Don Cheli en un proyecto nuevo o existente
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:iniciar
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Crear el directorio `.especdev/` con todos los archivos de contexto necesarios para comenzar a trabajar con el framework.
|
|
11
|
+
|
|
12
|
+
## Uso
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
/especdev:iniciar [opciones]
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Opciones
|
|
19
|
+
|
|
20
|
+
| Opción | Descripción | Ejemplo |
|
|
21
|
+
|--------|-------------|---------|
|
|
22
|
+
| `--tipo` | Tipo de proyecto | `--tipo cli` |
|
|
23
|
+
| `--nombre` | Nombre del proyecto | `--nombre "mi-app"` |
|
|
24
|
+
| `--gitignore` | Agregar .gitignore template | `--gitignore` |
|
|
25
|
+
| `--con-hooks` | Inicializar hooks locales | `--con-hooks` |
|
|
26
|
+
| `--reparar` | Reparar archivos faltantes | `--reparar` |
|
|
27
|
+
|
|
28
|
+
## Comportamiento
|
|
29
|
+
|
|
30
|
+
1. **Detectar idioma** — Leer `${FRAMEWORK_HOME}/locale` (set durante instalación). Si no existe, preguntar al usuario.
|
|
31
|
+
2. **Verificar** si `.especdev/` ya existe
|
|
32
|
+
- Si existe: preguntar si desea sobrescribir o reparar
|
|
33
|
+
- Si no existe: continuar
|
|
34
|
+
3. **Crear** directorio `.especdev/`
|
|
35
|
+
4. **Copiar** plantillas desde `plantillas/especdev/`
|
|
36
|
+
5. **Configurar** `config.yaml` con nombre, tipo de proyecto y `framework.idioma` (del locale detectado)
|
|
37
|
+
6. **Inicializar** `estado.md`, `plan.md`, `hallazgos.md`, `progreso.md` — todos en el idioma configurado
|
|
38
|
+
7. **Opcionalmente** crear hooks locales (`--con-hooks`)
|
|
39
|
+
|
|
40
|
+
**IMPORTANTE:** Todos los archivos generados (.md) deben usar la terminología del idioma configurado. Consultar `locales/{locale}.json` para las traducciones correctas de fases, estados, tipos de proyecto, etc.
|
|
41
|
+
|
|
42
|
+
## Archivos Creados
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
.especdev/
|
|
46
|
+
├── config.yaml # Configuración del proyecto
|
|
47
|
+
├── estado.md # Estado actual → Fase 1
|
|
48
|
+
├── plan.md # Plan vacío listo para definir
|
|
49
|
+
├── hallazgos.md # Descubrimientos (vacío)
|
|
50
|
+
├── progreso.md # Log de sesión (vacío)
|
|
51
|
+
└── sesion/ # Directorio para PRD y datos de sesión
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Tipos de Proyecto
|
|
55
|
+
|
|
56
|
+
| Tipo | Descripción |
|
|
57
|
+
|------|-------------|
|
|
58
|
+
| `producto` | Producto completo nuevo |
|
|
59
|
+
| `cli` | Aplicación de línea de comandos |
|
|
60
|
+
| `app` | Aplicación desktop/móvil |
|
|
61
|
+
| `libreria` | Paquete reutilizable |
|
|
62
|
+
| `servicio` | Microservicio/API |
|
|
63
|
+
| `refactor` | Refactoring existente |
|
|
64
|
+
| `correccion` | Corrección de bug |
|
|
65
|
+
|
|
66
|
+
## Ejemplo
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
/especdev:iniciar --tipo servicio --nombre "api-pagos" --gitignore
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Output:
|
|
73
|
+
```
|
|
74
|
+
✅ Don Cheli inicializado
|
|
75
|
+
|
|
76
|
+
Proyecto: api-pagos
|
|
77
|
+
Tipo: servicio
|
|
78
|
+
Directorio: .especdev/
|
|
79
|
+
Archivos: 5 creados
|
|
80
|
+
|
|
81
|
+
Próximo paso: edita .especdev/plan.md para definir tus fases
|
|
82
|
+
```
|