# Specifying Mbd Algorithms

Specify algorithms for Model-Based Design: system specs, architecture specs...

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

## Install

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

## Description

Specify algorithms for Model-Based Design: system specs, architecture specs, implementation plans, test plans. Use when creating specifications for controllers, signal processing, diagnostics, estimators, or other algorithms authored in Simulink, Stateflow, System Composer, or MATLAB Function blocks.

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

# MBD Algorithm Specs

Structured specification of algorithms for Model-Based Design. Adapts the `specifying-software` templates for the MBD algorithm domain.

## When to Use

- Specifying a controller, estimator, signal processor, diagnostic, or supervisory logic algorithm
- The algorithm will be authored in Simulink, Stateflow, System Composer, or as a MATLAB Function block
- The algorithm is part of a model-based design workflow (simulation, code generation, or both)
- Creating, updating, or reviewing algorithm specification documents

## When NOT to Use

- **Building** the algorithm model → use `building-simulink-models`
- **Testing** an existing model → use `testing-simulink-models`
- **Plant/environment models** → use `specifying-plant-models`
- **Traditional software** (C, C++, Python, standalone MATLAB scripts) → use `specifying-software`
- **Full closed-loop system** → use this skill for the algorithm side, `specifying-plant-models` for the plant side

## Output Conventions

Store specs per algorithm. **Prefix every filename with the algorithm name:**

```
docs/specs/algorithms/<algorithm-name>/
├── <algorithm-name>-system.md
├── <algorithm-name>-architecture.md
├── <algorithm-name>-implementation-plan.md
└── <algorithm-name>-test-plan.md
```

## Mode Selection

> Is this a single-function algorithm with <3 operating modes, single-rate, and will be built by one person/agent?
> - **Yes** → Quick spec: 2 documents (system+architecture combined, implementation+test combined)
> - **No** → Full spec: 4 separate documents

## Workflow

### Step 1: Establish External Interface

Identify what this algorithm connects to. If an existing system exists, read it with `model_overview` and `model_read`. If greenfield, define the boundary from requirements.

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