# DSAIL > Turn a written policy into rules a program can check, and get the same answer every time. DSAIL turns a written policy into a formal ruleset and returns, for every assertion in it, TRUE, FALSE, UNKNOWN or AMBIGUOUS over claim values you extract — with a counterexample when one is violated, and no model in the loop. Reachable over MCP (`https://agents.jaxon.ai/mcp`) and REST (`https://agents.jaxon.ai/v1`), and from a coding agent through the `dsail` Python package. Every page below is markdown. The same path with `.html` is the same page for a browser. The REST specification is `https://agents.jaxon.ai/openapi.json`. Terms of service, privacy and data handling are under *Terms, privacy and data handling*; the terms version that governs a tier is reported by `dsail_get_account_status`. ## Start here - [DSAIL, for agents](https://docs.agents.jaxon.ai/index.md): Turn a written policy into rules a program can check, and get the same answer every time. What DSAIL is, what it answers, and the one-page route in from each surface. ## Quickstarts, one per surface - ["Quickstart: ChatGPT"](https://docs.agents.jaxon.ai/quickstart/chatgpt.md): Add DSAIL to ChatGPT as a private app through Developer mode, describe one policy, and get a checked result. - ["Quickstart: claude.ai"](https://docs.agents.jaxon.ai/quickstart/claude-ai.md): Add the DSAIL connector to claude.ai, describe one policy, and get a checked result — three steps, no code. - ["Quickstart: Claude Code"](https://docs.agents.jaxon.ai/quickstart/claude-code.md): Install the dsail package, run dsail init once, and let Claude Code compile and check a policy from the repository. - ["Quickstart: Codex"](https://docs.agents.jaxon.ai/quickstart/codex.md): Install the dsail package, register DSAIL once for Codex CLI, the IDE extension and the ChatGPT desktop app, and let Codex compile and check a policy from the repository — over MCP locally, over REST in a cloud task. - ["Quickstart: REST"](https://docs.agents.jaxon.ai/quickstart/rest.md): Three curl calls against the hosted service — a credential, a compile, a check — and the exact JSON that comes back. ## Guides - [Check LLM output against a written policy without another LLM as the judge](https://docs.agents.jaxon.ai/guides/no-model-in-the-loop.md): How to check extracted values against a written policy with no model in the loop — extraction on your model, the check on a solver, and what that buys you. - [Turn a policy document into rules a program can check](https://docs.agents.jaxon.ai/guides/policy-to-rules.md): The route from a policy written in English to a compiled, hash-addressed ruleset a program checks facts against — what the language looks like and what the compiler refuses. - [Enforce a written policy in an LLM application and get the same answer every time](https://docs.agents.jaxon.ai/guides/same-answer-every-time.md): Why an LLM-judged policy check drifts, and how to check extracted values against a written policy so the same facts produce the same bytes, every time. - [Policy check when a value cannot be determined from the document](https://docs.agents.jaxon.ai/guides/unknown-is-an-answer.md): How to check a policy against a document that does not settle every fact — submit unknown, get UNKNOWN back, and never let a missing value read as a pass or a failure. - [Explain a policy decision with the rule that decided and a counterexample](https://docs.agents.jaxon.ai/guides/which-rule-decided.md): How a DSAIL check names the assertion that failed and the values under which it fails, so a person can be told exactly why — and why there is no combined verdict. ## Compared with what you already know - [DSAIL compared with Cedar](https://docs.agents.jaxon.ai/compare/cedar.md): When you already know Cedar, what DSAIL does differently, what it does not do, and which one a task actually needs. - [DSAIL compared with guardrail frameworks](https://docs.agents.jaxon.ai/compare/guardrails.md): When you already know Guardrails AI, NeMo Guardrails or Bedrock Guardrails, what DSAIL does differently and which one the task needs. - [DSAIL compared with OPA (Open Policy Agent)](https://docs.agents.jaxon.ai/compare/opa.md): When you already know OPA and Rego, what DSAIL does differently, what it does not do, and how to tell which one a task needs. ## Reference - [Error codes](https://docs.agents.jaxon.ai/reference/errors.md): Every error code the DSAIL service returns, its HTTP status, and the page that resolves it. - [MCP tools reference](https://docs.agents.jaxon.ai/reference/mcp-tools.md): Every tool the DSAIL MCP server publishes — name, description and arguments — as a connected model sees them. - [REST API reference](https://docs.agents.jaxon.ai/reference/rest-api.md): Every route of the hosted DSAIL service, rendered from its published OpenAPI document, so an agent can read the contract before connecting. - [MCP server instructions](https://docs.agents.jaxon.ai/reference/server-instructions.md): The instructions the DSAIL MCP server sends a model on every connection, verbatim. ## Errors, one page per code - [BAD_REQUEST](https://docs.agents.jaxon.ai/errors/bad-request.md): The request was malformed and never reached the validation contract. HTTP 400. The message names the field and the shape expected. - [BUDGET_EXCEEDED](https://docs.agents.jaxon.ai/errors/budget-exceeded.md): A per-request complexity budget was exceeded before any solving started. HTTP 413. Split the ruleset or the claim dictionary. - [COMPILE_FAILED](https://docs.agents.jaxon.ai/errors/compile-failed.md): The DSAIL source did not compile. HTTP 422. The response carries line-numbered diagnostics and the grammar guide; fix the source and compile again. - [CREDENTIAL_INVALID](https://docs.agents.jaxon.ai/errors/credential-invalid.md): The credential presented is unknown, revoked or expired. HTTP 401. Replace it the way the first one was obtained. - [CREDENTIAL_REQUIRED](https://docs.agents.jaxon.ai/errors/credential-required.md): This deployment requires a credential on every call and none was presented. HTTP 401. Obtain an evaluation credential with one POST, no sign-up, and retry. - [CREDENTIAL_SCOPE](https://docs.agents.jaxon.ai/errors/credential-scope.md): The credential's grade does not permit this operation. HTTP 403. Evaluation credentials compile and check; storage needs a full credential. - [ENGINE_ERROR](https://docs.agents.jaxon.ai/errors/engine-error.md): The compiler or solver failed in a way that is not a fault in the request. HTTP 500. Retry once; if it persists, report the versions block. - [EVALUATION_LIMIT](https://docs.agents.jaxon.ai/errors/evaluation-limit.md): An evaluation cap is exhausted for today or for this credential's lifetime. HTTP 429. Wait for the daily reset or ask for a full credential. - [RULESET_NOT_FOUND](https://docs.agents.jaxon.ai/errors/ruleset-not-found.md): No stored ruleset or name binding matches the reference given. HTTP 404. Compile the source again, or load by the name it was saved under. - [VALIDATION_REJECTED](https://docs.agents.jaxon.ai/errors/validation-rejected.md): The claim dictionary did not satisfy the ruleset's validation contract. HTTP 422. Every failing field is named at once. ## Terms, privacy and data handling - [Data handling](https://docs.agents.jaxon.ai/legal/data-handling.md): Exactly what the DSAIL hosted service stores, what it never does with it, what it must never be sent, and how the one derived field — a category label from a published vocabulary — is kept from ever pointing back at anyone's policy. - [Privacy notice](https://docs.agents.jaxon.ai/legal/privacy.md): The privacy notice for the DSAIL hosted service, supplementing Jaxon's Privacy Policy. What the service collects, what it never receives, how long it keeps what it holds, who can see it, and which parts of the general policy do not apply here. - [Terms of service](https://docs.agents.jaxon.ai/legal/terms.md): Supplemental terms for the DSAIL hosted service, under Jaxon's Terms and Conditions. They state what this service does differently from Jaxon's other products — no model, no training, no reading of stored rules — and take precedence over the general terms where the two differ. - [Published vocabulary](https://docs.agents.jaxon.ai/legal/vocabulary.md): The application-domain vocabulary DSAIL rulesets are labeled with: the closed level-one list, every level-two term with its provenance, the promotion rule and K, and the version history — rendered live from the service.