Companion to feat/orank-agent-readiness-b2a. Baseline: 80/100 (B). Try each fixed surface live against orchestkit.yonyon.ai after deploy.
| orank check | Pts at stake | Fix shipped |
|---|---|---|
| NLWeb /ask endpoint + streaming | 2 | NLWeb-canonical request contract: GET ?query= (aliases q/question), form-encoded POST, mode param, ?streaming=true SSE, query_id + name/site/score/description result fields |
| MCP well-known discovery | 2 | Server card now carries url + remotes (registry server.json shape) + registry entry link; llms.txt names NLWeb + absolute MCP URLs |
| Rate limit response headers | 2 | Real per-IP fixed-window limiter (120/min/endpoint) + IETF RateLimit-* headers + 429 with Retry-After |
| Idempotency-Key support | 2 | Formal header param in OpenAPI; echoed on /ask and /api/md/batch |
| REST pagination pattern | 1 | Opaque cursor pagination on /api/search (cursor param, X-Next-Cursor, Link rel=next) |
| REST batch endpoint | 1 | POST /api/md/batch — up to 20 pages of Markdown per request, formal OpenAPI definition |
| REST typed error model | 2 | Problem schema consistently $ref'd incl. 429s; spec matches served shapes |
| WebMCP support | 1 | Server-rendered homepage section names navigator.modelContext tools (visible without JS rendering) |
| Content E-E-A-T | 1 | /terms page (formal ToS), footer Contact/Privacy/Terms links |
| Listed in MCP registries (bi-directional) | 1 | Visible homepage links to official registry entry, Smithery, mcp.so |
| Content density / semantic indexability | 2 | Text-dense SSR "Built for AI agents" section with H2/H3 hierarchy |
Click a probe to fetch the live endpoint…
npx skills add (2 pts across two checks).