# Simulink Sanitize Model

Sanitize and anonymize a Simulink model for external sharing.

- Repository: https://github.com/matlab/simulink-agentic-toolkit (1305 stars)
- Category: Engineering
- License: see repository
- Last updated: 2026-10-29
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add matlab/simulink-agentic-toolkit --skill simulink-sanitize-model -g -a claude-code -y`
Codex: `npx skills add matlab/simulink-agentic-toolkit --skill simulink-sanitize-model -g -a codex -y`
Cursor: `npx skills add matlab/simulink-agentic-toolkit --skill simulink-sanitize-model -g -a cursor -y`
Gemini CLI: `npx skills add matlab/simulink-agentic-toolkit --skill simulink-sanitize-model -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add matlab/simulink-agentic-toolkit`

## Description

Sanitize and anonymize a Simulink model for external sharing. Use when stripping proprietary content, anonymizing block/signal names, removing metadata, or creating a shareable reproduction model for bug reports. Do NOT use for simply copying or sharing a model internally.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Sanitize Model

Produces a self-contained, anonymized copy with all proprietary content removed.

## When to Use

- Anonymize a model before sharing externally
- Strip proprietary content from a model
- Create a shareable reproduction model for bug reports or support cases

## When NOT to Use

- Simply sharing a model internally, no sanitization needed
- Model editing/building, use `building-simulink-models`
- Model testing/simulation, use `testing-simulink-models` or `simulating-simulink-models`

---

## Model Selection

If the user named a model, use it directly. Otherwise, determine the model from the workspace context, asking the user to confirm only if it is ambiguous. Do NOT use `find_system` to detect open models.

---

## Scope Selection

Five areas: **Names & types** (blocks, signals, Stateflow, masks, bus/enum types) · **MATLAB code** (MATLAB Function blocks, `.m` files, callbacks, mask init) · **Configuration** (config set, codegen, custom code, hardware) · **Workspace** (parameters, variables, SLDD entries, codegen identifiers) · **Metadata** (descriptions, annotations, requirements, properties, DocBlocks, mask display).

By default run **all areas**. When the user targets specific content, select only relevant areas. Additional context (e.g., "make sure bus references stay consistent") is NOT a scope limitation. Before starting work, state which areas are selected (e.g., "Scope: **Names & types**, **MATLAB code**, **Metadata**"). Skip areas with no content after enumeration. Steps 1 (copy), 2 (enumerate), 8 (compile), and 9 (report) always run. All other steps run only when the selected scope requires them.

**Dependencies**: Renaming types requires propagating to all references, always include type propagation when renaming types. MATLAB code dot-notation bus accesses require type renames. Include dependencies automatically and tell the user why.

---

## Complexity Triage (do this first)

The rest: https://github.com/matlab/simulink-agentic-toolkit/blob/HEAD/skills-catalog/model-based-design-core/simulink-sanitize-model/SKILL.md
