configuring-block-policy について
Simulinkブロックの使用可否と変更可能なパラメーターを制御する`.satk/block-policy.json`を作成、更新するスキルです。ブロックの除外、パラメーター保護、ポリシーモードの設定、保存前の検証に対応します。
主な機能
- 01ブロックポリシーモードの設定
- 02指定ブロックの除外
- 03選択したパラメーターの保護
- 04保存前のポリシー検証
活用シーン
- 01エージェントの使用ブロックを承認済みに制限
- 02指定ブロックパラメーターの変更防止
- 03既存ブロックポリシーの更新
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ matlab/ simulink-agentic-toolkit --skill configuring-block-policyインストール後、Claude Code で/configuring-block-policyを入力して読み込まれたか確認します。
同梱ファイルmanifest.yaml
詳細
ブロックポリシーの設定
.satk/block-policy.json を作成または更新します。これは、エージェントが使用できるブロック(ライブラリまたは組み込み)、除外するブロック、およびエージェントによる変更を禁止するブロックパラメーターを制御するファイルです。
使用する場合
- ユーザーがブロックポリシーの設定、作成、または構成を依頼した場合
- ユーザーがブロックの制限または除外を依頼した場合
- ユーザーが特定のブロックパラメーターをエージェントに変更させたくない場合
building-simulink-modelsからポリシーゲートを経由してここに移動する場合
使用しない場合
- モデルを実際に構築している場合 →
building-simulink-models - ブロックの説明またはカテゴリを改善する場合 →
simulink-curating-library-kg - 使用可能なライブラリを宣言する場合 →
building-simulink-modelsのライブラリ設定ゲート
前提条件
.satk/reuse-libraries.jsonが存在している必要があります。
ワークフロー
- 状態を確認 —
.satk/block-policy.jsonは存在しますか?存在する場合は、読み込んで要約します。存在しない場合は、新規に作成します。 - ポリシーモード — (ライブラリが指定されていない場合はスキップ)組み込みブロックへのフォールバックを伴うライブラリの優先使用と、カスタムライブラリのブロックのみの使用(フォールバックなし)のどちらを希望するか尋ねます。
- 除外するブロック (任意)— モデルに配置してはいけないブロック(ライブラリまたは組み込み)はありますか?
referenceBlockとreasonを収集します。 - 変更禁止パラメーター (任意)— エージェントに変更させたくないブロックパラメーターはありますか?
referenceBlockとprotectedParams[]を収集します。 - 保存 —
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);
制限なしのデフォルト設定:
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:prefer_customer_librariesまたはapproved_blocks_onlyである必要がありますapproved_blocks_onlyとfallbackToBuiltins: trueの組み合わせ → 矛盾するため拒否されますprotectedParamsは、空でない文字列の配列である必要があります- ポリシーの形式が不正な場合 → エラーになります(黙って無視されることはありません)
既存のポリシーの更新
.satk/block-policy.json がすでに存在する場合:
library.BlockPolicy.loadRaw(projectRoot, libConfig)で読み込みます- 現在の状態を要約します — ウィザード全体を再実行してはいけません
- 変更内容を尋ね、既存の構造体に適用して保存します
一般的な更新:ブロックを除外する、パラメーターを変更禁止にする、モードを変更する、項目を削除する。
ガードレール
- ユーザーの確認なしに
block-policy.jsonを書き込んではいけません - 保存前に必ず検証します(
library.BlockPolicy.validate(policyData)) - ユーザーがライブラリの完全なパスを指定せずにブロック名を提示した場合は、KG で検索し、
referenceBlockを特定します
Copyright 2026 The MathWorks, Inc.
コメント
Markdown 対応