mcpField
C
configuring-block-policy

configuring-block-policy

github.com/matlabエージェントワークフロー1.3k45 回インストール1 週間前に更新
リポジトリ

configuring-block-policy について

Simulinkブロックの使用可否と変更可能なパラメーターを制御する`.satk/block-policy.json`を作成、更新するスキルです。ブロックの除外、パラメーター保護、ポリシーモードの設定、保存前の検証に対応します。

主な機能

  1. 01ブロックポリシーモードの設定
  2. 02指定ブロックの除外
  3. 03選択したパラメーターの保護
  4. 04保存前のポリシー検証

活用シーン

  1. 01エージェントの使用ブロックを承認済みに制限
  2. 02指定ブロックパラメーターの変更防止
  3. 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 が存在している必要があります。

ワークフロー

  1. 状態を確認 — .satk/block-policy.json は存在しますか?存在する場合は、読み込んで要約します。存在しない場合は、新規に作成します。
  2. ポリシーモード — (ライブラリが指定されていない場合はスキップ)組み込みブロックへのフォールバックを伴うライブラリの優先使用と、カスタムライブラリのブロックのみの使用(フォールバックなし)のどちらを希望するか尋ねます。
  3. 除外するブロック (任意)— モデルに配置してはいけないブロック(ライブラリまたは組み込み)はありますか?referenceBlock と reason を収集します。
  4. 変更禁止パラメーター (任意)— エージェントに変更させたくないブロックパラメーターはありますか?referenceBlock と protectedParams[] を収集します。
  5. 保存 — 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 がすでに存在する場合:

  1. library.BlockPolicy.loadRaw(projectRoot, libConfig) で読み込みます
  2. 現在の状態を要約します — ウィザード全体を再実行してはいけません
  3. 変更内容を尋ね、既存の構造体に適用して保存します

一般的な更新:ブロックを除外する、パラメーターを変更禁止にする、モードを変更する、項目を削除する。

ガードレール

  • ユーザーの確認なしに block-policy.json を書き込んではいけません
  • 保存前に必ず検証します(library.BlockPolicy.validate(policyData))
  • ユーザーがライブラリの完全なパスを指定せずにブロック名を提示した場合は、KG で検索し、referenceBlock を特定します

Copyright 2026 The MathWorks, Inc.


コメント