Matlab Write Help
MathWorksOfficialCreated by MathWorks
- Skill
- Content generator
- Software development
- BSD-2-Clause
- No issues found
From the skill’s files
Taken from the skill’s own files (its description, section headings and stated usage). Not an AutoGineer summary, and not written by the author as one.
Generate or improve MATLAB help text (documentation comments) for a function, class, or script file following MathWorks standards (H1 line, syntax paragraphs, See Also, 75-char lines). Read BEFORE writing MATLAB help — default patterns (Inputs:/Outputs: lists, block comments, uppercase See Also) produce non-conforming output. Use when writing, rewriting, fixing, or reviewing MATLAB help comments or function documentation. Resolve $file to an M-file path and generate complete, standards-compliant MATLAB help text for it. If the file already has help text, improve it to meet the standards below. Present the proposed help text to the user for review before modifying the file.
What it does
- When to Use
- When NOT to Use
- Task
- Standards for MATLAB Help Text
- Using the arguments block for syntax paragraphs
- Process
When to use it
- Use when writing, rewriting, fixing, or reviewing MATLAB help comments or function documentation.
- Writing help text for a new MATLAB function, class, or script
- Rewriting or improving existing help text that is incomplete or non-conforming
- Reviewing help text for standards compliance
- Adding help to methods in a classdef file
- Generating property comments for a class
Advantages
The skill’s files do not state this.
Usage examples
The skill’s files do not state this.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/matlab/matlab-write-help/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip matlab-write-help.zip -d .agents/skills
Documentation by MathWorks
When to Use
Writing help text for a new MATLAB function, class, or script
Rewriting or improving existing help text that is incomplete or non-conforming
Reviewing help text for standards compliance
Adding help to methods in a classdef file
Generating property comments for a class
When NOT to Use
Writing general documentation or README files (not help comments)
Generating code — this skill only produces help text
Working with non-MATLAB languages
Writing MATLAB Live Script markup (use plain-text-live-code guidelines instead)
Task
Resolve $file to an M-file path and generate complete, standards-compliant MATLAB help text for it. If the file already has help text, improve it to meet the standards below. Present the proposed help text to the user for review before modifying the file.
Standards for MATLAB Help Text
All rules below are mandatory. Violating any of them produces non-conforming help.
General Rules
Help begins on line 2 (after
functionorclassdefline) for functions/classesHelp begins on line 1 for scripts or built-in sidecar files
Help comments must match the indentation of the body code. Look at the first non-comment content after the help block to determine the indentation level:
For
classdeffiles: the body isproperties/methodsblocks, which are always indented 4 spaces → class help at 4 spacesFor
functionfiles: look at the first executable statement. If at column 1, help at column 1; if at 4 spaces, help at 4 spaces. Example at 4-space indent:function result = myFunc(x) %myFunc - Brief description % RESULT = myFunc(X) does something with X. result = x + 1; endFor inline methods in classdef: if body is at 12 spaces, help at 12 spaces Both styles are valid for top-level functions — match whichever one the file already uses. Do NOT change the file's indentation style
No comment line may exceed 75 characters measured from the
%onward (i.e., 75 characters of comment content including the%itself). If the%is indented, the total line width is indent + 75. Syntax lines are exempt (see below).Max column = indent + 75 (e.g., indent 12 → max col 87). Count from the
%, not from column 1.No tabs — spaces only
No trailing whitespace
No block comments (
%{ %}) — only%line commentsNo hardcoded links to documentation or webpages
No
'href="matlab:'evaluation links
Section Order
H1 Line
Release Compatibility (if applicable)
Syntax Paragraphs
Example (optional)
See Also line
Note (optional)
A blank line (no %) separates help from the copyright line.
Help Casing
When function or class names appear in help text (H1 lines, syntax
paragraphs, prose references, and See Also lines), they use help
casing to distinguish them from ordinary words. The help command
renders help-cased names as bold or hyperlinks.
Rules:
Names that are entirely lowercase letters [a-z] are uppercased (e.g.,
sort→SORT,magic→MAGIC)Names that start with an uppercase letter but the remaining letters are all lowercase are also uppercased (e.g.,
Table→TABLE,Handle→HANDLE)Any other name (mixed case, digits, or underscores) keeps its exact original casing — do NOT uppercase it (e.g.,
readTable→readTable,XMLReader→XMLReader,image_resize→image_resize,pdist2→pdist2)
H1 Line
%FUNCNAME - Brief description without a periodBegins with
%immediately followed by the function name in help casing (no space after%)Do NOT include namespace or class name
-(space-dash-space) separates the name from the descriptionDo NOT end with a period
Description should be a brief summary of the function's purpose
Syntax Paragraphs
%FUNC - Brief description without a period
% B = FUNC(A,OPTION) does the thing with A using OPTION.
%
% B = FUNC(A,Name=VALUE) also specifies a name-value argument.Note: no blank % line between the H1 and the first syntax paragraph.
One paragraph per syntax
Each paragraph begins with the syntax it describes followed by a lowercase verb — the syntax reads as the subject of the sentence (e.g.,
% B = FUNC(A) does...not% B = FUNC(A) Returns...)Function name uses help casing
All lines indented with three spaces after
%(i.e.,%)No blank
%line before the first syntax paragraphA blank
%line separates each syntax paragraphInput ordering in syntax: Required → Optional → Name-Value
The first syntax paragraph describes all required inputs only
Each optional input gets its own syntax paragraph
The first syntax paragraph shows only the primary output. Additional outputs are introduced one at a time in later syntax paragraphs — never jump from one output to all outputs at once. Each new output gets its own paragraph. This mirrors the input layering — start simple, add complexity one piece at a time. Examples:
Two outputs — one additional paragraph:
% IDX = FINDNEAREST(POINTS,TARGET) finds the nearest point. % % [IDX,DIST] = FINDNEAREST(...) also returns the distances.Three outputs — two additional paragraphs (not one):
% SEGMENTS = segmentSignal(DATA,THRESHOLD) segments the signal. % % [SEGMENTS,BOUNDARIES] = segmentSignal(...) also returns the % boundary indices where segments split. % % [SEGMENTS,BOUNDARIES,LABELS] = segmentSignal(...) also returns % string labels for each segment.Use
...to abbreviate previously-described arguments when an optional applies to all prior syntaxesIf a syntax exceeds 75 characters, the syntax itself is exempt from wrapping — keep it on one line. The description text that follows wraps normally starting on the next line. To shorten long syntaxes:
Abbreviate the LHS with
[...]when outputs were described in an earlier syntax (e.g.,[...] = func(...,Name=VAL))Abbreviate the RHS with
...for previously-described inputsBoth abbreviations can be combined
Variable Naming in Syntaxes
Inputs and outputs: use help casing — all-lowercase names become UPPERCASE; names with ANY uppercase letter, digit, or underscore keep exact original casing Examples:
data→DATA,method→METHOD,result→RESULT,depth→DEPTH,obj→OBJ,tf→TFbutfilePath→filePath,queryPoints→queryPoints,startSample→startSample,maxMemory→maxMemory,otherBuffer→otherBuffer(these contain uppercase letters, so they keep exact casing)References to other functions in prose: use help casing — never fully-qualified for same-folder functions
Generic logical outputs: use
TFGeneric data: single uppercase letters (
A,B,X)Command-form arguments: all UPPERCASE
Flag (Option String) Inputs
% B = SORT(A,DIRECTION) also specifies the sort direction. DIRECTION
% must be:
% "ascend" - (default) Sorts in ascending order.
% "descend" - Sorts in descending order.Flag name in UPPERCASE in the syntax
Allowed values listed as double-quoted strings
Values indented seven spaces after
%(i.e.,%)Value separated from description by
-(space-dash-space)Pad shorter values so dashes align vertically
Indicate default with
(default)at start of descriptionDefault value listed first
Name-Value Arguments
% B = FUNC(A,...,Name=VALUE) also specifies the thing.Written as
Name=VALUEwith the value in UPPERCASEIf the name-value has allowed values, list them using the same flag rules above
Example Section
% Example: Brief label describing the example
% x = func(input1,input2);
% disp(x)Only include an example if it helps illustrate non-obvious syntax usage
Preceded by a blank
%lineHeading:
% Example:(or% Example: label)Code indented seven spaces after
%(i.e.,%)No control flow (
for,if,while)Must run when copied to Command Window
No more than 10 lines of code per example
Separate multiple examples with a blank
%lineDo NOT number examples — use text labels on the heading line
Use inline
% commentsto annotate code, not prose between lines
See Also Line
%
% See also readtable, griddedInterpolant, pdist2Preceded by a blank
%lineBegins with
% See also(three-space indent)Names use their original case-correct spelling as they appear on the MATLAB path (e.g.,
readtable,griddedInterpolant,pdist2) — do NOT apply help casing to See Also namesUse the shortest name that resolves. Functions on the MATLAB path without packages can use bare names. Functions in OTHER packages MUST be fully qualified (e.g.,
pkg.subpkg.funcName). Functions in the SAME folder (same package level) use bare names — they resolve relative to each otherDo NOT reference private methods or private functions — they cannot be reached via
helpwithout full qualification, and even then only from within the class. In@classfolders, any file that is not the class constructor is a method; check its Access before referencing itMethods in
@classfolders SHOULD have a See Also line referencing the class itself and relevant public methods or properties of the class, using unqualified names (e.g.,ClassName,methodName,propertyName). Do NOT reference other private methodsSeparated by comma and space
NOT terminated with a period
Between 2 and 7 items
Do NOT include descriptions — just names
If the line exceeds 75 characters, wrap at a comma boundary:
% See also readtable, readtimetable, % griddedInterpolant, scatteredInterpolant
Note Section
%
% Note: FUNC is in the Signal Processing ToolboxPreceded by a blank
%lineBegins with
% Note:Functions use their H1 casing
Products use full names
NOT terminated with a period
Copyright Line
A copyright line is specifically a comment that matches:
% Copyright YYYYwhere the line starts with % followed by spaces, then the whole word
Copyright, then a four-digit year or year range (e.g.,2024 or
2020-2025). Other comments that merely contain the word "copyright" as
part of a function name or description are NOT copyright lines.
The copyright is NOT part of the help text
If a copyright comment exists in the file, ensure it appears after the help block, separated by a blank line (no
%— just a newline)This blank line terminates the help block; MATLAB's
helpcommand stops reading at the first non-comment lineThe copyright line must be indented to match the help comments above it
Do not add, remove, or modify the copyright — only move it if needed
Class Help
For classdef files:
Main class help describes construction (do NOT write separate constructor help)
Construction syntax paragraphs follow the same required/optional rules: the first syntax shows required args only; each optional gets its own paragraph. Example for
MyClass(data, opts)where data is required:% OBJ = MyClass(DATA) creates an object from DATA. % % OBJ = MyClass(DATA, sampleRate) also specifies the sample rate.After syntax paragraphs, include class detail listings:
% CLASSNAME functions:
% method1 - Brief description
% method2 - Brief description
%
% CLASSNAME properties:
% Prop1 - Brief description
% Prop2 - Brief descriptionThe heading MUST be
CLASSNAME functions:— use the word functions, NOT methods (matches MATLAB's ownhelpoutput). Never writeCLASSNAME methods:List every public method and property
Pad names so dashes align
In the classdef file's own See Also, do NOT list the class's own methods or properties (they are already in the listings above)
In method files (
@classfolder), DO reference the class itself and other public methods or properties — use unqualified names (e.g.,ClassName,methodName,propertyName)
Property Help
When generating help for a classdef file, always check that every public property has a comment. This is not optional and should not require the user to ask — it is part of the standard classdef help workflow. If any public property lacks a comment, add one.
Every public property should have at least a postfix comment:
Postfix (short, H1 only):
PropName % Brief descriptionPrefix (for longer descriptions):
%PROPNAME - Brief description
% Additional detail about the property.
PropNameIf properties already have postfix comments, leave them as-is. Only add missing ones. Do not duplicate the class-level properties listing — the listing is a summary, while property-level comments are inline docs.
Method Help
Methods defined locally in a classdef file (not in separate @class
folder files) follow these rules based on access level:
Public methods get full function help:
H1 line
Syntax paragraph describing all inputs and outputs
No blank
%line between the H1 and the syntax paragraphFill description text to the full 75-character width measured from
%— do not wrap shortThe syntax itself (e.g.,
% OUT = func(A,B,C)) is exempt from the 75-char limit — never wrap a syntax across lines. If the syntax exceeds 75 chars, put the description on the next line
function result = myMethod(obj, x)
%myMethod - Brief description
% RESULT = myMethod(OBJ,X) does something with X.
result = x + 1;
endProtected and private methods get H1 only:
function result = helperMethod(obj)
%helperMethod - Brief description
result = obj.data;
endExceptions that get H1 only regardless of access:
Property getters/setters (
get.Prop,set.Prop)Constructors (class-level help covers construction)
Trivial no-op methods (empty body)
Overriding methods and help inheritance:
When a subclass overrides a superclass method, MATLAB inherits the superclass help if the override has none. Use this to avoid duplication:
Omit help when the override does the same thing (different impl)
Write help only when the contract changes (different inputs/outputs)
Write superclass help generically — describe what, not how.
Help for locally-defined methods is indented to match the method body
(typically 12 spaces when the function keyword is at 8 spaces).
Methods in separate files (@class folders) follow standard function
help rules independently — help indentation matches the body code
indentation of that file (column 1 if the body is at column 1, or
4 spaces if the body is indented 4 spaces).
Using the arguments block for syntax paragraphs
When a function has an arguments block, read it to determine the correct
syntax paragraphs. The block tells you everything:
Required positional: no
=default value, no dot prefixinputData (1,:) double;Optional positional: has
= default, no dot prefixmethod (1,1) string = "linear";Name-value: prefixed with a group name and dot
opts.Tolerance (1,1) double = 1e-6;
Use this to generate syntax paragraphs:
First syntax: required positional args only → describe the base call
Optional positional: each gets its own paragraph with all prior args shown (or abbreviated with
...)Name-value args: show as
Name=VALUEin additional syntaxes
Never write a raw internal variable name like ARGS in a syntax — expand
it into the actual name-value pairs the caller would use.
Process
Resolve
$fileto a full file path:If
$fileis already a valid absolute or relative path to an existing.mfile, use it directlyOtherwise, resolve it via MATLAB using the MCP tool:
foundName = which("$file"); if ~isempty(foundName), disp(foundName), endIf resolution fails (MCP unavailable, MATLAB not running, or name not found), report the failure and ask the user for a valid path
Read the resolved M-file
Identify: function, classdef, or script
If the function has an
argumentsblock, read it to determine required, optional, and name-value argumentsAnalyze the signature(s), inputs, outputs, and behavior
Draft help text following all rules above
For classdef files: check every public property for a comment. Add postfix comments to any that are missing — do this proactively as part of the draft, without waiting for the user to ask
Verify: no line > 75 chars from
%, correct section order, correct indentationPresent the draft to the user
After approval, insert/replace the help text in the file using Edit
Copyright 2026 The MathWorks, Inc.
Files
- ATTRIBUTION.mdAdded by AutoGineer1.0 KiB
- LICENSELicence file added by AutoGineer1.4 KiB
- SKILL.md17.6 KiB
- manifest.yaml415 B
Requirements and compatibility
Written for: Claude Code
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools, Claude Code frontmatter
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- MathWorks
- Publisher
- MathWorks (Official)
- Source
- matlab/matlab-agentic-toolkit · skills-catalog/matlab-software-development/matlab-write-help · commit 2a7f215
- Licence
- BSD 2-Clause License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE.md)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by MathWorks or MathWorks.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download matlab-write-help.zip