mdm skills init¶
Scaffold a new skill in the current directory.
Usage¶
Creates a SKILL.md file with the required frontmatter and a starter template. If a name is provided, the file is created inside a new <name>/ subdirectory. Without a name, SKILL.md is created in the current directory using the directory name as the skill name.
Generated file¶
---
name: my-skill
description: A brief description of what this skill does
# license: MIT
# compatibility: "Node.js >=20, React ^18"
---
# my-skill
Instructions for the agent to follow when this skill is activated.
## When to use
Describe when this skill should be used.
## Instructions
1. First step
2. Second step
3. Additional steps as needed
Frontmatter fields¶
mdm follows the Agent Skills open standard. The fields below are the standard-defined fields. See the Claude Code skills docs for Claude Code-specific extensions (e.g. allowed-tools, disable-model-invocation, model).
| Field | Required | Description |
|---|---|---|
name |
Yes | Skill identifier used as the /skill-name slash command. Lowercase letters, numbers, and hyphens only (max 64 characters). Must match the parent directory name. |
description |
Yes | What the skill does and when to use it. Max 1024 characters. Claude uses this to decide when to load the skill automatically — put the key use case first. |
license |
No | License name (e.g. MIT, Apache-2.0) or a reference to a bundled LICENSE file. |
compatibility |
No | Plain-text description of environment requirements (max 500 characters). e.g. "Node.js >=20, React ^18". mdm displays this in mdm skills list. Not enforced — informational only. |
metadata |
No | Key-value pairs for custom properties (e.g. internal: true to hide from non-internal installs). |
Examples¶
# Create SKILL.md in the current directory
mdm skills init
# Create my-skill/SKILL.md
mdm skills init my-skill
Publishing and version tagging¶
Once you have written your skill:
- Push the directory to a public GitHub repository.
- Share it with
mdm skills add <owner>/<repo>. - Optionally submit to the skills.sh registry so others can find it with
mdm skills find.
A single repository can contain multiple skills — each in its own subdirectory with its own SKILL.md.
Version tagging¶
Tag your repository with a semver tag (e.g. v1.0.0) so users can pin to a specific version and receive automatic update notifications:
Users install pinned versions with:
When a newer tag is published, mdm skills update detects the change and offers to upgrade.
Declaring compatibility¶
Use the compatibility field to document which runtimes or libraries your skill is designed for:
---
name: my-react-skill
description: React component patterns for this project
license: MIT
compatibility: "Node.js >=20, React ^18, TypeScript >=5.0"
---
This is informational — mdm displays it in mdm skills list so developers know what environment the skill targets. It is not enforced or validated.