# Documentation reachable

> Documentation reachable: An agent needs documentation to complete an integration on its own. The fix: publish machine-readable documentation.

- Source: /checks/docs
- Site: AgenticWebScore
- Language: English

---
An agent needs documentation to complete an integration on its own.

| Property | Value |
| --- | --- |
| Check id | `docs` |
| Dimension | Protocol Discovery (25%) |
| Tier | Recommended — pool 20 pts |
| Weight inside tier | 1 |
| Impact | Medium |
| Maturity | Adopted — A ratified standard with real deployment. |
| Conditional | No |
| Publishing skill | `documentation` |
| Standards | — |

## What is measured

The scanner fetches the homepage and looks for public documentation it can reach without credentials: a service-doc link relation in a Link header, the HTML or the api-catalog, or an anchor whose path has a whole segment naming a documentation section, such as /docs, /developers, /reference or /guides. It requests the first homepage pointers, service-doc first, up to a published cap, and also reads the standard documentation paths in the fixed probe list. It reads an api-catalog pointer without requesting it, so that pointer counts only when the scan requested its path for another reason. It passes when a pointer or a standard path returns 200 with readable HTML or markdown integration content. It partially passes when an advertised pointer that was requested 404s, redirects to sign-in, or serves only a client-side JavaScript shell. A requested pointer that gives no response is not measured and earns no partial credit. It fails when nothing readable was found, and the detail says how many advertised pointers the scan requested.

## 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 /docs /documentation /developers; do curl -sS -L -o /dev/null -w "%{http_code} %{content_type} %{url_effective}\n" "$DOMAIN$p"; done
```

## The fix

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

```html
<!-- Homepage <head>: tell agents where the public docs are -->
<link rel="service-doc" href="/docs/" type="text/html">

<!-- Homepage body: a real link, so crawlers and users both find it -->
<a href="/docs/">Documentation and API reference</a>
```

> Docs must return 200 for an anonymous request; the same relation can be sent as a Link: </docs/>; rel="service-doc" response header for agents that never parse HTML.

## 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 | — |
