InteractiveLesson
InteractiveLesson
● ACTIVE
Specification Standard: Open Pedagogy Specification (OPS) ce-specs-registry: schemas/lms/interactive_lesson.schema.yaml
⚡ Live Schema Contract Definition (Auto-synced from schemas/lms/interactive_lesson.schema.yaml) ▼
Metadata Properties (metadata)
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Standard reference code or name identifying the lesson unit. |
| id | string | Yes | Unique resource identifier (e.g. lesson.ap.unit1.thematic_intro.v1). |
| displayName | string | No | Student-facing lesson title displayed in the LMS course viewer. |
| description | string | No | Overview of instructional content and pedagogical goals. |
| tags | array | No | Curriculum alignment tags, CEFR levels, and subject keywords. |
| lmsSource | object | No | Provenance metadata tracking the source LMS package (Canvas IMSCC, Moodle MBZ). |
Specification Body (spec)
| Field | Type | Required | Description |
|---|---|---|---|
| learningObjectives | string[] | No | Pedagogical competencies and learning targets covered in this lesson. |
| slides | object[] | Yes | Ordered sequence of interactive slides, media elements, and assessment widgets. |
📦 Canonical YAML Example (Auto-synced from examples/lms/interactive_lesson.example.yaml) ▼
apiVersion: core.oas.colabedu.io/v1beta1
kind: InteractiveLesson
metadata:
name: "global.lesson.bio.mitosis.bach1.v1"
displayName: "Cell Division: Mitosis and the Cell Cycle"
description: "Interactive lesson imported from Canvas LMS covering the stages of mitosis with knowledge-check widgets."
tags:
- biology
- bachillerato
lmsSource:
platform: canvas
packageId: "canvas_bio_mitosis_pkg"
url: "https://canvas.example.edu/courses/101/mitosis.imscc"
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
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/mitosis/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" 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[] |
Curricular Alignment Notes
The curator_lesson Gem automatically extracts learning objectives aligned to the curricularContext 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.