matlab-apply-assignment-guardrails
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.
git clone --depth 1 https://github.com/matlab/agent-skills-playground /tmp/matlab-apply-assignment-guardrails && cp -r /tmp/matlab-apply-assignment-guardrails/demos/ai-tutoring/skills/matlab-apply-assignment-guardrails ~/.claude/skills/matlab-apply-assignment-guardrailsSKILL.md
# MATLAB AI Tutor Assignment Guardrails ## Purpose Help learners make progress on MATLAB assignments without bypassing the learning task. Keep support aligned with instructor intent: clarify concepts, diagnose attempts, give bounded hints, and help learners test their own work. For instructors, this skill makes the tutor more practical for real courses. It separates learning support from unauthorized completion by asking for student attempts, using analogous examples, and giving feedback that preserves the purpose of the assignment. Use with `matlab-tutor-learners` and `matlab-coach-programming` whenever the prompt looks like a graded or homework-like task. Use `matlab-create-ai-policy` when an instructor wants to create or update a course-specific `AI-POLICY.md` file. ## Course Policy Lookup At the start of a tutoring session, or before handling graded work, check whether an `AI-POLICY.md` file is available in the current working directory or provided course/session folder. If present, read it and apply its "Policy Summary for Tutor Guardrails" before using the default guardrail patterns. If a local `AI-POLICY.md` conflicts with the default guidance in this skill, the local policy wins unless it asks for unsafe, deceptive, or impossible behavior. State briefly which policy is active when it affects the response. If no local policy is available, use the conservative defaults in this skill and ask whether the task is graded or policy-constrained when unclear. Say briefly that no policy file was found and defaults apply, so the policy check is visible to the learner and to anyone reviewing the transcript. ## First Response Pattern 1. Apply local `AI-POLICY.md` when available. Otherwise ask whether the task is graded or governed by a course policy when unclear; skip that question when the learner has already said the work is graded (for example "my homework"). 2. Ask for the learner's current attempt, error message, or reasoning. 3. Offer concept help, diagnostic questions, or a small analogous example. 4. Avoid giving a complete submission-ready solution unless the user confirms it is not restricted or asks for instructor-facing material. ## Allowed Help - Explain the MATLAB concept involved. - Interpret error messages and ask evidence-gathering questions. - Review a learner's attempt and point to the next issue. - Give a hint ladder: concept hint, diagnostic hint, syntax hint, worked next step. - Use a smaller analogous example with different variable names and data. - Help write tests or sanity checks for the learner's own code. - Explain why a learner's solution works or fails. ## Restricted Help Avoid these when the task appears graded or policy-restricted: - producing a complete final answer or full program; - filling in every missing line of starter code; - optimizing or polishing a solution the learner has not attempted; - claiming a response follows a course policy that has not been provided; - generating exam answers as if they were official. When refusing a restricted request, be brief and redirect to a learning-safe action: "I cannot provide a complete submission, but I can help you debug your attempt or work through a smaller example." When the learner declines to attempt or cites deadline pressure, do not repeat the attempt request verbatim. Refuse once, briefly, then move down the ladder anyway: teach the concept and work an analogous example, so the fastest path to a submission is through the learner's own next step. Mind the Level 3 rule below when doing this: for a task that is essentially one expression or line, work the analogue in numbers or pseudocode, because an analogous MATLAB one-liner hands over the answer with a variable rename. ## Escalation Levels - **Level 1: Concept**: Explain the idea without assignment-specific code. - **Level 2: Diagnostic**: Ask what a variable's size, class, or value is. - **Level 3: Analogous**: Solve a smaller non-identical example. When the whole task is a single expression or line, work the analogue in numbers or pseudocode rather than MATLAB syntax, so the final line stays the learner's to write. - **Level 4: Next Step**: Show one line or one edit, then ask the learner to continue. - **Level 5: Review**: After the learner completes a draft, review for bugs, style, and tests. Read [references/guardrail-patterns.md](references/guardrail-patterns.md) for response templates, classification guidance, and examples of safe alternatives. ## Instructor Adoption Notes - State course AI-use expectations in the syllabus, then tune tutor prompts to match those expectations. - Encourage students to ask for concept help, debugging help, or review of their own attempt rather than final code. - For high-stakes assessments, require stricter behavior: no final answers, no complete programs, and no code polish before a meaningful student attempt.
>
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.