Why skills matter
Your team has proven workflows - how to create a pull request, deploy to production, or debug a specific type of issue. Skills codify these workflows so agents can follow them consistently. Without skills: Agents improvise each time, potentially missing steps or using inconsistent approaches. With skills: Agents discover the right workflow for the task and follow your proven process.Skills vs AGENTS.md vs slash commands
| Feature | Skills | AGENTS.md | Slash commands |
|---|---|---|---|
| Purpose | Task-specific workflows | General codebase context | Manual prompt shortcuts |
| Discovery | Automatic by description | Always loaded | User invokes with / |
| Scope | Workspace or organization | Workspace only | Organization only |
| Content loading | On-demand via read_skill | Loaded at conversation start | Loaded when invoked |
| Best for | Multi-step processes | Project conventions | Reusable prompts |
- Skill: “Create pull request” - step-by-step workflow for opening PRs following repo conventions
- AGENTS.md: Project structure, test commands, branch naming patterns
- Slash command:
/review-like-mads- apply a specific review philosophy
Workspace-level skills
Workspace skills live in your repository and are available to anyone working in that codebase.Create a workspace skill
- Create a directory in
.ona/skills/(or.claude/skills/) with your skill name:
- Create a
SKILL.mdfile with frontmatter and workflow instructions:
-
Create PR with template
- Title: Start with issue number if applicable
- Description: Include “What changed” and “Why”
- Link related issues
- Add screenshots for UI changes
-
Request reviewers
- Add at least one reviewer from CODEOWNERS
- Tag security team for auth/permissions changes
Anti-patterns
- Don’t create PRs with failing tests
- Don’t skip the PR template
- Don’t merge without approval
SKILL.md format
Skills use YAML frontmatter followed by markdown content:name: Unique identifier (must match directory name)description: When agents should use this skill
- Prerequisites
- Step-by-step workflow
- Examples
- Anti-patterns (what to avoid)
Directory structure
.ona/skills/ and .claude/skills/ directories.
Organization-level skills
Organization skills are stored in the management plane and available across all environments in your organization. They take precedence over workspace skills with the same name.Create an organization skill
Use the CLI to create organization skills:Manage organization skills
List all skills:How agents use skills
Discovery
When an agent conversation starts, it discovers all available skills:- Fetches organization-level skills via API
- Scans workspace directories (
.ona/skills/,.claude/skills/) - Merges skills (organization skills override workspace skills with same name)
- Lists skills in system prompt with descriptions
Reading skill content
Agents use theread_skill tool to fetch workflow instructions on-demand:
Precedence rules
When skills have the same name:- Organization skills take precedence over workspace skills
.ona/skills/takes precedence over.claude/skills/
- Organization has
create-prskill → Agent uses organization version - Workspace has
create-prin.ona/skills/→ Ignored (org wins) - Workspace has
debug-perfin.ona/skills/→ Agent uses workspace version (no org conflict)
Best practices
Keep skills focused: One skill per workflow. Don’t create a mega-skill that covers everything. Write clear descriptions: The description determines when agents use the skill. Be specific:- ✅ “Create pull requests following repository conventions”
- ❌ “PR stuff”
2. Branch naming
Format:<initials>/<issue-number>-<short-description>
Examples:
jd/123-fix-auth-bugsm/456-add-export-feature
3. Commit message format
feat, fix, docs, refactor, test, chore
4. Create PR
- Title:
[#<issue>] <description> - Description: Use PR template (
.github/pull_request_template.md) - Labels: Add appropriate labels
- Reviewers: Minimum 1 from CODEOWNERS
- Security: Tag
@security-teamfor auth/permissions changes
5. Post-creation
- Link PR to Linear/Jira issue
- Notify in #engineering Slack channel
- Monitor CI checks
Anti-patterns
- ❌ Creating PR with failing tests
- ❌ Skipping security scan for “small changes”
- ❌ Merging without approval
- ❌ Force-pushing after review started
- ❌ Leaving PR description empty
Troubleshooting
Tests fail in CI but pass locally:- Check Node version matches CI
- Clear
node_modulesand reinstall - Verify environment variables
2. Create deployment branch
3. Run deployment
- Builds production assets
- Runs database migrations
- Deploys to staging cluster
- Runs smoke tests
4. Verify deployment
5. Notify team
Post in #deployments Slack channel:Rollback procedure
If deployment fails:Anti-patterns
- ❌ Deploying without health check
- ❌ Skipping smoke tests
- ❌ Deploying during business hours without notice
- ❌ Not verifying database migrations
Troubleshooting
Agent doesn't use my skill
Agent doesn't use my skill
Check the description: The skill description must match the task. Be specific about when to use it.Verify discovery: Organization skills appear with “(organization)” indicator, workspace skills show file path.Check precedence: If you have both org and workspace skills with the same name, only the org skill is used.
Skill content not loading
Skill content not loading
Organization skills: Verify the skill exists with
ona ai skill listWorkspace skills: Check file path is .ona/skills/<name>/SKILL.md or .claude/skills/<name>/SKILL.mdFrontmatter: Ensure YAML frontmatter is valid and includes required name and description fieldsHow to update organization skills
How to update organization skills
Use the CLI update command:Or delete and recreate:
Next steps
- AGENTS.md - provide general codebase context
- Slash commands - create manual prompt shortcuts
- Automations - run agent workflows automatically