mbse-workflow
This skill orchestrates guided model-based systems engineering projects in MATLAB by walking users through phases sequentially: propose → approve → generate → run → confirm. It handles both new project setup and resuming mid-workflow, routing to domain-specific skills like simulink-requirements and mbse-architecture for technical implementation while managing conversation flow and script generation. Use it when a user wants to create, start, or continue an MBSE project, or needs clarification about which skill covers which phase.
git clone --depth 1 https://github.com/matlab/agent-skills-playground /tmp/mbse-workflow && cp -r /tmp/mbse-workflow/demos/mbse-with-agentic-ai/skills/mbse-workflow ~/.claude/skills/mbse-workflowSKILL.md
# MBSE Workflow — Guided Project Setup and Phase Orchestration
This skill walks through an MBSE project one phase at a time — for greenfield
setup *and* for resuming an existing project mid-workflow. At each phase:
propose → get approval → generate script → run it → checkpoint. If the user
rejects or wants changes, revise and regenerate — scripts are idempotent so
this is always safe.
## Skills by phase (at-a-glance routing)
| Phase | Domain skill | What it covers |
|---|---|---|
| 0 | `matlab-project` | `.prj` setup, folder layout, file tracking, build-script conventions, `runChecks` |
| 1, 9 | `simulink-requirements` | `slreq` API — SNs, SRs, TCs; Derive / Implement / Verify links; coverage |
| 2–4 | `mbse-architecture` (+ `system-composer`) | F / L / P models, three-level interface dictionaries |
| 4b–c | `mbse-architecture` / `system-composer` | Stereotype profile, architecture views (review dashboards) |
| 5–7 | `mbse-architecture` | F→L and L→P allocation sets, SR Implement links per layer |
| 8 | `mbse-architecture` | Quantitative roll-up analysis, margins (optional) |
| 10 | this skill | `buildAll.m`, project health check |
**Builds on `matlab-project`** for the generic `.prj` mechanics: project
creation, file tracking, path management, `removeFile`-before-`delete`,
build-script idempotency conventions, and `runChecks` health checks. This
skill generates the MBSE phase content; the project plumbing follows the
patterns in [`../matlab-project/SKILL.md`](../matlab-project/SKILL.md).
Use the other `mbse-*` skills for technical API patterns at each phase. This
skill manages the conversation flow and script generation.
---
## Project folder layout
The MBSE project layout follows the standard `setupProject` shape from
`matlab-project`, with these subfolders:
```
my-system/
├── my-system.prj MATLAB Project file
├── plan.md / decisions.md (living docs — see below)
├── requirements/ .slreqx files (StakeholderNeeds, SystemRequirements, TestCases)
├── architecture/ .slx, .sldd, .xml, .mldatx (model, dictionary, profile, allocation)
├── analysis/ .mat (analysis instances)
├── verification/ (reserved — TC artifacts currently live in requirements/)
├── scripts/ buildAll.m, all phase build scripts, setupProject + setupMBSEProject
└── derived/ build outputs — NOT tracked in the project
├── cache/
└── codegen/
```
---
## Cross-Phase Dependencies
- **Architecture rebuilds break allocation links.** `slreq.createLink` stores
component references by Simulink SID. If you rebuild the model, SIDs change
and Implement allocation links become stale. Always rebuild allocation after
rebuilding the architecture model.
- **Profile setup belongs in the architecture script.** Create and apply the
stereotype profile at the end of `buildPhysical()` so estimates travel with the
model and survive every rebuild.
- **`slreq.saveAll()` saves cross-set links.** Call it after any session that
creates links between different `.slreqx` files or between requirements and
architecture artifacts.
- **`slreq.clear()` unloads all sets from memory** but does not delete files.
Call it at the top of each script for a clean slate, then `slreq.load()` the
files you need.
- **Delete `.slmx` link files alongside `.slreqx` files** when rebuilding
requirement sets. Stale `.slmx` files store cross-artifact links and will
auto-open old model files on load, causing conflicts.
---
## How to conduct this session
Work through the phases in order. Never jump ahead. At each checkpoint, present
what you are about to create in plain language and wait for explicit approval
("looks good", "yes", "proceed") before generating the script. If the user
asks for changes, make them and re-present — do not generate until approved.
After running each script, show the MATLAB output and ask the user to confirm
it looks right before moving to the next phase. Keep proposed content concise
and specific — avoid vague placeholders.
---
## Living documentation: `plan.md` and `decisions.md`
This skill **overrides** the generic living-doc framework from `matlab-project`
with MBSE-flavored templates. The framework, cadence guidance, and
when-to-append rules live in [`../matlab-project/SKILL.md`](../matlab-project/SKILL.md);
this skill ships its own templates with RFLPV phase rows and MBSE-specific
sections (Engineering concerns, Analysis scope, Decision context).
Use the templates at
[`templates/plan.md`](templates/plan.md) and
[`templates/decisions.md`](templates/decisions.md) — **not** the generic ones
under `matlab-project/templates/`. Phase 0 copies both into the project root,
fills placeholders from the interview answers, and registers them with the
MATLAB project so they travel with the repo. Subsequent phases edit them per
the cadence in `matlab-project`.
---
## Phase 0: Interview and Project Setup
Ask the following questions (can be in one message):
1. **System name** — what is the system called? (Used for file and model names, e.g. `SatComSystem`)
2. **Project location** — full path to the folder where the project should be created
3. **System description** — one paragraph: what does it do, what problem does it solve?
4. **Requirements source** — do you already have system requirements in an Excel/xlsx file, or should we develop them together in the interview? (determines Phase 1 Path A vs. Path B below)
5. **Key engineering concerns and review views** — two linked sub-questions, ask together:
- (a) What *properties* of components matter for design decisions? (e.g. mass, power, cost, reliability, latency, data rate, supplier, safety level — these become stereotype properties applied to every physical component.)
- (b) What *filtered views* of the architecture would help during review? (e.g. "components costing more than 10% of the cost budget", "all safety-critical components", "components supplied by vendor X", "componUse 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.