Skills
A skill is a Markdown workflow the agent can load when a task needs it. Use skills for investigation steps, decision criteria, and response requirements. Put calculations and required execution order in tools or workflows.
amodal/skills/
├── triage/
│ └── SKILL.md
└── account-access/
└── SKILL.mdSKILL.md Format
Heading-based
# Skill: Account Access Triage
Check account-access tickets and recommend the next support action.
Trigger: When the user asks about login failure, password reset, or account lock.
## Behavior
1. Load the ticket and identify the affected account.
2. Load the account-access policy with load_knowledge.
3. Check whether identity verification is complete.
4. If verification is missing, recommend verification before account changes.
5. Return the ticket status, confirmed facts, missing information, and next action.
## Constraints
- Do not request passwords or credentials.
- Do not claim a reset succeeded unless the account system confirms it.Use the parsed name, Account Access Triage, when referencing this skill in an agent's skills list. The directory name does not override it.
Frontmatter-based
Use frontmatter for a stable machine-readable name, eager loading, or tool declarations. name is required; a frontmatter file without it is not loaded.
---
name: account-access
description: Check account-access tickets and recommend the next support action.
trigger: When the user asks about login failure, password reset, or account lock.
load: on-demand
allowedTools: [lookup_ticket, load_knowledge]
---
1. Load the ticket and the account-access policy.
2. Check identity-verification status before recommending changes.
3. Return confirmed facts, missing information, and the next action.Parsed Fields
| Field | Source | Meaning |
|---|---|---|
name | # Skill: Name or frontmatter | Name used by load_skill and agent resource declarations. |
description | Text before the first ## section, excluding Trigger:, or frontmatter | Short description included in the skill index. Heading-format files without a ## section have an empty description. |
trigger | One unwrapped Trigger: line or frontmatter | Tells the model when the skill applies. |
body | From the first ## section onward, or the content after frontmatter | Instructions returned by load_skill. |
load | Frontmatter | on-demand (default) or eager. Other values warn and use the default. |
allowedTools | Frontmatter | Tool names added to a root agent's scope when it declares this skill. |
Choose one format per file. A # Skill: heading takes precedence over frontmatter, so combining them prevents frontmatter-only options from being read.
Skill Activation
A root session's prompt lists its available skills by name, trigger, and description. The model calls load_skill to retrieve an on-demand body. load: eager includes the body in the initial prompt.
A named agent exposes only the skills in its skills list. Unscoped chat exposes the bundle's skills. If agents/default/ exists, an omitted chat agent selects that scoped agent. A delegated subagent uses its own prompt and declared tools; include load_skill in its tools if it needs to load skills available through the parent registry.
A trigger describes when to use a skill; it does not schedule work or guarantee activation. Verify activation with a skill_loaded: assertion in an eval.
The model can load several skills in one conversation. To chain them, name the next skill in the instructions, such as "If the ticket also disputes a charge, load billing-review". Skill instructions do not enforce order or permissions; use a composite tool for a fixed sequence and enforce approval in code. Keep shared facts in knowledge.