MineProductivity Learning Suite - Roadmap¶
Status: LOCKED. This document is the stable master plan for the Learning Suite. It changes only when the learning architecture itself changes - not when individual lessons are written, validated, or reordered. Live execution state lives in
LEARNING_PROGRESS.md, never here.
1. Purpose¶
MineProductivity is a locked, certified framework (v2.0.0). Its reference
documentation explains what each package does. The Learning Suite exists to
answer a different question: how does a practitioner learn to think in this
framework?
The Suite teaches the platform from first principles, using real mining problems, in the order the architecture itself is layered - so that by the end a reader can model a mine, measure it, reason about it, and extend it without guessing.
2. Audience¶
Four groups read this material, and every lesson must serve all four:
| Reader | What they arrive with | What they need from us |
|---|---|---|
| Mining engineer | Deep domain truth; limited framework vocabulary | Why the software models the pit the way it does |
| Data scientist | Statistics and Python; partial domain context | Where the governed facts come from, and what they may/may not re-derive |
| Software engineer | Architecture fluency; little mining context | What a haul cycle, OEE, or bench actually is |
| Researcher | Rigour and reproducibility | Provenance, determinism, and how to extend without forking |
3. Learning philosophy¶
These are binding constraints on every lesson, not aspirations.
- Why before how. A lesson that only shows API calls has failed. Each one must first establish the engineering problem the concept solves.
- The domain is real. Haul trucks, shovels, crushers, benches, shifts, ore
and waste, OEE. Never
Person,Car,Animal,Foo. - Verification-first authoring. Public APIs are read from the implementation and existing examples before a lesson is written. Signatures are never recalled or guessed.
- Every example executes. A lesson is not written until its script runs to
exit
0and passesruff,ruff format --check, andmypy --strict. - Teach the layer, in layer order. The Suite follows the platform's own locked dependency chain. A reader never meets a concept before its foundation.
- Reuse over duplication. Lessons compose the framework's real APIs and existing example assets. They never re-implement framework logic, and never introduce a helper that already exists.
- Honest about design. Where the architecture deliberately ships an interface and no implementation, the lesson says so and explains the reasoning, rather than inventing a concrete class to make a demo tidy.
- Locked once validated. A validated lesson is frozen. It is revisited only for a genuine defect - never for taste or refactoring.
4. Repository organization¶
The Suite is deliberately separate from the package demos that already exist.
| Location | Role | Audience posture |
|---|---|---|
examples/fundamentals/NN_topic/ |
Learning Suite lessons - a progressive, self-contained teaching path. Each lesson runs standalone. | "Teach me the framework." |
examples/<package>/ |
Pre-existing API demos - per-package capability showcases (core, events, kpis, decision, …). Authoritative API references. |
"Show me this package's surface." |
examples/workflows/ |
Milestone 3 - end-to-end mining workflows spanning packages. | "Solve my problem." |
benchmark/, notebooks/ |
Existing performance and notebook assets. Reused, not duplicated. | - |
Lessons are self-contained by design: each lives in its own directory and does not import across lesson boundaries. This is pedagogy, not duplication - a learner must be able to run lesson 04 without having run lesson 03. Framework logic is always reused; only narrative scaffolding is repeated.
5. Documentation organization¶
| Location | Role |
|---|---|
docs/tutorials/fundamentals/NN_topic.md |
The tutorial for each lesson, in the fixed format below |
docs/tutorials/index.md |
Tutorial hub; links Fundamentals alongside the package walkthroughs |
docs/learning/LEARNING_ROADMAP.md |
This document (locked) |
docs/learning/LEARNING_PROGRESS.md |
Live execution tracker and checkpoint |
mkdocs.yml |
Navigation; Fundamentals appears as a section under Tutorials |
Every tutorial cross-links to: its runnable script on GitHub, the relevant API Reference, the Architecture Handbook section that governs the concept, and the next lesson.
Fixed lesson format¶
Every tutorial contains these sections, in this order:
- Title · 2. Objective · 3. Prerequisites · 4. Concepts covered ·
- Complete runnable example · 6. Expected output · 7. Explanation ·
- Best practices · 9. Common mistakes · 10. Exercises ·
- Suggested next lesson
6. Milestones¶
| # | Milestone | Scope | Depends on |
|---|---|---|---|
| 1 | Fundamentals | 10 lessons + 10 tutorials teaching the platform from first principles | - |
| 2 | Package Tutorials | Depth per package: core, ontology, events, registry, plugins, connectors, kpis, analytics, decision, digital_twin, simulation, optimization, agents, visualization |
1 |
| 3 | Mining Workflows | Cross-package, problem-led: fleet productivity, crusher performance, shift analytics, dispatch, maintenance | 1, 2 |
| 4 | Reference Applications | Runnable applications built on the framework (dashboards, productivity cockpit, executive reporting) - plugin/application layer only | 2, 3 |
| 5 | AI Examples | Agent-layer teaching: root-cause analysis, KPI explanation, copilot patterns - reasoning backends stay plugins | 2, 3 |
| 6 | Research Examples | Reproducibility-led: Monte Carlo studies, benchmark studies, sensitivity analysis | 2, 3 |
Milestone 1 - Fundamentals (deliverables)¶
| # | Lesson | Package taught |
|---|---|---|
| 01 | Hello MineProductivity | install, kpis.REGISTRY |
| 02 | Entities | core.BaseEntity |
| 03 | Value objects | core.BaseValueObject |
| 04 | Events | events |
| 05 | Ontology | ontology |
| 06 | KPIs | kpis |
| 07 | Analytics | analytics |
| 08 | Decision | decision |
| 09 | Digital Twin | digital_twin |
| 10 | Visualization | visualization |
Each lesson ships one runnable script under examples/fundamentals/ and one
tutorial under docs/tutorials/fundamentals/.
7. Completion criteria¶
A milestone is complete only when all of the following hold. Partial completion is reported honestly against this list; it is never rounded up.
Per lesson
- [ ] Script exists, is self-contained, and uses only verified public APIs
- [ ] Script executes to exit 0
- [ ] ruff check clean
- [ ] ruff format --check clean
- [ ] mypy --strict clean
- [ ] Uses mining-domain concepts exclusively
- [ ] Tutorial exists with all eleven sections
- [ ] Tutorial's expected output matches the script's real output
Per milestone
- [ ] Every lesson above passes
- [ ] Navigation updated (mkdocs.yml, tutorial hub)
- [ ] mkdocs build --strict passes (0 warnings)
- [ ] scripts/quality/check_docs.py passes (0 broken links, 0 failed snippets)
- [ ] Full pytest suite still green (no regression in production code)
- [ ] src/ unmodified, unless a genuine defect was found and recorded
- [ ] LEARNING_PROGRESS.md updated to reflect true state
8. Governance¶
- This roadmap is locked. Amend only for a change in learning architecture (a new milestone, a changed format, a restructured layout).
- The implementation is the single source of truth. Where any plan, document, or prompt conflicts with the verified code, the code wins and the document is corrected.
- Production code is out of scope. The Suite never modifies
src/except to correct a genuine, demonstrated defect, recorded in the progress tracker. - Work is resumable. Every session ends with
LEARNING_PROGRESS.mdupdated and a checkpoint naming the exact next step.
References¶
Revision History¶
| Date | Change | Rationale |
|---|---|---|
| 2026-07-18 | Milestone 2 scope: 11 → 14 packages. Added registry, plugins, connectors to the Package Tutorials scope (inserted after events). No change to milestone ordering, dependencies, governance, philosophy, or milestones 1 and 3-6. |
Learning-architecture change (Decision D1, Option A): the plugin-first mechanism (registry/plugins) and the ingestion boundary (connectors) are packages, and "Package Tutorials" is where packages are taught; no other milestone covers them. Reviewed and frozen in architecture/M02_PACKAGE_TUTORIALS.md. |