SkillAgentSearch skills...

arranging-simulink-layouts

Arranges and tidies Simulink block diagram layouts with the model_edit layout engine

Install / Use

npx skills add matlab/simulink-agentic-toolkit --skill arranging-simulink-layouts

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

84/100

Supported Platforms

Universal

Tags

Our assessment of arranging-simulink-layouts

arranging-simulink-layouts scores 84/100 on our quality scale, 2920th of 4,648 Development & Engineering skills we index.

Its SKILL.md is 5.5 KB long, well organised into 12 sections with 3 code examples: a solid amount of guidance for an agent.

With 1,148 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
26/30
Structure
18/20
Description
12/15
Adoption
13/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated about 2 months ago, so arranging-simulink-layouts is actively maintained.
  • No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
  • Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.

Automated pattern scan on 2026-11-09. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

arranging-simulink-layouts compared with similar skills

All 4 of these similar skills score higher than arranging-simulink-layouts; compare them before choosing.

SkillScoreStarsUpdatedFormat
arranging-simulink-layouts (this skill)by matlab841.1k53d agoSKILL.md
taste-skillby Leonxlnx100112.0k1d agoCLAUDE.md
ai-job-searchby ai-job-search-dev10070.5ktodayCLAUDE.md
claude-howtoby luongnv8910046.7k5d agoCLAUDE.md
lobehubby lobehub10084.4ktodayMCP Server

Frequently asked questions

How do I install arranging-simulink-layouts?
Run npx skills add matlab/simulink-agentic-toolkit --skill arranging-simulink-layouts. The install tabs above show the steps for each supported agent.
Which AI agents does arranging-simulink-layouts work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is arranging-simulink-layouts safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is arranging-simulink-layouts still maintained?
The repository was last updated about 2 months ago, so arranging-simulink-layouts is actively maintained.

name: arranging-simulink-layouts description: Arranges and tidies Simulink block diagram layouts with the model_edit layout engine. Use when the user asks to fix, clean up, tidy, straighten, or rearrange a layout, when blocks overlap or lines cross, when specific blocks need re-placing, or when grouping blocks into or expanding a subsystem. license: https://www.mathworks.com/content/dam/mathworks/license/pmrl/license.md metadata: author: MathWorks version: "1.0"

Arranging Simulink Layouts

Re-place blocks with the SATK layout engine in model_edit. Move as little of the user's diagram as the request allows.

When to Use

  • "Fix / clean up / tidy / straighten / rearrange the layout", "make it readable"
  • Blocks overlap, lines cross or run through blocks, a few blocks landed in odd places
  • "Move these blocks", "line these up", "sort out the blocks I just added"
  • Grouping blocks into a subsystem, or expanding a subsystem into its parent

When NOT to Use

  • Adding, connecting, deleting, or configuring blocks: use building-simulink-models. Layout already runs automatically after every model_edit call.
  • Stateflow chart layout: the layout op is Simulink-only. A chart scope accepts only a full re-layout (operations [], layout_mode "full"), which moves every element, so ask first.

Set Expectations

  • You drive an automatic layout engine. You don't place blocks pixel by pixel. Say so if the user expects hand-tuned placement.
  • Ctrl+Z is not reliable for agent edits, including layout. Don't offer undo. Before any layout that moves many blocks, recommend that the user saves the model (or a copy) first.
  • The first layout in a MATLAB session can take about 20 s while the engine starts. Later calls take 1–2 s.

Choose the Method

Selective layout is the default. A full layout of a diagram the user has arranged by hand discards their arrangement, so ask before running one.

| Situation | Method | |---|---| | A few blocks are messy, overlapping, or just added | {"op":"layout","targets":[...]} with layout_mode "incremental" | | The whole scope is a mess and the user agrees that everything moves | operations [] with layout_mode "full" | | The user explicitly asks for Simulink's own tidy-up | Format > Auto Arrange / Simulink.BlockDiagram.arrangeSystem, and only on request | | The user wants an exact placement | configure with Position through model_edit |

Selective layout (default)

model_edit(model, "root", '[{"op":"layout","targets":["blk_5","blk_7"]}]', "incremental")
  • Targets must sit directly inside scope. Make one call per scope.
  • The targets move and the lines touching them are rerouted. Other blocks stay put, except that blocks downstream of a target may shift to make room. Mention that in your report.
  • You can combine a layout op with edits in the same call. A #ref target names a block that the call adds: [{"op":"add_block","type":"Gain","ref":"g"},{"op":"connect","target":"blk_3.y1 -> #g.u1"},{"op":"layout","targets":["#g","blk_9"]}]
  • When the wiring is tangled, add the targets' immediate neighbours to targets.
  • With layout_mode "full", the targets are ignored and the whole scope is re-laid out.

Full layout of a scope

model_edit(model, "blk_12", "[]", "full")

Use it for a scope that is new or already unreadable, and only with the user's agreement. Prefer the smallest subsystem that contains the mess over root.

Exact placement

model_edit(model, "root", '[{"op":"configure","target":"blk_5","params":{"Position":"[300 100 340 130]"}}]', "incremental")

Later incremental layouts leave the block where you put it, but a full layout of the scope moves it. Use this only when the user names a position or asks for specific alignment.

Pick the Targets

  1. The user names blocks: find their blk_X IDs with model_read (depth "0") or model_overview on the scope.
  2. The user points at the diagram ("these blocks", "the ones on the left"): ask them to select the blocks in the editor, then read the selection:
    sel = find_system('<scopePath>', 'SearchDepth', 1, 'Type', 'Block', 'Selected', 'on');
    ids = cellfun(@(p) ['blk_' extractAfter(Simulink.ID.getSID(p), ':')], sel, 'UniformOutput', false)
    
    A selection can be stale: earlier operations sometimes leave blocks selected. Read the block names back to the user and confirm before laying out.
  3. Overlaps: compare the targets' Position values with model_query_params, or check the model in the editor.

After Layout

  • Read the layout: block in the response. applied: false comes with a detail that explains why. Report it; don't retry blindly.
  • Run model_check(model, scope, '["unconnected_lines"]') to confirm that the wiring survived.
  • Tell the user which blocks moved, and mention any downstream blocks that shifted.

Restructuring Subsystems

To group blocks into a new subsystem, or expand a subsystem in place, see references/subsystem-restructuring.md. Don't rebuild the content block by block with model_edit.

Anti-Patterns

  • set_param(..., 'Position', ...) block by block to "fix" a layout. Use a layout op, or configure Position through model_edit.
  • Simulink.BlockDiagram.arrangeSystem when the user didn't ask for Auto Arrange.
  • A full layout of an existing, hand-arranged diagram without asking.
  • Copying blocks into a subsystem one at a time, which loses wiring and layout. Use Simulink.BlockDiagram.createSubsystem.
  • Promising that Ctrl+Z will restore the previous layout.

Related Skills

View on GitHub
GitHub Stars1.1k
CategoryDevelopment
Updated1mo ago
Forks106

Languages

HTML

Trust signals

88/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium