CiteStat/Wiki/Agent Skills — /.well-known/agent-skills/index.json

Agent Skills — /.well-known/agent-skills/index.json

AI Search & GEO

TL;DR

An Agent Skill is a SKILL.md file: a name, a one-line description and instructions an AI agent loads when a task matches. The Agent Skills Discovery RFC (Cloudflare, v0.2.0, March 2026) gives a site one place to list the skills it publishes: /.well-known/agent-skills/index.json. An agent reads the index, installs a skill, and checks the file against the sha256 digest in the index.

Explain Simply

A shop pins a list of how-to cards by the door: how to order, how to return, how to track a parcel. A robot assistant reads the list, takes the card it needs, and checks the card's seal so it knows nobody swapped it.

The index (RFC v0.2.0):

GET /.well-known/agent-skills/index.json
Content-Type: application/json

{"$schema": "https://schemas.agentskills.io/discovery/0.2.0/schema.json",
 "skills": [
  {"name": "code-review",
   "type": "skill-md",
   "description": "Review code for bugs. Use when …",
   "url": "/.well-known/agent-skills/code-review/SKILL.md",
   "digest": "sha256:<64 lowercase hex>"}
 ]}

The rules that matter: - $schema is required and names the version; a client should not process an index with a $schema it does not know. - Every entry needs all five fields. name: 1-64 characters, a-z, 0-9 and single hyphens. type: skill-md (one SKILL.md) or archive (.tar.gz or .zip with SKILL.md at the root). description: up to 1024 characters, saying what the skill does and when to use it. url: where the artifact is, resolved against the index URL. digest: SHA-256 of the artifact's bytes. - A client MUST verify the digest and MUST NOT use content that fails it — an entry without a digest is unusable. - The SKILL.md itself starts with YAML frontmatter holding name and description (agentskills.io specification).

Not a skills index: /.well-known/agent.json is the old path of an A2A agent card (now agent-card.json), and /.well-known/ai-plugin.json is the ChatGPT plugin manifest, retired in 2024. The v0.1.0 draft used /.well-known/skills/index.json with a files list and no digests; v0.2.0 clients look only at /.well-known/agent-skills/.

⚡Why It Matters

A skill is the cheapest way to teach an agent to use your product correctly: which endpoint, which parameters, what to do on an error. Without an index the agent, or its user, has to find the skill in a GitHub repo. Cloudflare's developer docs, Vercel and Redocly publish one already. A site with no product an agent can act on does not need one — that is why the check is low severity.

🔍How CiteStat Checks

CiteStat fetches /.well-known/agent-skills/index.json, and if that is missing, the v0.1.0 path /.well-known/skills/index.json. It passes on a v0.2.0 index served as application/json whose every entry has a valid name, type, description, url and sha256 digest. Entries that break those rules, an empty list, an unknown $schema or a JSON file with no skills array is a medium finding; a v0.1.0 index or the wrong media type is low. An HTML page at the path counts as no index. The scan reads the index only; it does not download the skills.

CiteStat Score Impact

One of the 9 core checks on the Agent Readiness card (score = core checks passed / 9 × 10). It does not change the headline SEO score.

Fix Difficulty

Editor: Hard | Developer: Easy | AI Agent: Easy