For most of the AI-coding era, every agent had its own customization format: Claude Code had skills, Cursor had .mdc rules, Copilot had copilot-instructions.md, ChatGPT had custom instructions. Teaching your workflow to two agents meant maintaining two files that drifted apart.
That's largely over. The Agent Skills specification is an open standard, and the list of agents implementing it now includes Claude Code, GitHub Copilot, Codex CLI, and Gemini CLI — with GitHub's 2026 rollout — across the Copilot cloud agent, code review, Copilot CLI, the Copilot app, and agent mode in VS Code and JetBrains IDEs — being the biggest single adoption to date.
What the standard actually specifies
A skill is a directory containing:
SKILL.md— required. YAML frontmatter plus Markdown instructions.- Any supporting files — optional. Scripts, templates, reference docs, examples.
The frontmatter has two required fields and one optional:
---
name: commit-hygiene # required: lowercase, hyphenated, matches the directory
description: Commit message and branch naming rules. Use when committing,
amending, or writing PR descriptions. # required: what + WHEN
license: MIT # optional
---
Everything below the frontmatter is plain Markdown the agent follows when the skill loads. The loading model is shared across implementations: the agent scans descriptions, and when one matches the current task, the whole skill — instructions and supporting files — enters the agent's context.
Who reads what
| Agent | Project path | Personal path |
|---|---|---|
| Claude Code | .claude/skills/ |
~/.claude/skills/ |
| GitHub Copilot | .github/skills/, .claude/skills/, .agents/skills/ |
~/.copilot/skills/, ~/.agents/skills/ |
| Codex CLI | — | ~/.codex/skills/ |
| Gemini CLI | — | ~/.gemini/skills/ |
Two things stand out. First, Copilot reads Claude Code's directory — cross-agent compatibility isn't theoretical, it's shipping. Second, .agents/skills and ~/.agents/skills are emerging as the vendor-neutral home for teams that don't want to name a directory after one vendor.
Cursor and Windsurf still use their own rule formats (.cursor/rules/*.mdc, .windsurf/rules/*.md), but the content model is close enough that a well-written skill converts mechanically — which is what SkillDraft's per-platform output does.
Skills now have a distribution format too
On 6 August 2026 a second standard shipped on top of this one: Agent Plugins 1.0, which packages a skills/ directory and an mcp.json into a single installable folder with a plugin.json manifest. Amazon, Anysphere, Microsoft, OpenAI, Vercel and Google are core maintainers.
It does not change how you write a SKILL.md. It changes how you ship one — and because a plugin can carry an MCP server alongside the instructions, it changes what you're accepting when you install someone else's.
Why an open standard matters here
Skills become infrastructure, not vendor config. A .agents/skills directory in your repo is documentation that executes — any compliant agent, present or future, can use it. Teams switching agents (or running several) stop paying a migration tax.
Ecosystems compound. Public skill collections now exist on every side of the vendor line: anthropics/skills, github/awesome-copilot, microsoft/skills, and community galleries like SkillDraft's. A skill published once is installable everywhere — GitHub's gh skill command even records provenance (source repo, ref, tree SHA) when it installs one.
Security scrutiny concentrates. Skills are instructions your agent will follow with your permissions — a malicious skill is a prompt injection with a delivery mechanism. A single standard means scanners and reviews work across every agent at once. It's why SkillDraft security-scans gallery skills rather than treating skill files as inert text.
Writing to the portable subset
If you want one file to serve every agent:
- Standard frontmatter only.
name,description,license. Vendor-specific keys break portability. - Description carries the routing. Every implementation triggers on description matching. Front-load the exact phrases a user would type.
- No agent-specific runtime features. Sub-agent orchestration (Claude Code) and slash-invocation syntax (Copilot) don't translate. Instructions should be executable by "an agent that can read files and follow rules."
- Declare environment assumptions. Shell access, network, installed tools — agents differ. State what the skill needs and what to do without it.
Or generate the portable version directly: SkillDraft's Universal target produces a skill constrained to exactly this subset, scored for quality and scanned for injection patterns. For agent-specific details, see the Copilot guide and the Claude Code / Copilot sharing guide.