The SKILL.md Wild West: A Deep-Dive Comparison Across Nine Coding Agents

In October 2025, Claude Code shipped SKILL.md — a portable, Markdown-based instruction file that teaches any AI agent how to perform a named task on demand. Within two months, every major coding agent had adopted the format.

The standard is shared. The implementations are not. This is a deep-dive comparison analysis across nine agents — covering how each interprets activation mechanics, directory layout, frontmatter fields, script execution, tooling, and cross-agent portability. Use the differentiator cards below for a quick read, or scroll into the section tables for the full picture.

🤖 9 Agents 🔬 8 Comparison Sections 📊 45+ Dimensions 🔖 agentskills.io Open Standard

Reading guide The TL;DR Key Differentiators & Unique Capabilities section at the top gives you a per-agent summary card — start there for a quick read. The deep-dive comparison tables (§1–§8) that follow break down every dimension in detail.

TL:DR Key Differentiators & Unique Capabilities
Claude Code
  • Origin author of the standard (Oct 2025)
  • Deepest native progressive disclosure in any LLM agent
  • Largest curated partner skill catalog (Atlassian, Figma, Stripe…)
  • skill-creator meta-skill is the reference implementation
  • No built-in skill installer; relies on community tools
Kiro (AWS)
  • Only agent with first-class GUI skill management (panel + import wizard)
  • Three-layer contextual system: Skills + Steering + Powers
  • allowed-tools field unique to Kiro (experimental in spec)
  • Org-level skills support: workspace vs global scopes
  • Good spec compliance; compatibility field actively used
GitHub Copilot
  • Only agent with enterprise org-level skills scope (coming)
  • Richest broader customization ecosystem (agents, prompts, hooks, instructions)
  • Works across coding agent, CLI, IDE — single skill, three surfaces
  • Explicit .claude/skills compatibility for shared repos
  • awesome-copilot: largest community-curated collection
VS Code Copilot
  • Skills delivered via VS Code 1.108 (Dec 2025)
  • /skills picker command in chat
  • Tight IDE integration (diff review, agent mode)
  • Only reads .github/skills/; no .agents/ compat
OpenAI Codex CLI
  • Only agent with a built-in $skill-installer (install by name)
  • Only agent with an official evals framework for skills
  • openai.yaml extension: UI metadata, MCP tool deps, implicit invocation policy
  • Auto-detects skill file changes (no restart needed)
  • Symlink support; walks up directory tree
  • ChatGPT Code Interpreter also has skills (/home/oai/skills)
  • Tightest sandbox (avoids ~/.ssh, structured network approvals)
Cursor
  • Skills + Hooks integration = security/observability pipeline enforcement
  • Subagent orchestration in same release (v2.4)
  • Replaced .cursorrules with SKILL.md in v2.3.35+ (stable rollout)
  • Nightly channel first (experimental), then stable channel
  • Active community skill creators (LobeHub marketplace)
Goose (Block)
  • Most flexible directory reading (scans .goose, .agents, .claude, ~/.config/agents all at once)
  • Only open-source agent with a large internal marketplace (Block's 100+ skills)
  • Model-agnostic: any LLM provider
  • Skills + Recipes = complementary system (Recipes = explicit; Skills = contextual)
  • Implementation discussion visible on GitHub (#5761)
Amp (Sourcegraph)
  • Early adopter (Dec 10 — before open standard was announced Dec 18)
  • Focuses on context efficiency ("lazy-load only when relevant")
  • Reads both .agents/skills and .claude/skills for compatibility
  • Subagent thread parallelization unique capability
  • No official catalog; relies on external skill repos
OpenCode
  • Most portable directory strategy (reads .opencode, .claude, .agents all)
  • Walks up to git worktree root when scanning (like Codex)
  • Model-agnostic; LLM-provider neutral
  • Skills exposed via a skill tool (not just system prompt injection)
  • Minimal opinionated defaults; spec-compliant
§1 · Identity & Lineage
Dimension Claude Code
Anthropic
Kiro
AWS / Amazon
GitHub Copilot
Microsoft
VS Code Copilot
Microsoft
OpenAI Codex CLI
OpenAI
Cursor
Cursor Inc.
Goose
Block
Amp
Sourcegraph
OpenCode
sst.dev
Skills introduced Oct 16, 2025
First to ship SKILL.md
Early 2026 Dec 18, 2025 Dec 2025
VS Code 1.108 (Insiders)
Dec 12, 2025
As experimental; formal: Dec 2025
Jan 23, 2026
Cursor 2.4 stable
Dec 2025 Dec 10, 2025 Dec 2025
Standard basis Origin author
Created the standard; donated to agentskills.io Dec 18, 2025
agentskills.io
Full compliance + Kiro-only extensions
agentskills.io agentskills.io Structurally identical
Uses spec dir layout but adds openai.yaml extension; formally joined Dec 2025
agentskills.io agentskills.io agentskills.io
Early adopter (Dec 10 announcement)
agentskills.io
Open source? CLI: Yes (GitHub)
Model is closed
Closed Closed product
Spec is open; awesome-copilot is open
VS Code is open source
Copilot extension is closed
CLI: Yes (GitHub)
61.7k⭐ openai/codex
Closed Yes
block/goose — 24.4k⭐
Closed Yes
sst-dev/opencode
Interface type CLI IDE IDE CLI Cloud agent IDE extension CLI IDE CLI Desktop app CLI IDE (VS Code, JetBrains) CLI
Underlying model(s) Claude (Sonnet, Opus, Haiku) Claude (default); others TBD GPT-4o, Claude, Gemini (plan-dependent) GPT-4o, Claude, Gemini GPT-5.2-Codex / GPT-4o Claude, GPT-4o, Gemini (configurable) Any LLM (model-agnostic) Claude (primarily) Any LLM (model-agnostic)
§2 · Directory Layout & Skill Locations
Dimension Claude Code Kiro GitHub Copilot VS Code Copilot OpenAI Codex CLI Cursor Goose Amp OpenCode
Project-level skill dir .claude/skills/ .kiro/skills/ .github/skills/
.claude/skills/
accepts both (compatibility)
.github/skills/ .agents/skills/
.codex/skills/
walks up to git root
.cursor/skills/ .goose/skills/
.agents/skills/
.agents/skills/
.claude/skills/
compatibility fallback
.opencode/skills/
.claude/skills/
.agents/skills/
User/global skill dir ~/.claude/skills/ ~/.kiro/skills/ ~/.copilot/skills/
~/.claude/skills/
~/.copilot/skills/ ~/.codex/skills/ ~/.cursor/skills/ ~/.config/agents/skills/
~/.config/goose/skills/
~/.claude/skills/
~/.config/agents/skills/
~/.claude/skills/
~/.config/opencode/skills/
~/.claude/skills/
~/.agents/skills/
Org / Enterprise scope Not yet Not yet Coming soon
Org-level planned; Business/Enterprise plan
Project + personal only Not available Not available Not available Not available Not available
Built-in system skills None
Relies on anthropics/skills repo
None bundled None bundled
awesome-copilot community
None bundled Yes
$skill-creator & $plan in ~/.codex/skills/.system/
None None
Skills via extension
None None
Directory scan strategy Flat scan of skills dir Flat scan of .kiro/skills/ Flat scan; picks up .claude/skills for compat Flat scan Walks up from CWD to git root scanning .agents/skills at each level Flat scan Scans multiple locations including .goose/, .agents/, ~/.config/agents/ Flat scan of .agents/skills and compat dirs Walks up to git worktree root; scans .opencode/, .claude/, .agents/ at each level
Symlink support Not documented Not documented Not documented Not documented Yes
Follows symlink targets when scanning
Not documented Not documented Not documented Not documented
§3 · SKILL.md Frontmatter Field Support
Field Claude Code Kiro GitHub Copilot VS Code Copilot OpenAI Codex CLI Cursor Goose Amp OpenCode
⬛ Required Fields (agentskills.io spec)
name (required)
Must match folder name
description (required)
Drives auto-activation

max 1024 chars

Critical — drives implicit trigger
⬛ Optional Standard Fields (agentskills.io spec)
license ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported
compatibility ✔ Supported
Rarely used in practice
✔ Active use
max 500 chars; recommended for Kiro installs
✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported
metadata ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported ✔ Supported
allowed-tools Ignored / not used Experimental
Kiro-only extension; e.g. Bash(git:*)
Ignored Ignored Uses openai.yaml instead Ignored Ignored Ignored Ignored
⬛ Agent-Specific Proprietary Extensions
agents/openai.yaml N/A N/A N/A N/A ✔ Codex-specific
display_name, short_description, icon, brand_color, default_prompt, allow_implicit_invocation, tool dependencies (MCP)
N/A N/A N/A N/A
Kiro allowed-tools field N/A ✔ Kiro-specific
Space-delimited tool whitelist; experimental per spec
N/A N/A N/A N/A N/A N/A N/A
Cursor hooks in skills N/A N/A N/A N/A N/A ✔ Cursor-specific
Skills can include hooks (scripts triggered at agent loop checkpoints)
N/A N/A N/A
Unknown field handling Ignored (passed to LLM) Ignored per spec Ignored Ignored Ignored (reads SKILL.md + openai.yaml) Ignored Ignored Ignored Ignored per docs
§4 · Activation Mechanics & Progressive Disclosure
Dimension Claude Code Kiro GitHub Copilot VS Code Copilot OpenAI Codex CLI Cursor Goose Amp OpenCode
Implicit (auto) activation
Agent matches description to task at startup

Discovery at startup; auto-activates on description match

SKILL.md injected when Copilot judges it relevant

Implicit matching based on description; can be disabled via allow_implicit_invocation: false

Platform extension checks description on each request

Lazy-load — activates only when relevant
Explicit / manual invocation
Name skill in prompt

/skill-name slash command in chat

/skill-name slash command

/skill-name slash command; /skills opens picker

$skill-name in prompt (dollar-sign syntax)

/skill-name slash command

Name skill in prompt

Name skill in prompt

Name in prompt; skill appears in tool description
Invocation syntax Natural language /skill-name /skill-name /skill-name or /skills picker $skill-name /skill-name Natural language Natural language Natural language / tool invocation
Progressive disclosure — Layer 1 (metadata) name + description loaded at startup for all skills name + description loaded at startup name + description pre-loaded into context name + description pre-loaded name + description + file path + optional openai.yaml metadata name + description loaded at startup Frontmatter only loaded at start (tiny) name + description loaded lazily name + description listed in skill tool description
Progressive disclosure — Layer 2 (instructions) Full SKILL.md body loaded on activation Full SKILL.md loaded on activation Full SKILL.md injected on activation Full SKILL.md injected on activation Full SKILL.md loaded when agent decides to use skill Full SKILL.md loaded on activation Full SKILL.md loaded on demand Full SKILL.md loaded on demand Full SKILL.md loaded on demand
Progressive disclosure — Layer 3 (resources) referenced files loaded as needed scripts/references/assets loaded as needed relative path resources loaded on demand resources on demand scripts/references/assets on demand resources on demand supporting files loaded via Developer extension resources on demand resources on demand
Multi-skill simultaneous activation multiple can activate per turn ✔ but don't merge same-named skills
Skill conflict resolution (same name) Last-wins (project overrides global) Project skill wins over global Project over personal Project over personal Both appear in selector; no merging Project over global Not specified; likely last-wins Not specified Not specified
§5 · Directory Structure & Script Execution
Dimension Claude Code Kiro GitHub Copilot VS Code Copilot OpenAI Codex CLI Cursor Goose Amp OpenCode
Standard optional dirs scripts/
references/
assets/
scripts/
references/
assets/
scripts/
references/
assets/
scripts/
references/
assets/
scripts/
references/
assets/
agents/ (openai.yaml)
scripts/
references/
assets/
scripts/
references/
assets/
scripts/
references/
assets/
scripts/
references/
assets/
Script execution support Bash, Python, JS via Bash tool
Deterministic tasks recommended as scripts

Referenced scripts in skill dir can be invoked

Scripts invoked via terminal tools

Python/Bash/JS; scripts must be tested before shipping

Scripts for security, secrets, observability integrations

Via Developer extension's file + shell tools
Script language support Any (shell, Python, JS, etc.) Any (Python, Bash, etc.) Any Any Python, Bash, JS / any (execution sandbox applies) Any; Bun/JS used in hooks examples Any (via shell or extension) Any Any
Skill can reference MCP servers Indirect
Skill instructions can reference MCP tools; no formal dependency declaration
Indirect
Skills can leverage GitHub MCP server tools (e.g. list_workflow_runs)

openai.yaml dependencies.tools declares required MCP servers by URL + transport
Indirect
Skills + MCP extensions designed to compose
Indirect Indirect
Non-standard dirs allowed? Yes (agent reads all files in dir) Yes but flagged as unexpected by linters Yes Yes Yes Yes Yes Yes Yes
§6 · Skill Creation Tooling & Management
Dimension Claude Code Kiro GitHub Copilot VS Code Copilot OpenAI Codex CLI Cursor Goose Amp OpenCode
Built-in skill creator
skill-creator skill in /mnt/skills/examples
Via Kiro agent UI + import wizard Via Copilot itself + awesome-copilot template Copilot can scaffold skills
$skill-creator built-in system skill — interviews user and generates scaffold
Community cursor-skill-creator skill Community meta-skill Manual only Manual only
Skill installer / package manager No official CLI
Manual copy; community tools (skillport, skills.sh)

Kiro panel → Agent Steering & Skills → Import; supports GitHub URL or local folder
No official installer
Copy from awesome-copilot manually
Manual copy
$skill-installer built-in skill; installs curated or experimental skills by name from openai/skills
Manual copy Manual copy Manual copy Manual copy
Official skills catalog
anthropics/skills on GitHub; also partner skills (Atlassian, Figma, Stripe, Canva, Notion, Zapier)
No official catalog
Uses agentskills.io shared skills

github/awesome-copilot community collection

Same as Copilot + microsoft/skills (Azure SDKs)

openai/skills on GitHub — curated + experimental folders
No official catalog
Compatible with any agentskills.io-compliant skill
No official catalog
Block internal 100+ skill marketplace (not public)
No official catalog No official catalog
Skill validation tool skills-ref CLI (agentskills.io) skills-ref CLI skills-ref CLI skills-ref CLI
codex exec --json for eval harness; plus skills-ref
skills-ref CLI skills-ref CLI skills-ref CLI skills-ref CLI
Eval / testing framework Community evals via skill-creator skill Not documented Not documented Not documented
Official evals guide: codex exec --json returns JSONL events for deterministic checks + LLM grading; should_trigger test cases
Not documented Not documented Not documented Not documented
Skill change detection Restart required Restart required May need 5–10 min index time + IDE reload IDE reload Auto-detects
Monitors for changes; restart only if update doesn't appear
Restart required Restart required Restart required Restart required
Skill disable / enable No config
Agent Steering & Skills panel toggle
No per-skill toggle No per-skill toggle
~/.codex/config.toml: [[skills.config]] enabled = false
No toggle
Skills extension can be toggled on/off
No toggle No toggle
§7 · Cross-Agent Portability
Dimension Claude Code Kiro GitHub Copilot VS Code Copilot OpenAI Codex CLI Cursor Goose Amp OpenCode
Can consume Claude Code skills? Source
Auto-discovers .claude/skills; same SKILL.md format

Explicitly reads .claude/skills for compat

Same spec; install manually into .agents/skills or .codex/skills

Reads ~/.claude/skills by default

Reads .claude/skills automatically

Reads .claude/skills automatically
Preferred canonical dir .claude/skills/ .kiro/skills/ .github/skills/ .github/skills/ .agents/skills/ .cursor/skills/ .agents/skills/ .agents/skills/ .opencode/skills/
Best single portable dir (works most places) .agents/skills/ — supported by Amp, Goose, OpenCode, Codex CLI, and others; avoids tool-specific namespacing
Portability score (of 9) 9/9 (reads all) 9/9
Extensions ignored by others gracefully
9/9
Accepts .claude/skills compat
7/9
Only reads .github/skills; doesn't compat .agents/
8/9
openai.yaml ignored by others; SKILL.md fully portable
7/9
.cursor/ is agent-specific; manually import other-dir skills
9/9
Reads .agents/, .goose/, .claude/ — most flexible
9/9
Reads .agents/, .claude/ — cross-compatible
9/9
Reads .opencode/, .claude/, .agents/ — most flexible
ChatGPT / Code Interpreter N/A N/A N/A N/A
ChatGPT Code Interpreter has /home/oai/skills with structurally identical SKILL.md format (discovered Dec 12, 2025)
N/A N/A N/A N/A
§8 · Broader Skill Ecosystem & Agent Architecture
Dimension Claude Code Kiro GitHub Copilot VS Code Copilot OpenAI Codex CLI Cursor Goose Amp OpenCode
Parallel / complementary context systems CLAUDE.md (project memory)
System prompts
Steering (always-on context)
Powers (MCP + guidance bundles)
Custom instructions (.github/copilot-instructions.md)
Custom agents (.github/agents/*.agent.md)
Prompt files (.github/prompts/)
Hooks
Custom instructions
Prompt files
AGENTS.md
Plans (structured doc management via $plan skill)
config.toml
Rules (always-on, replaces .cursorrules)
Hooks
Subagents (v2.4)
.goosehints (general preferences)
Recipes (explicit parameterized workflows)
AGENTS.md
Memory / thread sharing
AGENTS.md
Mode configs
Skills vs rules / instructions distinction Skills = on-demand; CLAUDE.md = always-on Skills = portable on-demand; Steering = project-specific always-on Skills = on-demand procedural; Custom instructions = always-on declarative Skills = on-demand; Instructions = always-on Skills = on-demand (via description match or $invoke); AGENTS.md = always-on Skills = dynamic on-demand; Rules = always-on static Skills = on-demand contextual; .goosehints = always-on; Recipes = explicit invocation Skills = on-demand; AGENTS.md = always-on Skills = on-demand; AGENTS.md = always-on
Partner/enterprise skill integrations Atlassian, Figma, Canva, Stripe, Notion, Zapier None announced GitHub MCP server, Azure, Microsoft 365 Same as Copilot OpenAI Developer Docs MCP, Linear None announced Block internal only None announced None announced
Security / prompt injection mitigations General safe messaging; no skill-specific sandbox Skills scoped to workspace/global; tool whitelist via allowed-tools Standard Copilot safety; no skill-specific sandbox Standard VSC safety
Sandbox filesystem; restricted read-only on Linux; avoids ~/.ssh; structured network approval

Hooks can enforce deny policies (PreToolUse), security tool integrations
Extension permission model; recipes separate from skills Standard safety Standard safety
Subagents / orchestration Claude Code subagents Not documented Custom agents + handoffs; coding agent as cloud subagent Via Copilot agent mode Background agents, app-server thread API Subagents (v2.4) MCP extension orchestration Subagent parallelization (thread sharing) Via CLI orchestration
✔ Yes / Fully supported
✖ No / Not supported
◑ Partial / Limited
⚠ Experimental
★ Agent-specific extension (non-portable)
Data sourced from official docs, changelogs, GitHub repos & community analysis. March 2026.