Saltearse al contenido

Búho

Búho guarda cada cifra del mundo real con su procedencia y su fecha, y responde la única pregunta que importa antes de decidir: ¿me puedo apoyar en esta cifra hoy? No calcula nada: alimenta a Cóndor.

  • Registra observaciones con valor, unidad, source, observed_at, method, ttl_days y una nota. Sin source no entra: lanza.
  • Distingue tres métodos, y la distinción no es cosmética: observed se leyó en la fuente y otro puede ir a verlo; derived se calculó a partir de otras observaciones; estimated es un supuesto, se puede usar, pero no puede pasar por dato.
  • Mide cobertura contra lo que el modelo necesita de verdad, no contra lo que hay anotado. Un registro vacío no significa que todo esté bien.
  • Devuelve la salud: qué caducó, qué es supuesto y con qué confianza puede hablar el motor. Si hay supuestos, el veredicto baja aunque la cobertura sea total.
  • config/buho.php, en forma plana o anidada; ResearchLog las aplana a la misma.
  • Cóndor, que lo consulta al construir el motor. Búho manda sobre la reserva de config/pricing.php: las observaciones se aplican encima antes de calcular, y doblar una observación mueve el precio.
  • En local, php artisan condor:derive --research. En producción, el job condor de check-prod.yml, porque artisan no se alcanza sin SSH y el SSH está retirado. Ese job no imprime costos ni márgenes por defecto.
  • Desde código: Condor::research()->stale(), ->assumptions() y Condor::researchHealth().

Búho no es un interruptor de sitio: es una fuente que el motor lee. Si se queda sin observaciones, Cóndor no se queda sin precios —sigue usando las entradas declaradas—, pero pierde la procedencia y la caducidad, y vuelve el problema que Búho cierra: cifras sin fecha que nadie puede envejecer. El veredicto de salud es lo que delata ese estado.

En el catálogo, buho figura como módulo declarado con is_implemented = false: no se ofrece para encender.

  • La caducidad no es decorativa. El cambio de divisa mueve la escalera entera, así que vence antes que los precios de competidor. Una cifra vencida no es una cifra: es un recuerdo.
  • Los puntos de las claves pelean con config() de Laravel, que parte por el punto. Sin el aplanado, una de las dos formas se ignoraría en silencio.
  • estimated no es un dato. El motor lo usa, pero el veredicto lo declara. Un motor que no sabe la calidad de sus entradas es un generador de cifras convincentes.
  • Aquí no se anota ningún precio de venta de Merez. Eso lo deriva Cóndor.
  • La cifra de estado que el documento del módulo anota tiene fecha: vale como foto de ese día, no como salud de hoy. La salud se consulta.
  • Cóndor — quien consume estas cifras.
  • Módulos — el catálogo completo.