---
title: "Keep a site agent ready in CI | Agent Ready Checklist"
description: "How to keep a site agent ready in CI. Run the kit against preview deployments and fail the build on a MUST regression. Run the kit to confirm the result."
canonical: https://agentreadychecklist.com/guides/keep-a-site-agent-ready-in-ci
site: "Agent Ready Checklist"
last_updated: 2026-11-05
date: 2026-11-04
section: "Guides"
---

# Keep a site agent ready in CI | Agent Ready Checklist

> How to keep a site agent ready in CI. Run the kit against preview deployments and fail the build on a MUST regression. Run the kit to confirm the result.

Source: https://agentreadychecklist.com/guides/keep-a-site-agent-ready-in-ci
Site: Agent Ready Checklist
Last reviewed: 2026-11-05
Agent endpoints: https://agentreadychecklist.com/llms.txt (index), https://agentreadychecklist.com/openapi.json (API), https://agentreadychecklist.com/mcp (MCP server), https://agentreadychecklist.com/ask (search)
Access: https://agentreadychecklist.com/auth.md (no key). Pricing: https://agentreadychecklist.com/pricing.md (free).

# How to keep a site agent ready in CI

Run the kit against preview deployments and fail the build on a MUST regression. It covers 3 requirements: AR-FIND-01, AR-READ-01, AR-READ-02. is-agentic exposes reports through a GET API at /api/v1/report?url= that does not start a scan. The spec follows semantic versioning: a major bump marks a breaking change to a normative requirement, as v2.0 did with AR-ACT-10.

## Before you start

You need a preview URL for every pull request or a staging site, and a CI job that can run bash or Node.

## Steps

1.  **[AR-FIND-01: Do not block agents.](https://agentreadychecklist.com/checklist/ar-find-01/)** Do not block agent and crawler access to public content, in robots.txt or at the network layer (WAF, bot manager).
    
    ```bash
    curl -fsSL https://agentreadychecklist.com/kit/verify.sh | bash -s -- https://example.com --only=reach-as-agent,robots-verdicts
    ```
    
     Watch for: A named group (User-agent: GPTBot, Disallow: /) left over from 2023 that overrides a permissive wildcard.
2.  **[AR-READ-01: Answer in the initial HTML.](https://agentreadychecklist.com/checklist/ar-read-01/)** Put the answer in the initial HTML: server-rendered or prerendered, not injected by a single-page app after load.
    
    ```bash
    curl -fsSL https://agentreadychecklist.com/kit/verify.sh | bash -s -- https://example.com --only=initial-html
    ```
    
    Watch for: Prerendering the shell but fetching the answer client-side.
3.  **[AR-READ-02: Real HTTP status codes.](https://agentreadychecklist.com/checklist/ar-read-02/)** Return accurate HTTP status codes: 404 or a real redirect for missing paths, 429 with Retry-After when throttling; never 200 for a missing page and never a silent challenge page in place of 429.
    
    ```bash
    curl -fsSL https://agentreadychecklist.com/kit/verify.sh | bash -s -- https://example.com --only=status-codes
    ```
    
    Watch for: SPA hosts rewriting every path to index.html with 200.
4.  **Fail the build on a FAIL.** The kit exits with code 1 when any check prints FAIL. Run it against the preview URL, choose the profile that fits the site, and let the exit code fail the job.
    
    ```bash
    node verify.mjs "$PREVIEW_URL" --profile=content --only=reach-as-agent,initial-html,status-codes
    ```
    

## How you know it is done

You are done when a pull request that breaks a MUST fails the job, and the job prints the kit table in its log.

## The facts behind it

-   The spec follows semantic versioning: a major bump marks a breaking change to a normative requirement, as v2.0 did with AR-ACT-10.primary source, 2026-10-21: [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md), read 2026-11-04
-   is-agentic exposes reports through a GET API at /api/v1/report?url= that does not start a scan.primary source, 2026-11-04: [is-agentic.com](https://is-agentic.com/), read 2026-11-04
-   Cloudflare URL Scanner accepts options.agentReadiness true in its v2 scan API.primary source, 2026-04-17: [blog.cloudflare.com/agent-readiness/](https://blog.cloudflare.com/agent-readiness/), read 2026-11-04
-   The isitagentready MCP server exposes a scan\_site tool over Streamable HTTP.primary source, 2026-04-17: [blog.cloudflare.com/agent-readiness/](https://blog.cloudflare.com/agent-readiness/), read 2026-11-04
-   Cloudflare Pages serves index.html with 200 for unknown paths when no top-level 404.html exists, which fails AR-READ-02.primary source: [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/), read 2026-11-04

## Sources

-   [github.com/agentready-org/standard/blob/main/spec/spec.md](https://github.com/agentready-org/standard/blob/main/spec/spec.md)read 2026-11-04
-   [is-agentic.com](https://is-agentic.com/)read 2026-11-04
-   [blog.cloudflare.com/agent-readiness/](https://blog.cloudflare.com/agent-readiness/)read 2026-11-04
-   [developers.cloudflare.com/pages/configuration/serving-pages/](https://developers.cloudflare.com/pages/configuration/serving-pages/)read 2026-11-04

Edition

Data

2026-11-04

Reviewed

2026-11-05

Spec

AgentReady v2.0, 273d2d7

Crawl

13,071 rows, 2026-11-04

Ora

132 checks, contract 1.38.0, 2026-11-05

Verify with Ora

The scanner this site recommends for the whole checklist. 132 checks, a score out of 100, no account.

`npx ax@0.10 audit <url> --min-score <n>`

[Why Ora, and its limits](https://agentreadychecklist.com/verify-with-ora/)

Method

-   [How rows, commands and rates are made](https://agentreadychecklist.com/method/)
-   [How an Ora check is matched to a row](https://agentreadychecklist.com/checklist/ora-checks/)
-   [Pass rates by rank band](https://agentreadychecklist.com/data/by-rank/)

Sources and read dates sit at the foot of the page.

Last reviewed 2026-11-05. AgentReady v2.0, read 2026-11-04.
