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,214 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Buscar repos open-source relevantes como referencia antes de implementar
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:minar-referencias
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Buscar y evaluar repositorios open-source, snippets y patrones de referencia relevantes para la tarea actual. Reduce el "empezar de cero" proporcionando implementaciones probadas como guía.
|
|
11
|
+
|
|
12
|
+
> Adaptado de DeepCode (HKUDS/DeepCode) — Code Reference Mining Agent: "descubrir repositorios relevantes y construir knowledge graphs para informar la generación de código."
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:minar-referencias "webhook handler con verificación de firma"
|
|
18
|
+
/especdev:minar-referencias "rate limiter con sliding window"
|
|
19
|
+
/especdev:minar-referencias --stack node,typescript "auth con JWT refresh"
|
|
20
|
+
/especdev:minar-referencias --max 5 "graphql subscriptions"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Por Qué Existe
|
|
24
|
+
|
|
25
|
+
| Sin Minar | Con Minar |
|
|
26
|
+
|-----------|-----------|
|
|
27
|
+
| Implementar desde cero | Partir de patrones probados |
|
|
28
|
+
| Descubrir anti-patrones tarde | Conocer pitfalls de antemano |
|
|
29
|
+
| Reinventar soluciones comunes | Reutilizar lo que funciona |
|
|
30
|
+
| Estimaciones imprecisas | Complejidad real visible |
|
|
31
|
+
|
|
32
|
+
## Comportamiento
|
|
33
|
+
|
|
34
|
+
### Paso 1: Análisis de la Query
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Query: "webhook handler con verificación de firma"
|
|
38
|
+
├── Conceptos clave: webhook, handler, signature verification
|
|
39
|
+
├── Stack detectado: Node.js + TypeScript (de config.yaml)
|
|
40
|
+
├── Dominio: API integration, security
|
|
41
|
+
└── Complejidad estimada: Media
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Paso 2: Búsqueda Multi-Fuente
|
|
45
|
+
|
|
46
|
+
El comando busca en múltiples fuentes (según disponibilidad):
|
|
47
|
+
|
|
48
|
+
| Fuente | Método | Qué Busca |
|
|
49
|
+
|--------|--------|-----------|
|
|
50
|
+
| **GitHub** | API search / web search | Repos con implementaciones similares |
|
|
51
|
+
| **Proyecto actual** | Grep local | Código existente reutilizable |
|
|
52
|
+
| **CodeRAG** | Índice local | Patrones ya indexados |
|
|
53
|
+
| **Memoria** | Engram | Decisiones previas sobre el tema |
|
|
54
|
+
|
|
55
|
+
### Paso 3: Evaluación de Relevancia
|
|
56
|
+
|
|
57
|
+
Cada resultado se evalúa en 4 dimensiones:
|
|
58
|
+
|
|
59
|
+
| Dimensión | Peso | Criterio |
|
|
60
|
+
|-----------|------|----------|
|
|
61
|
+
| **Relevancia** | 40% | ¿Resuelve el mismo problema? |
|
|
62
|
+
| **Calidad** | 25% | Stars, mantenimiento, tests, docs |
|
|
63
|
+
| **Compatibilidad** | 20% | ¿Mismo stack/framework? |
|
|
64
|
+
| **Simplicidad** | 15% | ¿Es adoptable sin refactor mayor? |
|
|
65
|
+
|
|
66
|
+
Score = suma ponderada (0.0 - 1.0)
|
|
67
|
+
|
|
68
|
+
### Paso 4: Extracción de Patrones
|
|
69
|
+
|
|
70
|
+
De los top resultados, se extraen:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
1. Patrón arquitectónico usado
|
|
74
|
+
2. Dependencias clave
|
|
75
|
+
3. Manejo de errores
|
|
76
|
+
4. Edge cases cubiertos
|
|
77
|
+
5. Snippet representativo (≤ 30 líneas)
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## Output
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
## Referencias Minadas: "webhook handler con verificación de firma"
|
|
84
|
+
|
|
85
|
+
Fecha: 2026-03-21 | Stack: Node.js + TypeScript | Resultados: 3
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
### 1. stripe/stripe-node — Webhook Verification (score: 0.91)
|
|
90
|
+
**Repo:** github.com/stripe/stripe-node
|
|
91
|
+
**Archivo:** src/Webhooks.ts
|
|
92
|
+
**Por qué es relevante:** Implementación de referencia de Stripe para verificar firmas HMAC-SHA256.
|
|
93
|
+
|
|
94
|
+
**Patrón:**
|
|
95
|
+
- Verificar firma antes de procesar
|
|
96
|
+
- Tolerancia de timestamp (5 min por defecto)
|
|
97
|
+
- Comparación timing-safe para prevenir timing attacks
|
|
98
|
+
|
|
99
|
+
**Snippet:**
|
|
100
|
+
```typescript
|
|
101
|
+
function verifySignature(payload: string, header: string, secret: string): boolean {
|
|
102
|
+
const timestamp = extractTimestamp(header);
|
|
103
|
+
const signature = extractSignature(header);
|
|
104
|
+
|
|
105
|
+
if (Date.now() / 1000 - timestamp > TOLERANCE) {
|
|
106
|
+
throw new WebhookSignatureError('Timestamp too old');
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const expected = crypto
|
|
110
|
+
.createHmac('sha256', secret)
|
|
111
|
+
.update(`${timestamp}.${payload}`)
|
|
112
|
+
.digest('hex');
|
|
113
|
+
|
|
114
|
+
return crypto.timingSafeEqual(
|
|
115
|
+
Buffer.from(signature),
|
|
116
|
+
Buffer.from(expected)
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
**Lecciones:**
|
|
122
|
+
- Usar `timingSafeEqual` (no `===`) para comparar firmas
|
|
123
|
+
- Validar timestamp para prevenir replay attacks
|
|
124
|
+
- Lanzar error específico (no genérico)
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
### 2. svix/svix-webhooks — Webhook Handler Pattern (score: 0.84)
|
|
129
|
+
**Repo:** github.com/svix/svix-webhooks
|
|
130
|
+
**Por qué es relevante:** SDK de webhooks con patrón de handler idempotente.
|
|
131
|
+
|
|
132
|
+
**Patrón:**
|
|
133
|
+
- Idempotency key en header
|
|
134
|
+
- Queue para procesamiento async
|
|
135
|
+
- Retry automático con backoff
|
|
136
|
+
|
|
137
|
+
**Lecciones:**
|
|
138
|
+
- Separar verificación de procesamiento
|
|
139
|
+
- Idempotencia es obligatoria para webhooks
|
|
140
|
+
- Responder 200 antes de procesar (async)
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
### 3. [Proyecto actual] src/utils/crypto.ts (score: 0.72)
|
|
145
|
+
**Archivo:** src/utils/crypto.ts:15-30
|
|
146
|
+
**Por qué es relevante:** Ya existe un helper de HMAC en el proyecto.
|
|
147
|
+
|
|
148
|
+
**Nota:** Reutilizar `createHmacSignature()` existente en vez de reimplementar.
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Resumen de Decisiones
|
|
153
|
+
|
|
154
|
+
| Decisión | Recomendación | Fuente |
|
|
155
|
+
|----------|--------------|--------|
|
|
156
|
+
| Verificación de firma | HMAC-SHA256 + timestamp | stripe/stripe-node |
|
|
157
|
+
| Comparación de firma | `timingSafeEqual` | stripe/stripe-node |
|
|
158
|
+
| Procesamiento | Async (queue) + responder 200 | svix/svix-webhooks |
|
|
159
|
+
| Helper de HMAC | Reutilizar existente | Proyecto actual |
|
|
160
|
+
| Idempotencia | Idempotency key en header | svix/svix-webhooks |
|
|
161
|
+
|
|
162
|
+
## Próximo Paso
|
|
163
|
+
→ `/especdev:especificar` usando estas referencias como base
|
|
164
|
+
→ O `/especdev:planificar-tecnico` para incorporar los patrones al blueprint
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Integración con Pipeline
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
/especdev:minar-referencias → referencias
|
|
171
|
+
→ /especdev:especificar → specs informadas
|
|
172
|
+
→ /especdev:planificar-tecnico → plan con patrones reales
|
|
173
|
+
→ CodeRAG → indexar patrones útiles para futuro
|
|
174
|
+
|
|
175
|
+
/especdev:minar-referencias → referencias
|
|
176
|
+
→ /especdev:estimar → estimados más precisos (complejidad real)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Integración con CodeRAG
|
|
180
|
+
|
|
181
|
+
Los patrones encontrados se pueden indexar automáticamente:
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
¿Indexar los patrones encontrados en CodeRAG? (s/n)
|
|
185
|
+
> s
|
|
186
|
+
Indexados 3 patrones en .especdev/code-rag/patterns.json
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Almacenamiento
|
|
190
|
+
|
|
191
|
+
```
|
|
192
|
+
.especdev/referencias/
|
|
193
|
+
├── webhook-handler-2026-03-21.md # Resultado de esta búsqueda
|
|
194
|
+
├── rate-limiter-2026-03-15.md # Búsqueda anterior
|
|
195
|
+
└── _index.md # Índice de búsquedas
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Modelo Recomendado
|
|
199
|
+
|
|
200
|
+
| Paso | Modelo | Razón |
|
|
201
|
+
|------|--------|-------|
|
|
202
|
+
| Búsqueda | Haiku | Solo buscar y filtrar |
|
|
203
|
+
| Evaluación de relevancia | Haiku | Scoring simple |
|
|
204
|
+
| Extracción de patrones | Sonnet | Requiere comprensión de código |
|
|
205
|
+
| Resumen de decisiones | Haiku | Formateo |
|
|
206
|
+
|
|
207
|
+
## Guardrails
|
|
208
|
+
|
|
209
|
+
- **Nunca** copiar código con licencias incompatibles sin verificar
|
|
210
|
+
- **Nunca** incluir credenciales o tokens de repos de referencia
|
|
211
|
+
- **Siempre** priorizar código existente en el proyecto sobre externo
|
|
212
|
+
- **Siempre** indicar la fuente y licencia de cada referencia
|
|
213
|
+
- **Siempre** limitar snippets a ≤30 líneas (respetar fair use)
|
|
214
|
+
- **Máximo** 5 referencias por búsqueda (evitar analysis paralysis)
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generar blueprint técnico desde una especificación Gherkin
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:planificar-tecnico
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Generar un blueprint técnico (contratos API, modelos, arquitectura de servicios) desde una especificación Gherkin, incluyendo verificación de constitución y contexto técnico estructurado.
|
|
11
|
+
|
|
12
|
+
> Alineado con spec-kit (github/spec-kit) — Constitution Check, Technical Context y Complexity Tracking
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:planificar-tecnico @specs/features/<dominio>/<Feature>.feature
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Comportamiento
|
|
21
|
+
|
|
22
|
+
1. **Verificar Puerta 2** — El `.feature` debe tener tag `@lista` (pasó `/especdev:clarificar`)
|
|
23
|
+
2. **Verificar** que no hay marcadores `[NECESITA CLARIFICACIÓN]` pendientes
|
|
24
|
+
3. **Ejecutar Chequeo de Constitución** — Validar contra los principios de `reglas/constitucion.md`
|
|
25
|
+
4. **Documentar Contexto Técnico** — Stack, dependencias, restricciones
|
|
26
|
+
5. **Ratificar DBML** — Convertir campos `@provisional` a ratificados
|
|
27
|
+
6. **Generar** contratos API, modelos, arquitectura de servicios
|
|
28
|
+
7. **Registrar Complejidad** — Justificar desviaciones de simplicidad
|
|
29
|
+
8. **Crear** archivo `.plan.md` en `specs/features/<dominio>/`
|
|
30
|
+
|
|
31
|
+
## Output
|
|
32
|
+
|
|
33
|
+
Genera `specs/features/<dominio>/<Feature>.plan.md`:
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
# Blueprint Técnico: CrearUsuario
|
|
37
|
+
|
|
38
|
+
**Rama:** feature/crear-usuario
|
|
39
|
+
**Spec:** specs/features/usuario/CrearUsuario.feature
|
|
40
|
+
**Fecha:** 2026-03-21
|
|
41
|
+
**Estado:** Borrador
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Resumen
|
|
46
|
+
|
|
47
|
+
Implementar registro de usuarios con email/contraseña, incluyendo
|
|
48
|
+
validación, hashing de contraseña y generación de JWT.
|
|
49
|
+
Enfoque técnico: API REST con patrón Controller → Service → Repository.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Chequeo de Constitución
|
|
54
|
+
|
|
55
|
+
Verificación obligatoria contra `reglas/constitucion.md`:
|
|
56
|
+
|
|
57
|
+
| Artículo | Principio | Estado | Notas |
|
|
58
|
+
|----------|-----------|--------|-------|
|
|
59
|
+
| I | Gherkin es Rey | ✅ | Spec @lista aprobada |
|
|
60
|
+
| I-B | Schema como Verdad Viva | ✅ | DBML ratificado |
|
|
61
|
+
| II | Precisión Quirúrgica | ✅ | Cambio mínimo, 1 feature |
|
|
62
|
+
| III | Arquitectura Plug-and-Play | ✅ | Nuevo módulo, no infla existentes |
|
|
63
|
+
| IV | Regla Las Vegas | ✅ | Tests herméticos planificados |
|
|
64
|
+
| IV-B | Punto de Entrada | ✅ | Validación en Controller |
|
|
65
|
+
| V | Estándares Modernos | ✅ | Type hints + Pydantic/Zod |
|
|
66
|
+
| VI | Adaptabilidad | ✅ | Stack detectado: FastAPI |
|
|
67
|
+
| VII | Codificación Defensiva | ✅ | Excepciones custom planificadas |
|
|
68
|
+
|
|
69
|
+
**Resultado: ✅ PASA** — El plan es compatible con la constitución.
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Contexto Técnico
|
|
74
|
+
|
|
75
|
+
| Aspecto | Valor |
|
|
76
|
+
|---------|-------|
|
|
77
|
+
| **Lenguaje** | Python 3.12 / TypeScript 5.x |
|
|
78
|
+
| **Framework** | FastAPI 0.115 / Next.js 15 |
|
|
79
|
+
| **Dependencias** | bcryptjs, python-jose, pydantic |
|
|
80
|
+
| **Almacenamiento** | PostgreSQL 16 + Prisma/SQLAlchemy |
|
|
81
|
+
| **Testing** | pytest + pytest-asyncio / vitest |
|
|
82
|
+
| **Plataforma** | Docker + Linux |
|
|
83
|
+
| **Rendimiento** | < 500ms p95 (de criterios de éxito) |
|
|
84
|
+
| **Escala** | ~1,000 registros/día (estimado) |
|
|
85
|
+
| **Restricciones** | Sin OAuth en v1 (definido en clarificación) |
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Contrato API
|
|
90
|
+
|
|
91
|
+
POST /api/v1/usuarios
|
|
92
|
+
Content-Type: application/json
|
|
93
|
+
|
|
94
|
+
Request:
|
|
95
|
+
{
|
|
96
|
+
"email": "string (required, email format)",
|
|
97
|
+
"password": "string (required, min 8 chars)",
|
|
98
|
+
"nombre": "string (required, max 100 chars)"
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
Response 201:
|
|
102
|
+
{
|
|
103
|
+
"id": "uuid",
|
|
104
|
+
"email": "string",
|
|
105
|
+
"nombre": "string",
|
|
106
|
+
"token": "jwt-string",
|
|
107
|
+
"createdAt": "datetime"
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
Response 400:
|
|
111
|
+
{
|
|
112
|
+
"error": "string",
|
|
113
|
+
"field": "string (optional)"
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
Response 409:
|
|
117
|
+
{
|
|
118
|
+
"error": "El email ya está registrado"
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Modelo de Datos
|
|
124
|
+
|
|
125
|
+
Usuario (ratificado desde DBML):
|
|
126
|
+
- id: UUID (PK, auto-gen)
|
|
127
|
+
- email: String (unique, indexed, NOT NULL)
|
|
128
|
+
- password_hash: String (NOT NULL)
|
|
129
|
+
- nombre: String (max 100, NOT NULL)
|
|
130
|
+
- created_at: DateTime (default: now())
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Arquitectura de Servicios
|
|
135
|
+
|
|
136
|
+
Controller → Service → Repository → Database
|
|
137
|
+
↓
|
|
138
|
+
EmailService (async)
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Dependencias
|
|
143
|
+
|
|
144
|
+
- bcryptjs (hash de contraseña)
|
|
145
|
+
- python-jose / jsonwebtoken (generación JWT)
|
|
146
|
+
- pydantic / zod (validación de DTOs)
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Tracking de Complejidad
|
|
151
|
+
|
|
152
|
+
Justificar cualquier decisión que añade complejidad por encima de la alternativa más simple:
|
|
153
|
+
|
|
154
|
+
| Decisión | Alternativa Simple | Por Qué Se Rechazó |
|
|
155
|
+
|----------|--------------------|---------------------|
|
|
156
|
+
| JWT con refresh token | Solo JWT simple | Requerimiento de seguridad: tokens de corta duración |
|
|
157
|
+
| Email async con cola | Email síncrono | Bloquea respuesta al usuario, riesgo de timeout |
|
|
158
|
+
| Repository pattern | Queries directas | Testabilidad: inyección de dependencias para mocks |
|
|
159
|
+
|
|
160
|
+
Si la tabla está vacía, no hay desviaciones de simplicidad.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Secciones Obligatorias del Plan
|
|
164
|
+
|
|
165
|
+
| Sección | Propósito | Falla si falta |
|
|
166
|
+
|---------|-----------|----------------|
|
|
167
|
+
| **Resumen** | Qué y cómo en 2-3 líneas | Sí |
|
|
168
|
+
| **Chequeo de Constitución** | Validar contra principios | Sí |
|
|
169
|
+
| **Contexto Técnico** | Stack y restricciones | Sí |
|
|
170
|
+
| **Contrato API** | Interfaces públicas | Sí (si hay API) |
|
|
171
|
+
| **Modelo de Datos** | Entidades y relaciones | Sí (si hay datos) |
|
|
172
|
+
| **Arquitectura** | Componentes y flujo | Sí |
|
|
173
|
+
| **Dependencias** | Librerías externas | Sí |
|
|
174
|
+
| **Tracking de Complejidad** | Justificar desviaciones | Sí (puede estar vacía) |
|
|
175
|
+
|
|
176
|
+
## Puerta de Calidad
|
|
177
|
+
|
|
178
|
+
Este comando implementa la **Puerta 4 (Aprobación de Plan)**:
|
|
179
|
+
|
|
180
|
+
- Chequeo de constitución pasa (todos ✅)
|
|
181
|
+
- Sin `[NECESITA CLARIFICACIÓN]` pendiente
|
|
182
|
+
- Contexto técnico completo
|
|
183
|
+
- DBML ratificado (sin campos `@provisional`)
|
|
184
|
+
- Tracking de complejidad documentado
|
|
185
|
+
|
|
186
|
+
Si algún artículo de la constitución no pasa → **NO-AVANZAR** hasta resolver.
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Planning semanal de equipo con revisión de RFCs, priorización, asignación por responsable/pareja/squad y seguimiento
|
|
3
|
+
i18n: true
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /especdev:planning
|
|
7
|
+
|
|
8
|
+
## Objetivo
|
|
9
|
+
|
|
10
|
+
Facilitar el planning semanal de un equipo de desarrollo: revisar RFCs pendientes, priorizar trabajo, asignar tareas a responsables individuales, parejas o squads, y generar un plan accionable con compromisos claros.
|
|
11
|
+
|
|
12
|
+
A diferencia de `/especdev:estimar` (esfuerzo por tarea) o `/especdev:debate` (decisiones técnicas), el planning opera a **nivel de equipo y sprint**: qué se hace, quién lo hace, en qué orden, y qué se deja fuera.
|
|
13
|
+
|
|
14
|
+
## Uso
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/especdev:planning # Planning completo (interactivo)
|
|
18
|
+
/especdev:planning --semana "2026-03-24" # Planning para semana específica
|
|
19
|
+
/especdev:planning --equipo "Ana,Carlos,Luis,María" # Definir equipo
|
|
20
|
+
/especdev:planning --capacidad "Ana:4d,Carlos:3d" # Capacidad por persona (días disponibles)
|
|
21
|
+
/especdev:planning --rfcs "RFC-012,RFC-015,RFC-018" # RFCs a revisar
|
|
22
|
+
/especdev:planning --modo revision # Solo revisión de RFCs (sin asignación)
|
|
23
|
+
/especdev:planning --modo asignacion # Solo asignación (RFCs ya priorizados)
|
|
24
|
+
/especdev:planning --modo seguimiento # Revisar avance del planning anterior
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Proceso (4 Fases)
|
|
28
|
+
|
|
29
|
+
### Fase 1: Contexto del equipo
|
|
30
|
+
|
|
31
|
+
Recopilar información del equipo antes de planificar:
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
## Contexto del equipo
|
|
35
|
+
|
|
36
|
+
### Miembros y disponibilidad
|
|
37
|
+
| Miembro | Rol | Disponibilidad | Notas |
|
|
38
|
+
|---------|-----|----------------|-------|
|
|
39
|
+
| Ana | Sr. Backend | 4/5 días | Lunes feriado |
|
|
40
|
+
| Carlos | Sr. Frontend | 5/5 días | — |
|
|
41
|
+
| Luis | Fullstack | 3/5 días | 2 días en soporte rotativo |
|
|
42
|
+
| María | Sr. Backend | 5/5 días | — |
|
|
43
|
+
| Diego | Jr. Frontend | 5/5 días | Necesita mentoring |
|
|
44
|
+
|
|
45
|
+
### Capacidad total del equipo
|
|
46
|
+
- Días disponibles: 22/25 (88%)
|
|
47
|
+
- Factor de foco (reuniones, interrupciones): 0.7
|
|
48
|
+
- **Capacidad efectiva: 15.4 días-persona**
|
|
49
|
+
|
|
50
|
+
### Arrastre de la semana anterior
|
|
51
|
+
- [ ] RFC-010: Migración de auth — 60% completado (María, bloqueo en revisión de seguridad)
|
|
52
|
+
- [x] RFC-011: Endpoint de reportes — completado
|
|
53
|
+
- [ ] BUG-234: Memory leak en worker — pendiente (Luis no tuvo disponibilidad)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Fase 2: Revisión de RFCs
|
|
57
|
+
|
|
58
|
+
Evaluar cada RFC pendiente con criterios estructurados:
|
|
59
|
+
|
|
60
|
+
```markdown
|
|
61
|
+
## Revisión de RFCs
|
|
62
|
+
|
|
63
|
+
### RFC-012: Cache distribuido con Redis
|
|
64
|
+
- **Autor:** María | **Estado:** Aprobado | **Tamaño:** L
|
|
65
|
+
- **Dependencias:** Infra debe provisionar Redis cluster
|
|
66
|
+
- **Riesgo técnico:** Medio (equipo no tiene experiencia con Redis Cluster)
|
|
67
|
+
- **Impacto de negocio:** Alto (reduce latencia de catálogo de 800ms a 200ms)
|
|
68
|
+
- **Deuda técnica:** Baja (solución limpia, bien diseñada)
|
|
69
|
+
- **Veredicto:** ✅ Priorizar esta semana
|
|
70
|
+
|
|
71
|
+
### RFC-015: Migración de Styled Components a Tailwind
|
|
72
|
+
- **Autor:** Carlos | **Estado:** En discusión | **Tamaño:** XL
|
|
73
|
+
- **Dependencias:** Ninguna técnica, pero necesita buy-in del equipo de diseño
|
|
74
|
+
- **Riesgo técnico:** Bajo (migración incremental posible)
|
|
75
|
+
- **Impacto de negocio:** Bajo (mejora DX, no impacta usuario final)
|
|
76
|
+
- **Deuda técnica:** Media (reduce deuda futura pero introduce churn ahora)
|
|
77
|
+
- **Veredicto:** ⏸️ Postergar — no justifica el costo de oportunidad esta semana
|
|
78
|
+
|
|
79
|
+
### RFC-018: API de notificaciones push
|
|
80
|
+
- **Autor:** Ana | **Estado:** Aprobado | **Tamaño:** M
|
|
81
|
+
- **Dependencias:** RFC-012 (necesita Redis para pub/sub)
|
|
82
|
+
- **Riesgo técnico:** Bajo
|
|
83
|
+
- **Impacto de negocio:** Alto (feature pedido por 3 clientes enterprise)
|
|
84
|
+
- **Veredicto:** ✅ Priorizar después de RFC-012
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Fase 3: Priorización y asignación
|
|
88
|
+
|
|
89
|
+
Usar matriz de priorización y asignar por modalidad:
|
|
90
|
+
|
|
91
|
+
```markdown
|
|
92
|
+
## Priorización (Eisenhower + WSJF)
|
|
93
|
+
|
|
94
|
+
| # | Item | Urgente | Importante | WSJF Score | Decisión |
|
|
95
|
+
|---|------|---------|------------|------------|----------|
|
|
96
|
+
| 1 | BUG-234: Memory leak | ✅ | ✅ | — | **Primero** (producción) |
|
|
97
|
+
| 2 | RFC-010: Auth (arrastre) | ✅ | ✅ | 8.5 | **Completar** (WIP) |
|
|
98
|
+
| 3 | RFC-012: Redis cache | ❌ | ✅ | 7.2 | **Esta semana** |
|
|
99
|
+
| 4 | RFC-018: Push notifications | ❌ | ✅ | 6.8 | **Iniciar si hay capacidad** |
|
|
100
|
+
| 5 | RFC-015: Tailwind migration | ❌ | ❌ | 3.1 | **Backlog** |
|
|
101
|
+
|
|
102
|
+
### WSJF (Weighted Shortest Job First)
|
|
103
|
+
Score = (Valor de negocio + Urgencia + Reducción de riesgo) / Tamaño del trabajo
|
|
104
|
+
- Valor: 1-5 | Urgencia: 1-5 | Riesgo: 1-5 | Tamaño: 1-5 (Fibonacci: 1,2,3,5,8)
|
|
105
|
+
|
|
106
|
+
## Asignación
|
|
107
|
+
|
|
108
|
+
### Modalidad: Individual
|
|
109
|
+
Para tareas bien definidas donde una persona puede avanzar sola.
|
|
110
|
+
|
|
111
|
+
| Tarea | Responsable | Estimado | Entregable | Deadline |
|
|
112
|
+
|-------|-------------|----------|------------|----------|
|
|
113
|
+
| BUG-234: Memory leak | Luis | 1d | Fix + test + post-mortem | Lunes |
|
|
114
|
+
| RFC-010: Auth (completar) | María | 2d | PR listo para merge | Miércoles |
|
|
115
|
+
|
|
116
|
+
### Modalidad: Pareja (Pair Programming)
|
|
117
|
+
Para tareas que requieren conocimiento cruzado o mentoring.
|
|
118
|
+
|
|
119
|
+
| Tarea | Pareja | Razón | Estimado | Entregable |
|
|
120
|
+
|-------|--------|-------|----------|------------|
|
|
121
|
+
| RFC-012: Redis cache (setup) | María + Luis | María diseñó el RFC, Luis aprende Redis | 2d | Infra + tests de integración |
|
|
122
|
+
| RFC-012: Redis cache (frontend) | Carlos + Diego | Diego aprende patterns de caching en frontend, Carlos mentora | 1.5d | Cache invalidation UI + tests |
|
|
123
|
+
|
|
124
|
+
### Modalidad: Squad
|
|
125
|
+
Para iniciativas que necesitan esfuerzo coordinado multi-disciplina.
|
|
126
|
+
|
|
127
|
+
| Iniciativa | Squad | Roles | Estimado | Sync |
|
|
128
|
+
|------------|-------|-------|----------|------|
|
|
129
|
+
| RFC-018: Push notifications | Ana (lead) + Carlos + María | Ana: API, Carlos: UI, María: pub/sub | 3d | Daily 15min a las 10:00 |
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Fase 4: Plan semanal consolidado
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
## Plan Semanal: 2026-03-24 → 2026-03-28
|
|
136
|
+
|
|
137
|
+
### Compromisos (lo que prometemos entregar)
|
|
138
|
+
1. ✅ BUG-234 resuelto en producción (Lunes)
|
|
139
|
+
2. ✅ RFC-010: Auth migración completada y mergeada (Miércoles)
|
|
140
|
+
3. ✅ RFC-012: Redis cache funcional en staging (Viernes)
|
|
141
|
+
|
|
142
|
+
### Stretch goals (si hay capacidad)
|
|
143
|
+
4. 🎯 RFC-018: Push notifications — diseño de API + spike de pub/sub
|
|
144
|
+
|
|
145
|
+
### Lo que NO hacemos esta semana (y por qué)
|
|
146
|
+
- RFC-015: Tailwind migration — WSJF bajo, sin urgencia de negocio
|
|
147
|
+
- TECH-089: Upgrade Node 22 — esperamos que el equipo de plataforma publique guía
|
|
148
|
+
|
|
149
|
+
### Riesgos y mitigaciones
|
|
150
|
+
| Riesgo | Probabilidad | Impacto | Mitigación |
|
|
151
|
+
|--------|-------------|---------|------------|
|
|
152
|
+
| Redis provisioning se demora | Media | Alto | María hace spike con Docker local primero |
|
|
153
|
+
| Luis no termina BUG-234 el lunes | Baja | Alto | Ana como backup (conoce el worker) |
|
|
154
|
+
| Revisión de seguridad de auth bloquea a María | Alta | Medio | Escalar a Tech Lead el martes si no hay review |
|
|
155
|
+
|
|
156
|
+
### Ceremonias
|
|
157
|
+
| Ceremonia | Día | Hora | Duración | Quién |
|
|
158
|
+
|-----------|-----|------|----------|-------|
|
|
159
|
+
| Planning (este documento) | Lunes | 09:00 | 45min | Todo el equipo |
|
|
160
|
+
| Daily standup | L-V | 09:30 | 15min | Todo el equipo |
|
|
161
|
+
| RFC-018 sync | M-J | 10:00 | 15min | Squad de push |
|
|
162
|
+
| Demo/Review | Viernes | 16:00 | 30min | Todo el equipo + PM |
|
|
163
|
+
|
|
164
|
+
### Métricas de la semana
|
|
165
|
+
- Capacidad utilizada: 15.4 / 15.4 días-persona (100%)
|
|
166
|
+
- Items comprometidos: 3
|
|
167
|
+
- Stretch: 1
|
|
168
|
+
- Carry-over anterior: 2 (BUG-234, RFC-010)
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Criterios de evaluación de RFCs
|
|
172
|
+
|
|
173
|
+
Al revisar un RFC, evaluar cada dimensión con 1-5:
|
|
174
|
+
|
|
175
|
+
| Dimensión | 1 (Bajo) | 5 (Alto) |
|
|
176
|
+
|-----------|----------|----------|
|
|
177
|
+
| **Impacto de negocio** | Nice-to-have interno | Bloquea revenue o cliente enterprise |
|
|
178
|
+
| **Riesgo técnico** | Tecnología conocida, patrón probado | Stack nuevo, sin experiencia en el equipo |
|
|
179
|
+
| **Tamaño** | < 1 día, 1-2 archivos | > 1 semana, cross-cutting |
|
|
180
|
+
| **Urgencia** | Sin deadline, puede esperar | SLA comprometido o dependencia bloqueante |
|
|
181
|
+
| **Deuda técnica** | Solución limpia | Workaround que acumula deuda |
|
|
182
|
+
|
|
183
|
+
## Reglas del Planning
|
|
184
|
+
|
|
185
|
+
### Regla de capacidad
|
|
186
|
+
**NUNCA planificar al 100% de capacidad.** Factor de foco:
|
|
187
|
+
- Equipo maduro con pocos meetings: **0.8**
|
|
188
|
+
- Equipo promedio: **0.7**
|
|
189
|
+
- Equipo con mucho soporte/on-call: **0.5-0.6**
|
|
190
|
+
|
|
191
|
+
### Regla de WIP
|
|
192
|
+
Máximo **2 items en progreso por persona**. Si alguien tiene 2 tareas activas, no se le asigna una tercera hasta que cierre una.
|
|
193
|
+
|
|
194
|
+
### Regla de arrastre
|
|
195
|
+
Si un item se arrastra **3 semanas consecutivas**, se debe tomar una decisión:
|
|
196
|
+
1. **Replantear**: dividir en partes más pequeñas
|
|
197
|
+
2. **Escalar**: pedir ayuda o más recursos
|
|
198
|
+
3. **Cancelar**: admitir que no es prioridad y sacarlo del backlog
|
|
199
|
+
|
|
200
|
+
### Regla de parejas
|
|
201
|
+
Las parejas DEBEN rotar cada semana. Objetivo: ningún conocimiento queda en una sola persona.
|
|
202
|
+
|
|
203
|
+
### Regla de juniors
|
|
204
|
+
Todo junior DEBE estar asignado en pareja con un senior. Nunca asignar tareas críticas a un junior solo.
|
|
205
|
+
|
|
206
|
+
## Almacenamiento
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
.especdev/
|
|
210
|
+
├── plannings/
|
|
211
|
+
│ ├── 2026-W13.md # Planning semana 13
|
|
212
|
+
│ ├── 2026-W14.md # Planning semana 14
|
|
213
|
+
│ └── _retrospectiva.md # Patrones observados entre plannings
|
|
214
|
+
└── rfcs/
|
|
215
|
+
├── RFC-012.md # RFC individual
|
|
216
|
+
├── RFC-015.md
|
|
217
|
+
└── _indice.md # Índice de todos los RFCs con estado
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Modos especiales
|
|
221
|
+
|
|
222
|
+
### `--modo revision`
|
|
223
|
+
Solo ejecuta Fases 1 y 2 (contexto + revisión de RFCs). Útil para sesiones de refinamiento mid-week.
|
|
224
|
+
|
|
225
|
+
### `--modo asignacion`
|
|
226
|
+
Solo ejecuta Fases 3 y 4 (priorización + plan). Asume que los RFCs ya fueron revisados.
|
|
227
|
+
|
|
228
|
+
### `--modo seguimiento`
|
|
229
|
+
Lee el planning de la semana actual (`.especdev/plannings/`) y genera reporte de avance:
|
|
230
|
+
```markdown
|
|
231
|
+
## Seguimiento: Semana 2026-W13 (Jueves)
|
|
232
|
+
|
|
233
|
+
### Avance
|
|
234
|
+
| Item | Estado | Progreso | Notas |
|
|
235
|
+
|------|--------|----------|-------|
|
|
236
|
+
| BUG-234 | ✅ Completado | 100% | Mergeado lunes, post-mortem hecho |
|
|
237
|
+
| RFC-010: Auth | 🟡 En progreso | 80% | Review de seguridad pendiente |
|
|
238
|
+
| RFC-012: Redis | 🟢 En progreso | 40% | Setup OK, tests de integración en progreso |
|
|
239
|
+
| RFC-018: Push | ⬜ No iniciado | 0% | Depende de RFC-012, se inicia viernes si hay tiempo |
|
|
240
|
+
|
|
241
|
+
### Alerta
|
|
242
|
+
- RFC-010 lleva 2 semanas de carry-over. Si no se completa esta semana → regla de arrastre.
|
|
243
|
+
- Capacidad real utilizada: 12/15.4 días (78%) — 2 días perdidos en incidente no planificado.
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
## Integración con otros comandos
|
|
247
|
+
|
|
248
|
+
| Comando | Cuándo usarlo junto con planning |
|
|
249
|
+
|---------|----------------------------------|
|
|
250
|
+
| `/especdev:estimar` | Para estimar RFCs grandes antes del planning |
|
|
251
|
+
| `/especdev:debate` | Para resolver desacuerdos técnicos sobre un RFC |
|
|
252
|
+
| `/especdev:mesa-tecnica` | Para profundizar en la implementación de un RFC priorizado |
|
|
253
|
+
| `/especdev:desglosar` | Para dividir un RFC priorizado en tareas TDD |
|
|
254
|
+
| `/especdev:contrato-api` | Para definir interfaces antes de asignar a parejas/squads |
|
|
255
|
+
|
|
256
|
+
## Modelo recomendado
|
|
257
|
+
|
|
258
|
+
| Paso | Modelo | Razón |
|
|
259
|
+
|------|--------|-------|
|
|
260
|
+
| Contexto y capacidad | Haiku | Cálculos y formateo |
|
|
261
|
+
| Revisión de RFCs | Sonnet | Juicio técnico para evaluar riesgo/impacto |
|
|
262
|
+
| Priorización WSJF | Sonnet | Razonamiento sobre trade-offs |
|
|
263
|
+
| Asignación | Haiku | Matcheo persona-tarea según datos |
|
|
264
|
+
| Plan consolidado | Haiku | Formateo y consolidación |
|