System Core
Compute (Cognitive Engines)
Horizon Engine

πŸŒ… Horizon Engine

Last Updated: March 23, 2026 12:00 UTC

Multi-objective Pareto optimisation with doctrine-based design point ranking. Turns a candidate design space into an actionable ranked selection.

🎯 What it does

  • πŸ“ Pareto frontier computation: identifies non-dominated design points across multiple objectives (maximize / minimize)

  • πŸ›οΈ Doctrine scoring: applies a configurable doctrine (balanced / defensive / aggressive / quality-first) to rank the Pareto frontier

  • πŸ† Recommendation: selects the highest-ranked design point as the recommended configuration

  • πŸ”‘ Deterministic hashing: each run is reproducible via a SHA-256 input hash of the design space + seed

  • βš–οΈ Epistemic layer: Reason (Optimisation / Pareto Analysis)

  • πŸ›‘οΈ Mandate: find the best trade-off configurations in a multi-dimensional objective space, then rank them according to an explicit, auditable doctrine

  • πŸ“¦ Outputs: HorizonEngineOutput, ParetoFrontier, DesignPoint (no I/O in LIVELLO 1)

πŸ“œ Charter (mandate + non-goals)

βœ… Mandate

  • Compute the strict Pareto frontier from any input design space
  • Apply a named doctrine to rank all frontier points (transparent, deterministic weights)
  • Emit a reproducible, frozen output that downstream services can trust and store
  • Be objective agnostic: any KPI can be minimized or maximized

🚫 Non-goals

  • no writes in LIVELLO 1 (no DB, no Qdrant, no StreamBus)
  • not a simulation engine β€” does not generate design points, only ranks given ones
  • not a constraint solver β€” does not handle hard constraints between objectives
  • not a forecasting engine β€” output has no time dimension

πŸ”Œ Interfaces

  • HTTP (LIVELLO 2): services/api_horizon_engine/ exposes POST /optimise, GET /health
  • Cognitive Bus (LIVELLO 2): adapters emit horizon.pareto.computed, horizon.solution.selected, horizon.optimisation.completed
  • Doctrine selection: configurable via DEFAULT_DOCTRINE env var (balanced / defensive / aggressive / quality_first)

πŸ“‘ Event contract (Cognitive Bus)

Defined in vitruvyan_core/core/governance/horizon_engine/events/channels.py:

EventDirectionMeaning
horizon.optimisation.requestedinboundtrigger a new optimisation run
horizon.pareto.computedoutboundfrontier computed, size available
horizon.solution.selectedoutboundrecommended design point identified
horizon.optimisation.completedoutboundfull output ready
horizon.batch.processedoutboundbatch summary metrics

🧩 Code map

  • LIVELLO 1 (pure, no I/O): vitruvyan_core/core/governance/horizon_engine/
    • Consumers: consumers/pareto_analyser.py, consumers/doctrine_scorer.py, consumers/optimisation_orchestrator.py
    • Domain objects: domain/objects.py (KPIObjective, DesignSpaceDefinition, OptimisationRequest, ParetoAnalysisResult)
    • Governance: governance/doctrines.py (Doctrine, BALANCED_DOCTRINE, DEFENSIVE_DOCTRINE, AGGRESSIVE_DOCTRINE, QUALITY_FIRST_DOCTRINE)
    • Events: events/channels.py
    • Monitoring: monitoring/metrics.py (10 metric name constants)
  • LIVELLO 2 (service + adapters + I/O): services/api_horizon_engine/
    • HTTP routes: api/routes.py
    • Bus orchestration: adapters/bus_adapter.py
    • Persistence (audit log): adapters/persistence.py

πŸ” Pipeline (happy path)

πŸ“ Optimisation run

POST /optimise
    β”‚
    β–Ό
HorizonBusAdapter.run_optimisation()
    β”‚
    β”œβ”€ 1. Build domain objects (KPIObjective, DesignSpaceDefinition, OptimisationRequest)
    β”‚
    β”œβ”€ 2. pareto_analyser.compute_pareto_frontier(design_points, objectives)
    β”‚      β†’ Tuple[ParetoFrontier, ParetoAnalysisResult]
    β”‚      (normalize all objectives to maximize; O(nΒ²) dominance check)
    β”‚
    β”œβ”€ 3. doctrine_scorer.apply_doctrine(frontier, doctrine)
    β”‚      β†’ ParetoFrontier   (with doctrine_score + doctrine_rank per point)
    β”‚
    β”œβ”€ 4. doctrine_scorer.select_recommended(frontier)
    β”‚      β†’ Optional[DesignPoint]   (rank 1)
    β”‚
    └─ 5. optimisation_orchestrator.run_optimisation(request)
           β†’ HorizonEngineOutput   (frozen, auditable)
    β”‚
    β”œβ”€ emit horizon.pareto.computed
    β”œβ”€ emit horizon.solution.selected
    └─ HTTP response β†’ OptimisationRunResponse

πŸ€– Consumers (LIVELLO 1)

πŸ“ pareto_analyser β€” frontier computation

  • File: vitruvyan_core/core/governance/horizon_engine/consumers/pareto_analyser.py
  • Entry: compute_pareto_frontier(design_points, objectives) β†’ Tuple[ParetoFrontier, ParetoAnalysisResult]
  • Helper: input_hash(design_points, seed) β†’ str

Algorithm:

  1. Normalize all objectives: minimize β†’ flip sign (value Γ— -1)
  2. For each pair (A, B): A dominates B if A β‰₯ B on all objectives and A > B on at least one
  3. Points with no dominator β†’ Pareto frontier

Result tags each DesignPoint with is_pareto: bool.

πŸ›οΈ doctrine_scorer β€” ranking the frontier

  • File: vitruvyan_core/core/governance/horizon_engine/consumers/doctrine_scorer.py
  • Entry: apply_doctrine(frontier, doctrine) β†’ ParetoFrontier
  • Entry: select_recommended(frontier) β†’ Optional[DesignPoint]

Doctrine scoring: for each Pareto point, doctrine_score = Ξ£ (kpi_value Γ— doctrine_weight[kpi]). Points are ranked ascending by score (rank 1 = best).

Built-in doctrines:

DoctrineDescriptionKey weights
balancedequal weight on all KPIsall = 1.0 (normalized)
defensivepenalizes risk, rewards returnrisk: -2.0, return: +1.0
aggressivemaximizes return, discounts riskreturn: +2.0, risk: -0.5
quality_firstmaximizes signal quality scorequality_score: +3.0

Custom doctrines can be registered via governance/doctrines.py.

πŸ† optimisation_orchestrator β€” full run

  • File: vitruvyan_core/core/governance/horizon_engine/consumers/optimisation_orchestrator.py
  • Entry: run_optimisation(request: OptimisationRequest) β†’ HorizonEngineOutput
  • Helper: build_run_id(prefix="he") β†’ str

Produces HorizonEngineOutput (from contracts.schemas):

  • run_id, doctrine, pareto_frontier, recommended, total_design_points, input_hash, produced_at, diagnostics

βš™οΈ Governance: Doctrines

Frozen dataclass Doctrine (file: governance/doctrines.py):

PresetKey weightsUse case
BALANCED_DOCTRINEequalneutral exploration
DEFENSIVE_DOCTRINErisk=-2.0, return=+1.0risk-averse selection
AGGRESSIVE_DOCTRINEreturn=+2.0, risk=-0.5growth-first selection
QUALITY_FIRST_DOCTRINEquality_score=+3.0data-quality gating

Activate via env var: DEFAULT_DOCTRINE=balanced|defensive|aggressive|quality_first.


πŸ”— Integration with other engines

EngineIntegration
Veritas EngineVeritas regime classification can automatically select the Horizon doctrine (crisis β†’ defensive, normal β†’ balanced)
Neural EngineNE scores can be used as KPI values fed into Horizon's design space (return = NE_composite_score)
Vault KeepersHorizon output (selected design point) can be archived via Vault for audit and replay

πŸ§ͺ Tests

  • Unit tests: vitruvyan_core/core/governance/horizon_engine/tests/test_horizon_livello1.py (10 tests, incl. Pareto correctness)
  • Run: pytest vitruvyan_core/core/governance/horizon_engine/tests/ -v
  • All tests are pure Python β€” no Docker / Redis / Postgres required

πŸ“¦ vit package

  • Package descriptor: service-horizon-engine.vit (root of vitruvyan-core)
  • Install: vit install service-horizon-engine