matlab/configuring-block-policy
Guide users through creating and managing .satk/block-policy.json for controlling which blocks the agent can use, which are excluded, and which block parameters the agent should not modify. Use when setting up block usage policy for a project.
npx skills add https://github.com/matlab/simulink-agentic-toolkit --skill configuring-block-policy
Create or update .satk/block-policy.json — the file that controls which blocks (library or built-in) the agent can use, which are excluded, and which block parameters the agent should not modify.
building-simulink-models routes here via the policy gatebuilding-simulink-modelscurating-library-kgbuilding-simulink-models.satk/reuse-libraries.json must exist..satk/block-policy.json exist? If yes, load and summarize. If no, start fresh.referenceBlock + reason.referenceBlock + protectedParams[].library.BlockPolicy.save().policyData = struct();
policyData.policyMode = 'approved_blocks_only';
policyData.fallbackToBuiltins = false;
% Excluded — agent will never place these blocks
policyData.blockedBlocks = struct('referenceBlock', 'LegacyLib/OldCtrl', 'reason', 'Superseded');
% Protected params — agent won't modify these values
policyData.blockRules = struct('referenceBlock', 'Lib/SpeedCtrl', ...
'protectedParams', {{'Kp', 'Ki', 'Kd'}});
library.BlockPolicy.save(projectRoot, policyData);
For defaults (no restrictions):
policyData = library.BlockPolicy.defaults();
library.BlockPolicy.save(projectRoot, policyData);
{
"schemaVersion": 1,
"policyMode": "approved_blocks_only | prefer_customer_libraries",
"fallbackToBuiltins": false,
"blockedBlocks": [
{ "referenceBlock": "LegacyLib/OldController", "reason": "Superseded" }
],
"blockRules": [
{ "referenceBlock": "Lib/SpeedController", "protectedParams": ["Kp", "Ki", "Kd", "SampleTime"] }
]
}
policyMode: must be prefer_customer_libraries or approved_blocks_onlyapproved_blocks_only + fallbackToBuiltins: true → rejected (contradictory)protectedParams must be a non-empty array of stringsWhen .satk/block-policy.json already exists:
library.BlockPolicy.loadRaw(projectRoot, libConfig)Common updates: exclude a block, mark params as off-limits, change mode, remove an entry.
block-policy.json without user confirmationlibrary.BlockPolicy.validate(policyData))referenceBlock----
Copyright 2026 The MathWorks, Inc.
----
Take matlab/configuring-block-policy 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.