Skip to content

How Anthropic Skills’s scores are calculated

The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.

verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10

PA Score24/100

Agent-ready 53.6 × 0.30 = 16.08

API quality 12.0 × 0.20 = 2.40

Openness 8.6 × 0.20 = 1.72

Built-in AI 13.7 × 0.15 = 2.05

Automation 12.0 × 0.15 = 1.80

(16.08 + 2.40 + 1.72 + 2.05 + 1.80) ÷ (0.30 + 0.20 + 0.20 + 0.15 + 0.15) = 24.05 ÷ 1.00 = 24.1

Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.

Agent-ready53.6/100×0.30 of the PA blend

Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.

Point an agent at llms.txt or agent-oriented docsweight 2

2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max

  • [probe] https://code.claude.com/llms.txtPROBE llms.txt: HTTP 200 at https://code.claude.com/llms.txt # Claude Code Docs > Official documentation for Claude Code, Anthropic's agentic coding tool available in the terminal,
  • [probe] https://code.claude.com/docs/en/skills.mdPROBE docs-md: HTTP 200 at https://code.claude.com/docs/en/skills.md > ## Documentation Index > Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt > Use this f
  • [claimed-docs] https://code.claude.com/docs/en/skills.mdClaude Code skills follow the [Agent Skills](https://agentskills.io) open standard, which works across multiple AI tools.

Run the product headlessly / in CI for automationweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou specify Skills in the `container` parameter with a `skill_id`, `type`, and optional `version`, and they run in the code execution environment.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdSkills are specified using the `container` parameter in the Messages API. You can include up to 20 Skills for each request.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdUpload and manage through the [Skills API](https://platform.claude.com/docs/en/api/skills/create)
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou can include up to 20 Skills for each request.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdThis guide shows you how to use both pre-built and custom Skills with the Claude API.

Plug MCP servers into this product so it can use their toolsweight 3

3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max

  • [claimed-docs] https://code.claude.com/docs/en/plugins.mdCreate custom plugins to extend Claude Code with skills, agents, hooks, and MCP servers.
  • [claimed-docs] https://code.claude.com/docs/en/plugins.mdPlugins (self-contained directories with skills, agents, hooks, or a `.claude-plugin/plugin.json` manifest) | `/plugin-name:hello` | Sharing with teammates, distributing to community, versioned releases, reusable across projects
  • [claimed-docs] https://code.claude.com/docs/en/plugins.mdPlugins let you extend Claude Code with custom functionality that can be shared across projects and teams. This guide covers creating your own plugins with skills, agents, hooks, and MCP servers.
  • [claimed-docs] https://code.claude.com/docs/en/plugins.mdPlugins let you extend Claude Code with custom functionality that can be shared across projects and teams.
  • [community] https://hn.algolia.com/api/v1/items/45619537A skill is a markdown & yaml file on your filesystem... but skills don't cover a lot of the functionality that MCP offers.
  • [community] https://hn.algolia.com/api/v1/items/46871173If you can write a bash or python script, or an API or MCP to do what you want, then write it and include it in the skill. Keep top-level context (claude.md) as 'information about information' and put specifics in skills.

Connect an agent via an official MCP serverweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Use an official CLIweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://code.claude.com/docs/en/skillsClaude uses skills when relevant, or you can invoke one directly with `/skill-name`.
  • [claimed-docs] https://code.claude.com/docs/en/plugin-marketplaces.md/plugin marketplace add ./my-marketplace /plugin install quality-review-plugin@my-plugins
  • [claimed-docs] https://code.claude.com/docs/en/plugins.mdadd a skill, and test it locally using the \`--plugin-dir\` flag
  • [claimed-docs] https://raw.githubusercontent.com/anthropics/skills/HEAD/skills/skill-creator/SKILL.mdA skill for creating new skills and iteratively improving them.
  • [probe] https://code.claude.com/llms.txtPROBE llms.txt: HTTP 200 at https://code.claude.com/llms.txt # Claude Code Docs > Official documentation for Claude Code, Anthropic's agentic coding tool available in the terminal,

Drive the product through a documented public APIweight 3

3 (weight) × 8 (quality) × 1.0 (full) = 24.0 of 30 max

  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou specify Skills in the `container` parameter with a `skill_id`, `type`, and optional `version`, and they run in the code execution environment.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdSkills are specified using the `container` parameter in the Messages API. You can include up to 20 Skills for each request.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdUpload and manage through the [Skills API](https://platform.claude.com/docs/en/api/skills/create)
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou can include up to 20 Skills for each request.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdUpload and manage through the [Skills API]
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdThis guide shows you how to use both pre-built and custom Skills with the Claude API.

Issue scoped/least-privilege API credentials for an agentweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Build against official SDKsweight 2

2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max

  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou specify Skills in the `container` parameter with a `skill_id`, `type`, and optional `version`, and they run in the code execution environment.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdSkills are specified using the `container` parameter in the Messages API. You can include up to 20 Skills for each request.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdUpload and manage through the [Skills API](https://platform.claude.com/docs/en/api/skills/create)
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou can include up to 20 Skills for each request.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdUpload and manage through the [Skills API]
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdThis guide shows you how to use both pre-built and custom Skills with the Claude API.

Subscribe to events via webhooksweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Agent-ready = 75.0 ÷ 140 × 100 = 53.6

API quality12.0/100×0.20 of the PA blend

The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.

Explore an interactive API reference with runnable examplesweight 2

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Download a machine-readable API spec (OpenAPI or equivalent)weight 2

2 (weight) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max

  • [claimed-docs] https://agentskills.io/specification.mdThe required `description` field: Must be 1-1024 characters, Should describe both what the skill does and when to use it
  • [claimed-docs] https://agentskills.io/specification.mdA skill is a directory containing, at minimum, a `SKILL.md` file
  • [claimed-docs] https://agentskills.io/specification.mdThe `SKILL.md` file must contain YAML frontmatter followed by Markdown content.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdUpload and manage through the [Skills API](https://platform.claude.com/docs/en/api/skills/create)
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdThis guide shows you how to use both pre-built and custom Skills with the Claude API.

Test against a sandbox environment without touching production dataweight 1

1 (weight) × 4 (quality) × 0.6 (partial) = 2.4 of 10 max

  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou specify Skills in the `container` parameter with a `skill_id`, `type`, and optional `version`, and they run in the code execution environment.
  • [claimed-docs] https://code.claude.com/docs/en/plugins.mdadd a skill, and test it locally using the \`--plugin-dir\` flag
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdSkills are specified using the `container` parameter in the Messages API. You can include up to 20 Skills for each request.

Rely on versioned APIs with a documented deprecation policyweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

API quality = 6.0 ÷ 50 × 100 = 12.0

Openness8.6/100×0.20 of the PA blend

Can you leave, inspect, or self-host — data export, open source, portability.

Do everything through the API that I can do in the UIweight 2

2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max

  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou specify Skills in the `container` parameter with a `skill_id`, `type`, and optional `version`, and they run in the code execution environment.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdSkills are specified using the `container` parameter in the Messages API. You can include up to 20 Skills for each request.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdUpload and manage through the [Skills API](https://platform.claude.com/docs/en/api/skills/create)
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou can include up to 20 Skills for each request.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdUpload and manage through the [Skills API]
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdAvailability | Available to all users | Private to your workspace
  • [claimed-docs] https://code.claude.com/docs/en/plugin-marketplaces.mdA **plugin marketplace** is a catalog that lets you distribute plugins to others. Marketplaces provide centralized discovery, version tracking, automatic updates
  • [claimed-docs] https://code.claude.com/docs/en/plugin-marketplaces.md/plugin marketplace add ./my-marketplace /plugin install quality-review-plugin@my-plugins

Export all of my data in open formats and leaveweight 3

3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Read the product's source under an open licenseweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Self-host the core productweight 3

n/a — not applicable to this product: excluded from numerator and denominator

no evidence cited — the verdict rests on absence of evidence, re-checked on refresh

Openness = 6.0 ÷ 70 × 100 = 8.6

Built-in AI13.7/100×0.15 of the PA blend

Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.

Get AI-generated insights and suggestions from my data inside the productweight 2

2 (weight) × 4 (quality) × 0.6 (partial) = 4.8 of 20 max

  • [claimed-docs] https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skillsClaude already knows a lot about understanding PDFs, but is limited in its ability to manipulate them directly (e.g. to fill out a form). This PDF skill lets us give Claude these new abilities.
  • [claimed-docs] https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skillsSkills extend Claude’s capabilities by packaging your expertise into composable resources for Claude, transforming general-purpose agents into specialized agents that fit your needs.
  • [github] https://github.com/anthropics/skillswhether that's creating documents with your company's brand guidelines, analyzing data using your organization's specific workflows, or automating personal tasks.
  • [github] https://github.com/anthropics/skillswhether that's creating documents with your company's brand guidelines, analyzing data using your organization's specific workflows, or automating personal tasks
  • [community] https://hn.algolia.com/api/v1/items/46871173Vercel found: In 56% of eval cases, the skill was never invoked. The agent had access to the documentation but didn't use it. Adding the skill produced no improvement over baseline.
  • [community] https://hn.algolia.com/api/v1/items/46871173Same, I have a bunch of skills defined with proper YAML headers and semantic triggers... it's hit or miss if it picks up on the skill -- usually I have to say there is a skill with this go and use it.

Set up automations that run autonomously in the backgroundweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [claimed-docs] https://code.claude.com/docs/en/skillsCreate a `SKILL.md` file with instructions, and Claude adds it to its toolkit.
  • [claimed-docs] https://code.claude.com/docs/en/skillsClaude uses skills when relevant, or you can invoke one directly with `/skill-name`.
  • [claimed-docs] https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skillsIf Claude thinks the skill is relevant to the current task, it will load the skill by reading its full `SKILL.md` into context.

Delegate tasks to a built-in AI assistant inside the productweight 3

3 (weight) × 5 (quality) × 0.3 (disputed) = 4.5 of 30 max

  • [claimed-docs] https://code.claude.com/docs/en/skillsClaude uses skills when relevant, or you can invoke one directly with `/skill-name`.
  • [claimed-docs] https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skillsSkills extend Claude’s capabilities by packaging your expertise into composable resources for Claude, transforming general-purpose agents into specialized agents that fit your needs.
  • [community] https://hn.algolia.com/api/v1/items/46871173Vercel found: In 56% of eval cases, the skill was never invoked. The agent had access to the documentation but didn't use it. Adding the skill produced no improvement over baseline.
  • [community] https://hn.algolia.com/api/v1/items/46871173I have an incredibly hard time getting them to use Skills at all, even when asked. I saw someone's analysis finding their agents were more accurate when just dumping the skill context directly into AGENTS.md.
  • [community] https://hn.algolia.com/api/v1/items/46871173Same, I have a bunch of skills defined with proper YAML headers and semantic triggers... it's hit or miss if it picks up on the skill -- usually I have to say there is a skill with this go and use it.

Operate the product with natural-language commandsweight 2

2 (weight) × 5 (quality) × 0.3 (disputed) = 3.0 of 20 max

  • [claimed-docs] https://code.claude.com/docs/en/skillsClaude uses skills when relevant, or you can invoke one directly with `/skill-name`.
  • [claimed-docs] https://code.claude.com/docs/en/skillsSkills add optional features: a directory for supporting files, frontmatter to [control whether you or Claude invokes them]... and the ability for Claude to load them automatically when relevant.
  • [claimed-docs] https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skillsIf Claude thinks the skill is relevant to the current task, it will load the skill by reading its full `SKILL.md` into context.
  • [claimed-docs] https://code.claude.com/docs/en/skillsfrontmatter to [control whether you or Claude invokes them](#control-who-invokes-a-skill)
  • [community] https://hn.algolia.com/api/v1/items/46871173Vercel found: In 56% of eval cases, the skill was never invoked. The agent had access to the documentation but didn't use it. Adding the skill produced no improvement over baseline.
  • [community] https://hn.algolia.com/api/v1/items/46871173I have an incredibly hard time getting them to use Skills at all, even when asked. I saw someone's analysis finding their agents were more accurate when just dumping the skill context directly into AGENTS.md.
  • [community] https://hn.algolia.com/api/v1/items/46871173Same, I have a bunch of skills defined with proper YAML headers and semantic triggers... it's hit or miss if it picks up on the skill -- usually I have to say there is a skill with this go and use it.

Built-in AI = 12.3 ÷ 90 × 100 = 13.7

Automation12.0/100×0.15 of the PA blend

Depth of automation primitives — rules, scheduling, bulk operations, webhooks.

Perform bulk operations across many items at onceweight 2

2 (weight) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max

  • [claimed-docs] https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skillsClaude already knows a lot about understanding PDFs, but is limited in its ability to manipulate them directly (e.g. to fill out a form). This PDF skill lets us give Claude these new abilities.
  • [claimed-docs] https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skillsskills can bundle additional files within the skill directory and reference them by name from `SKILL.md`.
  • [claimed-docs] https://agentskills.io/specification.mdscripts/ # Optional: executable code references/ # Optional: documentation assets/ # Optional: templates, resources
  • [community] https://hn.algolia.com/api/v1/items/46871173If you can write a bash or python script, or an API or MCP to do what you want, then write it and include it in the skill. Keep top-level context (claude.md) as 'information about information' and put specifics in skills.

Define rules that trigger actions automatically on eventsweight 3

3 (weight) × 4 (quality) × 0.3 (disputed) = 3.6 of 30 max

  • [claimed-docs] https://code.claude.com/docs/en/skillsClaude uses skills when relevant, or you can invoke one directly with `/skill-name`.
  • [claimed-docs] https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skillsIf Claude thinks the skill is relevant to the current task, it will load the skill by reading its full `SKILL.md` into context.
  • [community] https://hn.algolia.com/api/v1/items/46871173Vercel found: In 56% of eval cases, the skill was never invoked. The agent had access to the documentation but didn't use it. Adding the skill produced no improvement over baseline.
  • [community] https://hn.algolia.com/api/v1/items/46871173I have an incredibly hard time getting them to use Skills at all, even when asked. I saw someone's analysis finding their agents were more accurate when just dumping the skill context directly into AGENTS.md.
  • [community] https://hn.algolia.com/api/v1/items/46871173Same, I have a bunch of skills defined with proper YAML headers and semantic triggers... it's hit or miss if it picks up on the skill -- usually I have to say there is a skill with this go and use it.

Schedule recurring jobs or workflowsweight 2

2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max

  • [claimed-docs] https://code.claude.com/docs/en/skillsClaude uses skills when relevant, or you can invoke one directly with `/skill-name`.
  • [claimed-docs] https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skillsIf Claude thinks the skill is relevant to the current task, it will load the skill by reading its full `SKILL.md` into context.
  • [claimed-docs] https://code.claude.com/docs/en/skills.md`/run` and `/verify` work without setup. They infer the launch from your project type (CLI, server, TUI, browser-driven) and from what's in your README, `package.json`, or `Makefile`.

Version, review, and roll back my automationsweight 1

1 (weight) × 4 (quality) × 0.6 (partial) = 2.4 of 10 max

  • [claimed-docs] https://code.claude.com/docs/en/plugin-marketplaces.mdA **plugin marketplace** is a catalog that lets you distribute plugins to others. Marketplaces provide centralized discovery, version tracking, automatic updates
  • [claimed-docs] https://code.claude.com/docs/en/plugin-marketplaces.mdMarketplaces provide centralized discovery, version tracking, automatic updates, and support for multiple source types, including git repositories and local paths.
  • [claimed-docs] https://platform.claude.com/docs/en/build-with-claude/skills-guide.mdYou specify Skills in the `container` parameter with a `skill_id`, `type`, and optional `version`, and they run in the code execution environment.
  • [claimed-docs] https://code.claude.com/docs/en/plugins.mdPlugins (self-contained directories with skills, agents, hooks, or a `.claude-plugin/plugin.json` manifest) | `/plugin-name:hello` | Sharing with teammates, distributing to community, versioned releases, reusable across projects

Automation = 9.6 ÷ 80 × 100 = 12.0