simulink-check-rapid-accelerator-compatibility
Statically analyze a Simulink model for Rapid Accelerator (raccel) mode incompatibilities. Identifies unsupported blocks (Interpreted MATLAB Function, Level-2 S-Functions without TLC), configuration issues, and data type restrictions that prevent code generation.
Install / Use
npx skills add matlab/simulink-agentic-toolkit --skill simulink-check-rapid-accelerator-compatibilityInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Customer SupportSupported Platforms
Our assessment of simulink-check-rapid-accelerator-compatibility
simulink-check-rapid-accelerator-compatibility scores 93/100 on our quality scale, 99th of 327 Customer Support skills we index (top 31%).
Its SKILL.md is 16 KB long, well organised into 17 sections with 13 code examples: a thorough specification that gives an agent plenty to work with.
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 40 days ago, so simulink-check-rapid-accelerator-compatibility 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-10-27. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
simulink-check-rapid-accelerator-compatibility compared with similar skills
All 4 of these similar skills score higher than simulink-check-rapid-accelerator-compatibility; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| simulink-check-rapid-accelerator-compatibility (this skill)by matlab | 93 | 1.1k | 40d ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 103.3k | 1d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 77.9k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 89.9k | today | MCP Server |
| crawl4aiby unclecode | 100 | 86.3k | today | MCP Server |
Frequently asked questions
- How do I install simulink-check-rapid-accelerator-compatibility?
- Run
npx skills add matlab/simulink-agentic-toolkit --skill simulink-check-rapid-accelerator-compatibility. The install tabs above show the steps for each supported agent. - Which AI agents does simulink-check-rapid-accelerator-compatibility 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 simulink-check-rapid-accelerator-compatibility 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 simulink-check-rapid-accelerator-compatibility still maintained?
- The repository was last updated 40 days ago, so simulink-check-rapid-accelerator-compatibility is actively maintained.
Skill content
View source on GitHubname: simulink-check-rapid-accelerator-compatibility description: > Statically analyze a Simulink model for Rapid Accelerator (raccel) mode incompatibilities. Identifies unsupported blocks (Interpreted MATLAB Function, Level-2 S-Functions without TLC), configuration issues, and data type restrictions that prevent code generation. Classifies each issue as BLOCKER (build error) or WARNING (build warning). Use BEFORE calling sim() in rapid-accelerator mode, when buildRapidAcceleratorTarget fails, or when the user asks "why won't my model run in raccel?" TRIGGER: any request explicitly involving rapid accelerator mode, raccel, raccel build errors, or buildRapidAcceleratorTarget failures. license: https://www.mathworks.com/content/dam/mathworks/license/pmrl/license.md metadata: author: MathWorks version: "1.0"
Checking Rapid Accelerator Compatibility
Statically analyze a Simulink model for all raccel incompatibilities in one pass — without iterative build-fail-fix cycles.
When to Use
- User wants to simulate a model in Rapid Accelerator mode
buildRapidAcceleratorTargetfails with errors- User asks "why won't my model run in raccel?"
When NOT to Use
- Model is only intended for Normal or Accelerator mode — use
simulating-simulink-modelsinstead - User is debugging a runtime error (model builds fine but crashes) — exception: if the model crashes in raccel, run this check anyway; the root cause may be a static incompatibility that manifests as a runtime crash
- Issue is purely a compiler/toolchain problem (not model content)
- General code generation for GRT/ERT targets (not raccel-specific)
- Model Advisor checks (separate workflow)
- SIL/PIL/HIL or Simulink Real-Time deployment
All script functions are in the skill's scripts/ directory. Use evaluate_matlab_code with project_path set to the skill's scripts/ folder so MATLAB can find them. Never use addpath.
Diagnostic Workflow
Detect all incompatibilities statically — by parsing model structure, block parameters, data types, and configuration — without calling buildRapidAcceleratorTarget. This finds all issues in one pass.
Two-phase workflow: Phase 1 (Steps 1–3a) produces the compatibility report — your response MUST END there. Phase 2 (Steps 3b–3c) applies fixes one at a time, each requiring a separate user confirmation. Never combine both phases in one response.
Step 1: Static Inspection (primarily MCP tools)
Gather model information using MCP tools in parallel:
1a. Read block topology via model_read:
model_read(model: "ModelName", scope: "root", depth: "inf")
From the output, immediately flag blocks with these BlockType values:
| BlockType | Severity | Action |
|-----------|----------|--------|
| MATLABFcn | BLOCKER | Not supported by Simulink Coder |
| M-S-Function | Investigate | Query FunctionName → check TLC in Step 2 |
| S-Function | Investigate | Query FunctionName → check MEX/source/TLC in Step 2 |
| FromWorkspace | Investigate | Query Interpolate + OutDataTypeStr |
| ToFile | Investigate | Query Filename vs model name |
| FromSpreadsheet | Investigate | Check against SaveOperatingPoint |
| DataStoreMemory | Investigate | Check OutDataTypeStr for >64-bit fixed-point (Step 2) |
| TransportDelay | Investigate | Check if inside ForEach subsystem (Step 2) |
| ModelReference | Investigate | Check if inside ForEach with parallel execution |
Do NOT flag these block types — they are raccel-compatible:
| BlockType | Why it is compatible |
|-----------|---------------------|
| MATLABFunction | Stateflow-based, supports code generation (NOT the same as MATLABFcn) |
| MATLABSystem | System object with code generation support — fully raccel-compatible |
| ModelReference (standalone) | Compatible unless inside ForEach with parallel execution |
| SubSystem | Compatible (virtual or atomic) |
| Scope, Display | Viewer blocks — ignored during code generation |
| RateTransition | Compatible — handles rate changes in code generation |
| Dashboard blocks (LampBlock, CircularGaugeBlock, LinearGaugeBlock, etc.) | UI-only — ignored during code generation |
1b. Query configuration parameters via model_query_params:
model_query_params(
model: "ModelName",
targets: ["config:ModelName"],
params: ["SaveFormat", "SaveState", "SaveOperatingPoint",
"LoadExternalInput", "LoadInitialState", "ArrayLayout",
"SignalLogging", "SaveFinalState"],
compile: "false"
)
1c. Query block-level parameters via model_query_params (for flagged blocks):
model_query_params(
model: "ModelName",
targets: ["blk_X", "blk_Y"],
params: ["FunctionName", "Interpolate", "OutDataTypeStr", "Filename"],
compile: "false"
)
Configuration rules (evaluate from 1b results):
| Parameter Combination | Severity | Issue |
|-----------------------|----------|-------|
| SaveFormat='Dataset' AND SaveState='on' | WARNING | State logging to Dataset not supported — build continues but state logging silently produces no results |
| SaveOperatingPoint='on' + DataStoreMemory/FromSpreadsheet blocks | WARNING | Prevents OP save/restore |
| LoadInitialState='on' | WARNING | Must be structure format; variable must exist |
| LoadExternalInput='on' | Check | Validate input format (must be double arrays/structs) |
| ArrayLayout='Row-major' + S-Function blocks | WARNING | RTPs may not upload correctly |
IMPORTANT — SaveFormat+SaveState cross-check: The
model_query_paramsMCP tool can return stale values forSaveStatebecause it reads cached configuration parameters rather than querying the model directly. This cross-check usesevaluate_matlab_codeto callget_paramwhich always reads the live model state. WhenSaveFormat='Dataset', you MUST verifySaveStatewith a directevaluate_matlab_codecall:get_param('ModelName', 'SaveState')If the result is
'on', flag it as a WARNING (DatasetRapidAccelNoSupported) — even ifmodel_query_paramsreportedSaveState='off'. This is the most commonly missed incompatibility.
FromWorkspace rule: Flag as BLOCKER if Interpolate='on' AND OutDataTypeStr contains int64 or uint64.
ToFile rule: Flag as BLOCKER if filename (without extension) matches the model name — causes rapidAccelBuildFailed.
Step 2: Deep Analysis (requires evaluate_matlab_code)
For checks that need MATLAB runtime APIs. Only run checks relevant to blocks found in Step 1.
Run the deep analysis script via evaluate_matlab_code with project_path set to the skill's scripts/ folder:
raccel_deep_analysis('ModelName')
It checks: TLC/source file existence for S-Functions, model compile for data type resolution (half-precision, variable-size, >64-bit fixed-point), Stateflow signal logging, ForEach structural patterns, and parameters not available via model_query_params (Profile, RTWInlineParameters).
Output is printed as BLOCKER: or WARNING: lines — parse these into your findings list.
Additional configuration rules from Step 2:
| Parameter | Severity | Issue |
|-----------|----------|-------|
| Profile='on' | WARNING | Profiling data not collected in raccel |
| RTWInlineParameters='off' + workspace variables | WARNING | Parameter tuning restrictions |
Step 3: Report and Iterative Fix
3a. Present the compatibility report with ALL findings in priority order:
## Compatibility Report for <ModelName>
### Blockers (must fix before raccel simulation)
1. [Block Path] — Issue description
- Why: Explanation
- Fix: Recommended action
### Warnings (should fix for correct behavior)
1. [Config/Block] — Issue description
- Why: Explanation
- Fix: Recommended action
If no blockers are found, the model is raccel-compatible — skip to Step 4.
STOP HERE. Your response MUST END after the compatibility report. Do not save a backup, do not propose fixes, do not call
model_editorevaluate_matlab_codeto modify the model. End your response with: (1) a note that you will save a backup before making any changes, and (2) a question like: "Would you like me to fix these issues one at a time? I'll save a backup first, then start with [first blocker]." Then WAIT for the user to reply before continuing to Step 3b.
3b. Back up the original model before any fixes (only after user confirms)
Before applying the first fix, save a backup so the user can revert. Use copyfile — not save_system with a second argument, which renames the in-memory model:
copyfile(get_param('ModelName','FileName'), 'ModelName_raccel_backup.slx');
Include the backup path in the report:
Backup saved to: ModelName_raccel_backup.slx
To revert all changes: open_system('ModelName_raccel_backup')
3c. Fix issues iteratively (MANDATORY user confirmation for EACH fix)
CRITICAL: Never auto-fix. This is a HARD CONSTRAINT — no exceptions.
The phrases "fix everything", "make it compatible", or "go ahead" are permission to start the process — NOT permission to apply all fixes. You MUST still present each fix individually and end your response to wait for explicit per-fix confirmation.
The rule: Every
model_editorevaluate_matlab_codecall that modifies the model requires a separate, preceding "yes" from the user. If you have not received a user message confirming a specific fix, you do not have permission to apply it.Forbidden pattern — do NOT do this:
- Present report → "Now saving a backup and applying all fixes" → call model_edit
- Present report → "I'll start with the first fix" → call model_edit
- Present report → call save_system → call model_edit
Any response that contains BOTH the compatibility report AND a
model_editcall is WRONG.Required pattern:
- Response 1: Present report → "Shall I fix these one at a time?" → response ends, no tool calls after this point
- Response 2 (after user says yes): Save backup → apply first fix → verify → "Shall I proceed to the next fix?"
Fix issues one at a time, re-running static analysis after each fix:
- For the first blocker (highest severity first):
a. Explain what will change and why
b. STOP — your response MUST END here with a question like "Shall I apply this fix?"
c. Do NOT call
model_editorevaluate_matlab_codein the same response as step (b) d. Only after the user replies with confirmation, apply the fix e. Re-runmodel_readto verify the issue is resolved f. Report: issue fixed, remaining issues count - Repeat for next blocker until all resolved
- Then address warnings (same confirm-fix-verify cycle)
See references/fix-recipes.md for fix procedures and validated alternative blocks — consult when applying fixes in Step 3c.
Step 4: Verification Build (REQUIRES user permission)
After all static issues are resolved, ask permission to build:
All static incompatibilities have been resolved.
Would you like me to run buildRapidAcceleratorTarget to confirm
the model builds successfully for Rapid Accelerator mode?
Only proceed after explicit confirmation. Then run via evaluate_matlab_code with project_path set to the skill's scripts/ folder:
raccel_verify_build('ModelName')
It handles working directory checks, builds the target, and reports success or detailed failure information.
If the build fails despite static analysis passing, analyze the error and loop back to Step 3.
After a successful build, offer to clean up the backup:
Build succeeded. A backup of the original model is at ModelName_raccel_backup.slx.
Would you like to keep it or delete it?
If the user wants it deleted, run:
delete('ModelName_raccel_backup.slx');
Script Interface
Both scripts are in the skill's scripts/ direc
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
103.3kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
77.9kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
Scrapling
89.9k🕷️ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
crawl4ai
86.3kOpen-source web crawler and scraper for LLMs and AI agents: any website into clean, LLM-ready Markdown. Run it yourself, or use Crawl4AI Cloud with one key. Join our Discord https://discord.gg/VuxzM8mtf
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.
