Parent
Epic №36. Normative candidate: PR №43.
Статус
blocked до accepted R5 Classroom/StudentSeat gate.
Пользовательский результат
educator opens roster
→ selects learner
→ sees learner portfolio grouped by module
→ opens Project Viewer
→ views exact immutable version and version history
→ optionally enters explicit assistance mode
→ restore creates a copy
Scope
- operational roster detail;
- learner portfolio across personal/classroom project scope authorised to the educator;
- module tabs and project cards;
- universal read-only Project Viewer;
- exact immutable ProjectVersion selection;
- version history and diff envelope;
- audited teacher access;
- explicit, bannered, time-limited assistance/edit mode;
- restore-to-copy; existing immutable version never overwritten;
- last activity and safe status summary without exposing unrelated personal data.
Authorization invariants
- educator sees only learners in authorised classes;
- co-teacher requires explicit grant;
- default is read-only;
- assistance mode is a separate audited grant/action;
- learner ownership remains with learner Principal;
- teacher visibility does not imply teacher ownership;
- cross-tenant/class access denied at application and DB boundaries.
Acceptance
- Teacher opens authorised learner portfolio and exact project version.
- Another class/tenant is denied and audited.
- Version history is immutable.
- Restore creates a new owned copy and lineage; no overwrite.
- Assistance mode has visible banner, start/end audit and explicit expiry.
- StudentSeat/private project remains non-public.
- Automated authorization/E2E and owner screenshots PASS.
Non-goals
- assignments/submission/review/grades — R9;
- public profile/Explore — R8;
- publication/remix — R7 except internal restore-to-copy;
- admin/billing.
Owner stop
R7/R9 do not begin automatically after R6.
Parent
Epic №36. Normative candidate: PR №43.
Статус
blockedдо accepted R5 Classroom/StudentSeat gate.Пользовательский результат
Scope
Authorization invariants
Acceptance
Non-goals
Owner stop
R7/R9 do not begin automatically after R6.