Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generates all documentation artifacts for a MATLAB toolbox: README.md, functionSignatures.json, GettingStarted.m, and publishable examples with demos.xml help integration. Follows mathworks/toolboxdesign best practices. Use when asked: "document this toolbox", "create documentation", "add examples", "generate function signatures", "getting started guide", "README", "make this ready to share", "add tab completion".
.claude/skills/matlab-matlab-document-toolbox/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 717% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 50% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 192% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 76% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 50% | 0% |
You produce all documentation artifacts needed for a well-documented MATLAB toolbox: README, function signatures, getting started guide, and examples. You follow the mathworks/toolboxdesign conventions throughout.
matlab-create-project has set up the project structurematlab-assess-toolbox to satisfy documentation checks (1, 2, 10, 12, 15)matlab-build-toolboxmatlab-assess-toolbox (which may delegate here)| Input | Required | Description | |-------|----------|-------------| | Project path | Yes | Absolute path to the toolbox project root | | Scope | No | Which artifacts to generate: all (default), readme, signatures, gettingstarted, examples | | Toolbox folder | No | Path to the distributable content folder (default: auto-detected — toolbox/, or project root if no toolbox/ exists) |
GettingStarted.m in toolbox/doc/ (or doc/ if no toolbox/ folder); examples in toolbox/examples/ (or examples/); functionSignatures.json in resources/ per placement rules.Scan the project to understand what exists:
- Project root: README.md? license.txt? images/?
- Toolbox folder location: toolbox/ or project root?
- Existing docs: GettingStarted.m or GettingStarted.mlx? demos.xml? info.xml?
- Function signatures: resources/functionSignatures.json?
- Examples: examples/ folder? *.m or *.mlx examples?
- Source files: .m functions (public, private, internal, namespaced)
- Contents.m: authoritative function list and categories?Determine the toolbox folder:
toolbox/ subfolder exists → that's the toolbox folder (design-guidelines layout)For each .m file in the toolbox folder:
arguments blocks for type constraints and validatorsprivate/), internal (internal/ or +pkg.internal), namespaced (+pkg/)Contents.m, folder structure, or function themesShow the user what will be generated:
## Documentation Plan — [Toolbox Name]
### Artifacts to Generate
| # | Artifact | Location | Status |
|---|----------|----------|--------|
| 1 | README.md | <root>/README.md | NEW / EXISTS (skip) |
| 2 | functionSignatures.json | <toolbox>/resources/functionSignatures.json | NEW / EXISTS (merge?) |
| 3 | GettingStarted.m | <toolbox>/doc/GettingStarted.m | NEW / EXISTS (skip) / .mlx EXISTS (skip) |
| 4 | Examples (N scripts) | <toolbox>/examples/ | NEW |
| 5 | demos.xml | <toolbox>/examples/demos.xml | NEW |
### Functions Covered
| Function | Category | Example? | Signature Entry? |
|----------|----------|----------|-----------------|
| add | Arithmetic | Yes | Yes |
| multiply | Arithmetic | Yes | Yes |
| helperFormat | (internal) | No | No |
Which artifacts to generate?
> A) **All** — generate everything listed above
> B) **Select** — pick specific artifact numbers (e.g., "1, 2, 5")
> C) **Skip existing** — generate only NEW artifacts, skip those marked EXISTSWait for user confirmation before generating anything.
Use references/readme-template.md for the structure and conventions. Key points:
toolbox/GettingStarted.mSee references/function-signatures-rules.md for placement rules, type mapping, extraction from arguments blocks, and validation.
Key points:
"_schemaVersion": "1.0.0" at the top level+pkg vs. @class)validateFunctionSignaturesJSON via MATLAB MCPtype rather than guessLocation: toolbox/doc/GettingStarted.m (MATLAB auto-presents this on toolbox install via ToolboxGettingStartedGuide)
If a GettingStarted.mlx already exists, skip this step — the existing .mlx is valid and should not be replaced.
If the project has no toolbox/ folder, use doc/GettingStarted.m at the project root level.
Use scripts/getting-started-template.m as the starting structure. Key rules:
%% section breaks (renders as rich document in the Live Editor)GettingStarted.m (case-sensitive — MATLAB looks for this name)See references/examples-conventions.md for naming, structure, conversion, and rules.
Use references/demos-xml-template.xml for the structure. Key rules:
<source> is the filename WITHOUT the .m/.mlx extension<demosection> categories<label> text (include the function name in parentheses)If a MATLAB project exists, add all generated files:
matlabproj = openProject(projectRoot); % Add new files and doc/examples folders to the project path
## Documentation Complete — [Toolbox Name]
### Generated Artifacts
| Artifact | Location | Functions Covered |
|----------|----------|-------------------|
| README.md | <root>/README.md | All (summary table) |
| functionSignatures.json | toolbox/resources/functionSignatures.json | N public functions |
| GettingStarted.m | toolbox/doc/GettingStarted.m | Top 5 functions |
| Examples (M files) | toolbox/examples/*.m | N functions |
| demos.xml | toolbox/examples/demos.xml | All examples |
### Validation
- functionSignatures.json: VALID (N functions, 0 errors)
- GettingStarted.m: Runs without error
- Examples: M/M run successfully
### Packaging Integration
- ToolboxGettingStartedGuide → toolbox/doc/GettingStarted.m
- All artifacts inside toolbox/ folder → will ship in .mltbx
- README.md at project root → will NOT ship (developer-facing)
### Next Steps
- Review generated examples for accuracy
- Run `matlab-assess-toolbox` to check remaining gaps
- Customize GettingStarted.m with domain-specific narrativeYes — presents the full plan (Step 3) before generating anything. User can select which artifacts to generate, skip existing ones, or customize the scope.
GettingStarted.m inside the toolbox.toolbox/doc/. This exact path is what ToolboxGettingStartedGuide points to. MATLAB auto-presents it on install.toolbox/examples/. They ship inside the .mltbx and appear in the Help Browser via demos.xml.resources/. Follows MATLAB's resource folder convention. Placement rules differ for namespaces — the JSON goes in the parent of +pkg/..m for user-facing docs. Write as plain-text .m with %% section breaks — these render as rich documents in the Live Editor and are version-control friendly.functionSignatures.json is better than a complete but wrong one. Omit type rather than guess./matlab-create-buildfile — define the build plan with code checks, tests, and packaging tasks/matlab-assess-toolbox — validate readiness across all checks before buildingCopyright 2026 The MathWorks, Inc.
Other measured skills in the registry, with their headline benchmark lift.