Atomic can create skills. Ask it to build one for your use case.
Skills
Skills are self-contained capability packages that the agent loads on-demand. A skill provides specialized workflows, setup instructions, helper scripts, and reference documentation for specific tasks. Atomic implements the Agent Skills standard, warning about violations but remaining lenient.Table of Contents
- Locations
- How Skills Work
- Skill Commands
- Skill Structure
- Frontmatter
- Validation
- Example
- Skill Repositories
Locations
Security: Skills can instruct the model to perform any action and may include executable code the model invokes. Review skill content before use.Atomic loads skills from:
- Global:
~/.atomic/agent/skills/(legacy~/.pi/agent/skills/)~/.agents/skills/
- Project (only after the project is trusted):
.atomic/skills/(legacy.pi/skills/).agents/skills/incwdand ancestor directories (up to git repo root, or filesystem root when not in a repo)
- Packages:
skills/directories,atomic.skills, or legacypi.skillsentries inpackage.json - Settings:
skillsarray with files or directories - CLI:
--skill <path>(repeatable, additive even with--no-skills)
- In
~/.atomic/agent/skills/and.atomic/skills/(plus legacy~/.pi/agent/skills/and.pi/skills/), direct root.mdfiles are discovered as individual skills when they have valid skill frontmatter with a non-emptydescription - In all skill locations, directories containing
SKILL.mdare discovered recursively - In
~/.agents/skills/and project.agents/skills/, root.mdfiles are ignored - Root Markdown files other than
SKILL.mdthat do not look like skills are ignored silently
--no-skills (explicit --skill paths still load).
Using Skills from Other Harnesses
To use skills from Claude Code or OpenAI Codex, add their directories to settings:.atomic/settings.json (legacy .pi/settings.json is also supported):
How Skills Work
- At startup, Atomic scans skill locations and extracts names and descriptions
- The system prompt includes available skills in XML format per the specification
- When a task matches, the agent uses
read, orbashwhenreadis unavailable, to load the full SKILL.md (models don’t always do this; use prompting or/skill:nameto force it) - The agent follows the instructions, using relative paths to reference scripts and assets
Built-in prompt engineering guidance
The bundled/skill:prompt-engineer creates, optimizes, evaluates, and troubleshoots prompts for GPT and Claude models. Its small routing file points to separate, source-attributed guides for GPT-6 Astra, GPT-5.6, GPT-5.5, Claude Fable 5.1, Claude Fable 5, Claude Opus 5, Claude Opus 4.8, and Claude Sonnet 5. Read the target model’s page, or both relevant pages for a migration, without loading every guide. Shared references cover prompt structure, tools, evaluation, and instruction audits; model defaults, effort, verification, and API compatibility stay in their own pages.
Astra guidance distills OpenAI’s model guide into completion and permission rules, proportionate verification, useful parallel delegation, concise writing, and API migration checks. An instruction audit based on Eric Provencher’s advice explains how to shorten skill descriptions, use small routing files with optional references, remove obsolete recipes, and define safe local work and stopping points. It preserves binding repository requirements and separates API features from capabilities actually exposed by the host.
The skill no longer recommends response prefilling, which returns an error on Claude 4.6 and later, or visible chain-of-thought as a primary technique. Use explicit output instructions, schemas, tools, or post-processing instead of prefilling. Request conclusions, citations, commands, and observed results rather than reconstructed private reasoning; such requests can trigger Claude Fable 5’s reasoning_extraction safeguard and force a model fallback.
Built-in visual explanation guidance
The bundled/skill:show-me from HumanLayer helps explain the current topic visually with concise diagrams, code-shape sketches, and focused HTML artifacts. It is distributed under the MIT License.
Built-in code quality guidance
The bundled/skill:qlty runs code-quality verification through the qlty CLI, which drives 70+ linters, auto-formatters, and security scanners across 40+ languages: qlty check for linting, qlty fmt for auto-formatting, qlty metrics for complexity, lines, and cohesion, and qlty smells for duplication, deep nesting, and overly complex code. It triggers on requests for verifiers or high code quality and prefers one CLI over ad-hoc per-tool linter invocations. The skill directs the agent to docs.qlty.sh/llms.txt as the authoritative documentation index, tells it to enable the qlty plugins and linter extensions that fit the codebase before checking, and ships source-attributed reference excerpts beside SKILL.md. The CLI is not bundled; install it with curl https://qlty.sh | bash (macOS and Linux) or powershell -c "iwr https://qlty.sh | iex" (Windows), and keep ~/.qlty/bin on PATH. Note that qlty init writes .qlty/qlty.toml into the repository. Offline, qlty metrics and qlty smells still work (built-in static analysis); qlty check and qlty fmt download plugins and runtimes on first use per repository and need network then.
Skill Commands
Skills register as/skill:name commands:
@project, @user, and @builtin are available only when that family has one candidate in the collision. If a family contains multiple package candidates, Atomic advertises package-qualified aliases instead, such as /skill:review@team-review and /skill:review@company-review; the family selector is ambiguous and reports the exact choices. Autocomplete, pi.getCommands(), and RPC get_commands return the same advertised names.
Qualified selection is exact. An unknown or ambiguous qualified selector reports an error and never falls back to the bare winner. Aliases are recalculated on reload, so a qualified alias disappears when its collision disappears. The model-visible skill list uses the same aliases, while the opaque candidate IDs stored in transcripts and collision diagnostics are internal identity, not command names.
Subagent definitions and per-call skills overrides accept these same selectors. Live in-process children resolve them from their own loader catalog after resource reload; a missing or ambiguous selector is reported in the child result instead of silently selecting the bare skill. The parent-only subagent orchestration skill cannot be injected into a child, including qualified aliases such as subagent@builtin. Extensions can read the same catalog through ctx.getSkillCatalog().
Arguments after the command are appended to the skill content as User: <args>.
Toggle skill commands via /settings in interactive mode or in settings.json:
Skill Structure
A skill is a directory with aSKILL.md file. Everything else is freeform.
SKILL.md Format
ALWAYS/NEVER language. Put detailed or model-specific material in references/ so it loads only when needed. Do not ask models to reproduce private reasoning or repeatedly verify their own work; require evidence or validation results where correctness matters.
Frontmatter
Per the Agent Skills specification:Name Rules
- 1-64 characters
- Lowercase letters, numbers, hyphens only
- No leading/trailing hyphens
- No consecutive hyphens
- Must match parent directory name
pdf-processing, data-analysis, code-review
Invalid: PDF-Processing, -pdf, pdf--processing
Description Best Practices
The description determines when the agent loads the skill. Be specific. Good:Validation
Atomic validates skills against the Agent Skills standard. Most issues produce warnings but still load the skill:- Name doesn’t match parent directory
- Name exceeds 64 characters or contains invalid characters
- Name starts/ends with hyphen or has consecutive hyphens
- Description exceeds 1024 characters
SKILL.md files and SKILL.md files without a description produce warnings and are not loaded. Other Markdown files without valid skill frontmatter are ignored.
Name collisions (the same name from different real files) produce diagnostics and keep the existing first-winner precedence for /skill:name. Atomic also retains the other files as source-qualified candidates as described in Skill Commands.
Example
Skill Repositories
- Anthropic Skills - Document processing (docx, pdf, pptx, xlsx), web development
- Pi Skills - Upstream skill examples for web search, browser automation, Google APIs, and transcription