matlab-generate-grader-assessments
Generate MATLAB Grader assessment item sets. Use when the user asks to create MATLAB Grader assessment items, generate MATLAB assessment materials, build MATLAB homework assessment items, QTI 3 portable assessment items, or mentions "grader assessment items". Produces complete assessment item folders with description, solution, template, tests, Function call blocks, and optional QTI 3 interchange files.
git clone --depth 1 https://github.com/matlab/agent-skills-playground /tmp/matlab-generate-grader-assessments && cp -r /tmp/matlab-generate-grader-assessments/demos/course-generation/skills/matlab-generate-grader-assessments ~/.claude/skills/matlab-generate-grader-assessmentsSKILL.md
# MATLAB Grader Assessment Item Generator
Generate complete MATLAB Grader assessment item sets in the current agent session. Each assessment item produces
a subfolder with native artifact files (description, solution, template, tests) ready to paste into
MATLAB Grader. Function assessment items also include `function_call.m` for MATLAB Grader's
"Code to call your function" area. An optional QTI 3 interchange package can be created for
portability and sharing.
Terminology note: use "assessment item" in user-facing text. "Problem" may still appear
only in legacy compatibility identifiers or when explaining older MATLAB Grader terminology.
## Input
The user may have provided a learning objective in their request.
If they did not, collect it in Step 1.
## Reference Files
Before generating any artifacts, read the appropriate reference files from the `references/`
directory alongside this skill:
- `references/assessment-item-types.md` — assessment item type definitions, class assessments, output structure
- `references/assessment-research.md` — research-informed formative and summative assessment method
- `references/options-prompt.md` — how to generate assessment item options
- `references/description-prompt.md` — how to generate descriptions (by assessment item type)
- `references/solution-prompt.md` — how to generate solutions (by assessment item type)
- `references/template-prompt.md` — how to generate templates (by assessment item type)
- `references/function-call-prompt.md` — how to generate the student call block for Function assessment items
- `references/tests-prompt.md` — how to generate test cases (by assessment item type)
- `references/qti3-prompt.md` — how to generate optional QTI 3 item and manifest files
Read `references/assessment-item-types.md` and `references/assessment-research.md` now to load the
type definitions and assessment method.
## Pipeline Overview
```
Step 1: Collect inputs (objective, assessment item type, class assessment if applicable, assessment purpose, output format)
Step 2: Generate 4 assessment item options (varied difficulty)
Step 3: User selects which assessment items to develop
Step 4: For each selected assessment item, generate artifacts sequentially
Step 5: Write files to output subfolders and optional QTI 3 package
```
---
## Step 1: Collect Inputs
If the user provided a learning objective, confirm it. Otherwise, ask for one.
Collect the following one at a time:
### 1a. Learning Objective
If the user has not already provided one, ask: "What is the learning objective for these MATLAB Grader assessment items?"
### 1b. Assessment Item Type
Ask the user to choose an assessment item type:
- **Script** — student submits a .m script; assessed by workspace variables
- **Function** — student submits a .m function; assessed by input/output values
- **Class** — student submits a classdef .m file; assessed via instantiation
- **Object usage** — student submits a .m script that uses a provided class
### 1c. Class Assessment (only if assessment item type is Class)
If the user chose "Class", ask which aspect to assess:
1. Constructor - property assignment (blank: obj.prop = arg lines)
2. Constructor - computed property (blank: derived property computation)
3. Instance method (blank: method body)
4. Constant property (blank: value in properties (Constant) block)
5. Operator overloading (blank: overloaded operator method body)
### 1d. Number of Options
Ask: "How many assessment item options should I generate? (default: 4)"
Accept 2-6. Default to 4 if the user just presses enter or says "default".
### 1e. Output Directory
Ask: "Where should I write the assessment item folders? (default: current directory)"
Default to the current working directory. The user can specify a path.
### 1f. Assessment Purpose
Ask: "Is this assessment primarily formative, summative, or both? (default: summative)"
Default to:
- Formative if the user says practice, feedback, homework draft, tutoring, self-check,
revision, lab prep, or low-stakes.
- Summative if the user says exam, grade, final submission, high-stakes,
or does not specify.
- Both if the user explicitly wants practice and grading reuse.
Use `references/assessment-research.md` to apply the correct design rules:
- Formative: smaller scope, self-checks, diagnostic test names, and feedback-oriented
evidence.
- Summative: objective-aligned independent tests, randomized hardcoding detection,
edge cases, and minimal answer-revealing hints.
- Both: formative self-checks plus summative-grade tests.
### 1g. Optional QTI 3 Export
Ask: "Should I also create QTI 3 interchange files for portability? (default: no)"
Default to no unless the user asks for QTI, portability, standards-based assessment items,
interchange files, import/export payloads, or sharing between instructional designers.
If enabled, tell the user:
"I will create the normal MATLAB Grader files plus a QTI 3 package. The QTI files preserve
the prompt, template, function call block when applicable, solution, tests, and metadata for interchange; they do not make a
generic QTI player execute MATLAB grading logic."
---
## Step 2: Generate Assessment Item Options
Read `references/options-prompt.md` to construct the prompt.
Build the system prompt by:
1. Starting with the base system prompt from the reference
2. Replacing {NUM_OPTIONS} with the user's choice
3. Appending the assessment-item-type-specific note (Class, Function, Object usage, or nothing for Script)
Build the user message with the learning objective and assessment item type.
Use the assessment purpose to vary options:
- Formative options should be short, diagnosable, and suitable for revision.
- Summative options should measure a clear objective with reproducible evidence and
enough complexity to distinguish levels of mastery.
- Both should be usable for practice first and grading later.
**You ARE the AI generating these options.** Do not make an API call. Instead, directly generateUse 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 when a learner asks for help with MATLAB homework, labs, projects, graded assignments, take-home exams, quizzes, or any programming task where academic integrity, course policy, or instructor constraints may limit direct solutions. Use to provide policy-aware hints, conceptual coaching, partial feedback, and assignment-safe MATLAB tutoring.
Use when tutoring a learner through MATLAB debugging, error interpretation, failed tests, incorrect outputs, array-shape problems, indexing mistakes, function argument issues, or code repair practice. Use for guided debugging sessions, debugging drills, teach-the-agent critique, and evidence-based MATLAB troubleshooting.
Use when an AI tutor session concerns MATLAB programming concepts, MATLAB syntax, MATLAB errors, MATLAB code style, MATLAB projects, or MATLAB toolbox workflows.
Use when an instructor wants to create, interview for, configure, install, update, or review a course AI-use policy for MATLAB AI tutoring. Produces an AI-POLICY.md file for LMS sharing and local tutoring-session enforcement by assignment guardrails.
Create MATLAB Course Designer MATLAB Exercise learning activities by wrapping the existing matlab-generate-grader-assessments skill, then validating generated solution.m, template.m, and tests.m files with MATLAB MCP Server tool calls. Use when the user asks to create a MATLAB Exercise, MATLAB course activity, Course Designer MATLAB activity, validated MATLAB solution file, or MATLAB Exercise component folder.
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.