# Service status and changelog feed

> Service status and changelog feed: An agent should be able to learn about outages and API changes in a machine-readable way.

- Source: /checks/status-page
- Site: AgenticWebScore
- Language: English

---
An agent should be able to learn about outages and API changes in a machine-readable way.

| Property | Value |
| --- | --- |
| Check id | `status-page` |
| Dimension | Protocol Discovery (25%) |
| Tier | Emerging — pool 5 pts |
| Weight inside tier | 1 |
| Impact | Low |
| Maturity | Adopted — A ratified standard with real deployment. |
| Conditional | No |
| Publishing skill | `status-changelog` |
| Standards | — |

## What the scanner requests

- `/status`
- `/changelog`
- `/releases`
- `/whats-new`

## What is measured

The scanner fetches the homepage and looks for a status and changelog feed it can poll: a link to a status page plus an Atom or RSS feed (application/atom+xml or application/rss+xml), or an equivalent JSON status endpoint. It passes when both a status document and a dated changelog feed are advertised, both were requested by the scan, both returned 200 and the feed carries a readable entry date. It partially passes when only one of the two is linked, when an advertised feed returns an error, when its newest entry is more than 180 days old, measured against the response `Date` header or its date could not be read, and when a linked status page or feed is off-origin or otherwise outside the probe set so its response was never observed — a resource that was not fetched is reported as unobserved, never as healthy.

## 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
curl -sS "$DOMAIN/" | grep -oE '<link[^>]+(atom|rss)[^>]*>|href="[^"]*(status|changelog)[^"]*"' | sort -u
```

## The fix

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

```html
<!-- Homepage <head>: advertise machine-readable status and history -->
<link rel="alternate" type="application/atom+xml" title="Service status"
      href="/status/feed.atom">
<link rel="alternate" type="application/atom+xml" title="Changelog"
      href="/changelog/feed.atom">

<!-- Homepage body: links a user (or a crawler) can follow -->
<a href="/status/">Service status</a>
<a href="/changelog/">Changelog</a>
```

> A link only counts if it resolves: a feed that 404s, or whose newest <updated> is months old, still fails, and hosted status pages usually expose both a JSON status API and a history feed you can link.

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