Skill v1.0.1
Automated scan100/100+7 new
version: "1.0.1" name: managing-simulink-projects description: >- Manages MATLAB projects for Simulink workflows: path management, file registration, labels, source control configuration, and project lifecycle. Use when creating projects, adding models/dictionaries/requirements to projects, configuring labels for automation, fixing broken model references, or setting up source control for Simulink artifacts. license: MathWorks BSD-3-Clause metadata: author: MathWorks version: "1.1"
Managing Simulink Projects
MATLAB projects coordinate Simulink workflows — they manage the MATLAB path (which Simulink uses to resolve model references, data dictionaries, and requirements), track file membership for source control, and provide label-based automation for selecting targets in CI/CD pipelines.
When to Use
- Creating a new MATLAB project for Simulink models
- Adding models, data dictionaries, or requirements to an existing project
- Configuring project paths so Simulink can resolve references
- Setting up labels for automation (test selection, code generation targets)
- Configuring source control and cache folders
- Diagnosing broken model references, missing dictionaries, or failing project health checks
When NOT to Use
- Building or editing model structure (blocks, connections) → use
building-simulink-models - Writing or running tests → use
testing-simulink-models - Drafting requirements content → use
generate-requirement-drafts - Running simulations for analysis → use
simulating-simulink-models
Mental Model
Four principles that prevent the most common failures:
- Registration ≠ path.
addFileregisters a file with the project for source control tracking.addPathputs a folder on the MATLAB path so Simulink can resolve artifacts by filename. These are independent operations — you almost always need both.
- Filename-only resolution. Data dictionaries (
set_param(...,'DataDictionary',...),addDataSource), model references, and requirements all resolve via MATLAB path using filename only — never full paths. The containing folder must be on the project path.
- `addPath` is not recursive. Each subfolder containing resolvable artifacts needs its own
addPathcall.
- Single-project constraint. Only one project can be open at a time. Creating or opening a new project silently closes the current one (running its shutdown scripts).
currentProjectthrows an error when no project is open — it does not return empty.
Guardrails
Always:
- Use
addPath(proj, folder)for every folder containing dictionaries, referenced models, requirements, or profiles - Pass filename only (not full paths) to
addDataSource,set_param(...,'DataDictionary',...), andslreq.createLink - Use absolute paths for
SimulinkCacheFolderandSimulinkCodeGenFolder:proj.SimulinkCacheFolder = fullfile(proj.RootFolder, 'work') - Call
updateDependencies(proj)before queryingproj.Dependencies - Close the current project before creating or opening another
- Use
.graphmlextension forDependencyCacheFile - Use
.gitignorefor excluding derived files from source control - Add requirements folder to project path when linking requirements to models
- Register
.slmxlink-store files with the project (guarded byisfilecheck)
Ask First:
- Deleting files from a project (
removeFilethen disk delete) - Modifying startup/shutdown scripts (affects all users who open the project)
- Changing project references (affects dependent projects)
Never:
- Use
proj.IgnoredFilePatterns— throws "Feature not supported" for all project types fromcreateProject - Use
cat.Labels— the correct property iscat.LabelDefinitions - Use
'string'as a label DataType — valid types are'none','char','double','integer','logical' - Use
findFile(singular) for label queries in R2024a+ — usefindFiles(plural). ONLY usefindFilewith R2023a/b - Pass full file paths to filename-only APIs
- Attempt to open two projects simultaneously
- Use
clear allin startup scripts — it wipes theprojvariable
Task Routing
| Intent | Reference | |
|---|---|---|
| Add files/folders to project, manage project path | references/path-and-file-management.md | |
| Set up labels for automation pipelines | references/labels-and-automation.md | |
| Link data dictionaries to models | references/data-dictionaries.md | |
| Configure model references across folders | references/model-references.md | |
Configure source control, cache folders, .gitignore | references/source-control-and-caching.md | |
| Diagnose broken references or health check failures | Start with Verification below, then route to the relevant reference |
Verification
Run after every project modification:
results = runChecks(proj);updateDependencies(proj);deps = proj.Dependencies; % digraph
If runChecks reports issues, inspect which folders are missing from the project path — this is the root cause of most failures.
Copyright 2026 The MathWorks, Inc.