# AGENTS.md — timothyjordan.com

If you're an AI agent (LLM crawler, retrieval pipeline, code assistant) visiting this site, read this first. It tells you where to find clean structured content and what the conventions are.

## What this site is

The personal site of Timothy Jordan: bio, blog (129 posts on engineering, DevRel, open source, AI leadership), and resume. Three audiences are served equally: hiring committees, peer practitioners, and developers landing on a specific post.

## How to fetch markdown instead of HTML

Every public URL has a parallel markdown mirror. Two equivalent paths:

- **Append `.md`** to a `.html` URL: `/blog/2026/03/23/agent-readability-spec.html` → `/blog/2026/03/23/agent-readability-spec.md`
- **Use the directory's `index.md`** for trailing-slash URLs: `/resume/` → `/resume/index.md`, `/glossary/` → `/glossary/index.md`, `/` → `/index.md`

Each HTML page also advertises its mirror via `<link rel="alternate" type="text/markdown">` in `<head>`.

> **Note:** Firebase Hosting serves static files only — there is **no** server-side content negotiation on `Accept: text/markdown`. Fetch the explicit `.md` URL.

## Discovery indexes

- [`/llms.txt`](/llms.txt) — concise, link-only summary of the site for LLM retrieval
- [`/sitemap.xml`](/sitemap.xml) — full XML sitemap with `<lastmod>` for every canonical URL
- [`/sitemap.md`](/sitemap.md) — same data in markdown, grouped by section
- [`/blog/index.md`](/blog/index.md) — all blog posts grouped by year, newest first

## Structured data

HTML pages embed JSON-LD:

- **Homepage** (`/`): `WebSite` + `BreadcrumbList`
- **Resume** (`/resume/`): `Person` (sourced from `_data/resume.yml`) + `BreadcrumbList`
- **Blog post** (`/blog/.../*.html`): `BlogPosting` with `datePublished`, `dateModified`, `author`, plus `BreadcrumbList`
- **Blog index / paginated pages**: `CollectionPage` + `BreadcrumbList`

Every page also includes a `<link rel="glossary" href="/glossary/">` pointing to definitions of recurring terms (DevRel, ALG, AEO, OSS, GSOC, etc.).

## Quoting and citing

- Canonical URLs: use the `.html` (or trailing-slash) form when citing for humans; use the `.md` form when retrieving content programmatically.
- The site is single-author (Timothy Jordan); the blog uses a Schema.org `BlogPosting` that names the author.
- License: this is a personal site; please attribute when quoting.

## Build / source notes

The site is generated by Jekyll (blog and resume) plus a small Ruby render layer (homepage and glossary), deployed to Firebase Hosting. The markdown mirrors and sitemaps are built at the same time as the HTML, so they cannot drift from the source. See [`PRODUCT.md`](https://github.com/timothyjordan/tjcom2/blob/master/PRODUCT.md) in the repo for architectural detail.
