Skip to content

05_01_HIERARCHY_FRAMEWORK - El Sistema de Reglas Arquitectónicas

🎯 RESUMEN EJECUTIVO

El Hierarchy Framework es el código legislativo de la arquitectura DSP de AudioLab. No es documentación aspiracional - es un sistema de enforcement automático que hace matemáticamente imposible violar la jerarquía L0→L1→L2→L3.

¿Qué hace?

Transforma reglas arquitectónicas en código ejecutable que: - ✅ Valida que cada módulo respeta su nivel jerárquico - ✅ Detecta violaciones antes de que lleguen a main branch - ✅ Bloquea builds que rompen la arquitectura - ✅ Guía a desarrolladores con patterns aprobados - ✅ Mide la salud arquitectónica continuamente

¿Por qué es crítico?

Sin este sistema, la elegante jerarquía colapsaría en: - 🔴 Dependency hell: Ciclos circulares imposibles de resolver - 🔴 Build explosión: Tiempos de compilación exponenciales - 🔴 Testing imposible: No puedes testear capas independientemente - 🔴 Reuso destruido: Portabilidad perdida por acoplamiento - 🔴 Comprensión imposible: Nadie entiende el sistema

📊 MÉTRICAS CLAVE

Métrica Target Criticidad
Adherencia a jerarquía 100% ⭐⭐⭐⭐⭐
Validación completa <30s ⭐⭐⭐⭐⭐
PRs bloqueados <5% ⭐⭐⭐⭐
Exemptions activas <5 ⭐⭐⭐⭐
Ciclos detectados 0 ⭐⭐⭐⭐⭐
Developer satisfaction >85% ⭐⭐⭐⭐

🏗️ ESTRUCTURA DEL SISTEMA

05_01_HIERARCHY_FRAMEWORK/
├── 05_01_00_level_definitions/          # Las Definiciones Fundamentales
│   ├── Enums de niveles (L0/L1/L2/L3)
│   ├── Matriz de dependencias permitidas
│   ├── Parser de metadata de módulos
│   └── LEVEL_SEMANTICS.md
├── 05_01_01_composition_rules/          # El Código Legal
│   ├── 4 reglas axiomáticas
│   ├── Reglas específicas por nivel
│   ├── RuleEngine con validación
│   └── RULE_CATALOG.md
├── 05_01_02_validation_engine/          # El Juez Automático
│   ├── Pipeline de 5 fases
│   ├── Algoritmos de grafos (DFS, closure)
│   ├── Report generation (text/JSON/HTML)
│   └── VALIDATION_PIPELINE.md
├── 05_01_03_pattern_library/            # Blueprints Aprobados
│   ├── Patterns L0→L1, L1→L2, L2→L3
│   ├── Pattern matcher
│   ├── Template generator
│   └── PATTERN_LIBRARY.md
├── 05_01_04_anti_patterns/              # Errores Comunes
│   ├── 5 anti-patterns críticos
│   ├── Detector automático
│   ├── Refactoring suggestions
│   └── ANTIPATTERN_CATALOG.md
├── 05_01_05_build_order_calculator/     # El Secuenciador
│   ├── Kahn's Algorithm (topological sort)
│   ├── Wave-based parallelization
│   ├── Incremental recalculation
│   └── BUILD_ORDER.md
├── 05_01_06_enforcement_system/         # El Policía Arquitectónico
│   ├── IDE integration (linters)
│   ├── Compile-time checks (concepts)
│   ├── Link-time enforcement
│   ├── CI/CD gates
│   └── ENFORCEMENT_LEVELS.md
├── 05_01_07_exemption_system/           # Excepciones Justificadas
│   ├── Workflow de aprobación formal
│   ├── Registry de exemptions
│   ├── Expiration tracking
│   └── EXEMPTION_PROCESS.md
├── 05_01_08_metrics_collector/          # Analista Estadístico
│   ├── 15+ métricas arquitectónicas
│   ├── Sistema de alertas
│   ├── Dashboard de visualización
│   └── METRICS_CATALOG.md
├── 05_01_test_integration/              # Testing E2E
│   ├── Cross-subsystem validation
│   ├── Performance benchmarks
│   └── Stress testing
├── 05_01_interfaces/                    # Integración con Hermanos
│   ├── Conectores a 6 subsistemas
│   ├── Event bus
│   ├── REST/gRPC APIs
│   └── CLI interface
└── 05_01_documentation/                 # Documentación Completa
    ├── API reference (auto-generated)
    ├── Developer guide
    ├── User manual
    └── Migration guides

🔗 CONEXIONES CON SUBSISTEMAS

Críticas (el sistema no funciona sin ellas)

  • 00_CATALOG_REGISTRY → Catálogo de módulos para validar
  • 33_RELEASE_MANAGEMENT → CI/CD gates para enforcement

Importantes (funcionalidad reducida sin ellas)

  • 02_DEPENDENCY_GRAPH → Visualización del grafo validado
  • 30_TESTING_FRAMEWORK → Validación de jerarquía en tests

Nice-to-have (mejoran experiencia)

  • 18_QUALITY_METRICS → Export de métricas arquitectónicas
  • 32_DOCUMENTATION_SYSTEM → Auto-generación de diagramas

🎯 LA JERARQUÍA ENFORCED

Matriz de Dependencias Permitidas

           L0    L1    L2    L3
L0_KERNEL  ❌    ❌    ❌    ❌
L1_ATOM    ✅    ❌    ❌    ❌
L2_CELL    ✅    ✅    ✅*   ❌
L3_ENGINE  ✅    ✅    ✅    ❌

* = permitido sin ciclos

Lectura: Fila "puede depender de" Columna

Niveles Definidos

L0_KERNEL - Las Operaciones Primitivas

  • Stateless (sin estado interno)
  • Composable (sin side effects)
  • Zero dependencies (no depende de nadie)
  • Ejemplos: add, mul, sin, exp, interpolate

L1_ATOM - Los Bloques Constructores

  • Stateful (mantiene estado: phase, filters)
  • Self-contained (funcionalidad completa)
  • Solo usa L0 kernels
  • Ejemplos: Oscillator, Filter, Envelope, LFO

L2_CELL - Las Combinaciones Funcionales

  • Composite (múltiples atoms)
  • Functionally complete (función musical completa)
  • Usa L0 + L1 + L2 (sin ciclos)
  • Ejemplos: Synth Voice, Compressor, Mod Matrix

L3_ENGINE - Los Sistemas Completos

  • Complete systems (listo para plugin)
  • Polyphonic (gestiona voces)
  • Preset-aware (state management)
  • Ejemplos: Polyphonic Synth, FDN Reverb, Mastering Chain

🚀 ENFORCEMENT EN 4 NIVELES

  1. IDE → Real-time linting mientras escribes
  2. Compile → Template constraints bloquean tipos inválidos
  3. Link → Symbol visibility enforcing isolation
  4. CI/CD → Pre-commit hooks + PR auto-review

📈 ROADMAP DE DESARROLLO

Fase 1: Fundamentos (3 semanas)

  • Level definitions + Composition rules
  • Matriz enforced básica

Fase 2: Validación Core (8 semanas)

  • Validation engine completo
  • Anti-patterns + Pattern library

Fase 3: Herramientas (6 semanas)

  • Build order calculator
  • Enforcement system multi-nivel

Fase 4: Gestión Avanzada (5 semanas)

  • Exemption system formal
  • Metrics collector + dashboard

Fase 5: Integración Final (6 semanas)

  • Testing E2E + cross-subsystem
  • Documentation package completo

TOTAL: ~28 semanas (7 meses)

💡 CASOS DE USO

Para Desarrolladores

# Crear nuevo módulo con validación automática
audiolab-new-module --name MyFilter --level L1_ATOM --uses sin_kernel,mul_kernel

# Validar módulo actual
audiolab-validate --module MyFilter

# Ver patterns disponibles
audiolab-patterns --category L1→L2

Para Arquitectos

# Dashboard de métricas
audiolab-metrics dashboard

# Detectar anti-patterns en codebase
audiolab-scan --anti-patterns

# Aprobar exemption
audiolab-exemption approve EX-2025-001

Para CI/CD

# GitHub Actions
- name: Validate Hierarchy
  run: audiolab-validate --all --strict

- name: Check Build Order
  run: audiolab-build-order --verify

⚠️ ANTI-PATTERNS BLOQUEADOS

  1. Upward Dependency → L0 depende de L1 ❌
  2. Horizontal Dependency → L1_A depende de L1_B ❌
  3. Circular Dependency → A→B→C→A ❌
  4. Leaky Abstraction → L3 expone L1 en API ❌
  5. Premature Optimization → L0 depende de L2 ❌

📚 DOCUMENTACIÓN CLAVE

  • PLAN_DE_DESARROLLO.md - Plan completo con 12 tareas
  • LEVEL_SEMANTICS.md - Definición formal de cada nivel
  • RULE_CATALOG.md - Todas las reglas con ejemplos
  • VALIDATION_PIPELINE.md - Arquitectura del validador
  • PATTERN_LIBRARY.md - Patterns aprobados con código
  • ANTIPATTERN_CATALOG.md - Violaciones comunes
  • ENFORCEMENT_LEVELS.md - Setup de enforcement
  • EXEMPTION_PROCESS.md - Proceso de excepciones
  • METRICS_CATALOG.md - Métricas y alertas

🎓 QUICK START

1. Entender tu nivel

¿Tu módulo tiene estado?
  NO → L0_KERNEL
  SÍ → ¿Es combinación de otros?
    NO → L1_ATOM
    SÍ → ¿Es sistema completo?
      NO → L2_CELL
      SÍ → L3_ENGINE

2. Validar dependencias

// ✅ CORRECTO: L2 usa L1
class SynthVoice : public L2_Cell {
    VA_Oscillator osc;  // L1_ATOM
    SVF_Filter filter;  // L1_ATOM
};

// ❌ INCORRECTO: L1 usa L1
class Filter : public L1_Atom {
    Oscillator osc;  // ❌ L1 no puede usar L1
};

3. Ejecutar validación

audiolab-validate --module MyModule
# ✅ PASS: All hierarchy rules satisfied
# ✅ PASS: No cycles detected
# ✅ PASS: Build order valid

🏆 CRITERIOS DE ÉXITO

Must-Have

  • ✅ 100% módulos validados
  • ✅ 0 violaciones en main
  • ✅ 0 ciclos detectados
  • ✅ <30s validación completa

Nice-to-Have

  • ✅ >85% developer satisfaction
  • ✅ <5 exemptions activas
  • ✅ Dashboard operativo
  • ✅ CI/CD integrado

📞 CONTACTO Y SOPORTE

Owner: Sistema Arquitectónico Core Criticidad: ⭐⭐⭐⭐⭐ (Máxima) Status: ✅ COMPLETADO (v1.0.0 - 2025-10-10)

Para dudas sobre: - Clasificación de niveles → Ver LEVEL_SEMANTICS.md - Violaciones detectadas → Ver RULE_CATALOG.md - Solicitar exemption → Ver EXEMPTION_PROCESS.md - Reportar bugs → GitHub Issues


"La arquitectura no es lo que documentas, es lo que el sistema permite construir."