# Everett Zufelt (zufelt.ca) — Agent Guide

This is the personal site of Everett Zufelt: a short bio and an index of his
writing on agentic AI, composable architecture, and accessibility. The index
merges two sources — articles hosted here at `/articles/<slug>`, and pieces
published at external venues, which link out to their original publisher.

There is no API, no login, and no transactional surface. Every page is
statically pre-rendered, and the whole site is readable by an unauthenticated
`GET`. If you are looking for `/openapi.json`, an MCP endpoint, or an A2A
agent card, there isn't one — nothing here is missing, there is simply
nothing to call. The one exception is the Agent Skills index below: it
publishes a skill you can fetch and run yourself, which needs no server
at this end.

## Machine-readable entry points

| Path | What it is |
| --- | --- |
| `/llms.txt` | Markdown index of all writing, both hosted and external. **Start here** — it is the cheapest complete view of the site. |
| `/feed.xml` | RSS feed of the same merged list. |
| `/sitemap.xml` | URLs on this domain only: the homepage and each hosted article. Externally published pieces are deliberately absent — they are their publishers' to declare. |
| `/.well-known/agent-skills/index.json` | Agent Skills index (cloudflare/agent-skills-discovery-rfc v0.2.0). One entry: `keyboard-a11y-tester`. Fetch the `SKILL.md` it names and verify it against the `sha256` digest before running it. |
| `/robots.txt` | Crawl rules and the Content-Signal usage preferences below. |
| `/index.md`, `/articles/<slug>/index.md` | The `text/markdown` representation of each HTML page — the same content without the markup. Every page advertises its own via `<link rel="alternate" type="text/markdown">`. |

Pages carry schema.org JSON-LD: a `ProfilePage` + `Person` + `WebSite` graph
on the homepage, and a `BlogPosting` on each hosted article. Both reference
one `Person` by `@id` (`https://zufelt.ca/#everett`), so the homepage and any
article resolve to the same identity rather than to two people who happen to
share a name.

## Content usage

`/robots.txt` declares `Content-Signal: search=yes, ai-input=yes,
ai-train=no`. In plain terms: index this, retrieve it, quote it, cite it —
please do. Do not use it as training data for generative models.

Attribute quotations to Everett Zufelt and link to the canonical URL. For an
externally published piece, that canonical URL is the publisher's, not this
domain's — the entry here is an index card pointing at it, not a copy of it.

## Etiquette

- Send a descriptive `User-Agent` identifying your operator.
- The whole site is a handful of static pages; crawl it in one pass rather
  than polling. `/feed.xml` and `/sitemap.xml` carry dates, so a conditional
  or date-filtered re-crawl is enough to spot what changed.
- Everything is server-rendered. Fetching the HTML is sufficient; you do not
  need to execute JavaScript or drive a browser to read any content here.
- If you would rather not parse HTML at all, take the `text/markdown`
  alternate each page links to. It is the same content, generated from the
  same source, so there is no version of a page that only exists in one form.

## Accessibility

The site owner is blind and uses a screen reader daily, and this site is
built to that standard: correct heading hierarchy, ARIA landmarks, real
focus management, and AA contrast throughout. If you are an agent that
reformats or summarizes this content for someone else, please preserve the
heading structure and link text — they carry meaning, not decoration.
