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-layoutsInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
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.
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 foundOur 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.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| arranging-simulink-layouts (this skill)by matlab | 84 | 1.1k | 53d ago | SKILL.md |
| taste-skillby Leonxlnx | 100 | 112.0k | 1d ago | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 70.5k | today | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 46.7k | 5d ago | CLAUDE.md |
| lobehubby lobehub | 100 | 84.4k | today | MCP 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.
Skill content
View source on GitHubname: 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 everymodel_editcall. - Stateflow chart layout: the
layoutop 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
layoutop with edits in the same call. A#reftarget 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
- The user names blocks: find their
blk_XIDs withmodel_read(depth"0") ormodel_overviewon the scope. - 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:
A selection can be stale: earlier operations sometimes leave blocks selected. Read the block names back to the user and confirm before laying out.sel = find_system('<scopePath>', 'SearchDepth', 1, 'Type', 'Block', 'Selected', 'on'); ids = cellfun(@(p) ['blk_' extractAfter(Simulink.ID.getSID(p), ':')], sel, 'UniformOutput', false) - Overlaps: compare the targets'
Positionvalues withmodel_query_params, or check the model in the editor.
After Layout
- Read the
layout:block in the response.applied: falsecomes with adetailthat 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 alayoutop, orconfigurePositionthroughmodel_edit.Simulink.BlockDiagram.arrangeSystemwhen 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
taste-skill
112.0kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
ai-job-search
70.5kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
46.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
lobehub
84.4k🤯 LobeHub - Super-Agents on Your Team. Add super-agents to the chats your team already uses.They take on work by themselves and get better every week.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
