matlab/managing-simulink-projects
>- 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.
npx skills add https://github.com/matlab/simulink-agentic-toolkit --skill 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.
building-simulink-modelstesting-simulink-modelsgenerate-requirement-draftssimulating-simulink-modelsFour principles that prevent the most common failures:
addFile registers a file with the project for source control tracking. addPath puts a folder on the MATLAB path so Simulink can resolve artifacts by filename. These are independent operations — you almost always need both.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 addPath call.currentProject throws an error when no project is open — it does not return empty.Always:
addPath(proj, folder) for every folder containing dictionaries, referenced models, requirements, or profilesaddDataSource, set_param(...,'DataDictionary',...), and slreq.createLinkSimulinkCacheFolder and SimulinkCodeGenFolder: proj.SimulinkCacheFolder = fullfile(proj.RootFolder, 'work')updateDependencies(proj) before querying proj.Dependencies.graphml extension for DependencyCacheFile.gitignore for excluding derived files from source control.slmx link-store files with the project (guarded by isfile check)Ask First:
removeFile then disk delete)Never:
proj.IgnoredFilePatterns — throws "Feature not supported" for all project types from createProjectcat.Labels — the correct property is cat.LabelDefinitions'string' as a label DataType — valid types are 'none', 'char', 'double', 'integer', 'logical'findFile (singular) for label queries in R2024a+ — use findFiles (plural). ONLY use findFile with R2023a/bclear all in startup scripts — it wipes the proj variable| 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 |
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.
----
Take matlab/managing-simulink-projects from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.