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.
Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
Comprehensive project architecture blueprint generator that analyzes codebases to create detailed architectural documentation. Automatically detects technology stacks and architectural patterns, generates visual diagrams, documents implementation patterns, and provides extensible blueprints for maintaining architectural consistency and guiding new development.
Securely inspect and automate microscopy data workflows against OMERO.server with omero-py, BlitzGateway, OMERO CLI, tables, annotations, ROIs, rendering, and documented OMERO.web APIs. Use for scoped OMERO inventory, metadata export, import/export planning, or reviewed write workflows.
Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/PRD asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to "review since X".
Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals.
Creates comprehensive API changelogs documenting breaking changes, deprecations, and migration strategies for API consumers. Use when managing API versions, communicating breaking changes, or creating upgrade guides.
Master API documentation with OpenAPI 3.1, AI-powered tools, and modern developer experience practices. Create interactive docs, generate SDKs, and build comprehensive developer portals. Use PROACTIVELY for API documentation or developer portal creation.
Analyze fundamental data primitives, type systems, and state management patterns in a codebase. Use when (1) evaluating typing strategies (Pydantic vs TypedDict vs loose dicts), (2) assessing immutability and mutation patterns, (3) understanding serialization approaches, (4) documenting state shape and lifecycle, or (5) comparing data modeling approaches across frameworks.
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.