Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 147% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -32% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -35% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -61% | 0% |
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().matlabpolicyData = 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):
matlabpolicyData = library.BlockPolicy.defaults(); library.BlockPolicy.save(projectRoot, policyData);
json{ "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))referenceBlockCopyright 2026 The MathWorks, Inc.
Other measured skills in the registry, with their headline benchmark lift.