matlab/matlab-document-toolbox
| functionSignatures.json, GettingStarted.m, and publishable examples with demos.xml help integration. Follows mathworks/toolboxdesign best practices. "generate function signatures", "getting started guide", "README", "make this ready to share", "add tab completion".
npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-document-toolbox
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 EXISTS
Wait 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:
proj = 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 narrative
Yes — 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 building----
Copyright 2026 The MathWorks, Inc.
----
Take matlab/matlab-document-toolbox from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.