regression-check
$
npx mdskill add 686f6c61/alfred-dev/regression-checkDetect early when new code breaks existing functionality.
- Prevents production failures by catching broken features before release.
- Integrates with Git diffs and dependency trees to map impact.
- Executes targeted unit tests based on modified modules and interfaces.
- Reports specific regression risks with affected module paths.
SKILL.md
.github/skills/regression-checkView on GitHub ↗
--- name: regression-check description: "Usar para verificar que cambios nuevos no rompen funcionalidad existente. También: algo se ha roto, cambio rompe funcionalidad, verificar que no hay regresión, tests de regresión." --- # Verificación de regresiones ## Resumen Este skill verifica que los cambios recientes no han roto funcionalidad que antes funcionaba correctamente. Las regresiones son uno de los tipos de bug más frustrantes: algo que el usuario daba por hecho deja de funcionar sin razón aparente. Este proceso las detecta antes de que lleguen a producción. El enfoque es sistemático: se analiza el impacto del cambio, se ejecutan los tests relevantes y se verifica la integración con el resto del sistema. ## Proceso 1. **Analizar el alcance del cambio.** Entender qué se ha modificado: - Ficheros cambiados (diff de Git). - Módulos afectados directamente. - Dependientes: qué otros módulos importan o usan los módulos cambiados. - Interfaces públicas: se ha cambiado alguna firma de función, tipo de retorno o contrato? 2. **Mapear las áreas de impacto potencial.** Un cambio en un módulo base puede afectar a todo lo que depende de él. Trazar el árbol de dependencias hacia arriba: ``` Módulo cambiado --> Módulos que lo importan --> Módulos que importan a esos ``` Cuanto más profundo en el árbol, mayor es el área de impacto. 3. **Ejecutar los tests del área afectada.** En orden: - Tests unitarios de los módulos modificados. - Tests unitarios de los módulos dependientes. - Tests de integración que cubran la interacción entre módulos afectados. - Tests e2e de los flujos que pasan por los módulos afectados. 4. **Si hay tests que fallan, analizar la causa:** - El test falla porque el cambio rompe una funcionalidad existente? Es una regresión real. Corregir. - El test falla porque su expectativa era incorrecta y el cambio es correcto? Actualizar el test con justificación. - El test es inestable (flaky) y falla intermitentemente? Documentar y marcar para arreglar. 5. **Identificar lagunas de testing.** Si hay áreas afectadas por el cambio que no tienen tests: - Documentar la laguna como riesgo. - Si el riesgo es alto, escribir tests de caracterización antes de dar el cambio por bueno. - Crear issues para cubrir las lagunas detectadas. 6. **Verificar integración.** Más allá de los tests automatizados, verificar manualmente o con tests exploratorios que los flujos principales siguen funcionando. Prestar especial atención a: - Flujos que cruzan múltiples módulos. - Integraciones con servicios externos. - Comportamiento en condiciones de error. 7. **Documentar el resultado.** Registrar: qué se verificó, qué pasó, qué quedó sin verificar y por qué. ## Criterios de éxito - Se ha analizado el impacto del cambio en todo el árbol de dependencias. - Los tests del área afectada se han ejecutado y pasan. - Los tests que fallan han sido analizados y clasificados (regresión real, test incorrecto, flaky). - Las lagunas de testing están documentadas con su nivel de riesgo. - No hay regresiones reales sin corregir.
More from 686f6c61/alfred-dev
- acceptance-criteriaGenerar criterios de aceptación en formato Given/When/Then. Activar cuando el usuario quiera definir criterios de aceptacion, usar formato Given When Then, escribir en Gherkin, saber como determinar que algo esta terminado o establecer una definicion de hecho.
- architecture-docsUsar para documentar la arquitectura del sistema. Activar ante: documentar arquitectura, diagrama del sistema, como funciona el proyecto, vision general tecnica
- bundle-sizeAnalizar y reducir el tamaño de bundles frontend. Activar cuando el bundle sea grande, se quiera reducir tamaño, aplicar tree shaking, configurar lazy loading, usar webpack analyzer o analizar el peso de la aplicacion.
- choose-stackUsar para evaluar y elegir tecnologías con matriz de decisión ponderada. Activar cuando el usuario quiera elegir tecnología, comparar frameworks, decidir entre alternativas técnicas, construir una matriz de decisión, evaluar stack, seleccionar base de datos, elegir lenguaje o comparar herramientas.
- ci-cd-pipelineConfigurar pipeline CI/CD adaptado al proyecto. Activar cuando el usuario quiera configurar CI, crear GitHub Actions, configurar GitLab CI, montar un pipeline de despliegue, automatizar tests o implementar integracion continua.
- code-review-responseUsar al recibir feedback de code review para responder técnicamente. Activar cuando el usuario quiera responder a comentarios de PR, gestionar feedback de code review, resolver comentarios de un revisor, o cuando el revisor pide cambios en el código.
- compliance-checkUsar para verificar cumplimiento RGPD, NIS2 y CRA. También: verificar RGPD, cumplimiento normativo, NIS2, CRA, Cyber Resilience Act, protección de datos, regulación europea.
- copy-reviewRevisar textos publicos: claridad, tono, ortografia y CTAs. Activar ante: revisar textos, mejorar copy, tono de comunicacion, textos de la web, landing page copy
- dependency-strategyEstrategia integral de gestion de dependencias: inventario, evaluacion de riesgo, politica de actualizaciones y documentacion. Usar para auditar el estado global de las dependencias del proyecto.
- dependency-updateRevisar dependencias desactualizadas, con CVEs o end-of-life, y proponer actualizaciones seguras. También: actualizar paquetes, actualizar dependencias, Dependabot, Renovate, versión desactualizada, breaking changes.