matlab-generate-course
Interview an instructor and generate a complete MATLAB and Simulink enabled course in IMS Common Cartridge format. Use when the user asks to create a MATLAB course, Simulink course, MATLAB and Simulink curriculum, MATLAB Course Designer-ready course shell, Common Cartridge course package, .imscc export, MATLAB Exercises with validated .m files, or Simulink Exercises with starter and solution model files. Coordinates IDStack, MATLAB Agentic Toolkit, Simulink Agentic Toolkit, matlab-create-course-activity, simulink-create-course-activity, and the existing matlab-generate-grader-assessments skill.
git clone --depth 1 https://github.com/matlab/agent-skills-playground /tmp/matlab-generate-course && cp -r /tmp/matlab-generate-course/demos/course-generation/skills/matlab-generate-course ~/.claude/skills/matlab-generate-courseSKILL.md
# MATLAB Course Designer Create a complete MATLAB and Simulink enabled course package through an instructor interview. The final deliverable is an IMS Common Cartridge `.imscc` file plus reviewable source artifacts for the instructor. The generated course must conform to the MATLAB Course Designer organization model: one course contains one or more ordered modules, and each module contains one or more ordered learning activities. Preserve this hierarchy in all intermediate artifacts so future API work can create MATLAB Course Designer course instances directly. Use the public MATLAB Course Designer documentation as the source for this hierarchy: <https://www.mathworks.com/help/matlab-and-simulink-online-courses/matlab-course-designer.html>. Do not hand-roll workflows that already exist in prerequisite skills: - Use IDStack for instructional design pipeline work and Common Cartridge export. - Use the MATLAB Agentic Toolkit for MATLAB activity, code, data, validation, and live-script-ready guidance. - Use the `matlab-create-course-activity` skill to create Course Designer-ready MATLAB Exercise folders by wrapping `matlab-generate-grader-assessments` output and validating generated `.m` files with MATLAB MCP Server tool calls. - Use the Simulink Agentic Toolkit for Simulink model activity design, model validation, and testing guidance. - Use the `simulink-create-course-activity` skill to create Course Designer-ready Simulink Exercise folders with starter and solution `.slx` files. - Use the existing `matlab-generate-grader-assessments` skill as the first authoring step for MATLAB Exercise component parts, because MATLAB Course Designer MATLAB Exercises are structurally close to MATLAB Grader assessment items. ## Input The user may have provided course context in their request. If it is missing or too vague, collect the minimum instructor context in Step 1 before generating anything. ## Reference Files Read these references from the `references/` directory alongside this skill as needed: - `references/interview-guide.md` — instructor interview questions and defaults - `references/instructional-design-research.md` — MATLAB/Simulink-specific research rules for objectives, module sequencing, and learning activities - `references/course-artifact-rules.md` — Course Designer hierarchy, output structure, and required files - `references/matlab-simulink-activity-rules.md` — activity design rules - `references/common-cartridge-export.md` — export and review rules Read `references/interview-guide.md`, `references/instructional-design-research.md`, and `references/course-artifact-rules.md` before starting the instructor interview. ## Pipeline Overview ``` Step 1: Interview the instructor and capture course constraints Step 2: Confirm prerequisites and output directory Step 3: Run or prepare the IDStack design pipeline Step 4: Add MATLAB and Simulink activity specifications and model artifacts Step 5: Generate validated MATLAB Exercise artifacts through matlab-create-course-activity Step 6: Verify native Course Designer activity types and assessment placement Step 7: Export Common Cartridge through IDStack course-export Step 8: Write instructor review checklist and final review summary ``` ## Step 1: Instructor Interview Use `references/interview-guide.md`. Collect only missing information. If the user already supplied a syllabus, course title, module list, or learning goals, infer what you can and ask targeted follow-ups. Required inputs: - Course title and one-sentence course purpose - Learner audience and prerequisite knowledge - Duration, pacing, and module count - Delivery mode: in person, online, hybrid, self-paced, or lab-supported - Target persistence format, defaulting to Common Cartridge for MATLAB Course Designer review - MATLAB scope: programming, data analysis, numerical methods, apps, hardware, AI, signal processing, controls, or other domain - Simulink scope: modeling, simulation, control design, physical modeling, code generation, verification, or other domain - Assessment plan: native MATLAB Exercises, Simulink Exercises, readings, and videos; Course Designer does not support generic assignments or discussions - Required products and toolboxes, if known - Accessibility, academic integrity, and institutional constraints - Output directory, defaulting to the current working directory If the course includes MATLAB Exercises, state that `matlab-create-course-activity` will wrap the `matlab-generate-grader-assessments` skill, validate generated `.m` files with MATLAB MCP tool calls, split `description.txt` into copy/paste-ready `background.m` and `task.m` files, then enrich the activity with MATLAB Course Designer authoring fields such as module placement. ## Step 2: Prerequisite Check Before generating the course, verify or ask the user to confirm that these skills/toolkits are available: - IDStack skills, especially `needs-analysis`, `learning-objectives`, `assessment-design`, `course-builder`, `course-quality-review`, `accessibility-review`, `red-team`, and `course-export`. IDStack is a third-party open-source project (MIT licensed), available at <https://idstack.org/>; it is not bundled with this skill package - MATLAB MCP Server connected to a licensed MATLAB session; this is the verifiable capability that runs all `.m` file and model validation - MATLAB Agentic Toolkit for MATLAB workflow guidance - `matlab-create-course-activity` skill for MATLAB Exercise `.m` file validation - Simulink Agentic Toolkit - `simulink-create-course-activity` skill for Simulink Exercise model files - `matlab-generate-grader-assessments` skill from the MATLAB Grader Assessment Item Generator package If a prerequisite is missing, do not fabricate its output. Explain which part of the course workflow is blocked, then continue with what remains legitimately possible: planning artifacts always; MATLAB Exercise generation when `matlab-create-course-activ
>
Use this skill when the user wants to author, design, scope, or refine an Agent Skill (a SKILL.md file). Trigger phrases include "build a new skill", "design an agent skill", "scope a SKILL.md", "how should I structure this skill", "write a skill for X", "my skill isn't working well", or any request to improve an existing SKILL.md. Walks the user through an empirical, test-first process — probe the agent for real failures, design only for genuine knowledge gaps, iterate against runnable examples, and verify across models.
Use this skill for any work involving a MATLAB Project (.prj file) — creating a new project, tracking files, managing the project path, configuring Simulink cache and code-generation folders, running project health checks, or writing build scripts that keep the project in sync with the file system. Trigger phrases include "set up a MATLAB project", "create a .prj", "track this file in the project", "project health check", "build script conventions". This skill is the generic foundation; domain-specific skills (e.g. `mbse-workflow`) build on it.
Use this skill for the architecture phases of an MBSE workflow in MATLAB, when writing idempotent buildXxx.m scripts that produce a three-layer RFLPV architecture (Functional, Logical, Physical) with interface dictionaries, stereotype profiles, allocation sets, and requirements Implement links. Trigger for defining stereotype properties, functional-to-logical / logical-to-physical allocation, mapping requirements to components via slreq Implement links, or running quantitative roll-up analysis on the architecture. Do NOT trigger for ad-hoc structural edits to an already-built System Composer model (adding one component, rewiring a port) — use `building-simulink-models` with `model_edit` for that. Works alongside the `system-composer` skill for detailed SC API patterns.
Use this skill for guided MBSE work in MATLAB — starting a new project, resuming work mid-workflow on an existing project, or answering orientation questions about how the MBSE skills fit together. Trigger when the user says they want to create, start, or set up a new MBSE project; work on a model-based systems engineering / RFLPV project; or asks which skill covers which phase. Walks through phases one at a time — propose → approve → generate → run → confirm. Use proactively whenever someone mentions starting or continuing an MBSE project.
Use this skill for all requirements-related work in a MATLAB MBSE project using the Requirements Toolbox (slreq). Covers creating and populating requirement sets, derivation links, test case requirements, verification coverage, reading and tracing links across requirement sets and models, checking link health, allocating requirements to components (Implement links), and building traceability reports. Trigger when the user asks about slreq API, slreqx files, slmx link files, outLinks/inLinks, traceability matrices, coverage analysis, broken links, or mapping requirements to architecture components. Use proactively for any requirements or traceability task.
Use this skill when authoring reusable, idempotent MATLAB scripts that build System Composer architecture models via the architecture-modeling API — `systemcomposer.createModel`, `addComponent`, `addPort`, `setInterface`, `connect(srcPort, dstPort)`, interface dictionaries (.sldd) with `addInterface`/`addElement`, profiles/stereotypes with `Profile.createProfile` and `addStereotype`, or `systemcomposer.allocation.createAllocationSet`. Also trigger when debugging these APIs (connections that don't appear, interfaces that don't resolve, profile save errors, `createAllocationSet` signature-mismatch errors). Do NOT trigger for ad-hoc structural edits to an already-built model (adding one SubSystem, rewiring a port) — use `building-simulink-models` with `model_edit` for that.
Optimize MATLAB code for better performance through vectorization, memory management, and profiling. Use when user requests optimization, mentions slow code, performance issues, speed improvements, or asks to make code faster or more efficient.