PathForge
AI-native learning platform where the path rebuilds itself around what your submissions actually show.

Overview
A three-column lesson screen — lesson list, content and editor, tutor sidecar — where the tutor knows which section is open and cites it. Submitting a failing exercise streams an explanation of why it failed, not a solution. The path canvas shows the route through the material as a graph, and asking the architect to rebuild a branch produces an explicit old-versus-new diff before anything moves.
Specifications
USE CASE
Adaptive technical learning with an in-context tutor
WORKFLOW
Learn, submit, explain, rebuild, progress
OUTPUT
A knowledge-graph path that changes when you accept a diff
SECURITY
Sandboxed per-learner execution, LTI 1.3, submissions retained 24 months
Features
- 01Three-column lesson layout with an in-browser editor and canned run output
- 02A deliberately failing test whose explanation streams into the tutor column
- 03Tutor answers that cite the lesson section they came from
- 04Path canvas that genuinely mutates when a rebuild is accepted
- 05Skills radar derived from submissions, which is what drives the rebuild
Architecture
PATHFORGE PIPELINE
────────────────────────────────────────────
┌──────────────┐
│ Student goal │
└──────────────┘
↓
╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
┊ Path architect ┊
╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯
↓
┌──────────────────────┐
│ Knowledge-graph plan │
└──────────────────────┘
↓
┌─────────┐ ┌───────────┐ ┌──────────┐
│ Lessons │ │ Exercises │ │ Practice │
└─────────┘ └───────────┘ └──────────┘
↓
╭┈┈┈┈┈┈┈┈┈┈┈┈┈┈╮
┊ Lesson tutor ┊
╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈╯
↓
┌─────────────────────────┐
│ Progress + skills radar │
└─────────────────────────┘
╭┈┈╮ dashed = model step ┌──┐ deterministic stepWhat it will not do
Every screen carries one honest failure record with its recovery path. This is the one buyers remember. A run pasted a complete working solution when a learner asked for one, and the exercise was marked solved without the learner writing anything. The tutor now explains the failure and names the single missing call, and will not paste a solution for an unsubmitted exercise. A second run declined to cut a path to four hours — removing the prerequisites would have made the later nodes unpassable.

