Skip to content

InteractiveLesson

InteractiveLesson ● ACTIVE
Contract: v0.9.4 • View Schema ↗
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

SourceToolOutput
Canvas package (.imscc)curator curate --source-type LMS_PACKAGEInteractiveLesson
Moodle package (.mbz)curator curate --source-type LMS_PACKAGEInteractiveLesson
Canvas Commons (batch)docs discover --source canvas-commons + curator batchInteractiveLesson[]

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

Ventana de terminal
# Single package in sandbox
curator curate \
--source ce-specs/sources/lms/canvas/canvas_bio_mitosis.imscc \
--output-type INTERACTIVE_LESSON \
--courseId 88 --sandbox
# Batch from Canvas Commons
docs discover --source canvas-commons --subject biology --output canvas.yaml
docs download --list canvas.yaml --local-dir ce-specs/sources/lms/canvas/
curator batch --manifest ce-specs/tests/lms_batch_manifest.yaml --parallel 2
# LMS tests
curator test --lms --case canvas_biology_bach1_smoke
curator test --lms --all --threshold 70

A2UI 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.