coupling_cohesion_metrics
SKILL.md
coupling_cohesion_metrics
Algoritmo para medir cuantitativamente el acoplamiento entre los módulos del sistema de verificación y la cohesión interna de cada módulo. Permite detectar tempranamente cuando la arquitectura se degrada, identificando módulos que se vuelven demasiado dependientes entre sí o que asumen responsabilidades que no les corresponden.
When to use
Usar de forma periódica (mensual o por sprint) para monitorizar la salud arquitectónica del sistema. Ejecutar cuando se sospeche que un módulo ha crecido demasiado, cuando las importaciones cruzadas aumenten, o cuando los cambios en un módulo requieran modificaciones en cascada en otros módulos. Complementa la skill archunit_import_linter con métricas cuantitativas.
Instructions
- Instalar herramientas de análisis:
pip install radonpara complejidad ypip install import-linterpara dependencias. - Medir el acoplamiento aferente (Ca) de cada módulo: cuántos otros módulos dependen de él. Un Ca alto indica un módulo central que requiere estabilidad.
- Medir el acoplamiento eferente (Ce) de cada módulo: de cuántos módulos depende. Un Ce alto indica un módulo con demasiadas dependencias externas.
- Calcular la inestabilidad de cada módulo:
I = Ce / (Ca + Ce). Valores cercanos a 1 indican módulos inestables que deberían depender de abstracciones. - Medir la cohesión interna usando LCOM (Lack of Cohesion of Methods): analizar cuántas funciones de un módulo usan los mismos datos internos.
- Crear un script
backend/scripts/architecture_metrics.pyque genere un reporte con estas métricas para todos los módulos del sistema. - Establecer umbrales de alerta: Ce > 5 (demasiadas dependencias), LCOM > 0.8 (baja cohesión), y trackear la evolución temporal.
- Visualizar las métricas en un dashboard o generar un reporte en cada release que muestre la tendencia.
Notes
- Los módulos
liveness,ocr,face_matchydoc_processingdeben tener bajo acoplamiento entre sí (Ce bajo) y alta cohesión interna (LCOM bajo). - El módulo
decisiontendrá naturalmente un Ce alto al depender de todos los demás; esto es aceptable por su rol de orquestación. - Comparar las métricas antes y después de refactorizaciones significativas para validar que la mejora arquitectónica es real y medible.
Weekly Installs
8
Repository
davidcastagnetoa/skillsFirst Seen
12 days ago
Installed on
trae8
antigravity8
claude-code8
github-copilot8
codex8
kimi-cli8