Interop standard · v0.1
The Agent Requirements Document (ARD)
Every spec inside Cadence carries an Outcome Contract: a typed, structured statement of what it is trying to achieve, how success is proven, and what is explicitly out of scope. The ARD is that same contract published as an open standard, so a coding agent Cadence dispatches work to, and any MCP client you bring, reads the identical acceptance contract Cadence checks a build against. Not a summary of the spec. The spec's actual terms.
Why this exists
What is in a contract
- Intent: one paragraph naming the actual bet.
- Success metrics: falsifiable statements, each tagged with the proof oracle that closes it: an eval a model judge grades, the standard CI gate, a human checklist item, or a watched assumption when nothing yet falsifies it.
- Non-goals: what is explicitly out of scope.
- Budget: a rough estimate and the blast radius if it goes wrong.
- Ambiguity policy: how to resolve what the contract does not cover.
Schema
ard_version field, so a consumer can detect drift instead of guessing.Reading and writing an ARD
Fetch one. Call the get_ard tool over Cadence's MCP server (POST /api/mcp, bearer token issued at Settings > Interop) with a prd_id. It returns the full envelope below.
Export one. Open any spec's Contract tab in Cadence and use Export ARD to download the same JSON as a file.
Import one. Paste a schema-conformant ARD document into a spec's Contract tab to adopt it directly, no re-authoring required.
Example document
{
"ard_version": "0.1",
"schema_url": "https://cadence.app/api/public/ard/schema",
"spec_id": "9b1e2f3a-4c5d-4e6f-8a9b-0c1d2e3f4a5b",
"spec_title": "Add CSV export to the roadmap view",
"exported_at": "2026-07-03T02:00:00.000Z",
"contract": {
"version": 1,
"intent": "Let a PM export the current roadmap as a CSV for a board deck.",
"success_metrics": [
{
"id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"text": "Export completes for a 500-row roadmap in under 3 seconds.",
"status": "standing",
"superseded_by": null,
"oracle_kind": "eval",
"oracle_ref": null,
"created_at": "2026-07-02T00:00:00.000Z"
}
],
"non_goals": [],
"budget": { "estimate": "1 day", "blast_radius": "Read-only, no schema change." },
"ambiguity_policy": null,
"drafted_by": "human",
"drafted_at": "2026-07-02T00:00:00.000Z"
}
}See llms.txt for the full list of machine-readable interfaces, and agents.txt for the agent access policy.