
agentskills-specification
Specification and SDK for creating Agent Skills - a standard format for giving AI agents new capabilities through discoverable instruction bundles
- Installs
- 192
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/reason-machines/ai-agent-skills --skill agentskills-specification- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads agentskills-specification automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Agent Skills Specification
Skill by ara.so — AI Agent Skills collection.
Agent Skills is an open format for packaging instructions, scripts, and resources that AI agents can discover and use to perform better at specific tasks. Skills are folders containing a SKILL.md file with structured information that agents can load to gain expertise in specific domains or tools.
What Agent Skills Are
Agent Skills provide:
- Standardized format for agent capabilities via Markdown with YAML frontmatter
- Discoverability through triggers and structured metadata
- Portability across different AI agent platforms
- Composability allowing agents to combine multiple skills
Installation
Agent Skills are typically distributed as folders containing at minimum a SKILL.md file:
# Clone the reference implementation
git clone https://github.com/agentskills/agentskills.git
# Or see example skills
git clone https://github.com/anthropics/skills.git
Individual skills are installed by placing them in a directory that your AI agent monitors (implementation-specific).
SKILL.md Format
Every Agent Skill must have a SKILL.md file with YAML frontmatter followed by Markdown content.
Basic Structure
---
name: skill-name-in-kebab-case
description: One-line description of what this skill does
triggers:
- natural phrase users might say
- another trigger phrase
- how to use this skill
---
# Skill Name
Detailed documentation in Markdown format...
Required Frontmatter Fields
---
name: database-query-optimizer
description: Optimize SQL queries for PostgreSQL and MySQL databases
triggers:
- optimize my database query
- improve SQL performance
- analyze query execution plan
- find slow queries
- index suggestions
- database performance tuning
---
Field Specifications:
name: kebab-case identifier, descriptive and uniquedescription: Single line, under 200 characterstriggers: 6-8 natural language phrases that should activate this skill
Optional Frontmatter Fields
---
name: docker-deployment
description: Deploy applications using Docker and Docker Compose
version: 1.0.0
author: Your Name
requires:
- docker >= 20.10.0
- docker-compose >= 2.0.0
platform:
- linux
- macos
triggers:
- deploy with docker
- create docker container
- write dockerfile
- docker compose setup
- containerize application
- build docker image
---
Creating a Complete Skill
1. Start with Frontmatter
---
name: fastapi-rest-api
description: Build REST APIs with FastAPI framework including async operations, validation, and documentation
triggers:
- create fastapi endpoint
- build rest api with fastapi
- fastapi async route
- add pydantic validation
- setup fastapi project
- fastapi dependency injection
version: 1.0.0
requires:
- fastapi >= 0.100.0
- pydantic >= 2.0.0
---
2. Add Core Documentation
# FastAPI REST API
## Overview
FastAPI is a modern, fast web framework for building APIs with Python 3.7+ based on standard Python type hints.
## Installation
```bash
pip install fastapi uvicorn[standard]
Basic Usage
Simple Endpoint
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
Run the Server
uvicorn main:app --reload
### 3. Include Real Code Examples
```python
from fastapi import FastAPI, HTTPException, Depends
from pydantic import BaseModel, Field
from typing import List, Optional
import os
app = FastAPI(title="My API", version="1.0.0")
# Models with validation
class Item(BaseModel):
name: str = Field(..., min_length=1, max_length=100)
description: Optional[str] = None
price: float = Field(..., gt=0)
tax: Optional[float] = None
class ItemResponse(BaseModel):
id: int
name: str
price: float
# Dependency injection
def get_api_key(api_key: str = Depends(lambda: os.getenv("API_KEY"))):
if not api_key:
raise HTTPException(status_code=401, detail="API key required")
return api_key
# CRUD endpoints
items_db = []
@app.post("/items/", response_model=ItemResponse, status_code=201)
async def create_item(item: Item, api_key: str = Depends(get_api_key)):
item_dict = item.dict()
item_dict["id"] = len(items_db) + 1
items_db.append(item_dict)
return item_dict
@app.get("/items/", response_model=List[ItemResponse])
async def list_items(skip: int = 0, limit: int = 10):
return items_db[skip : skip + limit]
@app.get("/items/{item_id}", response_model=ItemResponse)
async def get_item(item_id: int):
if item_id > len(items_db) or item_id < 1:
raise HTTPException(status_code=404, detail="Item not found")
return items_db[item_id - 1]
4. Add Configuration Section
## Configuration
### Environment Variables
- `API_KEY`: Authentication key for protected endpoints
- `DATABASE_URL`: Connection string for database
- `LOG_LEVEL`: Logging level (DEBUG, INFO, WARNING, ERROR)
### CORS Setup
```python
from fastapi.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
### 5. Include Common Patterns
```markdown
## Common Patterns
### Background Tasks
```python
from fastapi import BackgroundTasks
def write_log(message: str):
with open("log.txt", "a") as f:
f.write(f"{message}\n")
@app.post("/send-notification/{email}")
async def send_notification(email: str, background_tasks: BackgroundTasks):
background_tasks.add_task(write_log, f"Notification sent to {email}")
return {"message": "Notification sent"}
Error Handling
from fastapi import Request
from fastapi.responses import JSONResponse
@app.exception_handler(ValueError)
async def value_error_handler(request: Request, exc: ValueError):
return JSONResponse(
status_code=400,
content={"message": str(exc)},
)
### 6. Add Troubleshooting
```markdown
## Troubleshooting
### Port Already in Use
```bash
# Change the port
uvicorn main:app --port 8001
Import Errors
Ensure all dependencies are installed:
pip install -r requirements.txt
Auto-reload Not Working
Use the --reload flag and ensure you're editing the correct file:
uvicorn main:app --reload --reload-dir ./app
## Skills Directory Structure
my-skill/ ├── SKILL.md # Required: Main skill documentation ├── resources/ # Optional: Additional files │ ├── templates/ │ ├── examples/ │ └── scripts/ └── README.md # Optional: Human-readable documentation
## Python SDK Usage
If there's a Python SDK for working with Agent Skills:
```python
from agentskills import Skill, SkillRegistry
# Load a skill
skill = Skill.from_file("path/to/SKILL.md")
# Access metadata
print(skill.name)
print(skill.description)
print(skill.triggers)
# Parse content
content = skill.parse_markdown()
# Registry for managing multiple skills
registry = SkillRegistry()
registry.discover("./skills") # Auto-discover skills in directory
# Find skills by trigger
matched_skills = registry.match_trigger("create fastapi endpoint")
# Load skill content
skill_content = registry.get_skill("fastapi-rest-api")
Best Practices
1. Descriptive Naming
Use kebab-case names that clearly identify the project or capability:
- ✅
postgresql-database-optimization - ✅
react-component-library - ❌
database(too generic) - ❌
myskill(not descriptive)
2. Effective Triggers
Write triggers as natural phrases users would say:
triggers:
- optimize postgres queries # ✅ Specific and natural
- improve database performance # ✅ Common phrasing
- db perf # ❌ Too abbreviated
- use this skill # ❌ Too generic
3. Real, Working Code
Always provide complete, executable examples:
# ✅ Complete example with imports
import os
from typing import Optional
def connect_db(db_url: Optional[str] = None):
url = db_url or os.getenv("DATABASE_URL")
if not url:
raise ValueError("DATABASE_URL not set")
return connect(url)
4. Environment Variables for Secrets
Never include actual secrets:
# ✅ Use environment variables
api_key = os.getenv("OPENAI_API_KEY")
# ❌ Never hardcode
api_key = "sk-1234567890abcdef"
5. Focus on Practical Usage
Prioritize common use cases over comprehensive API documentation:
- Installation and setup
- Most frequently used features
- Common patterns and workflows
- Troubleshooting actual problems
Skill Discovery
Agents discover skills through:
- Directory scanning: Looking for
SKILL.mdfiles - Trigger matching: Comparing user input to trigger phrases
- Context relevance: Using skill metadata to determine applicability
Validation
Basic validation checklist:
- YAML frontmatter is valid
- Required fields present:
name,description,triggers - Name is in kebab-case
- 6-8 trigger phrases provided
- Code examples are in correct language
- No hardcoded secrets
- Markdown renders correctly
Resources
- Specification: https://agentskills.io/specification
- Example Skills: https://github.com/anthropics/skills
- Documentation: https://agentskills.io
- Community: https://discord.gg/MKPE9g8aUy
Common Issues
Frontmatter Not Parsing
Ensure three dashes on their own lines:
---
name: my-skill
---
Triggers Not Matching
Make triggers conversational and specific to the domain:
triggers:
- "create a react component" # Better than "react"
- "setup webpack configuration" # Better than "webpack"
Skills Not Loading
Check file structure and ensure SKILL.md is at the root of the skill directory.
FAQ
What does the agentskills-specification skill do?
Specification and SDK for creating Agent Skills - a standard format for giving AI agents new capabilities through discoverable instruction bundles
How do I install agentskills-specification?
Run npx skills add https://github.com/reason-machines/ai-agent-skills --skill agentskills-specification in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/agentskills-specification/ (personal) or .claude/skills/agentskills-specification/ (project).
Which AI agents can use agentskills-specification?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is agentskills-specification safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains agentskills-specification?
It is published by reason-machines in reason-machines/ai-agent-skills. It has 192 recorded installs.
More from reason-machines/ai-agent-skills
agency-agents-zh-skill
reason-machines/ai-agent-skills
Open the skill to read its SKILL.md instructions.
agent-reach-internet-access
reason-machines/ai-agent-skills
Open the skill to read its SKILL.md instructions.
agent-sprite-forge-2d-game-assets
reason-machines/ai-agent-skills
Open the skill to read its SKILL.md instructions.
agentmemory-persistent-memory
reason-machines/ai-agent-skills
Add persistent memory to AI coding agents using agentmemory - remembers context, preferences, and decisions across sessions
awesome-agent-skills
reason-machines/ai-agent-skills
Open the skill to read its SKILL.md instructions.
oh-my-openagent-orchestration
reason-machines/ai-agent-skills
Open the skill to read its SKILL.md instructions.
Popular ai & agents skills
google-agents-cli-publish
google/agents-cli
This skill should be used when the user wants to "publish an agent", "publish my ADK agent", "register an agent with Gemini", "publish to Gemini" (formerly Gemini Enterprise), or needs guidance on the agents-cli publish gemini command. Also use when the user wants to "manage agents in Agent Registry", "list/update/delete registered agents", or "register an MCP server". Covers ADK vs A2A registration modes, programmatic and interactive usage, flag reference, auto-detection from deployment metadata, Agent Registry fleet management, and troubleshooting. Part of the agents-cli skills suite. Do NOT use for deployment (use google-agents-cli-deploy).
google-agents-cli-eval
google/agents-cli
This skill should be used when the user wants to "run an evaluation", "evaluate my agent", "evaluate my ADK agent", "write an eval dataset", "analyze eval failures", "compare eval results", "optimize agent", or needs guidance on the Gemini platform eval methodology and the Quality Flywheel. Covers eval metrics, dataset schema, LLM-as-judge scoring, and common failure causes. Applies to any agents-cli project, whatever framework the agent is written in. Do NOT use for agent API code patterns (ADK: use google-agents-cli-adk-code), deployment (use google-agents-cli-deploy), or project scaffolding (use google-agents-cli-scaffold).
skill-creator
anthropics/skills
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
codex-pet
prime-skills/runcomfy-agent-skills
Codex Pet generator on RunComfy. Build a Codex-compatible Codex Pet spritesheet.webp + pet.json from a single reference image, drop it into ${CODEXHOME:-$HOME/.codex}/pets/ / and Codex picks it up as a custom Codex Pet next to the 8 built-ins. This skill produces the exact Codex Pet atlas Codex expects (1536x1872 PNG/WebP, 8 cols x 9 rows, 192x208 cells, 9 animation states — idle, running-right, running-left, waving, jumping, failed, waiting, running, review). Calls OpenAI GPT Image 2 edit ONCE via the local RunComfy CLI as runcomfy run openai/gpt-image-2/edit to produce a canonical Codex Pet pose, then assembles all 9 animation rows programmatically with ImageMagick micro-transforms — no Codex Pro, no $imagegen, no OPENAIAPIKEY required, only RUNCOMFYTOKEN. Triggers on "codex pet", "create codex pet", "make codex pet", "hatch codex pet", "/hatch image", "desktop pet codex", "codex pets", "spritesheet.webp", or any explicit ask to build a custom pet for OpenAI Codex.
full-output-enforcement
leonxlnx/taste-skill
Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
executing-plans
obra/superpowers
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available