matlab/matlab-configure-scope-object
Prevents crashes due to problematic scope-related API misuse caused by agent escalation into internal scope framework objects. Use when configuring properties of scope-related Simulink blocks or MATLAB objects — constrains the agent to documented APIs and directs users to the scope UI when a property is not programmatically accessible.
npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-configure-scope-object
This skill is active whenever you interact with properties of any scope-related block or object:
Simulink blocks:
MATLAB objects:
timescope(...)spectrumAnalyzer(...) (formerly dsp.SpectrumAnalyzer)dsp.ArrayPlot(...)comm.ConstellationDiagram(...)comm.EyeDiagram(...)phased.IntensityScope(...)phased.RTIScope(...)phased.DTIScope(...)phased.ATIScope(...)phased.RangeDopplerScope(...)phased.RangeAngleScope(...)phased.AngleDopplerScope(...)get_param/set_param on blocks like Gain, Sum, or Transfer Function does not carry escalation riskscopeConfig = get_param('model/Block', 'ScopeConfiguration');properties(scopeConfig) or properties(scopeObj).release(obj), then set.get_param/set_param vs ScopeConfiguration).| Function / API | Purpose |
|---|---|
| get_param(block, 'ScopeConfiguration') | Obtain the documented configuration object for a Simulink scope block |
| set_param(block, param, value) | Set a block-level parameter (fallback access method) |
| properties(obj) | List public properties — the only way to confirm a property is accessible |
| release(obj) | Unlock a locked MATLAB System object before setting non-tunable properties |
The ALLOWED actions section below is a complete whitelist. Any approach not listed there is forbidden, including but not limited to:
Simulink.scopes.* namespace and any classes within it are internal implementation details — never instantiate, reference, or interact with them.get_param/set_param and 'ScopeConfiguration' — never retrieve or manipulate the underlying object directly.Follow these steps in order. Do not skip steps or invent alternatives.
For Simulink scope blocks:
scopeConfig = get_param('model/Scope', 'ScopeConfiguration');
properties(scopeConfig)
value = scopeConfig.PropertyName;
scopeConfig.PropertyName = newValue;
get_param/set_param with documented parameter names:value = get_param('model/Scope', 'ParameterName');
set_param('model/Scope', 'ParameterName', value);
A property may be accessible through one method but not the other. If one fails, try the other before reporting a limitation.
For MATLAB scope objects:
properties(scopeObj)
scopeObj.PropertyName = newValue;
That is the complete set of permitted operations. Nothing else.
When the user's description does not exactly match a property name, map it to the closest matching public property from the properties(...) output. If multiple properties could plausibly match, or the mapping is unclear, show the user the property list and ask them to confirm before proceeding.
Property not found: When the target property is not listed by properties(...):
> "Programmatic access to [property] is not supported for [scope]. The property might not exist for this scope, or it might be configurable only through the scope UI. To change a supported property programmatically, specify a property listed by properties(...). To change a visual or UI-only setting, open the scope window and use the configuration panels."
Locked object error: When setting a property fails because the object is locked (error mentions "non-tunable" or "release"):
release(scopeObj) to unlock the object.step or obj(data) will re-lock the object.Format or access-method error: When a confirmed property fails due to a type mismatch, incorrect value format, or method-specific limitation:
MATLAB may expose internal class names in error messages or class() output. Do not use any class names from the Simulink.scopes.* namespace to access scope internals.
Simulink scope blocks and MATLAB scope objects use web-based viewers backed by internal framework objects that manage graphics pipelines, web sockets, and shared state. Accessing these internals outside their intended lifecycle — or interacting with their properties without proper initialization — crashes MATLAB with no recovery.
The documented APIs (ScopeConfiguration via get_param for Simulink blocks; public properties on MATLAB scope objects) are safe, sandboxed interfaces. Everything outside them is unsafe for programmatic access.
----
Copyright 2026 The MathWorks, Inc.
Take matlab/matlab-configure-scope-object from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.