.agents/skills: agent skills in open source repos
An agent skill is a folder in .agents/skills/ holding a SKILL.md: a name and description in its frontmatter, then the steps for one task, such as running a single test or cutting a release. Agents read the descriptions up front and load a skill only when a task matches it.
How many repos ship agent skills?
Of the 401 repos on the leaderboard, 66 pass in full (16%), 0 pass in part (0%) and 335 fail (84%).
Why add agent skills to a repo?
AGENTS.md is loaded in full every time, so it has to stay short. Skills hold the longer task-specific steps without costing context on every task. Codex, Cursor, Devin, Gemini CLI, Kimi Code CLI, OpenHands and Pi all load .agents/skills/. Claude Code keeps its skills in .claude/skills/ instead, and Aider has none, so the check does not count for them. Cursor and Devin also load .claude/skills/, but only .agents/skills/ reaches all seven.
What counts as an agent skill?
- Full pass: at least one
.agents/skills/<name>/SKILL.mdat the repo root. - Fail: none. We check that the files exist, not what they say.
How checks become a score: methodology.
How do I add agent skills to my repo?
Create .agents/skills/<name>/SKILL.md for each workflow an agent repeats in this repo, with name and description frontmatter and the steps below. Point to the skills from AGENTS.md so agents know they exist.
Which AI agents load .agents/skills?
- Pi5% of its score
- Kimi Code CLI5% of its score
- Codex5% of its score
- Devin5% of its score
- Cursor5% of its score
- Gemini CLI4% of its score
- OpenHands4% of its score
Pass rate by language
- Clojure2 of 5 (40%)
- TypeScript25 of 82 (30%)
- Ruby3 of 10 (30%)
- Dart2 of 7 (29%)
- PHP3 of 12 (25%)
- Rust9 of 45 (20%)
- JavaScript3 of 15 (20%)
- Python10 of 57 (18%)
- Zig1 of 6 (17%)
- Kotlin1 of 12 (8%)
- Go3 of 40 (8%)
- C++1 of 21 (5%)
- Java1 of 28 (4%)
- C0 of 10 (0%)
- Swift0 of 10 (0%)
- C#0 of 8 (0%)
- Elixir0 of 7 (0%)
- Haskell0 of 7 (0%)
- Scala0 of 6 (0%)
Top-scoring repos that pass
- Rust · 6.8k ★
- Ruby · 48k ★
- pingcap/tidb89.6Go · 40.7k ★
- PostHog/posthog88.0Python · 40.4k ★
- vercel/next.js86.9JavaScript · 143.2k ★
- getsentry/sentry86.9Python · 45.6k ★
- astral-sh/ruff86.3Rust · 50.3k ★
- apache/airflow86.3Python · 47.3k ★
- pnpm/pnpm86.3Rust · 36.9k ★
- nrwl/nx86.3TypeScript · 29.4k ★
- rollup/rollup86.0JavaScript · 26.3k ★
- pytorch/pytorch84.6Python · 105k ★
Popular repos that fail it
- react/react64.1JavaScript · 251.7k ★
- TypeScript · 220.9k ★
- TypeScript · 194.8k ★
- ollama/ollama76.7Go · 184.6k ★
- Python · 168.1k ★
- Python · 165.1k ★
- Python · 156.6k ★
- TypeScript · 153.2k ★