Skip to content

User Guide

MineProductivity is built from a small set of first principles. Understanding them makes every package predictable.

Engineering philosophy

Principle What it means here
Clean Architecture Dependencies point inward; core/ontology know nothing about connectors, agents, or visualization.
Domain-Driven Design Package names are domain concepts (kpis, digital_twin, decision), not technical layers (services, helpers).
SOLID Each package has one reason to change; extension happens via plugins/registry, not by editing core.
Plugin-first New KPIs, connectors, analytics, agents, and renderers are registered, not hard-coded.
Event-first Events are the immutable source of truth; everything else is a derived, rebuildable projection.
Metadata-first No KPI or dataset ships without units, provenance, and versioning metadata.
Ontology-first Domain concepts are defined in ontology before any package models them in code.

The shape of the platform

Work flows up the locked dependency chain. Each layer consumes the layer below and never the reverse:

  • Foundation - coreontologyeventskpis: primitives, the typed domain vocabulary, the event-sourced system of record, and the metadata-first KPI Engine.
  • Intelligence - analyticsdecisiondigital_twinsimulationoptimizationagentsvisualization: statistical characterization, prescriptive recommendations, stateful representation, projection, prescriptive search, autonomous orchestration, and presentation.
  • Cross-cutting - registry, plugins, connectors: importable by any layer, dependent on none of the domain layers.

Extension points

The platform ships zero concrete implementations of its interface-only extension points - each is a deliberate plugin seam, enforced by tests:

  • Solver adapters (optimization), reasoning backends and tools (agents), rendering backends (visualization)
  • Forecasting/anomaly models (analytics), root-cause/what-if engines (decision), twin-simulation and methodology models (digital_twin/simulation)
  • Connectors (connectors), KPIs (kpis), and governed artifacts (scenarios, problems, policies, themes) authored as data

To learn a specific package's contract, read its package page; to see it working, follow its tutorial; to understand why it exists as a separate layer, read the architecture and its ADR.