| name | ml-course-interactive-learning-assistant |
| description | Use when creating an interactive review for an ML-course lecture and its course-specific source, safety, and publishing rules are needed. |
ML Course Interactive Learning Assistant
This is the ML-course adapter for
interactive-learning-experience-builder. Use that portable core for the
experience specification, content contract, single-file rendering, accessibility
requirements, and reusable validation. This adapter supplies only stable
ML-course constraints.
Course context
- Read repository instructions and relevant contributor guidance before selecting
sources.
- Resolve the requested lecture slug through
lectures/index.yaml.
- Store the grounded payload at
lecture_experiences/content/<lecture_slug>.json
and the generated review at
lecture_experiences/<lecture_slug>/index.html.
- The committed offline HTML is the source for the Pages copy. Build tooling
copies it to
site/_build/demos/<lecture_slug>/index.html; do not maintain a
second demo under site/.
Source and safety policy
Ground claims in this order:
lectures/<lecture_slug>/lecture_notes.md;
lectures/<lecture_slug>/README.md and links.yaml;
- public
lecture_examples/ material;
- the public practical README and student notebook;
- relevant
okf/ concepts as read-only supporting sources.
Do not modify okf/. Do not use private solutions, teacher notebooks, answer
keys, grading data, unpublished drafts, or untracked quiz workbooks. Name every
public course source used in the payload. The course generation wrapper enforces
those restricted path categories and rejects lectures/ sources outside the
selected lecture while permitting okf/ as read-only supporting context.
Its source allowlist accepts only canonical lowercase
lectures/<lecture_slug>/... and okf/... repository paths. Other relative
roots, URLs, knowledge-base identifiers, and case-variant roots are rejected
even though the portable core can support them in unrelated repositories.
Recurring generation workflow
-
Ask the learner for four defaults: Foundations, Applied, or Challenge quiz
depth; focus-friendly mode on or off; color-blind-safe palette on or off; and
funny topic-related break prompts on or off.
-
Create the short experience specification required by
interactive-learning-experience-builder, then ground the payload using the
course source order above.
For every visualization, name the lecture objective it teaches and record it
as a named lecture objective in the experience specification. Do not repeat a
generic chart set across lectures; reject a repeated generic chart set when a
supported semantic visualization type better represents the objective. Before
publishing, exercise every visualization control and both palette modes.
-
Include the three foundations, applied, and challenge quiz banks with
exactly 10 questions each. Embed break prompts even when their initial display
setting is off.
-
Generate through the thin course-policy wrapper, which delegates rendering to
the portable core only after source validation:
uv run python .agents/skills/ml-course-interactive-learning-assistant/scripts/generate_course_learning_experience.py `
--lecture-slug <lecture_slug> `
--content lecture_experiences/content/<lecture_slug>.json `
--template .agents/skills/interactive-learning-experience-builder/assets/learning-experience-template.html `
--output lecture_experiences/<lecture_slug>/index.html
-
Validate with the portable core:
uv run python .agents/skills/interactive-learning-experience-builder/scripts/validate_learning_experience.py `
lecture_experiences/<lecture_slug>/index.html
-
Open the generated index.html directly through file://. Verify all four
learner settings, visualizations and their fallbacks, answer review and
whole-quiz Retry, keyboard navigation, visible focus, reduced motion, and
storage fallback when storage is disabled. The core remains responsible for
deterministic single-file output, static no-JavaScript explanations and quiz
review, and accessible chart fallbacks.
Course checks and deployment
Before committing a lecture review, run the focused experience tests and the
course preview build:
uv run pytest tests/test_eda_lecture_experience.py tests/test_interactive_learning_assistant_skill.py tests/test_interactive_learning_assistant_docs.py tests/test_interactive_learning_experience_builder_skill.py tests/test_learning_experience_portability.py -q
uv run python tools/build_textbook_preview.py
After merging to main, verify GitHub Actions and the deployed Pages review in
the public student repository.