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 when you need a stable machine-readable name, eager loading, or tool declarations:
---
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.The example assumes an authored lookup_ticket tool and an account-access knowledge document. Declare only tools your agent provides.
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. |
resultTool | Frontmatter | Names the tool through which the skill should deliver its result. |
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.
Skill Chaining
The model can load several skills during one conversation. For example, ticket triage may lead to account-access review and then billing review. Describe the transition when it matters:
If the ticket also disputes a charge, load billing-review before recommending a billing action.Use a composite tool when every step must run in a fixed order. Skill instructions alone do not enforce that order.
Writing Skills
- State which records to load and which policy to apply.
- Name a specialist when delegation is useful, and declare it on the agent.
- Include branches for missing data and conflicting evidence.
- Define the expected output and when to stop.
- Base decisions on observable conditions. Avoid invented confidence percentages.
- Enforce permissions and approval in code; a constraint in Markdown guides the model.
Keep each skill focused on one workflow. Store reusable facts in knowledge so several skills can refer to the same policy.