Skills, Rules & Commands
The skills server loads prompt artifacts from configured directories and exposes them in two ways:
- MCP prompts for
user-invocableslash-command style workflows. - MCP tools for
agent-invocableskills.
A single markdown artifact can be a user prompt, an agent skill, a read-triggered rule, or any combination of those surfaces.
Configuration
Section titled “Configuration”Aether’s project scaffold wires skills to .aether/skills:
{ "servers": { "skills": { "type": "in-memory", "args": ["--dir", ".aether/skills"] } }}--dir is repeatable. On name collision, the last directory wins.
Directory shape
Section titled “Directory shape”Prompt artifacts can be directory-backed SKILL.md files or flat markdown files directly under a configured --dir.
Directory.aether/
Directoryskills/
Directoryrust/
- SKILL.md
- traits.md
- error-handling.md
- commit.md
- rust-rules.md
Directory-backed skills can include auxiliary files that agents load on demand with get_skills. Flat markdown prompt files are useful for small prompts or rules and do not support auxiliary relative paths.
Prompt artifact frontmatter
Section titled “Prompt artifact frontmatter”---name: rustdescription: Rust conventions for this projectuser-invocable: falseagent-invocable: truetags: [rust, coding]triggers: read: - "**/*.rs"---
Use project-specific Rust conventions.
See `traits.md` and `error-handling.md` for detailed patterns.| Field | Description |
|---|---|
name | Optional identifier. Defaults to the directory name for SKILL.md or filename stem for flat .md files. |
description | Discovery text. Empty descriptions default to the resolved name. |
user-invocable | Exposes the artifact as an MCP prompt. Directory-backed SKILL.md files default to true; flat files default to false. |
agent-invocable | Makes the artifact discoverable through list_skills and loadable with get_skills. Defaults to true. |
argument-hint | Optional argument hint for user-invocable prompts. |
tags | Tags returned by list_skills. |
triggers.read | Project-relative glob patterns used as read-triggered rules by the coding server. |
globs, paths | Compatibility aliases that also feed triggers.read. |
Every authored artifact must have at least one activation surface: user-invocable, agent-invocable, triggers.read, globs, or paths.
| Tool | Description |
|---|---|
list_skills | Return lightweight metadata for all agent-invocable skills. |
get_skills | Load skill content by exact name and optional relative auxiliary path. |
Recommended flow:
- Call
list_skillsto discover available skills. - Call
get_skillsonly for the exact skills needed.
{ "requests": [ { "name": "rust" }, { "name": "rust", "path": "traits.md" } ]}Loading a directory-backed SKILL.md returns availableFiles, excluding hidden files and SKILL.md itself. Auxiliary paths must be relative, must not contain .., and must stay inside the skill directory.
User-invocable artifacts are exposed through the MCP prompts protocol.
---description: Generate a commit message for staged changesuser-invocable: trueagent-invocable: falseargument-hint: "[optional context]"---
Generate a concise commit message for the currently staged git changes.
Context: $ARGUMENTS$ARGUMENTS and named MCP prompt parameters are substituted when the prompt is requested.
Shell interpolation
Section titled “Shell interpolation”Loaded skill files and MCP prompt bodies support Aether prompt shell interpolation such as !`git branch --show-current`. Commands execute relative to the prompt file directory for get_skills, and relative to the workspace root for MCP prompts.