InteractiveLesson
InteractiveLesson
InteractiveLesson is a pedagogical spec type generated by the Curator Agent from LMS packages (Canvas .imscc, Moodle .mbz). It represents a structured lesson with slides, interactive widgets, and learning objectives aligned to a curriculum.
Use Cases
| Source | Tool | Output |
|---|---|---|
Canvas package (.imscc) | curator curate --source-type LMS_PACKAGE | InteractiveLesson |
Moodle package (.mbz) | curator curate --source-type LMS_PACKAGE | InteractiveLesson |
| Canvas Commons (batch) | docs discover --source canvas-commons + curator batch | InteractiveLesson[] |
YAML Schema
apiVersion: core.oas.colabedu.io/v1beta1kind: InteractiveLessonmetadata: name: <referenceCode> # e.g.: global.lesson.bio.mitosis.bach1.v1 displayName: "<Human-readable title>" description: "<Pedagogical description>" tags: - biology - bachillerato lmsSource: platform: canvas # canvas | moodle packageId: "<package-id>" url: "<original-url>" importedAt: "2026-06-09T00:00:00Z"
spec: learningObjectives: - "Students understand the phases of mitosis." - "Students identify differences between mitosis and meiosis."
slides: - id: slide_01 title: "Introduction to Mitosis" type: text_image # text_image | quiz | video | interactive content: | Mitosis is the cell division process by which a cell produces two genetically identical daughter cells. assets: - type: image gcsUri: "gs://colabedu-lms-assets/<pkg-id>/mitosis_diagram.png" alt: "Diagram of mitosis phases"
- id: slide_02 title: "Phases of Mitosis" type: interactive widget: timeline_widget data: phases: - name: "Prophase" description: "Chromatin condenses to form visible chromosomes." - name: "Metaphase" description: "Chromosomes align at the metaphase plate." - name: "Anaphase" description: "Sister chromatids separate toward the poles." - name: "Telophase" description: "Two daughter nuclei form and cytokinesis begins."
- id: slide_03 title: "Comprehension Check" type: quiz widget: multiple_choice data: question: "In which phase do chromosomes align at the equatorial plate?" options: - "Prophase" - "Metaphase" - "Anaphase" - "Telophase" correct: 1 feedback: "Correct. In Metaphase, chromosomes align at the metaphase plate."
curricularContext: standard: LOMLOE level: "1 BACH" subject: "biology" referenceCode: "es.lomloe.bach.1.bio"Field Reference
metadata
| Field | Type | Description |
|---|---|---|
name | string | Unique identifier in referenceCode format |
displayName | string | Human-readable title for the UI |
lmsSource.platform | string | canvas or moodle |
lmsSource.packageId | string | Package ID in the original platform |
lmsSource.url | string | Download URL of the original package |
spec.slides[]
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier within the lesson |
title | string | Slide title |
type | enum | text_image | quiz | video | interactive |
widget | string | Flutter widget name registered in A2UI |
assets[] | array | References to assets uploaded to GCS |
spec.learningObjectives[]
List of learning objectives aligned to the curricularContext. The curator_lesson Gem extracts them from the LMS package manifest and refines them using the backend’s CurricularContext.
CLI Ingestion
# Single package in sandboxcurator curate \ --source ce-specs/sources/lms/canvas/canvas_bio_mitosis.imscc \ --output-type INTERACTIVE_LESSON \ --courseId 88 --sandbox
# Batch from Canvas Commonsdocs discover --source canvas-commons --subject biology --output canvas.yamldocs download --list canvas.yaml --local-dir ce-specs/sources/lms/canvas/curator batch --manifest ce-specs/tests/lms_batch_manifest.yaml --parallel 2
# LMS testscurator test --lms --case canvas_biology_bach1_smokecurator test --lms --all --threshold 70A2UI Integration
InteractiveLesson specs are rendered in the Flutter frontend via the interactive_lesson_widget.dart widget. The widget emits the lesson_completed event when all slides are finished.