Skip to content

add(resilience): Deprecation + Sunset page (RFC 9745/8594) + ai.txt 410 tombstone#86

Merged
jdevalk merged 2 commits into
mainfrom
standards-scan/deprecation-sunset-2026-07-08
Jul 8, 2026
Merged

add(resilience): Deprecation + Sunset page (RFC 9745/8594) + ai.txt 410 tombstone#86
jdevalk merged 2 commits into
mainfrom
standards-scan/deprecation-sunset-2026-07-08

Conversation

@jdevalk

@jdevalk jdevalk commented Jul 8, 2026

Copy link
Copy Markdown
Owner

What changed

Specs and ships the Deprecation + Sunset convention in one PR.

Spec page — new resilience page, Deprecation and Sunset, status: optional. Documents Deprecation (RFC 9745, a structured-field date — past = deprecated then, future = will be), Sunset (RFC 8594, the removal instant; Sunset must not be earlier than Deprecation), and the rel="deprecation" / rel="sunset" / rel="successor-version" link relations. Covers the post-sunset 410 Gone case explicitly.

Shipped worked examplefunctions/_middleware.ts now serves the retired /.well-known/ai.txt as 410 Gone carrying:

  • Deprecation: @1780012800 (2026-05-29, the day it was removed)
  • Sunset: Fri, 29 May 2026 00:00:00 GMT
  • Link: <…/spec/resilience/deprecation-and-sunset/>; rel="deprecation"; type="text/html"

This is exactly the post-sunset 410 scenario RFC 8594 describes, and Sunset is not earlier than Deprecation per RFC 9745. ai.txt was genuinely retired (2026-05-29), so this commits us to nothing new — the dates are historical, and a 410 tombstone is a cleaner retirement than a bare 404.

Why this satisfies "ship it before you spec it"

Unlike the OAuth pages, this convention is one the site can and now does implement, so per CLAUDE.md the same PR makes the site emit the headers. The middleware was already the response-mutation layer (it sets Vary, Server-Timing, does content negotiation); the tombstone slots in as one branch before the existing ones. /.well-known/ai.txt is not excluded in public/_routes.json, so the worker runs on it.

Notes

  • The page references /.well-known/ai.txt in backticks, not as a Markdown link — it's a middleware-only path that wouldn't resolve in the static Internal-links CI check.
  • No global Link header or api-catalog change: the rel="deprecation" link is per-path on the tombstone, not a site-wide discoverable resource.
  • Status optional — relevant only to sites retiring endpoints. Not recommended.
  • npm run build passes locally (157 pages, integrity green); eslint + prettier pass on the middleware via the pre-commit hook. SKILL.md "140+ pages" still accurate, no digest change.

Primary sources: RFC 9745, RFC 8594, IANA Link Relations Registry. Opened as draft by the daily standards scan, following the in-session decision to spec and ship this (option 1: the ai.txt tombstone).

🤖 Generated with Claude Code

New spec page documenting the Deprecation (RFC 9745) and Sunset (RFC 8594)
response headers plus the rel=deprecation / rel=sunset / rel=successor-version
link relations, status optional.

Ships the worked example in the same PR (the 'ship it before you spec it'
rule): functions/_middleware.ts now serves the retired /.well-known/ai.txt
as 410 Gone carrying Deprecation (@1780012800 = 2026-05-29), Sunset
(Fri, 29 May 2026), and a rel=deprecation Link back to the page — exactly
the post-sunset 410 case RFC 8594 describes. Sunset is not earlier than
Deprecation, per RFC 9745.

Wires relatedSlugs on error-pages and redirects; adds an 'added' changelog
entry and the OG images (new page + four count-driven).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 8, 2026

Copy link
Copy Markdown

Deploying specification-website with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9885ff0
Status: ✅  Deploy successful!
Preview URL: https://c53d9e78.specification-website.pages.dev
Branch Preview URL: https://standards-scan-deprecation-s.specification-website.pages.dev

View logs

# Conflicts:
#	public/og-default.png
#	public/og/checklist.png
#	public/og/spec.png
@jdevalk jdevalk marked this pull request as ready for review July 8, 2026 07:51
@jdevalk jdevalk merged commit 3fbeb64 into main Jul 8, 2026
8 checks passed
@jdevalk jdevalk deleted the standards-scan/deprecation-sunset-2026-07-08 branch July 8, 2026 07:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant