Learning Workflow
This document describes the runtime workflow from static curricula to learner-specific navigation and mastery updates.
1. Data Foundation: Landscapes, Structure, and Filters
SkillPilot starts from curriculum landscapes stored as JSON files under curricula/.
- The landscape is a DAG of learning goals with two relations:
containsfor hierarchy and scoperequiresfor didactic prerequisites- Runtime navigation does not use only direct
requires. - The system derives effective prerequisites by inheriting
requiresfromcontainsancestors. - Personal curriculum filters and course selections narrow the visible/searchable subset.
- The backend may still use the full structural graph for scope expansion and strict prerequisite checks.
2. The Learning Lifecycle
Step 1: Base Curriculum Selection
Before learning starts, a base curriculum must be chosen.
- Definition: the authority-defined landscape that provides the full goal universe.
- Example: "Gymnasiale Oberstufe Hessen" or a specific university pathway.
Step 2: Personal Curriculum / Filters
The learner narrows the base curriculum to the subset relevant for their own path.
- Definition: the filtered subset of the base curriculum that should currently count as in-scope.
- Example: selecting advanced Math and basic Physics while omitting unrelated subjects.
- Result: this filtered view becomes the candidate space for frontier navigation.
Step 3: Planned Scope and Active Goal
The learner can define focus at two different levels.
- Planned goals / scope roots: one or more goals can be marked as planned.
- Their descendants define the learner's current focus scope.
- If no planned goals are set, the whole personal curriculum remains in scope.
- Active goal: one goal can be active as the immediate working target in the UI/tutor loop.
- The active goal should normally come from the frontier, but the system can still diagnose blockers for non-frontier selections.
Step 4: Frontier Calculation and Navigation Loop
Learning proceeds along the frontier: the set of sensible next goals.
- A goal is frontier-eligible when:
- the goal itself is not yet mastered
- all effective prerequisites are sufficiently mastered
- Effective prerequisites include:
- the goal's direct
requires - inherited
requiresfrom ancestor clusters viacontains
SkillPilot supports two evaluation modes for filtered learning:
- Optimistic mode: apply the filter first and check prerequisites only inside the filtered graph.
- This lets learners start directly in the selected scope without being blocked by out-of-filter gaps.
- Strict mode: candidates are still chosen from the filtered graph, but prerequisites are enforced globally.
- This exposes missing foundations outside the current filter.
Runtime loop:
- Calculate the frontier inside the current filtered/planned scope.
- Let the tutor or UI select an active goal from that frontier.
- If the learner wants a non-frontier goal, trace the missing effective prerequisites and redirect to the blockers.
Step 5: Mastery, Aggregation, and Feedback
Progress is stored as mastery on atomic goals and aggregated upward for clusters.
- Atomic mastery is tracked per goal UUID on a
0.0to1.0scale. - Cluster mastery is aggregated from contained descendants using goal weights.
- Memorization/SRS goals are a special case.
- Their mastery is derived from review state rather than manually set.
When mastery changes:
- satisfied prerequisites unlock new goals
- the frontier is recomputed
- the learner state refreshes, including next steps and summaries