Platform / HANDBOOK
Courses and collaboration
Turn study material into a shared course while preserving membership, permissions, learner work, and delivery state.
Membership is not unrestricted access
The course model distinguishes owner, teacher, student, and peer roles. Operations enforce membership and permissions, report authorization failures, and detect conflicting revisions. Teacher access has separate private, requested, and full states; do not assume that enrollment grants access to every learner record.
For a new operation, define its schema, permission rule, revision behavior, and viewer projection before adding a button. A client-side control can explain what is available, but the operation boundary must enforce the same rule.
Assemble material, then invite people into it
The course UI provides assembly, content management, invitations, discussion, and review surfaces. The teaching tool adapter can work with course context, while course-specific modules handle search, comments, artifacts, and cards. Keep these operations explicit so an agent's authored content uses the same validation as manual editing.
An invitation, a successfully saved course, and a learner's completed activity are different events. Interface copy should show the actual state rather than treating a generated course description as a published or joined course.
Save locally before network delivery
Course submissions use a durable local outbox. Saving work creates an immutable queued revision without waiting for the network. Attachment upload and application of the remote course operation happen later. A predecessor chain preserves ordering even when several edits share a timestamp.
Treat 'saved on this device' and 'delivered to course' as separate outcomes. Pending delivery, retryable failure, and conflicting remote revisions must not erase entered work or imply that a teacher already received it.
Performance activities need honest feedback
AudioResponse and VideoResponse let learners record, replay, select a take, and add reflection. The selected file is saved through the local attachment flow and can be delivered through the course outbox. Recording begins only after an explicit learner gesture; camera and microphone permissions remain browser-controlled.
Recording is not automated assessment. Attachment metadata does not mean a model has listened to speech or understood a demonstration. Timing is optional, and correctness must not be awarded merely because a learner finished quickly.