Skills
Skills are reusable instructions that the harness can discover and rank.
File-backed skill directories, inline skills, explicit registries, and
search_skills share the same discovery path. A3S Code no longer ships default
embedded skills; builtinSkills: true is accepted by the SDKs as a compatibility
no-op.
Compatibility Flag
This flag does not add default skills. Put reusable behavior in project skill files, inline skills, or agent definitions.
Skill Files
Store Markdown files with frontmatter in a skill directory:
Use skillDirs for skill files. Use agentDirs for worker/subagent
definitions.
Skill directories are loaded only when configured: through skill_dirs in the
agent ACL (shared by every session of that agent) or through session
skillDirs / skill_dirs / SkillDirs. There is no implicit
.a3s/skills scan. Each directory is walked recursively in sorted order; a
skill is either a *.md file or a SKILL.md inside a subdirectory. Symlinks
that resolve outside the directory are ignored, and a missing directory loads
zero skills. When two files declare the same name, the later one replaces the
earlier one and a warning is logged.
Inline Skills
Skill Tool
search_skills finds relevant skills (limit is 1 to 20, default 5), and the
model runs one with the Skill tool (skill_name, optional prompt):
Markdown skill files with allowed-tools frontmatter and inline skills are both
discoverable. Skill administration is an SDK or filesystem concern rather than
a model-visible management tool. On a live session, hosts add and remove inline
skills with addSkill(skill) / removeSkill(name) / skillNames() (Python
add_skill(name, content, kind) / remove_skill(name) / skill_names(), Go
AddSkill / RemoveSkill / SkillNames). removeSkill only removes a skill
installed through addSkill.
When a skill is invoked through the Skill tool, allowed-tools is
fail-secure: omitted frontmatter grants no tools to that skill invocation.
Declare the smallest needed allow-list. Ordinary session tool calls are not
restricted by active skills unless enforceActiveSkillToolRestrictions /
enforce_active_skill_tool_restrictions is explicitly enabled.