Skills
Skills are folders of instructions, scripts, and resources that extend Ante's capabilities. They follow the open Agent Skills format, making them portable across compatible agent products.
Creating a skill
A skill is a directory containing a SKILL.md file:
commit/
└── SKILL.md
SKILL.md uses YAML frontmatter followed by Markdown instructions:
---
name: commit
description: Create a git commit with a descriptive message following conventional commit format.
---
Look at the current git diff and create a commit with a clear,
descriptive message that follows conventional commit format.
Use `git add` to stage relevant files first.
Example: review skill with tools and references
review/
├── SKILL.md
└── references/
└── checklist.md
---
name: review
description: Review code changes for bugs, security issues, and style.
argument-hint: <path>
---
Review the code at $ARGUMENTS for bugs, security vulnerabilities, style issues, and missing error handling.
See [checklist](references/checklist.md) for the full review checklist.
Frontmatter parsing is lenient for common scalar mistakes: unquoted values that
contain : , begin with flow-like characters such as [ or {, or include
inline comments are repaired when they can be interpreted unambiguously.
Malformed nested YAML still fails so broken metadata does not load silently.
Skill directories
| Directory | Scope |
|---|---|
~/.agents/skills/ | User-level (compat — loaded before ~/.ante/skills/) |
~/.ante/skills/ | User-level (available in all projects) |
.agents/skills/ | Project-level |
.ante/skills/ | Project-level |
.claude/skills/ | Project-level (Claude Code compatibility) |
SKILL.md frontmatter
| Field | Required | Default | Description |
|---|---|---|---|
name | No | Directory name | Identifier for the skill |
description | No | First paragraph | What this skill does and when to use it |
argument-hint | No | — | Hint text for expected arguments (e.g. <path>) |
user-invocable | No | true | Whether the skill can be invoked via slash command |
disable-model-invocation | No | false | Prevents the model from invoking this skill automatically |
metadata | No | — | Arbitrary key-value pairs |
Unrecognized fields from other agent products (such as allowed-tools) are tolerated but ignored, so existing skills load without modification.
Optional directories
my-skill/
├── SKILL.md # Required — instructions
├── scripts/ # Executable code the agent can run
├── references/ # Additional docs loaded on demand
└── assets/ # Templates, schemas, data files
How skills are discovered
Skills are discovered in precedence order (later overrides earlier by skill name):
- System-level (built-in skills)
~/.agents/skills/(user-level, compat)~/.ante/skills/(user-level).claude/skills/(project-level, Claude Code compatibility).agents/skills/(project-level).ante/skills/(project-level)
Using skills
/commit
/review src/core/session.rs
Anything you type after the skill name is passed to the skill as arguments. How they land in the instructions depends on which placeholders the skill uses:
| Placeholder | Replaced with |
|---|---|
$ARGUMENTS | The full argument string, verbatim |
${1}, ${2}, … | The first, second, … whitespace-separated argument (quoted values stay grouped) |
${1:default} | The positional argument, or default when it is missing |
If a skill's instructions contain no placeholders, the arguments are appended in an <arguments> block so the agent still sees them.
Learn more
See the full specification for details on naming conventions, progressive disclosure, and validation.