Sub-issue of #138. Depends on #150 (course builder integration).
Goal
Make the outline correctable by hand, so a reviewer can fix the model's structural mistakes quickly instead of regenerating and hoping for better.
Why
Topic grouping is a judgement call, and the model will get some of it wrong: merging distinct topics, splitting one topic across chapters, ordering material in a way that teaches badly. If the only remedy is regeneration, reviewers either accept a flawed structure or lose their edits — both bad.
Editing operations
Behaviour requirements
Tasks
Acceptance criteria
- Every operation above works from the review UI and persists
- Human-edited items are distinguishable from generated ones in the data model
- Moving a lesson carries its content, quiz and source references
- Destructive operations confirmed, and covered by tests
- A reviewer can fully restructure an outline without regenerating
Note
The edit-provenance marking is the part that is easy to skip and expensive to retrofit. Without it, the re-ingestion work (#161) has no way to know what a human changed.
Sub-issue of #138. Depends on #150 (course builder integration).
Goal
Make the outline correctable by hand, so a reviewer can fix the model's structural mistakes quickly instead of regenerating and hoping for better.
Why
Topic grouping is a judgement call, and the model will get some of it wrong: merging distinct topics, splitting one topic across chapters, ordering material in a way that teaches badly. If the only remedy is regeneration, reviewers either accept a flawed structure or lose their edits — both bad.
Editing operations
Behaviour requirements
Tasks
app/courses/[courseId]/review/page.tsx) — drag-to-reorder or explicit move controlsAcceptance criteria
Note
The edit-provenance marking is the part that is easy to skip and expensive to retrofit. Without it, the re-ingestion work (#161) has no way to know what a human changed.