🧭 Mandamientos de Fireflayjs (FFJs)
1. La arquitectura debe ser observable, no implícita
Fireflay no infiere arquitectura desde convenciones o intención humana no formalizada.
Debe existir una estructura explícita que pueda ser analizada, comparada y evolucionada.
2. La arquitectura se expresa como relaciones, no como abstracciones aisladas
La unidad fundamental del sistema son las relaciones entre las partes del software.
No los frameworks, no los patrones aislados, no la implementación interna.
3. Todo cambio estructural debe tener impacto visible
Cada modificación del sistema debe poder interpretarse en términos de impacto arquitectónico.
El sistema debe hacer visibles los efectos colaterales estructurales del cambio.
4. Fireflay no impone decisiones arquitectónicas, las hace conscientes
Fireflay no bloquea patrones, ni invalida soluciones.
Detecta estructuras emergentes y las traduce en contexto comprensible de trade-offs y consecuencias.
5. La arquitectura no depende de conocimiento tribal centralizado
El criterio arquitectónico no debe vivir en personas específicas.
Debe ser externalizado en contratos, reglas y sistemas de interpretación estructural.
6. La única unidad de análisis son las relaciones entre las partes del software
Fireflay no observa frameworks, runtimes ni estrategias de organización.
Solo observa cómo se relacionan las distintas partes del sistema.
7. La observación precede a la interpretación, y la interpretación precede a la sugerencia
Primero se detecta estructura.
Luego se reconoce patrón.
Luego se contextualizan implicancias.
Solo entonces se sugiere alternativa.
8. La arquitectura es un sistema vivo en constante evolución
Las estructuras no son estáticas ni definitivas.
Deben poder evolucionar sin perder trazabilidad ni comprensión histórica.
9. Fireflay no juzga calidad arquitectónica absoluta, revela trade-offs
No existe “correcto o incorrecto” arquitectónico dentro de Fireflay.
Solo decisiones estructurales con beneficios, costos y consecuencias visibles.
10. El sistema debe ser independiente del tooling y del framework
Fireflay no depende de stack específico ni impone modelo de ejecución.
Solo observa la estructura emergente del software.