# AX Check: drafted.ai
Checked 2026-10-14.

Homepage is agent-readable, but docs and pricing details stay hidden
Homepage loads clean Markdown under the token budget with working links, but no documentation index, quickstart, or pricing page was found for deeper checks.

## Onboarding needs a login

## Coding sessions
All three independent sessions (DeepSeek V4.1 Flash, Kimi K3, Qwen 3.8 Max) completed and agreed Drafted is free during an early-access period, with no usage limits, card, or seat count required, a 60-day notice period for changes, and a grandfathered launch rate once paid terms are set.

### DeepSeek V4.1 Flash
[View public run](https://agents.withgauge.com/p/runs/c667d6d1-a798-47ef-97f9-31b813f26948) · [Read transcript](https://www.ax-check.com/drafted.ai/sessions/deepseek.json)
Said Drafted costs $0 during early access, with no usage limits, card or seat count and no trial timer; changes come with 60 days' notice and a kept launch rate. Taken from drafted.live/pricing (seq 81, seq 151, DRAFTED.md)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent correctly identified drafted.live as the one 'Drafted' product with a real developer workflow (npm CLI, MCP server, hosted HTTP API), verified live endpoints with curl, and wrote a working example script. But Drafted's only auth method is a browser device-code flow with no API-key option. The agent could not complete sign-in itself — a human must open a URL and approve the code in a browser — so it stopped before the polling step and never obtained a session or made an authenticated call.
  Event 350:

  ```text
  If you are an agent: call the Drafted MCP auth tool with action="get_link" and give the URL to your user — you cannot complete a sign-in yourself.
  ```
  Event 138:

  ```text
  {"deviceCode":"753164b2d6d3d5f07938f5b664a9e2bb663a62296685505266b44e0a2d467fcd","userCode":"D25C3221CE87","verificationUrl":"https://drafted.live/d/D25C3221CE87","expiresIn":900}
  ```
  Event 151:

  ```text
  An agent can't complete that sign-in itself, so I stopped before the polling wait rather than hang on a long-running command. Run the script and approve when prompted.
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **No self-serve auth — device-code flow requires human browser approval**: Drafted's CLI/API has no API-key auth; the only login path is a device-code flow where a human must open a URL and approve a code in a browser. This is normal product behavior (not a bug) but it blocks any unattended/agent-only onboarding and the session never got signed in during this run.
  Event 138:

  ```text
  {"deviceCode":"753164b2d6d3d5f07938f5b664a9e2bb663a62296685505266b44e0a2d467fcd","userCode":"D25C3221CE87","verificationUrl":"https://drafted.live/d/D25C3221CE87","expiresIn":900}
  ```
  Event 350:

  ```text
  If you are an agent: call the Drafted MCP auth tool with action="get_link" and give the URL to your user — you cannot complete a sign-in yourself.
  ```
- **Ambiguous product name across six unrelated "Drafted" products**: The agent spent most of the session (roughly the first 50 tool calls) disambiguating between six unrelated products all named Drafted (recruiting, house-plan design, sports, proposals, home-services, and the npm/MCP product) before finding the one with a developer workflow. This is a test-environment/prompt ambiguity issue, not a product defect in drafted.live itself.
  Event 50:

  ```text
  Drafted — AI proposals for professionals \n prodrafted.com/pricing\n Pricing — Drafted \n drafted.live/pricing
  ```
  Event 51:

  ```text
  === https://drafted.com ===\n<title>DRAFTED — Know If You Won Before The Season Starts</title>
  ```

#### Suggested Changes
- **Publish an OpenAPI spec or SDK reference for drafted.live's HTTP API**: The agent had to reverse-engineer API paths (/api/projects, /auth/me, /api/fs/*, etc.) by downloading and grepping the npm package source rather than reading documentation, since /docs, /api, and /openapi.json all 404 on drafted.live. Add a public API reference page or OpenAPI spec and link it from the README or drafted.live homepage; verify by confirming a GET to a documented /docs or /openapi.json path returns content instead of 404.
  Event 83:

  ```text
  /openapi.json -> 404\n/api/openapi.json -> 404\n/docs -> 404\n/api/docs -> 404\n/api -> 404\n/sdk -> 404\n/developers -> 404
  ```

### Kimi K3
[View public run](https://agents.withgauge.com/p/runs/dde678d2-8a67-455e-804a-9dbe0c92f429) · [Read transcript](https://www.ax-check.com/drafted.ai/sessions/kimi.json)
Stated Drafted is free during early access (no limits, card, or seats), with terms unset, 60-day notice and grandfathered rate, all sourced from the fetched pricing page. (seq 29, seq 64)
#### End-to-end onboarding
- **Onboarding needs a login**: The agent never obtained real Drafted credentials or performed any authenticated operation. It probed the hosted API/MCP endpoints and got 401 Unauthorized on every attempt, confirmed auth runs through Clerk OAuth (Google sign-in or email magic link), found no self-service API-key workflow, and had no email inbox or Google account available in the sandbox. It explicitly stopped and asked the product owner to supply a token rather than attempting local workarounds.
  Event 35:

  ```text
  401
  
  ```
  Event 48:

  ```text
  401
  401
  
  ```
  Event 64:

  ```text
  Every API/MCP endpoint returns **401**; auth is **Clerk OAuth** (Google sign-in or email magic link via `clerk.drafted.live`). This sandbox has no email inbox or Google account, and no Drafted credentials exist in the environment.
  ```
  Event 62:

  ```text
  PI_GATEWAY_API_KEY=<redacted-present>
  exit: 0
  
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Clerk OAuth wall blocks every hosted API/MCP call**: All authenticated surfaces (the MCP endpoint and REST API, e.g. wiki export/import) returned 401 Unauthorized. Authorization is handled by Clerk via Google sign-in or email magic link, and the sandbox had no email inbox, no Google account, and no pre-provisioned Drafted token. This is a normal login requirement rather than a product defect, but it fully prevented any authenticated developer workflow from being exercised in this session.
  Event 35:

  ```text
  401
  
  ```
  Event 48:

  ```text
  401
  401
  
  ```
  Event 42:

  ```text
  {"resource":"https://drafted.live/","authorization_servers":["https://clerk.drafted.live"],"token_types_supported":["urn:ietf:params:oauth:token-type:access_token"]
  ```
- **Only runnable quickstart requires a local Docker stack**: The only alternative developer path found in the npm README was the self-hosted quickstart (`npm install && npm run dev`), which spins up Docker services (app, Mailpit for magic links, MinIO). The session's instructions explicitly prohibited starting local service stacks, so the agent correctly declined to pursue this path and stopped.
  Event 18:

  ```text
  npm install && npm run dev   # Docker services + schema + server with hot reload
  ```
  Event 64:

  ```text
  The only runnable alternative is the self-hosted quickstart (`npm install && npm run dev`), which spins up Docker services (app, Mailpit, MinIO) — exactly the local service stack you told me not to start.
  ```

#### Suggested Changes
- **Publish a self-service API-key/token issuance flow for automation**: No API-key workflow is documented anywhere the agent could find (npm README, GitHub tree search, sitemap, or well-known OAuth metadata) — only Clerk OAuth via Google or email magic link. Add a documented path (e.g. a dashboard 'API keys' page or a documented client-credentials/token-minting endpoint) so agents and CI pipelines can authenticate without a human-driven browser login. Verify by confirming a freshly generated key can call the MCP endpoint or /api/projects and get a 200 instead of 401.
  Event 64:

  ```text
  I found **no API-key/token workflow** documented, and the GitHub repo (`ddfourtwo/drafted`) appears private.
  ```
  Event 42:

  ```text
  "authorization_servers":["https://clerk.drafted.live"]
  ```
- **Offer a lightweight hosted quickstart that avoids local Docker**: The npm package README's only 'Quick start' section requires `npm install && npm run dev`, which launches Docker services, a local email inbox, and MinIO. For developers who just want to try the hosted product (drafted.live) via SDK/API, add a minimal hosted-only quickstart (e.g. curl examples against the real `/mcp` or `/api` endpoints with a sample token) in the README or at a docs URL. Check it works by having a new user complete it without running any local containers.
  Event 18:

  ```text
  npm install && npm run dev   # Docker services + schema + server with hot reload
  
  - App: http://localhost:3477
  - Email inbox (magic links): http://localhost:8025
  - MinIO console: http://localhost:9001
  ```

### Qwen 3.8 Max
[View public run](https://agents.withgauge.com/p/runs/5aee5163-d34d-4370-9f99-df05181e82bd) · [Read transcript](https://www.ax-check.com/drafted.ai/sessions/qwen.json)
Stated free during early access with basis: no usage limits/card/seats, terms not yet set, 60-day notice and grandfathered launch rate, sourced from live pricing page. (seq 45, seq 52)
#### End-to-end onboarding
- **Onboarding needs a login**: Agent never obtained real Drafted credentials. It probed the hosted MCP endpoint directly and got a 401 Unauthorized requiring interactive sign-in (Clerk auth). No device-code/magic-link flow was completed, no authenticated operation was performed against the hosted product. Session ends with an explicit blocker and stop, not a recovery.
  Event 49:

  ```text
  -X POST https://drafted.live/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' -d '{"jsonrpc":"2.0","id":1,"method":"initialize"...
  ```
  Event 50:

  ```text
  HTTP/2 401 
  ...www-authenticate: Bearer resource_metadata=https://drafted.live/.well-known/oauth-protected-resource/mcp
  x-clerk-auth-reason: session-token-and-uat-missing
  x-clerk-auth-status: signed-out
  ```
  Event 52:

  ```text
  The hosted API requires interactive sign-in. I probed `POST https://drafted.live/mcp` and got `401 Unauthorized` with `www-authenticate: Bearer` (Clerk auth, `signed-out`). The only credential flow is a magic-link email / device-code login
  ```

#### Hallucinated URLs
None identified in this transcript.

#### Blockers
- **Hosted MCP endpoint requires interactive human sign-in**: The only way to authenticate to the live Drafted MCP server is a magic-link/device-code flow that needs a human to open a URL and approve it; no headless API key exists. This is normal product auth behavior, not a defect, but it fully blocked the agent from completing any authenticated operation (creating a project, frame, or wiki page) within the session.
  Event 50:

  ```text
  www-authenticate: Bearer resource_metadata=https://drafted.live/.well-known/oauth-protected-resource/mcp
  ```
  Event 52:

  ```text
  auth(action=get_link) produces a URL a *human* must open and approve. There is no API key or headless token mechanism, and I have no credentials for you.
  ```
- **Only self-hosting quickstart requires a local Docker stack**: The README's only documented 'quick start' for developing against Drafted is npm install && npm run dev, which spins up Docker services (app, Mailpit, MinIO) with hot reload — exactly the kind of long-running local stack the task instructions said to avoid. This is a product documentation gap (no lightweight hosted-only quickstart) rather than an agent error.
  Event 21:

  ```text
  npm install && npm run dev   # Docker services + schema + server with hot reload
  ```
  Event 52:

  ```text
  The README's quickstart ("developing Drafted itself") is `npm install && npm run dev` — a Docker service stack (app + Mailpit + MinIO) with magic links fetched from a local inbox. That's exactly the local-stack/long-running setup you told me not to start.
  ```

#### Suggested Changes
- **Add a headless/API-key auth path for hosted MCP access**: Current hosted MCP auth (https://drafted.live/mcp) only supports interactive magic-link/device-code sign-in via Clerk, confirmed by the 401 response demanding browser-based approval. For agent-only or CI use cases, provide a non-interactive API key or service-account token option, and verify by issuing a token and completing an authenticated MCP tool call (e.g., creating a project) without a human opening a browser link.
  Event 50:

  ```text
  x-clerk-auth-status: signed-out
  ```
  Event 52:

  ```text
  the only credential flow is a magic-link email / device-code login — auth(action=get_link) produces a URL a human must open and approve
  ```
- **Publish a lightweight hosted-only quickstart separate from the self-hosting dev setup**: The README currently presents 'npm install && npm run dev' (a Docker-based local stack) as the only quick-start path; add a short hosted-only example (sign in, create a project/frame via MCP tools against drafted.live) to the README's Quick Start section, and verify by confirming a new user can complete it without starting any local services.
  Event 21:

  ```text
  npm install && npm run dev   # Docker services + schema + server with hot reload
  ```

### Task given to each agent
Help me build a simple example using Drafted. Tell me how pricing works, and briefly tell me whether this product will be easy for you to manage. Let me know if you get blocked. If this product has no developer workflow you can act on, say so plainly and stop. Stay light: use the hosted product through its SDK or API. Do not start local service stacks or wait for long-running commands; if the quickstart requires either, say so plainly and stop.

No product credentials were supplied and no purchases were authorized.

## Score: B · 65/100 (provisional)
Grades come from completed site checks. Coding sessions and skipped checks do not affect the score.

### Clarity
- **Failed** — llms.txt provides an actionable documentation index

  ```text
  /llms.txt returned HTTP 404, so no documentation index exists.
  ```

- **Pass** — Homepage answers Markdown requests

  ```text
  Homepage returned text/markdown when requested with Accept: text/markdown.
  ```

- **Skipped** — llms.txt provides navigation guidance

  ```text
  No llms.txt body was returned (404), so navigation guidance cannot be judged.
  ```

- **Skipped** — llms.txt mentions offered API, MCP, and skills

  ```text
  No llms.txt body was returned (404); no API, MCP or skills surfaces observed.
  ```

- **Pass** — A compact guide representation exists

  ```text
  Homepage served text/markdown via content negotiation, a compact Markdown representation.
  ```

- **Pass** — A focused guide is directly retrievable

  ```text
  Homepage Markdown is directly retrievable at drafted.ai with Accept: text/markdown.
  ```

- **Pass** — Equivalent instructions fit a token budget

  ```text
  Homepage Markdown measured 5484 tokens, under the 8000-token budget.
  ```

- **Pass** — Product-docs links survive format changes

  ```text
  Homepage Markdown retains learn, use-case, and house-plan doc links.
  ```

- **Skipped** — The compact guide is independently actionable

  ```text
  No compact agent guide was fetched; only homepage and signup pages, so actionability cannot be judged.
  ```

- **Pass** — Install and next-step links resolve

  ```text
  Sampled homepage links (learn guides, use cases, Revit) returned 200; signup link resolves to a working page.
  ```


### Onboarding
- **Skipped** — Docs lead to a relevant quickstart

  ```text
  No docs or quickstart pages were fetched; only homepage and signup pages appear.
  ```

- **Skipped** — Installation commands are extractable

  ```text
  No installation or CLI guide was fetched for Drafted.
  ```

- **Skipped** — Code examples are available without interaction

  ```text
  No documentation or code example pages were fetched.
  ```

- **Skipped** — Prerequisites and auth boundaries are explicit

  ```text
  No docs describing prerequisites or API auth boundaries were fetched.
  ```


### Pricing
- **Skipped** — Pricing is readable without interaction

  ```text
  No pricing page fetched; homepage only says Drafted is free to start with paid upgrades.
  ```

- **Skipped** — Prices are stated, not gated

  ```text
  No pricing page fetched; no stated prices or tiers observed on the homepage.
  ```

- **Skipped** — Pricing units and limits are explicit

  ```text
  No pricing page fetched; homepage mentions generations, renders and exports but no units or limits.
  ```

- **Pass** — Agents identify pricing and its assumptions

  ```text
  3 of 3 sessions were judged on pricing; 0 fell short. DeepSeek V4.1 Flash: Said Drafted costs $0 during early access, with no usage limits, card or seat count and no trial timer; changes come with 60 days' notice and a kept launch rate. Taken from drafted.live/pricing (seq 81, seq 151, DRAFTED.md) Kimi K3: Stated Drafted is free during early access (no limits, card, or seats), with terms unset, 60-day notice and grandfathered rate, all sourced from the fetched pricing page. (seq 29, seq 64) Qwen 3.8 Max: Stated free during early access with basis: no usage limits/card/seats, terms not yet set, 60-day notice and grandfathered launch rate, sourced from live pricing page. (seq 45, seq 52) This behavioural item does not affect the fast grade.
  ```


### Activation
- **Skipped** — An API reference or OpenAPI spec is reachable

  ```text
  No API reference or OpenAPI spec was fetched; only signup and llms.txt pages appear.
  ```

- **Skipped** — An MCP server is documented and well-formed

  ```text
  No MCP server documentation was fetched for Drafted.
  ```

- **Skipped** — A CLI install path is documented

  ```text
  No CLI install path or CLI guide was fetched for Drafted.
  ```

- **Skipped** — SDK packages resolve on their registries

  ```text
  No SDK package registry lookup was supplied for Drafted.
  ```

- **Skipped** — Agent skills are published

  ```text
  No agent skills documentation was fetched for Drafted.
  ```



[Full report data](https://www.ax-check.com/drafted.ai/report.json)
