


ADO Pilot sends only the data that an AI reviewer needs to comment on a pull request: the diff content of changed files and their paths. Your full source tree is never read, copied, or indexed. The diff is processed by our systems for the duration of the review — see [How long content lives](#how-long-content-lives) below for what happens to it afterward.

## What we send to Anthropic

For each review, ADO Pilot makes up to two review passes, each a separate request to Anthropic's Claude API — occasionally with an additional fallback request if a pass needs to retry. Each request contains up to three pieces of content, sent as part of the request:

- The unified diff of files changed in the pull request — added, removed, and context lines as Azure DevOps returns them, including the file paths embedded in the diff headers so Claude can reason about language and structure.
- Code-structure context derived from the changed files — type signatures, function declarations, and surrounding structural context — when our enrichment pipeline can extract it, so the reviewer can reason about code beyond the diff hunks.
- Static-analysis findings produced from the same diff, when any are detected, so the reviewer can correlate them with the code under review.

Your exclusion patterns and other review configuration are applied on our side to decide which file changes reach the diff in the first place; the rules themselves are never sent to Anthropic. Pull request metadata such as the PR title, description, and source and target branch names is used internally to route the review and create review records on our side — it is not included in the prompt.

The system instructions we send Claude are not customer-specific. They describe how to review code; they do not contain any tenant data.

## What we don't send

- Files outside the diff. ADO Pilot does not clone your repository or walk your source tree.
- Files matched by your exclusion patterns. Binary files (images, fonts, media, archives) and common lockfile and source-map file extensions are excluded automatically; minified bundles, `package-lock.json`/`pnpm-lock.yaml`, and other generated code are only excluded if you add them to your own exclusion patterns.
- Build artifacts, test fixtures, or pipeline outputs.
- Customer credentials. Personal access tokens are encrypted at rest before they reach our database. Service-principal (Microsoft Entra) auth stores no long-lived credential at all — the backend mints short-lived tokens on demand. Either way, your credentials are used only to call the Azure DevOps REST API on your behalf and are never sent to Anthropic.
- Identity data beyond what already appears in PR metadata. We do not enrich the prompt with user directory data or commit history outside the PR.

## How long content lives

Content sent to Anthropic as part of a review may be cached ephemerally to keep review passes fast and costs predictable. This happens entirely within Anthropic's infrastructure, is scoped to ADO Pilot's own API account, and is never shared across customers.

The diff content itself is written to temporary, encrypted, access-controlled storage in our processing infrastructure for the duration of the review — not held only in memory — and is deleted immediately once the review completes. As a safeguard for the rare case a review doesn't finish cleanly, an automated process guarantees deletion of any remaining copy within seven days at most.

The verdict (pass, advisory, or fail), severity, category, and file location of each finding, and usage metadata are stored on our side indefinitely as your review history. The finding text and review notes themselves are handled differently, because they can echo short snippets of your code: they're encrypted at rest under their own dedicated encryption key — cryptographically separate from the key that protects your Azure DevOps credential (see [tenant isolation](tenant-isolation.md)) — and are erased from our live database as soon as the corresponding comment is confirmed posted back to your pull request. From that point on, your dashboard links you to the comment on the pull request itself rather than showing the text again. If a post doesn't confirm cleanly, an automated safeguard erases the encrypted text no later than 48 hours afterward regardless, so retention never depends on that confirmation succeeding. We also keep a keyed fingerprint of each posted comment — never the comment text — so a comment's origin can be verified as coming from ADO Pilot after the fact. As with the diff content above, this erasure is against our live database; a short-lived backup safeguard (up to seven days) means a fully irreversible erasure can lag a few days behind the live-database one.

## Anthropic's commitments

Anthropic processes the prompt to generate a response. Anthropic does not use customer prompts or completions to train its models. Anthropic's retention period for prompts and completions is governed by their Commercial Terms and the Data Processing Addendum (DPA) we sign with them; the contractual language is referenced from our [legal page](legal.md). We'll work with qualifying Enterprise customers to arrange a Zero Data Retention (ZDR) configuration under which neither we nor our subprocessors (including our AI provider) will retain your data at rest — contact sales@adopilot.dev to discuss your requirements.

For Anthropic's own privacy commitments, see Anthropic's [Privacy Policy](https://www.anthropic.com/legal/privacy) and [Trust Center](https://trust.anthropic.com/).

## Legal basis

We process your code on your behalf to deliver the review service you asked for — the legal basis is contract performance. ADO Pilot acts as a data processor; you remain the controller. The full processing terms, subprocessor list, and Standard Contractual Clauses for transfers out of the EEA, UK, and Switzerland are in the DPA, available from the [legal page](legal.md).

If you have a question about how a specific data class flows through ADO Pilot that this page doesn't answer, the [tenant isolation](tenant-isolation.md) page covers the storage and access boundaries on our side.


