arizukoconcepts › skills

skills

A skill is a directory of markdown the agent reads when it needs to do a specific job. The agent ships with a built-in set and the operator can drop in more. Skills don’t fire on their own — the agent calls one explicitly through /dispatch.

what a skill is

One directory under ant/skills/. Every skill has a SKILL.md with YAML frontmatter and a body:

---
name: skill-name
description: one-line summary
triggers: [keyword1, keyword2]
---

Skill instructions here...

Names must match ^[a-z0-9\-]+$ — the seeder skips anything else. The body can be markdown plus any reference files (*.md) or executable helpers (*.sh, *.ts) that live next to SKILL.md.

built-in vs user skills

Two sources feed the agent’s skill list:

Built-in skills get refreshed on every /migrate run; user skills are never overwritten.

discovery: dispatch is explicit

LLMs do not reliably auto-trigger skills by reading their descriptions. The agent runs /dispatch as the first step on each turn: dispatch scans every skill’s description + triggers, matches the current message, and tells the agent which skill to load. Without dispatch, skills sit there unused.

/reconcile handles the late case — if the agent produced output and then realized a skill applied, reconcile re-runs the work under the correct skill so the output doesn’t contradict the skill’s rules.

migration and versioning

The agent image carries a version number in ant/skills/self/MIGRATION_VERSION — a single integer. Every release that ships skill changes bumps this number. On agent startup, gateway.checkMigrationVersion compares the image’s version against the group’s last-seen value:

Each version bump has a corresponding ant/skills/self/migrations/NNN-vX.Y.Z-summary.md file. The file’s existence is what fires the broadcast; an empty stub body is fine for docs-only releases.

go deeper

How a group gets its initial skill set: onboarding. Format rules and the per-skill layout: specs/1/B-extend-skills.md. The shipping flow that bumps MIGRATION_VERSION and writes a migration file: CLAUDE.md — “Shipping changes” section. What ships in each version: changelog.