
Configuring Block Policy
Guide users through creating and managing .satk/block-policy.json for controlling which...
Install
npx skills add matlab/simulink-agentic-toolkit --skill configuring-block-policy -g -a claude-code -y- Repository
- matlab/simulink-agentic-toolkit1.3k
- Category
- AI and agents
- Updated
- 6d ago
- License
- See repository
- Context cost
- Lightabout 853 tokens
- Runs scripts
- No, instructions only
What it does
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.
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.
When to Use
- User asks to set up, create, or configure block policy
- User asks to restrict or exclude blocks
- User wants to prevent the agent from modifying certain block parameters
building-simulink-modelsroutes here via the policy gate
When NOT to Use
- Actively building a model →
building-simulink-models - Improving block descriptions or categories →
simulink-curating-library-kg - Declaring which libraries exist → Library Setup gate in
building-simulink-models
Prerequisites
.satk/reuse-libraries.jsonmust exist.
Workflow
- Check state, Does
.satk/block-policy.jsonexist? If yes, load and summarize. If no, start fresh. - Policy mode, (skip if no libraries specified) Ask: prefer libraries with built-in fallback, or custom libraries blocks only (no fallback)?
- Excluded blocks (optional), Are there any blocks (library or built-in) that should never be placed in your models? Collect
referenceBlock+reason. - Off-limits parameters (optional), Are there any block parameters you don't want the agent to modify? Collect
referenceBlock+protectedParams[]. - Save, Validate and write with
library.BlockPolicy.save().
API
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):

