# Convex docs: AI Agent Readiness Score 82.5% (B-)

**82.5% · 66/80 · AI Agent Readiness Score · 26/30 reading points · 40/50 agent surface points**

Convex received 11 PASS votes and passed 4 of five readiness checks. The clearest finding came from the verify a log webhook task.

- Tested: 2026-08-19
- Verified: 2026-08-19
- Published: 2026-08-20
- Battery: v1
- Scoring: reading 30 pts · surface 50 pts
- Docs: https://docs.convex.dev

Three AI models, GPT 5.6 Sol, Claude Opus 5, and DeepSeek v4 Flash, each read Convex’s public documentation independently and attempted five first-hour developer jobs: build the first backend, find the exact limits, recover from a write conflict, verify a log webhook, use the JavaScript SDK.

No accounts, API calls, or code execution were used. Every verdict came from public pages and every published quotation passed a live verification check. Preflight substitutions: T3: A documented write-conflict error replaced 429 because it is Convex's closest common product error.

## Agent surface checks · 40/50

| Check | Verdict | Points |
| --- | --- | --- |
| llms.txt | PASS | 10 |
| llms-full.txt | PASS | 10 |
| Markdown mirror | PASS | 10 |
| MCP server | FAIL | 0 |
| Docs AI | PASS | 10 |

## The Reading Test · 26/30

| Task | GPT 5.6 Sol | Opus 5 | DeepSeek v4F | Consensus |
| --- | --- | --- | --- | --- |
| Build the first backend | PASS | PASS | PASS | PASS |
| Find the exact limits | PASS | PARTIAL | PASS | PASS |
| Recover from a write conflict | PARTIAL | PASS | PASS | PASS |
| Verify a log webhook | PARTIAL | PARTIAL | PASS | PARTIAL |
| Use the javascript sdk | PASS | PASS | PASS | PASS |

Docs platform: Docusaurus 3.10.1 (unscored) · verified 2026-08-19

## What the docs get right

- **Build the first backend: 3 PASS votes.** The ten-step quickstart creates a query, imports data, connects React, and renders the query result.
- **Use the javascript sdk: 3 PASS votes.** The JavaScript client query matches the generated api.<file>.<export> form shown in the API and quickstart pages.
- **4 of 5 readiness checks.** Present: llms.txt, llms-full.txt, markdown mirrors, docs AI. Missing: an MCP server.

## Build the first backend

**PASS**

PASS consensus from 3 PASS.

The ten-step quickstart creates a query, imports data, connects React, and renders the query result. Ten numbered steps give exact commands and complete file contents for convex/schema.ts, convex/tasks.ts, src/main.tsx, and src/App.tsx, ending with useQuery(api.tasks.get) rendering the imported tasks at http://localhost:5173/. The React quickstart provides 10 unambiguous steps from creating a Vite app to rendering query data with useQuery.

## Find the exact limits

**PASS**

PASS consensus from 2 PASS, 1 PARTIAL.

The limits and pricing pages agree on plan classes, deployment quotas, and Free/Starter and Professional query concurrency. Concurrency values are exact and match the public pricing table (S16: 16 queries, 64 actions, 1,000 sessions; S256: 256, 512, 10,000), but the same Limits page lists Log streaming limits under the Free/Starter column while the Log Streams page states log streams require a Convex Pro plan, and the page closes by deferring to an off-docs pricing page for current resource limits. All plan quotas, deployment-class concurrency caps, and per-function guardrails are documented in a single page with consistent scoping annotations.

## Recover from a write conflict

**PASS**

PASS consensus from 2 PASS, 1 PARTIAL.

The pages contradict retry outcomes, and the error page offers general remediation rather than a complete correction. The page names the cause (optimistic concurrency control), reproduces the exact runtime error text for two distinct conflict shapes, gives three concrete remediation steps, and links both the OCC explainer and the Sharded Counter component that solves the counter example. The error reference shows the exact error message, gives two worked examples with different conflict patterns, and prescribes a three-step remediation plan with links to further reading.

## Verify a log webhook

**PARTIAL**

PARTIAL consensus from 1 PASS, 2 PARTIAL.

The page documents setup and events, but its verifier parses the request before reading the bytes that it verifies. Signature verification is complete with a runnable constant-time Hono example, but the verification event is only described as "an event sent to confirm the log stream is working" with no documented trigger or timing, the body format is stated as a JSON array while the sample code carries an undocumented JSONL branch, and the Deployment API create_log_stream and update_log_stream pages render empty Request sections with no webhook config schema. The log-streams page documents the full lifecycle: configuration path, verification event schema, HMAC-SHA256 signing of the raw body, x-webhook-signature header format, secret visibility, and a complete Hono verification code example.

## Use the javascript sdk

**PASS**

PASS consensus from 3 PASS.

The JavaScript client query matches the generated api.<file>.<export> form shown in the API and quickstart pages. Both ConvexClient and ConvexHttpClient are shown with minimal query examples using the same api.<file>.<export> form imported from convex/_generated/api that the React quickstart and React overview use, plus anyApi for cases without generated code; the page's ConvexReactClient link points at /api/classes/browser.ConvexClient rather than the React class. The JS client overview documents both ConvexClient (subscription-based) and ConvexHttpClient (one-shot), both using the generated api.<file>.<export> pattern that matches the API form used throughout the docs.

## The receipt

> Webhook log stream requests include a signature so you can verify that a request is legitimate. The request body is signed using HMAC-SHA256 and encoded as a lowercase hex string, and the resulting signature is included in the x-webhook-signature HTTP header.

The page documents setup and events, but its verifier parses the request before reading the bytes that it verifies.

- [docs.convex.dev/production/integrations/log-streams](https://docs.convex.dev/production/integrations/log-streams)

## Readiness notes

Initialize returned HTTP 404 with no MCP response.

The live quickstart exposes a visible Ask AI button.

## Method note

This is a reading test of public documentation, not an execution test. No accounts were created and no API calls were run. The AI Agent Readiness Score counts fifteen reading votes at PASS 2, PARTIAL 1, and FAIL 0, for 30 possible points. Five readiness checks add 10 points each. The total is 80. Consensus chips show each row majority and do not affect scoring. The panel split on 3 of five tasks. Quotes shown here were re-fetched and confirmed verbatim on 2026-08-19.

Methodology: https://docsforagents.com/methodology/

Canonical URL: https://docsforagents.com/reports/convex-docs-ai-agent-readiness/
