# Configuring Block Policy

Guide users through creating and managing .satk/block-policy.json for controlling which...

- Repository: https://github.com/matlab/simulink-agentic-toolkit (1305 stars)
- Category: AI and agents
- License: see repository
- Last updated: 2026-10-29
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add matlab/simulink-agentic-toolkit --skill configuring-block-policy -g -a claude-code -y`
Codex: `npx skills add matlab/simulink-agentic-toolkit --skill configuring-block-policy -g -a codex -y`
Cursor: `npx skills add matlab/simulink-agentic-toolkit --skill configuring-block-policy -g -a cursor -y`
Gemini CLI: `npx skills add matlab/simulink-agentic-toolkit --skill configuring-block-policy -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add matlab/simulink-agentic-toolkit`

## Description

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.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 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-models` routes 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.json` must exist.

## Workflow

1. **Check state**, Does `.satk/block-policy.json` exist? If yes, load and summarize. If no, start fresh.
2. **Policy mode**, (skip if no libraries specified) Ask: prefer libraries with built-in fallback, or custom libraries blocks only (no fallback)?
3. **Excluded blocks** (optional), Are there any blocks (library or built-in) that should never be placed in your models? Collect `referenceBlock` + `reason`.
4. **Off-limits parameters** (optional), Are there any block parameters you don't want the agent to modify? Collect `referenceBlock` + `protectedParams[]`.
5. **Save**, Validate and write with `library.BlockPolicy.save()`.

## API

```matlab
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):

The rest: https://github.com/matlab/simulink-agentic-toolkit/blob/HEAD/skills-catalog/model-based-design-core/configuring-block-policy/SKILL.md
