Skip to main content
ClaudeWave
Skill173 repo starsupdated 24d ago

matlab-create-hands-on-exercises

Use when prompting a learner to complete hands-on MATLAB coding exercises, guided practice, debugging drills, code tracing, small MATLAB projects, or MATLAB-script assessment during tutoring. Use when the tutor should create a complete runnable MATLAB script, execute it through MATLAB tools, compare the produced outputs with expected outputs, and evaluate MATLAB programming style.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/matlab/agent-skills-playground /tmp/matlab-create-hands-on-exercises && cp -r /tmp/matlab-create-hands-on-exercises/demos/ai-tutoring/skills/matlab-create-hands-on-exercises ~/.claude/skills/matlab-create-hands-on-exercises
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# MATLAB Hands-On Exercises

## Purpose

Guide learners through active MATLAB practice. Exercises must be complete,
runnable MATLAB scripts when assessment is involved, and the tutor must execute
those scripts through MATLAB tools before judging correctness.

The goal is to provide MATLAB Grader-style formative assessment without requiring
MATLAB Grader: create an exercise, run the learner's code in MATLAB, compare
script outputs against expected values, inspect programming style with Code
Analyzer in MATLAB, and give targeted feedback.

For instructors, this skill turns tutoring into a small formative assessment.
Students still receive coaching, but the tutor also checks whether the code
actually runs and whether the produced outputs match the learning objective.

## Exercise Loop

1. State the goal in one sentence.
2. Define expected outputs and assessment criteria before the learner starts.
3. Give a complete script scaffold with a clearly marked learner section.
4. Ask the learner to predict, fill in, or revise the learner section.
5. Save the complete script as a temporary `.m` file.
6. Apply the execution preflight in
   [references/execution-safety.md](references/execution-safety.md), which
   includes running `check_matlab_code`; do not run it a second time.
7. Run `run_matlab_file` on the script and inspect the MATLAB output.
8. Compare produced variables, values, sizes, classes, errors, and required or
   forbidden functions against the assessment criteria.
9. Give targeted feedback and one extension or revision prompt.

Never mark an assessable exercise correct from visual inspection alone. If the
exercise has expected output, run the complete script in MATLAB and evaluate the
actual output.

## Exercise Types

- **Trace**: Predict workspace variables after each line.
- **Edit**: Modify a snippet to meet a requirement.
- **Debug**: Diagnose an error message and fix the root cause.
- **Refactor**: Replace fragile or verbose code with clearer MATLAB.
- **Test**: Write a `matlab.unittest` test for a function.
- **Analyze**: Import or summarize a tiny dataset.
- **Visualize**: Create or improve a plot.

Use the shortest exercise that can reveal the misconception. A five-line script
that exposes row-versus-column behavior is often more useful than a large
project when the goal is concept formation.

## Starter Exercise Pattern

Read [references/exercise-patterns.md](references/exercise-patterns.md) for reusable exercise formats.

Read [references/script-assessment-patterns.md](references/script-assessment-patterns.md)
when creating a complete runnable script, output checks, MATLAB Grader-style
assessments, tolerance-based comparisons, or Code Analyzer feedback.

Read [references/execution-safety.md](references/execution-safety.md) before
running learner-provided or generated MATLAB scripts.

## Safety and Academic Integrity

- For homework-like prompts, ask for the learner's attempt first.
- Treat learner code as untrusted input. Perform the execution safety preflight
  before running scripts.
- Do not run large or destructive code. Keep practice files small and temporary.
- Always explain what MATLAB script was run, which checks passed or failed, and
  what the output means.
- Avoid file I/O, network calls, `delete`, `rmdir`, shell commands, or long
  simulations unless the learner's explicit task requires them and the path is
  temporary and scoped.

## Feedback

Feedback should be specific:

- Identify the MATLAB rule involved.
- Point to the exact expression or line.
- Report the relevant MATLAB output, variable value, size, class, error, or Code
  Analyzer message.
- Explain how to inspect evidence next time.
- Give one revised attempt or next prompt.

## Assessment Policy

Assess scripts with the same broad categories MATLAB Grader uses for script
assessment:

- expected variable exists;
- expected variable has the right class, size, and value;
- numeric values are compared with an explicit tolerance;
- required functions or keywords are present when the learning objective calls
  for them;
- prohibited functions or shortcuts are absent when the exercise is about a
  specific programming concept;
- custom checks verify plots, tables, errors, or edge cases when variable
  equality is insufficient.

For course pilots, make the expected output explicit before the learner starts.
This helps instructors compare student attempts, AI feedback, and MATLAB
execution evidence.
embedded-ai-deploymentSkill

>

agent-skill-authorSkill

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.

matlab-projectSkill

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.

mbse-architectureSkill

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.

mbse-workflowSkill

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.

simulink-requirementsSkill

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.

system-composerSkill

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.

matlab-performance-optimizerSkill

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.