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¶
- IDE → Real-time linting mientras escribes
- Compile → Template constraints bloquean tipos inválidos
- Link → Symbol visibility enforcing isolation
- 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¶
- Upward Dependency → L0 depende de L1 ❌
- Horizontal Dependency → L1_A depende de L1_B ❌
- Circular Dependency → A→B→C→A ❌
- Leaky Abstraction → L3 expone L1 en API ❌
- Premature Optimization → L0 depende de L2 ❌
📚 DOCUMENTACIÓN CLAVE¶
PLAN_DE_DESARROLLO.md- Plan completo con 12 tareasLEVEL_SEMANTICS.md- Definición formal de cada nivelRULE_CATALOG.md- Todas las reglas con ejemplosVALIDATION_PIPELINE.md- Arquitectura del validadorPATTERN_LIBRARY.md- Patterns aprobados con códigoANTIPATTERN_CATALOG.md- Violaciones comunesENFORCEMENT_LEVELS.md- Setup de enforcementEXEMPTION_PROCESS.md- Proceso de excepcionesMETRICS_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."