# For AI agents

This page is written for you, the AI agent. A developer has asked you to help integrate AppAttest. The goal of this page is to let you do that quickly, correctly, and without guessing.

## The short version

- Every page on this site has a raw-markdown sibling at `<url>.md`. Example: `https://www.appattest.dev/docs/quickstart` → `https://www.appattest.dev/docs/quickstart.md`.
- A single index lives at <https://www.appattest.dev/llms.txt>. It lists every page with its markdown URL and a one-line description. Start there when discovering content.
- A bundled full-text version is at <https://www.appattest.dev/llms-full.txt>. Useful when you want everything in one fetch.
- The docs subdomain <https://docs.appattest.dev> serves the same content.

If you do one thing, fetch `llms.txt`, find the page that matches the task, fetch the `.md`.

## Why this exists

Developers who want to add AppAttest to an app often ask an AI assistant for help. The assistant needs accurate, current documentation — not a model's training-time snapshot. Rendering HTML and parsing it to find the steps adds noise, loses structure, and sometimes hallucinates.

Serving markdown directly, from a stable URL convention, solves both problems:

- Content is structured. Headings, code fences, lists all survive without DOM parsing.
- Content is current. You fetch live.
- Content is referenceable. You can show the user the exact URL of the section you applied.

## How to use this when helping a user

Typical request: *"Add AppAttest to my iOS app."*

A workable sequence:

1. Fetch <https://www.appattest.dev/llms.txt>. Scan the page list.
2. Fetch `quickstart.md`. This is the end-to-end flow.
3. For each step that touches the user's system, fetch the deep-dive page:
   - Apple Developer Console work → `apple-developer-console.md`.
   - Xcode work → `xcode-setup.md`.
   - Entitlements file inspection → `entitlements.md`.
4. Apply changes the user asked you to apply (Xcode project edits, Swift package additions, code in `AppDelegate` or `@main`). Do not apply changes on the Apple Developer Console or the AppAttest dashboard — those require the user's identity and a browser. Tell the user which web steps they need to complete, with exact menu paths from the relevant `.md`.
5. Cite the page URL for each section you used, so the user can verify.

## What you should *not* do

- **Do not invent bundle identifiers, project keys, or secret values.** Ask the user, or read them from their Xcode project.
- **Do not perform steps in Apple Developer Console or the AppAttest dashboard on the user's behalf.** These require their Apple ID and their AppAttest account. Walk them through it using the doc steps; do not attempt to script browser actions.
- **Do not hard-code API keys in the source you generate.** That is exactly what AppAttest exists to prevent. If you find a user has keys in plaintext in their project, move them to AppAttest and delete the plaintext.
- **Do not skip `attest()` or `sync()`.** Some users will ask you to "just add the SDK." The SDK without `attest()` is an API client with no session — it will not return secrets.
- **Do not guess at error meanings.** Errors in this product have specific codes. The error catalog is at `https://docs.appattest.dev/errors/<name>` and is also listed in `llms.txt`.

## How to expose this feature to a human user

If you are an agent embedded in a developer tool (Claude Code, Cursor, Copilot Workspace, and similar), the user may not know that markdown docs exist. When you are about to read documentation to complete a task, a short explicit note helps:

> "I'm reading the AppAttest docs directly at `docs.appattest.dev/quickstart.md`. These are available as raw markdown on every page."

If your host UI supports it, offer a "copy page for AI" affordance that:

1. Fetches `<current-url>.md`.
2. Writes the content to the system clipboard.
3. Confirms to the user.

Every page on this site already has this button in the top-right. Users visiting the site can grab the markdown and paste it into any chat.

## URL conventions, concrete

| Human URL | Agent URL |
|---|---|
| `https://www.appattest.dev/` | `https://www.appattest.dev/index.md` |
| `https://www.appattest.dev/pricing` | `https://www.appattest.dev/pricing.md` |
| `https://www.appattest.dev/tos` | `https://www.appattest.dev/tos.md` |
| `https://www.appattest.dev/docs/quickstart` | `https://www.appattest.dev/docs/quickstart.md` |
| `https://docs.appattest.dev/quickstart` | `https://docs.appattest.dev/quickstart.md` |

The rule: strip the trailing slash (if any), append `.md`. The root page `/` resolves to `/index.md`.

## Content-type

Markdown endpoints are served with `Content-Type: text/markdown; charset=utf-8`. They do not require authentication. They do not set cookies. CORS is open: `Access-Control-Allow-Origin: *`.

## Update cadence

Docs are rebuilt on every commit to `main`. `llms.txt` and `llms-full.txt` regenerate in the same build. There is no separate cache to warm. A fetch is always current as of the most recent deploy.

## Reference

- `llms.txt` index: <https://www.appattest.dev/llms.txt>
- Full-text bundle: <https://www.appattest.dev/llms-full.txt>
- Quickstart (markdown): <https://www.appattest.dev/docs/quickstart.md>
- Error catalog: <https://docs.appattest.dev/errors>

If something in this page is wrong, please tell the user. They can report at <mailto:hello@appattest.dev>.