# ARD resource discovery manifest

> ARD resource discovery manifest: Cisco/Outshift's Agentic Resource Discovery specification; Lighthouse audits it too. The fix: publish an ARD resource manifest.

- Source: /checks/ard-manifest
- Site: AgenticWebScore
- Language: English

---
Cisco/Outshift's Agentic Resource Discovery specification; Lighthouse audits it too.

| Property | Value |
| --- | --- |
| Check id | `ard-manifest` |
| Dimension | Protocol Discovery (25%) |
| Tier | Emerging — pool 5 pts |
| Weight inside tier | 1 |
| Impact | Low |
| Maturity | Experimental — An early convention that may still change shape. |
| Conditional | No |
| Publishing skill | `ard` |
| Standards | ard-spec |

## What the scanner requests

- `/.well-known/ard.json`
- `/.well-known/agent-resources.json`
- `/.well-known/ai-catalog.json`
- `/ard.json`

## What is measured

The scanner GETs /.well-known/ard.json, /.well-known/agent-resources.json, /.well-known/ai-catalog.json and /ard.json and parses the first 200 response. It passes when the document is an ARD manifest: an entries array whose items each carry the ARD terms identifier, displayName and type, plus exactly one of url or data. It partially passes when entries exist but lack identifier or type, or carry both url and data, which the specification forbids.

## Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

```bash
DOMAIN=https://your-domain.example
for p in /.well-known/ard.json /.well-known/agent-resources.json /.well-known/ai-catalog.json /ard.json; do printf '%s -> ' "$p"; curl -sS "$DOMAIN$p" | jq -c '[.entries[]? | {identifier,displayName,type,url}]' 2>/dev/null || echo "missing or not JSON"; done
```

## The fix

This is the artifact to ship. It is the complete change, not a description of one.

```json
{
  "entries": [
    {
      "identifier": "urn:air:your-domain.example:server:support",
      "displayName": "Example Support MCP Server",
      "type": "application/mcp-server-card+json",
      "url": "https://your-domain.example/.well-known/mcp/server-card.json",
      "description": "Tools for order status and returns.",
      "representativeQueries": ["where is order 12345"]
    },
    {
      "identifier": "urn:air:your-domain.example:agent:support",
      "displayName": "Example Support Agent",
      "type": "application/a2a-agent-card+json",
      "url": "https://your-domain.example/.well-known/agent-card.json",
      "description": "Agent-to-agent endpoint for support conversations."
    }
  ]
}
```

> ARD v0.91 defines the manifest at /.well-known/ard.json and honours a rel="ard" link or HTML <link rel="ard">, while /.well-known/ai-catalog.json is the predecessor path that conformant consumers may skip, so serve ard.json as canonical.

## Standards referenced

- `ard-spec`

## Related checks

| Check | Tier | Impact | Same skill |
| --- | --- | --- | --- |
| `mcp-card` — MCP server card | Essential | High | — |
| `openapi` — OpenAPI definition | Essential | High | — |
| `oauth-discovery` — OAuth discovery documents | Essential | High | — |
| `api-catalog` — API catalog | Recommended | Medium | — |
| `agent-skills` — Agent Skills declaration | Recommended | Medium | — |
| `a2a-card` — A2A agent card | Recommended | Medium | — |
| `a2a-signed` — Cryptographically signed agent card | Emerging | Medium | — |
| `auth-md` — /auth.md agent authentication guide | Emerging | Medium | — |
