matlab/setup-custom-libraries
Register, add, or update existing custom Simulink block libraries and configure block policy and knowledge index. Use when a user wants to register, set up, configure, or add existing .slx library files for agent-assisted model building. Do NOT use when the user wants to create or author a new library from scratch — that requires building-simulink-models.
npx skills add https://github.com/matlab/simulink-agentic-toolkit --skill setup-custom-libraries
Register or update custom Simulink block libraries so the agent prefers them over built-in blocks during model building.
.slx files to an existing library configurationbuilding-simulink-models routes here via the policy gate (gatePass: false)found: false — that means no custom libraries are configured and the user hasn't asked for them.slx library file) → use building-simulink-models skill with model_edit directly. This skill only *registers* existing libraries; it cannot create library content.configuring-block-policycurating-library-kgDo this FIRST and ALONE — no other tool calls in the same message.
Call library.settingsLookup() — returns a struct with resolved absolute paths:
found — whether a libraries file was located (satk-libraries.json or legacy reuse-libraries.json)enabled — whether custom libraries are configuredgatePass — whether the gate is satisfieddataRoot — absolute path to the directory containing .satk/kgIndexPath, librariesPath, policyPath — absolute paths to data filesInterpret the result:
found: false → no custom libraries configured. Do NOT proceed with setup unless the user explicitly asked. Return control to the calling skill.gatePass: true, found: true → all data files present and KB populated. Offer management menu (below).gatePass: false, found: true → libraries declared but KB needs population. Skip Gate 1 (libraries already exist). Start from Gate 2 below using dataRoot as the target.Follow references/library-setup.md for all gate API details — it is the single source of truth for API calls, examples, and options at each gate.
Gate 1 — Library declaration: Only when the user explicitly asked to set up custom libraries and no libraries file exists yet. STOP and ask the user about reusable libraries. Present two options: Yes (declare libraries) or None (no libraries right now). Do not read reference files, open models, or plan blocks until they respond.
prefdir via library.LibraryConfig.save(prefdir(), libraries).Gate 2 — Block policy: If .satk/block-policy.json is missing, STOP and ask the user about policy setup by following references/library-setup.md. Do not proceed until policy is resolved.
Gate 3 — Library blocks knowledge index: If the KB is empty (index.md contains populated: false) or missing, STOP and ask the user whether to index their library blocks so the agent knows which blocks are available during model building. Offer two options: Automatic (agent infers categories/descriptions autonomously) or Guided setup (interactive curation). Both invoke the curating-library-kg skill. Follow references/library-setup.md for details. Do not proceed until KG generation completes.
Retrieve and display the user's current configuration status using the APIs in references/library-setup.md § "Status Display (Management Menu)". Show library names/paths, policy mode with fallback, and KG block/category counts. Then offer:
library.LibraryConfig.load(dataRoot), append/remove entries, save via library.LibraryConfig.save(dataRoot, allLibs), then invoke curating-library-kg skill (automatic mode) to regenerate KG.configuring-block-policy skill.project or legacy. Copy .satk/ folder to prefdir/.satk/ (expand relative paths to absolute). See references/library-setup.md § "Gate 1" for the promote API.curating-library-kg skill.When satk-libraries.json already exists with declared libraries: read the existing config, append the new library entries, save via library.LibraryConfig.save(), then invoke the curating-library-kg skill (automatic mode) to infer categories/descriptions for the new blocks and regenerate the knowledge index.
.satk/ JSON manually. Always follow the instructions and APIs in references/library-setup.md for each case.find_system, load_system to discover, validate, or enumerate library contents. All library operations must go through the specified APIs in references/library-setup.md.----
Copyright 2026 The MathWorks, Inc.
----
Take matlab/setup-custom-libraries 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.